[med-svn] [bedops] 01/02: Import Upstream version 2.4.20+dfsg
Olivier Sallou
osallou at debian.org
Fri Jan 13 12:49:39 UTC 2017
This is an automated email from the git hooks/post-receive script.
osallou pushed a commit to branch master
in repository bedops.
commit 11a80e0fb04ea0fc822ec06059cb1db0c679a24f
Author: Olivier Sallou <osallou at debian.org>
Date: Fri Jan 13 12:37:51 2017 +0000
Import Upstream version 2.4.20+dfsg
---
.dockerignore | 4 +
.travis.yml | 29 +
LICENSE | 408 +
Makefile | 172 +
README.md | 69 +
applications/bed/bedextract/src/ExtractRows.cpp | 353 +
applications/bed/bedextract/src/Makefile | 67 +
applications/bed/bedextract/src/Makefile.darwin | 69 +
applications/bed/bedmap/doc/known.issues | 33 +
applications/bed/bedmap/src/Bedmap.cpp | 736 ++
applications/bed/bedmap/src/Input.hpp | 546 ++
applications/bed/bedmap/src/Makefile | 66 +
applications/bed/bedmap/src/Makefile.darwin | 66 +
applications/bed/bedmap/src/TDefs.hpp | 100 +
.../bed/bedops/doc/Usage.Statement.Version1.2 | 35 +
applications/bed/bedops/src/BedPadReader.hpp | 289 +
applications/bed/bedops/src/Bedops.cpp | 1563 ++++
applications/bed/bedops/src/Input.hpp | 798 ++
applications/bed/bedops/src/Makefile | 76 +
applications/bed/bedops/src/Makefile.darwin | 76 +
applications/bed/bedops/test/Regression.java | 204 +
applications/bed/bedops/test/TestPlan.xml | 1913 ++++
.../closestfeats/doc/Usage.Statement.Version1.2 | 45 +
applications/bed/closestfeats/src/BedReader.hpp | 111 +
.../bed/closestfeats/src/ClosestFeature.cpp | 415 +
applications/bed/closestfeats/src/Input.hpp | 180 +
applications/bed/closestfeats/src/Makefile | 65 +
applications/bed/closestfeats/src/Makefile.darwin | 68 +
applications/bed/closestfeats/src/Printers.hpp | 209 +
applications/bed/conversion/src/Makefile | 39 +
applications/bed/conversion/src/Makefile.darwin | 40 +
applications/bed/conversion/src/convert2bed.c | 5456 +++++++++++
applications/bed/conversion/src/convert2bed.h | 1431 +++
applications/bed/conversion/src/gprof-helper.c | 119 +
applications/bed/conversion/src/tests/bam/makefile | 4 +
.../bed/conversion/src/tests/bam/sample.bam | Bin 0 -> 860 bytes
.../conversion/src/tests/bam/sample.expected.bed | 9 +
.../src/tests/bam/sample.expected.starch | Bin 0 -> 2759 bytes
.../bed/conversion/src/tests/bam/split.bam | Bin 0 -> 1385 bytes
.../conversion/src/tests/bam/split.expected.bed | 3 +
applications/bed/conversion/src/tests/bam/test.sh | 39 +
applications/bed/conversion/src/tests/gff/makefile | 4 +
.../conversion/src/tests/gff/sample.expected.bed | 5 +
.../src/tests/gff/sample.expected.gzip.starch | Bin 0 -> 841 bytes
.../src/tests/gff/sample.expected.starch | Bin 0 -> 873 bytes
.../bed/conversion/src/tests/gff/sample.gff | 10 +
applications/bed/conversion/src/tests/gff/test.sh | 31 +
applications/bed/conversion/src/tests/gtf/makefile | 4 +
.../conversion/src/tests/gtf/sample.expected.bed | 7 +
.../src/tests/gtf/sample.expected.gzip.starch | 25 +
.../src/tests/gtf/sample.expected.starch | Bin 0 -> 886 bytes
.../bed/conversion/src/tests/gtf/sample.gtf | 7 +
applications/bed/conversion/src/tests/gtf/test.sh | 31 +
applications/bed/conversion/src/tests/gvf/makefile | 4 +
.../conversion/src/tests/gvf/sample.expected.bed | 7 +
.../src/tests/gvf/sample.expected.gzip.starch | Bin 0 -> 919 bytes
.../src/tests/gvf/sample.expected.starch | Bin 0 -> 951 bytes
.../bed/conversion/src/tests/gvf/sample.gvf | 13 +
applications/bed/conversion/src/tests/gvf/test.sh | 31 +
applications/bed/conversion/src/tests/makefile | 9 +
applications/bed/conversion/src/tests/psl/makefile | 4 +
.../src/tests/psl/sample.expected.headered.bed | 34 +
.../tests/psl/sample.expected.headered.gzip.starch | Bin 0 -> 5371 bytes
.../src/tests/psl/sample.expected.headered.starch | Bin 0 -> 5731 bytes
.../src/tests/psl/sample.expected.headerless.bed | 34 +
.../psl/sample.expected.headerless.gzip.starch | Bin 0 -> 5371 bytes
.../tests/psl/sample.expected.headerless.split.bed | 35 +
.../sample.expected.headerless.split.gzip.starch | Bin 0 -> 5379 bytes
.../psl/sample.expected.headerless.split.starch | Bin 0 -> 5745 bytes
.../tests/psl/sample.expected.headerless.starch | Bin 0 -> 5731 bytes
.../conversion/src/tests/psl/sample.headered.psl | 39 +
.../conversion/src/tests/psl/sample.headerless.psl | 34 +
applications/bed/conversion/src/tests/psl/test.sh | 79 +
.../bed/conversion/src/tests/rmsk/makefile | 4 +
.../conversion/src/tests/rmsk/sample.expected.bed | 7 +
.../src/tests/rmsk/sample.expected.gzip.starch | 26 +
.../src/tests/rmsk/sample.expected.starch | Bin 0 -> 964 bytes
.../bed/conversion/src/tests/rmsk/sample.out | 10 +
.../conversion/src/tests/rmsk/sample2.expected.bed | 25 +
.../src/tests/rmsk/sample2.expected.gzip.starch | Bin 0 -> 1450 bytes
.../src/tests/rmsk/sample2.expected.starch | Bin 0 -> 1417 bytes
.../bed/conversion/src/tests/rmsk/sample2.out | 28 +
applications/bed/conversion/src/tests/rmsk/test.sh | 55 +
applications/bed/conversion/src/tests/sam/makefile | 4 +
.../conversion/src/tests/sam/sample.expected.bed | 9 +
.../src/tests/sam/sample.expected.starch | Bin 0 -> 2759 bytes
.../bed/conversion/src/tests/sam/sample.sam | 36 +
.../conversion/src/tests/sam/split.expected.bed | 3 +
.../bed/conversion/src/tests/sam/split.sam | 29 +
applications/bed/conversion/src/tests/sam/test.sh | 39 +
applications/bed/conversion/src/tests/vcf/makefile | 4 +
.../conversion/src/tests/vcf/sample.expected.bed | 7 +
.../src/tests/vcf/sample.expected.nosplit.bed | 5 +
.../tests/vcf/sample.expected.nosplit.bzip2.starch | Bin 0 -> 906 bytes
.../tests/vcf/sample.expected.nosplit.gzip.starch | 26 +
.../src/tests/vcf/sample.expected.split.bed | 7 +
.../tests/vcf/sample.expected.split.bzip2.starch | Bin 0 -> 948 bytes
.../tests/vcf/sample.expected.split.gzip.starch | Bin 0 -> 893 bytes
.../bed/conversion/src/tests/vcf/sample.vcf | 23 +
applications/bed/conversion/src/tests/vcf/test.sh | 55 +
applications/bed/conversion/src/tests/wig/makefile | 4 +
.../conversion/src/tests/wig/sample_1.expected.bed | 10 +
.../src/tests/wig/sample_1.expected.gzip.starch | Bin 0 -> 689 bytes
.../src/tests/wig/sample_1.expected.starch | Bin 0 -> 712 bytes
.../bed/conversion/src/tests/wig/sample_1.wig | 10 +
.../conversion/src/tests/wig/sample_2.expected.bed | 10 +
.../src/tests/wig/sample_2.expected.gzip.starch | Bin 0 -> 689 bytes
.../src/tests/wig/sample_2.expected.starch | Bin 0 -> 712 bytes
.../bed/conversion/src/tests/wig/sample_2.wig | 11 +
.../conversion/src/tests/wig/sample_3.expected.bed | 10 +
.../src/tests/wig/sample_3.expected.gzip.starch | Bin 0 -> 689 bytes
.../src/tests/wig/sample_3.expected.starch | Bin 0 -> 712 bytes
.../bed/conversion/src/tests/wig/sample_3.wig | 12 +
.../conversion/src/tests/wig/sample_4.expected.bed | 15 +
.../src/tests/wig/sample_4.expected.gzip.starch | Bin 0 -> 951 bytes
.../src/tests/wig/sample_4.expected.starch | Bin 0 -> 1003 bytes
.../bed/conversion/src/tests/wig/sample_4.wig | 19 +
.../conversion/src/tests/wig/sample_5.expected.bed | 19 +
.../src/tests/wig/sample_5.expected.gzip.starch | Bin 0 -> 1229 bytes
.../src/tests/wig/sample_5.expected.starch | Bin 0 -> 1306 bytes
.../bed/conversion/src/tests/wig/sample_5.wig | 25 +
.../conversion/src/tests/wig/sample_6.expected.bed | 18 +
.../src/tests/wig/sample_6.expected.gzip.starch | Bin 0 -> 1280 bytes
.../src/tests/wig/sample_6.expected.starch | Bin 0 -> 1366 bytes
.../bed/conversion/src/tests/wig/sample_6.wig | 18 +
applications/bed/conversion/src/tests/wig/test.sh | 60 +
applications/bed/conversion/src/wrappers/bam2bed | 148 +
.../conversion/src/wrappers/bam2bed_gnuParallel | 137 +
.../bed/conversion/src/wrappers/bam2bed_sge | 158 +
.../bed/conversion/src/wrappers/bam2starch | 181 +
.../conversion/src/wrappers/bam2starch_gnuParallel | 137 +
.../bed/conversion/src/wrappers/bam2starch_sge | 158 +
applications/bed/conversion/src/wrappers/gff2bed | 132 +
.../bed/conversion/src/wrappers/gff2starch | 165 +
applications/bed/conversion/src/wrappers/gtf2bed | 122 +
.../bed/conversion/src/wrappers/gtf2starch | 155 +
applications/bed/conversion/src/wrappers/gvf2bed | 132 +
.../bed/conversion/src/wrappers/gvf2starch | 165 +
applications/bed/conversion/src/wrappers/psl2bed | 140 +
.../bed/conversion/src/wrappers/psl2starch | 173 +
applications/bed/conversion/src/wrappers/rmsk2bed | 132 +
.../bed/conversion/src/wrappers/rmsk2starch | 165 +
applications/bed/conversion/src/wrappers/sam2bed | 148 +
.../bed/conversion/src/wrappers/sam2starch | 181 +
applications/bed/conversion/src/wrappers/vcf2bed | 164 +
.../bed/conversion/src/wrappers/vcf2starch | 197 +
applications/bed/conversion/src/wrappers/wig2bed | 156 +
.../bed/conversion/src/wrappers/wig2starch | 189 +
applications/bed/sort-bed/src/CheckSort.cpp | 56 +
applications/bed/sort-bed/src/Makefile | 77 +
applications/bed/sort-bed/src/Makefile.darwin | 89 +
applications/bed/sort-bed/src/Sort.cpp | 234 +
applications/bed/sort-bed/src/SortDetails.cpp | 1202 +++
applications/bed/sort-bed/src/Structures.hpp | 106 +
applications/bed/sort-bed/test/sort-chr-test.bash | 37 +
applications/bed/starch/src/Makefile | 104 +
applications/bed/starch/src/Makefile.darwin | 125 +
applications/bed/starch/src/starch.c | 366 +
applications/bed/starch/src/starch.h | 106 +
applications/bed/starch/src/starchcat.c | 6188 +++++++++++++
applications/bed/starch/src/starchcat.h | 348 +
.../bed/starch/src/starchcluster_gnuParallel.tcsh | 134 +
applications/bed/starch/src/starchcluster_sge.tcsh | 158 +
applications/bed/starch/src/unstarch.c | 1195 +++
applications/bed/starch/src/unstarch.h | 97 +
applications/bed/starch/test/README | 208 +
.../bed/starch/test/binaries/linux/v1.2/bin/starch | Bin 0 -> 723505 bytes
.../starch/test/binaries/linux/v1.2/bin/starchcat | Bin 0 -> 756457 bytes
.../starch/test/binaries/linux/v1.2/bin/unstarch | Bin 0 -> 732761 bytes
.../bed/starch/test/binaries/linux/v1.5/bin/starch | Bin 0 -> 94041 bytes
.../starch/test/binaries/linux/v1.5/bin/starchcat | Bin 0 -> 151433 bytes
.../starch/test/binaries/linux/v1.5/bin/unstarch | Bin 0 -> 114313 bytes
.../bed/starch/test/binaries/linux/v2.0/bin/starch | Bin 0 -> 849065 bytes
.../starch/test/binaries/linux/v2.0/bin/starchcat | Bin 0 -> 930953 bytes
.../starch/test/binaries/linux/v2.0/bin/unstarch | Bin 0 -> 885641 bytes
.../bed/starch/test/binaries/linux/v2.1/bin/starch | Bin 0 -> 493738 bytes
.../starch/test/binaries/linux/v2.1/bin/starchcat | Bin 0 -> 591198 bytes
.../starch/test/binaries/linux/v2.1/bin/unstarch | Bin 0 -> 545977 bytes
.../bed/starch/test/binaries/osx/v1.2/bin/starch | Bin 0 -> 66813 bytes
.../starch/test/binaries/osx/v1.2/bin/starchcat | Bin 0 -> 89981 bytes
.../bed/starch/test/binaries/osx/v1.2/bin/unstarch | Bin 0 -> 62781 bytes
.../bed/starch/test/binaries/osx/v1.5/bin/starch | Bin 0 -> 127053 bytes
.../starch/test/binaries/osx/v1.5/bin/starchcat | Bin 0 -> 204077 bytes
.../bed/starch/test/binaries/osx/v1.5/bin/unstarch | Bin 0 -> 151329 bytes
.../bed/starch/test/binaries/osx/v2.0/bin/starch | Bin 0 -> 478709 bytes
.../starch/test/binaries/osx/v2.0/bin/starchcat | Bin 0 -> 668377 bytes
.../bed/starch/test/binaries/osx/v2.0/bin/unstarch | Bin 0 -> 569713 bytes
.../bed/starch/test/binaries/osx/v2.1/bin/starch | Bin 0 -> 504004 bytes
.../starch/test/binaries/osx/v2.1/bin/starchcat | Bin 0 -> 699728 bytes
.../bed/starch/test/binaries/osx/v2.1/bin/unstarch | Bin 0 -> 609232 bytes
.../test/compression_and_extraction/makefile | 271 +
.../bed/starch/test/concatenation/makefile | 180 +
..._disjoint_element_counts_with_merged_archive.pl | 23 +
.../diff_disjoint_archives_with_merged_archive.pl | 31 +
...t_by_chromosome_archives_with_merged_archive.pl | 28 +
...t_by_fixed_size_archives_with_merged_archive.pl | 38 +
.../split_random_inputs_into_disjoint_archives.pl | 93 +
..._inputs_into_disjoint_archives_by_chromosome.pl | 71 +
..._inputs_into_disjoint_archives_by_fixed_size.pl | 89 +
applications/bed/starch/test/makefile | 102 +
.../bed/starch/test/metadata_integrity/makefile | 334 +
.../test/metadata_integrity/src/count_bases.pl | 13 +
.../metadata_integrity/src/count_unique_bases.pl | 40 +
.../data/test_input.bed | 13 +
.../test/nested_and_duplicate_elements/makefile | 92 +
.../src/hasDuplicateElements.py | 44 +
.../src/hasNestedElements.py | 44 +
.../data/fimo.combined.xfac.1e-5.parsed.1M.starch | Bin 0 -> 7578293 bytes
.../bed/starch/test/original_data/makefile | 30 +
.../original_data/src/jumble_duplicate_coords.pl | 39 +
.../src/make_unsorted_random_bed_file.sh | 30 +
.../test/unsortable_elements/data/test_start.bed | 13 +
.../test/unsortable_elements/data/test_stop.bed | 13 +
.../bed/starch/test/unsortable_elements/makefile | 76 +
.../test/unsortable_elements/src/isUnsortable.py | 18 +
applications/bed/starch/test/updating/makefile | 211 +
docs/Makefile | 177 +
docs/_static/custom.css | 89 +
docs/assets/favicon.ico | Bin 0 -> 5559 bytes
docs/assets/index/downloads_v2.png | Bin 0 -> 4318 bytes
docs/assets/index/downloads_v3.png | Bin 0 -> 4694 bytes
docs/assets/index/file_management.png | Bin 0 -> 10236 bytes
docs/assets/index/file_management_v2.png | Bin 0 -> 14085 bytes
docs/assets/index/linux.png | Bin 0 -> 9276 bytes
docs/assets/index/linux_v2.png | Bin 0 -> 3390 bytes
docs/assets/index/macosx.png | Bin 0 -> 6098 bytes
docs/assets/index/macosx_v2.png | Bin 0 -> 3395 bytes
docs/assets/index/other.png | Bin 0 -> 9997 bytes
docs/assets/index/performance.png | Bin 0 -> 10883 bytes
docs/assets/index/performance_v2.png | Bin 0 -> 11646 bytes
docs/assets/index/quick_start.png | Bin 0 -> 11830 bytes
docs/assets/index/reference_v2.png | Bin 0 -> 3676 bytes
docs/assets/index/set_operations.png | Bin 0 -> 5766 bytes
docs/assets/index/set_operations_v2.png | Bin 0 -> 10356 bytes
docs/assets/index/source.png | Bin 0 -> 8765 bytes
docs/assets/index/source_v2.png | Bin 0 -> 3643 bytes
docs/assets/index/statistics.png | Bin 0 -> 10392 bytes
docs/assets/index/statistics_v2.png | Bin 0 -> 15711 bytes
docs/assets/index/support.png | Bin 0 -> 16038 bytes
docs/assets/index/support_v2.png | Bin 0 -> 28300 bytes
docs/assets/index/toc_v2.png | Bin 0 -> 7242 bytes
.../bedops_cygwin_installer_gcc_screen.png | Bin 0 -> 51790 bytes
.../bedops_cygwin_installer_git_screen.png | Bin 0 -> 37482 bytes
.../bedops_cygwin_installer_screen.png | Bin 0 -> 33080 bytes
.../installation/bedops_macosx_installer_icon.png | Bin 0 -> 30597 bytes
.../bedops_macosx_installer_screen.png | Bin 0 -> 99320 bytes
.../bedops_macosx_installer_screen_v2.png | Bin 0 -> 53672 bytes
docs/assets/logo_with_label_v3.png | Bin 0 -> 15708 bytes
docs/assets/note.png | Bin 0 -> 557 bytes
.../overview/BEDOPS_Presentation_bedmap_ops.png | Bin 0 -> 94209 bytes
.../overview/BEDOPS_Presentation_bedops_ops.png | Bin 0 -> 54020 bytes
.../overview/BEDOPS_Presentation_grok_tests.png | Bin 0 -> 94693 bytes
.../BEDOPS_Presentation_starch_efficiency.png | Bin 0 -> 167578 bytes
.../performance_bedops_complement_sorted.png | Bin 0 -> 129681 bytes
.../performance_bedops_intersect_sorted.png | Bin 0 -> 127281 bytes
.../performance_bedops_merge_sorted.png | Bin 0 -> 119323 bytes
.../performance_bedops_merge_unsorted.png | Bin 0 -> 143946 bytes
.../performance/performance_independent_grok.png | Bin 0 -> 258846 bytes
.../performance/performance_starch_efficiency.png | Bin 0 -> 263373 bytes
.../performance_unstarch_extractiontime.png | Bin 0 -> 273689 bytes
docs/assets/readme/bioinformatics.png | Bin 0 -> 30691 bytes
docs/assets/readme/documentation.png | Bin 0 -> 3912 bytes
docs/assets/readme/overview.png | Bin 0 -> 3175 bytes
.../compression/starch_specification.png | Bin 0 -> 20739 bytes
.../starch_specification_chromosomestreams.png | Bin 0 -> 5646 bytes
.../starch_specification_magicbytes.png | Bin 0 -> 4530 bytes
.../compression/starch_specification_metadata.png | Bin 0 -> 3155 bytes
.../starch_specification_metadatachecksum.png | Bin 0 -> 3540 bytes
.../starch_specification_metadataoffset.png | Bin 0 -> 5999 bytes
.../compression/starch_specification_padding.png | Bin 0 -> 2254 bytes
.../compression/starchcluster_mechanism.png | Bin 0 -> 260938 bytes
.../conversion/reference_bam2bed_foo.bam | Bin 0 -> 126665 bytes
.../conversion/reference_gff2bed_foo.gff | 6 +
.../conversion/reference_gtf2bed_foo.gtf | 3 +
.../conversion/reference_gvf2bed_foo.gvf | 13 +
.../conversion/reference_psl2bed_foo.psl | 39 +
.../conversion/reference_sam2bed_foo.sam | 3311 +++++++
.../conversion/reference_vcf2bed_foo.vcf | 27 +
.../conversion/reference_wig2bed_foo.wig | 18 +
.../reference_bedextract_mechanism.png | Bin 0 -> 26451 bytes
.../set-operations/reference_bedextract_motifs.bed | 9474 ++++++++++++++++++++
.../reference_bedextract_nested_elements.png | Bin 0 -> 26859 bytes
.../set-operations/reference_bedextract_target.bed | 1 +
.../reference_bedextract_target.starch | Bin 0 -> 654 bytes
.../reference_closestfeatures_a.starch | Bin 0 -> 481 bytes
.../reference_closestfeatures_b.starch | Bin 0 -> 494 bytes
.../set-operations/reference_nested_elements.png | Bin 0 -> 10080 bytes
.../reference_setops_bedops_chop_ab.png | Bin 0 -> 10234 bytes
.../reference_setops_bedops_chop_ab at 2x.png | Bin 0 -> 19150 bytes
.../reference_setops_bedops_complement_ab.png | Bin 0 -> 18662 bytes
.../reference_setops_bedops_complement_ab at 2x.png | Bin 0 -> 16244 bytes
.../reference_setops_bedops_difference_ab.png | Bin 0 -> 18600 bytes
.../reference_setops_bedops_difference_ab at 2x.png | Bin 0 -> 16077 bytes
.../reference_setops_bedops_elementof_ab.png | Bin 0 -> 19442 bytes
.../reference_setops_bedops_elementof_ab at 2x.png | Bin 0 -> 16423 bytes
.../reference_setops_bedops_elementof_ba.png | Bin 0 -> 19105 bytes
.../reference_setops_bedops_elementof_ba at 2x.png | Bin 0 -> 16437 bytes
.../reference_setops_bedops_everything.png | Bin 0 -> 21863 bytes
.../reference_setops_bedops_everything at 2x.png | Bin 0 -> 18537 bytes
.../reference_setops_bedops_inputs.png | Bin 0 -> 10655 bytes
.../reference_setops_bedops_inputs at 2x.png | Bin 0 -> 9542 bytes
.../reference_setops_bedops_intersect_ab.png | Bin 0 -> 18386 bytes
.../reference_setops_bedops_intersect_ab at 2x.png | Bin 0 -> 15631 bytes
.../reference_setops_bedops_merge_ab.png | Bin 0 -> 18325 bytes
.../reference_setops_bedops_merge_ab at 2x.png | Bin 0 -> 16095 bytes
.../reference_setops_bedops_notelementof_ab.png | Bin 0 -> 17582 bytes
.../reference_setops_bedops_notelementof_ab at 2x.png | Bin 0 -> 15313 bytes
.../reference_setops_bedops_partition_ab.png | Bin 0 -> 22164 bytes
.../reference_setops_bedops_partition_ab at 2x.png | Bin 0 -> 18693 bytes
.../reference_setops_bedops_stagger_ab at 2x.png | Bin 0 -> 19317 bytes
...erence_setops_bedops_symmetricdifference_ab.png | Bin 0 -> 21637 bytes
...nce_setops_bedops_symmetricdifference_ab at 2x.png | Bin 0 -> 17860 bytes
docs/assets/reference/statistics/Makefile | 6 +
.../statistics/reference_bedmap_inputs.png | Bin 0 -> 92723 bytes
.../reference_bedmap_make_overlap_figures.Rscript | 107 +
.../reference/statistics/reference_bedmap_map.bed | 66 +
.../statistics/reference_bedmap_map.starch | Bin 0 -> 523 bytes
.../statistics/reference_bedmap_mapref.pdf | 349 +
.../reference_bedmap_mapref.pdf.ref1.pdf | 377 +
.../reference_bedmap_mapref.pdf.ref2.pdf | 376 +
.../reference_bedmap_mapref.pdf.ref3.pdf | 406 +
.../statistics/reference_bedmap_mapref_all.png | Bin 0 -> 20997 bytes
.../statistics/reference_bedmap_mapref_padded.pdf | Bin 0 -> 5058 bytes
.../reference_bedmap_mapref_padded.pdf.ref1.pdf | Bin 0 -> 5095 bytes
.../reference_bedmap_mapref_padded.pdf.ref2.pdf | Bin 0 -> 5082 bytes
.../reference_bedmap_mapref_padded.pdf.ref3.pdf | 378 +
.../statistics/reference_bedmap_mapref_ref1.png | Bin 0 -> 21268 bytes
.../statistics/reference_bedmap_mapref_ref2.png | Bin 0 -> 21439 bytes
.../statistics/reference_bedmap_mapref_ref3.png | Bin 0 -> 21460 bytes
.../reference_bedmap_mapref_ref3_padded.png | Bin 0 -> 21624 bytes
.../statistics/reference_bedmap_motifs.bed | 9474 ++++++++++++++++++++
.../statistics/reference_bedmap_motifs.starch | Bin 0 -> 120627 bytes
.../statistics/reference_bedmap_reference.bed | 3 +
.../statistics/reference_bedmap_reference.starch | Bin 0 -> 345 bytes
.../reference_bedmap_reference_padded.bed | 3 +
.../usage-examples/Frequencies-DHSs.bed.starch | Bin 0 -> 8275983 bytes
.../usage-examples/Frequencies-SNPs.bed.starch | Bin 0 -> 93110 bytes
docs/assets/usage-examples/SNP_DHS_data.tgz | Bin 0 -> 37051 bytes
docs/assets/usage-examples/SNP_DHS_heatmap.tcsh | 51 +
docs/assets/usage-examples/SNP_DHS_matrix.png | Bin 0 -> 33874 bytes
.../SNP_DHS_matrix_diseaseSorted.png | Bin 0 -> 33406 bytes
docs/conf.py | 330 +
docs/content/installation.rst | 377 +
docs/content/overview.rst | 72 +
docs/content/performance.rst | 137 +
docs/content/reference.rst | 8 +
docs/content/reference/file-management.rst | 8 +
.../reference/file-management/compression.rst | 9 +
.../compression/starch-specification.rst | 180 +
.../file-management/compression/starch.rst | 123 +
.../file-management/compression/starchcat.rst | 100 +
.../file-management/compression/unstarch.rst | 269 +
.../reference/file-management/conversion.rst | 23 +
.../file-management/conversion/bam2bed.rst | 134 +
.../file-management/conversion/convert2bed.rst | 57 +
.../file-management/conversion/gff2bed.rst | 130 +
.../file-management/conversion/gtf2bed.rst | 125 +
.../file-management/conversion/gvf2bed.rst | 145 +
.../conversion/parallel_bam2bed.rst | 32 +
.../conversion/parallel_bam2starch.rst | 34 +
.../file-management/conversion/psl2bed.rst | 192 +
.../file-management/conversion/rmsk2bed.rst | 150 +
.../file-management/conversion/sam2bed.rst | 148 +
.../file-management/conversion/vcf2bed.rst | 216 +
.../file-management/conversion/wig2bed.rst | 99 +
docs/content/reference/file-management/sorting.rst | 6 +
.../reference/file-management/sorting/sort-bed.rst | 75 +
docs/content/reference/set-operations.rst | 9 +
.../reference/set-operations/bedextract.rst | 239 +
docs/content/reference/set-operations/bedops.rst | 854 ++
.../reference/set-operations/closest-features.rst | 133 +
.../reference/set-operations/nested-elements.rst | 72 +
docs/content/reference/statistics.rst | 6 +
docs/content/reference/statistics/bedmap.rst | 840 ++
docs/content/release.rst | 186 +
docs/content/revision-history.rst | 722 ++
docs/content/summary.rst | 348 +
docs/content/usage-examples.rst | 14 +
.../usage-examples/distance-frequencies.rst | 57 +
docs/content/usage-examples/master-list.rst | 110 +
docs/content/usage-examples/multiple-inputs.rst | 57 +
docs/content/usage-examples/smoothing-tags.rst | 75 +
docs/content/usage-examples/snp-visualization.rst | 107 +
docs/content/usage-examples/snps-within-dhses.rst | 52 +
docs/content/usage-examples/starchcluster.rst | 70 +
docs/index.rst | 289 +
docs/requirements.txt | 1 +
.../general-headers/algorithm/WindowSweep.hpp | 94 +
.../general-headers/algorithm/bed/FindBedRange.hpp | 193 +
.../algorithm/visitors/BedVisitors.hpp | 38 +
.../algorithm/visitors/NumericalVisitors.hpp | 41 +
.../algorithm/visitors/OtherVisitors.hpp | 31 +
.../algorithm/visitors/VisitorFactory.hpp | 50 +
.../algorithm/visitors/Visitors.hpp | 62 +
.../algorithm/visitors/bed/BedBaseVisitor.hpp | 229 +
.../algorithm/visitors/bed/EchoMapBedVisitor.hpp | 73 +
.../visitors/bed/EchoMapIntersectLengthVisitor.hpp | 89 +
.../algorithm/visitors/bed/OvrAggregateVisitor.hpp | 114 +
.../visitors/bed/OvrUniqueFractionVisitor.hpp | 62 +
.../algorithm/visitors/bed/OvrUniqueVisitor.hpp | 98 +
.../algorithm/visitors/helpers/NamedVisitors.hpp | 237 +
.../visitors/helpers/ProcessBedVisitorRow.hpp | 466 +
.../visitors/helpers/ProcessVisitorRow.hpp | 176 +
.../visitors/numerical/AverageVisitor.hpp | 80 +
.../visitors/numerical/CoeffVariationVisitor.hpp | 87 +
.../algorithm/visitors/numerical/CountVisitor.hpp | 68 +
.../visitors/numerical/ExtremeVisitor.hpp | 86 +
.../visitors/numerical/IndicatorVisitor.hpp | 60 +
.../numerical/MedianAbsoluteDeviationVisitor.hpp | 122 +
.../algorithm/visitors/numerical/MedianVisitor.hpp | 65 +
.../numerical/RollingKthAverageVisitor.hpp | 111 +
.../visitors/numerical/RollingKthVisitor.hpp | 154 +
.../algorithm/visitors/numerical/StdevVisitor.hpp | 83 +
.../algorithm/visitors/numerical/SumVisitor.hpp | 72 +
.../visitors/numerical/TrimmedMeanVisitor.hpp | 224 +
.../visitors/numerical/VarianceVisitor.hpp | 80 +
.../algorithm/visitors/other/EchoVisitor.hpp | 69 +
.../algorithm/visitors/other/MultiVisitor.hpp | 132 +
.../data/bed/AllocateIterator_BED_starch.hpp | 247 +
interfaces/general-headers/data/bed/Bed.hpp | 1085 +++
.../general-headers/data/bed/BedCheckIterator.hpp | 661 ++
interfaces/general-headers/data/bed/BedCompare.hpp | 168 +
.../general-headers/data/bed/BedDistances.hpp | 321 +
interfaces/general-headers/data/bed/BedTypes.hpp | 77 +
.../data/measurement/AssayMeasurement.hpp | 150 +
.../general-headers/data/measurement/NaN.hpp | 43 +
.../data/measurement/SelectMeasureType.hpp | 67 +
.../general-headers/data/starch/starchApi.hpp | 1991 ++++
.../data/starch/starchBase64Coding.h | 50 +
.../general-headers/data/starch/starchConstants.h | 66 +
.../data/starch/starchFileHelpers.h | 83 +
.../general-headers/data/starch/starchHelpers.h | 144 +
.../data/starch/starchMetadataHelpers.h | 306 +
.../general-headers/data/starch/starchSha1Digest.h | 149 +
.../general-headers/data/starch/unstarchHelpers.h | 258 +
.../general-headers/suite/BEDOPS.Constants.hpp | 91 +
.../general-headers/suite/BEDOPS.Version.hpp | 48 +
.../general-headers/utility/AllocateIterator.hpp | 101 +
interfaces/general-headers/utility/Assertion.hpp | 54 +
interfaces/general-headers/utility/ByLine.hpp | 46 +
interfaces/general-headers/utility/Exception.hpp | 89 +
interfaces/general-headers/utility/FPWrap.hpp | 74 +
interfaces/general-headers/utility/Factory.hpp | 57 +
interfaces/general-headers/utility/Formats.hpp | 80 +
.../general-headers/utility/IteratorPair.hpp | 164 +
.../general-headers/utility/OrderCompare.hpp | 52 +
interfaces/general-headers/utility/PrintTypes.hpp | 116 +
.../general-headers/utility/SingletonType.hpp | 37 +
interfaces/general-headers/utility/Typify.hpp | 61 +
interfaces/src/algorithm/sweep/WindowSweepImpl.cpp | 258 +
.../algorithm/sweep/WindowSweepImpl.specialize.cpp | 140 +
interfaces/src/data/measurement/NaN.cpp | 28 +
interfaces/src/data/starch/starchBase64Coding.c | 252 +
interfaces/src/data/starch/starchConstants.c | 45 +
interfaces/src/data/starch/starchFileHelpers.c | 226 +
interfaces/src/data/starch/starchHelpers.c | 3768 ++++++++
interfaces/src/data/starch/starchMetadataHelpers.c | 1777 ++++
interfaces/src/data/starch/starchSha1Digest.c | 506 ++
interfaces/src/data/starch/unstarchHelpers.c | 2086 +++++
packaging/deb/Dockerfile | 25 +
packaging/deb/control | 9 +
packaging/docker/Dockerfile | 16 +
packaging/os_x/BEDOPS Uninstaller.pkgproj | 946 ++
packaging/os_x/BEDOPS.pkgproj | 5512 ++++++++++++
packaging/os_x/resources/background/1024.png | Bin 0 -> 33831 bytes
packaging/os_x/resources/docs/IntroUninstaller.rtf | 9 +
packaging/os_x/resources/docs/Introduction.rtf | 10 +
packaging/os_x/resources/docs/Read Me.rtf | 24 +
.../scripts/post-install.bedops-uninstaller.sh | 38 +
packaging/rpm/Dockerfile | 19 +
packaging/rpm/bedops.spec | 28 +
system.mk/Makefile.darwin | 290 +
system.mk/Makefile.linux | 167 +
473 files changed, 92031 insertions(+)
diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..31850fc
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,4 @@
+.git
+.travis.yml
+.gitignore
+.dockerignore
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..ace9a97
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,29 @@
+language: cpp
+os:
+ - linux
+compiler:
+ - gcc
+ # - clang
+# Change this to your needs
+before_install:
+ # g++ 4.8.3
+ - if [ "$CXX" == "g++" ]; then sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test; fi
+ # clang 3.4
+ - if [ "$CXX" == "clang++" ]; then sudo add-apt-repository -y ppa:h-rayflood/llvm; fi
+ - sudo apt-get update -qq
+install:
+ # g++ 4.8.3
+ - if [ "$CXX" == "g++" ]; then sudo apt-get install -qq g++-4.8; fi
+ - if [ "$CXX" == "g++" ]; then sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 50; fi
+ # clang 3.4
+ - if [ "$CXX" == "clang++" ]; then sudo apt-get install --allow-unauthenticated -qq clang-3.4; fi
+ - if [ "$CXX" == "clang++" ]; then export CXXFLAGS="-std=c++0x -stdlib=libc++"; fi
+ - if [ "$CXX" == "clang++" ]; then svn co --quiet http://llvm.org/svn/llvm-project/libcxx/trunk libcxx; fi
+ - if [ "$CXX" == "clang++" ]; then cd libcxx/lib && bash buildit; fi
+ - if [ "$CXX" == "clang++" ]; then sudo cp ./libc++.so.1.0 /usr/lib/; fi
+ - if [ "$CXX" == "clang++" ]; then sudo mkdir /usr/include/c++/v1; fi
+ - if [ "$CXX" == "clang++" ]; then cd .. && sudo cp -r include/* /usr/include/c++/v1/; fi
+ - if [ "$CXX" == "clang++" ]; then cd /usr/lib && sudo ln -sf libc++.so.1.0 libc++.so; fi
+ - if [ "$CXX" == "clang++" ]; then sudo ln -sf libc++.so.1.0 libc++.so.1 && cd $cwd; fi
+ #- if [ "$CXX" == "clang++" ]; then export CXX="clang++-3.4"; fi
+script: make -j4
\ No newline at end of file
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..222b20d
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,408 @@
+=====================================================================
+1. BEDOPS Suite Software License
+=====================================================================
+
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc., [http://fsf.org/]
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+=====================================================================
+2. Third Party Software Notices and Licenses.
+=====================================================================
+
+The following third party software components are included in the BEDOPS
+Suite Software. These software components are copyrighted and licensed by
+their respective owners. Various components require distribution of source
+code or if a URL is used to point the end-user to a source-code repository,
+and the source code is not available at such site, the distributor must,
+for a time determined by the license, offer to provide the source code. In
+such cases, please contact your Ion Torrent representative. As well, various
+licenses require that the end-user receive a copy of the license and such
+licenses may be found below. In order to use this BEDOPS Suite Software,
+the end-user must abide by the terms and conditions of these third-party
+licenses.
+
+bzip2 1.0.6
+URL: http://www.bzip.org
+License: BSD-style License
+
+jansson 2.6
+URL: http://www.digip.org/jansson
+License: MIT License
+
+zlib 1.2.7
+URL: http://www.zlib.net
+License: Zlib License
+
+Bzip2
+------------------------------------------------------------
+This program, "bzip2", the associated library "libbzip2", and all
+documentation, are copyright (C) 1996-2010 Julian R Seward. All
+rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. The origin of this software must not be misrepresented; you must
+ not claim that you wrote the original software. If you use this
+ software in a product, an acknowledgment in the product
+ documentation would be appreciated but is not required.
+
+3. Altered source versions must be plainly marked as such, and must
+ not be misrepresented as being the original software.
+
+4. The name of the author may not be used to endorse or promote
+ products derived from this software without specific prior written
+ permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Julian Seward, jseward at bzip.org
+bzip2/libbzip2 version 1.0.6 of 6 September 2010
+
+
+Jansson
+------------------------------------------------------------
+Copyright (c) 2009-2014 Petri Lehtinen <petri at digip.org>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+
+Zlib
+------------------------------------------------------------
+/* zlib.h -- interface of the 'zlib' general purpose compression library
+ version 1.2.7, May 2nd, 2012
+
+ Copyright (C) 1995-2012 Jean-loup Gailly and Mark Adler
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
+
+ Jean-loup Gailly Mark Adler
+ jloup at gzip.org madler at alumni.caltech.edu
+
+
+ The data format used by the zlib library is described by RFCs (Request for
+ Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950
+ (zlib format), rfc1951 (deflate format) and rfc1952 (gzip format).
+*/
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..d1bd96b
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,172 @@
+export KERNEL := ${shell uname -a | cut -f1 -d' '}
+APPDIR = applications/bed
+BINDIR = bin
+OSXPKGROOT = packaging/os_x
+OSXBUILDDIR = ${OSXPKGROOT}/build
+OSXPKGDIR = ${OSXPKGROOT}/resources/bin
+OSXLIBDIR = ${OSXPKGROOT}/resources/lib
+
+
+default:
+ifeq ($(KERNEL), Darwin)
+ $(MAKE) $(MAKECMDGOALS) -f system.mk/Makefile.darwin
+else
+ $(MAKE) $(MAKECMDGOALS) -f system.mk/Makefile.linux
+endif
+
+clean: default
+
+support: default
+
+debug: default
+
+gprof: default
+
+install: prep_c install_conversion_scripts install_starchcluster_scripts
+ -cp ${APPDIR}/sort-bed/bin/sort-bed ${BINDIR}/
+ -cp ${APPDIR}/bedops/bin/bedops ${BINDIR}/
+ -cp ${APPDIR}/closestfeats/bin/closest-features ${BINDIR}/
+ -cp ${APPDIR}/bedmap/bin/bedmap ${BINDIR}/
+ -cp ${APPDIR}/bedextract/bin/bedextract ${BINDIR}/
+ -cp ${APPDIR}/starch/bin/starch ${BINDIR}/
+ -cp ${APPDIR}/starch/bin/unstarch ${BINDIR}/
+ -cp ${APPDIR}/starch/bin/starchcat ${BINDIR}/
+ -cp ${APPDIR}/conversion/bin/convert2bed ${BINDIR}/
+
+
+
+
+#######################
+# install details
+
+prep_c:
+ mkdir -p ${BINDIR}
+
+install_debug: prep_c install_conversion_scripts install_starchcluster_scripts
+ -cp ${APPDIR}/sort-bed/bin/debug.sort-bed ${BINDIR}/
+ -cp ${APPDIR}/bedops/bin/debug.bedops ${BINDIR}/
+ -cp ${APPDIR}/closestfeats/bin/debug.closest-features ${BINDIR}/
+ -cp ${APPDIR}/bedmap/bin/debug.bedmap ${BINDIR}/
+ -cp ${APPDIR}/bedextract/bin/debug.bedextract ${BINDIR}/
+ -cp ${APPDIR}/starch/bin/debug.starch ${BINDIR}/
+ -cp ${APPDIR}/starch/bin/debug.unstarch ${BINDIR}/
+ -cp ${APPDIR}/starch/bin/debug.starchcat ${BINDIR}/
+ -cp ${APPDIR}/conversion/bin/debug.convert2bed ${BINDIR}/
+
+install_gprof: prep_c install_conversion_scripts install_starchcluster_scripts
+ -cp ${APPDIR}/sort-bed/bin/gprof.sort-bed ${BINDIR}/
+ -cp ${APPDIR}/bedops/bin/gprof.bedops ${BINDIR}/
+ -cp ${APPDIR}/closestfeats/bin/gprof.closest-features ${BINDIR}/
+ -cp ${APPDIR}/bedmap/bin/gprof.bedmap ${BINDIR}/
+ -cp ${APPDIR}/bedextract/bin/gprof.bedextract ${BINDIR}/
+ -cp ${APPDIR}/starch/bin/gprof.starch ${BINDIR}/
+ -cp ${APPDIR}/starch/bin/gprof.unstarch ${BINDIR}/
+ -cp ${APPDIR}/starch/bin/gprof.starchcat ${BINDIR}/
+ -cp ${APPDIR}/conversion/bin/gprof.convert2bed ${BINDIR}/
+
+install_starchcluster_scripts: prep_c
+ -cp ${APPDIR}/starch/bin/starchcluster_sge ${BINDIR}/
+ -cp ${APPDIR}/starch/bin/starchcluster_gnuParallel ${BINDIR}/
+
+install_conversion_scripts: prep_c
+ -cp ${APPDIR}/conversion/src/wrappers/bam2bed ${BINDIR}/bam2bed
+ -cp ${APPDIR}/conversion/src/wrappers/gff2bed ${BINDIR}/gff2bed
+ -cp ${APPDIR}/conversion/src/wrappers/gtf2bed ${BINDIR}/gtf2bed
+ -cp ${APPDIR}/conversion/src/wrappers/gvf2bed ${BINDIR}/gvf2bed
+ -cp ${APPDIR}/conversion/src/wrappers/psl2bed ${BINDIR}/psl2bed
+ -cp ${APPDIR}/conversion/src/wrappers/rmsk2bed ${BINDIR}/rmsk2bed
+ -cp ${APPDIR}/conversion/src/wrappers/sam2bed ${BINDIR}/sam2bed
+ -cp ${APPDIR}/conversion/src/wrappers/vcf2bed ${BINDIR}/vcf2bed
+ -cp ${APPDIR}/conversion/src/wrappers/wig2bed ${BINDIR}/wig2bed
+ -cp ${APPDIR}/conversion/src/wrappers/bam2starch ${BINDIR}/bam2starch
+ -cp ${APPDIR}/conversion/src/wrappers/gff2starch ${BINDIR}/gff2starch
+ -cp ${APPDIR}/conversion/src/wrappers/gtf2starch ${BINDIR}/gtf2starch
+ -cp ${APPDIR}/conversion/src/wrappers/gvf2starch ${BINDIR}/gvf2starch
+ -cp ${APPDIR}/conversion/src/wrappers/psl2starch ${BINDIR}/psl2starch
+ -cp ${APPDIR}/conversion/src/wrappers/rmsk2starch ${BINDIR}/rmsk2starch
+ -cp ${APPDIR}/conversion/src/wrappers/sam2starch ${BINDIR}/sam2starch
+ -cp ${APPDIR}/conversion/src/wrappers/vcf2starch ${BINDIR}/vcf2starch
+ -cp ${APPDIR}/conversion/src/wrappers/wig2starch ${BINDIR}/wig2starch
+ -cp ${APPDIR}/conversion/src/wrappers/bam2bed_sge ${BINDIR}/bam2bed_sge
+ -cp ${APPDIR}/conversion/src/wrappers/bam2bed_gnuParallel ${BINDIR}/bam2bed_gnuParallel
+ -cp ${APPDIR}/conversion/src/wrappers/bam2starch_sge ${BINDIR}/bam2starch_sge
+ -cp ${APPDIR}/conversion/src/wrappers/bam2starch_gnuParallel ${BINDIR}/bam2starch_gnuParallel
+
+install_osx_packaging_bins: prep_c
+ mkdir -p ${OSXPKGDIR}
+ -cp ${APPDIR}/sort-bed/bin/sort-bed ${OSXPKGDIR}/
+ -cp ${APPDIR}/bedops/bin/bedops ${OSXPKGDIR}/
+ -cp ${APPDIR}/closestfeats/bin/closest-features ${OSXPKGDIR}/
+ -cp ${APPDIR}/bedmap/bin/bedmap ${OSXPKGDIR}/
+ -cp ${APPDIR}/bedextract/bin/bedextract ${OSXPKGDIR}/
+ -cp ${APPDIR}/starch/bin/starch ${OSXPKGDIR}/
+ -cp ${APPDIR}/starch/bin/unstarch ${OSXPKGDIR}/
+ -cp ${APPDIR}/starch/bin/starchcat ${OSXPKGDIR}/
+ -cp ${APPDIR}/starch/bin/starchcluster_sge ${OSXPKGDIR}/starchcluster_sge
+ -cp ${APPDIR}/starch/bin/starchcluster_gnuParallel ${OSXPKGDIR}/starchcluster_gnuParallel
+ -cp ${APPDIR}/conversion/bin/convert2bed ${OSXPKGDIR}/
+ -cp ${APPDIR}/conversion/src/wrappers/bam2bed ${OSXPKGDIR}/bam2bed
+ -cp ${APPDIR}/conversion/src/wrappers/gff2bed ${OSXPKGDIR}/gff2bed
+ -cp ${APPDIR}/conversion/src/wrappers/gtf2bed ${OSXPKGDIR}/gtf2bed
+ -cp ${APPDIR}/conversion/src/wrappers/gvf2bed ${OSXPKGDIR}/gvf2bed
+ -cp ${APPDIR}/conversion/src/wrappers/psl2bed ${OSXPKGDIR}/psl2bed
+ -cp ${APPDIR}/conversion/src/wrappers/rmsk2bed ${OSXPKGDIR}/rmsk2bed
+ -cp ${APPDIR}/conversion/src/wrappers/sam2bed ${OSXPKGDIR}/sam2bed
+ -cp ${APPDIR}/conversion/src/wrappers/vcf2bed ${OSXPKGDIR}/vcf2bed
+ -cp ${APPDIR}/conversion/src/wrappers/wig2bed ${OSXPKGDIR}/wig2bed
+ -cp ${APPDIR}/conversion/src/wrappers/bam2starch ${OSXPKGDIR}/bam2starch
+ -cp ${APPDIR}/conversion/src/wrappers/gff2starch ${OSXPKGDIR}/gff2starch
+ -cp ${APPDIR}/conversion/src/wrappers/gtf2starch ${OSXPKGDIR}/gtf2starch
+ -cp ${APPDIR}/conversion/src/wrappers/gvf2starch ${OSXPKGDIR}/gvf2starch
+ -cp ${APPDIR}/conversion/src/wrappers/psl2starch ${OSXPKGDIR}/psl2starch
+ -cp ${APPDIR}/conversion/src/wrappers/rmsk2starch ${OSXPKGDIR}/rmsk2starch
+ -cp ${APPDIR}/conversion/src/wrappers/sam2starch ${OSXPKGDIR}/sam2starch
+ -cp ${APPDIR}/conversion/src/wrappers/vcf2starch ${OSXPKGDIR}/vcf2starch
+ -cp ${APPDIR}/conversion/src/wrappers/wig2starch ${OSXPKGDIR}/wig2starch
+ -cp ${APPDIR}/conversion/src/wrappers/bam2bed_sge ${OSXPKGDIR}/bam2bed_sge
+ -cp ${APPDIR}/conversion/src/wrappers/bam2bed_gnuParallel ${OSXPKGDIR}/bam2bed_gnuParallel
+ -cp ${APPDIR}/conversion/src/wrappers/bam2starch_sge ${OSXPKGDIR}/bam2starch_sge
+ -cp ${APPDIR}/conversion/src/wrappers/bam2starch_gnuParallel ${OSXPKGDIR}/bam2starch_gnuParallel
+ mkdir -p ${OSXLIBDIR}
+
+update_bedops_version:
+ifndef OLD_VER
+ $(error Old version variable OLD_VER is undefined (e.g., 2.4.16))
+endif
+ifndef NEW_VER
+ $(error New version variable NEW_VER is undefined (e.g., 2.4.17))
+endif
+ifeq ($(KERNEL), Darwin)
+ sed -i "" -e "s/"$$OLD_VER"/"$$NEW_VER"/g" README.md
+ sed -i "" -e "s/"$$OLD_VER"/"$$NEW_VER"/g" packaging/rpm/bedops.spec
+ sed -i "" -e "s/"$$OLD_VER"/"$$NEW_VER"/g" packaging/rpm/Dockerfile
+ sed -i "" -e "s/"$$OLD_VER"/"$$NEW_VER"/g" packaging/deb/control
+ sed -i "" -e "s/"$$OLD_VER"/"$$NEW_VER"/g" packaging/deb/Dockerfile
+ sed -i "" -e "s/"$$OLD_VER"/"$$NEW_VER"/g" interfaces/general-headers/suite/BEDOPS.Version.hpp
+ sed -i "" -e "s/"$$OLD_VER"/"$$NEW_VER"/g" packaging/os_x/BEDOPS.pkgproj
+ sed -i "" -e "s/"$$OLD_VER"/"$$NEW_VER"/g" docs/index.rst
+ sed -i "" -e "s/"$$OLD_VER"/"$$NEW_VER"/g" docs/conf.py
+ sed -i "" -e "s/"$$OLD_VER"/"$$NEW_VER"/g" applications/bed/conversion/src/convert2bed.h
+ find docs/content -type f -exec sed -i "" -e "s/"$$OLD_VER"/"$$NEW_VER"/g" {} +
+else
+ sed -i "s/"$$OLD_VER"/"$$NEW_VER"/g" README.md
+ sed -i "s/"$$OLD_VER"/"$$NEW_VER"/g" packaging/rpm/bedops.spec
+ sed -i "s/"$$OLD_VER"/"$$NEW_VER"/g" packaging/rpm/Dockerfile
+ sed -i "s/"$$OLD_VER"/"$$NEW_VER"/g" packaging/deb/control
+ sed -i "s/"$$OLD_VER"/"$$NEW_VER"/g" packaging/deb/Dockerfile
+ sed -i "s/"$$OLD_VER"/"$$NEW_VER"/g" interfaces/general-headers/suite/BEDOPS.Version.hpp
+ sed -i "s/"$$OLD_VER"/"$$NEW_VER"/g" packaging/os_x/BEDOPS.pkgproj
+ sed -i "s/"$$OLD_VER"/"$$NEW_VER"/g" docs/index.rst
+ sed -i "s/"$$OLD_VER"/"$$NEW_VER"/g" docs/conf.py
+ sed -i "s/"$$OLD_VER"/"$$NEW_VER"/g" applications/bed/conversion/src/convert2bed.h
+ find docs/content -type f -exec sed -i "s/"$$OLD_VER"/"$$NEW_VER"/g" {} +
+endif
+
+docker: packaging/docker/Dockerfile
+ docker build -t bedops -f packaging/docker/Dockerfile .
+
+rpm: packaging/rpm/Dockerfile
+ docker build -t bedops:rpm -f packaging/rpm/Dockerfile .
+
+deb: packaging/deb/Dockerfile
+ docker build -t bedops:deb -f packaging/deb/Dockerfile .
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..7b4801c
--- /dev/null
+++ b/README.md
@@ -0,0 +1,69 @@
+## BEDOPS v2.4.20: high-performance genomic feature operations ##
+
+[![Build Status](https://travis-ci.org/bedops/bedops.svg?branch=master)](https://travis-ci.org/bedops/bedops) [![GitHub stars](https://img.shields.io/github/stars/bedops/bedops.svg)](https://github.com/bedops/bedops/stargazers) [![Project license](https://img.shields.io/badge/license-GPLv2-blue.svg)](https://github.com/bedops/bedops/blob/master/LICENSE) [![Documentation Status](https://readthedocs.org/projects/bedops/badge/?version=latest)](https://readthedocs.org/projects/bedops/?badge=latest)
+
+<!-- <img src="http://bedops.readthedocs.io/en/latest/_static/logo_with_label_v2.png" align="right" style="max-width:33%" /> -->
+
+### About ###
+
+**BEDOPS v2.4.20** is a suite of tools to address common questions raised in genomic studies — mostly with regard to overlap and proximity relationships between data sets. It aims to be scalable and flexible, facilitating the efficient and accurate analysis and management of large-scale genomic data.
+
+The <a href="https://bedops.readthedocs.io/en/latest/content/overview.html#overview">overview</a> section of the **BEDOPS v2.4.20** documentation summarizes the toolkit, functionality and performance enhancements. The <a href="https://bedops.readthedocs.io/en/latest/index.html#reference">reference</a> table offers documentation for all applications and scripts.
+
+
+### Downloads ###
+
+<table width="100%">
+<tr>
+<th width="33%" align="left">
+<img src="https://bedops.readthedocs.io/en/latest/_images/linux_v2.png" height="26px" style="height:26px !important; width: auto !important; margin-bottom:10px;">
+</th>
+<th width="33%" align="left">
+<img src="https://bedops.readthedocs.io/en/latest/_images/macosx_v2.png" height="26px" style="height:26px !important; width: auto !important; margin-bottom:10px;">
+</th>
+<th width="34%" align="left">
+<img src="https://bedops.readthedocs.io/en/latest/_images/source_v2.png" height="26px" style="height:26px !important; width: auto !important; margin-bottom:10px;">
+</th>
+</tr>
+<tr>
+<td valign="top">
+<ul style="list-style-type:square; font-size:smaller; margin-left:0; margin-right:0px; padding-right:0px; padding-left:20px;">
+<li><a href="https://github.com/bedops/bedops/releases/download/v2.4.20/bedops_linux_x86_64-v2.4.20.tar.bz2">x86-64 (64-bit)</a> binaries</li>
+<li><a href="https://github.com/bedops/bedops/releases/download/v2.4.20/bedops_linux_i386-v2.4.20.tar.bz2">i386 (32-bit)</a> binaries</li>
+<li><a href="http://bedops.readthedocs.io/en/latest/content/installation.html#linux">Installation instructions</a> for Linux hosts</li>
+</ul>
+</td>
+<td valign="top">
+<ul style="list-style-type:square; font-size:smaller; margin-left:0; margin-right:0px; padding-right:0px; padding-left:20px;">
+<li><a href="https://github.com/bedops/bedops/releases/download/v2.4.20/BEDOPS.2.4.20.pkg.zip">Intel (32-/64-bit, 10.7-10.11)</a> installer package</li>
+<li><a href="http://bedops.readthedocs.io/en/latest/content/installation.html#mac-os-x">Installation instructions</a> for Mac OS X hosts</li>
+</ul>
+</td>
+<td valign="top">
+<ul style="list-style-type:square; font-size:smaller; margin-left:0; margin-right:0px; padding-right:0px; padding-left:20px;">
+<li><a href="https://github.com/bedops/bedops/archive/v2.4.20.tar.gz">Source code</a> (tar.gz)</li>
+<li><a href="https://github.com/bedops/bedops/archive/v2.4.20.zip">Source code</a> (zip)</li>
+<li><a href="http://bedops.readthedocs.io/en/latest/content/installation.html#installation-via-source-code">Compilation instructions</a></li>
+</ul>
+</td>
+</tr>
+</table>
+
+### Documentation ###
+
+Complete documentation for **BEDOPS v2.4.20** tools is available at: <a href="https://bedops.readthedocs.io/en/latest/index.html">https://bedops.readthedocs.io/</a>
+
+### Citation ###
+
+If you use **BEDOPS v2.4.20** in your research, please cite the following manuscript:
+
+> Shane Neph, M. Scott Kuehn, Alex P. Reynolds, et al.
+> [**BEDOPS: high-performance genomic feature operations**
+> *Bioinformatics* (2012) 28 (14): 1919-1920.] (http://bioinformatics.oxfordjournals.org/content/28/14/1919.abstract)
+
+### Copyright ###
+
+> Copyright (C) 2011-2016 Shane J. Neph, M. Scott Kuehn and Alex P. Reynolds
+>
+> Source code, documentation and media assets released under <a href="https://github.com/bedops/bedops/blob/master/LICENSE">GNU Public License Version 2</a> (GPL v2).
+
diff --git a/applications/bed/bedextract/src/ExtractRows.cpp b/applications/bed/bedextract/src/ExtractRows.cpp
new file mode 100644
index 0000000..c647566
--- /dev/null
+++ b/applications/bed/bedextract/src/ExtractRows.cpp
@@ -0,0 +1,353 @@
+/*
+ Author: Shane Neph & Alex Reynolds
+ Date: Mon Jan 23 06:29:10 PST 2012
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#include <algorithm>
+#include <cctype>
+#include <cstdlib>
+#include <cstring>
+#include <exception>
+#include <fstream>
+#include <iostream>
+#include <iterator>
+#include <limits>
+#include <map>
+#include <numeric>
+#include <string>
+#include <utility>
+#include <vector>
+
+#include "algorithm/bed/FindBedRange.hpp"
+#include "algorithm/visitors/helpers/ProcessBedVisitorRow.hpp"
+#include "data/bed/BedTypes.hpp"
+#include "data/bed/BedCheckIterator.hpp"
+#include "suite/BEDOPS.Constants.hpp"
+#include "suite/BEDOPS.Version.hpp"
+#include "utility/Exception.hpp"
+
+namespace {
+
+ const std::string prognm = "bedextract";
+ const std::string citation = BEDOPS::citation();
+ const std::string version = BEDOPS::revision();
+ const std::string authors = "Shane Neph & Alex Reynolds";
+
+ //======
+ // Help
+ //======
+ struct Help {};
+
+ //=========
+ // Version
+ //=========
+ struct Version {};
+
+ //=======
+ // Cache
+ //=======
+ template <typename ValueType>
+ struct Cache {
+ Cache() : empty_(true), value_()
+ { }
+
+ template <typename T>
+ void operator()(const T* t) {
+ value_ = static_cast<ValueType>(*t);
+ empty_ = false;
+ }
+
+ bool Empty() const { return empty_; }
+ void Clear() const { empty_ = true; }
+
+ private:
+ bool empty_;
+ ValueType value_;
+ };
+
+ using Bed::extract_details::TargetBedType;
+ using Bed::extract_details::QueryBedType;
+ using Bed::ByteOffset;
+ typedef Bed::CoordType CoordType;
+
+ //=======
+ // Input
+ //=======
+ struct Input {
+
+ enum OpMode { TWOFILE, ONECHROME, CHROMELIST };
+
+ Input(int argc, char** argv) : m_(TWOFILE), f1_(NULL), f2_(NULL), f2Name_(""), chrom_("") {
+ for ( int i = 1; i < argc; ++i ) {
+ if ( std::string(argv[i]) == "--help" )
+ throw(Help());
+ else if ( std::string(argv[i]) == "--version" )
+ throw(Version());
+ } // for
+
+ int argcntr = 1;
+ if ( argc != 3 ) {
+ if ( 1 == argc )
+ throw(std::string("")); // no input args
+ throw(std::string("Wrong # args"));
+ }
+
+
+ if ( std::string(argv[argcntr]) == "--list-chr" || std::string(argv[argcntr]) == "--listchr" ) {
+ // still silently support --listchr
+ m_ = CHROMELIST;
+ std::string fn = argv[++argcntr];
+ if ( fn == "-" )
+ throw("No stdin support for first file given to " + prognm);
+ f1_ = std::fopen(fn.c_str(), "rb");
+ if ( f1_ == NULL )
+ throw("Unable to find file: " + fn);
+ else if ( starch::Starch::isStarch(f1_) )
+ throw("Starch format is not supported with first file given to " + prognm + std::string("\nProblem file: ") + fn);
+ } else {
+ m_ = TWOFILE;
+ std::string fn = argv[argcntr];
+ if ( fn == "-" )
+ throw("No stdin support for first file given to " + prognm + ".");
+ f1_ = std::fopen(fn.c_str(), "rb");
+ if ( f1_ == NULL ) {
+ if ( fn.find("--") == 0 )
+ throw("Unrecognized option: " + fn + " given to " + prognm + ".");
+ m_ = ONECHROME;
+ chrom_ = argv[argcntr];
+ fn = argv[++argcntr];
+ if ( fn == "-" )
+ throw("No stdin support for first file given to " + prognm +
+ ". Using <chromosome> = " + chrom_ + " since " + chrom_ + " is no file.");
+ f1_ = std::fopen(fn.c_str(), "rb");
+ if ( f1_ == NULL )
+ throw("Unable to find file: " + std::string(argv[argcntr]));
+ } else {
+ ++argcntr;
+ if ( std::string(argv[argcntr]) == "-" )
+ f2_ = stdin, f2Name_ = "stdin";
+ else
+ f2_ = std::fopen(argv[argcntr], "rb"), f2Name_ = argv[argcntr];
+ if ( f2_ == NULL )
+ throw("Unable to find file: " + f2Name_);
+ }
+
+ if ( starch::Starch::isStarch(f1_) )
+ throw("Starch format is not supported with first file given to " + prognm + std::string("\nProblem file: ") + fn);
+ }
+ }
+
+ OpMode Mode() const { return m_; }
+ FILE* File1() { return f1_; }
+ FILE* File2() { return f2_; }
+ std::string File2Name() const { return f2Name_; }
+ std::string Chrome() const { return(chrom_); }
+
+ ~Input() {
+ if ( f1_ != NULL )
+ std::fclose(f1_);
+ if ( f2_ != NULL && f2_ != stdin )
+ std::fclose(f2_);
+ }
+
+ private:
+ OpMode m_;
+ FILE* f1_;
+ FILE* f2_;
+ std::string f2Name_;
+ std::string chrom_;
+ };
+
+
+ //=========
+ // usage()
+ //=========
+ std::string usage() {
+ std::string msg = "\n Every input file must be sorted per sort-bed.\n\n";
+ msg += " USAGE:\n";
+ msg += " 0) --help or --version Print requested info and exit successfully\n";
+ msg += " 1) --list-chr <input.bed> Print all unique chromosome names found in <input.bed>\n";
+ msg += " 2) <chromosome> <input.bed> Retrieve all rows for chr8 with: bedextract chr8 <input.bed>\n";
+ msg += " 3) <query.bed> <target> Grab elements from the <query.bed> that overlap elements in <target>. Same as\n";
+ msg += " `bedops -e 1 <query.bed> <target>`, except that this option fails silently\n";
+ msg += " if <query.bed> contains fully-nested BED elements. If no fully-nested\n";
+ msg += " element exists, bedextract can vastly improve upon the performance of bedops.\n";
+ msg += " <target> may be a BED or Starch file (with or without fully-nested elements).\n";
+ msg += " Using '-' for <target> indicates input (in BED format) comes from stdin.\n";
+ return(msg);
+ }
+
+ //===============
+ // skipHeaders()
+ //===============
+ bool skipHeaders(FILE* f) {
+ // move beyond any silly headers
+ std::rewind(f);
+ ByteOffset no_header = std::ftell(f);
+
+ bool firstword = true, firstletter = true, isheader = false;
+ std::string word;
+ char c;
+ while ( (c = static_cast<char>(std::fgetc(f))) != EOF ) {
+ if ( c == '\n' ) {
+ if ( isheader || word == "browser" || word == "track" ) { // 'browser' may be only word on line
+ word = "";
+ firstword = true;
+ firstletter = true;
+ isheader = false;
+ no_header = std::ftell(f);
+ } else {
+ break;
+ }
+ } else if ( isheader ) {
+ continue;
+ } else {
+ if ( c == ' ' || c == '\t' ) { // know it's not a newline; first word completed
+ firstword = false;
+ if ( word == "browser" || word == "track" ) // UCSC BED headers
+ isheader = true;
+ else
+ break;
+ }
+ if ( firstword )
+ word += c;
+ if ( firstletter && (c == '@' || c == '#') ) // SAM and VCF format headers
+ isheader = true;
+ firstletter = false;
+ }
+ } // while
+ std::fseek(f, no_header, SEEK_SET);
+ return(c == EOF);
+ }
+
+ //==========
+ // doWork()
+ //==========
+ void doWork(Input& input) {
+ // execute the mode requested by the user
+ Input::OpMode mode = input.Mode();
+ FILE* f = input.File1();
+ bool at_end = skipHeaders(f);
+ if ( at_end )
+ return;
+ ByteOffset no_header = std::ftell(f);
+
+ if ( mode == Input::TWOFILE ) { // find elements of file1 that overlap specified ranges of file2
+ Visitors::BedHelpers::Println printer;
+ if ( input.File2Name() == "stdin" ) {
+ Bed::bed_check_iterator<TargetBedType*> titer(std::cin, input.File2Name()), teof;
+ find_bed_range(f, titer, teof, printer);
+ } else {
+ std::ifstream* infile = new std::ifstream(input.File2Name().c_str());
+ Bed::bed_check_iterator<TargetBedType*> titer(*infile, input.File2Name()), teof;
+ find_bed_range(f, titer, teof, printer);
+ delete infile;
+ }
+ } else if ( mode == Input::CHROMELIST ) {
+ bool done = false, first = true;
+ Cache<TargetBedType> cache;
+ std::vector<TargetBedType*> v;
+ std::pair<bool, ByteOffset> lbound;
+
+ std::fseek(f, 0, SEEK_END); // apparently dangerous on some platforms in binary mode -> padded nulls;
+ const ByteOffset at_end = std::ftell(f); // I'll assume msft is the problem until I know better
+ std::fseek(f, no_header, SEEK_SET);
+
+ while ( !done ) {
+ TargetBedType* bt = new TargetBedType(f); // find_bed_range cleans up for us
+ bt->start(std::numeric_limits<CoordType>::max()-1);
+ bt->end(bt->start()+1);
+
+ if ( first ) {
+ printf("%s\n", bt->chrom());
+ first = !first;
+ }
+
+ v.push_back(bt);
+ lbound = find_bed_range(f, v.begin(), v.end(), cache);
+ v.clear(); // bt already deleted
+ if ( !cache.Empty() )
+ throw(std::string("program error: bed coordinates beyond designed range\n"));
+ if ( lbound.first && lbound.second != at_end ) {
+ std::fseek(f, lbound.second, SEEK_SET);
+ ByteOffset b = std::ftell(f);
+ QueryBedType q(f);
+ printf("%s\n", q.chrom());
+ std::fseek(f, b, SEEK_SET);
+ }
+ else
+ break;
+ } // while
+ } else if ( mode == Input::ONECHROME ) {
+ std::vector<TargetBedType*> v;
+ TargetBedType* bt = new TargetBedType;
+ std::string tmp = input.Chrome();
+ bt->chrom(tmp.c_str());
+ bt->start(0);
+ bt->end(std::numeric_limits<CoordType>::max());
+ v.push_back(bt);
+ Visitors::BedHelpers::Println printer;
+ find_bed_range(f, v.begin(), v.end(), printer); // routine deletes bt for us
+ } else
+ throw(std::string("program error : unrecognized mode"));
+ }
+
+} // unnamed
+
+
+//========
+// main()
+//========
+int main(int argc, char** argv) {
+ bool isok = false;
+ try {
+ Input input(argc, argv);
+ doWork(input);
+ isok = true;
+ } catch(const Help& h) {
+ std::cout << prognm << std::endl;
+ std::cout << " citation: " + citation << std::endl;
+ std::cout << " version: " + version << std::endl;
+ std::cout << " authors: " + authors << std::endl;
+ std::cout << usage() << std::endl;
+ isok = true;
+ } catch(const Version& v) {
+ std::cout << prognm << std::endl;
+ std::cout << " citation: " + citation << std::endl;
+ std::cout << " version: " + version << std::endl;
+ std::cout << " authors: " + authors << std::endl;
+ isok = true;
+ } catch(std::string& msg) {
+ std::cerr << prognm << std::endl;
+ std::cerr << " citation: " + citation << std::endl;
+ std::cerr << " version: " + version << std::endl;
+ std::cerr << " authors: " + authors << std::endl;
+ std::cerr << usage() << std::endl;
+ std::cerr << msg << std::endl;
+ } catch(std::exception& e) {
+ std::cerr << usage() << std::endl;
+ std::cerr << e.what() << std::endl;
+ } catch(...) {
+ std::cerr << usage() << std::endl;
+ std::cerr << "Unknown Error. Aborting" << std::endl;
+ }
+ return(isok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
diff --git a/applications/bed/bedextract/src/Makefile b/applications/bed/bedextract/src/Makefile
new file mode 100644
index 0000000..11f935d
--- /dev/null
+++ b/applications/bed/bedextract/src/Makefile
@@ -0,0 +1,67 @@
+MAIN = ../../../..
+MAINAPPDIR = ../..
+HEAD = $(MAIN)/interfaces/general-headers
+LIB1 = $(MAIN)/interfaces/src/data/measurement
+LIB2 = $(MAIN)/interfaces/src/utility
+LIB3 = $(MAIN)/interfaces/src/data/starch
+THISDIR = ${shell pwd}
+PARTY3 = ${THISDIR}/$(MAIN)/third-party
+OBJDIR = objects
+LIBJANSSON = libjansson.a
+LIBBZIP2 = libbz2.a
+LIBZLIB = libz.a
+LOCALJANSSONDIR = ${PARTY3}/jansson
+LOCALJANSSONLIBDIR = ${LOCALJANSSONDIR}/lib
+LOCALJANSSONINCDIR = ${LOCALJANSSONDIR}/include
+LOCALJANSSONLIB = ${LOCALJANSSONLIBDIR}/${LIBJANSSON}
+LOCALBZIP2DIR = ${PARTY3}/bzip2
+LOCALBZIP2LIBDIR = ${LOCALBZIP2DIR}
+LOCALBZIP2LIB = ${LOCALBZIP2LIBDIR}/${LIBBZIP2}
+LOCALBZIP2INCDIR = ${LOCALBZIP2DIR}
+LOCALZLIBDIR = ${PARTY3}/zlib
+LOCALZLIBLIB = ${LOCALZLIBDIR}/${LIBZLIB}
+LOCALZLIBINCDIR = ${LOCALZLIBDIR}
+INCLUDES = -iquote$(HEAD) -I${LOCALJANSSONINCDIR} -I${LOCALBZIP2INCDIR} -I${LOCALZLIBINCDIR}
+LIBLOCATION = -L${LOCALJANSSONLIBDIR} -L${LOCALBZIP2LIBDIR} -L${LOCALZLIBDIR}
+LIBRARIES = ${LOCALJANSSONLIB} ${LOCALBZIP2LIB} ${LOCALZLIBLIB}
+BLDFLAGS = -Wall -pedantic -O3 -std=c++11
+SFLAGS = -static
+
+dependency_names = NaN starchConstants starchFileHelpers starchHelpers starchMetadataHelpers unstarchHelpers starchSha1Digest starchBase64Coding
+dependencies = $(addprefix $(OBJDIR)/, $(addsuffix .o, $(dependency_names)))
+FLAGS = $(SFLAGS) -s $(BLDFLAGS) $(dependencies) ${LIBLOCATION} ${INCLUDES}
+DFLAGS = $(SFLAGS) -g -O0 -std=c++11 -Wall -fno-inline -pedantic $(dependencies) ${LIBLOCATION} ${INCLUDES}
+GPROFFLAGS = $(SFLAGS) -O -std=c++11 -Wall -pedantic -pg $(dependencies) ${LIBLOCATION} ${INCLUDES}
+
+SOURCE1 = ExtractRows.cpp
+BINDIR = ../bin
+PROG = bedextract
+
+build: $(BINDIR)/$(PROG)
+
+build_gprof: $(BINDIR)/gprof.$(PROG)
+
+build_debug: $(BINDIR)/debug.$(PROG)
+
+dependencies: $(dependencies)
+
+$(BINDIR)/$(PROG) : $(dependencies)
+ mkdir -p $(BINDIR) && $(CXX) -o $@ $(FLAGS) ${LIBRARIES} $(SOURCE1)
+
+$(BINDIR)/gprof.$(PROG) : $(dependencies)
+ mkdir -p $(BINDIR) && $(CXX) -o $@ $(GPROFFLAGS) ${LIBRARIES} $(SOURCE1)
+
+$(BINDIR)/debug.$(PROG) : $(dependencies)
+ mkdir -p $(BINDIR) && $(CXX) -o $@ $(DFLAGS) ${LIBRARIES} $(SOURCE1)
+
+$(OBJDIR)/%.o : $(LIB1)/%.cpp
+ mkdir -p $(OBJDIR) && $(CXX) -c $(BLDFLAGS) $^ -o $@ ${INCLUDES}
+
+$(OBJDIR)/%.o : $(LIB3)/%.c
+ mkdir -p $(OBJDIR) && $(CXX) -c ${BLDFLAGS} $^ -o $@ ${INCLUDES}
+
+clean:
+ rm -rf $(OBJDIR)
+ rm -f $(BINDIR)/$(PROG)
+ rm -f $(BINDIR)/*.$(PROG)
+ rm -rf $(BINDIR)
\ No newline at end of file
diff --git a/applications/bed/bedextract/src/Makefile.darwin b/applications/bed/bedextract/src/Makefile.darwin
new file mode 100644
index 0000000..819622d
--- /dev/null
+++ b/applications/bed/bedextract/src/Makefile.darwin
@@ -0,0 +1,69 @@
+MIN_OSX_VERSION = 10.7
+
+MAIN = ../../../..
+MAINAPPDIR = ../..
+HEAD = $(MAIN)/interfaces/general-headers
+LIB1 = $(MAIN)/interfaces/src/data/measurement
+LIB2 = $(MAIN)/interfaces/src/utility
+LIB3 = $(MAIN)/interfaces/src/data/starch
+THISDIR = ${shell pwd}
+PARTY3 = ${THISDIR}/$(MAIN)/third-party
+OBJDIR = objects_$(ARCH)
+LIBJANSSON = libjansson.a
+LIBBZIP2 = libbz2.a
+LIBZLIB = libz.a
+LOCALJANSSONDIR = ${PARTY3}/darwin_intel_${ARCH}/jansson
+LOCALJANSSONLIBDIR = ${LOCALJANSSONDIR}/lib
+LOCALJANSSONINCDIR = ${LOCALJANSSONDIR}/include
+LOCALJANSSONLIB = ${LOCALJANSSONLIBDIR}/${LIBJANSSON}
+LOCALBZIP2DIR = ${PARTY3}/darwin_intel_${ARCH}/bzip2
+LOCALBZIP2LIBDIR = ${LOCALBZIP2DIR}
+LOCALBZIP2LIB = ${LOCALBZIP2LIBDIR}/${LIBBZIP2}
+LOCALBZIP2INCDIR = ${LOCALBZIP2DIR}
+LOCALZLIBDIR = ${PARTY3}/darwin_intel_${ARCH}/zlib
+LOCALZLIBLIBDIR = ${LOCALZLIBDIR}
+LOCALZLIBLIB = ${LOCALZLIBLIBDIR}/${LIBZLIB}
+LOCALZLIBINCDIR = ${LOCALZLIBDIR}
+INCLUDES = -iquote$(HEAD) -I${LOCALJANSSONINCDIR} -I${LOCALBZIP2INCDIR} -I${LOCALZLIBINCDIR}
+LIBLOCATION = -L${LOCALJANSSONLIBDIR} -L${LOCALBZIP2LIBDIR} -L${LOCALZLIBLIBDIR}
+LIBRARIES = ${LOCALJANSSONLIB} ${LOCALBZIP2LIB} ${LOCALZLIBLIB}
+STDFLAGS = -Wall -pedantic -std=c++11 -stdlib=libc++
+BLDFLAGS = -O3 ${STDFLAGS}
+
+
+FLAGS = $(BLDFLAGS) $(OBJDIR)/NaN.o $(OBJDIR)/starchConstants.o $(OBJDIR)/starchFileHelpers.o $(OBJDIR)/starchHelpers.o $(OBJDIR)/starchMetadataHelpers.o $(OBJDIR)/unstarchHelpers.o $(OBJDIR)/starchSha1Digest.o $(OBJDIR)/starchBase64Coding.o ${LIBLOCATION} ${INCLUDES}
+
+DFLAGS = -g -O0 ${STDFLAGS} $(OBJDIR)/NaN.o $(OBJDIR)/starchConstants.o $(OBJDIR)/starchFileHelpers.o $(OBJDIR)/starchHelpers.o $(OBJDIR)/starchMetadataHelpers.o $(OBJDIR)/unstarchHelpers.o $(OBJDIR)/starchSha1Digest.o $(OBJDIR)/starchBase64Coding.o ${LIBLOCATION} ${INCLUDES}
+
+GPROFFLAGS = -O -pg ${STDFLAGS} $(OBJDIR)/NaN.o $(OBJDIR)/starchConstants.o $(OBJDIR)/starchFileHelpers.o $(OBJDIR)/starchHelpers.o $(OBJDIR)/starchMetadataHelpers.o $(OBJDIR)/unstarchHelpers.o $(OBJDIR)/starchSha1Digest.o $(OBJDIR)/starchBase64Coding.o ${LIBLOCATION} ${INCLUDES}
+
+SOURCE1 = ExtractRows.cpp
+BINDIR = ../bin
+PROG = bedextract
+
+build: dependencies
+ $(CXX) -o $(BINDIR)/$(PROG)_$(ARCH) $(FLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) ${LIBRARIES} $(SOURCE1)
+
+build_debug: dependencies
+ $(CXX) -o $(BINDIR)/debug.$(PROG)_$(ARCH) $(DFLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) ${LIBRARIES} $(SOURCE1)
+
+build_gprof: dependencies
+ $(CXX) -o $(BINDIR)/gprof.$(PROG)_$(ARCH) $(GPROFFLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) ${LIBRARIES} $(SOURCE1)
+
+dependencies:
+ rm -rf $(OBJDIR)
+ mkdir -p $(OBJDIR)
+ $(CXX) -c $(BLDFLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) $(LIB1)/NaN.cpp -o $(OBJDIR)/NaN.o ${INCLUDES}
+ $(CXX) -x c++ -c $(BLDFLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) $(LIB3)/starchConstants.c -o $(OBJDIR)/starchConstants.o ${INCLUDES}
+ $(CXX) -x c++ -c $(BLDFLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) $(LIB3)/starchFileHelpers.c -o $(OBJDIR)/starchFileHelpers.o ${INCLUDES}
+ $(CXX) -x c++ -c $(BLDFLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) $(LIB3)/starchHelpers.c -o $(OBJDIR)/starchHelpers.o ${INCLUDES}
+ $(CXX) -x c++ -c $(BLDFLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) $(LIB3)/starchMetadataHelpers.c -o $(OBJDIR)/starchMetadataHelpers.o ${INCLUDES}
+ $(CXX) -x c++ -c $(BLDFLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) $(LIB3)/unstarchHelpers.c -o $(OBJDIR)/unstarchHelpers.o ${INCLUDES}
+ ${CXX} -x c++ -c ${BLDFLAGS} -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) ${LIB3}/starchSha1Digest.c -o ${OBJDIR}/starchSha1Digest.o ${INCLUDES}
+ ${CXX} -x c++ -c ${BLDFLAGS} -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) ${LIB3}/starchBase64Coding.c -o ${OBJDIR}/starchBase64Coding.o ${INCLUDES}
+
+clean:
+ rm -rf $(OBJDIR)
+ rm -rf $(BINDIR)/$(PROG)*
+ rm -rf $(BINDIR)/*.$(PROG)*
+ rm -rf $(BINDIR)
diff --git a/applications/bed/bedmap/doc/known.issues b/applications/bed/bedmap/doc/known.issues
new file mode 100644
index 0000000..a3283ff
--- /dev/null
+++ b/applications/bed/bedmap/doc/known.issues
@@ -0,0 +1,33 @@
+Shane Neph
+Create Date : Dec. 18, 2009
+
+sort-bed cannot sort output from bedmap --echo --[otherops] with multi-column outputs separated by '|', for example, when the ref file has 3 columns:
+chr1 1 10|something. bedops/bedmap/closest-features wouldn't be able to work on it either.
+
+
+---------------------------------------------------------------------------------------------------
+Non-issues, but 'gotchas'
+
+
+=========
+Gotcha-1:
+=========
+File1:
+chr1 1 2 i 1
+chr1 7 15 j 2
+chr1 12 20 k 3
+
+File2:
+chr1 1 4
+chr1 3 6
+chr1 10 30
+
+You use:
+bedmap --fraction-map 1 --echo-mapRange --echo-mapScore File2 File1
+
+You receive:
+chr1 1 2|1
+<blank line>
+chr1 7 20|2;3
+
+It's a good idea to use --indicator or --echo to ensure there are no blank lines in the output, or use --skip-unmapped to exclude those on the output.
diff --git a/applications/bed/bedmap/src/Bedmap.cpp b/applications/bed/bedmap/src/Bedmap.cpp
new file mode 100644
index 0000000..d8b6385
--- /dev/null
+++ b/applications/bed/bedmap/src/Bedmap.cpp
@@ -0,0 +1,736 @@
+/*
+ Author: Scott Kuehn, Shane Neph
+ Date: Wed Oct 17 14:23:29 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#include <cctype>
+#include <cstdlib>
+#include <exception>
+#include <fstream>
+#include <map>
+#include <sstream>
+#include <string>
+#include <utility>
+#include <vector>
+
+#include "algorithm/visitors/BedVisitors.hpp"
+#include "algorithm/visitors/helpers/NamedVisitors.hpp"
+#include "algorithm/visitors/helpers/ProcessVisitorRow.hpp"
+#include "algorithm/WindowSweep.hpp"
+#include "data/bed/AllocateIterator_BED_starch.hpp"
+#include "data/bed/BedCheckIterator.hpp"
+#include "data/bed/BedDistances.hpp"
+#include "data/bed/BedTypes.hpp"
+#include "suite/BEDOPS.Version.hpp"
+#include "utility/Assertion.hpp"
+#include "utility/ByLine.hpp"
+#include "utility/Exception.hpp"
+#include "utility/FPWrap.hpp"
+#include "utility/Typify.hpp"
+
+#include "Input.hpp"
+#include "TDefs.hpp"
+
+namespace BedMap {
+
+ const std::string prognm = "bedmap";
+ const std::string version = BEDOPS::revision();
+ const std::string authors = "Shane Neph & Scott Kuehn";
+ const std::string citation = BEDOPS::citation();
+
+ //======
+ // Help
+ //======
+ struct Help { /* */ };
+ struct Version { /* */ };
+
+ //======================
+ // Forward Declarations
+ //======================
+ template <typename SweepDistType, typename BedDistType>
+ void selectSweep(const SweepDistType& st,
+ const BedDistType& dt,
+ const std::string& refFileName,
+ const std::string& mapFileName,
+ int minRefFields,
+ int minMapFields,
+ bool errorCheck,
+ const std::string& colSep,
+ const std::string& multivalColSep,
+ int precision,
+ bool useScientific,
+ bool fastMode,
+ bool sweepAll,
+ const std::string& chrom,
+ bool skipUnmappedRows,
+ const std::vector<std::string>& visitorNames,
+ const std::vector <std::vector<std::string> >& visitorArgs);
+
+} // namespace BedMap
+
+
+
+
+//========
+// main()
+//========
+int main(int argc, char **argv) {
+
+ typedef BedMap::Input<Ext::UserError, BedMap::Help, BedMap::Version> InputType;
+
+ try {
+ InputType input(argc, argv);
+
+ std::vector<std::string> visitorNames = input.visitorNames_;
+ std::vector< std::vector<std::string> > visitorArgs = input.visitorArgs_;
+ int prec = input.precision_;
+ bool sci = input.useScientific_;
+
+ if ( input.isPercMap_ ) { // % overlap relative to MapType's size (signalmapish)
+ Bed::PercentOverlapMapping bedDist(input.percOvr_);
+ Bed::Overlapping sweepDist(0); // dist type for sweep different from BedBaseVisitor's
+ BedMap::selectSweep(sweepDist, bedDist, input.refFileName_, input.mapFileName_,
+ input.minRefFields_, input.minMapFields_, input.errorCheck_,
+ input.outDelim_, input.multiDelim_, prec, sci, input.fastMode_,
+ input.sweepAll_, input.chrom_, input.skipUnmappedRows_, visitorNames, visitorArgs);
+ } else if ( input.isPercRef_ ) { // % overlap relative to RefTypes's size (setops -e)
+ Bed::PercentOverlapReference bedDist(input.percOvr_);
+ Bed::Overlapping sweepDist(0); // dist type for sweep different from BedBaseVisitor's
+ BedMap::selectSweep(sweepDist, bedDist, input.refFileName_, input.mapFileName_,
+ input.minRefFields_, input.minMapFields_, input.errorCheck_,
+ input.outDelim_, input.multiDelim_, prec, sci, input.fastMode_,
+ input.sweepAll_, input.chrom_, input.skipUnmappedRows_, visitorNames, visitorArgs);
+ } else if ( input.isPercBoth_ ) { // % overlap relative to both MapType's and RefType's sizes
+ Bed::PercentOverlapBoth bedDist(input.percOvr_);
+ Bed::Overlapping sweepDist(0); // dist type for sweep different from BedBaseVisitor's
+ BedMap::selectSweep(sweepDist, bedDist, input.refFileName_, input.mapFileName_,
+ input.minRefFields_, input.minMapFields_, input.errorCheck_,
+ input.outDelim_, input.multiDelim_, prec, sci, input.fastMode_,
+ input.sweepAll_, input.chrom_, input.skipUnmappedRows_, visitorNames, visitorArgs);
+ } else if ( input.isExact_ ) { // must be identical coordinates
+ Bed::Exact bedDist;
+ Bed::Overlapping sweepDist(0); // dist type for sweep different from BedBaseVisitor's
+ BedMap::selectSweep(sweepDist, bedDist, input.refFileName_, input.mapFileName_,
+ input.minRefFields_, input.minMapFields_, input.errorCheck_,
+ input.outDelim_, input.multiDelim_, prec, sci, input.fastMode_,
+ input.sweepAll_, input.chrom_, input.skipUnmappedRows_, visitorNames, visitorArgs);
+ } else if ( input.isPercEither_ ) { // % overlap relative to either MapType's or RefType's size
+ Bed::PercentOverlapEither bedDist(input.percOvr_);
+ Bed::Overlapping sweepDist(0); // dist type for sweep different from BedBaseVisitor's
+ BedMap::selectSweep(sweepDist, bedDist, input.refFileName_, input.mapFileName_,
+ input.minRefFields_, input.minMapFields_, input.errorCheck_,
+ input.outDelim_, input.multiDelim_, prec, sci, input.fastMode_,
+ input.sweepAll_, input.chrom_, input.skipUnmappedRows_, visitorNames, visitorArgs);
+ } else if ( input.isRangeBP_ ) { // buffer each reference element
+ Bed::RangedDist bedDist(input.rangeBP_);
+ Bed::RangedDist sweepDist(input.rangeBP_); // same as bedDist in this case
+ BedMap::selectSweep(sweepDist, bedDist, input.refFileName_, input.mapFileName_,
+ input.minRefFields_, input.minMapFields_, input.errorCheck_,
+ input.outDelim_, input.multiDelim_, prec, sci, input.fastMode_,
+ input.sweepAll_, input.chrom_, input.skipUnmappedRows_, visitorNames, visitorArgs);
+ } else { // require a certain amount of bp overlap
+ Bed::Overlapping bedDist(input.overlapBP_);
+ Bed::Overlapping sweepDist(0); // dist type for sweep different from BedBaseVisitor's
+ BedMap::selectSweep(sweepDist, bedDist, input.refFileName_, input.mapFileName_,
+ input.minRefFields_, input.minMapFields_, input.errorCheck_,
+ input.outDelim_, input.multiDelim_, prec, sci, input.fastMode_,
+ input.sweepAll_, input.chrom_, input.skipUnmappedRows_, visitorNames, visitorArgs);
+ }
+
+ return(EXIT_SUCCESS);
+ } catch(const BedMap::Help& h) { // show usage and exit success
+ std::cout << BedMap::prognm << std::endl;
+ std::cout << " citation: " << BedMap::citation << std::endl;
+ std::cout << " version: " << BedMap::version << std::endl;
+ std::cout << " authors: " << BedMap::authors << std::endl;
+ std::cout << BedMap::Usage() << std::endl;
+ return(EXIT_SUCCESS);
+ } catch(const BedMap::Version& v) { // show version and exit success
+ std::cout << BedMap::prognm << std::endl;
+ std::cout << " citation: " << BedMap::citation << std::endl;
+ std::cout << " version: " << BedMap::version << std::endl;
+ std::cout << " authors: " << BedMap::authors << std::endl;
+ } catch(const BedMap::NoInput& ni) { // show usage and exit failure
+ std::cerr << BedMap::prognm << std::endl;
+ std::cerr << " citation: " << BedMap::citation << std::endl;
+ std::cerr << " version: " << BedMap::version << std::endl;
+ std::cerr << " authors: " << BedMap::authors << std::endl;
+ std::cerr << BedMap::Usage() << std::endl;
+ } catch(std::string& s) {
+ std::cerr << "May use bedmap --help for more help.\n" << std::endl;
+ std::cerr << "Error: " << s << std::endl;
+ } catch(const std::exception& stx) {
+ std::cerr << "May use bedmap --help for more help.\n" << std::endl;
+ std::cerr << "Error: " << stx.what() << std::endl;
+ } catch(...) {
+ std::cerr << "Unknown Error. Aborting" << std::endl;
+ }
+ return(EXIT_FAILURE);
+}
+
+
+namespace BedMap {
+
+ //============
+ // runSweep(): single-file mode
+ //============
+ template <typename BaseClass, typename SweepDistType, typename BedDistType>
+ void runSweep(const SweepDistType& st,
+ const BedDistType& dt,
+ const std::string& refFileName,
+ bool errorCheck,
+ bool nestCheck,
+ bool fastMode,
+ const std::string& columnSep,
+ const std::string& chrom,
+ bool skipUnmappedRows,
+ std::vector<BaseClass*>& visitorGroup) {
+
+ typedef typename BaseClass::RefType RefType;
+ typedef Visitors::Helpers::PrintDelim PrintType;
+
+ // Set up visitors
+ PrintType processFields(columnSep);
+ PrintType processRows("\n");
+ typedef Visitors::MultiVisitor<PrintType, PrintType, BaseClass> MVType;
+ MVType multiv(visitorGroup, dt, processFields, processRows, !skipUnmappedRows);
+
+ if ( !errorCheck ) { // faster iterators
+ // Create file handle iterators
+ Ext::FPWrap<Ext::InvalidFile> refFile(refFileName);
+ Bed::allocate_iterator_starch_bed<RefType*> refFileI(refFile, chrom), refFileEnd;
+
+ // Do work
+ if ( !fastMode )
+ WindowSweep::sweep(refFileI, refFileEnd, st, multiv);
+ else // no nested elements
+ WindowSweep::sweep(refFileI, refFileEnd, dt, multiv);
+ } else {
+ // Create file handle iterators
+ bool isStdin = (refFileName == "-");
+ std::ifstream infile(refFileName.c_str());
+ if ( !isStdin && !infile )
+ throw(Ext::UserError("Unable to find: " + refFileName));
+ if ( isStdin ) {
+ Bed::bed_check_iterator<RefType*> refFileI(std::cin, refFileName, chrom, nestCheck);
+ Bed::bed_check_iterator<RefType*> refFileEnd;
+ if ( !fastMode )
+ WindowSweep::sweep(refFileI, refFileEnd, st, multiv);
+ else // no nested elements
+ WindowSweep::sweep(refFileI, refFileEnd, dt, multiv);
+ } else {
+ Bed::bed_check_iterator<RefType*> refFileI(infile, refFileName, chrom, nestCheck);
+ Bed::bed_check_iterator<RefType*> refFileEnd;
+ if ( !fastMode )
+ WindowSweep::sweep(refFileI, refFileEnd, st, multiv);
+ else // no nested elements
+ WindowSweep::sweep(refFileI, refFileEnd, dt, multiv);
+ }
+ }
+
+ // multiv does cleanup
+ }
+
+ //============
+ // runSweep(): multi-file mode
+ //============
+ template <typename BaseClass, typename SweepDistType, typename BedDistType>
+ void runSweep(const SweepDistType& st,
+ const BedDistType& dt,
+ const std::string& refFileName,
+ const std::string& mapFileName,
+ bool errorCheck,
+ bool nestCheck,
+ bool fastMode,
+ bool sweepAll,
+ const std::string& columnSep,
+ const std::string& chrom,
+ bool skipUnmappedRows,
+ std::vector<BaseClass*>& visitorGroup) {
+
+ typedef typename BaseClass::RefType RefType;
+ typedef typename BaseClass::MapType MapType;
+ typedef Visitors::Helpers::PrintDelim PrintType;
+
+ // Set up visitors
+ PrintType processFields(columnSep);
+ PrintType processRows("\n");
+ typedef Visitors::MultiVisitor<PrintType, PrintType, BaseClass> MVType;
+ MVType multiv(visitorGroup, dt, processFields, processRows, !skipUnmappedRows);
+
+ if ( !errorCheck ) { // faster iterators
+ // Create file handle iterators
+ Ext::FPWrap<Ext::InvalidFile> refFile(refFileName);
+ Bed::allocate_iterator_starch_bed<RefType*> refFileI(refFile, chrom), refFileEnd;
+ Ext::FPWrap<Ext::InvalidFile> mapFile(mapFileName);
+ Bed::allocate_iterator_starch_bed<MapType*> mapFileI(mapFile, chrom), mapFileEnd;
+
+ // Do work
+ if ( !fastMode )
+ WindowSweep::sweep(refFileI, refFileEnd, mapFileI, mapFileEnd, st, multiv, sweepAll);
+ else // no nested elements
+ WindowSweep::sweep(refFileI, refFileEnd, mapFileI, mapFileEnd, dt, multiv, sweepAll);
+ } else {
+ // Create file handle iterators
+ typedef Ext::UserError EType;
+ bool isStdinRef = (refFileName == "-");
+ bool isStdinMap = (mapFileName == "-");
+ if ( isStdinRef && isStdinMap )
+ throw(EType("Cannot have both input files set to '-'"));
+ std::ifstream rfin(refFileName.c_str()), mfin(mapFileName.c_str());
+ if ( !isStdinRef && !rfin )
+ throw(EType("Unable to find: " + refFileName));
+ if ( !isStdinMap && !mfin )
+ throw(EType("Unable to find: " + mapFileName));
+
+ // Do work
+ if ( isStdinRef ) {
+ Bed::bed_check_iterator<RefType*> refFileI(std::cin, refFileName, chrom, nestCheck), refFileEnd;
+ Bed::bed_check_iterator<MapType*> mapFileI(mfin, mapFileName, chrom, nestCheck), mapFileEnd;
+ if ( !fastMode )
+ WindowSweep::sweep(refFileI, refFileEnd, mapFileI, mapFileEnd, st, multiv, sweepAll);
+ else // no nested elements
+ WindowSweep::sweep(refFileI, refFileEnd, mapFileI, mapFileEnd, dt, multiv, sweepAll);
+ } else {
+ Bed::bed_check_iterator<RefType*> refFileI(rfin, refFileName, chrom, nestCheck), refFileEnd;
+ if ( isStdinMap ) {
+ Bed::bed_check_iterator<MapType*> mapFileI(std::cin, mapFileName, chrom, nestCheck), mapFileEnd;
+ if ( !fastMode )
+ WindowSweep::sweep(refFileI, refFileEnd, mapFileI, mapFileEnd, st, multiv, sweepAll);
+ else // no nested elements
+ WindowSweep::sweep(refFileI, refFileEnd, mapFileI, mapFileEnd, dt, multiv, sweepAll);
+ } else {
+ Bed::bed_check_iterator<MapType*> mapFileI(mfin, mapFileName, chrom, nestCheck), mapFileEnd;
+ if ( !fastMode )
+ WindowSweep::sweep(refFileI, refFileEnd, mapFileI, mapFileEnd, st, multiv, sweepAll);
+ else // no nested elements
+ WindowSweep::sweep(refFileI, refFileEnd, mapFileI, mapFileEnd, dt, multiv, sweepAll);
+ }
+ }
+ }
+
+ // multiv does cleanup
+ }
+
+
+ //=========
+ // upper()
+ //=========
+ std::string upper(const std::string& s) {
+ std::string t = s;
+ for ( std::size_t i = 0; i < t.size(); ++i )
+ t[i] = std::toupper(t[i]);
+ return(t);
+ }
+
+
+ //===========
+ // visName()
+ //===========
+ template <typename VisitorType>
+ std::string visName() {
+ return upper(Visitors::Helpers::VisitorName<VisitorType>::Name());
+ }
+
+
+ template <typename BaseClass, int NumFields>
+ struct GenerateVisitors; // not implemented
+
+
+ //===========================
+ // GenerateVisitors<> : Bed3
+ //===========================
+ template <typename BaseVisitor>
+ struct GenerateVisitors<BaseVisitor, 3> {
+
+ typedef BaseVisitor BaseClass;
+
+ template <typename DistType>
+ BaseVisitor* generate(const DistType&, const std::string& className,
+ const std::vector<std::string>&,
+ const std::string& multivalColSep,
+ int precision, bool useScientific) {
+
+ typedef VisitorTypes<BaseVisitor> VTypes;
+ BaseVisitor* rtn = 0;
+
+ // Create an instance associated with each name in classNames
+ std::string nm = upper(className);
+
+
+ if ( nm == visName<typename VTypes::Count>() )
+ rtn = new typename VTypes::Count;
+ else if ( nm == visName<typename VTypes::EchoMapAll>() ) {
+ typedef typename VTypes::EchoMapAll::ProcessType PT;
+ typedef typename PT::PType PType;
+ rtn = new typename VTypes::EchoMapAll(PT(PType(), multivalColSep));
+ }
+ else if ( nm == visName<typename VTypes::EchoMapLength>() )
+ rtn = new typename VTypes::EchoMapLength;
+ else if ( nm == visName<typename VTypes::EchoMapIntersectLength>() )
+ rtn = new typename VTypes::EchoMapIntersectLength;
+ else if ( nm == visName<typename VTypes::EchoMapRange>() )
+ rtn = new typename VTypes::EchoMapRange;
+ else if ( nm == visName<typename VTypes::EchoRefAll>() )
+ rtn = new typename VTypes::EchoRefAll;
+ else if ( nm == visName<typename VTypes::EchoRefLength>() )
+ rtn = new typename VTypes::EchoRefLength;
+ else if ( nm == visName<typename VTypes::EchoRefSpan>() )
+ rtn = new typename VTypes::EchoRefSpan;
+ else if ( nm == visName<typename VTypes::EchoRefRowNumber>() )
+ rtn = new typename VTypes::EchoRefRowNumber;
+ else if ( nm == visName<typename VTypes::Indicator>() )
+ rtn = new typename VTypes::Indicator;
+ else if ( nm == visName<typename VTypes::OvrAgg>() )
+ rtn = new typename VTypes::OvrAgg;
+ else if ( nm == visName<typename VTypes::OvrUniq>() )
+ rtn = new typename VTypes::OvrUniq;
+ else if ( nm == visName<typename VTypes::OvrUniqFract>() ) {
+ typedef typename VTypes::OvrUniqFract::ProcessType PT;
+ PT pt(precision, useScientific);
+ rtn = new typename VTypes::OvrUniqFract(pt);
+ }
+
+ return(rtn);
+ }
+ };
+
+
+ //===========================
+ // GenerateVisitors<> : Bed4
+ //===========================
+ template <typename BaseVisitor>
+ struct GenerateVisitors<BaseVisitor, 4>
+ : GenerateVisitors<BaseVisitor, 3> {
+
+ typedef GenerateVisitors<BaseVisitor, 3> SuperClass;
+
+ template <typename DistType>
+ BaseVisitor* generate(const DistType& d, const std::string& className,
+ const std::vector<std::string>& args,
+ const std::string& multivalColSep,
+ int precision, bool useScientific) {
+
+ typedef VisitorTypes<BaseVisitor> VTypes;
+ BaseVisitor* rtn = SuperClass::generate(d, className, args, multivalColSep, precision, useScientific);
+ if ( rtn )
+ return(rtn);
+
+ // Create an instance associated with className
+ std::string nm = upper(className);
+ if ( nm == visName<typename VTypes::EchoMapID>() ) {
+ typedef typename VTypes::EchoMapID::ProcessType PT;
+ typedef typename PT::PType PType;
+ rtn = new typename VTypes::EchoMapID(PT(PType(), multivalColSep));
+ } else if ( nm == visName<typename VTypes::EchoMapUniqueID>() ) {
+ typedef typename VTypes::EchoMapUniqueID::ProcessType PT;
+ rtn = new typename VTypes::EchoMapUniqueID(PT(multivalColSep));
+ }
+
+ return(rtn);
+ }
+ };
+
+
+ //===========================
+ // GenerateVisitors<> : Bed5
+ //===========================
+ template <typename BaseVisitor>
+ struct GenerateVisitors<BaseVisitor, 5>
+ : GenerateVisitors<BaseVisitor, 4> {
+
+ typedef GenerateVisitors<BaseVisitor, 4> SuperClass;
+
+ template <typename DistType>
+ BaseVisitor* generate(const DistType& d, const std::string& className,
+ const std::vector<std::string>& args,
+ const std::string& multivalColSep,
+ int precision, bool useScientific) {
+
+ typedef VisitorTypes<BaseVisitor> VTypes;
+ BaseVisitor* rtn = SuperClass::generate(d, className, args, multivalColSep, precision, useScientific);
+ if ( rtn )
+ return(rtn);
+
+ // Create an instance associated with className
+ std::string nm = upper(className);
+ typedef typename VTypes::Average::ProcessType PT; // applicable to most numeric outputs
+ PT pt(precision, useScientific);
+
+ if ( nm == visName<typename VTypes::Average>() )
+ rtn = new typename VTypes::Average(pt);
+ else if ( nm == visName<typename VTypes::CoeffVariation>() )
+ rtn = new typename VTypes::CoeffVariation(pt);
+ else if ( nm == visName<typename VTypes::EchoMapScore>() ) {
+ typedef typename VTypes::EchoMapScore::ProcessType PT;
+ rtn = new typename VTypes::EchoMapScore(PT(pt, multivalColSep));
+ }
+ else if ( nm == visName<typename VTypes::KthAverage>() ) {
+ Ext::Assert<Ext::UserError>(1 == args.size(), "Need a value with " + nm);
+ std::stringstream conv1(args[0]);
+ double percentile;
+ conv1 >> percentile;
+ if ( 0 == percentile ) // min faster
+ rtn = new typename VTypes::Min(pt);
+ else if ( 1 == percentile ) // max faster
+ rtn = new typename VTypes::Max(pt);
+ else
+ rtn = new typename VTypes::KthAverage(percentile, pt); // does check on percentile
+ }
+ else if ( nm == visName<typename VTypes::Max>() )
+ rtn = new typename VTypes::Max(pt);
+ else if ( nm == visName<typename VTypes::MaxElement>() ) {
+ typedef typename VTypes::MaxElement::ProcessType MPT;
+ rtn = new typename VTypes::MaxElement(MPT(precision, useScientific));
+ }
+ else if ( nm == visName<typename VTypes::Median>() )
+ rtn = new typename VTypes::Median(pt);
+ else if ( nm == visName<typename VTypes::MedianAbsoluteDeviation>() ) {
+ Ext::Assert<Ext::UserError>(1 >= args.size(), "Need 1 value with " + nm);
+ if ( 1 == args.size() ) {
+ std::stringstream conv1(args[0]);
+ double multiplier;
+ conv1 >> multiplier;
+ rtn = new typename VTypes::MedianAbsoluteDeviation(pt, multiplier);
+ }
+ else // use default multiplier
+ rtn = new typename VTypes::MedianAbsoluteDeviation(pt);
+ }
+ else if ( nm == visName<typename VTypes::Min>() )
+ rtn = new typename VTypes::Min(pt);
+ else if ( nm == visName<typename VTypes::MinElement>() ) {
+ typedef typename VTypes::MinElement::ProcessType MPT;
+ rtn = new typename VTypes::MinElement(MPT(precision, useScientific));
+ }
+ else if ( nm == visName<typename VTypes::StdDev>() )
+ rtn = new typename VTypes::StdDev(pt);
+ else if ( nm == visName<typename VTypes::Sum>() )
+ rtn = new typename VTypes::Sum(pt);
+ else if ( nm == visName<typename VTypes::TMean>() ) {
+ Ext::Assert<Ext::UserError>(2 == args.size(), "Need two values with " + nm);
+ std::stringstream conv1(args[0]), conv2(args[1]);
+ double percentileLow = 100, percentileHigh = -100;
+ conv1 >> percentileLow;
+ conv2 >> percentileHigh;
+ rtn = new typename VTypes::TMean(percentileLow, percentileHigh, pt);
+ }
+ else if ( nm == visName<typename VTypes::Variance>() )
+ rtn = new typename VTypes::Variance(pt);
+
+ return(rtn);
+ }
+ };
+
+
+ //===============
+ // getVisitors()
+ //===============
+ template <typename GV, typename BedDistType>
+ std::vector<typename GV::BaseClass*>
+ getVisitors(GV& gv, const BedDistType& dt, const std::string& multivalColSep,
+ int precision, bool useScientific, const std::vector<std::string>& visitorNames,
+ const std::vector< std::vector<std::string> >& visitorArgs) {
+
+ std::vector<typename GV::BaseClass*> visitorGroup;
+ std::vector<std::string>::const_iterator iter = visitorNames.begin();
+ typename GV::BaseClass* bc = static_cast<typename GV::BaseClass*>(0);
+ while ( iter != visitorNames.end() ) {
+ bc = gv.generate(dt, *iter, visitorArgs[iter-visitorNames.begin()], multivalColSep, precision, useScientific);
+ if ( !bc )
+ throw(Ext::ProgramError("Unknown Operation: " + *iter + ". Program Error Detected."));
+ visitorGroup.push_back(bc);
+ ++iter;
+ } // while
+ return(visitorGroup);
+ }
+
+ //==============
+ // SelectBase<> : General Case
+ //==============
+ template <bool ProcessMode, typename BedDistType, typename RefType, typename MapType = RefType>
+ struct SelectBase {
+ typedef Visitors::BedBaseVisitor<BedDistType, RefType, MapType> BaseClass;
+ enum { IsFastMode = ProcessMode };
+ };
+
+ //==============
+ // SelectBase<> : No fully nested components
+ //==============
+ template <typename BedDistType, typename RefType, typename MapType>
+ struct SelectBase<true, BedDistType, RefType, MapType> {
+ typedef Visitors::Visitor<RefType, MapType> BaseClass;
+ enum { IsFastMode = true };
+ };
+
+ //=============
+ // callSweep(): multi-file mode
+ //=============
+ template <bool ProcessMode, typename SweepDistType, typename BedDistType>
+ void callSweep(const SweepDistType& st,
+ const BedDistType& dt,
+ const std::string& refFileName,
+ const std::string& mapFileName,
+ int minRefFields,
+ int minMapFields,
+ bool errorCheck,
+ const std::string& colSep,
+ const std::string& multivalColSep,
+ int precision,
+ bool useScientific,
+ const std::string& chrom,
+ bool skipUnmappedRows,
+ bool sweepAll,
+ const std::vector<std::string>& visitorNames,
+ const std::vector< std::vector<std::string> >& visitorArgs) {
+
+ // minRefFields must be <= minMapFields
+ Ext::Assert<Ext::ProgramError>(minRefFields <= minMapFields,
+ "BedMap::callSweep() minimum fields program error detected");
+
+ const bool nestCheck = ProcessMode;
+ if ( minMapFields < 4 ) { // just need Bed3
+ typedef Bed::B3Rest RefType;
+ typedef Bed::B3Rest MapType;
+ typedef typename SelectBase<ProcessMode, BedDistType, RefType, MapType>::BaseClass BaseClass;
+ BedMap::GenerateVisitors<BaseClass, 3> gv;
+ std::vector<BaseClass*> visitorGroup = getVisitors(gv, dt, multivalColSep, precision,
+ useScientific, visitorNames, visitorArgs);
+ runSweep<BaseClass>(st, dt, refFileName, mapFileName, errorCheck, nestCheck,
+ ProcessMode, sweepAll, colSep, chrom, skipUnmappedRows, visitorGroup);
+ } else if ( minMapFields < 5 ) { // just need Bed4 for Map and Bed3 for Ref
+ Ext::Assert<Ext::ProgramError>(minRefFields < minMapFields,
+ "BedMap::callSweep()-2 minimum fields program error detected");
+ typedef Bed::B3Rest RefType;
+ typedef Bed::B4Rest MapType;
+ typedef typename SelectBase<ProcessMode, BedDistType, RefType, MapType>::BaseClass BaseClass;
+ BedMap::GenerateVisitors<BaseClass, 4> gv;
+ std::vector<BaseClass*> visitorGroup = getVisitors(gv, dt, multivalColSep, precision,
+ useScientific, visitorNames, visitorArgs);
+ runSweep<BaseClass>(st, dt, refFileName, mapFileName, errorCheck, nestCheck,
+ ProcessMode, sweepAll, colSep, chrom, skipUnmappedRows, visitorGroup);
+ } else { // need Bed5 for Map and Bed3 for Ref
+ Ext::Assert<Ext::ProgramError>(minRefFields == 3,
+ "BedMap::callSweep()-2 minimum fields program error detected");
+ typedef Bed::B3Rest RefType;
+ typedef Bed::B5Rest MapType;
+ typedef typename SelectBase<ProcessMode, BedDistType, RefType, MapType>::BaseClass BaseClass;
+ BedMap::GenerateVisitors<BaseClass, 5> gv;
+ std::vector<BaseClass*> visitorGroup = getVisitors(gv, dt, multivalColSep, precision,
+ useScientific, visitorNames, visitorArgs);
+ runSweep<BaseClass>(st, dt, refFileName, mapFileName, errorCheck, nestCheck,
+ ProcessMode, sweepAll, colSep, chrom, skipUnmappedRows, visitorGroup);
+ }
+ }
+
+ //=============
+ // callSweep(): single-file mode
+ //=============
+ template <bool ProcessMode, typename SweepDistType, typename BedDistType>
+ void callSweep(const SweepDistType& st,
+ const BedDistType& dt,
+ const std::string& refFileName,
+ int minRefFields,
+ bool errorCheck,
+ const std::string& colSep,
+ const std::string& multivalColSep,
+ int precision,
+ bool useScientific,
+ const std::string& chrom,
+ bool skipUnmappedRows,
+ const std::vector<std::string>& visitorNames,
+ const std::vector< std::vector<std::string> >& visitorArgs) {
+
+ const bool nestCheck = ProcessMode;
+ if ( minRefFields < 4 ) { // just need Bed3
+ typedef Bed::B3Rest RefType;
+ typedef typename SelectBase<ProcessMode, BedDistType, RefType, RefType>::BaseClass BaseClass;
+ BedMap::GenerateVisitors<BaseClass, 3> gv;
+ std::vector<BaseClass*> visitorGroup = getVisitors(gv, dt, multivalColSep, precision,
+ useScientific, visitorNames, visitorArgs);
+ runSweep<BaseClass>(st, dt, refFileName, errorCheck, nestCheck,
+ ProcessMode, colSep, chrom, skipUnmappedRows, visitorGroup);
+ } else if ( minRefFields < 5 ) { // need Bed4
+ typedef Bed::B4Rest RefType;
+ typedef typename SelectBase<ProcessMode, BedDistType, RefType, RefType>::BaseClass BaseClass;
+ BedMap::GenerateVisitors<BaseClass, 4> gv;
+ std::vector<BaseClass*> visitorGroup = getVisitors(gv, dt, multivalColSep, precision,
+ useScientific, visitorNames, visitorArgs);
+ runSweep<BaseClass>(st, dt, refFileName, errorCheck, nestCheck,
+ ProcessMode, colSep, chrom, skipUnmappedRows, visitorGroup);
+ } else { // need Bed5
+ typedef Bed::B5Rest RefType;
+ typedef typename SelectBase<ProcessMode, BedDistType, RefType, RefType>::BaseClass BaseClass;
+ BedMap::GenerateVisitors<BaseClass, 5> gv;
+ std::vector<BaseClass*> visitorGroup = getVisitors(gv, dt, multivalColSep, precision,
+ useScientific, visitorNames, visitorArgs);
+ runSweep<BaseClass>(st, dt, refFileName, errorCheck, nestCheck,
+ ProcessMode, colSep, chrom, skipUnmappedRows, visitorGroup);
+ }
+ }
+
+
+ //================
+ // selectSweep():
+ //================
+ template <typename SweepDistType, typename BedDistType>
+ void selectSweep(const SweepDistType& st,
+ const BedDistType& dt,
+ const std::string& refFileName,
+ const std::string& mapFileName,
+ int minRefFields,
+ int minMapFields,
+ bool errorCheck,
+ const std::string& colSep,
+ const std::string& multivalColSep,
+ int precision,
+ bool useScientific,
+ bool fastMode,
+ bool sweepAll,
+ const std::string& chrom,
+ bool skipUnmappedRows,
+ const std::vector<std::string>& visitorNames,
+ const std::vector< std::vector<std::string> >& visitorArgs) {
+
+ const bool SpecialMode = true;
+ const bool GeneralMode = false;
+ if ( fastMode && !st.Symmetric ) // symmetry is a neccessary (and sufficient if no nested elements)
+ throw(Ext::ProgramError("Symmetric distance required for fast mode!"));
+
+ if ( mapFileName.empty() ) { // single-file mode
+ if ( fastMode )
+ callSweep<SpecialMode>(st, dt, refFileName, minRefFields, errorCheck, colSep, multivalColSep,
+ precision, useScientific, chrom, skipUnmappedRows, visitorNames, visitorArgs);
+ else
+ callSweep<GeneralMode>(st, dt, refFileName, minRefFields, errorCheck, colSep, multivalColSep,
+ precision, useScientific, chrom, skipUnmappedRows, visitorNames, visitorArgs);
+ } else { // dual-file mode
+ if ( fastMode )
+ callSweep<SpecialMode>(st, dt, refFileName, mapFileName, minRefFields, minMapFields,
+ errorCheck, colSep, multivalColSep, precision, useScientific,
+ chrom, skipUnmappedRows, sweepAll, visitorNames, visitorArgs);
+ else
+ callSweep<GeneralMode>(st, dt, refFileName, mapFileName, minRefFields, minMapFields,
+ errorCheck, colSep, multivalColSep, precision, useScientific,
+ chrom, skipUnmappedRows, sweepAll, visitorNames, visitorArgs);
+ }
+ }
+
+} // namespace BedMap
diff --git a/applications/bed/bedmap/src/Input.hpp b/applications/bed/bedmap/src/Input.hpp
new file mode 100644
index 0000000..258d5a0
--- /dev/null
+++ b/applications/bed/bedmap/src/Input.hpp
@@ -0,0 +1,546 @@
+/*
+ Author: Scott Kuehn, Shane Neph
+ Date: Fri Oct 19 08:20:50 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef _BEDMAP_INPUT_HPP
+#define _BEDMAP_INPUT_HPP
+
+#include <algorithm>
+#include <cmath>
+#include <cstdio>
+#include <cstdlib>
+#include <exception>
+#include <limits>
+#include <sstream>
+#include <string>
+#include <vector>
+
+#include "algorithm/visitors/BedVisitors.hpp"
+#include "algorithm/visitors/helpers/NamedVisitors.hpp"
+#include "utility/Assertion.hpp"
+#include "utility/Typify.hpp"
+
+#include "TDefs.hpp"
+
+namespace BedMap {
+
+ struct NoInput { /* */ };
+
+ namespace details {
+ struct dummyBase {
+ typedef int RefType;
+ typedef int MapType;
+ };
+
+
+ template <typename T>
+ std::string name() {
+ return(Visitors::Helpers::VisitorName<T>::Name());
+ }
+ } // details
+
+
+
+ //=============
+ // Input<T,U>:
+ //=============
+ template <typename ArgError, typename HelpType, typename VersionType>
+ class Input {
+
+ typedef VisitorTypes<details::dummyBase> VT;
+
+ public:
+
+ // Constructor
+ Input(int argc, char **argv)
+ : refFileName_(""), mapFileName_(""), rangeBP_(0), overlapBP_(0),
+ percOvr_(0.0), isPercMap_(false), isPercRef_(false), isPercEither_(false),
+ isPercBoth_(false), isRangeBP_(false), isOverlapBP_(false), isExact_(false),
+ precision_(6), useScientific_(false), setPrec_(false), numFiles_(0),
+ minRefFields_(0), minMapFields_(0), errorCheck_(false), sweepAll_(false),
+ outDelim_("|"), multiDelim_(";"), fastMode_(false), rangeAlias_(false),
+ chrom_("all"), skipUnmappedRows_(false) {
+
+ // Process user's operation options
+ if ( argc <= 1 )
+ throw(NoInput()); // prints usage statement and returns EXIT_FAILURE
+ const std::string posIntegers = "0123456789";
+ const std::string integers = "-" + posIntegers;
+ const std::string reals = "." + integers;
+ int argcntr = 1;
+ bool hasVisitor = false;
+ while ( argcntr < argc ) {
+ std::string next = argv[argcntr++];
+ if ( next.find("--") == std::string::npos && argc - argcntr < 2 ) // process file inputs
+ break;
+
+ Ext::Assert<ArgError>(next.find("--") == 0, "Option " + next + " does not start with '--'");
+ next = next.substr(2);
+
+ if ( next == "help" ) {
+ throw(HelpType()); // prints usage statement and returns EXIT_SUCCESS
+ } else if ( next == "version" ) {
+ throw(VersionType()); // prints version and returns EXIT_SUCCESS
+ } else if ( next == "ec" || next == "header" ) {
+ // bed_check_iterator<> allows silly headers
+ errorCheck_ = true;
+ } else if ( next == "faster" ) {
+ fastMode_ = true;
+ } else if ( next == "sweep-all" ) { // --> sweep through all of second file
+ sweepAll_ = true;
+ } else if ( next == "delim" ) {
+ Ext::Assert<ArgError>(outDelim_ == "|", "--delim specified multiple times");
+ Ext::Assert<ArgError>(argcntr < argc, "No output delimiter given");
+ outDelim_ = argv[argcntr++];
+ Ext::Assert<ArgError>(outDelim_.find("--") != 0,
+ "Apparent option: " + std::string(argv[argcntr]) + " where output delimiter expected.");
+ } else if ( next == "chrom" ) {
+ Ext::Assert<ArgError>(chrom_ == "all", "--chrom specified multiple times");
+ Ext::Assert<ArgError>(argcntr < argc, "No chromosome name given");
+ chrom_ = argv[argcntr++];
+ Ext::Assert<ArgError>(chrom_.find("--") != 0,
+ "Apparent option: " + std::string(argv[argcntr]) + " where chromosome expected.");
+ } else if ( next == "multidelim" ) {
+ Ext::Assert<ArgError>(multiDelim_ == ";", "--multidelim specified multiple times");
+ Ext::Assert<ArgError>(argcntr < argc, "No multi-value column delimmiter given");
+ multiDelim_ = argv[argcntr++];
+ Ext::Assert<ArgError>(multiDelim_.find("--") != 0,
+ "Apparent option: " + std::string(argv[argcntr]) + " where output delimiter expected.");
+ } else if ( next == "skip-unmapped" ) {
+ skipUnmappedRows_ = true;
+ } else if ( next == "sci" ) {
+ useScientific_ = true;
+ } else if ( next == "prec" ) {
+ Ext::Assert<ArgError>(argcntr < argc, "No precision value given");
+ Ext::Assert<ArgError>(!setPrec_, "--prec specified multiple times.");
+ std::string sval = argv[argcntr++];
+ Ext::Assert<ArgError>(sval.find_first_not_of(posIntegers) == std::string::npos,
+ "Non-positive-integer argument: " + sval + " for --prec");
+ std::stringstream conv(sval);
+ conv >> precision_;
+ Ext::Assert<ArgError>(precision_ >= 0, "--prec value must be >= 0");
+ setPrec_ = true;
+ } else if ( next == "bp-ovr" ) {
+ // first check that !rangeAlias_ before !isOverlapBP_
+ Ext::Assert<ArgError>(!rangeAlias_, "--range and --bp-ovr detected. Choose one.");
+ Ext::Assert<ArgError>(!isOverlapBP_, "multiple --bp-ovr's detected");
+ Ext::Assert<ArgError>(argcntr < argc, "No arg for --bp-ovr");
+ std::string sval = argv[argcntr++];
+ Ext::Assert<ArgError>(sval.find_first_not_of(posIntegers) == std::string::npos,
+ "Non-positive-integer argument: " + sval + " for --bp-ovr");
+ std::stringstream conv(sval);
+ conv >> overlapBP_;
+ Ext::Assert<ArgError>(overlapBP_ > 0, "--bp-ovr value must be > 0");
+ isOverlapBP_ = true;
+ } else if ( next == "range" ) {
+ Ext::Assert<ArgError>(!isRangeBP_ && !rangeAlias_, "multiple --range's detected");
+ Ext::Assert<ArgError>(argcntr < argc, "No arg for --range");
+ std::string sval = argv[argcntr++];
+ Ext::Assert<ArgError>(sval.find_first_not_of(posIntegers) == std::string::npos,
+ "Non-positive-integer argument: " + sval + " for --range");
+ std::stringstream conv(sval);
+ conv >> rangeBP_;
+ Ext::Assert<ArgError>(rangeBP_ >= 0, "--range value must be >= 0");
+ isRangeBP_ = true;
+ if ( 0 == rangeBP_ ) { // alias for --bp-ovr 1
+ Ext::Assert<ArgError>(!rangeAlias_, "--range 0 specified multiple times.");
+ Ext::Assert<ArgError>(!isOverlapBP_, "--bp-ovr and --range detected. Choose one.");
+ isRangeBP_ = false;
+ isOverlapBP_ = true;
+ rangeAlias_ = true;
+ overlapBP_ = 1;
+ }
+ } else if ( next == "fraction-ref" ) {
+ Ext::Assert<ArgError>(!isPercRef_, "multiple --fraction-ref's detected");
+ Ext::Assert<ArgError>(argcntr < argc, "No arg for --fraction-ref");
+ std::string sval = argv[argcntr++];
+ Ext::Assert<ArgError>(sval.find_first_not_of(reals) == std::string::npos,
+ "Non-numeric argument: " + sval + " for --fraction-ref");
+ std::stringstream conv(sval);
+ conv >> percOvr_;
+ Ext::Assert<ArgError>(percOvr_ > 0 && percOvr_ <= 1, "--fraction-ref value must be: >0-1.0");
+ isPercRef_ = true;
+ } else if ( next == "fraction-map" ) {
+ Ext::Assert<ArgError>(!isPercMap_, "multiple --fraction-map's detected");
+ Ext::Assert<ArgError>(argcntr < argc, "No arg for --fraction-map");
+ std::string sval = argv[argcntr++];
+ Ext::Assert<ArgError>(sval.find_first_not_of(reals) == std::string::npos,
+ "Non-numeric argument: " + sval + " for --fraction-map");
+ std::stringstream conv(sval);
+ conv >> percOvr_;
+ Ext::Assert<ArgError>(percOvr_ > 0 && percOvr_ <= 1, "--fraction-map value must be: >0-1.0");
+ isPercMap_ = true;
+ } else if ( next == "fraction-either" ) {
+ Ext::Assert<ArgError>(!isPercEither_, "multiple --fraction-either's detected");
+ Ext::Assert<ArgError>(argcntr < argc, "No arg for --fraction-either");
+ std::string sval = argv[argcntr++];
+ Ext::Assert<ArgError>(sval.find_first_not_of(reals) == std::string::npos,
+ "Non-numeric argument: " + sval + " for --fraction-either");
+ std::stringstream conv(sval);
+ conv >> percOvr_;
+ Ext::Assert<ArgError>(percOvr_ > 0 && percOvr_ <= 1, "--fraction-either value must be: >0-1.0");
+ isPercEither_ = true;
+ } else if ( next == "fraction-both" ) {
+ Ext::Assert<ArgError>(!isPercBoth_, "multiple --fraction-both's detected");
+ Ext::Assert<ArgError>(argcntr < argc, "No arg for --fraction-both");
+ std::string sval = argv[argcntr++];
+ Ext::Assert<ArgError>(sval.find_first_not_of(reals) == std::string::npos,
+ "Non-numeric argument: " + sval + " for --fraction-both");
+ std::stringstream conv(sval);
+ conv >> percOvr_;
+ Ext::Assert<ArgError>(percOvr_ > 0 && percOvr_ <= 1, "--fraction-both value must be: >0-1.0");
+ isPercBoth_ = true;
+ } else if ( next == "exact" ) { // same as --fraction-both 1
+ Ext::Assert<ArgError>(!isExact_, "multiple --exact's detected - use one");
+ isExact_ = true;
+ }
+ else if ( next == details::name<typename VT::OvrAgg>() )
+ hasVisitor = addNoArgVisitor(Ext::Type2Type<typename VT::OvrAgg>());
+ else if ( next == details::name<typename VT::OvrUniq>() )
+ hasVisitor = addNoArgVisitor(Ext::Type2Type<typename VT::OvrUniq>());
+ else if ( next == details::name<typename VT::OvrUniqFract>() )
+ hasVisitor = addNoArgVisitor(Ext::Type2Type<typename VT::OvrUniqFract>());
+ else if ( next == details::name<typename VT::EchoRefAll>() )
+ hasVisitor = addNoArgVisitor(Ext::Type2Type<typename VT::EchoRefAll>());
+ else if ( next == details::name<typename VT::EchoRefLength>() )
+ hasVisitor = addNoArgVisitor(Ext::Type2Type<typename VT::EchoRefLength>());
+ else if ( next == details::name<typename VT::EchoRefSpan>() )
+ hasVisitor = addNoArgVisitor(Ext::Type2Type<typename VT::EchoRefSpan>());
+ else if ( next == details::name<typename VT::EchoRefRowNumber>() )
+ hasVisitor = addNoArgVisitor(Ext::Type2Type<typename VT::EchoRefRowNumber>());
+ else if ( next == details::name<typename VT::EchoMapAll>() )
+ hasVisitor = addNoArgVisitor(Ext::Type2Type<typename VT::EchoMapAll>());
+ else if ( next == details::name<typename VT::EchoMapID>() )
+ hasVisitor = addNoArgVisitor(Ext::Type2Type<typename VT::EchoMapID>());
+ else if ( next == details::name<typename VT::EchoMapUniqueID>() )
+ hasVisitor = addNoArgVisitor(Ext::Type2Type<typename VT::EchoMapUniqueID>());
+ else if ( next == details::name<typename VT::EchoMapLength>() )
+ hasVisitor = addNoArgVisitor(Ext::Type2Type<typename VT::EchoMapLength>());
+ else if ( next == details::name<typename VT::EchoMapIntersectLength>() )
+ hasVisitor = addNoArgVisitor(Ext::Type2Type<typename VT::EchoMapIntersectLength>());
+ else if ( next == details::name<typename VT::EchoMapRange>() )
+ hasVisitor = addNoArgVisitor(Ext::Type2Type<typename VT::EchoMapRange>());
+ else if ( next == details::name<typename VT::EchoMapScore>() )
+ hasVisitor = addNoArgVisitor(Ext::Type2Type<typename VT::EchoMapScore>());
+ else if ( next == details::name<typename VT::Count>() )
+ hasVisitor = addNoArgVisitor(Ext::Type2Type<typename VT::Count>());
+ else if ( next == details::name<typename VT::Indicator>() )
+ hasVisitor = addNoArgVisitor(Ext::Type2Type<typename VT::Indicator>());
+ else if ( next == details::name<typename VT::Max>() )
+ hasVisitor = addNoArgVisitor(Ext::Type2Type<typename VT::Max>());
+ else if ( next == details::name<typename VT::MaxElement>() )
+ hasVisitor = addNoArgVisitor(Ext::Type2Type<typename VT::MaxElement>());
+ else if ( next == details::name<typename VT::Min>() )
+ hasVisitor = addNoArgVisitor(Ext::Type2Type<typename VT::Min>());
+ else if ( next == details::name<typename VT::MinElement>() )
+ hasVisitor = addNoArgVisitor(Ext::Type2Type<typename VT::MinElement>());
+ else if ( next == details::name<typename VT::Average>() )
+ hasVisitor = addNoArgVisitor(Ext::Type2Type<typename VT::Average>());
+ else if ( next == details::name<typename VT::Variance>() )
+ hasVisitor = addNoArgVisitor(Ext::Type2Type<typename VT::Variance>());
+ else if ( next == details::name<typename VT::StdDev>() )
+ hasVisitor = addNoArgVisitor(Ext::Type2Type<typename VT::StdDev>());
+ else if ( next == details::name<typename VT::CoeffVariation>() )
+ hasVisitor = addNoArgVisitor(Ext::Type2Type<typename VT::CoeffVariation>());
+ else if ( next == details::name<typename VT::Sum>() )
+ hasVisitor = addNoArgVisitor(Ext::Type2Type<typename VT::Sum>());
+ else if ( next == details::name<typename VT::Median>() )
+ hasVisitor = addNoArgVisitor(Ext::Type2Type<typename VT::Median>());
+ else if ( next == details::name<typename VT::MedianAbsoluteDeviation>() ) {
+ std::string sval = argv[argcntr];
+ if ( sval.find_first_not_of(reals) == std::string::npos ) { // assume argument for this option
+ ++argcntr;
+ std::stringstream conv(sval);
+ double val = -1;
+ conv >> val;
+ Ext::Assert<ArgError>(val > 0, "--" + details::name<typename VT::MedianAbsoluteDeviation>() + " Expect 0 < val");
+ std::vector<std::string> tmpVec;
+ tmpVec.push_back(sval);
+ hasVisitor = addVisitor(Ext::Type2Type<typename VT::MedianAbsoluteDeviation>(), tmpVec);
+ }
+ else // use default multiplier for MAD
+ hasVisitor = addNoArgVisitor(Ext::Type2Type<typename VT::MedianAbsoluteDeviation>());
+ }
+ else if ( next == details::name<typename VT::KthAverage>() ) {
+ Ext::Assert<ArgError>(argcntr < argc, "No arg for --" + details::name<typename VT::KthAverage>());
+ std::string sval = argv[argcntr++];
+ Ext::Assert<ArgError>(sval.find_first_not_of(reals) == std::string::npos,
+ "Non-numeric argument: " + sval + " for --" + details::name<typename VT::KthAverage>());
+ std::stringstream conv(sval);
+ double val = -1;
+ conv >> val;
+ Ext::Assert<ArgError>(val >= 0 && val <= 1, "--" + details::name<typename VT::KthAverage>() + " Expect 0 <= val <= 1");
+ std::vector<std::string> tmpVec;
+ tmpVec.push_back(sval);
+ hasVisitor = addVisitor(Ext::Type2Type<typename VT::KthAverage>(), tmpVec);
+ }
+ else if ( next == details::name<typename VT::TMean>() ) {
+ Ext::Assert<ArgError>(argcntr < argc, "No <low> arg given for --" + details::name<typename VT::TMean>());
+ std::string svalLow = argv[argcntr++];
+ Ext::Assert<ArgError>(svalLow.find_first_not_of(reals) == std::string::npos,
+ "Non-numeric argument: " + svalLow + " for --" + details::name<typename VT::TMean>());
+
+ Ext::Assert<ArgError>(argcntr < argc, "No <hi> arg given for --" + details::name<typename VT::TMean>());
+ std::string svalHigh = argv[argcntr++];
+ Ext::Assert<ArgError>(svalHigh.find_first_not_of(reals) == std::string::npos,
+ "Non-numeric argument: " + svalHigh + " for --" + details::name<typename VT::TMean>());
+
+ std::stringstream convLow(svalLow), convHigh(svalHigh);
+ double valLow = 100, valHigh = 100;
+ convLow >> valLow; convHigh >> valHigh;
+ Ext::Assert<ArgError>(valLow >= 0 && valLow <= 1,
+ "--" + details::name<typename VT::TMean>() + " Expect 0 <= low < hi <= 1");
+ Ext::Assert<ArgError>(valHigh >= 0 && valHigh <= 1,
+ "--" + details::name<typename VT::TMean>() + " Expect 0 <= low < hi <= 1");
+ Ext::Assert<ArgError>(valLow + valHigh <= 1,
+ "--" + details::name<typename VT::TMean>() + " Expect (low + hi) <= 1.");
+ std::vector<std::string> tmpVec;
+ tmpVec.push_back(svalLow); tmpVec.push_back(svalHigh);
+ hasVisitor = addVisitor(Ext::Type2Type<typename VT::TMean>(), tmpVec);
+ }
+ else
+ throw(ArgError("Unknown option: --" + next));
+ } // while
+
+ if ( !(isPercMap_ || isPercRef_ || isPercEither_ || isPercBoth_ || isRangeBP_ || isOverlapBP_ || isExact_) ) {
+ // use defaults
+ isOverlapBP_ = true;
+ overlapBP_ = 1;
+ }
+ int count = isPercMap_;
+ count += isPercRef_;
+ count += isPercEither_;
+ count += isPercBoth_;
+ count += isRangeBP_;
+ count += isOverlapBP_;
+ count += isExact_;
+ Ext::Assert<ArgError>(1 == count, "More than one overlap specification used.");
+
+ Ext::Assert<ArgError>(hasVisitor, "No processing option specified (ie; --max).");
+ Ext::Assert<ArgError>(0 <= argc - argcntr, "No files");
+ Ext::Assert<ArgError>(3 == minRefFields_, "Program error: Input.hpp::minRefFields_");
+ Ext::Assert<ArgError>(3 <= minMapFields_ && 5 >= minMapFields_, "Program error: Input.hpp::minMapFields_");
+ Ext::Assert<ArgError>(!fastMode_ || isOverlapBP_ || isRangeBP_ || isPercBoth_ || isExact_, "--faster compatible with --range, --bp-ovr, --fraction-both, and --exact only");
+
+ // Process files inputs
+ Ext::Assert<ArgError>(2 >= argc - argcntr, "Need [one or] two input files");
+ Ext::Assert<ArgError>(0 <= argc - argcntr, "Need [one or] two input files");
+ numFiles_ = argc - argcntr + 1;
+ Ext::Assert<ArgError>(1 <= numFiles_ && numFiles_ <= 2, "Need [one or] two input files");
+ if ( 2 == numFiles_ ) {
+ refFileName_ = argv[argc-2];
+ mapFileName_ = argv[argc-1];
+ } else { // single-file mode
+ refFileName_ = argv[argc-1];
+ mapFileName_ = "";
+ minRefFields_ = minMapFields_;
+ minMapFields_ = 0;
+ }
+ Ext::Assert<ArgError>(refFileName_ != "-" || mapFileName_ != "-",
+ "Cannot have stdin set for two files");
+ }
+
+
+ public:
+ std::string refFileName_;
+ std::string mapFileName_;
+ std::vector<std::string> visitorNames_;
+ std::vector< std::vector<std::string> > visitorArgs_;
+ long rangeBP_;
+ long overlapBP_;
+ double percOvr_;
+ bool isPercMap_;
+ bool isPercRef_;
+ bool isPercEither_;
+ bool isPercBoth_;
+ bool isRangeBP_;
+ bool isOverlapBP_;
+ bool isExact_;
+ int precision_;
+ bool useScientific_;
+ bool setPrec_;
+ unsigned int numFiles_;
+ unsigned int minRefFields_;
+ unsigned int minMapFields_;
+ bool errorCheck_;
+ bool sweepAll_;
+ std::string outDelim_;
+ std::string multiDelim_;
+ bool fastMode_;
+ bool rangeAlias_;
+ std::string chrom_;
+ bool skipUnmappedRows_;
+
+ private:
+ struct MapFields {
+ template <typename T> static unsigned int num(Ext::Type2Type<T>) { return 5; }
+ static unsigned int num(Ext::Type2Type<typename VT::Count>) { return 3; }
+ static unsigned int num(Ext::Type2Type<typename VT::EchoMapAll>) { return 3; }
+ static unsigned int num(Ext::Type2Type<typename VT::EchoMapID>) { return 4; }
+ static unsigned int num(Ext::Type2Type<typename VT::EchoMapIntersectLength>) { return 3; }
+ static unsigned int num(Ext::Type2Type<typename VT::EchoMapLength>) { return 3; }
+ static unsigned int num(Ext::Type2Type<typename VT::EchoMapRange>) { return 3; }
+ static unsigned int num(Ext::Type2Type<typename VT::EchoMapUniqueID>) { return 4; }
+ static unsigned int num(Ext::Type2Type<typename VT::EchoRefAll>) { return 3; }
+ static unsigned int num(Ext::Type2Type<typename VT::EchoRefLength>) { return 3; }
+ static unsigned int num(Ext::Type2Type<typename VT::EchoRefSpan>) { return 3; }
+ static unsigned int num(Ext::Type2Type<typename VT::EchoRefRowNumber>) { return 3; }
+ static unsigned int num(Ext::Type2Type<typename VT::Indicator>) { return 3; }
+ static unsigned int num(Ext::Type2Type<typename VT::OvrAgg>) { return 3; }
+ static unsigned int num(Ext::Type2Type<typename VT::OvrUniq>) { return 3; }
+ static unsigned int num(Ext::Type2Type<typename VT::OvrUniqFract>) { return 3; }
+ };
+
+ struct RefFields {
+ template <typename T> static unsigned int num(Ext::Type2Type<T>) { return 3; }
+ };
+
+ template <typename T>
+ bool addNoArgVisitor(Ext::Type2Type<T> t) {
+ visitorNames_.push_back(details::name<T>());
+ visitorArgs_.push_back(std::vector<std::string>());
+ minMapFields_ = std::max(minMapFields_, static_cast<unsigned int>(MapFields::num(t)));
+ minRefFields_ = std::max(minRefFields_, static_cast<unsigned int>(RefFields::num(t)));
+ return(true);
+ }
+
+ template <typename T>
+ bool addVisitor(Ext::Type2Type<T> t, const std::vector<std::string>& args) {
+ visitorNames_.push_back(details::name<T>());
+ visitorArgs_.push_back(args);
+ minMapFields_ = std::max(minMapFields_, static_cast<unsigned int>(MapFields::num(t)));
+ minRefFields_ = std::max(minRefFields_, static_cast<unsigned int>(RefFields::num(t)));
+ return(true);
+ }
+ };
+
+
+
+ //---------
+ // Usage()
+ std::string Usage() {
+
+ typedef BedMap::VisitorTypes<details::dummyBase> VT;
+
+ std::stringstream usage;
+ usage << " \n";
+ usage << " USAGE: bedmap [process-flags] [overlap-option] <operation(s)...> <ref-file> [map-file] \n";
+ usage << " Any input file must be sorted per the sort-bed utility. \n";
+ usage << " The program accepts BED and Starch file formats. \n";
+ usage << " You may use '-' for a BED file to indicate the input comes from stdin. \n";
+ usage << " \n";
+ usage << " Traverse <ref-file>, while applying <operation(s)> on qualified, overlapping elements from \n";
+ usage << " <map-file>. Output is one line for each line in <ref-file>, sent to standard output. There \n";
+ usage << " is no limit on the number of operations you can specify to compute in one bedmap call. \n";
+ usage << " If <map-file> is omitted, the given file is treated as both the <ref-file> and <map-file>. \n";
+ usage << " This usage is more efficient than specifying the same file twice. \n";
+ usage << " Arguments may be given in any order before the input file(s). \n";
+ usage << " \n";
+ usage << " Process Flags: \n";
+ usage << " -------- \n";
+ usage << " --chrom <chromosome> Jump to and process data for given <chromosome> only. \n";
+ usage << " --delim <delim> Change output delimiter from '|' to <delim> between columns (e.g. \'\\t\').\n";
+ usage << " --ec Error check all input files (slower). \n";
+ usage << " --faster (advanced) Strong input assumptions are made. Compatible with: \n";
+ usage << " --bp-ovr, --range, --fraction-both, and --exact overlap options only. \n";
+ usage << " --header Accept headers (VCF, GFF, SAM, BED, WIG) in any input file. \n";
+ usage << " --help Print this message and exit successfully. \n";
+ usage << " --multidelim <delim> Change delimiter of multi-value output columns from ';' to <delim>. \n";
+ usage << " --prec <int> Change the post-decimal precision of scores to <int>. 0 <= <int>. \n";
+ usage << " --sci Use scientific notation for score outputs. \n";
+ usage << " --skip-unmapped Print no output for a row with no mapped elements. \n";
+ usage << " --sweep-all Ensure <map-file> is read completely (helps to prevent broken pipes). \n";
+ usage << " --version Print program information. \n";
+ usage << " \n";
+ usage << " \n";
+ usage << " Overlap Options (At most, one may be selected. By default, --bp-ovr 1 is used): \n";
+ usage << " -------- \n";
+ usage << " --bp-ovr <int> Require <int> bp overlap between elements of input files. \n";
+ usage << " --exact First 3 fields from <map-file> must be identical to <ref-file>'s. \n";
+ usage << " --fraction-both <val> Both --fraction-ref <val> and --fraction-map <val> must be true to \n";
+ usage << " qualify as overlapping. Expect 0 < val <= 1. \n";
+ usage << " --fraction-either <val> Either --fraction-ref <val> or --fraction-map <val> must be true to \n";
+ usage << " qualify as overlapping. Expect 0 < val <= 1. \n";
+ usage << " --fraction-map <val> The fraction of the element's size from <map-file> that must overlap \n";
+ usage << " the element in <ref-file>. Expect 0 < val <= 1. \n";
+ usage << " --fraction-ref <val> The fraction of the element's size from <ref-file> that must overlap \n";
+ usage << " an element in <map-file>. Expect 0 < val <= 1. \n";
+ usage << " --range <int> Grab <map-file> elements within <int> bp of <ref-file>'s element, \n";
+ usage << " where 0 <= int. --range 0 is an alias for --bp-ovr 1. \n";
+ usage << " \n";
+ usage << " \n";
+ usage << " Operations: (Any number of operations may be used any number of times.) \n";
+ usage << " ---------- \n";
+ usage << " SCORE: \n";
+ usage << " <ref-file> must have at least 3 columns and <map-file> 5 columns. \n";
+ usage << " \n";
+ usage << " --" + details::name<VT::CoeffVariation>() + " The result of --" + details::name<VT::StdDev>() + " divided by the result of --" + details::name<VT::Average>() + ".\n";
+ usage << " --" + details::name<VT::KthAverage>() + " <val> Generalized median. Report the value, x, such that the fraction <val>\n";
+ usage << " of overlapping elements' scores from <map-file> is less than x,\n";
+ usage << " and the fraction 1-<val> of scores is greater than x. 0 < val <= 1.\n";
+ usage << " --" + details::name<VT::MedianAbsoluteDeviation>() + " <mult=1> The median absolute deviation of overlapping elements in <map-file>.\n";
+ usage << " Multiply mad score by <mult>. 0 < mult, and mult is 1 by default.\n";
+ usage << " --" + details::name<VT::Max>() + " The highest score from overlapping elements in <map-file>.\n";
+ usage << " --" + details::name<VT::MaxElement>() + " An element with the highest score from overlapping elements in <map-file>.\n";
+ usage << " --" + details::name<VT::Average>() + " The average score from overlapping elements in <map-file>.\n";
+ usage << " --" + details::name<VT::Median>() + " The median score from overlapping elements in <map-file>.\n";
+ usage << " --" + details::name<VT::Min>() + " The lowest score from overlapping elements in <map-file>.\n";
+ usage << " --" + details::name<VT::MinElement>() + " An element with the lowest score from overlapping elements in <map-file>.\n";
+ usage << " --" + details::name<VT::StdDev>() + " The square root of the result of --" + details::name<VT::Variance>() + ".\n";
+ usage << " --" + details::name<VT::Sum>() + " Accumulated scores from overlapping elements in <map-file>.\n";
+ usage << " --" + details::name<VT::TMean>() + " <low> <hi> The mean score from overlapping elements in <map-file>, after\n";
+ usage << " ignoring the bottom <low> and top <hi> fractions of those scores.\n";
+ usage << " 0 <= low <= 1. 0 <= hi <= 1. low+hi <= 1.\n";
+ usage << " --" + details::name<VT::Variance>() + " The variance of scores from overlapping elements in <map-file>.\n";
+ usage << " \n";
+ usage << " ----------\n";
+ usage << " NON-SCORE:\n";
+ usage << " <ref-file> must have at least 3 columns.\n";
+ usage << " For --" + details::name<VT::EchoMapID>() + "/" + details::name<VT::EchoMapUniqueID>() + ", <map-file> must have at least 4 columns.\n";
+ usage << " For --" + details::name<VT::EchoMapScore>() + ", <map-file> must have at least 5 columns.\n";
+ usage << " For all others, <map-file> requires at least 3 columns.\n\n";
+ usage << " --" + details::name<VT::OvrAgg>() + " The total number of overlapping bases from <map-file>.\n";
+ usage << " --" + details::name<VT::OvrUniq>() + " The number of distinct bases from <ref-file>'s element covered by\n";
+ usage << " overlapping elements in <map-file>.\n";
+ usage << " --" + details::name<VT::OvrUniqFract>() + " The fraction of distinct bases from <ref-file>'s element covered by\n";
+ usage << " overlapping elements in <map-file>.\n";
+ usage << " --" + details::name<VT::Count>() + " The number of overlapping elements in <map-file>.\n";
+ usage << " --" + details::name<VT::EchoRefAll>() + " Print each line from <ref-file>.\n";
+ usage << " --" + details::name<VT::EchoMapAll>() + " List all overlapping elements from <map-file>.\n";
+ usage << " --" + details::name<VT::EchoMapID>() + " List IDs from all overlapping <map-file> elements.\n";
+ usage << " --" + details::name<VT::EchoMapUniqueID>() + " List unique IDs from overlapping <map-file> elements.\n";
+ usage << " --" + details::name<VT::EchoMapRange>() + " Print genomic range of overlapping elements from <map-file>.\n";
+ usage << " --" + details::name<VT::EchoMapScore>() + " List scores from overlapping <map-file> elements.\n";
+ usage << " --" + details::name<VT::EchoMapLength>() + " List the full length of every overlapping element.\n";
+ usage << " --" + details::name<VT::EchoMapIntersectLength>() + " List lengths of overlaps.\n";
+ usage << " --" + details::name<VT::EchoRefSpan>() + " Print the first 3 fields of <ref-file> using chrom:start-end format.\n";
+ usage << " --" + details::name<VT::EchoRefRowNumber>() + " Print 'id-' followed by the line number of <ref-file>.\n";
+ usage << " --" + details::name<VT::EchoRefLength>() + " Print the length of each line from <ref-file>.\n";
+ usage << " --" + details::name<VT::Indicator>() + " Print 1 if there exists an overlapping element in <map-file>, 0 otherwise.\n";
+ usage << "\n";
+
+ return(usage.str());
+ }
+
+} // namespace BedMap
+
+#endif // _BEDMAP_INPUT_HPP
diff --git a/applications/bed/bedmap/src/Makefile b/applications/bed/bedmap/src/Makefile
new file mode 100644
index 0000000..a006b24
--- /dev/null
+++ b/applications/bed/bedmap/src/Makefile
@@ -0,0 +1,66 @@
+MAIN = ../../../..
+HEAD = ${MAIN}/interfaces/general-headers
+LIB1 = ${MAIN}/interfaces/src/data/measurement
+LIB2 = ${MAIN}/interfaces/src/utility
+LIB3 = ${MAIN}/interfaces/src/data/starch
+PARTY3 = ${THISDIR}/${MAIN}/third-party
+THISDIR = ${shell pwd}
+LIBJANSSON = libjansson.a
+LIBBZIP2 = libbz2.a
+LIBZLIB = libz.a
+LOCALJANSSONDIR = ${PARTY3}/jansson
+LOCALJANSSONLIBDIR = ${LOCALJANSSONDIR}/lib
+LOCALJANSSONINCDIR = ${LOCALJANSSONDIR}/include
+LOCALJANSSONLIB = ${LOCALJANSSONLIBDIR}/${LIBJANSSON}
+LOCALBZIP2DIR = ${PARTY3}/bzip2
+LOCALBZIP2LIBDIR = ${LOCALBZIP2DIR}
+LOCALBZIP2LIB = ${LOCALBZIP2LIBDIR}/${LIBBZIP2}
+LOCALBZIP2INCDIR = ${LOCALBZIP2DIR}
+LOCALZLIBDIR = ${PARTY3}/zlib
+LOCALZLIBLIB = ${LOCALZLIBDIR}/${LIBZLIB}
+LOCALZLIBINCDIR = ${LOCALZLIBDIR}
+OBJDIR = objects
+INCLUDES = -iquote${HEAD} -I${PARTY3} -I${LOCALJANSSONINCDIR} -I${LOCALBZIP2INCDIR} -I${LOCALZLIBINCDIR}
+LIBLOCATION = -L${LOCALJANSSONLIBDIR} -L${LOCALBZIP2LIBDIR} -L${LOCALZLIBDIR}
+LIBRARIES = ${LOCALJANSSONLIB} ${LOCALBZIP2LIB} ${LOCALZLIBLIB}
+BLDFLAGS = -Wall -pedantic -O3 -std=c++11
+SFLAGS = -static
+
+dependency_names = NaN starchConstants starchFileHelpers starchHelpers starchMetadataHelpers unstarchHelpers starchSha1Digest starchBase64Coding
+dependencies = $(addprefix $(OBJDIR)/, $(addsuffix .o, $(dependency_names)))
+FLAGS = ${SFLAGS} -s ${BLDFLAGS} $(dependencies) ${LIBLOCATION} ${INCLUDES}
+DFLAGS = ${SFLAGS} -g -O0 -std=c++11 -DDEBUG=1 -fno-inline -Wall -pedantic $(dependencies) ${LIBLOCATION} ${INCLUDES}
+GPROFFLAGS = ${SFLAGS} -pg -O -std=c++11 -Wall -pedantic $(dependencies) ${LIBLOCATION} ${INCLUDES}
+
+SOURCE1 = Bedmap.cpp
+BINDIR = ../bin
+PROG = bedmap
+
+build: $(BINDIR)/$(PROG)
+
+build_gprof: $(BINDIR)/gprof.$(PROG)
+
+build_debug: $(BINDIR)/debug.$(PROG)
+
+dependencies: $(dependencies)
+
+$(BINDIR)/$(PROG) : $(dependencies)
+ mkdir -p $(BINDIR) && $(CXX) -o $@ $(FLAGS) ${LIBRARIES} $(SOURCE1)
+
+$(BINDIR)/gprof.$(PROG) : $(dependencies)
+ mkdir -p $(BINDIR) && $(CXX) -o $@ $(GPROFFLAGS) ${LIBRARIES} $(SOURCE1)
+
+$(BINDIR)/debug.$(PROG) : $(dependencies)
+ mkdir -p $(BINDIR) && $(CXX) -o $@ $(DFLAGS) ${LIBRARIES} $(SOURCE1)
+
+$(OBJDIR)/%.o : $(LIB1)/%.cpp
+ mkdir -p $(OBJDIR) && $(CXX) -c $(BLDFLAGS) $^ -o $@ ${INCLUDES}
+
+$(OBJDIR)/%.o : $(LIB3)/%.c
+ mkdir -p $(OBJDIR) && $(CXX) -c ${BLDFLAGS} $^ -o $@ ${INCLUDES}
+
+clean:
+ rm -f ${BINDIR}/${PROG}
+ rm -f ${BINDIR}/*.${PROG}
+ rm -rf ${OBJDIR}
+ rm -rf ${BINDIR}
diff --git a/applications/bed/bedmap/src/Makefile.darwin b/applications/bed/bedmap/src/Makefile.darwin
new file mode 100644
index 0000000..8faa142
--- /dev/null
+++ b/applications/bed/bedmap/src/Makefile.darwin
@@ -0,0 +1,66 @@
+MIN_OSX_VERSION = 10.7
+
+MAIN = ../../../..
+MAINAPPDIR = ../..
+HEAD = $(MAIN)/interfaces/general-headers
+LIB1 = $(MAIN)/interfaces/src/data/measurement
+LIB2 = $(MAIN)/interfaces/src/utility
+LIB3 = $(MAIN)/interfaces/src/data/starch
+THISDIR = ${shell pwd}
+PARTY3 = ${THISDIR}/$(MAIN)/third-party
+OBJDIR = objects_$(ARCH)
+LIBJANSSON = libjansson.a
+LIBBZIP2 = libbz2.a
+LIBZLIB = libz.a
+LOCALJANSSONDIR = ${PARTY3}/darwin_intel_${ARCH}/jansson
+LOCALJANSSONLIBDIR = ${LOCALJANSSONDIR}/lib
+LOCALJANSSONINCDIR = ${LOCALJANSSONDIR}/include
+LOCALJANSSONLIB = ${LOCALJANSSONLIBDIR}/${LIBJANSSON}
+LOCALBZIP2DIR = ${PARTY3}/darwin_intel_${ARCH}/bzip2
+LOCALBZIP2LIBDIR = ${LOCALBZIP2DIR}
+LOCALBZIP2LIB = ${LOCALBZIP2LIBDIR}/${LIBBZIP2}
+LOCALBZIP2INCDIR = ${LOCALBZIP2DIR}
+LOCALZLIBDIR = ${PARTY3}/darwin_intel_${ARCH}/zlib
+LOCALZLIBLIBDIR = ${LOCALZLIBDIR}
+LOCALZLIBLIB = ${LOCALZLIBLIBDIR}/${LIBZLIB}
+LOCALZLIBINCDIR = ${LOCALZLIBDIR}
+INCLUDES = -iquote$(HEAD) -I${LOCALJANSSONINCDIR} -I${LOCALBZIP2INCDIR} -I${LOCALZLIBINCDIR}
+LIBLOCATION = -L${LOCALJANSSONLIBDIR} -L${LOCALBZIP2LIBDIR} -L${LOCALZLIBLIBDIR}
+LIBRARIES = ${LOCALJANSSONLIB} ${LOCALBZIP2LIB} ${LOCALZLIBLIB}
+STDFLAGS = -Wall -pedantic -std=c++11 -stdlib=libc++
+BLDFLAGS = -O3 ${STDFLAGS}
+
+FLAGS = $(BLDFLAGS) $(OBJDIR)/NaN.o $(OBJDIR)/starchConstants.o $(OBJDIR)/starchFileHelpers.o $(OBJDIR)/starchHelpers.o $(OBJDIR)/starchMetadataHelpers.o $(OBJDIR)/unstarchHelpers.o $(OBJDIR)/starchSha1Digest.o $(OBJDIR)/starchBase64Coding.o ${LIBLOCATION} ${INCLUDES}
+
+DFLAGS = -g -O0 -DDEBUG=1 ${STDFLAGS} $(OBJDIR)/NaN.o $(OBJDIR)/starchConstants.o $(OBJDIR)/starchFileHelpers.o $(OBJDIR)/starchHelpers.o $(OBJDIR)/starchMetadataHelpers.o $(OBJDIR)/unstarchHelpers.o $(OBJDIR)/starchSha1Digest.o $(OBJDIR)/starchBase64Coding.o ${LIBLOCATION} ${INCLUDES}
+
+GPROFFLAGS = -O -pg ${STDFLAGS} $(OBJDIR)/NaN.o $(OBJDIR)/starchConstants.o $(OBJDIR)/starchFileHelpers.o $(OBJDIR)/starchHelpers.o $(OBJDIR)/starchMetadataHelpers.o $(OBJDIR)/unstarchHelpers.o $(OBJDIR)/starchSha1Digest.o $(OBJDIR)/starchBase64Coding.o ${LIBLOCATION} ${INCLUDES}
+
+SOURCE1 = Bedmap.cpp
+BINDIR = ../bin
+PROG = bedmap
+
+build: dependencies
+ $(CXX) -o $(BINDIR)/$(PROG)_$(ARCH) $(FLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) ${LIBRARIES} $(SOURCE1)
+
+build_debug: dependencies
+ $(CXX) -o $(BINDIR)/debug.$(PROG)_$(ARCH) $(DFLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) ${LIBRARIES} $(SOURCE1)
+
+build_gprof: dependencies
+ $(CXX) -o $(BINDIR)/gprof.$(PROG)_$(ARCH) $(GPROFFLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) ${LIBRARIES} $(SOURCE1)
+
+dependencies:
+ rm -rf $(OBJDIR)
+ mkdir $(OBJDIR)
+ $(CXX) -c $(BLDFLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) $(LIB1)/NaN.cpp -o $(OBJDIR)/NaN.o ${INCLUDES}
+ $(CXX) -x c++ -c $(BLDFLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) $(LIB3)/starchConstants.c -o $(OBJDIR)/starchConstants.o ${INCLUDES}
+ $(CXX) -x c++ -c $(BLDFLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) $(LIB3)/starchFileHelpers.c -o $(OBJDIR)/starchFileHelpers.o ${INCLUDES}
+ $(CXX) -x c++ -c $(BLDFLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) $(LIB3)/starchHelpers.c -o $(OBJDIR)/starchHelpers.o ${INCLUDES}
+ $(CXX) -x c++ -c $(BLDFLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) $(LIB3)/starchMetadataHelpers.c -o $(OBJDIR)/starchMetadataHelpers.o ${INCLUDES}
+ $(CXX) -x c++ -c $(BLDFLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) $(LIB3)/unstarchHelpers.c -o $(OBJDIR)/unstarchHelpers.o ${INCLUDES}
+ ${CXX} -x c++ -c ${BLDFLAGS} -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) ${LIB3}/starchSha1Digest.c -o ${OBJDIR}/starchSha1Digest.o ${INCLUDES}
+ ${CXX} -x c++ -c ${BLDFLAGS} -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) ${LIB3}/starchBase64Coding.c -o ${OBJDIR}/starchBase64Coding.o ${INCLUDES}
+
+clean:
+ rm -rf $(OBJDIR)
+ rm -rf $(BINDIR)
diff --git a/applications/bed/bedmap/src/TDefs.hpp b/applications/bed/bedmap/src/TDefs.hpp
new file mode 100644
index 0000000..e26c7a3
--- /dev/null
+++ b/applications/bed/bedmap/src/TDefs.hpp
@@ -0,0 +1,100 @@
+/*
+ Author: Scott Kuehn, Shane Neph
+ Date: Fri Oct 19 08:20:50 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef _BEDMAP_TYPEDEFS_HPP
+#define _BEDMAP_TYPEDEFS_HPP
+
+#include "algorithm/visitors/BedVisitors.hpp"
+#include "algorithm/visitors/helpers/ProcessBedVisitorRow.hpp"
+#include "algorithm/visitors/helpers/ProcessVisitorRow.hpp"
+#include "utility/Exception.hpp"
+
+namespace BedMap {
+
+ //==============
+ // VisitorTypes
+ //==============
+ template <typename BaseClass>
+ struct VisitorTypes {
+
+ typedef Visitors::BedHelpers::Print ProcessAll;
+ typedef Visitors::BedHelpers::PrintAllScorePrecision ProcessOne;
+ typedef Visitors::BedHelpers::PrintID ProcessID;
+ typedef Visitors::BedHelpers::PrintLength ProcessLength;
+ typedef Visitors::Helpers::Print ProcessIntegerLength;
+ typedef Visitors::BedHelpers::PrintScore ProcessScore;
+ typedef Visitors::BedHelpers::PrintSpanName ProcessSpanName;
+ typedef Visitors::BedHelpers::PrintRowID ProcessRowID;
+ typedef Visitors::BedHelpers::PrintScorePrecision ProcessScorePrecision;
+ typedef Visitors::BedHelpers::PrintBED3 ProcessBED3;
+ typedef Visitors::Helpers::PrintRangeDelim<ProcessAll> ProcessRangeDelimAll;
+ typedef Visitors::Helpers::PrintRangeDelim<ProcessID> ProcessRangeDelimID;
+ typedef Visitors::Helpers::PrintRangeDelim<ProcessLength> ProcessRangeDelimLength;
+ typedef Visitors::Helpers::PrintRangeDelim<ProcessIntegerLength> ProcessRangeDelimIntersectLength;
+ typedef Visitors::BedHelpers::PrintUniqueRangeIDs ProcessUniqueDelimID;
+ typedef Visitors::Helpers::PrintRangeDelim<ProcessScore> ProcessRangeDelimScore;
+ typedef Visitors::Helpers::PrintRangeDelim<ProcessScorePrecision> ProcessRangeDelimScorePrecision;
+ typedef Visitors::BedHelpers::PrintGenomicRange<ProcessBED3> ProcessMapGenomicRange;
+
+ typedef typename BaseClass::RefType RefType;
+ typedef typename BaseClass::MapType MapType;
+ typedef Ordering::CompValueThenAddressGreater<MapType, MapType> MaxOrder;
+ typedef Ordering::CompValueThenAddressLesser<MapType, MapType> MinOrder;
+
+ typedef Visitors::Average<ProcessScorePrecision, BaseClass> Average;
+ typedef Visitors::CoeffVariation<ProcessScorePrecision, BaseClass> CoeffVariation;
+ typedef Visitors::Count<ProcessScore, BaseClass> Count;
+ typedef Visitors::RollingKthAverage<ProcessScorePrecision, BaseClass, Ext::ArgumentError> KthAverage;
+ typedef Visitors::Extreme<ProcessScorePrecision, BaseClass, MaxOrder> Max;
+ typedef Visitors::Indicator<ProcessScore, BaseClass> Indicator;
+ typedef Visitors::Median<ProcessScorePrecision, BaseClass> Median;
+ typedef Visitors::MedianAbsoluteDeviation<ProcessScorePrecision, BaseClass> MedianAbsoluteDeviation;
+ typedef Visitors::Extreme<ProcessScorePrecision, BaseClass, MinOrder> Min;
+ typedef Visitors::StdDev<ProcessScorePrecision, BaseClass> StdDev;
+ typedef Visitors::Sum<ProcessScorePrecision, BaseClass> Sum;
+ typedef Visitors::TrimmedMean<ProcessScorePrecision, BaseClass, Ext::ArgumentError> TMean;
+ typedef Visitors::Variance<ProcessScorePrecision, BaseClass> Variance;
+
+ typedef Visitors::Extreme<ProcessOne, BaseClass, MaxOrder> MaxElement;
+ typedef Visitors::Extreme<ProcessOne, BaseClass, MinOrder> MinElement;
+
+ typedef Visitors::BedSpecific::EchoMapBed<ProcessRangeDelimAll, BaseClass> EchoMapAll;
+ typedef Visitors::BedSpecific::EchoMapBed<ProcessRangeDelimID, BaseClass> EchoMapID;
+ typedef Visitors::BedSpecific::EchoMapBed<ProcessRangeDelimLength, BaseClass> EchoMapLength;
+ typedef Visitors::BedSpecific::EchoMapBed<ProcessMapGenomicRange, BaseClass> EchoMapRange;
+ typedef Visitors::BedSpecific::EchoMapBed<ProcessRangeDelimScorePrecision, BaseClass> EchoMapScore;
+ typedef Visitors::BedSpecific::EchoMapBed<ProcessUniqueDelimID, BaseClass> EchoMapUniqueID;
+ typedef Visitors::BedSpecific::EchoMapIntersectLength<ProcessRangeDelimIntersectLength, BaseClass> EchoMapIntersectLength;
+ typedef Visitors::Echo<ProcessAll, BaseClass> EchoRefAll;
+ typedef Visitors::Echo<ProcessLength, BaseClass> EchoRefLength;
+ typedef Visitors::Echo<ProcessSpanName, BaseClass> EchoRefSpan;
+ typedef Visitors::Echo<ProcessRowID, BaseClass> EchoRefRowNumber;
+ typedef Visitors::BedSpecific::OvrAggregate<ProcessScore, BaseClass> OvrAgg;
+ typedef Visitors::BedSpecific::OvrUnique<ProcessScore, BaseClass> OvrUniq;
+ typedef Visitors::BedSpecific::OvrUniqueFract<ProcessScorePrecision, BaseClass> OvrUniqFract;
+
+ };
+
+} // namespace BedMap
+
+#endif // _BEDMAP_TYPEDEFS_HPP
diff --git a/applications/bed/bedops/doc/Usage.Statement.Version1.2 b/applications/bed/bedops/doc/Usage.Statement.Version1.2
new file mode 100644
index 0000000..29d6575
--- /dev/null
+++ b/applications/bed/bedops/doc/Usage.Statement.Version1.2
@@ -0,0 +1,35 @@
+ bedops version: 1.2
+ authors: Shane Neph & Scott Kuehn
+
+ USAGE: bedops [process-flags] <operation> <File(s)>*
+ Every input file must be sorted per the sort-bed utility.
+ May use '-' for a file to indicate reading from standard input.
+ Each operation requires a minimum number of files as shown below.
+ There is no fixed maximum number of files that may be used.
+ Input files must have at least the first 3 columns of the BED specification,
+ and every end coordinate must be 1 bp beyond the end of its interval.
+
+ Process Flags:
+ --ec Error check input files (slower).
+ --help Print this message and exit successfully.
+ --help-<operation> Detailed help on <operation>.
+ An example is --help-c or --help--complement
+ --range <val> Pad input file(s) symmetrically by <val> which may be
+ negative to shrink or remove regions. With -e/-n
+ operations, the first/reference file is not padded.
+
+ Operations: (choose one of)
+ -c, --complement [-L] File1 [File]*
+ -d, --difference ReferenceFile File2 [File]*
+ -e, --element-of [-number% | -number (in bp)] ReferenceFile File2 [File]*
+ by default, -e -100% is used.
+ -i, --intersect File1 File2 [File]*
+ -m, --merge File1 [File]*
+ -n, --not-element-of [-number% | -number (in bp)] ReferenceFile File2 [File]*
+ by default, -n -100% is used.
+ -s, --symmdiff File1 File2 [File]*
+ -u, --everything File1 [File]*
+
+ NOTE: Only operations -e|n|u preserve all columns (no flattening)
+ Example: bedops --range 10 -u file1.bed
+
diff --git a/applications/bed/bedops/src/BedPadReader.hpp b/applications/bed/bedops/src/BedPadReader.hpp
new file mode 100644
index 0000000..23b40d5
--- /dev/null
+++ b/applications/bed/bedops/src/BedPadReader.hpp
@@ -0,0 +1,289 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Fri Aug 13 15:00:25 PDT 2010
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef BED_PAD_READER_BEDOPS_H
+#define BED_PAD_READER_BEDOPS_H
+
+#include <algorithm>
+#include <cmath>
+#include <deque>
+#include <iterator>
+#include <map>
+#include <set>
+#include <string>
+#include <utility>
+
+#include "data/bed/BedCompare.hpp"
+#include "suite/BEDOPS.Constants.hpp"
+#include "utility/Assertion.hpp"
+#include "utility/ByLine.hpp"
+
+
+namespace BedOperations {
+
+template <typename T>
+struct NoPtr;
+
+template <typename T>
+struct NoPtr<T*> {
+ typedef T Type;
+};
+
+
+/*
+ What to think about with padding:
+ chr1 20 100
+ chr1 30 50
+ say padding is 40:
+ chr1 0 140
+ chr1 0 90
+ this is no longer in sort-bed order.
+
+ This only is a problem near zero, when lpad_ < 0. The private member function
+ getFirst() deals with everything, and should ONLY be called from the constructor or
+ during chromosome changes.
+*/
+
+
+//==============
+// BedPadReader
+//==============
+template <typename IterType>
+struct BedPadReader {
+ typedef IterType IteratorType;
+ typedef typename NoPtr<typename IterType::value_type>::Type BedType;
+
+ explicit BedPadReader(IterType iter, int lpadding, int rpadding)
+ : iter_(iter), lpad_(lpadding), rpad_(rpadding),
+ lastChr_(""), cache_() {
+ if ( lpad_ < 0 ) {
+ getFirst();
+ }
+ }
+
+ BedPadReader(const BedPadReader& b); // not safe to copy due to iterators in some cases
+ BedPadReader& operator=(const BedPadReader& b); // not safe to assign due to iterators in some cases
+
+ inline bool HasNext() {
+ static const IterType end;
+ if ( !cache_.empty() )
+ return(true);
+ if ( iter_ == end )
+ return(false);
+
+ /*
+ Must ReadLine() in case padding is such that all remaining elements
+ in a file vaporize.
+ Example:
+ chr1 20 100
+ chr1 30 50
+ chr2 5 8
+
+ bedops -u --pad -5:-10
+ */
+ BedType* tmp = ReadLine();
+ if ( tmp != static_cast<BedType*>(0) ) {
+ PushBack(tmp);
+ return(true);
+ }
+ return(false);
+ }
+
+ inline void PushBack(BedType* bt) {
+ cache_.push_back(bt);
+ }
+
+ inline BedType* ReadLine() {
+ static const bool done = false;
+ static BedType* tmp = static_cast<BedType*>(0);
+ static const IterType end;
+
+ // lpad_ may be +, rpad_ may be -. In either case, padding may cause an element to become
+ // a non-element (vaporizes). Nothing in the cache_ is a problem. Only need to
+ // check when reading something new from iter_.
+ while ( !done ) {
+ if ( !cache_.empty() ) { // get from the cache_
+ tmp = cache_.back();
+ cache_.pop_back();
+ if ( lpad_ < 0 ) // else, don't waste time on next unimportant assignment
+ lastChr_ = tmp->chrom();
+ return(tmp);
+ } else if ( iter_ == end ) { // && cache_.empty()
+ return(static_cast<BedType*>(0));
+ } else { // read from iter_
+ tmp = *iter_; // cannot post-increment here due to lpad_ < 0 && getFirst() possibility
+ if ( rpad_ < 0 || lpad_ > 0 ) { // tmp->end() is an Bed::CoordType; must cast
+ ++iter_;
+ tmp->start(tmp->start() + lpad_);
+ if ( static_cast<double>(tmp->end()) + rpad_ > tmp->start() ) {
+ tmp->end(tmp->end() + rpad_);
+ return(tmp);
+ }
+ else // tmp vaporized by padding
+ delete tmp;
+ } else if ( lpad_ < 0 ) {
+ if ( tmp->chrom() != lastChr_ ) { // cache_ is empty && iter_ != end
+ getFirst(); // iter_ increments dealt with in getFirst()
+ tmp = cache_.back(); // next item may have changed after getFirst()
+ cache_.pop_back();
+ lastChr_ = tmp->chrom();
+ } else { // getFirst() already dealt with any padding issues on this chromosome
+ tmp->start(tmp->start() + lpad_);
+ tmp->end(tmp->end() + rpad_);
+ ++iter_;
+ }
+ return(tmp);
+ } else if ( rpad_ > 0 ) {
+ tmp->start(tmp->start() + lpad_);
+ tmp->end(tmp->end() + rpad_);
+ ++iter_;
+ return(tmp);
+ } else {
+ ++iter_;
+ return(tmp);
+ }
+ }
+ } // while
+ }
+
+ void Clean() {
+ while ( !cache_.empty() ) {
+ delete cache_.back();
+ cache_.pop_back();
+ }
+ }
+
+ void CleanAll() {
+ Clean();
+ BedType* tmp = static_cast<BedType*>(0);
+ while ( (tmp = ReadLine()) )
+ delete tmp;
+ }
+
+ ~BedPadReader() {
+ while ( !cache_.empty() ) {
+ delete cache_.back();
+ cache_.pop_back();
+ }
+ }
+
+
+private:
+
+ // Only called from the constructor or on chrom changes WHEN lpad_ is < 0
+ void getFirst() {
+ // Only for the case where subtracting padding results in a start coordinate
+ // of zero or less. Need to keep track of multiple items that are ties to
+ // ensure the output order is the same as the input order.
+ // After separating lpad_ from rpad_, need to worry about vaporizing elements
+ // here too for the case when: lpad_ < 0 and rpad_ < lpad_
+ typedef Bed::GenomicCompare<BedType, BedType> CompLess;
+ typedef std::set<BedType*, CompLess> SType;
+ typedef std::multiset<BedType*, CompLess> MType;
+ typedef std::vector<BedType*> TieType; // helps deal with ties after padding
+ MType mset;
+ SType sset;
+ TieType tmap;
+ BedType* const zero = static_cast<BedType*>(0);
+ BedType* tmp = zero;
+ static const IterType end;
+ const Bed::CoordType lpd = static_cast<Bed::CoordType>(std::abs(lpad_));
+ std::pair<typename SType::iterator, bool> p;
+ while ( iter_ != end && (tmp = *iter_++) ) {
+ if ( tmp->start() > lpd ) { // cannot be >=
+ tmp->start(tmp->start() - lpd);
+ if ( tmp->end() + rpad_ > tmp->start() ) {
+ tmp->end(tmp->end() + rpad_);
+ mset.insert(tmp);
+ break; // all others meet the invariant condition: tmp->start() > lpd
+ } else { // lpad_ < 0 and rpad_ < lpad_
+ delete tmp;
+ continue;
+ }
+ }
+ if ( static_cast<double>(tmp->end()) + rpad_ <= 0 ) {
+ delete tmp;
+ continue;
+ }
+ tmp->start(0);
+ tmp->end(tmp->end() + rpad_);
+ mset.insert(tmp);
+ p = sset.insert(tmp);
+ if ( !p.second ) { // a tie
+ if ( tmap.empty() )
+ tmap.push_back(*sset.find(tmp));
+ else {
+ bool add = true;
+ BedType* tmptr = *sset.find(tmp);
+ for ( std::size_t i = tmap.size(); i > 0; --i ) {
+ if ( tmap[i-1] == tmptr ) { // already in tmap?
+ add = false;
+ break;
+ }
+ } // for
+ if ( add )
+ tmap.push_back(tmptr);
+ }
+ tmap.push_back(tmp);
+ }
+ } // while
+
+ cache_.clear(); // cache_ better be empty already!
+ sset.clear();
+
+ CompLess cless;
+ std::size_t number = 0;
+ if ( !tmap.empty() ) {
+ for ( typename MType::const_iterator i = mset.begin(); i != mset.end(); ++i ) {
+ if ( number >= tmap.size() ) {
+ cache_.push_front(*i);
+ continue;
+ }
+
+ if ( tmap[number] == *i ) {
+ cache_.push_front(*i);
+ ++number;
+ } else if ( 0 == cless.operator()(tmap[number], *i) && 0 == cless.operator()(*i, tmap[number]) ) { // tie, but not tmap[number]
+ cache_.push_front(tmap[number]); // tmap holds the proper order on ties
+ ++number;
+ --i; // try again - may be more than just 2 in the tie
+ } else {
+ cache_.push_front(*i);
+ }
+ } // for
+ }
+ else // cache_ holds the 'next' item at its back
+ std::copy(mset.rbegin(), mset.rend(), std::back_inserter(cache_));
+ }
+
+private:
+ IterType iter_;
+ int lpad_, rpad_;
+ std::string lastChr_;
+ std::deque<BedType*> cache_;
+};
+
+} // namespace BedOperations
+
+
+#endif // BED_PAD_READER_BEDOPS_H
diff --git a/applications/bed/bedops/src/Bedops.cpp b/applications/bed/bedops/src/Bedops.cpp
new file mode 100644
index 0000000..ae38306
--- /dev/null
+++ b/applications/bed/bedops/src/Bedops.cpp
@@ -0,0 +1,1563 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Fri Aug 13 15:00:25 PDT 2010
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#include <algorithm>
+#include <cstdlib>
+#include <cstring>
+#include <deque>
+#include <exception>
+#include <fstream>
+#include <functional>
+#include <iostream>
+#include <iterator>
+#include <numeric>
+#include <queue>
+#include <string>
+#include <utility>
+#include <vector>
+
+#include "algorithm/visitors/helpers/ProcessBedVisitorRow.hpp"
+#include "data/bed/AllocateIterator_BED_starch.hpp"
+#include "data/bed/BedCheckIterator.hpp"
+#include "data/bed/BedCompare.hpp"
+#include "data/bed/BedTypes.hpp"
+#include "suite/BEDOPS.Constants.hpp"
+#include "suite/BEDOPS.Version.hpp"
+#include "utility/Exception.hpp"
+#include "utility/FPWrap.hpp"
+
+#include "BedPadReader.hpp"
+#include "Input.hpp"
+
+
+
+namespace { // unnamed
+
+ typedef std::pair<Bed::CoordType, Bed::CoordType> PType;
+
+ // not a valid coordinate range
+ static const PType NADA_NOTHING = std::make_pair(1, 0);
+
+} // unnamed
+
+
+
+namespace BedOperations {
+
+ const std::string prognm = "bedops";
+ const std::string citation = BEDOPS::citation();
+ const std::string version = BEDOPS::revision();
+ const std::string authors = "Shane Neph & Scott Kuehn";
+
+ void doWork(const Input& input);
+} // namespace BedOperations
+
+
+
+//========
+// main()
+//========
+int main(int argc, char** argv) {
+ try {
+ // Check inputs; initialize variables
+ BedOperations::Input input(argc, argv);
+ BedOperations::doWork(input);
+ return(EXIT_SUCCESS);
+ } catch(BedOperations::HelpException& h) {
+ std::cout << BedOperations::prognm << std::endl;
+ std::cout << " citation: " + BedOperations::citation << std::endl;
+ std::cout << " version: " + BedOperations::version << std::endl;
+ std::cout << " authors: " + BedOperations::authors << std::endl;
+ std::cout << BedOperations::Usage() << std::endl;
+ return(EXIT_SUCCESS);
+ } catch(BedOperations::ExtendedHelpException& e) {
+ try {
+ std::cout << BedOperations::prognm << std::endl;
+ std::cout << " citation: " + BedOperations::citation << std::endl;
+ std::cout << " version: " + BedOperations::version << std::endl;
+ std::cout << " authors: " + BedOperations::authors << std::endl;
+ std::cout << BedOperations::DetailedUsage(e.m_) << std::endl;
+ } catch(const std::exception& s) {
+ std::cerr << s.what() << std::endl;
+ }
+ return(EXIT_SUCCESS);
+ } catch(BedOperations::Version& v) {
+ std::cout << BedOperations::prognm << std::endl;
+ std::cout << " citation: " + BedOperations::citation << std::endl;
+ std::cout << " version: " + BedOperations::version << std::endl;
+ std::cout << " authors: " + BedOperations::authors << std::endl;
+ return(EXIT_SUCCESS);
+ } catch(BedOperations::NoInput& ni) {
+ std::cout << BedOperations::prognm << std::endl;
+ std::cout << " citation: " + BedOperations::citation << std::endl;
+ std::cout << " version: " + BedOperations::version << std::endl;
+ std::cout << " authors: " + BedOperations::authors << std::endl;
+ std::cerr << BedOperations::Usage() << std::endl;
+ } catch(std::string& s) {
+ std::cerr << "May use bedops --help for more help.\n" << std::endl;
+ std::cerr << "Error: " << s << std::endl;
+ } catch(const std::exception& stx) {
+ std::cerr << "May use bedops --help for more help.\n" << std::endl;
+ std::cerr << "Error: " << stx.what() << std::endl;
+ } catch(...) {
+ std::cerr << "Unknown Error. Aborting" << std::endl;
+ }
+ return(EXIT_FAILURE);
+}
+
+
+
+// Function implementations
+namespace BedOperations {
+
+//=========
+// clean()
+//=========
+template <typename Cont>
+void clean(Cont& c) {
+ for ( typename Cont::iterator i = c.begin(); i != c.end(); ++i ) {
+ if ( *i )
+ delete *i;
+ } // for
+}
+
+//==========
+// record()
+//==========
+template <typename BedType>
+inline void record(BedType* b) {
+ static Visitors::BedHelpers::Println printer;
+ printer.operator()(b);
+}
+
+//===================
+// GetType<BedFiles> : get underlying BedType
+//===================
+template <typename BedFiles>
+struct GetType {
+ typedef typename NoPtr<typename BedFiles::value_type>::Type::BedType BedType;
+
+ /*
+ A c++ priority queue return the greatest element first. This is done, by default
+ using std::less<>. If you want the least element, you have to use std::greater<>.
+ In our case, the analogs are Bed::GenomicAddressCompare for std::less<> (max element
+ first), and Bed::InvertGenomicAddressCompare for std::greater<> (min element first).
+ */
+ typedef std::priority_queue<
+ BedType*, std::vector<BedType*>,
+ Bed::InvertGenomicAddressCompare<BedType, BedType>
+ > IPQ;
+
+ typedef std::priority_queue<
+ BedType*, std::vector<BedType*>,
+ Bed::GenomicAddressCompare<BedType, BedType>
+ > PQ;
+};
+
+//=============
+// IsSame<T,U>
+//=============
+template <typename T, typename U>
+struct IsSame {
+ static const bool same = false;
+};
+
+template <typename T>
+struct IsSame<T,T> {
+ static const bool same = true;
+};
+
+// Forward declarations
+template <typename BedFiles>
+void selectWork(const Input&, BedFiles&);
+
+template <typename RefFile, typename NonRefFiles>
+void selectWork(const Input&, RefFile&, NonRefFiles&);
+
+
+//=================
+// createWork<T,U>
+//=================
+// This structure is specialized for cases where bed_check_iterator<T*> should
+// be used in lieu of allocate_iterator_starch_bed<T*>. Further specializations
+// include cases where there is a reference file of a different BED type
+// compared to all others. Specifically, element-of and non-element-of need
+// B3Rest for the reference file and B3NoRest for the remaining files. While
+// this complicates code a bit (could use B3Rest for everything), efficiency
+// gains are substantial when we can use Bed3NoRest.
+template <typename IterType1, typename IterType2 = IterType1>
+struct createWork;
+
+
+//=================
+// createWork<T,U>
+//=================
+template <typename IterType1, typename IterType2>
+struct createWork {
+ static void run(const Input& input) {
+ typedef Ext::FPWrap<Ext::InvalidFile> FPType;
+ typedef BedPadReader<IterType1> BedReaderType1;
+ typedef BedPadReader<IterType2> BedReaderType2;
+ typedef std::vector<BedReaderType2*> BedReaderContainer;
+
+ FPType* nextFilePtr = static_cast<FPType*>(0);
+ std::vector<FPType*> filePointers;
+ BedReaderType1* refFile = static_cast<BedReaderType1*>(0);
+ BedReaderContainer bedFiles;
+ for ( int i = 0; i < input.NumberFiles(); ++i ) {
+ nextFilePtr = new FPType(input.GetFileName(i));
+ filePointers.push_back(nextFilePtr);
+ if ( 0 == i ) {
+ IterType1 fileI(*nextFilePtr, input.Chrom());
+ refFile = new BedReaderType1(fileI, 0, 0); // never pad sole reference file
+ } else {
+ IterType2 t(*nextFilePtr, input.Chrom());
+ bedFiles.push_back(new BedReaderType2(t, input.GetLeftPad(), input.GetRightPad()));
+ }
+ } // for
+
+ try {
+ selectWork(input, *refFile, bedFiles);
+ if ( refFile )
+ delete refFile;
+ clean(filePointers);
+ clean(bedFiles);
+ } catch(...) {
+ if ( refFile )
+ delete refFile;
+ clean(filePointers);
+ clean(bedFiles);
+ throw;
+ }
+ }
+};
+
+//================================
+// createWork<T,T> specialization
+//================================
+template <typename IterType>
+struct createWork<IterType, IterType> {
+ static void run(const Input& input) {
+ typedef Ext::FPWrap<Ext::InvalidFile> FPType;
+ typedef BedPadReader<IterType> BedReaderType;
+ typedef std::vector<BedReaderType*> BedReaderContainer;
+
+ FPType* nextFilePtr = static_cast<FPType*>(0);
+ std::vector<FPType*> filePointers;
+ BedReaderContainer bedFiles;
+ for ( int i = 0; i < input.NumberFiles(); ++i ) {
+ nextFilePtr = new FPType(input.GetFileName(i));
+ filePointers.push_back(nextFilePtr);
+ IterType t(*nextFilePtr, input.Chrom());
+ bedFiles.push_back(new BedReaderType(t, input.GetLeftPad(), input.GetRightPad()));
+ } // for
+
+ try {
+ selectWork(input, bedFiles);
+ clean(filePointers);
+ clean(bedFiles);
+ } catch(...) {
+ clean(filePointers);
+ clean(bedFiles);
+ throw;
+ }
+ }
+};
+
+//=================
+// createWork<T,U> : specialization for error checking
+//=================
+template <typename BedType1, typename BedType2>
+struct createWork< Bed::bed_check_iterator<BedType1*>, Bed::bed_check_iterator<BedType2*> > {
+ static void run(const Input& input) {
+ typedef std::ifstream* StreamPtr;
+ typedef Bed::bed_check_iterator<BedType1*> IterType1;
+ typedef Bed::bed_check_iterator<BedType2*> IterType2;
+ typedef BedPadReader<IterType1> BedReaderType1;
+ typedef BedPadReader<IterType2> BedReaderType2;
+ typedef std::vector<BedReaderType2*> BedReaderContainer;
+ typedef typename Bed::bed_check_iterator<BedType1*>::Exception Error;
+
+ StreamPtr nextFilePtr = static_cast<StreamPtr>(0);
+ std::vector<StreamPtr> filePointers;
+ BedReaderType1* refFile = static_cast<BedReaderType1*>(0);
+ BedReaderContainer bedFiles;
+ for ( int i = 0; i < input.NumberFiles(); ++i ) {
+ // Create file handle iterators
+ bool isStdin = (input.GetFileName(i) == "-");
+ if ( !isStdin ) {
+ nextFilePtr = new std::ifstream(input.GetFileName(i).c_str());
+ filePointers.push_back(nextFilePtr);
+ }
+
+ if ( 0 == i ) {
+ if ( isStdin ) {
+ IterType1 fileI(std::cin, "stdin", input.Chrom());
+ refFile = new BedReaderType1(fileI, 0, 0); // never pad sole Reference File
+ } else {
+ if ( !nextFilePtr || !(*nextFilePtr) )
+ throw(Error("Unable to find file: " + input.GetFileName(i)));
+ IterType1 fileI(*nextFilePtr, input.GetFileName(i), input.Chrom());
+ refFile = new BedReaderType1(fileI, 0, 0); // never pad sole Reference File
+ }
+ } else {
+ if ( isStdin ) {
+ IterType2 fileI(std::cin, "stdin", input.Chrom());
+ bedFiles.push_back(new BedReaderType2(fileI, input.GetLeftPad(), input.GetRightPad()));
+ } else {
+ if ( !nextFilePtr || !(*nextFilePtr) )
+ throw(Error("Unable to find file: " + input.GetFileName(i)));
+ IterType2 fileI(*nextFilePtr, input.GetFileName(i), input.Chrom());
+ bedFiles.push_back(new BedReaderType2(fileI, input.GetLeftPad(), input.GetRightPad()));
+ }
+ }
+ } // for
+
+ try {
+ selectWork(input, *refFile, bedFiles);
+ refFile->CleanAll(); // read file all the way through for error-checking
+ for ( std::size_t i = 0; i < bedFiles.size(); ++i )
+ bedFiles[i]->CleanAll(); // read file all the way through for error-checking
+ if ( refFile )
+ delete refFile;
+ clean(filePointers);
+ clean(bedFiles);
+ } catch(...) {
+ clean(filePointers);
+ clean(bedFiles);
+ throw;
+ }
+ }
+};
+
+//=================
+// createWork<T,T> : specialization for error checking
+//=================
+template <typename BedType>
+struct createWork< Bed::bed_check_iterator<BedType*>, Bed::bed_check_iterator<BedType*> > {
+ static void run(const Input& input) {
+ typedef std::ifstream* StreamPtr;
+ typedef Bed::bed_check_iterator<BedType*> IterType;
+ typedef BedPadReader<IterType> BedReaderType;
+ typedef std::vector<BedReaderType*> BedReaderContainer;
+ typedef typename Bed::bed_check_iterator<BedType*>::Exception Error;
+
+ StreamPtr nextFilePtr = static_cast<StreamPtr>(0);
+ std::vector<StreamPtr> filePointers;
+ BedReaderContainer bedFiles;
+ for ( int i = 0; i < input.NumberFiles(); ++i ) {
+ // Create file handle iterators
+ bool isStdin = (input.GetFileName(i) == "-");
+ if ( isStdin ) {
+ IterType fileI(std::cin, "stdin", input.Chrom());
+ bedFiles.push_back(new BedReaderType(fileI, input.GetLeftPad(), input.GetRightPad()));
+ } else {
+ nextFilePtr = new std::ifstream(input.GetFileName(i).c_str());
+ filePointers.push_back(nextFilePtr);
+ if ( !nextFilePtr || !(*nextFilePtr) )
+ throw(Error("Unable to find file: " + input.GetFileName(i)));
+ IterType fileI(*nextFilePtr, input.GetFileName(i), input.Chrom());
+ bedFiles.push_back(new BedReaderType(fileI, input.GetLeftPad(), input.GetRightPad()));
+ }
+ } // for
+
+ try {
+ selectWork(input, bedFiles);
+ for ( std::size_t i = 0; i < bedFiles.size(); ++i )
+ bedFiles[i]->CleanAll(); // read file all the way through for error-checking
+ clean(filePointers);
+ clean(bedFiles);
+ } catch(...) {
+ clean(filePointers);
+ clean(bedFiles);
+ throw;
+ }
+ }
+};
+
+//==========
+// doWork()
+//==========
+void doWork(const Input& input) {
+ ModeType mode = input.GetModeType();
+ const bool errorCheck = input.ErrorCheck();
+ if ( mode == UNIONALL ) { // Keep all columns in all files
+ typedef Bed::B3Rest BedType;
+ if ( errorCheck )
+ createWork< Bed::bed_check_iterator<BedType*> >::run(input);
+ else
+ createWork< Bed::allocate_iterator_starch_bed<BedType*> >::run(input);
+ }
+ else if ( mode == ELEMENTOF || mode == NOTELEMENTOF ) { // Keep all columns only in first file
+ typedef Bed::B3Rest BedType1;
+ typedef Bed::B3NoRest BedType2;
+ if ( errorCheck )
+ createWork< Bed::bed_check_iterator<BedType1*>,
+ Bed::bed_check_iterator<BedType2*> >::run(input);
+ else
+ createWork< Bed::allocate_iterator_starch_bed<BedType1*>,
+ Bed::allocate_iterator_starch_bed<BedType2*> >::run(input);
+ }
+ else { // Only use 3 columns
+ typedef Bed::B3NoRest BedType;
+ if ( errorCheck )
+ createWork< Bed::bed_check_iterator<BedType*> >::run(input);
+ else
+ createWork< Bed::allocate_iterator_starch_bed<BedType*> >::run(input);
+ }
+}
+
+//==========
+// doChop()
+//==========
+template <typename BedFiles>
+typename GetType<BedFiles>::BedType* nextMergeAllLines(int start, int end, BedFiles&);
+
+template <typename BedFiles>
+void doChop(BedFiles& bedFiles, Bed::CoordType chunkSize, Bed::CoordType stagger, bool excludeEndShort) {
+ typedef typename GetType<BedFiles>::BedType BedType;
+ static BedType* const zero = static_cast<BedType*>(0);
+ BedType c;
+ BedType* r = zero;
+ bool done = false;
+ while ( !done ) {
+ r = nextMergeAllLines(0, bedFiles.size(), bedFiles);
+ if ( !r )
+ break;
+ for ( auto i = r->start(); i < r->end(); ) {
+ if ( 0 != std::strcmp(c.chrom(), r->chrom()) )
+ c.chrom(r->chrom());
+ c.start(i);
+ c.end(i+chunkSize);
+ if ( c.end() > r->end() ) {
+ if ( excludeEndShort ) // final section < chunkSize
+ break;
+ c.end(r->end());
+ }
+ record(&c);
+
+ if ( 0 == stagger )
+ i += chunkSize;
+ else
+ i += stagger;
+ } // for
+ delete r;
+ } // while
+}
+
+//================
+// doComplement()
+//================
+template <typename BedFiles>
+std::pair<bool, typename GetType<BedFiles>::BedType*> nextComplementLine(BedFiles&, bool);
+
+template <typename BedFiles>
+void doComplement(BedFiles& bedFiles, bool fullLeft) {
+ typedef typename GetType<BedFiles>::BedType BedType;
+ bool done = false;
+ std::pair<bool, BedType*> nextline;
+ while ( !done ) {
+ nextline = nextComplementLine(bedFiles, fullLeft);
+ if ( !nextline.second )
+ break;
+ else if ( !nextline.first ) {
+ record(nextline.second);
+ delete nextline.second;
+ }
+ } // while
+}
+
+//================
+// doDifference()
+//================
+template <typename BedFiles>
+std::pair<bool, typename GetType<BedFiles>::BedType*>
+ nextDifferenceLine(BedFiles&,
+ typename GetType<BedFiles>::BedType*& nextRefMerge,
+ typename GetType<BedFiles>::BedType*&);
+
+template <typename BedFiles>
+void doDifference(BedFiles& bedFiles) {
+ typedef typename GetType<BedFiles>::BedType BedType;
+ static BedType* const zero = static_cast<BedType*>(0);
+ const int noRef = 1; // 0 is master index
+
+ bool done = false;
+ std::pair<bool, BedType*> nextline = std::make_pair(false, zero);
+ BedType* nextRefMerge = zero;
+ BedType* nextNonRefMerge = nextMergeAllLines(noRef, bedFiles.size(), bedFiles);
+ while ( !done ) {
+ nextline = nextDifferenceLine(bedFiles, nextRefMerge, nextNonRefMerge);
+ if ( !nextline.second )
+ break;
+ else if ( !nextline.first ) {
+ record(nextline.second);
+ if ( nextRefMerge == nextline.second ) {
+ delete nextRefMerge;
+ nextRefMerge = zero;
+ }
+ else
+ delete nextline.second;
+ }
+ } // while
+}
+
+//===============
+// doElementOf()
+//===============
+template <typename BedFile>
+typename BedFile::BedType* getNextFileLine(BedFile&);
+
+template <typename RefFile, typename NonRefFiles>
+std::pair<bool, typename RefFile::BedType*>
+ nextElementOfLine(typename RefFile::BedType*&, RefFile&, NonRefFiles&,
+ std::deque<typename GetType<NonRefFiles>::BedType*>&,
+ double, bool, bool);
+
+template <typename RefFile, typename NonRefFiles>
+void doElementOf(RefFile& refFile, NonRefFiles& nonRefBedFiles, double thres, bool usePerc, bool invert) {
+ typedef typename RefFile::BedType RefBedType;
+ typedef typename GetType<NonRefFiles>::BedType NonRefBedType;
+ static RefBedType* const zero = static_cast<RefBedType*>(0);
+
+ std::deque<NonRefBedType*> q;
+ std::pair<bool, RefBedType*> r;
+ RefBedType* nextRef = zero;
+ NonRefBedType* tmp = nextMergeAllLines(0, nonRefBedFiles.size(), nonRefBedFiles);
+ if ( tmp )
+ q.push_back(tmp);
+ bool done = false;
+ while ( !done ) {
+ std::pair<bool, RefBedType*> r = nextElementOfLine(nextRef, refFile, nonRefBedFiles, q, thres, usePerc, invert);
+ if ( !nextRef )
+ break;
+ else if ( !r.first && r.second )
+ record(nextRef);
+
+ delete nextRef;
+ nextRef = getNextFileLine(refFile); // unmerged; may be zero
+ } // while
+
+ while ( !q.empty() ) {
+ delete q.front();
+ q.pop_front();
+ } // while
+}
+
+//==================
+// doIntersection()
+//==================
+template <typename BedFiles>
+typename GetType<BedFiles>::BedType* nextIntersectLine(BedFiles&);
+
+template <typename BedFiles>
+void doIntersection(BedFiles& bedFiles) {
+ typedef typename GetType<BedFiles>::BedType BedType;
+ static BedType* const zero = static_cast<BedType*>(0);
+ BedType* next = zero;
+ bool done = false;
+ while ( !done ) {
+ next = nextIntersectLine(bedFiles);
+ if ( !next )
+ break;
+ record(next);
+ delete next;
+ } // while
+}
+
+//===========
+// doMerge()
+//===========
+template <typename BedFiles>
+void doMerge(BedFiles& bedFiles) {
+ typedef typename GetType<BedFiles>::BedType BedType;
+ static BedType* const zero = static_cast<BedType*>(0);
+ BedType* r = zero;
+ bool done = false;
+ while ( !done ) {
+ r = nextMergeAllLines(0, bedFiles.size(), bedFiles);
+ if ( !r )
+ break;
+ record(r);
+ delete r;
+ r = zero;
+ } // while
+}
+
+//================
+// doPartitions()
+//================
+template <typename BedFiles, typename PQueue>
+void nextPartitionGroup(BedFiles& bedFiles, PQueue& pq);
+
+template <typename BedFiles>
+void doPartitions(BedFiles& bedFiles) {
+ typedef typename GetType<BedFiles>::BedType BedType;
+ const bool done = false;
+ typename GetType<BedFiles>::IPQ pq;
+
+ BedType* z = static_cast<BedType*>(0);
+ while ( !done ) {
+ nextPartitionGroup(bedFiles, pq);
+ if ( pq.empty() )
+ break;
+
+ BedType* mn = pq.top(); // minimum element
+ pq.pop();
+ if ( pq.empty() ) {
+ record(mn);
+ delete mn;
+ } else {
+ BedType lcl = *mn;
+ BedType* curr = mn;
+ while ( !pq.empty() ) {
+ BedType* ct = pq.top(); // guaranteed to overlap mn, and not extend beyond mn
+ pq.pop();
+ if ( curr->end() <= ct->start() ) {
+ record(curr);
+ delete curr;
+ curr = ct;
+ } else if ( ct->start() == curr->start() ) {
+ if ( ct->end() == curr->end() ) { // dups
+ delete ct;
+ } else { // ct->end() > curr->end()
+ ct->start(curr->end());
+ pq.push(ct);
+ while ( (z = pq.top())->start() == curr->start() ) {
+ pq.pop();
+ z->start(curr->end()); // z->end() > curr->end()
+ pq.push(z);
+ } // while
+ ct = pq.top(); // may not be an element whose start() we just redefined
+ // not popping on purpose
+ lcl.start(curr->start());
+ lcl.end(ct->start());
+ record(&lcl);
+
+ if ( curr->end() != ct->start() ) {
+ // ct could be fully nested in curr
+ // order could change after next modification.
+ curr->start(ct->start());
+ pq.push(curr);
+ } else { // curr is no longer useful
+ delete curr;
+ }
+ curr = pq.top();
+ pq.pop();
+ }
+ } else { // overlap and curr->start() < ct->start()
+ lcl.start(curr->start());
+ lcl.end(ct->start());
+ record(&lcl);
+ // ct could be fully nested in curr, and
+ // order could change after next modification.
+ curr->start(ct->start());
+ pq.push(curr);
+ pq.push(ct);
+ curr = pq.top();
+ pq.pop();
+ }
+ } // while
+ record(curr);
+ delete curr;
+ }
+ } // while
+}
+
+//=========================
+// doSymmetricDifference()
+//=========================
+template <typename BedFiles>
+std::pair<bool, typename GetType<BedFiles>::BedType*> nextSymmetricDiffLine(BedFiles&);
+
+template <typename BedType>
+BedType* mergeOverlap(const BedType*, const BedType*);
+
+template <typename BedFiles>
+void doSymmetricDifference(BedFiles& bedFiles) {
+ /* must cache last result to ensure all overlaps are caught */
+ typedef typename GetType<BedFiles>::BedType BedType;
+ static BedType* const zero = static_cast<BedType*>(0);
+ bool done = false, first = true;
+ std::pair<bool, BedType*> nextDiff = std::make_pair(false, zero);
+ BedType* toRecord = zero;
+ BedType* overlap = zero;
+ while ( !done ) {
+ nextDiff = nextSymmetricDiffLine(bedFiles);
+ if ( !nextDiff.second ) {
+ if ( !first ) {
+ record(toRecord);
+ delete toRecord;
+ toRecord = zero;
+ }
+ break;
+ }
+ else if ( nextDiff.first )
+ nextDiff = std::make_pair(false, zero);
+ else {
+ if ( !toRecord || std::strcmp(toRecord->chrom(), nextDiff.second->chrom()) != 0 ) {
+ if ( !first && toRecord ) {
+ record(toRecord);
+ delete toRecord;
+ }
+ toRecord = nextDiff.second;
+ }
+ else {
+ overlap = mergeOverlap(nextDiff.second, toRecord);
+ if ( !overlap ) {
+ if ( !first ) {
+ record(toRecord);
+ delete toRecord;
+ }
+ toRecord = nextDiff.second;
+ }
+ else {
+ delete toRecord;
+ delete nextDiff.second;
+ toRecord = overlap;
+ }
+ }
+ first = false;
+ }
+ } // while
+
+ if ( toRecord )
+ delete toRecord;
+}
+
+//==============
+// doUnionAll()
+//==============
+template <typename BedFiles>
+typename GetType<BedFiles>::BedType* nextUnionAllLine(BedFiles&);
+
+template <typename BedFiles>
+void doUnionAll(BedFiles& bedFiles) {
+ /* If inputs have duplicate entries, output will too */
+ typedef typename GetType<BedFiles>::BedType BedType;
+ static BedType* const zero = static_cast<BedType*>(0);
+
+ BedType* r = zero;
+ if ( 1 == bedFiles.size() ) {
+ /* a simple cat command, possibly post-padded as
+ dealt with in BedPadReader. */
+ while ( bedFiles[0]->HasNext() ) {
+ r = bedFiles[0]->ReadLine();
+ record(r);
+ delete r;
+ } // while
+ return;
+ }
+
+ const bool done = false;
+ while ( !done ) {
+ r = nextUnionAllLine(bedFiles);
+ if ( !r )
+ break;
+ record(r);
+ delete r;
+ } // while
+}
+
+//===========================
+// getNextFileMergedCoords()
+//===========================
+template <typename BedFile>
+typename BedFile::BedType* getNextFileMergedCoords(BedFile& bedFile) {
+ // Merge coordinates within a file
+ typedef typename BedFile::BedType BedType;
+ static BedType* const zero = static_cast<BedType*>(0);
+ if ( !bedFile.HasNext() )
+ return(zero);
+
+ BedType* toRtn = bedFile.ReadLine();
+ while ( bedFile.HasNext() ) {
+ BedType* next = bedFile.ReadLine();
+ BedType* merged = mergeOverlap(next, toRtn);
+ if ( merged ) {
+ delete toRtn;
+ delete next;
+ toRtn = merged;
+ next = zero;
+ } else {
+ bedFile.PushBack(next);
+ break;
+ }
+ } // while
+ return(toRtn);
+}
+
+//===================
+// getNextFileLine()
+//===================
+template <typename BedFile>
+typename BedFile::BedType* getNextFileLine(BedFile& bedFile) {
+ // Read next line from index i without merging
+ typedef typename BedFile::BedType BedType;
+ static BedType* const zero = static_cast<BedType*>(0);
+ if ( !bedFile.HasNext() )
+ return(zero);
+ return(bedFile.ReadLine());
+}
+
+//================
+// getNextMerge()
+//================
+template <typename BedFiles>
+typename GetType<BedFiles>::BedType*
+ getNextMerge(std::deque<typename GetType<BedFiles>::BedType*>& mergeList,
+ int start, int end, BedFiles& bedFiles) {
+ typedef typename GetType<BedFiles>::BedType BedType;
+ if ( mergeList.empty() )
+ return(nextMergeAllLines(start, end, bedFiles));
+ BedType* toRtn = mergeList.front();
+ mergeList.pop_front();
+ return(toRtn);
+}
+
+//===============
+// make_coords()
+//===============
+template <typename BedType>
+inline PType make_coords(const BedType* b) {
+ return(std::make_pair(b->start(), b->end()));
+}
+
+//===================
+// intersectOverlap()
+//===================
+PType intersectOverlap(const PType& p1, const PType& p2) {
+ Bed::CoordType min = std::max(p1.first, p2.first);
+ Bed::CoordType max = std::min(p1.second, p2.second);
+ return((max >= min) ? std::make_pair(min, max) : NADA_NOTHING);
+}
+
+//================
+// mergeOverlap()
+//================
+template <typename BedType>
+BedType* mergeOverlap(const BedType* p1, const BedType* p2) {
+ static BedType* const zero = static_cast<BedType*>(0);
+ BedType* toRtn = zero;
+
+ if ( 0 != std::strcmp(p1->chrom(), p2->chrom()) ) {
+ return(toRtn);
+ } else if ( p1->start() < p2->start() ) {
+ if ( p1->end() >= p2->start() ) {
+ toRtn = new BedType(*p1);
+ toRtn->end(std::max(p1->end(), p2->end()));
+ }
+ } else if ( p1->start() > p2->start() ) {
+ if ( p2->end() >= p1->start() ) {
+ toRtn = new BedType(*p2);
+ toRtn->end(std::max(p1->end(), p2->end()));
+ }
+ } else { // p1->start() == p2->start()
+ toRtn = new BedType(*p1);
+ toRtn->end(std::max(p1->end(), p2->end()));
+ }
+ return(toRtn);
+}
+
+//======================
+// nextComplementLine()
+//======================
+template <typename BedFiles>
+std::pair<bool, typename GetType<BedFiles>::BedType*> nextComplementLine(BedFiles& bedFiles, bool fullLeft) {
+ typedef typename GetType<BedFiles>::BedType BedType;
+ static BedType* zero = static_cast<BedType*>(0);
+ static BedType* last = static_cast<BedType*>(0);
+
+ if ( last == zero ) {
+ last = nextMergeAllLines(0, bedFiles.size(), bedFiles);
+ if ( last == zero ) // stop condition
+ return(std::make_pair(false, zero));
+ else if ( fullLeft ) {
+ // new chromosome -> first complement starts at base 0
+ BedType* tmp = new BedType(*last);
+ tmp->start(0);
+ tmp->end(last->start());
+ if ( tmp->start() != tmp->end() )
+ return(std::make_pair(false, tmp));
+ else { // input coordinates include base 0 -> not part of complement
+ delete tmp;
+ return(std::make_pair(true, last));
+ }
+ }
+ }
+ BedType* nextline = nextMergeAllLines(0, bedFiles.size(), bedFiles);
+ if ( nextline == zero ) { // stop condition
+ delete last;
+ last = zero;
+ return(std::make_pair(false, zero));
+ }
+
+ if ( 0 != std::strcmp(nextline->chrom(), last->chrom()) ) {
+ delete last;
+ last = nextline;
+ if ( fullLeft ) { // chrom change -> first complement starts at base 0
+ BedType* tmp = new BedType(*last);
+ tmp->start(0);
+ tmp->end(last->start());
+ if ( tmp->start() != tmp->end() )
+ return(std::make_pair(false, tmp));
+ else { // input coordinates include base 0 -> not part of complement
+ delete tmp;
+ return(std::make_pair(true, last));
+ }
+ }
+ return(std::make_pair(true, last));
+ // direct recursion removed to prevent any possible stack overflow
+ // return(nextComplementLine(bedFiles, fullLeft); // curse some more
+ }
+
+ BedType* toRtn = last;
+ toRtn->start(toRtn->end());
+ toRtn->end(nextline->start());
+ last = nextline;
+ return(std::make_pair(false, toRtn));
+}
+
+//======================
+// nextDifferenceLine()
+//======================
+template <typename BedFiles>
+std::pair<bool, typename GetType<BedFiles>::BedType*>
+ nextDifferenceLine(BedFiles& bedFiles,
+ typename GetType<BedFiles>::BedType*& nextRefMerge,
+ typename GetType<BedFiles>::BedType*& nextNonRefMerge) {
+ // Index 0 is the reference file
+ typedef typename GetType<BedFiles>::BedType BedType;
+ static BedType* const zero = static_cast<BedType*>(0);
+ static const int ref = 0;
+ static const int noRef = 1;
+ static const bool callAgain = true;
+ static const bool noRecurse = false;
+
+ if ( !nextRefMerge && !bedFiles[ref]->HasNext() )
+ return(std::make_pair(noRecurse, zero));
+ else if ( !nextNonRefMerge ) { // everything else is a difference
+ if ( !nextRefMerge )
+ nextRefMerge = getNextFileMergedCoords(*bedFiles[ref]);
+ return(std::make_pair(noRecurse, nextRefMerge));
+ }
+
+ if ( !nextRefMerge )
+ nextRefMerge = getNextFileMergedCoords(*bedFiles[ref]);
+ if ( !nextRefMerge )
+ return(std::make_pair(noRecurse, zero));
+
+ // Increment nextNonRefMerge until its back within range of nextRefMerge
+ int cmp = std::strcmp(nextNonRefMerge->chrom(), nextRefMerge->chrom());
+ while ( cmp < 0 || (0 == cmp && nextNonRefMerge->end() <= nextRefMerge->start()) ) {
+ delete nextNonRefMerge;
+ nextNonRefMerge = nextMergeAllLines(noRef, bedFiles.size(), bedFiles);
+ if ( !nextNonRefMerge ) // always true after first true
+ return(std::make_pair(noRecurse, nextRefMerge));
+ cmp = std::strcmp(nextNonRefMerge->chrom(), nextRefMerge->chrom());
+ } // while
+
+ // Compare orientation of nextNonRefMerge and nextRefMerge
+ if ( cmp > 0 || nextNonRefMerge->start() >= nextRefMerge->end() ) {
+ /* no reference overlap */
+ return(std::make_pair(noRecurse, nextRefMerge));
+ } else if ( nextNonRefMerge->start() <= nextRefMerge->start() && nextNonRefMerge->end() >= nextRefMerge->end() ) {
+ /* complete reference overlap */
+ delete nextRefMerge;
+ nextRefMerge = getNextFileMergedCoords(*bedFiles[ref]);
+ return(std::make_pair(callAgain, nextRefMerge)); // possible for nextRefMerge to be zero
+ // direct recursion removed to prevent any possible stack overflow
+ // return(nextDifferenceLine(bedFiles, nextRefMerge, nextNonRefMerge)); // curse some more
+ } else if ( nextNonRefMerge->start() > nextRefMerge->start() ) {
+ /* difference found up to nextNonRefMerge->start() */
+ BedType* toRtn = new BedType(*nextRefMerge);
+ toRtn->end(nextNonRefMerge->start());
+ cmp = 0;
+ nextRefMerge->start(nextNonRefMerge->end()); // safe if > nextRefMerge->end() momentarily
+ while ( 0 == cmp && nextNonRefMerge->end() >= nextRefMerge->end() ) {
+ delete nextRefMerge;
+ nextRefMerge = getNextFileMergedCoords(*bedFiles[ref]);
+ if ( !nextRefMerge )
+ break;
+ cmp = std::strcmp(nextNonRefMerge->chrom(), nextRefMerge->chrom());
+ } // while
+ return(std::make_pair(noRecurse, toRtn));
+ } else { // nextNonRefMerge->start() <= nextRefMerge->start()
+ /* need to shorten nextRefMerge's coordinates */
+ nextRefMerge->start(nextNonRefMerge->end());
+ return(std::make_pair(callAgain, nextRefMerge));
+ // direct recursion removed to prevent any possible stack overflow
+ // return(nextDifferenceLine(bedFiles, nextRefMerge, nextNonRefMerge)); // curse some more
+ }
+}
+
+//=====================
+// nextElementOfLine()
+//=====================
+template <typename RefFile, typename NonRefFiles>
+std::pair<bool, typename RefFile::BedType*>
+ nextElementOfLine(typename RefFile::BedType*& nextRef,
+ RefFile& refFile,
+ NonRefFiles& nonRefBedFiles,
+ std::deque<typename GetType<NonRefFiles>::BedType*>& mergeList,
+ double threshold, bool usePercent, bool invert) {
+
+ // Index 0 is the reference file
+ typedef typename RefFile::BedType RefBedType;
+ typedef typename GetType<NonRefFiles>::BedType NonRefBedType;
+ static RefBedType* const zero = static_cast<RefBedType*>(0);
+ static const bool noRecurse = false;
+ static const bool callAgain = true;
+
+ if ( !nextRef && !refFile.HasNext() )
+ return(std::make_pair(noRecurse, zero));
+ if ( !nextRef )
+ nextRef = getNextFileLine(refFile);
+
+ NonRefBedType* nextMerge = getNextMerge(mergeList, 0, nonRefBedFiles.size(), nonRefBedFiles);
+ if ( !nextMerge ) {
+ if ( !invert ) // ref cannot be an element of nothing
+ return(std::make_pair(noRecurse, zero));
+ return(std::make_pair(noRecurse, nextRef));
+ }
+
+ // Increment nextMerge until its back within range of nextRef
+ int cmp = std::strcmp(nextMerge->chrom(), nextRef->chrom());
+ while ( cmp < 0 || (0 == cmp && nextMerge->end() <= nextRef->start()) ) {
+ delete nextMerge;
+ nextMerge = getNextMerge(mergeList, 0, nonRefBedFiles.size(), nonRefBedFiles);
+ if ( !nextMerge ) {
+ if ( !invert ) // ref cannot be an element of nothing
+ return(std::make_pair(noRecurse, zero));
+ return(std::make_pair(noRecurse, nextRef));
+ }
+ cmp = std::strcmp(nextMerge->chrom(), nextRef->chrom());
+ } // while
+
+ bool done = false;
+ double rangeOverlap = 0;
+ double range = nextRef->end() - nextRef->start();
+ std::vector<NonRefBedType*> toPush;
+ toPush.push_back(nextMerge);
+ while ( !done ) {
+ // Compare orientation of nextMerge and currentCoords[ref]
+ if ( cmp > 0 || nextMerge->start() >= nextRef->end() ) {
+ /* no reference overlap */
+ break;
+ }
+ else { // partial or complete reference overlap
+ PType lap = intersectOverlap(make_coords(nextMerge), make_coords(nextRef));
+ rangeOverlap += lap.second - lap.first;
+ // don't delete nextMerge -> in queue
+ nextMerge = getNextMerge(mergeList, 0, nonRefBedFiles.size(), nonRefBedFiles);
+ if ( !nextMerge )
+ break;
+ toPush.push_back(nextMerge);
+ cmp = std::strcmp(nextMerge->chrom(), nextRef->chrom());
+ }
+ } // while
+
+ if ( mergeList.empty() ) {
+ for ( std::size_t i = 0; i < toPush.size(); ++i )
+ mergeList.push_back(toPush[i]);
+ }
+ else { /* must push previously popped items to front of queue again */
+ for ( typename std::vector<NonRefBedType*>::reverse_iterator i = toPush.rbegin(); i != toPush.rend(); ++i )
+ mergeList.push_front(*i);
+ }
+ bool isElement = (rangeOverlap / range >= threshold);
+ if ( !usePercent ) // measure in bps of overlap
+ isElement = (rangeOverlap >= threshold);
+ if ( invert ) // invert logic --> not element of
+ return(isElement ? std::make_pair(callAgain, nextRef) : std::make_pair(noRecurse, nextRef));
+ return(isElement ? std::make_pair(noRecurse, nextRef) : std::make_pair(callAgain, nextRef));
+}
+
+//=====================
+// nextIntersectLine()
+//=====================
+template <typename BedFiles>
+typename GetType<BedFiles>::BedType* nextIntersectLine(BedFiles& bedFiles) {
+
+ // Intersect coordinates between all files.
+ typedef typename GetType<BedFiles>::BedType BedType;
+ static BedType* const zero = static_cast<BedType*>(0);
+ BedType* toRtn = zero;
+ BedType* next = zero;
+
+ for ( std::size_t i = 0; i < bedFiles.size(); ++i ) { // find maximum minimum
+ if ( !bedFiles[i]->HasNext() ) { // no more intersections
+ // toRtn points to someone's cache at this point -> don't delete
+ return(zero);
+ }
+
+ next = getNextFileMergedCoords(*bedFiles[i]);
+ bedFiles[i]->PushBack(next); // only safe due to intersection assumptions
+ if ( !toRtn ) {
+ toRtn = next;
+ next = zero;
+ continue;
+ }
+
+ int val = std::strcmp(next->chrom(), toRtn->chrom());
+ if ( 0 == val ) {
+ if ( next->start() > toRtn->start() )
+ toRtn = next;
+ } else if ( val > 0 )
+ toRtn = next;
+ } // for
+
+
+ toRtn = new BedType(*toRtn);
+ int marker = -1;
+ Bed::CoordType maxVal = std::numeric_limits<Bed::CoordType>::max();
+ for ( int i = 0; i < static_cast<int>(bedFiles.size()); ++i ) { // find next intersection
+ if ( !bedFiles[i]->HasNext() ) { // no more intersections
+ if ( toRtn )
+ delete toRtn;
+ return(zero);
+ }
+
+ next = getNextFileMergedCoords(*bedFiles[i]);
+
+ int val = std::strcmp(next->chrom(), toRtn->chrom());
+ while ( val < 0 || (val == 0 && next->end() <= toRtn->start()) ) {
+ delete next;
+ next = getNextFileMergedCoords(*bedFiles[i]);
+ if ( !next ) { // no more intersections
+ delete toRtn;
+ return(zero);
+ }
+ val = std::strcmp(next->chrom(), toRtn->chrom());
+ } // while
+
+ bedFiles[i]->PushBack(next);
+ if ( val > 0 || next->start() >= toRtn->end() ) {
+ delete toRtn;
+ toRtn = new BedType(*next);
+ i = -1;
+ marker = -1;
+ maxVal = std::numeric_limits<Bed::CoordType>::max();
+ continue;
+ }
+
+ PType p = intersectOverlap(make_coords(toRtn), make_coords(next));
+ toRtn->start(p.first);
+ toRtn->end(p.second);
+ if ( next->end() < maxVal ) {
+ maxVal = next->end();
+ marker = i;
+ }
+ } // for
+ next = getNextFileMergedCoords(*bedFiles[marker]); // at least one file increment
+ delete next;
+ return(toRtn);
+}
+
+//====================
+// nextMergeAllLines()
+//====================
+template <typename BedFiles>
+typename GetType<BedFiles>::BedType* nextMergeAllLines(int start, int end, BedFiles& bedFiles) {
+
+ // Merge coordinates between files
+ typedef typename GetType<BedFiles>::BedType BedType;
+ static BedType* const zero = static_cast<BedType*>(0);
+ BedType* toRtn = zero;
+ BedType* bt = zero;
+ bool anyNew = false;
+ int minimum = start;
+
+ // First find a minimum bed item (unmerged within a single file)
+ int val = 0;
+ for ( int i = start; i < end; ++i ) { // find minimum
+ if ( bedFiles[i]->HasNext() ) {
+ anyNew = true;
+ bt = bedFiles[i]->ReadLine();
+ bedFiles[i]->PushBack(bt);
+ if ( !toRtn || (val = std::strcmp(bt->chrom(), toRtn->chrom())) < 0 ) {
+ minimum = i;
+ toRtn = bt;
+ } else if ( 0 == val && bt->start() < toRtn->start() ) {
+ minimum = i;
+ toRtn = bt;
+ }
+ }
+ } // for
+ if ( !anyNew )
+ return(zero);
+ toRtn = bedFiles[minimum]->ReadLine(); // undo PushBack above for this file only
+ bt = zero;
+
+ // Increment bedfiles in search of contiguous pieces
+ for ( int i = start; i < end; ++i ) {
+ if ( !bedFiles[i]->HasNext() )
+ continue;
+ bt = bedFiles[i]->ReadLine();
+ while ( 0 == (val = std::strcmp(bt->chrom(), toRtn->chrom())) && bt->end() <= toRtn->end() ) {
+ delete bt;
+ bt = bedFiles[i]->ReadLine();
+ if ( !bt )
+ break;
+ } // while
+
+ // New max end coordinate?
+ if ( bt &&
+ 0 == val &&
+ bt->start() <= toRtn->end() &&
+ bt->end() > toRtn->end() ) {
+ toRtn->end(bt->end());
+ delete bt;
+ i = (start - 1); // start over on next iteration
+ } else if ( bt ) {
+ bedFiles[i]->PushBack(bt);
+ }
+ } // for
+ return(toRtn);
+}
+
+//======================
+// nextPartitionGroup()
+//======================
+template <typename BedFiles, typename PQueue>
+void nextPartitionGroup(BedFiles& bedFiles, PQueue& pq) {
+
+ typedef typename GetType<BedFiles>::BedType BedType;
+ static BedType* const zero = static_cast<BedType*>(0);
+ BedType* minelem = zero, * bt;
+ std::size_t mn = bedFiles.size();
+
+ // find minimum
+ int val = 1;
+ for ( std::size_t i = 0; i < bedFiles.size(); ++i ) {
+ if ( bedFiles[i]->HasNext() ) {
+ bt = bedFiles[i]->ReadLine();
+ bedFiles[i]->PushBack(bt);
+ if ( !minelem || (val = std::strcmp(bt->chrom(), minelem->chrom())) < 0 ) {
+ if ( mn < bedFiles.size() )
+ bedFiles[mn]->PushBack(minelem);
+ mn = i;
+ minelem = bedFiles[mn]->ReadLine();
+ } else if ((0 == val) &&
+ ((bt->start() < minelem->start()) ||
+ ((bt->start() == minelem->start()) && (bt->end() < minelem->end())))) {
+ bedFiles[mn]->PushBack(minelem);
+ mn = i;
+ minelem = bedFiles[mn]->ReadLine();
+ }
+ }
+ } // for
+
+ if ( !minelem )
+ return;
+
+ // find all elements that overlap the min element
+ // in return queue, any overlapping element ends that go beyond min element's end,
+ // will be clipped.
+ int sz = static_cast<int>(bedFiles.size());
+ pq.push(minelem);
+ for ( int i = 0; i < sz; ++i ) {
+ typename GetType<BedFiles>::PQ lclQ;
+ while ( bedFiles[i]->HasNext() ) {
+ bt = bedFiles[i]->ReadLine();
+ if ( strcmp(bt->chrom(), minelem->chrom()) != 0 ) { // no overlap
+ bedFiles[i]->PushBack(bt);
+ break;
+ } else if ( bt->start() > minelem->end() ) { // no overlap
+ bedFiles[i]->PushBack(bt);
+ break;
+ } else if ( bt->start() == minelem->end() ) { // no overlap, but be careful
+ /* could be that lclQ holds elements that were previously truncated to
+ start() == minelem->end(). Need to maintain sorted order.
+ */
+ lclQ.push(bt);
+ continue;
+ }
+
+ if ( bt->start() == minelem->start() ) {
+ if ( bt->end() == minelem->end() ) // duplicate
+ delete bt;
+ else { // bt->end() > minelem->end(), no new info for pq
+ bt->start(minelem->end());
+ lclQ.push(bt);
+ while ( bedFiles[i]->HasNext() ) {
+ bt = bedFiles[i]->ReadLine();
+ if ( bt->start() == minelem->end() )
+ lclQ.push(bt);
+ else {
+ bedFiles[i]->PushBack(bt);
+ break;
+ }
+ } // while
+ }
+ } else { // bt overlaps with different starting coord
+ if ( bt->end() <= minelem->end() ) // fully-nested or shared-end coord
+ pq.push(bt);
+ else { // bt->end() > minelem->end()
+ BedType* cpy = new BedType(*bt);
+ cpy->start(minelem->end());
+ lclQ.push(cpy);
+ bt->end(minelem->end());
+ pq.push(bt);
+ }
+ }
+ } // while
+
+ while ( !lclQ.empty() ) {
+ bedFiles[i]->PushBack(lclQ.top());
+ lclQ.pop();
+ } // while
+ } // for
+}
+
+//=========================
+// nextSymmetricDiffLine()
+//=========================
+template <typename BedFiles>
+std::pair<bool, typename GetType<BedFiles>::BedType*>
+ nextSymmetricDiffLine(BedFiles& bedFiles) {
+
+ /* Idea: Find minimum non-overlapped region between all files */
+ typedef typename GetType<BedFiles>::BedType BedType;
+ static BedType* const zero = static_cast<BedType*>(0);
+ static const Bed::CoordType max = std::numeric_limits<Bed::CoordType>::max();
+ static const bool callAgain = true;
+ static const bool noRecurse = false;
+
+ BedType* min = zero, *next = zero, *lookahead = zero;
+ std::vector<int> allMins, allNext;
+ for ( std::size_t i = 0; i < bedFiles.size(); ++i ) {
+ if ( !bedFiles[i]->HasNext() )
+ continue;
+
+ if ( !min ) {
+ min = getNextFileMergedCoords(*bedFiles[i]);
+ bedFiles[i]->PushBack(min); // only safe due to symmdiff assumptions
+ next = zero;
+ allNext.clear();
+ allMins.clear();
+ allMins.push_back(i);
+ continue;
+ }
+
+ lookahead = getNextFileMergedCoords(*bedFiles[i]);
+ bedFiles[i]->PushBack(lookahead); // only safe due to symmdiff assumptions
+
+ int val = std::strcmp(lookahead->chrom(), min->chrom());
+ if ( val > 0 )
+ continue;
+ else if ( val < 0 ) {
+ min = lookahead;
+ next = zero;
+ allNext.clear();
+ allMins.clear();
+ allMins.push_back(i);
+ continue;
+ } else { // val == 0
+ if ( lookahead->start() < min->start() ) {
+ next = min;
+ allNext.clear();
+ allNext = allMins;
+ allMins.clear();
+ min = lookahead;
+ allMins.push_back(i);
+ }
+ else if ( lookahead->start() == min->start() )
+ allMins.push_back(i);
+ else if ( !next || lookahead->start() < next->start() ) {
+ allNext.clear();
+ allNext.push_back(i);
+ next = lookahead;
+ }
+ else if ( lookahead->start() == next->start() )
+ allNext.push_back(i);
+ }
+ } // for
+
+ if ( allMins.empty() )
+ return(std::make_pair(noRecurse, zero));
+
+ // Find minimum coordinate set across allMins
+ Bed::CoordType minSecond = max;
+ for ( std::size_t x = 0; x < allMins.size(); ++x ) {
+ BedType* b = bedFiles[allMins[x]]->ReadLine();
+ bedFiles[allMins[x]]->PushBack(b);
+ minSecond = std::min(b->end(), minSecond);
+ } // for
+
+ Bed::CoordType nextFirst = max;
+ if ( !allNext.empty() ) {
+ BedType* b = bedFiles[allNext[0]]->ReadLine();
+ bedFiles[allNext[0]]->PushBack(b);
+ nextFirst = std::min(nextFirst, b->start());
+ }
+
+ if ( allMins.size() == 1 && allNext.empty() ) // case 1
+ return(std::make_pair(noRecurse, bedFiles[allMins[0]]->ReadLine()));
+ else if ( allNext.empty() ) { // case 2
+ for ( std::size_t x = 0; x < allMins.size(); ++x ) {
+ BedType* b = bedFiles[allMins[x]]->ReadLine();
+ if ( minSecond != b->end() ) {
+ b->start(minSecond);
+ bedFiles[allMins[x]]->PushBack(b);
+ } else {
+ delete b;
+ }
+ } // for
+ return(std::make_pair(callAgain, min)); // min just has to be nonzero; not used
+ // Direct recursion removed to prevent any possible stack overflow
+ // return(nextSymmetricDiffLine(bedFiles)); // curse some more
+ } else if ( allMins.size() == 1 ) { // case 3
+ BedType* b = bedFiles[allMins[0]]->ReadLine();
+ if ( minSecond > nextFirst ) {
+ BedType* c = new BedType(*b);
+ c->end(nextFirst);
+ b->start(nextFirst); // multiple new mins for next time
+ bedFiles[allMins[0]]->PushBack(b);
+ return(std::make_pair(noRecurse, c));
+ }
+ else
+ return(std::make_pair(noRecurse, b));
+ } else { // multiple minimums, allNext nonempty: case 4
+ if ( minSecond > nextFirst ) { // all minimum overlap nextFirst -> must recurse
+ for ( std::size_t x = 0; x < allMins.size(); ++x ) {
+ BedType* b = bedFiles[allMins[x]]->ReadLine();
+ b->start(nextFirst); // new multiple mins for next time
+ bedFiles[allMins[x]]->PushBack(b);
+ } // for
+ } else { // minSecond <= nextFirst
+ for ( std::size_t x = 0; x < allMins.size(); ++x ) {
+ BedType* b = bedFiles[allMins[x]]->ReadLine();
+ if ( b->end() != minSecond ) {
+ b->start(minSecond);
+ bedFiles[allMins[x]]->PushBack(b);
+ } else {
+ delete b;
+ }
+ } // for
+ }
+ return(std::make_pair(callAgain, min)); // min just has to be nonzero; not used
+ }
+}
+
+//====================
+// nextUnionAllLine()
+//====================
+template <typename BedFiles>
+typename GetType<BedFiles>::BedType* nextUnionAllLine(BedFiles& bedFiles) {
+ // Find next minimum entry between all files
+ typedef typename GetType<BedFiles>::BedType BedType;
+ static BedType* const zero = static_cast<BedType*>(0);
+ BedType* first = zero;
+ BedType* next = zero;
+ int marker = -1;
+ for ( std::size_t i = 0; i < bedFiles.size(); ++i ) { // find minimum
+ if ( bedFiles[i]->HasNext() ) {
+ if ( !first ) {
+ first = bedFiles[i]->ReadLine();
+ bedFiles[i]->PushBack(first);
+ marker = i;
+ continue;
+ }
+
+ next = bedFiles[i]->ReadLine();
+ bedFiles[i]->PushBack(next);
+ int val = std::strcmp(next->chrom(), first->chrom());
+ if ( val < 0 ) {
+ first = next;
+ marker = i;
+ } else if ( 0 == val ) {
+ if ( next->start() < first->start() ) {
+ first = next;
+ marker = i;
+ } else if ( next->start() == first->start() && next->end() < first->end() ) {
+ first = next;
+ marker = i;
+ }
+ }
+ }
+ } // for
+
+ if ( marker < 0 )
+ return(zero);
+ return(bedFiles[marker]->ReadLine()); // re-purge cache in bedFiles[marker]
+}
+
+//==============
+// selectWork()
+//==============
+template <typename BedFiles>
+void selectWork(const Input& input, BedFiles& bedFiles) {
+
+ // Iterate through all input files and output results
+ ModeType modeType = input.GetModeType();
+ switch ( modeType ) {
+ case CHOP:
+ doChop(bedFiles, input.ChopChunkSize(), input.ChopStaggerSize(), input.ChopExcludeShort());
+ case COMPLEMENT:
+ doComplement(bedFiles, input.ComplementFullLeft());
+ break;
+ case DIFFERENCE:
+ doDifference(bedFiles);
+ break;
+ case INTERSECTION:
+ doIntersection(bedFiles);
+ break;
+ case MERGE:
+ doMerge(bedFiles);
+ break;
+ case PARTITION:
+ doPartitions(bedFiles);
+ break;
+ case SYMMETRIC_DIFFERENCE:
+ doSymmetricDifference(bedFiles);
+ break;
+ case UNIONALL:
+ doUnionAll(bedFiles);
+ break;
+ default:
+ throw(Ext::ProgramError("Unsupported mode"));
+ };
+}
+
+//==============
+// selectWork()
+//==============
+template <typename RefFile, typename NonRefFiles>
+void selectWork(const Input& input, RefFile& refFile, NonRefFiles& nonRefFiles) {
+ // Iterate through all input files and output results
+ ModeType modeType = input.GetModeType();
+ const bool doInvert = true, noInvert = false;
+ switch ( modeType ) {
+ case ELEMENTOF:
+ doElementOf(refFile, nonRefFiles, input.Threshold(), input.UsePercentage(), noInvert);
+ break;
+ case NOTELEMENTOF:
+ doElementOf(refFile, nonRefFiles, input.Threshold(), input.UsePercentage(), doInvert);
+ break;
+ default:
+ throw(Ext::ProgramError("Unsupported mode"));
+ };
+}
+
+} // namespace BedOperations
diff --git a/applications/bed/bedops/src/Input.hpp b/applications/bed/bedops/src/Input.hpp
new file mode 100644
index 0000000..e70518a
--- /dev/null
+++ b/applications/bed/bedops/src/Input.hpp
@@ -0,0 +1,798 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Fri Aug 13 15:00:25 PDT 2010
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef INPUT_BEDOPS_H
+#define INPUT_BEDOPS_H
+
+#include <fstream>
+#include <iostream>
+#include <map>
+#include <sstream>
+#include <string>
+#include <vector>
+
+#include "utility/Assertion.hpp"
+#include "utility/Exception.hpp"
+
+namespace BedOperations {
+
+// enumerations
+enum ModeType
+ { MERGE, INTERSECTION, COMPLEMENT, DIFFERENCE, SYMMETRIC_DIFFERENCE,
+ UNIONALL, ELEMENTOF, NOTELEMENTOF, PARTITION, CHOP };
+
+struct NoInput { /* */ };
+struct HelpException { /* */ };
+struct ExtendedHelpException {
+ explicit ExtendedHelpException(ModeType m) : m_(m) { /* */ }
+ ModeType m_;
+};
+struct Version { /* */ };
+
+
+//=======
+// Input
+//=======
+struct Input {
+ Input(int argc, char** argv) : ft_(MERGE), numFiles_(0), minFiles_(1000), allFiles_(),
+ subsetPerc_(1), useSubsetPerc_(true), chopBP_(1),
+ chopStaggerBP_(0), chopCutShort_(false), errorCheck_(false),
+ lpad_(0), rpad_(0), leftMost_(0), chrSpecific_(false),
+ chr_("all") {
+
+ typedef Ext::UserError UE;
+
+ try {
+ // Basic error checking
+ loadOptions();
+ if ( argc <= 1 )
+ throw(NoInput());
+
+ bool hasOption = false;
+ int argcntr = 1;
+ const std::string plusints = "0123456789";
+ bool hasRange = false;
+ while ( argcntr < argc ) {
+ std::string next = argv[argcntr];
+ if ( next == "--ec" ) {
+ errorCheck_ = true;
+ } else if ( next == "--header" ) {
+ errorCheck_ = true;
+ } else if ( next == "--chrom" ) {
+ Ext::Assert<UE>(!chrSpecific_, "--chrom specified multiple times.");
+ Ext::Assert<UE>(++argcntr < argc, "No value for --chrom given.");
+ chr_ = argv[argcntr];
+ chrSpecific_ = (chr_ != "all");
+ } else if ( next == "--range" ) {
+ Ext::Assert<UE>(!hasRange, "--range specified multiple times.");
+ Ext::Assert<UE>(++argcntr < argc, "No value for --range given.");
+ next = argv[argcntr];
+ if ( next.find(":") != std::string::npos ) {
+ std::string leftVal = next.substr(0, next.find(":"));
+ std::string rightVal = next.substr(next.find(":")+1);
+ Ext::Assert<UE>(leftVal.size() > 0,
+ "integer expected for the 'L' value of --range L:R.");
+ Ext::Assert<UE>(rightVal.size() > 0,
+ "integer expected for the 'R' value of --range L:R.");
+ Ext::Assert<UE>(leftVal.find_first_not_of("-" + plusints) == std::string::npos,
+ "integer expected for the 'L' value of --range L:R.");
+ Ext::Assert<UE>(rightVal.find_first_not_of("-" + plusints) == std::string::npos,
+ "integer expected for the 'R' value of --range L:R.");
+
+ std::string::size_type t = leftVal.find_first_of("-");
+ std::string::size_type u = leftVal.find_last_of("-");
+ Ext::Assert<UE>(t == u, "multiple '-' signs detected for 'L' value of --range option");
+
+ t = rightVal.find_first_of("-");
+ u = rightVal.find_last_of("-");
+ Ext::Assert<UE>(t == u, "multiple '-' signs detected for 'R' value of --range option");
+
+ std::stringstream conv1(leftVal);
+ conv1 >> lpad_;
+ std::stringstream conv2(rightVal);
+ conv2 >> rpad_;
+ hasRange = true;
+ } else {
+ Ext::Assert<UE>(next.find_first_not_of("-" + plusints) == std::string::npos,
+ "integer value expected for --range");
+ std::string::size_type t = next.find_first_of("-");
+ std::string::size_type u = next.find_last_of("-");
+ Ext::Assert<UE>(t == u, "multiple '-' signs detected in <val> for --range option");
+ std::stringstream conv(next);
+ int range;
+ conv >> range;
+ lpad_ = -range;
+ rpad_ = range;
+ hasRange = true;
+ }
+ } else if ( next == "--help" ) {
+ throw(HelpException());
+ } else if ( next.find("--help-") == 0 ) { // detailed help?
+ next = next.substr(7);
+ Ext::Assert<UE>(!next.empty(), "No operation argument specified as part of --help-");
+ bool longOption = (next.size() > 1);
+ if ( longOption ) {
+ std::map<std::string, std::string>::iterator i = options_.find("--" + next);
+ Ext::Assert<UE>(i != options_.end(), "Unknown operation specified with --help-: " + next);
+ next = i->second;
+ } else {
+ Ext::Assert<UE>(next.size() == 1, "Unknown operation specified as part of --help-: " + next);
+ next = "-" + next;
+ }
+
+ try {
+ setModeType(next[1]);
+ } catch(...) {
+ throw(UE("Unknown operation argument specified as part of --help-"));
+ }
+ throw(ExtendedHelpException(ft_));
+ } else if ( next == "--version" ) {
+ throw(Version());
+ } else if ( next.find("-") != 0 ) {
+ break;
+ } else if ( next.size() > 1 ) { // sz of 1 means stdin
+ std::string::size_type startOpt = next.find_first_not_of("-");
+ Ext::Assert<Ext::UserError>(startOpt != std::string::npos, "Bad option: " + next);
+ Ext::Assert<Ext::UserError>(!hasOption, "More than one operation specified: " + next);
+ hasOption = true;
+
+ bool longOption = (next.find("--") == 0);
+ if ( longOption ) {
+ std::map<std::string, std::string>::iterator i = options_.find(next);
+ Ext::Assert<UE>(i != options_.end(), "Unknown operation: " + next);
+ next = i->second;
+ }
+
+ // Set up operating mode
+ Ext::Assert<UE>(next.size() == 2, "Unknown operation: " + next);
+ setModeType(next[1]);
+
+ // More argument possibilities for -e, -n, and -c
+ if ( ft_ == ELEMENTOF || ft_ == NOTELEMENTOF ) { // extra args?
+ const std::string ints = "1234567890";
+ int start = argcntr + 1;
+ for ( int i = start; i < argc; ++i ) {
+ std::string::size_type sz = std::string(argv[i]).size();
+ if ( (argv[i][0] == '-' && sz > 1) // sz of 1 means stdin; legacy usage
+ ||
+ (std::string(argv[i]).find_first_not_of(ints) == std::string::npos)
+ ||
+ (std::string(argv[i]).find("%") != std::string::npos) ) {
+ if ( std::string(argv[i]).find("--") == std::string::npos ) {
+ std::ifstream tmpfile(argv[i]);
+ if ( !tmpfile ) { // even if an integer, it could name a file input
+ setSubsetOption(argv[i]);
+ ++argcntr;
+ break;
+ } else {
+ bool isint = (std::string(argv[i]).find_first_not_of(plusints) == std::string::npos);
+ if ( isint ) {
+ std::cerr << "Warning: interpreting argument '"
+ << argv[i]
+ << "' as a file input and not as an overlap spec," << std::endl;
+ std::cerr << " since the file exists." << std::endl;
+ std::cerr << "You can use the legacy syntax '-"
+ << argv[i]
+ << "' if you want to use it as an overlap criterion." << std::endl;
+ }
+ break;
+ }
+ } else {
+ break;
+ }
+ } else {
+ break;
+ }
+ } // for
+ } else if ( ft_ == COMPLEMENT ) {
+ int maxCount = 1, cntr = 0;
+ int start = argcntr + 1;
+ for ( int i = start; i < argc; ++i ) {
+ if ( std::string(argv[i]) == "-L" ) {
+ setComplementOption();
+ ++argcntr;
+ }
+ else
+ break;
+ ++cntr;
+ } // for
+ std::string msg = "-L specified multiple times with --complement";
+ Ext::Assert<Ext::UserError>(cntr <= maxCount, msg);
+ } else if ( ft_ == CHOP ) {
+ typedef Ext::UserError UE;
+ const std::string ints = "1234567890";
+ int maxCount = 4, cntr = 0;
+ int start = argcntr + 1;
+ bool optionValueSet = false;
+ bool auxOptionsSet = false;
+ bool staggerSet = false;
+
+ for ( int i = start; i < argc; ++i ) {
+ if ( std::string(argv[i]) == "--stagger" ) {
+ Ext::Assert<UE>(!staggerSet, "chop's --stagger suboption specified multiple times.");
+ Ext::Assert<UE>(++i != argc, "No #nt value found for --stagger suboption in --chop");
+ ++argcntr; // extra for required bp value that goes with --stagger
+ Ext::Assert<UE>(std::string(argv[i]).find_first_not_of(ints) == std::string::npos,
+ "Invalid --stagger suboption #nt value in --chop. Expect a +integer.");
+ std::stringstream s; s << std::string(argv[i]); s >> chopStaggerBP_;
+ Ext::Assert<UE>(chopStaggerBP_ > 0, "nt setting for chop's --stagger suboption must be > 0");
+ staggerSet = true;
+ auxOptionsSet = true;
+ } else if ( std::string(argv[i]) == "-x" ) {
+ Ext::Assert<UE>(!chopCutShort_, "chop's -x suboption specified multiple times.");
+ chopCutShort_ = true;
+ auxOptionsSet = true;
+ } else if ( std::string(argv[i]).find_first_not_of(ints) == std::string::npos ) {
+ Ext::Assert<UE>(!optionValueSet, "Stray integer found (invalid argument for --chop?)");
+ Ext::Assert<UE>(!auxOptionsSet, "Stray integer value found: not valid for --chop");
+ std::stringstream s; s << std::string(argv[i]); s >> chopBP_;
+ Ext::Assert<UE>(chopBP_ > 0, "bp setting for chop must be > 0");
+ optionValueSet = true;
+ }
+ else
+ break;
+ ++argcntr;
+ ++cntr;
+ } // for
+ std::string msg = "Too many arguments for a --chop operation";
+ Ext::Assert<Ext::UserError>(cntr <= maxCount, msg);
+ }
+ }
+ else
+ break;
+ ++argcntr;
+ } // while
+
+ // More basic error checking
+ Ext::Assert<UE>(argcntr < argc, "No input file given.");
+ Ext::Assert<UE>(hasOption, "No operation argument given.");
+
+ // Check file input(s); ensure minimum number of files is met
+ bool onlyOne = true;
+ for ( int i = argcntr; i < argc; ++i ) {
+ if ( std::string(argv[i]) == "-" ) {
+ Ext::Assert<UE>(onlyOne, "Too many '-'");
+ allFiles_.push_back("-");
+ onlyOne = false;
+ }
+ else {
+ Ext::Assert<UE>(std::string(argv[i])[0] != '-', "Bad option: " + std::string(argv[i]));
+ std::ifstream check(argv[i]);
+ Ext::Assert<UE>(static_cast<bool>(check), "Cannot find " + std::string(argv[i]));
+ check.close();
+ allFiles_.push_back(argv[i]);
+ }
+ ++numFiles_;
+ } // for
+ Ext::Assert<Ext::UserError>(numFiles_ >= minFiles_, "Not enough files");
+ } catch(HelpException& he) {
+ throw;
+ } catch(ExtendedHelpException& ehe) {
+ throw;
+ } catch(UE& ie) {
+ std::string msg = "Bad Input\n";
+ msg += ie.what();
+ Ext::UserError toThrow(msg);
+ throw(toThrow);
+ }
+ }
+
+ // Public methods
+ int ChopChunkSize() const {
+ return(chopBP_);
+ }
+ int ChopStaggerSize() const {
+ return(chopStaggerBP_);
+ }
+ int ChopExcludeShort() const {
+ return(chopCutShort_);
+ }
+ std::string Chrom() const {
+ return(chr_);
+ }
+ bool ChrSpecific() const {
+ return(chrSpecific_);
+ }
+ bool ComplementFullLeft() const {
+ return(leftMost_);
+ }
+ bool ErrorCheck() const {
+ return(errorCheck_);
+ }
+ std::string GetFileName(int i) const {
+ return(allFiles_.at(i));
+ }
+ ModeType GetModeType() const {
+ return(ft_);
+ }
+ int GetLeftPad() const {
+ return(lpad_);
+ }
+ int GetRightPad() const {
+ return(rpad_);
+ }
+ int NumberFiles() const {
+ return(numFiles_);
+ }
+ double Threshold() const {
+ return(subsetPerc_);
+ }
+ bool UsePercentage() const {
+ return(useSubsetPerc_);
+ }
+
+ void setSubsetOption(const std::string& str) {
+ typedef Ext::UserError UE;
+ const std::string nums = ".1234567890";
+ const std::string ints = "1234567890";
+ std::string l = str.substr(1); // allow '-' out front for legacy reasons
+ std::string::size_type pos = str.find("%");
+ if ( pos != std::string::npos ) {
+ Ext::Assert<UE>(pos + 1 == str.size(), "Bad placement of %");
+ std::string value = str.substr(0, pos); // get rid of %
+ Ext::Assert<UE>(!value.empty(), "Bad % value");
+ if ( value[0] == '-' ) { // support legacy -75% syntax; drop '-'
+ value = value.substr(1);
+ Ext::Assert<UE>(!value.empty(), "Bad % value");
+ }
+ Ext::Assert<UE>(value.find_first_not_of(nums) == std::string::npos,
+ "Bad: % value");
+ std::stringstream conv(value);
+ conv >> subsetPerc_;
+ subsetPerc_ /= 100.0;
+ if ( subsetPerc_ > 1 )
+ throw(Ext::UserError("Expect percentage less than or equal to 100%"));
+ useSubsetPerc_ = true;
+ if ( subsetPerc_ == 0 ) { // 0% can match *everything*: convert to 1bp
+ subsetPerc_ = 1;
+ useSubsetPerc_ = false;
+ }
+ } else if ( str.find_first_not_of(ints) == std::string::npos ) {
+ subsetPerc_ = atoi(str.c_str());
+ useSubsetPerc_ = false; // pretend subsetPerc_ is # of bp
+ } else if ( l.find_first_not_of(ints) == std::string::npos ) {
+ // legacy
+ subsetPerc_ = atoi(l.c_str());
+ useSubsetPerc_ = false; // pretend subsetPerc_ is # of bp
+ } else if ( str.find_first_not_of(nums) == std::string::npos ) {
+ throw(Ext::UserError("Fractional amounts require a '%' symbol (e.g.; 5.4% not 5.4 base-pair)"));
+ }
+ else
+ throw(Ext::UserError("Unknown arg: " + str));
+ }
+
+ void setComplementOption() {
+ // assumes 0-based coordinates
+ leftMost_ = true;
+ }
+
+ void setModeType(char t) {
+ ModeType ft = MERGE;
+ int min = 1;
+ std::string badInput = "Unknown operation: -";
+ badInput += t;
+ switch(t) {
+ case 'c': case 'C':
+ ft = COMPLEMENT; break;
+ case 'd': case 'D':
+ ft = DIFFERENCE; ++min; break;
+ case 'e': case 'E':
+ ft = ELEMENTOF; ++min; break;
+ case 'i': case 'I':
+ ft = INTERSECTION; ++min; break;
+ case 'm': case 'M':
+ ft = MERGE; break;
+ case 'n': case 'N':
+ ft = NOTELEMENTOF; ++min; break;
+ case 'p': case 'P':
+ ft = PARTITION; break;
+ case 's': case 'S':
+ ft = SYMMETRIC_DIFFERENCE; ++min; break;
+ case 'u': case 'U':
+ ft = UNIONALL; break;
+ case 'w': case 'W':
+ ft = CHOP; break;
+ default:
+ throw(Ext::UserError(badInput));
+ };
+ ft_ = ft;
+ minFiles_ = min;
+ }
+
+ void loadOptions() {
+ options_.insert(std::make_pair("--complement", "-c"));
+ options_.insert(std::make_pair("--difference", "-d"));
+ options_.insert(std::make_pair("--element-of", "-e"));
+ options_.insert(std::make_pair("--intersect", "-i"));
+ options_.insert(std::make_pair("--merge", "-m"));
+ options_.insert(std::make_pair("--not-element-of", "-n"));
+ options_.insert(std::make_pair("--partition", "-p"));
+ options_.insert(std::make_pair("--symmdiff", "-s"));
+ options_.insert(std::make_pair("--everything", "-u"));
+ options_.insert(std::make_pair("--chop", "-w"));
+ }
+
+private:
+ ModeType ft_;
+ int numFiles_;
+ int minFiles_;
+ std::vector<std::string> allFiles_;
+ double subsetPerc_;
+ bool useSubsetPerc_;
+ int chopBP_;
+ int chopStaggerBP_;
+ bool chopCutShort_;
+ bool errorCheck_;
+ int lpad_;
+ int rpad_;
+ bool leftMost_;
+ bool chrSpecific_;
+ std::string chr_;
+ std::map<std::string, std::string> options_;
+};
+
+
+ //============
+ // example1()
+ //============
+ std::string example1() {
+ std::string ex = " file1.bed:\n";
+ ex += " chr1 10 100 id-1 5\n";
+ ex += " chr1 50 125\n";
+ ex += " chr1 2000 2500 id-3 54 +\n";
+ ex += " \n\n";
+ ex += " file2.bed:\n";
+ ex += " chr1 250 400\n";
+ ex += " chr1 2100 2125\n";
+ ex += " chr21 500 1000\n";
+ ex += " \n\n";
+ return(ex);
+ }
+
+
+ //=================
+ // DetailedUsage()
+ //=================
+ std::string DetailedUsage(ModeType mode) {
+ std::string msg = "\n";
+ if ( mode == CHOP ) {
+ msg += " Using the -w or --chop operation requires at least 1 BED file input.\n";
+ msg += " The output consists of the first 3 columns of the BED specification.\n";
+ msg += " Produces windowed slices from the merged regions of all input files.\n";
+ msg += " The integer given with --chop is referred to as the chunk-size. By default, the chunk-size is 1.\n";
+ msg += " The chunk-size must be greater than zero.\n";
+ msg += " Using --chop 100 with inputs\n\n";
+
+ msg += example1();
+
+ msg += " Produces:\n";
+ msg += " chr1 10 110\n";
+ msg += " chr1 110 125\n";
+ msg += " chr1 250 350\n";
+ msg += " chr1 350 400\n";
+ msg += " chr1 2000 2100\n";
+ msg += " chr1 2100 2200\n";
+ msg += " chr1 2200 2300\n";
+ msg += " chr1 2300 2400\n";
+ msg += " chr1 2400 2500\n";
+ msg += " chr21 500 600\n";
+ msg += " chr21 600 700\n";
+ msg += " chr21 700 800\n";
+ msg += " chr21 800 900\n";
+ msg += " chr21 900 1000\n\n";
+
+ msg += " Additional options --stagger <nt> and -x may be used to modify --chop's behavior.\n";
+ msg += " The -x option simply excludes from output all rows that were shortened to less than chunk-size bps.\n";
+ msg += " The above output results would be modified with the -x option as follows:\n\n";
+
+ msg += " chr1 10 110\n";
+ msg += " chr1 250 350\n";
+ msg += " chr1 2000 2100\n";
+ msg += " chr1 2100 2200\n";
+ msg += " chr1 2200 2300\n";
+ msg += " chr1 2300 2400\n";
+ msg += " chr1 2400 2500\n";
+ msg += " chr21 500 600\n";
+ msg += " chr21 600 700\n";
+ msg += " chr21 700 800\n";
+ msg += " chr21 800 900\n";
+ msg += " chr21 900 1000\n\n";
+
+ msg += " The --stagger <nt> option specifies the number of nt to 'jump' in between output rows, where <nt>.\n";
+ msg += " must be greater than 0 and it must be specified along with --stagger. Starting from the previous output\n";
+ msg += " start coordinate, it adds this number of nt to the next start coordinate output, and the end coordinate\n";
+ msg += " is adjusted accordingly.\n";
+ msg += " The --stagger <nt> specification is sometimes referred to as the step-size.\n";
+ msg += " For example, using --chop 100 --stagger 53, produces:\n\n";
+
+ msg += " chr1 10 110\n";
+ msg += " chr1 63 125\n";
+ msg += " chr1 116 125\n";
+ msg += " chr1 250 350\n";
+ msg += " chr1 303 400\n";
+ msg += " chr1 356 400\n";
+ msg += " chr1 2000 2100\n";
+ msg += " chr1 2053 2153\n";
+ msg += " chr1 2106 2206\n";
+ msg += " chr1 2159 2259\n";
+ msg += " chr1 2212 2312\n";
+ msg += " chr1 2265 2365\n";
+ msg += " chr1 2318 2418\n";
+ msg += " chr1 2371 2471\n";
+ msg += " chr1 2424 2500\n";
+ msg += " chr1 2477 2500\n";
+ msg += " chr21 500 600\n";
+ msg += " chr21 553 653\n";
+ msg += " chr21 606 706\n";
+ msg += " chr21 659 759\n";
+ msg += " chr21 712 812\n";
+ msg += " chr21 765 865\n";
+ msg += " chr21 818 918\n";
+ msg += " chr21 871 971\n";
+ msg += " chr21 924 1000\n";
+ msg += " chr21 977 1000\n\n";
+
+ msg += " Notice the differences between start coordinates differ by 53.\n";
+ msg += " The -x and --stagger <nt> options may be combined.\n";
+ msg += " For example, using --chop 100 --stagger 53 -x, produces:\n\n";
+
+ msg += " chr1 10 110\n";
+ msg += " chr1 250 350\n";
+ msg += " chr1 2000 2100\n";
+ msg += " chr1 2053 2153\n";
+ msg += " chr1 2106 2206\n";
+ msg += " chr1 2159 2259\n";
+ msg += " chr1 2212 2312\n";
+ msg += " chr1 2265 2365\n";
+ msg += " chr1 2318 2418\n";
+ msg += " chr1 2371 2471\n";
+ msg += " chr21 500 600\n";
+ msg += " chr21 553 653\n";
+ msg += " chr21 606 706\n";
+ msg += " chr21 659 759\n";
+ msg += " chr21 712 812\n";
+ msg += " chr21 765 865\n";
+ msg += " chr21 818 918\n";
+ msg += " chr21 871 971\n\n";
+
+ msg += " --range L:R pads the start/end coordinates in all input files by L/R before chopped regions are calculated.\n";
+ } else if ( mode == COMPLEMENT ) {
+ msg += " Using the -c or --complement operation requires at least 1 BED file input.\n";
+ msg += " The output consists of the first 3 columns of the BED specification.\n";
+ msg += " Reports the intervening intervals in between all coordinates found in the input file(s).\n\n";
+ msg += example1();
+ msg += " Output:\n";
+ msg += " chr1 125 250\n";
+ msg += " chr1 400 2000\n\n";
+ msg += " There is no entry for chr21 since there is only 1 element and nothing 'in between' it and anything else\n";
+ msg += " (see the optional -L option that goes with -c below if this behavior is not what you want).\n\n";
+
+ msg += " There is one unfortunate -c side effect in that it is impossible to use a 0-based system and specify\n";
+ msg += " any BED inputs that will produce base 0 on the output, by default (for any chromosome). For example:\n";
+ msg += " chr1 1 4\n";
+ msg += " chr1 100 110\n";
+ msg += " chr2 50 75\n";
+ msg += " will produce:\n";
+ msg += " chr1 4 100\n\n";
+
+ msg += " Negative coordinates are not supported so there is no way to get 'to the left of base 0' for complementing.\n\n";
+
+ msg += " Use of a 0-based, 1-based, or any N-based system (N >=0) is a user's choice, and bedops will support any\n";
+ msg += " of these without flaw, with the sole exception of the above. To address this 1 issue, the optional -L\n";
+ msg += " argument may be given with -c, so that:\n";
+ msg += " bedops -c -L file1.bed file2.bed\n";
+ msg += " will instead produce:\n";
+ msg += " chr1 0 1\n";
+ msg += " chr1 4 100\n";
+ msg += " chr2 0 50\n\n";
+
+ msg += " A user can specify any max coords (as part of inputs) to get --complement to give coordinates as far\n";
+ msg += " 'to the right' as needed. No hardcoded max genome/assembly size, per chromosome, is part of bedops.\n\n";
+
+ msg += " --range L:R pads the start/end coordinates in all input files by L/R before complements are calculated.\n";
+ } else if ( mode == DIFFERENCE ) {
+ msg += " Using the -d or --difference operation requires at least 2 BED file inputs.\n";
+ msg += " The output consists of the first 3 columns of the BED specification.\n";
+ msg += " Reports the intervals found in the first file that are not present in the 2nd (or 3rd or 4th...) files.\n\n";
+ msg += example1();
+ msg += " Output:\n";
+ msg += " chr1 10 125\n";
+ msg += " chr1 2000 2100\n";
+ msg += " chr1 2125 2500\n\n";
+ msg += " Notice the first row of output merges overlapping coordinates from file1 that do not appear in file2.\n";
+ msg += " Notice the 2nd and 3rd rows show coordinates split by file2 over chr1 2000 2500 of input file1.\n";
+ msg += " --range L:R pads the start/end coordinates in all input files by L/R before differences are calculated.\n";
+ } else if ( mode == ELEMENTOF ) {
+ msg += " Using the -e or --element-of operation requires at least 2 BED file inputs.\n";
+ msg += " The output consists of all columns from qualifying rows of the first input file.\n";
+ msg += " -e produces exactly everything that -n does not, given the same overlap criterion.\n";
+ msg += " Reports the BED rows from file1 that overlap, by the specified percentage or number of base-pair, merged\n";
+ msg += " rows from file2, file3, etc. By default, 100% is used as the overlap specification.\n";
+ msg += " The user may specify an overlap criterion by indicating a number of base-pair, or a percentage of the\n";
+ msg += " length of an input element.\n";
+ msg += " For example,\n";
+ msg += " bedops -e 5 file1.bed file2.bed\n";
+ msg += " will echo an input row on output where the row from file1.bed overlaps, by at least 5bp, the merged\n";
+ msg += " coordinates from file2.bed. Similarly,\n";
+ msg += " bedops -e 50% file1.bed file2.bed\n";
+ msg += " gives a row from file1.bed that is overlapped by at least 50% of its length by merged rows in file2.bed\n\n";
+ msg += example1();
+ msg += " bedops -e 1 file1.bed file2.bed produces:\n";
+ msg += " chr1 2000 2500 id-3 54 +\n\n";
+ msg += " while bedops -e 75% file1.bed file2.bed produces nothing.\n";
+ msg += " The 3rd row is overlapped by 25 bp, but has length 500.\n";
+ msg += " --range L:R pads the start/end coordinates in file2.bed to fileN.bed by L/R, without padding elements of file1.bed.\n";
+ msg += " The output is a subset of file1.bed\n";
+ } else if ( mode == INTERSECTION ) {
+ msg += " Using the -i or --intersect operation requires at least 2 BED file inputs.\n";
+ msg += " The output consists of the first 3 columns of the BED specification.\n";
+ msg += " Reports the intervals common to all input files.\n\n";
+ msg += example1();
+ msg += " Output:\n";
+ msg += " chr1 2100 2125\n\n";
+ msg += " --range L:R pads the start/end coordinates in all input files by L/R before intersections are calculated.\n";
+ } else if ( mode == MERGE ) {
+ msg += " Using the -m or --merge operation requires at least 1 BED file input.\n";
+ msg += " The output consists of the first 3 columns of the BED specification.\n";
+ msg += " Merges together (flattens) all disjoint, overlapping, and adjoining intervals from all input files into\n";
+ msg += " contiguous, disjoint regions.\n\n";
+ msg += example1();
+ msg += " Output:\n";
+ msg += " chr1 10 125\n";
+ msg += " chr1 250 400\n";
+ msg += " chr1 2000 2500\n";
+ msg += " chr21 500 1000\n\n";
+ msg += " --range L:R pads the start/end coordinates in all input files by L/R before merged regions are calculated.\n";
+ } else if ( mode == NOTELEMENTOF ) {
+ msg += " Using the -n or --not-element-of operation requires at least 2 BED file inputs.\n";
+ msg += " The output consists of all columns from qualifying rows of the first input file.\n";
+ msg += " -n produces exactly everything that -e does not, given the same overlap criterion.\n";
+ msg += " Reports the BED rows from file1 that do not overlap, by the specified percentage or number of base-pair, merged\n";
+ msg += " rows from file2, file3, etc. By default, -100% is used as the overlap specification.\n";
+ msg += " The user may specify an overlap criterion by indicating a number of base-pair, or a percentage\n";
+ msg += " of the length of an input file row.\n";
+ msg += " For example,\n";
+ msg += " bedops -n 5 file1.bed file2.bed\n";
+ msg += " will echo an input row on output where the row from file1.bed does not overlap, by at least 5 bp, the merged\n";
+ msg += " rows from file2.bed. Similarly,\n";
+ msg += " bedops -n 50% file1.bed file2.bed\n";
+ msg += " gives a row from file1.bed that is not overlapped, by at least 50% of its length, by merged rows from file2.bed.\n\n";
+ msg += example1();
+ msg += " bedops -n 1 file1.bed file2.bed produces:\n";
+ msg += " chr1 10 100 id-1 5\n";
+ msg += " chr1 50 125\n\n";
+ msg += " while bedops -n 75% file1.bed file2.bed produces the entirety of file1.bed.\n";
+ msg += " --range L:R pads the start/end coordinates in file2.bed to fileN.bed by L/R, without padding elements of file1.bed.\n";
+ msg += " The output is a subset of file1.bed\n";
+ } else if ( mode == PARTITION ) {
+ msg += " Using the -p or --partition operation requires at least 1 BED file input.\n";
+ msg += " The output consists of the first 3 columns of the BED specification.\n";
+ msg += " Breaks up inputs into disjoint (often adjacent) bed intervals.\n\n";
+ msg += example1();
+ msg += " Output:\n";
+ msg += " chr1 10 50\n";
+ msg += " chr1 50 100\n";
+ msg += " chr1 100 125\n";
+ msg += " chr1 250 400\n";
+ msg += " chr1 2000 2100\n";
+ msg += " chr1 2100 2125\n";
+ msg += " chr1 2125 2500\n";
+ msg += " chr21 500 1000\n\n";
+ msg += " Notice that all coordinates in the original files are represented, and the total number of output rows is\n";
+ msg += " greater than the total number of input rows. Notice that many rows have immediately adjacent coordinates.\n";
+ msg += " Note that if multiple input rows have identical coordinates, this option outputs only 1 representative.\n";
+ msg += " --range L:R pads the start/end coordinates in all input files by L/R before partition takes place.\n";
+ } else if ( mode == SYMMETRIC_DIFFERENCE ) {
+ msg += " Using the -s or --symmdiff operation requires at least 2 BED file inputs.\n";
+ msg += " The output consists of the first 3 columns of the BED specification.\n";
+ msg += " Reports the intervals found in exactly 1 input file.\n\n";
+ msg += example1();
+ msg += " Output:\n";
+ msg += " chr1 10 125\n";
+ msg += " chr1 250 400\n";
+ msg += " chr1 2000 2100\n";
+ msg += " chr1 2125 2500\n";
+ msg += " chr21 500 1000\n\n";
+ msg += " Notice the first row of output merges overlapping coordinates from file1 that do not appear in file2.\n";
+ msg += " Notice the 3rd and 4th rows show coordinates split by file2 over chr1 2000 2500 of input file1.\n";
+ msg += " Unlike -d, -s shows the last row of file2.bed since this interval only appears in one input file.\n";
+ msg += " --range L:R pads the start/end coordinates in all input files by L/R before mutually exclusive regions are calculated.\n";
+ } else if ( mode == UNIONALL ) {
+ msg += " Using the -u or --everything operation requires at least 1 BED file input.\n";
+ msg += " The output consists of all columns from all rows of all input files.\n";
+ msg += " If multiple rows are identical, the output will consist of all of them.\n";
+ msg += example1();
+ msg += " bedops -u file1.bed file2.bed produces:\n";
+ msg += " chr1 10 100 id-1 5\n";
+ msg += " chr1 50 125\n";
+ msg += " chr1 250 400\n";
+ msg += " chr1 2000 2500 id-3 54 +\n";
+ msg += " chr1 2100 2125\n";
+ msg += " chr21 500 1000\n\n";
+ msg += " --range L:R pads the start/end coordinates in all input files by L/R.\n";
+ msg += " This option is particularly useful for padding without the need to resort the results before further bedops calls.\n";
+ } else {
+ throw(Ext::ProgramError("Detailed MODE not supported"));
+ }
+
+ msg += "\n";
+ msg += " Every input file must be sorted per the sort-bed utility.\n";
+ msg += " The output is also sorted and ready for further calls to bedops.\n";
+ msg += " Coordinates are assumed to be of the form: [start,end), where 'end' is 1 bp beyond the end of the interval.\n";
+ msg += " Columns must be separated by tabs (not spaces).\n";
+ msg += " Using --ec will perform stringent error checking of all input files. Use this if you're having troubles.\n";
+ return(msg);
+ }
+
+
+ //=========
+ // Usage()
+ //=========
+ std::string Usage() {
+ std::string msg = "\n";
+ msg += " USAGE: bedops [process-flags] <operation> <File(s)>*\n\n";
+ msg += " Every input file must be sorted per the sort-bed utility.\n";
+ msg += " Each operation requires a minimum number of files as shown below.\n";
+ msg += " There is no fixed maximum number of files that may be used.\n";
+ msg += " Input files must have at least the first 3 columns of the BED specification.\n";
+ msg += " The program accepts BED and Starch file formats.\n";
+ msg += " May use '-' for a file to indicate reading from standard input (BED format only).\n";
+ msg += "\n";
+ msg += " Process Flags:\n";
+ msg += " --chrom <chromosome> Jump to and process data for given <chromosome> only.\n";
+ msg += " --ec Error check input files (slower).\n";
+ msg += " --header Accept headers (VCF, GFF, SAM, BED, WIG) in any input file.\n";
+ msg += " --help Print this message and exit successfully.\n";
+ msg += " --help-<operation> Detailed help on <operation>.\n";
+ msg += " An example is --help-c or --help-complement\n";
+ msg += " --range L:R Add 'L' bp to all start coordinates and 'R' bp to end\n";
+ msg += " coordinates. Either value may be + or - to grow or\n";
+ msg += " shrink regions. With the -e/-n operations, the first\n";
+ msg += " (reference) file is not padded, unlike all other files.\n";
+ msg += " --range S Pad or shrink input file(s) coordinates symmetrically by S.\n";
+ msg += " This is shorthand for: --range -S:S.\n";
+ msg += " --version Print program information.\n\n";
+
+ msg += " Operations: (choose one of)\n";
+ msg += " -c, --complement [-L] File1 [File]*\n";
+ msg += " -d, --difference ReferenceFile File2 [File]*\n";
+ msg += " -e, --element-of [bp | percentage] ReferenceFile File2 [File]*\n";
+ msg += " by default, -e 100% is used. 'bedops -e 1' is also popular.\n";
+ msg += " -i, --intersect File1 File2 [File]*\n";
+ msg += " -m, --merge File1 [File]*\n";
+ msg += " -n, --not-element-of [bp | percentage] ReferenceFile File2 [File]*\n";
+ msg += " by default, -n 100% is used. 'bedops -n 1' is also popular.\n";
+ msg += " -p, --partition File1 [File]*\n";
+ msg += " -s, --symmdiff File1 File2 [File]*\n";
+ msg += " -u, --everything File1 [File]*\n";
+ msg += " -w, --chop [bp] [--stagger <nt>] [-x] File1 [File]*\n";
+ msg += " by default, -w 1 is used with no staggering.\n";
+ msg += " \nExample: bedops --range 10 -u file1.bed\n";
+ msg += " NOTE: Only operations -e|n|u preserve all columns (no flattening)\n";
+ return(msg);
+ }
+
+} // namespace BedOperations
+
+
+#endif // INPUT_BEDOPS_H
diff --git a/applications/bed/bedops/src/Makefile b/applications/bed/bedops/src/Makefile
new file mode 100644
index 0000000..30f187c
--- /dev/null
+++ b/applications/bed/bedops/src/Makefile
@@ -0,0 +1,76 @@
+MAIN = ../../../..
+HEAD = $(MAIN)/interfaces/general-headers
+LIB1 = $(MAIN)/interfaces/src/data/measurement
+LIB2 = $(MAIN)/interfaces/src/utility
+LIB3 = $(MAIN)/interfaces/src/data/starch
+TESTDIR = ../test
+TMPTESTDIR = $(TESTDIR)/regression.tests
+THISDIR = ${shell pwd}
+PARTY3 = ${THISDIR}/$(MAIN)/third-party
+LIBJANSSON = libjansson.a
+LIBBZIP2 = libbz2.a
+LIBZLIB = libz.a
+LOCALJANSSONDIR = ${PARTY3}/jansson
+LOCALJANSSONLIBDIR = ${LOCALJANSSONDIR}/lib
+LOCALJANSSONINCDIR = ${LOCALJANSSONDIR}/include
+LOCALJANSSONLIB = ${LOCALJANSSONLIBDIR}/${LIBJANSSON}
+LOCALBZIP2DIR = ${PARTY3}/bzip2
+LOCALBZIP2LIBDIR = ${LOCALBZIP2DIR}
+LOCALBZIP2LIB = ${LOCALBZIP2LIBDIR}/${LIBBZIP2}
+LOCALBZIP2INCDIR = ${LOCALBZIP2DIR}
+LOCALZLIBDIR = ${PARTY3}/zlib
+LOCALZLIBLIB = ${LOCALZLIBDIR}/${LIBZLIB}
+LOCALZLIBINCDIR = ${LOCALZLIBDIR}
+OBJDIR = objects
+INCLUDES = -iquote$(HEAD) -I${LOCALJANSSONINCDIR} -I${LOCALBZIP2INCDIR} -I${LOCALZLIBINCDIR}
+LIBLOCATION = -L${LOCALJANSSONLIBDIR} -L${LOCALBZIP2LIBDIR} -L${LOCALZLIBDIR}
+LIBRARIES = ${LOCALJANSSONLIB} ${LOCALBZIP2LIB} ${LOCALZLIBLIB}
+BLDFLAGS = -Wall -pedantic -O3 -std=c++11
+SFLAGS = -static
+
+dependency_names = NaN starchConstants starchFileHelpers starchHelpers starchMetadataHelpers unstarchHelpers starchSha1Digest starchBase64Coding
+dependencies = $(addprefix $(OBJDIR)/, $(addsuffix .o, $(dependency_names)))
+FLAGS = $(SFLAGS) -s $(BLDFLAGS) $(dependencies) ${LIBLOCATION} ${INCLUDES}
+DFLAGS = $(SFLAGS) -g -O0 -DDEBUG_VERBOSE=1 -std=c++11 -Wall -fno-inline -pedantic -DDEBUG=1 $(dependencies) ${LIBLOCATION} ${INCLUDES}
+GPROFFLAGS = $(SFLAGS) -O -std=c++11 -Wall -pedantic -pg $(dependencies) ${LIBLOCATION} ${INCLUDES}
+SOURCE1 = Bedops.cpp
+BINDIR = ../bin
+PROG = bedops
+
+build: $(BINDIR)/$(PROG)
+
+build_gprof: $(BINDIR)/gprof.$(PROG)
+
+build_debug: $(BINDIR)/debug.$(PROG)
+
+dependencies: $(dependencies)
+
+$(BINDIR)/$(PROG) : $(dependencies)
+ mkdir -p $(BINDIR) && $(CXX) -o $@ $(FLAGS) ${LIBRARIES} $(SOURCE1)
+
+$(BINDIR)/gprof.$(PROG) : $(dependencies)
+ mkdir -p $(BINDIR) && $(CXX) -o $@ $(GPROFFLAGS) ${LIBRARIES} $(SOURCE1)
+
+$(BINDIR)/debug.$(PROG) : $(dependencies)
+ mkdir -p $(BINDIR) && $(CXX) -o $@ $(DFLAGS) ${LIBRARIES} $(SOURCE1)
+
+$(OBJDIR)/%.o : $(LIB1)/%.cpp
+ mkdir -p $(OBJDIR) && $(CXX) -c $(BLDFLAGS) $^ -o $@ ${INCLUDES}
+
+$(OBJDIR)/%.o : $(LIB3)/%.c
+ mkdir -p $(OBJDIR) && $(CXX) -c ${BLDFLAGS} $^ -o $@ ${INCLUDES}
+
+test:
+ mkdir -p $(TMPTESTDIR)
+ cp $(TESTDIR)/TestPlan.xml $(TESTDIR)/Regression.java $(TMPTESTDIR)/
+ cd $(TMPTESTDIR)/ && javac Regression.java
+ printf "\n\nTo run regression tests:\n cd $(TMPTESTDIR) && java Regression TestPlan.xml\n"
+
+clean:
+ rm -f $(BINDIR)/$(PROG)
+ rm -f $(BINDIR)/*.$(PROG)
+ rm -rf $(OBJDIR)
+ rm -rf $(BINDIR)
+
+clean_test:
+ rm -rf $(TMPTESTDIR)
diff --git a/applications/bed/bedops/src/Makefile.darwin b/applications/bed/bedops/src/Makefile.darwin
new file mode 100644
index 0000000..2561311
--- /dev/null
+++ b/applications/bed/bedops/src/Makefile.darwin
@@ -0,0 +1,76 @@
+MIN_OSX_VERSION = 10.7
+
+MAIN = ../../../..
+MAINAPPDIR = ../..
+HEAD = $(MAIN)/interfaces/general-headers
+LIB1 = $(MAIN)/interfaces/src/data/measurement
+LIB2 = $(MAIN)/interfaces/src/utility
+LIB3 = $(MAIN)/interfaces/src/data/starch
+THISDIR = ${shell pwd}
+PARTY3 = ${THISDIR}/$(MAIN)/third-party
+LIBJANSSON = libjansson.a
+LIBBZIP2 = libbz2.a
+LIBZLIB = libz.a
+LOCALJANSSONDIR = ${PARTY3}/darwin_intel_${ARCH}/jansson
+LOCALJANSSONLIBDIR = ${LOCALJANSSONDIR}/lib
+LOCALJANSSONINCDIR = ${LOCALJANSSONDIR}/include
+LOCALJANSSONLIB = ${LOCALJANSSONLIBDIR}/${LIBJANSSON}
+LOCALBZIP2DIR = ${PARTY3}/darwin_intel_${ARCH}/bzip2
+LOCALBZIP2LIBDIR = ${LOCALBZIP2DIR}
+LOCALBZIP2LIB = ${LOCALBZIP2LIBDIR}/${LIBBZIP2}
+LOCALBZIP2INCDIR = ${LOCALBZIP2DIR}
+LOCALZLIBDIR = ${PARTY3}/darwin_intel_${ARCH}/zlib
+LOCALZLIBLIB = ${LOCALZLIBDIR}/${LIBZLIB}
+LOCALZLIBINCDIR = ${LOCALZLIBDIR}
+OBJDIR = objects_$(ARCH)
+INCLUDES = -iquote$(HEAD) -I${LOCALJANSSONINCDIR} -I${LOCALBZIP2INCDIR} -I${LOCALZLIBINCDIR}
+LIBLOCATION = -L${LOCALJANSSONLIBDIR} -L${LOCALBZIP2LIBDIR} -L${LOCALZLIBDIR}
+LIBRARIES = ${LOCALJANSSONLIB} ${LOCALBZIP2LIB} ${LOCALZLIBLIB}
+STDFLAGS = -Wall -pedantic -std=c++11 -stdlib=libc++
+BLDFLAGS = -O3 ${STDFLAGS}
+
+FLAGS = $(BLDFLAGS) $(OBJDIR)/NaN.o $(OBJDIR)/starchConstants.o $(OBJDIR)/starchFileHelpers.o $(OBJDIR)/starchHelpers.o $(OBJDIR)/starchMetadataHelpers.o $(OBJDIR)/unstarchHelpers.o $(OBJDIR)/starchSha1Digest.o $(OBJDIR)/starchBase64Coding.o ${LIBLOCATION} ${INCLUDES}
+
+DFLAGS = -g -O0 -DDEBUG_VERBOSE=1 ${STDFLAGS} $(OBJDIR)/NaN.o $(OBJDIR)/starchConstants.o $(OBJDIR)/starchFileHelpers.o $(OBJDIR)/starchHelpers.o $(OBJDIR)/starchMetadataHelpers.o $(OBJDIR)/unstarchHelpers.o $(OBJDIR)/starchSha1Digest.o $(OBJDIR)/starchBase64Coding.o ${LIBLOCATION} ${INCLUDES}
+
+GPROFFLAGS = -O -pg ${STDFLAGS} $(OBJDIR)/NaN.o $(OBJDIR)/starchConstants.o $(OBJDIR)/starchFileHelpers.o $(OBJDIR)/starchHelpers.o $(OBJDIR)/starchMetadataHelpers.o $(OBJDIR)/unstarchHelpers.o $(OBJDIR)/starchSha1Digest.o $(OBJDIR)/starchBase64Coding.o ${LIBLOCATION} ${INCLUDES}
+
+SOURCE1 = Bedops.cpp
+BINDIR = ../bin
+PROG = bedops
+
+build: dependencies
+ $(CXX) -o $(BINDIR)/$(PROG)_$(ARCH) $(FLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) ${LIBRARIES} $(SOURCE1)
+
+build_debug: dependencies
+ $(CXX) -o $(BINDIR)/debug.$(PROG)_$(ARCH) $(DFLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) ${LIBRARIES} $(SOURCE1)
+
+build_gprof: dependencies
+ $(CXX) -o $(BINDIR)/gprof.$(PROG)_$(ARCH) $(FLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) ${LIBRARIES} $(SOURCE1)
+
+dependencies:
+ rm -rf $(OBJDIR)
+ mkdir -p $(OBJDIR)
+ $(CXX) -c $(BLDFLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) $(LIB1)/NaN.cpp -o $(OBJDIR)/NaN.o ${INCLUDES}
+ $(CXX) -x c++ -c $(BLDFLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) $(LIB3)/starchConstants.c -o $(OBJDIR)/starchConstants.o ${INCLUDES}
+ $(CXX) -x c++ -c $(BLDFLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) $(LIB3)/starchFileHelpers.c -o $(OBJDIR)/starchFileHelpers.o ${INCLUDES}
+ $(CXX) -x c++ -c $(BLDFLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) $(LIB3)/starchHelpers.c -o $(OBJDIR)/starchHelpers.o ${INCLUDES}
+ $(CXX) -x c++ -c $(BLDFLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) $(LIB3)/starchMetadataHelpers.c -o $(OBJDIR)/starchMetadataHelpers.o ${INCLUDES}
+ $(CXX) -x c++ -c $(BLDFLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) $(LIB3)/unstarchHelpers.c -o $(OBJDIR)/unstarchHelpers.o ${INCLUDES}
+ ${CXX} -x c++ -c ${BLDFLAGS} -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) ${LIB3}/starchSha1Digest.c -o ${OBJDIR}/starchSha1Digest.o ${INCLUDES}
+ ${CXX} -x c++ -c ${BLDFLAGS} -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) ${LIB3}/starchBase64Coding.c -o ${OBJDIR}/starchBase64Coding.o ${INCLUDES}
+
+test:
+ mkdir -p $(TMPTESTDIR)
+ cp $(TESTDIR)/TestPlan.xml $(TESTDIR)/Regression.java $(TMPTESTDIR)/
+ cd $(TMPTESTDIR)/ && javac Regression.java
+ printf "\n\nTo run regression tests: cd $(TMPTESTDIR) && java Regression TestPlan.xml\n"
+
+clean:
+ rm -rf $(OBJDIR)
+ rm -rf $(BINDIR)/$(PROG)*
+ rm -rf $(BINDIR)/*.$(PROG)*
+ rm -rf $(BINDIR)
+
+clean_test:
+ rm -rf $(TMPTESTDIR)
diff --git a/applications/bed/bedops/test/Regression.java b/applications/bed/bedops/test/Regression.java
new file mode 100644
index 0000000..3d929c1
--- /dev/null
+++ b/applications/bed/bedops/test/Regression.java
@@ -0,0 +1,204 @@
+// Author
+// Shane Neph : University of Washington
+
+import org.w3c.dom.*;
+import javax.xml.parsers.*;
+import java.io.*;
+import java.util.*;
+
+//==========
+// TagNames
+//==========
+class TagNames {
+ final static String TEST = "TEST";
+ final static String INPUT = "INPUT";
+ final static String ANSWER = "ANSWER";
+ final static String CALL = "CALL";
+ final static String OUTPUT = "OUTPUT";
+
+ final static String ATT_NAME = "name";
+ final static String ATT_ORDER = "order";
+ final static String ATT_CHROM = "chromosome";
+}
+
+//============
+// Regression
+//============
+class Regression {
+ Regression(File f) throws Exception {
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ Document doc = builder.parse(f);
+ root_ = doc.getDocumentElement();
+ NodeList c = root_.getChildNodes();
+ tests_ = new java.util.ArrayList();
+ for ( int i = 0; i < root_.getChildNodes().getLength(); ++i ) {
+ if ( c.item(i) instanceof Element )
+ tests_.add(tests_.size(), new Test((Element)(c.item(i))));
+ } // for
+ Collections.sort(tests_);
+ }
+
+ Test NextTest() {
+ return((Test)(tests_.get(next_++)));
+ }
+
+ int Size() {
+ return(tests_.size());
+ }
+
+ //========
+ // Main()
+ //========
+ static public void main(String[] str) {
+ try {
+ if ( str.length < 1 )
+ throw(new Exception("Expect a .xml test plan file input"));
+ Regression tp = new Regression(new File(str[0]));
+ if ( tp.Size() == 0 )
+ throw(new Exception("Unable to find tests in TestPlan.xml"));
+ boolean status = true;
+ for ( int i = 0; i < tp.Size(); ++i ) {
+ Test t = tp.NextTest();
+ System.out.println(t.Name());
+ try {
+ boolean result = t.Perform();
+ status = result && status;
+ if ( result )
+ System.out.println(" PASSED");
+ else
+ System.out.println(" **FAILED**");
+ } catch(SecurityException e) {
+ throw(new Exception(e.getMessage() + "\nUnable to make system call due to security manager"));
+ }
+ }
+ if ( status )
+ System.out.println("\n\n-- PASSED OVERALL! --\n\n");
+ else
+ System.out.println("\n\n-- FAILURE(S) DETECTED! --\n\n");
+ } catch(Exception e) {
+ System.err.println("Error occured:\n" + e.getMessage());
+ }
+ }
+
+private Element root_;
+private int next_ = 0;
+private java.util.ArrayList tests_;
+}
+
+//======
+// Test
+//======
+class Test implements Comparable {
+ static final String TAB = "\t";
+
+ Test(Element test) throws Exception {
+ order_ = Integer.valueOf(test.getAttribute(TagNames.ATT_ORDER)).intValue();
+ chr_ = test.getAttribute(TagNames.ATT_CHROM);
+ output_ = null;
+ boolean foundAnswer = false;
+ NodeList children = test.getChildNodes();
+ for ( int i = 0; i < children.getLength(); ++i ) {
+ Node child = children.item(i);
+ if ( child instanceof Element ) {
+ Element next = (Element)child;
+ if ( next.getTagName().equals(TagNames.CALL) ) {
+ Text tn = (Text)(next.getFirstChild());
+ call_ += tn.getData().trim();
+ }
+ else if ( next.getTagName().equals(TagNames.OUTPUT) )
+ output_ = next.getAttribute(TagNames.ATT_NAME);
+ else if ( next.getTagName().equals(TagNames.INPUT) ) {
+ inputFiles_ += " " + next.getAttribute(TagNames.ATT_NAME);
+ FileWriter out = new FileWriter(new File(next.getAttribute(TagNames.ATT_NAME)));
+ Text textNode = (Text)(next.getFirstChild());
+ out.write(updateString(textNode.getData().trim()));
+ out.close();
+ }
+ else if ( next.getTagName().equals(TagNames.ANSWER) ) {
+ if ( foundAnswer )
+ throw(new Exception("Cannot have multiple answers - test# " + String.valueOf(order_)));
+ foundAnswer = true;
+ Text textNode = (Text)(next.getFirstChild());
+ if ( textNode != null )
+ answer_ = updateString(textNode.getData().trim());
+ else
+ answer_ = "";
+ }
+ }
+ } // for
+
+ if ( inputFiles_.length() > 0 )
+ call_ += inputFiles_;
+ if ( output_ == null )
+ throw(new Exception("No output file specified for test# " + String.valueOf(order_)));
+ }
+
+ public int compareTo(Object o) {
+ Test t = (Test)(o);
+ if ( this.order_ < t.order_ )
+ return(-1);
+ else if ( this.order_ > t.order_ )
+ return(1);
+ return(0);
+ }
+
+ String Name() {
+ return("Test" + String.valueOf(order_) + ": " + call_ + " > " + output_);
+ }
+
+ boolean Perform() throws Exception {
+ Runtime rt = Runtime.getRuntime();
+ Process p = rt.exec(call_);
+ int check = p.waitFor();
+ if ( check != 0 || p.exitValue() != 0 )
+ throw(new Exception("Unable to start bedops"));
+ BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
+ BufferedReader stdErr = new BufferedReader(new InputStreamReader(p.getErrorStream()));
+ String subErr = stdErr.readLine();
+ if ( subErr != null ) {
+ String all;
+ while ( (all = stdErr.readLine()) != null )
+ subErr += "\n" + all;
+ throw(new Exception(subErr));
+ }
+ String subCout = "";
+ String tmp;
+ while ( (tmp = stdInput.readLine()) != null ) {
+ if ( tmp.length() > 0 )
+ subCout += tmp.trim() + "\n";
+ } // while
+
+ File f = new File(output_);
+ BufferedWriter bw = new BufferedWriter(new FileWriter(f));
+ bw.write(subCout);
+ bw.close();
+ return(subCout.equals(answer_));
+ }
+
+ private String updateString(String s) {
+ for ( int i = 0; i < s.length(); ++i ) {
+ if ( s.charAt(i) == ' ' ) {
+ s = s.substring(0, i) + s.substring(i+1);
+ --i;
+ }
+ } // for
+
+ String toRtn = "";
+ StringTokenizer tk = new StringTokenizer(s, "\n");
+ int size = tk.countTokens();
+ for ( int i = 0; i < size; ++i ) {
+ if ( chr_ != null && chr_.length() > 0 )
+ toRtn += chr_ + TAB;
+ toRtn += tk.nextToken() + "\n";
+ }
+ return(toRtn);
+ }
+
+private int order_ = -1;
+private String call_ = "../../bin/bedops --ec ";
+private String inputFiles_ = "";
+private String answer_ = "";
+private String output_ = "";
+private String chr_ = "";
+}
diff --git a/applications/bed/bedops/test/TestPlan.xml b/applications/bed/bedops/test/TestPlan.xml
new file mode 100644
index 0000000..dec2402
--- /dev/null
+++ b/applications/bed/bedops/test/TestPlan.xml
@@ -0,0 +1,1913 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<TEST_PLAN>
+
+ <!-- *******MERGE TEST******* -->
+ <!-- Creates merge1.test, merge1.results -->
+ <TEST order="1" chromosome="chr7">
+ <INPUT name="merge1.test">
+ 2 101
+ 3 58
+ 58 102
+ 105 111
+ 105 112
+ 111 114
+ 112 115
+ 115 116
+ 117 151
+ </INPUT>
+ <ANSWER>
+ 2 102
+ 105 116
+ 117 151
+ </ANSWER>
+ <CALL>
+ -m
+ </CALL>
+ <OUTPUT name="merge1.results"/>
+ </TEST>
+
+
+ <!-- *******MERGE TEST******* -->
+ <!-- This test depends on complement1.results, merge1.test -->
+ <!-- Creates merge2.results -->
+ <TEST order="6" chromosome="chr7">
+ <ANSWER>
+ 2 151
+ </ANSWER>
+ <CALL>
+ -m merge1.test complement1.results
+ </CALL>
+ <OUTPUT name="merge2.results"/>
+ </TEST>
+
+
+ <!-- *******MERGE TEST******* -->
+ <!-- Creates merge3.test, merge3.results -->
+ <TEST order="3" chromosome="chr6">
+ <INPUT name="merge3.test">
+ 5 11
+ 16 17
+ 17 118
+ 119 121
+ </INPUT>
+ <ANSWER>
+ 5 11
+ 16 118
+ 119 121
+ </ANSWER>
+ <CALL>
+ -m
+ </CALL>
+ <OUTPUT name="merge3.results"/>
+ </TEST>
+
+
+ <!-- *******MERGE TEST******* -->
+ <!-- This test depends upon merge1.test, merge3.test -->
+ <!-- Creates merge4.results -->
+ <TEST order="4">
+ <ANSWER>
+ chr6 5 11
+ chr6 16 118
+ chr6 119 121
+ chr7 2 102
+ chr7 105 116
+ chr7 117 151
+ </ANSWER>
+ <CALL>
+ -m merge1.test merge3.test
+ </CALL>
+ <OUTPUT name="merge4.results"/>
+ </TEST>
+
+
+ <!-- *******MERGE TEST******* -->
+ <!-- This test depends upon merge5.results -->
+ <!-- Creates merge5.test, merge5.results -->
+ <TEST order="5">
+ <INPUT name="merge5.test">
+ chr4 5 11
+ chr4 16 17
+ chr6 0 5
+ chr6 120 121
+ </INPUT>
+ <ANSWER>
+ chr4 5 11
+ chr4 16 17
+ chr6 0 11
+ chr6 16 118
+ chr6 119 121
+ chr7 2 102
+ chr7 105 116
+ chr7 117 151
+ </ANSWER>
+ <CALL>
+ -m merge4.results
+ </CALL>
+ <OUTPUT name="merge5.results"/>
+ </TEST>
+
+
+ <!-- *******MERGE TEST****** -->
+ <!-- Creates merge6a.test, merge6b.test, merge6c.test, merge6.results -->
+ <TEST order="7">
+ <INPUT name="merge6a.test">
+ chr1 0 1
+ chr1 0 3
+ chr1 1 31
+ chr7 5 8
+ </INPUT>
+ <INPUT name="merge6b.test">
+ chr1 29 31
+ chr1 32 40
+ chr4 100 201
+ </INPUT>
+ <INPUT name="merge6c.test">
+ chr1 31 32
+ chr1 40 47
+ chr5 1 4
+ </INPUT>
+ <ANSWER>
+ chr1 0 47
+ chr4 100 201
+ chr5 1 4
+ chr7 5 8
+ </ANSWER>
+ <CALL>
+ -m
+ </CALL>
+ <OUTPUT name="merge6.results"/>
+ </TEST>
+
+
+ <!-- *******MERGE TEST******* -->
+ <!-- Creates merge7a.test, merge7b.test, merge7.results -->
+ <TEST order="12">
+ <INPUT name="merge7a.test">
+ chr1 1 51
+ chr4 51 52
+ chr4 56 59
+ chr4 100 102
+ chr5 23 26
+ </INPUT>
+ <INPUT name="merge7b.test">
+ chr4 51 56
+ chr4 58 59
+ chr4 99 100
+ chr4 102 103
+ chr5 25 27
+ chr7 21 23
+ </INPUT>
+ <ANSWER>
+ chr1 1 51
+ chr4 51 59
+ chr4 99 103
+ chr5 23 27
+ chr7 21 23
+ </ANSWER>
+ <OUTPUT name="merge7.results"/>
+ <CALL>
+ -m
+ </CALL>
+ </TEST>
+
+
+ <!-- *******MERGE TEST******* -->
+ <!-- This test depends upon complement4a.test, complement4b.test, complement4c.test -->
+ <!-- Creates merge8.results -->
+ <TEST order="14">
+ <ANSWER>
+ chr1 0 2
+ chr1 14 30
+ chr1 58 66
+ chr11 3000 4501
+ chr11 4600 4714
+ chr11 5000 5006
+ chr13 14 18
+ chr13 19 101
+ chr4 13 14
+ chr4 73 80
+ chr4 100 203
+ chr5 1 4
+ chr7 6 14
+ chr7 89 92
+ chr7 101 120
+ chr8 1000 1115
+ </ANSWER>
+ <OUTPUT name="merge8.results"/>
+ <CALL>
+ -m complement4a.test complement4b.test complement4c.test
+ </CALL>
+ </TEST>
+
+
+ <!-- *******COMPLEMENT TEST******* -->
+ <!-- This test depends upon merge1.test -->
+ <!-- Creates complement1.results -->
+ <TEST order="2" chromosome="chr7">
+ <ANSWER>
+ 102 105
+ 116 117
+ </ANSWER>
+ <CALL>
+ -c merge1.test
+ </CALL>
+ <OUTPUT name="complement1.results"/>
+ </TEST>
+
+
+ <!-- *******COMPLEMENT TEST******* -->
+ <!-- This test depends upon merge2.results -->
+ <!-- Creates complement2.results -->
+ <TEST order="8" chromosome="chr7">
+ <ANSWER>
+ <!-- empty -->
+ </ANSWER>
+ <CALL>
+ -c merge2.results
+ </CALL>
+ <OUTPUT name="complement2.results"/>
+ </TEST>
+
+
+ <!-- *******COMPLEMENT TEST******* -->
+ <!-- This test depends upon merge5.results -->
+ <!-- Creates complement3.results -->
+ <TEST order="9">
+ <ANSWER>
+ chr4 11 16
+ chr6 11 16
+ chr6 118 119
+ chr7 102 105
+ chr7 116 117
+ </ANSWER>
+ <CALL>
+ -c merge5.results
+ </CALL>
+ <OUTPUT name="complement3.results"/>
+ </TEST>
+
+
+ <!-- *******COMPLEMENT TEST******* -->
+ <!-- Creates complement4a.test, complement4b.test, complement4c.test, complement4.results -->
+ <TEST order="13">
+ <INPUT name="complement4a.test">
+ chr1 0 1
+ chr1 14 22
+ chr11 3000 4001
+ chr7 6 14
+ </INPUT>
+ <INPUT name="complement4b.test">
+ chr1 1 2
+ chr1 14 15
+ chr11 3100 4501
+ chr11 4600 4714
+ chr4 100 201
+ chr4 201 203
+ chr7 89 92
+ chr7 101 120
+ chr8 1000 1112
+ chr8 1112 1115
+ </INPUT>
+ <INPUT name="complement4c.test">
+ chr1 17 30
+ chr1 58 66
+ chr11 5000 5006
+ chr13 14 18
+ chr13 19 101
+ chr4 13 14
+ chr4 73 80
+ chr5 1 4
+ </INPUT>
+ <ANSWER>
+ chr1 2 14
+ chr1 30 58
+ chr11 4501 4600
+ chr11 4714 5000
+ chr13 18 19
+ chr4 14 73
+ chr4 80 100
+ chr7 14 89
+ chr7 92 101
+ </ANSWER>
+ <CALL> -c </CALL>
+ <OUTPUT name="complement4.results"/>
+ </TEST>
+
+ <!-- *******INTERSECTION TEST******* -->
+ <!-- Creates intersect1a.test, intersect1b.test, intersect1.results -->
+ <TEST order="10" chromosome="chr7">
+ <INPUT name="intersect1a.test">
+ 100 201
+ 200 301
+ 302 401
+ 402 501
+ </INPUT>
+ <INPUT name="intersect1b.test">
+ 100 101
+ 200 201
+ 300 301
+ 301 302
+ 302 303
+ 352 356
+ 390 411
+ 502 506
+ </INPUT>
+ <ANSWER>
+ 100 101
+ 200 201
+ 300 301
+ 302 303
+ 352 356
+ 390 401
+ 402 411
+ </ANSWER>
+ <CALL>
+ -i
+ </CALL>
+ <OUTPUT name="intersect1.results"/>
+ </TEST>
+
+
+ <!-- *******INTERSECTION TEST******* -->
+ <!-- This test depends upon intersect1a.test, intersect1b.test -->
+ <!-- Creates intersect2.test -->
+ <TEST order="11">
+ <INPUT name="intersect2.test">
+ chr7 356 381
+ chr7 380 391
+ </INPUT>
+ <ANSWER>
+ chr7 390 391
+ </ANSWER>
+ <CALL>
+ -i intersect1a.test intersect1b.test
+ </CALL>
+ <OUTPUT name="intersect2.results"/>
+ </TEST>
+
+
+ <!-- *******INTERSECTION TEST******* -->
+ <!-- This test depends upon merge8.results, complement4.results -->
+ <!-- Creates intersect3.results -->
+ <TEST order="15">
+ <ANSWER>
+ <!-- empty -->
+ </ANSWER>
+ <CALL>
+ -i merge8.results complement4.results
+ </CALL>
+ <OUTPUT name="intersect3.results"/>
+ </TEST>
+
+
+ <!-- *******INTERSECTION TEST******* -->
+ <!-- Creates intersect4a.test, intersect4b.test, intersect4c.test, intersect4.results -->
+ <TEST order="16">
+ <INPUT name="intersect4a.test">
+ chr1 0 1
+ chr1 5 11
+ chr11 105 106
+ chr13 100 201
+ chr15 5 11
+ chr4 19 101
+ chr4 29 39
+ chr5 19 201
+ chr7 7 11
+ </INPUT>
+ <INPUT name="intersect4b.test">
+ chr1 1 15
+ chr11 80 126
+ chr13 0 100
+ chr13 200 301
+ chr15 10 101
+ chr5 16 18
+ chr5 19 201
+ </INPUT>
+ <INPUT name="intersect4c.test">
+ chr1 7 8
+ chr11 100 1001
+ chr13 0 201
+ chr15 0 21
+ </INPUT>
+ <ANSWER>
+ chr1 7 8
+ chr11 105 106
+ chr13 200 201
+ chr15 10 11
+ </ANSWER>
+ <OUTPUT name="intersect4.results"/>
+ <CALL>
+ -i
+ </CALL>
+ </TEST>
+
+
+ <!-- *******DIFFERENCE TEST******* -->
+ <!-- This test depends upon intersect4a.test, intersect4b.test, intersect4c.test -->
+ <!-- Creates difference1.results -->
+ <TEST order="17">
+ <ANSWER>
+ chr1 0 1
+ chr4 19 101
+ chr7 7 11
+ </ANSWER>
+ <OUTPUT name="difference1.results"/>
+ <CALL>
+ -d intersect4a.test intersect4b.test intersect4c.test
+ </CALL>
+ </TEST>
+
+ <!-- *******DIFFERENCE TEST******* -->
+ <!-- Creates difference2a.test, difference2b.test, difference2.results -->
+ <TEST order="21">
+ <ANSWER>
+ chr1 148009248 148029247
+ chr10 55153881 55154212
+ chr11 5560910 5571317
+ chr11 5702318 5704161
+ chr11 116094278 116099355
+ chr11 116190356 116201355
+ chr11 116249356 116275355
+ chr12 38810234 38844233
+ chr12 38932234 38992836
+ chr13 29559428 29560171
+ chr13 112338065 112338078
+ chr13 112504065 112520428
+ chr13 112525227 112549064
+ chr13 112612065 112624578
+ chr13 112628727 112630064
+ chr14 53067518 53073538
+ chr14 53179539 53179869
+ chr15 41520526 41532525
+ chr16 93144 119143
+ chr16 25780472 25782417
+ chr18 24213544 24213564
+ chr18 59624151 59637368
+ chr19 59235073 59252574
+ chr2 118260212 118269509
+ chr2 118311510 118319513
+ chr2 220315565 220324186
+ chr20 33365433 33367142
+ chr21 33429135 33448236
+ chr21 33468585 33484496
+ chr21 34147135 34187236
+ chr21 34350497 34363496
+ chr21 39443129 39449493
+ chr21 39506494 39518080
+ chr21 39696494 39710980
+ chr22 30129340 30139169
+ chr22 30162868 30178339
+ chr22 30411340 30428969
+ chr22 30507340 30518569
+ chr22 31157340 31176339
+ chr22 31225340 31233969
+ chr4 118604259 118605412
+ chr5 55974213 55983561
+ chr5 56039562 56049964
+ chr5 56108463 56117561
+ chr5 56184562 56210561
+ chr5 56313562 56342561
+ chr5 131348288 131354467
+ chr5 131409468 131435467
+ chr5 142238379 142266580
+ chr5 142281579 142316030
+ chr5 142320129 142329430
+ chr6 41657953 41671858
+ chr6 41744107 41754952
+ chr6 41887953 41895952
+ chr6 74177092 74192091
+ chr6 108410516 108415700
+ chr6 132635602 132654353
+ chr7 89826252 89835488
+ chr7 90088489 90106488
+ chr7 90225489 90246353
+ chr7 113613220 113629995
+ chr7 113668996 113686671
+ chr7 113748970 113836821
+ chr7 114009870 114044995
+ chr7 114108620 114122995
+ chr7 115404552 115415551
+ chr7 115486552 115497585
+ chr7 115575552 115579385
+ chr7 115843552 115868585
+ chr7 116127552 116156551
+ chr7 116371552 116394035
+ chr7 116441684 116447551
+ chr7 116506552 116511235
+ chr7 116606234 116622551
+ chr7 116675552 116709135
+ chr7 116784484 116858785
+ chr7 116956034 116991551
+ chr7 117045552 117061585
+ chr7 117262884 117280551
+ chr7 125702889 125710958
+ chr7 125781757 125813958
+ chr7 125866307 125893888
+ chr7 125960889 125981658
+ chr7 126582957 126592888
+ chr8 119223346 119225934
+ chr8 119329033 119333345
+ chrX 122513817 122514171
+ chrX 122773320 122790816
+ chrX 152635277 152635348
+ </ANSWER>
+ <INPUT name="difference2a.test">
+ chr1 148009248 148029247
+ chr1 148352248 148370247
+ chr10 55153881 55652880
+ chr11 1704342 1716341
+ chr11 1944342 2299341
+ chr11 4731318 5571317
+ chr11 5702318 5718317
+ chr11 63995061 64214060
+ chr11 115962356 116099355
+ chr11 116190356 116201355
+ chr11 116249356 116275355
+ chr11 130604863 131007862
+ chr11 131041863 131103862
+ chr12 38627234 38758233
+ chr12 38810234 38844233
+ chr12 38932234 39125233
+ chr13 29418172 29560171
+ chr13 112338065 112371064
+ chr13 112504065 112549064
+ chr13 112612065 112630064
+ chr13 112674065 112834064
+ chr14 52947539 53073538
+ chr14 53179539 53216538
+ chr14 53252539 53395538
+ chr14 98458982 98726981
+ chr14 98846982 98922981
+ chr15 41520526 41532525
+ chr15 41613526 41644525
+ chr15 41944526 42017525
+ chr16 93144 119143
+ chr16 265144 282143
+ chr16 25780472 26277471
+ chr16 60834367 61332366
+ chr18 23719565 24213564
+ chr18 59412369 59637368
+ chr18 59866369 59907368
+ chr19 59190792 59264791
+ chr19 59928792 60022791
+ chr2 51577376 52068375
+ chr2 118011510 118269509
+ chr2 118311510 118466509
+ chr2 220105565 220163564
+ chr2 220315565 220350564
+ chr2 220388565 220601564
+ chr2 234299983 234517982
+ chr2 234572983 234772982
+ chr20 33365433 33435432
+ chr21 32713497 32845496
+ chr21 32937497 32987496
+ chr21 33098497 33211496
+ chr21 33238497 33356496
+ chr21 33384497 33484496
+ chr21 34033497 34189496
+ chr21 34350497 34363496
+ chr21 39244494 39449493
+ chr21 39506494 39537493
+ chr21 39696494 39714493
+ chr22 30129340 30178339
+ chr22 30411340 30433339
+ chr22 30507340 30623339
+ chr22 30704340 31104339
+ chr22 31157340 31176339
+ chr22 31225340 31826339
+ chr4 118604259 119102258
+ chr5 55871562 55910561
+ chr5 55932562 55983561
+ chr5 56039562 56117561
+ chr5 56184562 56210561
+ chr5 56313562 56342561
+ chr5 131285468 131354467
+ chr5 131409468 131435467
+ chr5 141880431 142107430
+ chr5 142154431 142329430
+ chr6 41462953 41483952
+ chr6 41657953 41676952
+ chr6 41730953 41754952
+ chr6 41887953 41895952
+ chr6 73790092 73926091
+ chr6 73957092 74005091
+ chr6 74105092 74133091
+ chr6 74177092 74192091
+ chr6 108410516 108501515
+ chr6 108624516 108653515
+ chr6 108804516 108870515
+ chr6 132220684 132711683
+ chr7 26730869 26808868
+ chr7 26855869 26873868
+ chr7 27032869 27228868
+ chr7 89733489 89835488
+ chr7 90088489 90106488
+ chr7 90225489 90514488
+ chr7 113527996 113629995
+ chr7 113668996 113839995
+ chr7 113903996 113950995
+ chr7 113979996 114044995
+ chr7 114099996 114122995
+ chr7 114320996 114525995
+ chr7 115404552 115415551
+ chr7 115486552 115517551
+ chr7 115575552 115712551
+ chr7 115843552 116070551
+ chr7 116127552 116156551
+ chr7 116371552 116447551
+ chr7 116506552 116532551
+ chr7 116595552 116622551
+ chr7 116675552 116991551
+ chr7 117045552 117280551
+ chr7 125702889 125893888
+ chr7 125960889 126462888
+ chr7 126512889 126592888
+ chr7 126672889 126728888
+ chr7 126762889 126789888
+ chr8 118882346 118959345
+ chr8 119129346 119148345
+ chr8 119223346 119333345
+ chr9 128817231 128848230
+ chr9 129247231 129263230
+ chrX 122513817 122565816
+ chrX 122754817 122790816
+ chrX 122879817 122994816
+ chrX 152635277 152648276
+ chrX 152834277 152848276
+ chrX 152915277 153048276
+ chrX 153357277 153471276
+ chrX 153891277 153958276
+ </INPUT>
+ <INPUT name="difference2b.test">
+ chr1 148324497 148381196
+ chr10 55154212 55653761
+ chr11 1700195 1805844
+ chr11 1858695 2299444
+ chr11 4731161 5560910
+ chr11 5704161 5732510
+ chr11 63943030 64249029
+ chr11 115962329 116094278
+ chr11 130604811 131104460
+ chr12 38627136 38796085
+ chr12 38992836 39126385
+ chr13 29418029 29559428
+ chr13 112338078 112483527
+ chr13 112520428 112525227
+ chr13 112624578 112628727
+ chr13 112671478 112834777
+ chr14 52947469 53067518
+ chr14 53179869 53445318
+ chr14 98458731 98939630
+ chr15 41612706 41647605
+ chr15 41943256 42018955
+ chr16 63608 93057
+ chr16 154108 191707
+ chr16 260308 337657
+ chr16 411108 499907
+ chr16 25782417 26279766
+ chr16 60834343 61333692
+ chr18 23719245 24213544
+ chr18 59412352 59624151
+ chr18 59822052 59912251
+ chr19 59070324 59235073
+ chr19 59252574 59272223
+ chr19 59444274 59505073
+ chr19 59768724 59808473
+ chr19 59878074 60024073
+ chr2 51577171 52070270
+ chr2 118011463 118260212
+ chr2 118319513 118469162
+ chr2 220105486 220164985
+ chr2 220211686 220252585
+ chr2 220324186 220602785
+ chr2 234274978 234773827
+ chr20 33304942 33337441
+ chr20 33367142 33455641
+ chr20 33547842 33648241
+ chr20 33719592 33741791
+ chr21 32669086 33011135
+ chr21 33088136 33429135
+ chr21 33448236 33468585
+ chr21 33770636 33776835
+ chr21 33986136 34147135
+ chr21 34187236 34192935
+ chr21 39244480 39443129
+ chr21 39518080 39577279
+ chr21 39710980 39744379
+ chr22 30139169 30162868
+ chr22 30267469 30295368
+ chr22 30306819 30325968
+ chr22 30428969 30457418
+ chr22 30518569 30641468
+ chr22 30691769 31109568
+ chr22 31233969 31828418
+ chr4 118605412 119104211
+ chr5 55871514 55974213
+ chr5 56049964 56108463
+ chr5 56295064 56312663
+ chr5 131285239 131348288
+ chr5 131508839 131615988
+ chr5 131664139 131723988
+ chr5 132163339 132207638
+ chr5 132252289 132274838
+ chr5 141880430 142238379
+ chr5 142266580 142281579
+ chr5 142316030 142320129
+ chr6 41428258 41520157
+ chr6 41671858 41744107
+ chr6 73789966 74172215
+ chr6 108415700 108655299
+ chr6 108803650 108870849
+ chr6 132218553 132635602
+ chr6 132654353 132711702
+ chr7 26730774 26934423
+ chr7 27002574 27229823
+ chr7 89544453 89577352
+ chr7 89720203 89826252
+ chr7 90246353 90525602
+ chr7 113527971 113613220
+ chr7 113686671 113748970
+ chr7 113836821 113857470
+ chr7 113900871 114009870
+ chr7 114086871 114108620
+ chr7 114220471 114262670
+ chr7 114309121 114527020
+ chr7 115497585 115530034
+ chr7 115579385 115763184
+ chr7 115868585 116122834
+ chr7 116299385 116328884
+ chr7 116394035 116441684
+ chr7 116511235 116606234
+ chr7 116709135 116784484
+ chr7 116858785 116956034
+ chr7 117061585 117262884
+ chr7 125710958 125781757
+ chr7 125813958 125866307
+ chr7 125981658 126582957
+ chr7 126667158 126818457
+ chr8 118882234 119035133
+ chr8 119104034 119148683
+ chr8 119225934 119329033
+ chr9 128810361 128867310
+ chr9 129025011 129077310
+ chr9 129147561 129264760
+ chrX 122514171 122576870
+ chrX 122752371 122773320
+ chrX 122873171 122995070
+ chrX 152635348 152671997
+ chrX 152809248 153077847
+ chrX 153193448 153278597
+ chrX 153338498 153518997
+ chrX 153572798 153785397
+ chrX 153880448 153967197
+ </INPUT>
+ <OUTPUT name="difference2.results"/>
+ <CALL>
+ -d
+ </CALL>
+ </TEST>
+
+ <!-- *******DIFFERENCE TEST******* -->
+ <!-- This test depends upon difference2a.test, difference2b.test -->
+ <!-- Creates difference3.results -->
+ <TEST order="22">
+ <ANSWER>
+ chr1 148324497 148352248
+ chr1 148370247 148381196
+ chr10 55652880 55653761
+ chr11 1700195 1704342
+ chr11 1716341 1805844
+ chr11 1858695 1944342
+ chr11 2299341 2299444
+ chr11 4731161 4731318
+ chr11 5718317 5732510
+ chr11 63943030 63995061
+ chr11 64214060 64249029
+ chr11 115962329 115962356
+ chr11 130604811 130604863
+ chr11 131007862 131041863
+ chr11 131103862 131104460
+ chr12 38627136 38627234
+ chr12 38758233 38796085
+ chr12 39125233 39126385
+ chr13 29418029 29418172
+ chr13 112371064 112483527
+ chr13 112671478 112674065
+ chr13 112834064 112834777
+ chr14 52947469 52947539
+ chr14 53216538 53252539
+ chr14 53395538 53445318
+ chr14 98458731 98458982
+ chr14 98726981 98846982
+ chr14 98922981 98939630
+ chr15 41612706 41613526
+ chr15 41644525 41647605
+ chr15 41943256 41944526
+ chr15 42017525 42018955
+ chr16 63608 93057
+ chr16 154108 191707
+ chr16 260308 265144
+ chr16 282143 337657
+ chr16 411108 499907
+ chr16 26277471 26279766
+ chr16 60834343 60834367
+ chr16 61332366 61333692
+ chr18 23719245 23719565
+ chr18 59412352 59412369
+ chr18 59822052 59866369
+ chr18 59907368 59912251
+ chr19 59070324 59190792
+ chr19 59264791 59272223
+ chr19 59444274 59505073
+ chr19 59768724 59808473
+ chr19 59878074 59928792
+ chr19 60022791 60024073
+ chr2 51577171 51577376
+ chr2 52068375 52070270
+ chr2 118011463 118011510
+ chr2 118466509 118469162
+ chr2 220105486 220105565
+ chr2 220163564 220164985
+ chr2 220211686 220252585
+ chr2 220350564 220388565
+ chr2 220601564 220602785
+ chr2 234274978 234299983
+ chr2 234517982 234572983
+ chr2 234772982 234773827
+ chr20 33304942 33337441
+ chr20 33435432 33455641
+ chr20 33547842 33648241
+ chr20 33719592 33741791
+ chr21 32669086 32713497
+ chr21 32845496 32937497
+ chr21 32987496 33011135
+ chr21 33088136 33098497
+ chr21 33211496 33238497
+ chr21 33356496 33384497
+ chr21 33770636 33776835
+ chr21 33986136 34033497
+ chr21 34189496 34192935
+ chr21 39244480 39244494
+ chr21 39537493 39577279
+ chr21 39714493 39744379
+ chr22 30267469 30295368
+ chr22 30306819 30325968
+ chr22 30433339 30457418
+ chr22 30623339 30641468
+ chr22 30691769 30704340
+ chr22 31104339 31109568
+ chr22 31826339 31828418
+ chr4 119102258 119104211
+ chr5 55871514 55871562
+ chr5 55910561 55932562
+ chr5 56295064 56312663
+ chr5 131285239 131285468
+ chr5 131508839 131615988
+ chr5 131664139 131723988
+ chr5 132163339 132207638
+ chr5 132252289 132274838
+ chr5 141880430 141880431
+ chr5 142107430 142154431
+ chr6 41428258 41462953
+ chr6 41483952 41520157
+ chr6 41676952 41730953
+ chr6 73789966 73790092
+ chr6 73926091 73957092
+ chr6 74005091 74105092
+ chr6 74133091 74172215
+ chr6 108501515 108624516
+ chr6 108653515 108655299
+ chr6 108803650 108804516
+ chr6 108870515 108870849
+ chr6 132218553 132220684
+ chr6 132711683 132711702
+ chr7 26730774 26730869
+ chr7 26808868 26855869
+ chr7 26873868 26934423
+ chr7 27002574 27032869
+ chr7 27228868 27229823
+ chr7 89544453 89577352
+ chr7 89720203 89733489
+ chr7 90514488 90525602
+ chr7 113527971 113527996
+ chr7 113839995 113857470
+ chr7 113900871 113903996
+ chr7 113950995 113979996
+ chr7 114086871 114099996
+ chr7 114220471 114262670
+ chr7 114309121 114320996
+ chr7 114525995 114527020
+ chr7 115517551 115530034
+ chr7 115712551 115763184
+ chr7 116070551 116122834
+ chr7 116299385 116328884
+ chr7 116532551 116595552
+ chr7 126462888 126512889
+ chr7 126667158 126672889
+ chr7 126728888 126762889
+ chr7 126789888 126818457
+ chr8 118882234 118882346
+ chr8 118959345 119035133
+ chr8 119104034 119129346
+ chr8 119148345 119148683
+ chr9 128810361 128817231
+ chr9 128848230 128867310
+ chr9 129025011 129077310
+ chr9 129147561 129247231
+ chr9 129263230 129264760
+ chrX 122565816 122576870
+ chrX 122752371 122754817
+ chrX 122873171 122879817
+ chrX 122994816 122995070
+ chrX 152648276 152671997
+ chrX 152809248 152834277
+ chrX 152848276 152915277
+ chrX 153048276 153077847
+ chrX 153193448 153278597
+ chrX 153338498 153357277
+ chrX 153471276 153518997
+ chrX 153572798 153785397
+ chrX 153880448 153891277
+ chrX 153958276 153967197
+ </ANSWER>
+ <CALL>
+ -d difference2b.test difference2a.test
+ </CALL>
+ <OUTPUT name="difference3.results"/>
+ </TEST>
+
+ <!-- *******SYMMETRIC DIFFERENCE TEST******* -->
+ <!-- This testd depends upon intersect4a.test, intersect4b.test -->
+ <!-- Creates symmetric1.results -->
+ <TEST order="18">
+ <ANSWER>
+ chr1 0 5
+ chr1 11 15
+ chr11 80 105
+ chr11 106 126
+ chr13 0 200
+ chr13 201 301
+ chr15 5 10
+ chr15 11 101
+ chr4 19 101
+ chr5 16 18
+ chr7 7 11
+ </ANSWER>
+ <OUTPUT name="symmetric1.results"/>
+ <CALL>
+ -s intersect4a.test intersect4b.test
+ </CALL>
+ </TEST>
+
+ <!-- *******SYMMETRIC DIFFERENCE TEST******* -->
+ <!-- This test depends upon intersect4a.test, intersect4b.test, intersect4c.test -->
+ <!-- Creates symmetric2.results -->
+ <TEST order="19">
+ <ANSWER>
+ chr1 0 5
+ chr1 11 15
+ chr11 80 100
+ chr11 126 1001
+ chr13 201 301
+ chr15 0 5
+ chr15 21 101
+ chr4 19 101
+ chr5 16 18
+ chr7 7 11
+ </ANSWER>
+ <OUTPUT name="symmetric2.results"/>
+ <CALL>
+ -s intersect4a.test intersect4b.test intersect4c.test
+ </CALL>
+ </TEST>
+
+
+ <!-- *******SYMMETRIC DIFFERENCE TEST ******* -->
+ <!-- Creates symmetric1.test, symmetric2.test, symmetric3.test, symmetric3.results -->
+ <TEST order="20" chromosome="chr1">
+ <INPUT name="symmetric1.test">
+ 1 9
+ 7 8
+ </INPUT>
+ <INPUT name="symmetric2.test">
+ 1 5
+ 7 9
+ 16 19
+ </INPUT>
+ <INPUT name="symmetric3.test">
+ 3 9
+ </INPUT>
+ <INPUT name="symmetric4.test">
+ 11 15
+ </INPUT>
+ <ANSWER>
+ 11 15
+ 16 19
+ </ANSWER>
+ <CALL>
+ -s
+ </CALL>
+ <OUTPUT name="symmetric3.results"/>
+ </TEST>
+
+
+ <!-- *******ELEMENT-OF TEST ******* -->
+ <TEST order="23">
+ <ANSWER>
+ chr4 51 56
+ chr4 58 59
+ chr4 99 100
+ chr4 102 103
+ chr5 25 27
+ chr7 21 23
+ </ANSWER>
+ <CALL>
+ -e merge7b.test merge7b.test
+ </CALL>
+ <OUTPUT name="elementof1.results"/>
+ </TEST>
+
+
+ <!-- *******ELEMENT-OF TEST ******* -->
+ <TEST order="24" chromosome="chr1">
+ <ANSWER>
+ 1 9
+ 7 8
+ </ANSWER>
+ <CALL>
+ -e 0 symmetric1.test symmetric2.test
+ </CALL>
+ <OUTPUT name="elementof2.results"/>
+ </TEST>
+
+ <!-- *******NON-ELEMENT-OF TEST ******* -->
+ <TEST order="25">
+ <ANSWER>
+ <!-- empty -->
+ </ANSWER>
+ <CALL>
+ -n merge7b.test merge7b.test
+ </CALL>
+ <OUTPUT name="nonelementof1.results"/>
+ </TEST>
+
+ <!-- *******NON-ELEMENT-OF TEST ******* -->
+ <TEST order="26" chromosome="chr1">
+ <ANSWER>
+ 16 19
+ </ANSWER>
+ <CALL>
+ -n 0 symmetric2.test symmetric1.test
+ </CALL>
+ <OUTPUT name="nonelementof2.results"/>
+ </TEST>
+
+
+ <!-- *******DIFFERENCE TEST******* -->
+ <!-- Creates difference4a.test, difference4b.test, difference4.results -->
+ <TEST order="27" chromosome="chrY">
+ <INPUT name="difference4a.test">
+ 3 5
+ 7 12
+ 16 25
+ </INPUT>
+ <INPUT name="difference4b.test">
+ 5 8
+ 11 15
+ 27 31
+ </INPUT>
+ <ANSWER>
+ 3 5
+ 8 11
+ 16 25
+ </ANSWER>
+ <OUTPUT name="difference4.results"/>
+ <CALL>
+ -d
+ </CALL>
+ </TEST>
+
+
+ <!-- *******DIFFERENCE TEST******* -->
+ <!-- Creates difference5.results -->
+ <!-- This test depends upon difference4a.test, difference4b.test -->
+ <TEST order="28" chromosome="chrY">
+ <ANSWER>
+ 5 7
+ 12 15
+ 27 31
+ </ANSWER>
+ <OUTPUT name="difference5.results"/>
+ <CALL>
+ -d difference4b.test difference4a.test
+ </CALL>
+ </TEST>
+
+
+ <!-- *******MERGE TEST******* -->
+ <!-- Creates merge9.results -->
+ <!-- This test depends upon difference4.results, difference5.results -->
+ <TEST order="29" chromosome="chrY">
+ <ANSWER>
+ 3 7
+ 8 11
+ 12 15
+ 16 25
+ 27 31
+ </ANSWER>
+ <OUTPUT name="merge9.results"/>
+ <CALL>
+ -m difference4.results difference5.results
+ </CALL>
+ </TEST>
+
+
+
+ <!-- *******SYMMETRIC DIFFERENCE TEST******* -->
+ <!-- Creates symmetric4.results -->
+ <!-- This test depends upon difference4a.test, difference4b.test -->
+ <TEST order="30" chromosome="chrY">
+ <ANSWER>
+ 3 7
+ 8 11
+ 12 15
+ 16 25
+ 27 31
+ </ANSWER>
+ <OUTPUT name="symmetric4.results"/>
+ <CALL>
+ -s difference4a.test difference4b.test
+ </CALL>
+ </TEST>
+
+
+ <!-- *******DIFFERENCE TEST******* -->
+ <!-- Creates difference6.results -->
+ <!-- This test depends upon symmetric4.results, merge9.results -->
+ <TEST order="31" chromosome="chrY">
+ <ANSWER>
+ <!-- nada -->
+ </ANSWER>
+ <OUTPUT name="difference6.results"/>
+ <CALL>
+ -d symmetric4.results merge9.results
+ </CALL>
+ </TEST>
+
+
+ <!-- *******DIFFERENCE TEST******* -->
+ <!-- Creates difference7.results -->
+ <!-- This test depends upon symmetric4.results, merge9.results -->
+ <TEST order="32" chromosome="chrY">
+ <ANSWER>
+ <!-- nada -->
+ </ANSWER>
+ <OUTPUT name="difference7.results"/>
+ <CALL>
+ -d merge9.results symmetric4.results
+ </CALL>
+ </TEST>
+
+
+ <!-- *******SYMMETRIC DIFFERENCE TEST******* -->
+ <!-- Creates symmetric5.results -->
+ <!-- This test depends upon symmetric4.results, merge9.results -->
+ <TEST order="33" chromosome="chrY">
+ <ANSWER>
+ <!-- nada -->
+ </ANSWER>
+ <OUTPUT name="symmetric5.results"/>
+ <CALL>
+ -s merge9.results symmetric4.results
+ </CALL>
+ </TEST>
+
+ <!-- *******NON-ELEMENT-OF TEST ******* -->
+ <!-- Creates nonelementof1.test -->
+ <!-- Creates nonelementof2.test -->
+ <!-- Creates nonelementof3.results -->
+ <TEST order="34" chromosome="chr1">
+ <INPUT name="nonelementof1.test">
+ 1149020 1149450
+ 1149120 1149270
+ 1149320 1149470
+ </INPUT>
+ <INPUT name="nonelementof2.test">
+ 1149320 1149470
+ 1155860 1156010
+ </INPUT>
+ <ANSWER>
+ 1149120 1149270
+ </ANSWER>
+ <OUTPUT name="nonelementof3.results"/>
+ <CALL>
+ -n 1
+ </CALL>
+ </TEST>
+
+ <!-- *******ELEMENT-OF TEST ******* -->
+ <!-- This test depends upon nonelement1.test, nonelement2.test -->
+ <!-- Creates elementof3.results -->
+ <TEST order="35" chromosome="chr1">
+ <ANSWER>
+ 1149020 1149450
+ 1149320 1149470
+ </ANSWER>
+ <OUTPUT name="elementof3.results"/>
+ <CALL>
+ -e 1 nonelementof1.test nonelementof2.test
+ </CALL>
+ </TEST>
+
+ <!-- *******MERGE TEST******* -->
+ <!-- This was a bug until 03.20.09 where setops failed
+ to recognize any chr[blah] 0 1 with start coord
+ set to 0 if it followed a different chr[blah] 0 1
+ with 0 start coord. This is because NADA was defined
+ as (0, 0). That has been changed. -->
+ <!-- Creates complement5.test -->
+ <!-- Creates complement5.results -->
+ <TEST order="36">
+ <INPUT name="complement5.test">
+ chr1 0 1
+ chr1 4 5
+ chr10 0 1
+ chr10 20 30
+ </INPUT>
+ <ANSWER>
+ chr1 1 4
+ chr10 1 20
+ </ANSWER>
+ <CALL>
+ -c complement5.test
+ </CALL>
+ <OUTPUT name="complement5.results"/>
+ </TEST>
+
+
+ <!-- *******ELEMENTOF TEST******* -->
+ <!-- Was a bug in bedops program; not in setops -->
+ <!-- Creates elementof3.test -->
+ <!-- Creates elementof4.test -->
+ <!-- Creates elementof4.results -->
+ <TEST order="37" chromosome="chrY">
+ <INPUT name="elementof3.test">
+ 59021595 59021609
+ 59021595 59021611
+ 59021598 59021611
+ 59021604 59021620
+ </INPUT>
+ <INPUT name="elementof4.test">
+ 59002033 59002045
+ </INPUT>
+ <ANSWER>
+ <!-- empty -->
+ </ANSWER>
+ <OUTPUT name="elementof4.results"/>
+ <CALL>
+ -e
+ </CALL>
+ </TEST>
+
+ <!-- *******UNION TEST******* -->
+ <!-- Was a bug in bedops program with range option
+ Basically, if you had something with +padding and
+ had multiple non-consecutive rows (due to chrom breaks)
+ that needed to be clipped at 0 on the bottom end -> trouble.
+ -->
+ <!-- Creates union1.test -->
+ <!-- Creates union1.results -->
+ <TEST order="38">
+ <INPUT name="union1.test">
+ chr1 1 10
+ chr1 2 8
+ chr10 500 600
+ chr11 4 600
+ chr12 3 4
+ chr12 101 178
+ chr13 1 2
+ chr14 59 78
+ chr15 500 699
+ chr16 4 5
+ chr17 5 77
+ </INPUT>
+ <ANSWER>
+ chr1 0 108
+ chr1 0 110
+ chr10 400 700
+ chr11 0 700
+ chr12 0 104
+ chr12 1 278
+ chr13 0 102
+ chr14 0 178
+ chr15 400 799
+ chr16 0 105
+ chr17 0 177
+ </ANSWER>
+ <OUTPUT name="union1.results"/>
+ <CALL>
+ -u --range 100
+ </CALL>
+ </TEST>
+
+ <!-- *******UNION TEST******* -->
+ <!-- Undo test 39 -->
+ <!-- Creates union2.results -->
+ <!-- Some elements will get dropped with neg value for range arg -->
+ <TEST order="39">
+ <ANSWER>
+ chr10 500 600
+ chr11 100 600
+ chr12 101 178
+ chr15 500 699
+ </ANSWER>
+ <OUTPUT name="union2.results"/>
+ <CALL>
+ -u --range -100 union1.results
+ </CALL>
+ </TEST>
+
+ <!-- *******COMPLEMENT -L TEST******* -->
+ <!-- This test depends upon merge1.test -->
+ <!-- Creates complement1L.results -->
+ <!-- Testing -L feature of -c -->
+ <TEST order="40" chromosome="chr7">
+ <ANSWER>
+ 0 2
+ 102 105
+ 116 117
+ </ANSWER>
+ <CALL>
+ -c -L merge1.test
+ </CALL>
+ <OUTPUT name="complement1L.results"/>
+ </TEST>
+
+ <!-- *******COMPLEMENT -L TEST******* -->
+ <!-- This test depends upon merge2.results -->
+ <!-- Creates complement2L.results -->
+ <!-- Testing -L feature of -c -->
+ <TEST order="41" chromosome="chr7">
+ <ANSWER>
+ 0 2
+ </ANSWER>
+ <CALL>
+ -c -L merge2.results
+ </CALL>
+ <OUTPUT name="complement2L.results"/>
+ </TEST>
+
+ <!-- *******COMPLEMENT -L TEST******* -->
+ <!-- This test depends upon merge5.results -->
+ <!-- Creates complement3L.results -->
+ <!-- Testing -L feature of -c -->
+ <TEST order="42">
+ <ANSWER>
+ chr4 0 5
+ chr4 11 16
+ chr6 11 16
+ chr6 118 119
+ chr7 0 2
+ chr7 102 105
+ chr7 116 117
+ </ANSWER>
+ <CALL>
+ -c -L merge5.results
+ </CALL>
+ <OUTPUT name="complement3L.results"/>
+ </TEST>
+
+ <!-- *******COMPLEMENT -L TEST******* -->
+ <!-- Creates complement4L.results -->
+ <!-- Testing -L feature of -c -->
+ <TEST order="43">
+ <ANSWER>
+ chr1 2 14
+ chr1 30 58
+ chr11 0 3000
+ chr11 4501 4600
+ chr11 4714 5000
+ chr13 0 14
+ chr13 18 19
+ chr4 0 13
+ chr4 14 73
+ chr4 80 100
+ chr5 0 1
+ chr7 0 6
+ chr7 14 89
+ chr7 92 101
+ chr8 0 1000
+ </ANSWER>
+ <CALL> -c -L complement4a.test complement4b.test complement4c.test</CALL>
+ <OUTPUT name="complement4L.results"/>
+ </TEST>
+
+ <!-- *******UNION TEST******* -->
+ <!-- Test range option some more -->
+ <!-- Creates union3.test -->
+ <!-- Creates union3.results -->
+ <!-- On ties, the range option should maintain original order of inputs -->
+ <TEST order="44">
+ <INPUT name="union3.test">
+ chr9 141127805 141127832 chr9:141127805-141127832,+,1 1 +
+ chrM 6 64 chrM:6-64,+,5 5 +
+ chrM 9 419 chrM:9-419,-,14117 17 -
+ chrM 11 422 chrM:11-422,-,3100 14 -
+ chrM 12 559 chrM:12-559,-,25584 17 -
+ chrM 13 64 chrM:13-64,+,13 6 +
+ chrM 34 255 chrM:34-255,+,53 7 +
+ chrM 67 213 chrM:67-213,+,103 9 +
+ chrM 69 153 chrM:69-153,+,16 7 +
+ chrM 183 213 chrM:183-213,+,14 6 +
+ </INPUT>
+ <ANSWER>
+ chr9 141127305 141128332 chr9:141127805-141127832,+,1 1 +
+ chrM 0 564 chrM:6-64,+,5 5 +
+ chrM 0 564 chrM:13-64,+,13 6 +
+ chrM 0 653 chrM:69-153,+,16 7 +
+ chrM 0 713 chrM:67-213,+,103 9 +
+ chrM 0 713 chrM:183-213,+,14 6 +
+ chrM 0 755 chrM:34-255,+,53 7 +
+ chrM 0 919 chrM:9-419,-,14117 17 -
+ chrM 0 922 chrM:11-422,-,3100 14 -
+ chrM 0 1059 chrM:12-559,-,25584 17 -
+ </ANSWER>
+ <OUTPUT name="union3.results"/>
+ <CALL>
+ -u --range 500
+ </CALL>
+ </TEST>
+
+ <!-- *******UNION TEST******* -->
+ <!-- Test padding option some more -->
+ <!-- Creates union4.test -->
+ <!-- Creates union4.results -->
+ <TEST order="45">
+ <INPUT name="union4.test">
+ chr1 20 100
+ chr1 30 50
+ chr2 5 8
+ </INPUT>
+ <ANSWER>
+ chr1 15 92
+ chr1 25 42
+ </ANSWER>
+ <OUTPUT name="union4.results"/>
+ <CALL>
+ -u --range -5:-8
+ </CALL>
+ </TEST>
+
+ <!-- *******UNION TEST******* -->
+ <!-- Test padding option some more -->
+ <!-- Creates union5.results -->
+ <TEST order="46">
+ <ANSWER>
+ chr1 20 21
+ </ANSWER>
+ <OUTPUT name="union5.results"/>
+ <CALL>
+ -u --range 0:-79 union4.test
+ </CALL>
+ </TEST>
+
+ <!-- *******UNION TEST******* -->
+ <!-- Test padding option some more -->
+ <!-- Creates union6.results -->
+ <TEST order="47">
+ <ANSWER>
+ <!-- empty -->
+ </ANSWER>
+ <OUTPUT name="union6.results"/>
+ <CALL>
+ -u --range 0:-80 union4.test
+ </CALL>
+ </TEST>
+
+ <!-- *******UNION TEST******* -->
+ <!-- Test padding option some more -->
+ <!-- Creates union7.results -->
+ <TEST order="48">
+ <ANSWER>
+ chr1 15 105
+ chr1 25 55
+ chr2 0 13
+ </ANSWER>
+ <OUTPUT name="union7.results"/>
+ <CALL>
+ -u --range -5:5 union4.test
+ </CALL>
+ </TEST>
+
+ <!-- *******UNION TEST******* -->
+ <!-- Test range -->
+ <!-- Creates union8.results -->
+ <TEST order="49">
+ <ANSWER>
+ chr1 15 105
+ chr1 25 55
+ chr2 0 13
+ </ANSWER>
+ <OUTPUT name="union8.results"/>
+ <CALL>
+ -u --range 5 union4.test
+ </CALL>
+ </TEST>
+
+ <!-- *******UNION TEST******* -->
+ <!-- Test padding option some more -->
+ <!-- Creates union5.test -->
+ <!-- Creates union9.results -->
+ <TEST order="50">
+ <INPUT name="union5.test">
+ chr1 20 100
+ chr1 30 50
+ chr2 5 8
+ chr2 50 80
+ </INPUT>
+ <ANSWER>
+ chr1 15 92
+ chr1 25 42
+ chr2 45 72
+ </ANSWER>
+ <OUTPUT name="union9.results"/>
+ <CALL>
+ -u --range -5:-8
+ </CALL>
+ </TEST>
+
+ <!-- *******PARTITION TEST******* -->
+ <!-- Creates partition1.test -->
+ <!-- Creates partition2.test -->
+ <!-- Creates partition3.test -->
+ <!-- Creates partition1.results -->
+ <TEST order="51">
+ <INPUT name="partition1.test">
+ chr1 10 100
+ chr1 50 125
+ chr1 2000 2500
+ </INPUT>
+ <INPUT name="partition2.test">
+ chr0 250 400
+ chr1 250 400
+ chr1 2100 2125
+ chr21 500 1000
+ </INPUT>
+ <INPUT name="partition3.test">
+ chr0 100 300
+ chr1 50 125
+ chr1 2000 2500
+ </INPUT>
+ <ANSWER>
+ chr0 100 250
+ chr0 250 300
+ chr0 300 400
+ chr1 10 50
+ chr1 50 100
+ chr1 100 125
+ chr1 250 400
+ chr1 2000 2100
+ chr1 2100 2125
+ chr1 2125 2500
+ chr21 500 1000
+ </ANSWER>
+ <OUTPUT name="partition1.results"/>
+ <CALL>
+ -p
+ </CALL>
+ </TEST>
+
+ <!-- *******PARTITION TEST******* -->
+ <!-- Creates partition4.test -->
+ <!-- Creates partition5.test -->
+ <!-- Creates partition6.test -->
+ <!-- Creates partition7.test -->
+ <!-- Creates partition8.test -->
+ <!-- Creates partition2.results -->
+ <TEST order="52">
+ <INPUT name="partition4.test">
+ chr1 10 100
+ chr1 50 125
+ chr1 2000 2500
+ chr3 1 2
+ </INPUT>
+ <INPUT name="partition5.test">
+ chr0 100 300
+ chr1 50 125
+ chr1 2000 2500
+ chr2 5 7
+ </INPUT>
+ <INPUT name="partition6.test">
+ chr1 10 100
+ chr1 50 125
+ chr1 50 125
+ chr1 2000 2500
+ chr2 1 10
+ chr2 1 10
+ chr2 1 10
+ chr2 1 10
+ chr2 2 10
+ </INPUT>
+ <INPUT name="partition7.test">
+ chr1 1 10
+ chr1 3 6
+ chr1 9 10
+ chr2 1 10
+ </INPUT>
+ <INPUT name="partition8.test">
+ chr1 5 20
+ chr1 10 20
+ chr1 11 21
+ chr1 12 22
+ chr1 13 23
+ chr1 14 24
+ chr1 15 25
+ chr1 16 26
+ chr1 17 27
+ chr1 18 28
+ chr1 19 29
+ chr1 20 30
+ </INPUT>
+ <ANSWER>
+ chr0 100 300
+ chr1 1 3
+ chr1 3 5
+ chr1 5 6
+ chr1 6 9
+ chr1 9 10
+ chr1 10 11
+ chr1 11 12
+ chr1 12 13
+ chr1 13 14
+ chr1 14 15
+ chr1 15 16
+ chr1 16 17
+ chr1 17 18
+ chr1 18 19
+ chr1 19 20
+ chr1 20 21
+ chr1 21 22
+ chr1 22 23
+ chr1 23 24
+ chr1 24 25
+ chr1 25 26
+ chr1 26 27
+ chr1 27 28
+ chr1 28 29
+ chr1 29 30
+ chr1 30 50
+ chr1 50 100
+ chr1 100 125
+ chr1 2000 2500
+ chr2 1 2
+ chr2 2 5
+ chr2 5 7
+ chr2 7 10
+ chr3 1 2
+ </ANSWER>
+ <OUTPUT name="partition2.results"/>
+ <CALL>
+ -p
+ </CALL>
+ </TEST>
+
+ <!-- *******PARTITION TEST******* -->
+ <!-- Creates partition9.test -->
+ <!-- Creates partition3.results -->
+ <TEST order="53">
+ <INPUT name="partition9.test">
+ chr1 33657 33687 +MA0068.1-Pax4 8.67655e-06 + TAATGCTATCCCTCCCCCAGCCCCCCACCC
+ chr1 33666 33686 +MA0073.1-RREB1 1.97929e-06 + CCCTCCCCCAGCCCCCCACC
+ chr1 33670 33690 +MA0073.1-RREB1 1.0924e-06 + CCCCCAGCCCCCCACCCACT
+ chr1 33672 33682 +MA0079.2-SP1 5.66765e-06 + CCCAGCCCCC
+ chr1 34375 34390 +MA0065.2-PPARG::RXRA 7.21085e-07 + GGTGGGCAAAGGGCA
+ chr1 34377 34390 +MA0114.1-HNF4A 5.44281e-06 + TGGGCAAAGGGCA
+ </INPUT>
+ <ANSWER>
+ chr1 33657 33666
+ chr1 33666 33670
+ chr1 33670 33672
+ chr1 33672 33682
+ chr1 33682 33686
+ chr1 33686 33687
+ chr1 33687 33690
+ chr1 34375 34377
+ chr1 34377 34390
+ </ANSWER>
+ <OUTPUT name="partition3.results"/>
+ <CALL>
+ -p
+ </CALL>
+ </TEST>
+
+ <!-- *******PARTITION TEST******* -->
+ <!-- Creates partition10.test -->
+ <!-- Creates partition4.results -->
+ <TEST order="54">
+ <INPUT name="partition10.test">
+ chr1 279 280
+ chr1 280 281
+ chr1 281 282
+ chr1 310 311
+ chr1 310 320
+ chr1 311 312
+ chr1 312 313
+ chr1 312 318
+ chr1 313 314
+ </INPUT>
+ <ANSWER>
+ chr1 279 280
+ chr1 280 281
+ chr1 281 282
+ chr1 310 311
+ chr1 311 312
+ chr1 312 313
+ chr1 313 314
+ chr1 314 318
+ chr1 318 320
+ </ANSWER>
+ <OUTPUT name="partition4.results"/>
+ <CALL>
+ -p
+ </CALL>
+ </TEST>
+
+ <!-- *******CHROME TEST with -u******* -->
+ <!-- This test depends upon complement3L.results -->
+ <!-- Creates chrom-test1.results -->
+ <TEST order="55">
+ <ANSWER>
+ chr6 11 16
+ chr6 118 119
+ </ANSWER>
+ <CALL>
+ --chrom chr6 -u complement3L.results
+ </CALL>
+ <OUTPUT name="chrom-test1.results"/>
+ </TEST>
+
+ <!-- *******CHROME TEST with -m******* -->
+ <!-- This test depends upon complement3L.results -->
+ <!-- Creates chrom-test1.results -->
+ <TEST order="56">
+ <ANSWER>
+ chr4 0 5
+ chr4 11 16
+ </ANSWER>
+ <CALL>
+ --chrom chr4 -m complement3L.results
+ </CALL>
+ <OUTPUT name="chrom-test2.results"/>
+ </TEST>
+
+ <!-- *******CHROME TEST with -c******* -->
+ <!-- This test depends upon complement3L.results -->
+ <!-- Creates chrom-test1.results -->
+ <TEST order="57">
+ <ANSWER>
+ chr7 2 102
+ chr7 105 116
+ </ANSWER>
+ <CALL>
+ --chrom chr7 -c complement3L.results
+ </CALL>
+ <OUTPUT name="chrom-test3.results"/>
+ </TEST>
+
+ <!-- *******CHROME TEST with -c, -L, and ec******* -->
+ <!-- This test depends upon complement3L.results -->
+ <!-- Creates chrom-test1.results -->
+ <TEST order="57">
+ <ANSWER>
+ chr7 2 102
+ chr7 105 116
+ </ANSWER>
+ <CALL>
+ --ec --chrom chr7 -c -L complement3L.results
+ </CALL>
+ <OUTPUT name="ec-chrom-test1.results"/>
+ </TEST>
+
+ <!-- *******CHOP TEST******* -->
+ <!-- Creates chop1.test -->
+ <!-- Creates chop2.test -->
+ <!-- Creates chop1.results -->
+ <TEST order="58">
+ <INPUT name="chop1.test">
+ chr1 10 100 id-1
+ chr1 50 125
+ chr1 2000 2500
+ </INPUT>
+ <INPUT name="chop2.test">
+ chr1 250 400
+ chr1 2100 2125 ok 2.7818
+ chr21 500 1000
+ </INPUT>
+ <ANSWER>
+ chr1 10 110
+ chr1 110 125
+ chr1 250 350
+ chr1 350 400
+ chr1 2000 2100
+ chr1 2100 2200
+ chr1 2200 2300
+ chr1 2300 2400
+ chr1 2400 2500
+ chr21 500 600
+ chr21 600 700
+ chr21 700 800
+ chr21 800 900
+ chr21 900 1000
+ </ANSWER>
+ <CALL>--chop 100</CALL>
+ <OUTPUT name="chop1.results"/>
+ </TEST>
+
+ <!-- *******CHOP TEST******* -->
+ <!-- Creates chop2x.results -->
+ <!-- testing -x option of -w/chop -->
+ <TEST order="59">
+ <ANSWER>
+ chr1 10 110
+ chr1 250 350
+ chr1 2000 2100
+ chr1 2100 2200
+ chr1 2200 2300
+ chr1 2300 2400
+ chr1 2400 2500
+ chr21 500 600
+ chr21 600 700
+ chr21 700 800
+ chr21 800 900
+ chr21 900 1000
+ </ANSWER>
+ <CALL>--chop 100 -x chop1.test chop2.test</CALL>
+ <OUTPUT name="chop2x.results"/>
+ </TEST>
+
+ <!-- *******CHOP TEST******* -->
+ <!-- Creates chop3s.results -->
+ <!-- testing stagger option of -w/chop -->
+ <TEST order="60">
+ <ANSWER>
+ chr1 10 110
+ chr1 63 125
+ chr1 116 125
+ chr1 250 350
+ chr1 303 400
+ chr1 356 400
+ chr1 2000 2100
+ chr1 2053 2153
+ chr1 2106 2206
+ chr1 2159 2259
+ chr1 2212 2312
+ chr1 2265 2365
+ chr1 2318 2418
+ chr1 2371 2471
+ chr1 2424 2500
+ chr1 2477 2500
+ chr21 500 600
+ chr21 553 653
+ chr21 606 706
+ chr21 659 759
+ chr21 712 812
+ chr21 765 865
+ chr21 818 918
+ chr21 871 971
+ chr21 924 1000
+ chr21 977 1000
+ </ANSWER>
+ <CALL>--chop 100 --stagger 53 chop1.test chop2.test</CALL>
+ <OUTPUT name="chop3s.results"/>
+ </TEST>
+
+ <!-- *******CHOP TEST******* -->
+ <!-- Creates chop4xs.results -->
+ <!-- testing stagger and -x options of -w/chop -->
+ <TEST order="61">
+ <ANSWER>
+ chr1 10 110
+ chr1 250 350
+ chr1 2000 2100
+ chr1 2053 2153
+ chr1 2106 2206
+ chr1 2159 2259
+ chr1 2212 2312
+ chr1 2265 2365
+ chr1 2318 2418
+ chr1 2371 2471
+ chr21 500 600
+ chr21 553 653
+ chr21 606 706
+ chr21 659 759
+ chr21 712 812
+ chr21 765 865
+ chr21 818 918
+ chr21 871 971
+ </ANSWER>
+ <CALL>--chop 100 -x --stagger 53 chop1.test chop2.test</CALL>
+ <OUTPUT name="chop4xs.results"/>
+ </TEST>
+</TEST_PLAN>
diff --git a/applications/bed/closestfeats/doc/Usage.Statement.Version1.2 b/applications/bed/closestfeats/doc/Usage.Statement.Version1.2
new file mode 100644
index 0000000..f94cda5
--- /dev/null
+++ b/applications/bed/closestfeats/doc/Usage.Statement.Version1.2
@@ -0,0 +1,45 @@
+closest-features
+ version: 1.2
+ authors: Shane Neph & Scott Kuehn
+
+Usage: closestFeatures [Process-Flags] [Output-Option] <input-file> <query-file>
+ All input files must be sorted per sort-bed.
+ May use '-' for a file to indicate reading from standard input.
+
+ For every element in <input-file>, determine the two elements from <query-file> falling
+ nearest to its left and right edges. An 'Output-Option' may be set to report results
+ in any one of a variety of ways.
+
+ Process Flags:
+ --ec : Error check all input files (slower).
+ --delim <delim> : Change output delimiter from '|' to <delim> between columns (e.g. '\t')
+ --no-overlaps : Overlapping elements from <query-file> will not be reported.
+ Useful, for example, with --5P if reported elements must be upstream.
+ --no-ref : Do not echo elements from <input-file>.
+ --dist : Print the signed distance(s) to the <input-file> element as an additional
+ column(s) of output. An overlapping element has a distance of 0.
+
+ Output-Option (At most, one may be selected.):
+ Without --no-ref, all output options include the <input-file> element as the first field.
+ By default, also print the two elements from <query-file> that lie genomically closest
+ to the left and right edges of the <input-file> element, respectively.
+
+ --5P : Print closest element to 5' edge of <input-file> element.
+ --3P : Print closest element to 3' edge of <input-file> element.
+ --shortest : Print closest element only. Ties go the left element.
+ --left : Print closest element to left edge of <input-file> element only.
+ --right : Print closest element to right edge of <input-file> element only.
+
+ --5P and --3P require at least 6 fields in the <input-file>, where the 6th column
+ indicates strand (either + or -), while the <query-file> requires only 3 columns.
+ All other options, including the default behavior, require 3 columns in both files.
+
+ NOTES:
+ If an element from <query-file> overlaps the <input-file> element, its distance is zero.
+ An overlapping element take precedence over all non-overlapping elements. This is true
+ even when the overlapping element's edge-to-edge distance to the <input-file>'s element
+ is greater than the edge-to-edge distance from a non-overlapping element.
+ Overlapping elements may be ignored completely (no precedence) with --no-overlaps.
+ Elements reported as genomically closest to the left and right edges are never the same.
+ When no qualifying element from <query-file> exists as a closest feature, 'NA' is reported.
+
diff --git a/applications/bed/closestfeats/src/BedReader.hpp b/applications/bed/closestfeats/src/BedReader.hpp
new file mode 100644
index 0000000..a1ee449
--- /dev/null
+++ b/applications/bed/closestfeats/src/BedReader.hpp
@@ -0,0 +1,111 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Fri Aug 13 15:00:25 PDT 2010
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef BED_READER_FEATDIST_H
+#define BED_READER_FEATDIST_H
+
+#include <vector>
+
+#include "utility/Assertion.hpp"
+#include "utility/ByLine.hpp"
+
+namespace FeatDist {
+
+template <typename T>
+struct NoPtr;
+
+template <typename T>
+struct NoPtr<T*> {
+ typedef T Type;
+};
+
+//===========
+// BedReader
+//===========
+template <typename IterType>
+struct BedReader {
+ typedef typename NoPtr<typename IterType::value_type>::Type BedType;
+
+ explicit BedReader(IterType iter) : iter_(iter), cache_()
+ { /* */ }
+
+ BedReader(const BedReader& b); // not safe to copy due to iterators in some cases
+ BedReader& operator=(const BedReader& b); // not safe to assign due to iterators in some cases
+
+ inline bool HasNext() {
+ static const IterType end;
+ return(!cache_.empty() || iter_ != end);
+ }
+
+ inline void PushBack(BedType* bt) {
+ cache_.push_back(bt);
+ }
+
+ inline void PushBack(const std::list<BedType*>& c) {
+ cache_.insert(cache_.end(), c.rbegin(), c.rend());
+ }
+
+ inline BedType* ReadLine() {
+ static BedType* tmp = static_cast<BedType*>(0);
+ static const IterType end;
+ if ( !cache_.empty() ) {
+ tmp = cache_.back();
+ cache_.pop_back();
+ }
+ else if ( iter_ == end ) // && cache_.empty()
+ tmp = static_cast<BedType*>(0);
+ else
+ tmp = *iter_++;
+ return(tmp);
+ }
+
+ void Clean() {
+ while ( !cache_.empty() ) {
+ delete cache_.back();
+ cache_.pop_back();
+ }
+ }
+
+ void CleanAll() {
+ Clean();
+ BedType* tmp = static_cast<BedType*>(0);
+ while ( (tmp = ReadLine()) )
+ delete tmp;
+ }
+
+ ~BedReader() {
+ while ( !cache_.empty() ) {
+ delete cache_.back();
+ cache_.pop_back();
+ }
+ }
+
+private:
+ IterType iter_;
+ std::vector<BedType*> cache_;
+};
+
+} // namespace FeatDist
+
+
+#endif // BED_READER_FEATDIST_H
diff --git a/applications/bed/closestfeats/src/ClosestFeature.cpp b/applications/bed/closestfeats/src/ClosestFeature.cpp
new file mode 100644
index 0000000..9b042f5
--- /dev/null
+++ b/applications/bed/closestfeats/src/ClosestFeature.cpp
@@ -0,0 +1,415 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Fri Aug 13 15:00:25 PDT 2010
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#include <algorithm>
+#include <cstdlib>
+#include <cstring>
+#include <deque>
+#include <exception>
+#include <fstream>
+#include <iostream>
+#include <iterator>
+#include <list>
+#include <numeric>
+#include <string>
+#include <utility>
+#include <vector>
+
+#include "data/bed/AllocateIterator_BED_starch.hpp"
+#include "data/bed/BedCheckIterator.hpp"
+#include "data/bed/BedTypes.hpp"
+#include "suite/BEDOPS.Constants.hpp"
+#include "suite/BEDOPS.Version.hpp"
+#include "utility/Exception.hpp"
+#include "utility/FPWrap.hpp"
+#include "utility/Typify.hpp"
+
+#include "BedReader.hpp"
+#include "Input.hpp"
+#include "Printers.hpp"
+
+namespace FeatDist {
+ const std::string prognm = "closest-features";
+ const std::string version = BEDOPS::revision();
+ const std::string authors = "Shane Neph & Scott Kuehn";
+ const std::string citation = BEDOPS::citation();
+ const char* none = "NA";
+ const Bed::SignedCoordType plus_infinite = std::numeric_limits<Bed::SignedCoordType>::max();
+ const Bed::SignedCoordType minus_infinite = std::numeric_limits<Bed::SignedCoordType>::min();
+
+ void doWork(const Input&);
+} // namespace FeatDist
+
+
+//========
+// main()
+//========
+int main(int argc, char** argv) {
+ try {
+ // Check inputs; initialize variables
+ FeatDist::Input input(argc, argv);
+ FeatDist::doWork(input);
+ return(EXIT_SUCCESS);
+
+ } catch(FeatDist::HelpException& h) {
+ std::cout << FeatDist::prognm << std::endl;
+ std::cout << " citation: " + FeatDist::citation << std::endl;
+ std::cout << " version: " + FeatDist::version << std::endl;
+ std::cout << " authors: " + FeatDist::authors << std::endl;
+ std::cout << FeatDist::Usage() << std::endl;
+ return(EXIT_SUCCESS);
+ } catch(FeatDist::VersionException& v) {
+ std::cout << FeatDist::prognm << std::endl;
+ std::cout << " citation: " + FeatDist::citation << std::endl;
+ std::cout << " version: " + FeatDist::version << std::endl;
+ std::cout << " authors: " + FeatDist::authors << std::endl;
+ return(EXIT_SUCCESS);
+ } catch(FeatDist::NoInput& ni) {
+ std::cerr << FeatDist::prognm << std::endl;
+ std::cerr << " citation: " + FeatDist::citation << std::endl;
+ std::cerr << " version: " + FeatDist::version << std::endl;
+ std::cerr << " authors: " + FeatDist::authors << std::endl;
+ std::cerr << FeatDist::Usage() << std::endl;
+ } catch(const std::exception& stx) {
+ std::cerr << "May use " + FeatDist::prognm + " --help for more help.\n" << std::endl;
+ std::cerr << "Error: " << stx.what() << std::endl;
+ } catch(...) {
+ std::cerr << "Unknown Error. Aborting" << std::endl;
+ }
+ return(EXIT_FAILURE);
+}
+
+
+
+// Function implementations
+namespace FeatDist {
+
+template <typename BedFile1, typename BedFile2, typename Printer>
+void findDistances(BedFile1&, BedFile2&, bool, const Printer&); // forward decl.
+
+
+//================
+// runDistances()
+//================
+template <typename BedFile1, typename BedFile2>
+void runDistances(BedFile1& refFile, BedFile2& nonRefFile, const Input& input) {
+ bool printDistances = input.PrintDistances();
+ bool suppressRefField = input.SuppressReference();
+ if ( input.ShortestOnly() )
+ findDistances(refFile, nonRefFile, input.AllowOverlaps(), PrintShortest(input.Delimiter(), printDistances, suppressRefField));
+ else
+ findDistances(refFile, nonRefFile, input.AllowOverlaps(), PrintAll(input.Delimiter(), printDistances, suppressRefField));
+}
+
+//=================
+// createWork<T,U>
+//=================
+template <typename BedType1, typename BedType2>
+struct createWork {
+ static void run(const Input& input) {
+ if ( input.ErrorCheck() ) {
+ typedef Ext::UserError UE;
+ typedef std::ifstream* StreamPtr;
+ typedef Bed::bed_check_iterator<BedType1*> IterType1;
+ typedef Bed::bed_check_iterator<BedType2*> IterType2;
+ typedef BedReader<IterType1> BedReaderType1;
+ typedef BedReader<IterType2> BedReaderType2;
+
+ StreamPtr refFilePtr = static_cast<StreamPtr>(0);
+ StreamPtr nonRefFilePtr = static_cast<StreamPtr>(0);
+ BedReaderType1* refFile = static_cast<BedReaderType1*>(0);
+ BedReaderType2* nonRefFile = static_cast<BedReaderType2*>(0);
+
+ bool isStdin = (input.GetReferenceFileName() == "-");
+ refFilePtr = new std::ifstream(input.GetReferenceFileName().c_str());
+ if ( isStdin ) {
+ IterType1 fileI(std::cin, "stdin", input.Chrome());
+ refFile = new BedReaderType1(fileI);
+ } else {
+ if ( !refFilePtr || !(*refFilePtr) )
+ throw(UE("Unable to find file: " + input.GetReferenceFileName()));
+ IterType1 fileI(*refFilePtr, input.GetReferenceFileName(), input.Chrome());
+ refFile = new BedReaderType1(fileI);
+ }
+
+ isStdin = (input.GetNonReferenceFileName() == "-");
+ nonRefFilePtr = new std::ifstream(input.GetNonReferenceFileName().c_str());
+ if ( isStdin ) {
+ IterType2 fileJ(std::cin, input.GetNonReferenceFileName(), input.Chrome());
+ nonRefFile = new BedReaderType2(fileJ);
+ } else {
+ if ( !nonRefFilePtr || !(*nonRefFilePtr) )
+ throw(UE("Unable to find file: " + input.GetNonReferenceFileName()));
+ IterType2 fileJ(*nonRefFilePtr, input.GetNonReferenceFileName(), input.Chrome());
+ nonRefFile = new BedReaderType2(fileJ);
+ }
+
+ runDistances(*refFile, *nonRefFile, input);
+
+ if ( refFile ) {
+ refFile->CleanAll(); // read file all the way through for error-checking
+ delete refFile;
+ }
+ if ( nonRefFile ) {
+ nonRefFile->CleanAll(); // read file all the way through for error-checking
+ delete nonRefFile;
+ }
+ if ( refFilePtr )
+ delete refFilePtr;
+ if ( nonRefFilePtr )
+ delete nonRefFilePtr;
+
+ } else { // fast-mode
+ typedef Ext::FPWrap<Ext::InvalidFile> FPType;
+ typedef Bed::allocate_iterator_starch_bed<BedType1*> IterType1;
+ typedef Bed::allocate_iterator_starch_bed<BedType2*> IterType2;
+ typedef BedReader<IterType1> BedReaderType1;
+ typedef BedReader<IterType2> BedReaderType2;
+
+ FPType* refFilePtr = static_cast<FPType*>(0);
+ FPType* nonRefFilePtr = static_cast<FPType*>(0);
+ BedReaderType1* refFile = static_cast<BedReaderType1*>(0);
+ BedReaderType2* nonRefFile = static_cast<BedReaderType2*>(0);
+
+ refFilePtr = new FPType(input.GetReferenceFileName());
+ refFile = new BedReaderType1(IterType1(*refFilePtr, input.Chrome()));
+
+ nonRefFilePtr = new FPType(input.GetNonReferenceFileName());
+ nonRefFile = new BedReaderType2(IterType2(*nonRefFilePtr, input.Chrome()));
+
+ runDistances(*refFile, *nonRefFile, input);
+
+ if ( refFile )
+ delete refFile;
+ if ( nonRefFile )
+ delete nonRefFile;
+ if ( refFilePtr )
+ delete refFilePtr;
+ if ( nonRefFilePtr )
+ delete nonRefFilePtr;
+ }
+ }
+};
+
+//==========
+// doWork()
+//==========
+void doWork(const Input& input) {
+ typedef Bed::B3Rest BedType1;
+ typedef Bed::B3Rest BedType2;
+ createWork<BedType1, BedType2>::run(input);
+}
+
+//=========================
+// proportionOverlapLeft()
+//=========================
+template <typename BedType>
+double proportionOverlapLeft(BedType* const p, double marker) {
+ if ( marker < p->start() )
+ return(0.);
+ return((marker + 1 - p->start()) / (p->end() - p->start()));
+}
+
+//===============
+// getCentroid()
+//===============
+template <typename BedType>
+inline double getCentroid(BedType* const b) {
+ return((b->end() - 1.0 + b->start())/2.0);
+}
+
+//===============
+// getDistance()
+//===============
+template <typename BedType1, typename BedType2>
+inline Bed::SignedCoordType getDistance(BedType1 const* b1, BedType2 const* b2) {
+ int val = 0;
+ if ( 0 != (val = std::strcmp(b1->chrom(), b2->chrom())) )
+ return(val < 0 ? minus_infinite : plus_infinite);
+ else if ( b1->end() <= b2->start() )
+ return(-1 * static_cast<Bed::SignedCoordType>(b2->start() - b1->end() + 1));
+ else if ( b2->end() <= b1->start() )
+ return(static_cast<Bed::SignedCoordType>(b1->start() - b2->end() + 1));
+ else
+ return(0); // overlap
+}
+
+//=================
+// findDistances()
+//=================
+template <typename BedFile1, typename BedFile2, typename Printer>
+void findDistances(BedFile1& ref, BedFile2& nonRef, bool allowOverlaps, const Printer& printer) {
+
+ typedef typename BedFile1::BedType BedType1;
+ typedef typename BedFile2::BedType BedType2;
+ BedType2* const zero = static_cast<BedType2*>(0);
+ BedType1* b = static_cast<BedType1*>(0);
+ BedType2* c = zero;
+ BedType2* left = zero;
+ BedType2* right = zero;
+
+ double proportion = 0;
+ Bed::SignedCoordType leftDist = minus_infinite, rightDist = plus_infinite;
+ Bed::SignedCoordType dist = plus_infinite;
+ bool leftCached = false;
+ std::list<BedType2*> read;
+
+ while ( (b = ref.ReadLine()) ) {
+ leftDist = minus_infinite;
+ rightDist = plus_infinite;
+ left = zero;
+ right = zero;
+ leftCached = false;
+
+ while ( (c = nonRef.ReadLine()) ) {
+ dist = getDistance(c, b);
+ if ( dist == minus_infinite ) { // different chromosomes; catch nonref up
+ delete c;
+ continue;
+ } else if ( dist == plus_infinite ) { // different chromosomes; catch ref up
+ if ( left && !leftCached )
+ read.push_back(left);
+ leftCached = static_cast<bool>(left);
+ if ( right )
+ read.push_back(right);
+ read.push_back(c);
+ break; // read next line from ref
+ }
+
+ // Deal with left and right closest elements
+ if ( dist < 0 && dist >= leftDist ) {
+ while ( !read.empty() ) { // new best left makes all others obsolete
+ delete read.front();
+ read.pop_front();
+ } // while
+ if ( left && !leftCached )
+ delete left; // never closest left element again
+ leftDist = dist;
+ left = c;
+ leftCached = false;
+ } else if ( dist < 0 ) { // happens if previous element starts sooner and stops later
+ if ( !leftCached ) // must keep things in sort order; left is not zero if here
+ read.push_back(left);
+ delete c;
+ leftCached = true;
+ } else if ( dist > 0 && dist < rightDist ) {
+ // right must be zero (overlap sets rightDist to 0); done processing left
+ if ( left && !leftCached )
+ read.push_back(left);
+ leftCached = static_cast<bool>(left);
+ rightDist = dist;
+ right = c;
+ read.push_back(c);
+ break;
+ } else if ( dist > 0 ) { // read one too many
+ if ( left && !leftCached )
+ read.push_back(left);
+ leftCached = static_cast<bool>(left);
+ if ( right )
+ read.push_back(right);
+ read.push_back(c);
+ break;
+ } else if ( 0 == dist && allowOverlaps ) { // overlap
+ // Is new element "more closely left" or "more closely right"?
+ // Remember start coordinates only increase or stay the same.
+ if ( c->start() <= b->start() ) { // hanging over left edge of ref
+ if ( left && left->end() <= c->end() && !leftCached )
+ delete left; // never closest left element again
+ else if ( left && !leftCached ) // current left has end coordinate greater than c
+ read.push_back(left);
+ left = c;
+ leftDist = 0;
+ leftCached = false;
+ } else if ( b->end() <= c->end() ) { // anything hanging over right edge of ref gets assigned to right
+ if ( left && !leftCached ) // done with left
+ read.push_back(left);
+ leftCached = static_cast<bool>(left);
+ if ( right )
+ read.push_back(right);
+ right = c;
+ rightDist = 0;
+ } else { // completely contained within reference element
+ proportion = proportionOverlapLeft(c, getCentroid(b));
+ if ( 0 == leftDist ) { // left already assigned to an overlapping (more left) element
+ if ( proportion < 0.5 ) { // more close to right side of reference element
+ if ( !leftCached ) // leftDist == 0 -> left cannot be zero
+ read.push_back(left);
+ leftCached = true;
+ if ( right )
+ read.push_back(right);
+ right = c;
+ rightDist = 0;
+ } else { // more close to left side of reference element
+ // current left element remains our left element
+ if ( !leftCached ) // must keep proper order
+ read.push_back(left);
+ leftCached = true;
+ read.push_back(c); // may be needed in the future
+ }
+ } else if ( proportion >= 0.5 ) { // new left element
+ while ( !read.empty() ) { // new best left makes all others obsolete
+ delete read.front();
+ read.pop_front();
+ } // while
+ if ( left && !leftCached ) // non-overlapping, current left element
+ delete left; // never closest left element again
+ leftCached = false;
+ left = c;
+ leftDist = 0;
+ } else { // new more-right element
+ if ( left && !leftCached )
+ read.push_back(left);
+ leftCached = static_cast<bool>(left);
+ if ( right )
+ read.push_back(right);
+ right = c;
+ rightDist = 0;
+ }
+ }
+ } else if ( 0 == dist ) { // overlap but allowOverlaps == false
+ // elements overlap but we won't use those as left or right
+ // need to cache them for future reference elements, however,
+ // left element is what it is now. right is still to come.
+ if ( left && !leftCached ) {
+ read.push_back(left);
+ leftCached = true;
+ }
+ read.push_back(c);
+ } else {
+ throw(Ext::ProgramError("Logical program error"));
+ }
+ } // while more in nonRef
+
+ if ( !c && left && !leftCached )
+ read.push_back(left);
+ if ( !c && right )
+ read.push_back(right);
+ nonRef.PushBack(read);
+ read.clear();
+
+ printer(b, left, right);
+ delete b;
+ } // while more in ref
+}
+
+} // namespace FeatDist
diff --git a/applications/bed/closestfeats/src/Input.hpp b/applications/bed/closestfeats/src/Input.hpp
new file mode 100644
index 0000000..c3581d0
--- /dev/null
+++ b/applications/bed/closestfeats/src/Input.hpp
@@ -0,0 +1,180 @@
+/*
+ Author: Scott Kuehn, Shane Neph
+ Date: Fri Oct 19 08:20:50 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef _FEATDIST_INPUT_HPP
+#define _FEATDIST_INPUT_HPP
+
+#include "utility/Assertion.hpp"
+#include "utility/Exception.hpp"
+
+#include <set>
+#include <string>
+
+namespace FeatDist {
+
+ struct NoInput { /* */ };
+
+ struct HelpException { /* */ };
+
+ struct VersionException { /* */ };
+
+ //========
+ // Input:
+ //========
+ struct Input {
+ // Constructor
+ Input(int argc, char **argv)
+ : ec_(false), shortestOnly_(false), distances_(false), suppressRef_(false),
+ overlaps_(true), delim_("|"), refFile_(""), nonRefFile_(""), chr_("all") {
+
+ typedef Ext::UserError UE;
+ if ( 1 == argc )
+ throw(NoInput());
+ int argcntr = 1;
+ bool outoption = false; // may choose up to one type of non-default output option
+
+ // [Process-Flags]
+ std::string next = "";
+ while ( argcntr < argc ) {
+ next = argv[argcntr];
+ if ( next == "--help" )
+ throw(HelpException());
+ else if ( next == "--version" )
+ throw(VersionException());
+ else if ( next == "--ec" || next == "--header" )
+ ec_ = true;
+ else if ( next == "--no-overlaps" )
+ overlaps_ = false;
+ else if ( next == "--delim" ) {
+ Ext::Assert<UE>(++argcntr < argc, "No value given for --delim.");
+ delim_ = argv[argcntr];
+ }
+ else if ( next == "--chrom" ) {
+ Ext::Assert<UE>(++argcntr < argc, "No value given for --chrome.");
+ chr_ = argv[argcntr];
+ }
+ else if ( next == "--closest" ) {
+ Ext::Assert<UE>(!outoption, "Multiple output options not allowed.");
+ shortestOnly_ = true;
+ outoption = true;
+ }
+ else if ( next == "--dist" )
+ distances_ = true;
+ else if ( next == "--no-ref" )
+ suppressRef_ = true;
+ else if ( next == "--help" )
+ throw(HelpException());
+ else if ( next == "--shortest" ) { // silently supported for bckwd compatibility
+ Ext::Assert<UE>(!outoption, "Multiple output options not allowed.");
+ shortestOnly_ = true;
+ outoption = true;
+ } else { // the rest are two input files?
+ Ext::Assert<UE>(argcntr + 2 == argc, "Unknown option: " + next + ".");
+ break;
+ }
+ ++argcntr;
+ } // while
+
+ Ext::Assert<UE>(argcntr + 2 == argc, "Not enough input files given.");
+ refFile_ = argv[argcntr++];
+ nonRefFile_ = argv[argcntr];
+ Ext::Assert<UE>(refFile_.find("--") != 0, "Option given where file expected: " + refFile_ + ".");
+ Ext::Assert<UE>(nonRefFile_.find("--") != 0, "Option given where file expected: " + nonRefFile_ + ".");
+ }
+
+ bool AllowOverlaps() const
+ { return(overlaps_); }
+
+ std::string Chrome() const
+ { return(chr_); }
+
+ std::string Delimiter() const
+ { return(delim_); }
+
+ bool ErrorCheck() const
+ { return(ec_); }
+
+ std::string GetNonReferenceFileName() const
+ { return(nonRefFile_); }
+
+ std::string GetReferenceFileName() const
+ { return(refFile_); }
+
+ bool PrintDistances() const
+ { return(distances_); }
+
+ bool ShortestOnly() const
+ { return(shortestOnly_); }
+
+ bool SuppressReference() const
+ { return(suppressRef_); }
+
+ private:
+ bool ec_;
+ bool shortestOnly_;
+ bool distances_, suppressRef_, overlaps_;
+ std::string delim_;
+ std::string refFile_, nonRefFile_;
+ std::string chr_;
+ };
+
+
+ //---------
+ // Usage()
+ std::string Usage() {
+ std::string msg = "\nUSAGE: closest-features [Process-Flags] <input-file> <query-file>\n";
+ msg += " All input files must be sorted per sort-bed.\n";
+ msg += " The program accepts BED and Starch file formats\n";
+ msg += " May use '-' for a file to indicate reading from standard input (BED format only).\n";
+ msg += "\n";
+ msg += " For every element in <input-file>, determine the two elements from <query-file> falling\n";
+ msg += " nearest to its left and right edges (See NOTES below). By default, echo the <input-file>\n";
+ msg += " element, followed by those left and right elements found in <query-file>.\n";
+ msg += "\n";
+ msg += " Process Flags:\n";
+ msg += " --chrom <chromosome> Jump to and process data for given <chromosome> only.\n";
+ msg += " --closest Choose the closest element for output only. Ties go the left element.\n";
+ msg += " --delim <delim> Change output delimiter from '|' to <delim> between columns (e.g. \'\\t\')\n";
+ msg += " --dist Print the signed distances to the <input-file> element as additional\n";
+ msg += " columns of output. An overlapping element has a distance of 0.\n";
+ msg += " --ec Error check all input files (slower).\n";
+ msg += " --header Accept headers (VCF, GFF, SAM, BED, WIG) in any input file.\n";
+ msg += " --help Print this message and exit successfully.\n";
+ msg += " --no-overlaps Overlapping elements from <query-file> will not be reported.\n";
+ msg += " --no-ref Do not echo elements from <input-file>.\n";
+ msg += " --version Print program information.\n";
+ msg += "\n";
+ msg += " NOTES:\n";
+ msg += " If an element from <query-file> overlaps the <input-file> element, its distance is zero.\n";
+ msg += " An overlapping element takes precedence over all non-overlapping elements. This is true\n";
+ msg += " even when the overlapping element\'s edge-to-edge distance to the <input-file>\'s element\n";
+ msg += " is greater than the edge-to-edge distance from a non-overlapping element.\n";
+ msg += " Overlapping elements may be ignored completely (no precedence) with --no-overlaps.\n";
+ msg += " Elements reported as closest to the left and right edges are never the same.\n";
+ msg += " When no qualifying element from <query-file> exists as a closest feature, 'NA' is reported.\n";
+ return(msg);
+ }
+
+} // namespace FeatDist
+
+#endif // _FEATDIST_INPUT_HPP
diff --git a/applications/bed/closestfeats/src/Makefile b/applications/bed/closestfeats/src/Makefile
new file mode 100755
index 0000000..4811138
--- /dev/null
+++ b/applications/bed/closestfeats/src/Makefile
@@ -0,0 +1,65 @@
+MAIN = ../../../..
+HEAD = $(MAIN)/interfaces/general-headers
+LIB1 = $(MAIN)/interfaces/src/data/measurement
+LIB2 = $(MAIN)/interfaces/src/utility
+LIB3 = $(MAIN)/interfaces/src/data/starch
+THISDIR = ${shell pwd}
+PARTY3 = ${THISDIR}/$(MAIN)/third-party
+LIBJANSSON = libjansson.a
+LIBBZIP2 = libbz2.a
+LIBZLIB = libz.a
+LOCALJANSSONDIR = ${PARTY3}/jansson
+LOCALJANSSONLIBDIR = ${LOCALJANSSONDIR}/lib
+LOCALJANSSONINCDIR = ${LOCALJANSSONDIR}/include
+LOCALJANSSONLIB = ${LOCALJANSSONLIBDIR}/${LIBJANSSON}
+LOCALBZIP2DIR = ${PARTY3}/bzip2
+LOCALBZIP2LIBDIR = ${LOCALBZIP2DIR}
+LOCALBZIP2LIB = ${LOCALBZIP2LIBDIR}/${LIBBZIP2}
+LOCALBZIP2INCDIR = ${LOCALBZIP2DIR}
+LOCALZLIBDIR = ${PARTY3}/zlib
+LOCALZLIBLIB = ${LOCALZLIBDIR}/${LIBZLIB}
+LOCALZLIBINCDIR = ${LOCALZLIBDIR}
+OBJDIR = objects
+INCLUDES = -iquote$(HEAD) -I${LOCALJANSSONINCDIR} -I${LOCALBZIP2INCDIR} -I${LOCALZLIBINCDIR}
+LIBLOCATION = -L${LOCALJANSSONLIBDIR} -L${LOCALBZIP2LIBDIR} -L${LOCALZLIBDIR}
+LIBRARIES = ${LOCALJANSSONLIB} ${LOCALBZIP2LIB} ${LOCALZLIBLIB}
+BLDFLAGS = -Wall -pedantic -O3 -std=c++11
+SFLAGS = -static
+
+dependency_names = NaN starchConstants starchFileHelpers starchHelpers starchMetadataHelpers unstarchHelpers starchSha1Digest starchBase64Coding
+dependencies = $(addprefix $(OBJDIR)/, $(addsuffix .o, $(dependency_names)))
+FLAGS = $(SFLAGS) -s $(BLDFLAGS) $(dependencies) ${LIBLOCATION} ${INCLUDES}
+DFLAGS = $(SFLAGS) -g -O0 -std=c++11 -Wall -fno-inline -pedantic $(dependencies) ${LIBLOCATION} ${INCLUDES}
+GPROFFLAGS = $(SFLAGS) -O -std=c++11 -Wall -pedantic -pg $(dependencies) ${LIBLOCATION} ${INCLUDES}
+SOURCE1 = ClosestFeature.cpp
+BINDIR = ../bin
+PROG = closest-features
+
+build: $(BINDIR)/$(PROG)
+
+build_gprof: $(BINDIR)/gprof.$(PROG)
+
+build_debug: $(BINDIR)/debug.$(PROG)
+
+dependencies: $(dependencies)
+
+$(BINDIR)/$(PROG) : $(dependencies)
+ mkdir -p $(BINDIR) && $(CXX) -o $@ $(FLAGS) ${LIBRARIES} $(SOURCE1)
+
+$(BINDIR)/gprof.$(PROG) : $(dependencies)
+ mkdir -p $(BINDIR) && $(CXX) -o $@ $(GPROFFLAGS) ${LIBRARIES} $(SOURCE1)
+
+$(BINDIR)/debug.$(PROG) : $(dependencies)
+ mkdir -p $(BINDIR) && $(CXX) -o $@ $(DFLAGS) ${LIBRARIES} $(SOURCE1)
+
+$(OBJDIR)/%.o : $(LIB1)/%.cpp
+ mkdir -p $(OBJDIR) && $(CXX) -c $(BLDFLAGS) $^ -o $@ ${INCLUDES}
+
+$(OBJDIR)/%.o : $(LIB3)/%.c
+ mkdir -p $(OBJDIR) && $(CXX) -c ${BLDFLAGS} $^ -o $@ ${INCLUDES}
+
+clean:
+ rm -f $(BINDIR)/$(PROG)
+ rm -f $(BINDIR)/*.$(PROG)
+ rm -rf $(OBJDIR)
+ rm -rf $(BINDIR)
diff --git a/applications/bed/closestfeats/src/Makefile.darwin b/applications/bed/closestfeats/src/Makefile.darwin
new file mode 100755
index 0000000..324dd19
--- /dev/null
+++ b/applications/bed/closestfeats/src/Makefile.darwin
@@ -0,0 +1,68 @@
+MIN_OSX_VERSION = 10.7
+
+MAIN = ../../../..
+MAINAPPDIR = ../..
+HEAD = $(MAIN)/interfaces/general-headers
+LIB1 = $(MAIN)/interfaces/src/data/measurement
+LIB2 = $(MAIN)/interfaces/src/utility
+LIB3 = $(MAIN)/interfaces/src/data/starch
+THISDIR = ${shell pwd}
+PARTY3 = ${THISDIR}/$(MAIN)/third-party
+OBJDIR = objects_$(ARCH)
+LIBJANSSON = libjansson.a
+LIBBZIP2 = libbz2.a
+LIBZLIB = libz.a
+LOCALJANSSONDIR = ${PARTY3}/darwin_intel_${ARCH}/jansson
+LOCALJANSSONLIBDIR = ${LOCALJANSSONDIR}/lib
+LOCALJANSSONINCDIR = ${LOCALJANSSONDIR}/include
+LOCALJANSSONLIB = ${LOCALJANSSONLIBDIR}/${LIBJANSSON}
+LOCALBZIP2DIR = ${PARTY3}/darwin_intel_${ARCH}/bzip2
+LOCALBZIP2LIBDIR = ${LOCALBZIP2DIR}
+LOCALBZIP2LIB = ${LOCALBZIP2LIBDIR}/${LIBBZIP2}
+LOCALBZIP2INCDIR = ${LOCALBZIP2DIR}
+LOCALZLIBDIR = ${PARTY3}/darwin_intel_${ARCH}/zlib
+LOCALZLIBLIBDIR = ${LOCALZLIBDIR}
+LOCALZLIBLIB = ${LOCALZLIBLIBDIR}/${LIBZLIB}
+LOCALZLIBINCDIR = ${LOCALZLIBDIR}
+INCLUDES = -iquote$(HEAD) -I${LOCALJANSSONINCDIR} -I${LOCALBZIP2INCDIR} -I${LOCALZLIBINCDIR}
+LIBLOCATION = -L${LOCALJANSSONLIBDIR} -L${LOCALBZIP2LIBDIR} -L${LOCALZLIBDIR}
+LIBRARIES = ${LOCALJANSSONLIB} ${LOCALBZIP2LIB} ${LOCALZLIBLIB}
+STDFLAGS = -Wall -pedantic -std=c++11 -stdlib=libc++
+BLDFLAGS = -O3 ${STDFLAGS}
+
+FLAGS = $(BLDFLAGS) $(OBJDIR)/NaN.o $(OBJDIR)/starchConstants.o $(OBJDIR)/starchFileHelpers.o $(OBJDIR)/starchHelpers.o $(OBJDIR)/starchMetadataHelpers.o $(OBJDIR)/unstarchHelpers.o $(OBJDIR)/starchSha1Digest.o $(OBJDIR)/starchBase64Coding.o ${LIBLOCATION} ${INCLUDES}
+
+DFLAGS = -g -O0 ${STDFLAGS} $(OBJDIR)/NaN.o $(OBJDIR)/starchConstants.o $(OBJDIR)/starchFileHelpers.o $(OBJDIR)/starchHelpers.o $(OBJDIR)/starchMetadataHelpers.o $(OBJDIR)/unstarchHelpers.o $(OBJDIR)/starchSha1Digest.o $(OBJDIR)/starchBase64Coding.o ${LIBLOCATION} ${INCLUDES}
+
+GPROFFLAGS = -O -pg ${STDFLAGS} $(OBJDIR)/NaN.o $(OBJDIR)/starchConstants.o $(OBJDIR)/starchFileHelpers.o $(OBJDIR)/starchHelpers.o $(OBJDIR)/starchMetadataHelpers.o $(OBJDIR)/unstarchHelpers.o $(OBJDIR)/starchSha1Digest.o $(OBJDIR)/starchBase64Coding.o ${LIBLOCATION} ${INCLUDES}
+
+SOURCE1 = ClosestFeature.cpp
+BINDIR = ../bin
+PROG = closest-features
+
+build: dependencies
+ $(CXX) -o $(BINDIR)/$(PROG)_$(ARCH) $(FLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) ${LIBRARIES} $(SOURCE1)
+
+build_debug: dependencies
+ $(CXX) -o $(BINDIR)/debug.$(PROG)_$(ARCH) $(DFLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) ${LIBRARIES} $(SOURCE1)
+
+build_gprof: dependencies
+ $(CXX) -o $(BINDIR)/gprof.$(PROG)_$(ARCH) $(FLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) ${LIBRARIES} $(SOURCE1)
+
+dependencies:
+ rm -rf $(OBJDIR)
+ mkdir -p $(OBJDIR)
+ $(CXX) -c $(BLDFLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) $(LIB1)/NaN.cpp -o $(OBJDIR)/NaN.o ${INCLUDES}
+ $(CXX) -x c++ -c $(BLDFLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) $(LIB3)/starchConstants.c -o $(OBJDIR)/starchConstants.o ${INCLUDES}
+ $(CXX) -x c++ -c $(BLDFLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) $(LIB3)/starchFileHelpers.c -o $(OBJDIR)/starchFileHelpers.o ${INCLUDES}
+ $(CXX) -x c++ -c $(BLDFLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) $(LIB3)/starchHelpers.c -o $(OBJDIR)/starchHelpers.o ${INCLUDES}
+ $(CXX) -x c++ -c $(BLDFLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) $(LIB3)/starchMetadataHelpers.c -o $(OBJDIR)/starchMetadataHelpers.o ${INCLUDES}
+ $(CXX) -x c++ -c $(BLDFLAGS) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) $(LIB3)/unstarchHelpers.c -o $(OBJDIR)/unstarchHelpers.o ${INCLUDES}
+ ${CXX} -x c++ -c ${BLDFLAGS} -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) ${LIB3}/starchSha1Digest.c -o ${OBJDIR}/starchSha1Digest.o ${INCLUDES}
+ ${CXX} -x c++ -c ${BLDFLAGS} -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) ${LIB3}/starchBase64Coding.c -o ${OBJDIR}/starchBase64Coding.o ${INCLUDES}
+
+clean:
+ rm -rf $(OBJDIR)
+ rm -rf $(BINDIR)/$(PROG)*
+ rm -rf $(BINDIR)/*.$(PROG)*
+ rm -rf ${BINDIR}
diff --git a/applications/bed/closestfeats/src/Printers.hpp b/applications/bed/closestfeats/src/Printers.hpp
new file mode 100644
index 0000000..0153e55
--- /dev/null
+++ b/applications/bed/closestfeats/src/Printers.hpp
@@ -0,0 +1,209 @@
+/*
+// Author: Shane Neph & Scott Kuehn
+// Date: Fri Aug 13 15:00:25 PDT 2010
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef _FEATDIST_PRINTERTYPES_H
+#define _FEATDIST_PRINTERTYPES_H
+
+#include <limits>
+
+#include "algorithm/visitors/helpers/ProcessVisitorRow.hpp"
+#include "suite/BEDOPS.Constants.hpp"
+#include "utility/PrintTypes.hpp"
+#include "utility/Typify.hpp"
+
+namespace FeatDist {
+ extern const char* none;
+ extern const Bed::SignedCoordType plus_infinite;
+ extern const Bed::SignedCoordType minus_infinite;
+
+ template <typename BedType1, typename BedType2>
+ inline Bed::SignedCoordType getDistance(BedType1 const*, BedType2 const*);
+
+
+ //==========
+ // PrintAll
+ //==========
+ struct PrintAll : private Visitors::Helpers::PrintDelim {
+ typedef Visitors::Helpers::PrintDelim Base;
+
+ explicit PrintAll(const std::string& delim = "|", bool printDistances = false,
+ bool suppressRefField = false)
+ : Base(delim), printDist_(printDistances), suppressRefField_(suppressRefField)
+ { /* */ }
+
+ template <typename BedType1, typename BedType2>
+ void operator()(BedType1* const ref, BedType2* const left, BedType2* const right) const {
+ if ( !suppressRefField_ ) {
+ PrintTypes::Print(*ref);
+ Base::operator()();
+ }
+
+ if ( left ) {
+ PrintTypes::Print(*left);
+ if ( printDist_ ) {
+ Base::operator()();
+ PrintTypes::Print(getDistance(left, ref));
+ }
+ } else {
+ PrintTypes::Print(none);
+ if ( printDist_ ) {
+ Base::operator()();
+ PrintTypes::Print(none);
+ }
+ }
+
+ Base::operator()();
+ if ( right ) {
+ if ( printDist_ ) {
+ PrintTypes::Print(*right);
+ Base::operator()();
+ PrintTypes::Println(getDistance(right, ref));
+ }
+ else
+ PrintTypes::Println(*right);
+ } else {
+ if ( printDist_ ) {
+ PrintTypes::Print(none);
+ Base::operator()();
+ PrintTypes::Println(none);
+ }
+ else
+ PrintTypes::Println(none);
+ }
+ }
+
+ protected:
+ bool printDist_;
+ bool suppressRefField_;
+ };
+
+
+ //===============
+ // PrintShortest
+ //===============
+ struct PrintShortest : private Visitors::Helpers::PrintDelim {
+ typedef Visitors::Helpers::PrintDelim Base;
+
+ explicit PrintShortest(const std::string& delim = "|", bool printDistances = false,
+ bool suppressRefField = false)
+ : Base(delim), printDist_(printDistances), suppressRefField_(suppressRefField)
+ { /* */ }
+
+ template <typename BedType1, typename BedType2>
+ void operator()(BedType1* const ref, BedType2* const left, BedType2* const right) const {
+ Bed::SignedCoordType dist1 = std::numeric_limits<Bed::SignedCoordType>::max();
+ Bed::SignedCoordType dist2 = dist1;
+ if ( !suppressRefField_ ) {
+ PrintTypes::Print(*ref);
+ Base::operator()();
+ }
+ if ( !left && !right ) {
+ if ( printDist_ ) {
+ PrintTypes::Print(none);
+ Base::operator()();
+ PrintTypes::Println(none);
+ } else {
+ PrintTypes::Println(none);
+ }
+ return;
+ }
+
+ if ( left ) {
+ if ( left->end() <= ref->start() ) { // <= not < : matches getDistance()
+ dist1 = static_cast<Bed::SignedCoordType>(ref->start() - left->end() + 1);
+ if ( !right ) {
+ if ( printDist_ ) {
+ PrintTypes::Print(*left);
+ Base::operator()();
+ PrintTypes::Println(getDistance(left, ref));
+ }
+ else {
+ PrintTypes::Println(*left);
+ }
+ return;
+ }
+ } else { // must overlap or be adjacent by def'n of "left"
+ if ( printDist_ ) {
+ PrintTypes::Print(*left);
+ Base::operator()();
+ PrintTypes::Println(0);
+ }
+ else
+ PrintTypes::Println(*left);
+ return;
+ }
+ }
+
+ if ( right ) {
+ if ( !left ) {
+ if ( printDist_ ) {
+ PrintTypes::Print(*right);
+ Base::operator()();
+ PrintTypes::Println(getDistance(right, ref));
+ }
+ else
+ PrintTypes::Println(*right);
+ return;
+ }
+
+ if ( ref->end() <= right->start() ) // <= not < : matches getDistance()
+ dist2 = static_cast<Bed::SignedCoordType>(right->start() - ref->end() + 1);
+ else { // must overlap or be adjacent by def'n of "right"
+ if ( printDist_ ) {
+ PrintTypes::Print(*right);
+ Base::operator()();
+ PrintTypes::Println(0);
+ }
+ else
+ PrintTypes::Println(*right);
+ return;
+ }
+ }
+
+ if ( dist1 <= dist2 ) {
+ if ( printDist_ ) {
+ PrintTypes::Print(*left);
+ Base::operator()();
+ PrintTypes::Println(getDistance(left, ref));
+ }
+ else
+ PrintTypes::Println(*left);
+ } else {
+ if ( printDist_ ) {
+ PrintTypes::Print(*right);
+ Base::operator()();
+ PrintTypes::Println(getDistance(right, ref));
+ }
+ else
+ PrintTypes::Println(*right);
+ }
+ }
+
+ protected:
+ bool printDist_;
+ bool suppressRefField_;
+ };
+
+} // namespace FeatDist
+
+#endif // _FEATDIST_PRINTERTYPES_H
diff --git a/applications/bed/conversion/src/Makefile b/applications/bed/conversion/src/Makefile
new file mode 100644
index 0000000..eb22afa
--- /dev/null
+++ b/applications/bed/conversion/src/Makefile
@@ -0,0 +1,39 @@
+BLDFLAGS = -Wall -Wextra -pedantic -std=c99
+COMMONFLAGS = -D__STDC_CONSTANT_MACROS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE=1
+CFLAGS = -O3
+CDFLAGS = -DDEBUG=1 -g -O0 -fno-inline
+CPFLAGS = -pg
+LIBS = -lpthread
+INCLUDES := -iquote"${CURDIR}"
+DISTDIR = ../bin
+OBJDIR = objects
+WRAPPERDIR = wrappers
+PROG = convert2bed
+SOURCE = convert2bed.c
+SFLAGS = -static
+
+all: build
+
+.PHONY: build build_debug build_gprof clean
+
+build: $(DISTDIR)/$(PROG)
+build_debug: $(DISTDIR)/debug.$(PROG)
+build_gprof: $(DISTDIR)/gprof.$(PROG)
+
+$(DISTDIR)/$(PROG): $(PROG).c
+ mkdir -p $(DISTDIR) && $(CC) $(BLDFLAGS) $(COMMONFLAGS) $(CFLAGS) $(SFLAGS) $(INCLUDES) $^ -o $@ $(LIBS)
+
+$(DISTDIR)/debug.$(PROG): $(PROG).c
+ mkdir -p $(DISTDIR) && $(CC) $(BLDFLAGS) $(COMMONFLAGS) $(CDFLAGS) $(SFLAGS) $(INCLUDES) $^ -o $@ $(LIBS)
+
+$(DISTDIR)/gprof.$(PROG): $(PROG).c gprof-helper.so
+ mkdir -p $(DISTDIR) && $(CC) $(BLDFLAGS) $(COMMONFLAGS) $(CPFLAGS) $(SFLAGS) $(INCLUDES) $< -o $@ $(LIBS)
+ @echo -e "\nNote: To profile convert2bed with gprof/pthreads, run:\n\t$$ LD_PRELOAD=/path/to/gprof-helper.so convert2bed"
+
+%.so: %.c
+ $(CC) -shared -fPIC $^ -o $@ $(LIBS) -ldl
+
+clean:
+ rm -rf $(DISTDIR)
+ rm -rf $(OBJDIR)
+ rm -rf *.so *~
diff --git a/applications/bed/conversion/src/Makefile.darwin b/applications/bed/conversion/src/Makefile.darwin
new file mode 100644
index 0000000..4fee388
--- /dev/null
+++ b/applications/bed/conversion/src/Makefile.darwin
@@ -0,0 +1,40 @@
+MIN_OSX_VERSION = 10.7
+BLDFLAGS = -Wall -Wextra -pedantic -std=c99
+COMMONFLAGS = -D__STDC_CONSTANT_MACROS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE=1
+CFLAGS = -O3
+CDFLAGS = -DDEBUG=1 -g -O0 -fno-inline
+CPFLAGS = -pg
+LIBS = -lpthread
+INCLUDES := -iquote"${CURDIR}"
+DISTDIR = ../bin
+OBJDIR = objects
+WRAPPERDIR = wrappers
+PROG = convert2bed
+SOURCE = convert2bed.c
+
+all: setup build
+
+.PHONY: setup build build_debug build_gprof clean
+
+setup:
+ mkdir -p $(DISTDIR)
+ mkdir -p $(OBJDIR)
+
+build: setup
+ $(CC) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) $(BLDFLAGS) $(COMMONFLAGS) $(CFLAGS) -c $(SOURCE) -o $(OBJDIR)/$(PROG).o $(INCLUDES)
+ $(CC) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) $(BLDFLAGS) $(COMMONFLAGS) $(CFLAGS) $(OBJDIR)/$(PROG).o -o $(DISTDIR)/$(PROG)_$(ARCH) $(LIBS)
+
+build_debug: setup
+ $(CC) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) $(BLDFLAGS) $(COMMONFLAGS) $(CDFLAGS) -c $(SOURCE) -o $(OBJDIR)/$(PROG).o $(INCLUDES)
+ $(CC) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) $(BLDFLAGS) $(COMMONFLAGS) $(CDFLAGS) $(OBJDIR)/$(PROG).o -o $(DISTDIR)/debug.$(PROG)_$(ARCH) $(LIBS)
+
+build_gprof: setup
+ $(CC) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) -shared -fPIC gprof-helper.c -o gprof-helper.so $(LIBS) -ldl
+ $(CC) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) $(BLDFLAGS) $(COMMONFLAGS) $(CPFLAGS) -c $(SOURCE) -o $(OBJDIR)/$(PROG).o $(INCLUDES)
+ $(CC) -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) $(BLDFLAGS) $(COMMONFLAGS) $(CPFLAGS) $(OBJDIR)/$(PROG).o -o $(DISTDIR)/$(PROG)_$(ARCH) $(LIBS)
+ @echo "\nNote: To profile convert2bed with gprof/pthreads, run:\n\t$$ LD_PRELOAD=/path/to/gprof-helper.so convert2bed"
+
+clean:
+ rm -rf $(OBJDIR)
+ rm -rf $(DISTDIR)
+ rm -rf *.so *~
diff --git a/applications/bed/conversion/src/convert2bed.c b/applications/bed/conversion/src/convert2bed.c
new file mode 100644
index 0000000..8f11b51
--- /dev/null
+++ b/applications/bed/conversion/src/convert2bed.c
@@ -0,0 +1,5456 @@
+/*
+ convert2bed.c
+ -----------------------------------------------------------------------
+ Copyright (C) 2014-2016 Alex Reynolds
+
+ wig2bed components, (C) 2011-2016 Scott Kuehn and Shane Neph
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+#include "convert2bed.h"
+
+int
+main(int argc, char **argv)
+{
+#ifdef DEBUG
+ fprintf (stderr, "--- convert2bed main() - enter ---\n");
+#endif
+
+ struct stat stats;
+ int stats_res;
+ c2b_pipeset_t pipes;
+
+ /* setup */
+ c2b_init_globals();
+ c2b_init_command_line_options(argc, argv);
+ /* check that stdin is available */
+ if ((stats_res = fstat(STDIN_FILENO, &stats)) == -1) {
+ int errsv = errno;
+ fprintf(stderr, "Error: fstat() call failed (%s)", (errsv == EBADF ? "EBADF" : (errsv == EIO ? "EIO" : "EOVERFLOW")));
+ c2b_print_usage(stderr);
+ return errsv;
+ }
+ if ((S_ISCHR(stats.st_mode) == kTrue) && (S_ISREG(stats.st_mode) == kFalse)) {
+ fprintf(stderr, "Error: No input is specified; please redirect or pipe in formatted data\n");
+ c2b_print_usage(stderr);
+ return ENODATA; /* No message is available on the STREAM head read queue (POSIX.1) */
+ }
+ c2b_test_dependencies();
+ c2b_init_pipeset(&pipes, MAX_PIPES);
+
+ /* convert */
+ c2b_init_conversion(&pipes);
+
+ /* clean-up */
+ c2b_delete_pipeset(&pipes);
+ c2b_delete_globals();
+
+#ifdef DEBUG
+ fprintf (stderr, "--- convert2bed main() - exit ---\n");
+#endif
+ return EXIT_SUCCESS;
+}
+
+static void
+c2b_init_conversion(c2b_pipeset_t *p)
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_conversion() - enter ---\n");
+#endif
+
+ switch(c2b_globals.input_format_idx)
+ {
+ case BAM_FORMAT:
+ c2b_init_bam_conversion(p);
+ break;
+ case GFF_FORMAT:
+ c2b_init_gff_conversion(p);
+ break;
+ case GTF_FORMAT:
+ c2b_init_gtf_conversion(p);
+ break;
+ case GVF_FORMAT:
+ c2b_init_gvf_conversion(p);
+ break;
+ case PSL_FORMAT:
+ c2b_init_psl_conversion(p);
+ break;
+ case RMSK_FORMAT:
+ c2b_init_rmsk_conversion(p);
+ break;
+ case SAM_FORMAT:
+ c2b_init_sam_conversion(p);
+ break;
+ case VCF_FORMAT:
+ c2b_init_vcf_conversion(p);
+ break;
+ case WIG_FORMAT:
+ c2b_init_wig_conversion(p);
+ break;
+ default:
+ fprintf(stderr, "Error: Currently unsupported format\n");
+ c2b_print_usage(stderr);
+ exit(ENOTSUP); /* Operation not supported (POSIX.1) */
+ }
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_conversion() - exit ---\n");
+#endif
+}
+
+static void
+c2b_init_gff_conversion(c2b_pipeset_t *p)
+{
+ c2b_init_generic_conversion(p, &c2b_line_convert_gff_to_bed_unsorted);
+}
+
+static void
+c2b_init_gtf_conversion(c2b_pipeset_t *p)
+{
+ c2b_init_generic_conversion(p, &c2b_line_convert_gtf_to_bed_unsorted);
+}
+
+static void
+c2b_init_gvf_conversion(c2b_pipeset_t *p)
+{
+ /* GVF format conversion uses the GFF functor */
+ c2b_init_generic_conversion(p, &c2b_line_convert_gff_to_bed_unsorted);
+}
+
+static void
+c2b_init_psl_conversion(c2b_pipeset_t *p)
+{
+ c2b_init_generic_conversion(p, &c2b_line_convert_psl_to_bed_unsorted);
+}
+
+static void
+c2b_init_rmsk_conversion(c2b_pipeset_t *p)
+{
+ c2b_init_generic_conversion(p, &c2b_line_convert_rmsk_to_bed_unsorted);
+}
+
+static void
+c2b_init_sam_conversion(c2b_pipeset_t *p)
+{
+ c2b_init_generic_conversion(p, (!c2b_globals.split_flag ?
+ &c2b_line_convert_sam_to_bed_unsorted_without_split_operation :
+ &c2b_line_convert_sam_to_bed_unsorted_with_split_operation));
+}
+
+static void
+c2b_init_vcf_conversion(c2b_pipeset_t *p)
+{
+ c2b_init_generic_conversion(p, &c2b_line_convert_vcf_to_bed_unsorted);
+}
+
+static void
+c2b_init_wig_conversion(c2b_pipeset_t *p)
+{
+ c2b_init_generic_conversion(p, &c2b_line_convert_wig_to_bed_unsorted);
+}
+
+static void
+c2b_init_generic_conversion(c2b_pipeset_t *p, void(*to_bed_line_functor)(char *, ssize_t *, char *, ssize_t))
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_generic_conversion() - enter ---\n");
+#endif
+
+ pthread_t cat2generic_thread;
+ pthread_t generic2bed_unsorted_thread;
+ pthread_t bed_unsorted2stdout_thread;
+ pthread_t bed_unsorted2bed_sorted_thread;
+ pthread_t bed_sorted2stdout_thread;
+ pthread_t bed_sorted2starch_thread;
+ pthread_t starch2stdout_thread;
+ c2b_pipeline_stage_t cat2generic_stage;
+ c2b_pipeline_stage_t generic2bed_unsorted_stage;
+ c2b_pipeline_stage_t bed_unsorted2stdout_stage;
+ c2b_pipeline_stage_t bed_unsorted2bed_sorted_stage;
+ c2b_pipeline_stage_t bed_sorted2stdout_stage;
+ c2b_pipeline_stage_t bed_sorted2starch_stage;
+ c2b_pipeline_stage_t starch2stdout_stage;
+ char cat2generic_cmd[C2B_MAX_LINE_LENGTH_VALUE];
+ char bed_unsorted2bed_sorted_cmd[C2B_MAX_LINE_LENGTH_VALUE];
+ char bed_sorted2starch_cmd[C2B_MAX_LINE_LENGTH_VALUE];
+ void (*generic2bed_unsorted_line_functor)(char *, ssize_t *, char *, ssize_t) = to_bed_line_functor;
+ int errsv = 0;
+
+ if ((!c2b_globals.sort->is_enabled) && (c2b_globals.output_format_idx == BED_FORMAT)) {
+ cat2generic_stage.pipeset = p;
+ cat2generic_stage.line_functor = NULL;
+ cat2generic_stage.src = -1;
+ cat2generic_stage.dest = 0;
+ cat2generic_stage.description = "Generic data from stdin";
+ cat2generic_stage.pid = 0;
+ cat2generic_stage.status = 0;
+
+ generic2bed_unsorted_stage.pipeset = p;
+ generic2bed_unsorted_stage.line_functor = generic2bed_unsorted_line_functor;
+ generic2bed_unsorted_stage.src = 0;
+ generic2bed_unsorted_stage.dest = 1;
+ generic2bed_unsorted_stage.description = "Generic data to unsorted BED";
+ generic2bed_unsorted_stage.pid = 0;
+ generic2bed_unsorted_stage.status = 0;
+
+ bed_unsorted2stdout_stage.pipeset = p;
+ bed_unsorted2stdout_stage.line_functor = NULL;
+ bed_unsorted2stdout_stage.src = 1;
+ bed_unsorted2stdout_stage.dest = -1;
+ bed_unsorted2stdout_stage.description = "Unsorted BED to stdout";
+ bed_unsorted2stdout_stage.pid = 0;
+ bed_unsorted2stdout_stage.status = 0;
+ }
+ else if (c2b_globals.output_format_idx == BED_FORMAT) {
+ cat2generic_stage.pipeset = p;
+ cat2generic_stage.line_functor = NULL;
+ cat2generic_stage.src = -1;
+ cat2generic_stage.dest = 0;
+ cat2generic_stage.description = "Generic data from stdin";
+ cat2generic_stage.pid = 0;
+ cat2generic_stage.status = 0;
+
+ generic2bed_unsorted_stage.pipeset = p;
+ generic2bed_unsorted_stage.line_functor = generic2bed_unsorted_line_functor;
+ generic2bed_unsorted_stage.src = 0;
+ generic2bed_unsorted_stage.dest = 1;
+ generic2bed_unsorted_stage.description = "Generic data to unsorted BED";
+ generic2bed_unsorted_stage.pid = 0;
+ generic2bed_unsorted_stage.status = 0;
+
+ bed_unsorted2bed_sorted_stage.pipeset = p;
+ bed_unsorted2bed_sorted_stage.line_functor = NULL;
+ bed_unsorted2bed_sorted_stage.src = 1;
+ bed_unsorted2bed_sorted_stage.dest = 2;
+ bed_unsorted2bed_sorted_stage.description = "Unsorted BED to sorted BED";
+ bed_unsorted2bed_sorted_stage.pid = 0;
+ bed_unsorted2bed_sorted_stage.status = 0;
+
+ bed_sorted2stdout_stage.pipeset = p;
+ bed_sorted2stdout_stage.line_functor = NULL;
+ bed_sorted2stdout_stage.src = 2;
+ bed_sorted2stdout_stage.dest = -1;
+ bed_sorted2stdout_stage.description = "Sorted BED to stdout";
+ bed_sorted2stdout_stage.pid = 0;
+ bed_sorted2stdout_stage.status = 0;
+ }
+ else if (c2b_globals.output_format_idx == STARCH_FORMAT) {
+ cat2generic_stage.pipeset = p;
+ cat2generic_stage.line_functor = NULL;
+ cat2generic_stage.src = -1;
+ cat2generic_stage.dest = 0;
+ cat2generic_stage.description = "Generic data from stdin";
+ cat2generic_stage.pid = 0;
+ cat2generic_stage.status = 0;
+
+ generic2bed_unsorted_stage.pipeset = p;
+ generic2bed_unsorted_stage.line_functor = generic2bed_unsorted_line_functor;
+ generic2bed_unsorted_stage.src = 0;
+ generic2bed_unsorted_stage.dest = 1;
+ generic2bed_unsorted_stage.description = "Generic data to unsorted BED";
+ generic2bed_unsorted_stage.pid = 0;
+ generic2bed_unsorted_stage.status = 0;
+
+ bed_unsorted2bed_sorted_stage.pipeset = p;
+ bed_unsorted2bed_sorted_stage.line_functor = NULL;
+ bed_unsorted2bed_sorted_stage.src = 1;
+ bed_unsorted2bed_sorted_stage.dest = 2;
+ bed_unsorted2bed_sorted_stage.description = "Unsorted BED to sorted BED";
+ bed_unsorted2bed_sorted_stage.pid = 0;
+ bed_unsorted2bed_sorted_stage.status = 0;
+
+ bed_sorted2starch_stage.pipeset = p;
+ bed_sorted2starch_stage.line_functor = NULL;
+ bed_sorted2starch_stage.src = 2;
+ bed_sorted2starch_stage.dest = 3;
+ bed_sorted2stdout_stage.description = "Sorted BED to Starch";
+ bed_sorted2starch_stage.pid = 0;
+ bed_sorted2starch_stage.status = 0;
+
+ starch2stdout_stage.pipeset = p;
+ starch2stdout_stage.line_functor = NULL;
+ starch2stdout_stage.src = 3;
+ starch2stdout_stage.dest = -1;
+ starch2stdout_stage.description = "Starch to stdout";
+ starch2stdout_stage.pid = 0;
+ starch2stdout_stage.status = 0;
+ }
+ else {
+ fprintf(stderr, "Error: Unknown conversion parameter combination\n");
+ c2b_print_usage(stderr);
+ exit(ENOTSUP); /* Operation not supported (POSIX.1) */
+ }
+
+ /*
+ We open pid_t (process) instances to handle data in a specified order.
+ */
+
+ c2b_cmd_cat_stdin(cat2generic_cmd);
+#ifdef DEBUG
+ fprintf(stderr, "Debug: c2b_cmd_cat_stdin: [%s]\n", cat2generic_cmd);
+#endif
+
+ generic2bed_unsorted_stage.pid = c2b_popen4(cat2generic_cmd,
+ p->in[0],
+ p->out[0],
+ p->err[0],
+ POPEN4_FLAG_NONE);
+
+ if (waitpid(generic2bed_unsorted_stage.pid,
+ &generic2bed_unsorted_stage.status,
+ WNOHANG | WUNTRACED) == -1) {
+ errsv = errno;
+ fprintf(stderr, "Error: Generic stdin stage waitpid() call failed (%s)\n", (errsv == ECHILD ? "ECHILD" : (errsv == EINTR ? "EINTR" : "EINVAL")));
+ exit(errsv);
+ }
+
+ if (c2b_globals.sort->is_enabled) {
+ c2b_cmd_sort_bed(bed_unsorted2bed_sorted_cmd);
+#ifdef DEBUG
+ fprintf(stderr, "Debug: c2b_cmd_sort_bed: [%s]\n", bed_unsorted2bed_sorted_cmd);
+#endif
+
+ bed_unsorted2bed_sorted_stage.pid = c2b_popen4(bed_unsorted2bed_sorted_cmd,
+ p->in[2],
+ p->out[2],
+ p->err[2],
+ POPEN4_FLAG_NONE);
+
+ if (waitpid(bed_unsorted2bed_sorted_stage.pid,
+ &bed_unsorted2bed_sorted_stage.status,
+ WNOHANG | WUNTRACED) == -1) {
+ errsv = errno;
+ fprintf(stderr, "Error: Sort stage waitpid() call failed (%s)\n", (errsv == ECHILD ? "ECHILD" : (errsv == EINTR ? "EINTR" : "EINVAL")));
+ exit(errsv);
+ }
+ }
+
+ if (c2b_globals.output_format_idx == STARCH_FORMAT) {
+ c2b_cmd_starch_bed(bed_sorted2starch_cmd);
+#ifdef DEBUG
+ fprintf(stderr, "Debug: c2b_cmd_starch_bed: [%s]\n", bed_sorted2starch_cmd);
+#endif
+
+ bed_sorted2starch_stage.pid = c2b_popen4(bed_sorted2starch_cmd,
+ p->in[3],
+ p->out[3],
+ p->err[3],
+ POPEN4_FLAG_NONE);
+
+ if (waitpid(bed_sorted2starch_stage.pid,
+ &bed_sorted2starch_stage.status,
+ WNOHANG | WUNTRACED) == -1) {
+ errsv = errno;
+ fprintf(stderr, "Error: Compression stage waitpid() call failed (%s)\n", (errsv == ECHILD ? "ECHILD" : (errsv == EINTR ? "EINTR" : "EINVAL")));
+ exit(errsv);
+ }
+ }
+
+#ifdef DEBUG
+ c2b_debug_pipeset(p, MAX_PIPES);
+#endif
+
+ /*
+ Once we have the desired process instances, we create and join
+ threads for their ordered execution.
+ */
+
+ if ((!c2b_globals.sort->is_enabled) && (c2b_globals.output_format_idx == BED_FORMAT)) {
+ pthread_create(&cat2generic_thread,
+ NULL,
+ c2b_read_bytes_from_stdin,
+ &cat2generic_stage);
+ pthread_create(&generic2bed_unsorted_thread,
+ NULL,
+ c2b_process_intermediate_bytes_by_lines,
+ &generic2bed_unsorted_stage);
+ pthread_create(&bed_unsorted2stdout_thread,
+ NULL,
+ c2b_write_in_bytes_to_stdout,
+ &bed_unsorted2stdout_stage);
+ }
+ else if (c2b_globals.output_format_idx == BED_FORMAT) {
+ pthread_create(&cat2generic_thread,
+ NULL,
+ c2b_read_bytes_from_stdin,
+ &cat2generic_stage);
+ pthread_create(&generic2bed_unsorted_thread,
+ NULL,
+ c2b_process_intermediate_bytes_by_lines,
+ &generic2bed_unsorted_stage);
+ pthread_create(&bed_unsorted2bed_sorted_thread,
+ NULL,
+ c2b_write_in_bytes_to_in_process,
+ &bed_unsorted2bed_sorted_stage);
+ pthread_create(&bed_sorted2stdout_thread,
+ NULL,
+ c2b_write_out_bytes_to_stdout,
+ &bed_sorted2stdout_stage);
+ }
+ else if (c2b_globals.output_format_idx == STARCH_FORMAT) {
+ pthread_create(&cat2generic_thread,
+ NULL,
+ c2b_read_bytes_from_stdin,
+ &cat2generic_stage);
+ pthread_create(&generic2bed_unsorted_thread,
+ NULL,
+ c2b_process_intermediate_bytes_by_lines,
+ &generic2bed_unsorted_stage);
+ pthread_create(&bed_unsorted2bed_sorted_thread,
+ NULL,
+ c2b_write_in_bytes_to_in_process,
+ &bed_unsorted2bed_sorted_stage);
+ pthread_create(&bed_sorted2starch_thread,
+ NULL,
+ c2b_write_out_bytes_to_in_process,
+ &bed_sorted2starch_stage);
+ pthread_create(&starch2stdout_thread,
+ NULL,
+ c2b_write_out_bytes_to_stdout,
+ &starch2stdout_stage);
+ }
+
+ if ((!c2b_globals.sort->is_enabled) && (c2b_globals.output_format_idx == BED_FORMAT)) {
+ pthread_join(cat2generic_thread, (void **) NULL);
+ pthread_join(generic2bed_unsorted_thread, (void **) NULL);
+ pthread_join(bed_unsorted2stdout_thread, (void **) NULL);
+ }
+ else if (c2b_globals.output_format_idx == BED_FORMAT) {
+ pthread_join(cat2generic_thread, (void **) NULL);
+ pthread_join(generic2bed_unsorted_thread, (void **) NULL);
+ pthread_join(bed_unsorted2bed_sorted_thread, (void **) NULL);
+ pthread_join(bed_sorted2stdout_thread, (void **) NULL);
+ }
+ else if (c2b_globals.output_format_idx == STARCH_FORMAT) {
+ pthread_join(cat2generic_thread, (void **) NULL);
+ pthread_join(generic2bed_unsorted_thread, (void **) NULL);
+ pthread_join(bed_unsorted2bed_sorted_thread, (void **) NULL);
+ pthread_join(bed_sorted2starch_thread, (void **) NULL);
+ pthread_join(starch2stdout_thread, (void **) NULL);
+ }
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_generic_conversion() - exit ---\n");
+#endif
+}
+
+static void
+c2b_init_bam_conversion(c2b_pipeset_t *p)
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_bam_conversion() - enter ---\n");
+#endif
+
+ pthread_t bam2sam_thread;
+ pthread_t sam2bed_unsorted_thread;
+ pthread_t bed_unsorted2stdout_thread;
+ pthread_t bed_unsorted2bed_sorted_thread;
+ pthread_t bed_sorted2stdout_thread;
+ pthread_t bed_sorted2starch_thread;
+ pthread_t starch2stdout_thread;
+ c2b_pipeline_stage_t bam2sam_stage;
+ c2b_pipeline_stage_t sam2bed_unsorted_stage;
+ c2b_pipeline_stage_t bed_unsorted2stdout_stage;
+ c2b_pipeline_stage_t bed_unsorted2bed_sorted_stage;
+ c2b_pipeline_stage_t bed_sorted2stdout_stage;
+ c2b_pipeline_stage_t bed_sorted2starch_stage;
+ c2b_pipeline_stage_t starch2stdout_stage;
+ char bam2sam_cmd[C2B_MAX_LINE_LENGTH_VALUE];
+ char bed_unsorted2bed_sorted_cmd[C2B_MAX_LINE_LENGTH_VALUE];
+ char bed_sorted2starch_cmd[C2B_MAX_LINE_LENGTH_VALUE];
+ void (*sam2bed_unsorted_line_functor)(char *, ssize_t *, char *, ssize_t) = NULL;
+ int errsv = errno;
+
+ sam2bed_unsorted_line_functor = (!c2b_globals.split_flag ?
+ &c2b_line_convert_sam_to_bed_unsorted_without_split_operation :
+ &c2b_line_convert_sam_to_bed_unsorted_with_split_operation);
+
+ if ((!c2b_globals.sort->is_enabled) && (c2b_globals.output_format_idx == BED_FORMAT)) {
+ bam2sam_stage.pipeset = p;
+ bam2sam_stage.line_functor = NULL;
+ bam2sam_stage.src = -1;
+ bam2sam_stage.dest = 0;
+ bam2sam_stage.description = "BAM data from stdin to SAM";
+ bam2sam_stage.pid = 0;
+ bam2sam_stage.status = 0;
+
+ sam2bed_unsorted_stage.pipeset = p;
+ sam2bed_unsorted_stage.line_functor = sam2bed_unsorted_line_functor;
+ sam2bed_unsorted_stage.src = 0;
+ sam2bed_unsorted_stage.dest = 1;
+ sam2bed_unsorted_stage.description = "SAM to unsorted BED";
+ sam2bed_unsorted_stage.pid = 0;
+ sam2bed_unsorted_stage.status = 0;
+
+ bed_unsorted2stdout_stage.pipeset = p;
+ bed_unsorted2stdout_stage.line_functor = NULL;
+ bed_unsorted2stdout_stage.src = 1;
+ bed_unsorted2stdout_stage.dest = -1;
+ bed_unsorted2stdout_stage.description = "Unsorted BED to stdout";
+ bed_unsorted2stdout_stage.pid = 0;
+ bed_unsorted2stdout_stage.status = 0;
+ }
+ else if (c2b_globals.output_format_idx == BED_FORMAT) {
+ bam2sam_stage.pipeset = p;
+ bam2sam_stage.line_functor = NULL;
+ bam2sam_stage.src = -1;
+ bam2sam_stage.dest = 0;
+ bam2sam_stage.description = "BAM data from stdin to SAM";
+ bam2sam_stage.pid = 0;
+ bam2sam_stage.status = 0;
+
+ sam2bed_unsorted_stage.pipeset = p;
+ sam2bed_unsorted_stage.line_functor = sam2bed_unsorted_line_functor;
+ sam2bed_unsorted_stage.src = 0;
+ sam2bed_unsorted_stage.dest = 1;
+ sam2bed_unsorted_stage.description = "SAM to unsorted BED";
+ sam2bed_unsorted_stage.pid = 0;
+ sam2bed_unsorted_stage.status = 0;
+
+ bed_unsorted2bed_sorted_stage.pipeset = p;
+ bed_unsorted2bed_sorted_stage.line_functor = NULL;
+ bed_unsorted2bed_sorted_stage.src = 1;
+ bed_unsorted2bed_sorted_stage.dest = 2;
+ bed_unsorted2bed_sorted_stage.description = "Unsorted BED to sorted BED";
+ bed_unsorted2bed_sorted_stage.pid = 0;
+ bed_unsorted2bed_sorted_stage.status = 0;
+
+ bed_sorted2stdout_stage.pipeset = p;
+ bed_sorted2stdout_stage.line_functor = NULL;
+ bed_sorted2stdout_stage.src = 2;
+ bed_sorted2stdout_stage.dest = -1;
+ bed_sorted2stdout_stage.description = "Sorted BED to stdout";
+ bed_sorted2stdout_stage.pid = 0;
+ bed_sorted2stdout_stage.status = 0;
+ }
+ else if (c2b_globals.output_format_idx == STARCH_FORMAT) {
+ bam2sam_stage.pipeset = p;
+ bam2sam_stage.line_functor = NULL;
+ bam2sam_stage.src = -1;
+ bam2sam_stage.dest = 0;
+ bam2sam_stage.description = "BAM data from stdin to SAM";
+ bam2sam_stage.pid = 0;
+ bam2sam_stage.status = 0;
+
+ sam2bed_unsorted_stage.pipeset = p;
+ sam2bed_unsorted_stage.line_functor = sam2bed_unsorted_line_functor;
+ sam2bed_unsorted_stage.src = 0;
+ sam2bed_unsorted_stage.dest = 1;
+ sam2bed_unsorted_stage.description = "SAM to unsorted BED";
+ sam2bed_unsorted_stage.pid = 0;
+ sam2bed_unsorted_stage.status = 0;
+
+ bed_unsorted2bed_sorted_stage.pipeset = p;
+ bed_unsorted2bed_sorted_stage.line_functor = NULL;
+ bed_unsorted2bed_sorted_stage.src = 1;
+ bed_unsorted2bed_sorted_stage.dest = 2;
+ bed_unsorted2bed_sorted_stage.description = "Unsorted BED to sorted BED";
+ bed_unsorted2bed_sorted_stage.pid = 0;
+ bed_unsorted2bed_sorted_stage.status = 0;
+
+ bed_sorted2starch_stage.pipeset = p;
+ bed_sorted2starch_stage.line_functor = NULL;
+ bed_sorted2starch_stage.src = 2;
+ bed_sorted2starch_stage.dest = 3;
+ bed_sorted2starch_stage.description = "Sorted BED to Starch";
+ bed_sorted2starch_stage.pid = 0;
+ bed_sorted2starch_stage.status = 0;
+
+ starch2stdout_stage.pipeset = p;
+ starch2stdout_stage.line_functor = NULL;
+ starch2stdout_stage.src = 3;
+ starch2stdout_stage.dest = -1;
+ starch2stdout_stage.description = "Starch to stdout";
+ starch2stdout_stage.pid = 0;
+ starch2stdout_stage.status = 0;
+ }
+ else {
+ fprintf(stderr, "Error: Unknown BAM conversion parameter combination\n");
+ c2b_print_usage(stderr);
+ exit(ENOTSUP); /* Operation not supported (POSIX.1) */
+ }
+
+ /*
+ We open pid_t (process) instances to handle data in a specified order.
+ */
+
+ c2b_cmd_bam_to_sam(bam2sam_cmd);
+#ifdef DEBUG
+ fprintf(stderr, "Debug: c2b_cmd_bam_to_sam: [%s]\n", bam2sam_cmd);
+#endif
+
+ bam2sam_stage.pid = c2b_popen4(bam2sam_cmd,
+ p->in[0],
+ p->out[0],
+ p->err[0],
+ POPEN4_FLAG_NONE);
+
+ if (waitpid(bam2sam_stage.pid,
+ &bam2sam_stage.status,
+ WNOHANG | WUNTRACED) == -1) {
+ errsv = errno;
+ fprintf(stderr, "Error: BAM-to-SAM stage waitpid() call failed (%s)\n", (errsv == ECHILD ? "ECHILD" : (errsv == EINTR ? "EINTR" : "EINVAL")));
+ exit(errsv);
+ }
+
+ if (c2b_globals.sort->is_enabled) {
+ c2b_cmd_sort_bed(bed_unsorted2bed_sorted_cmd);
+#ifdef DEBUG
+ fprintf(stderr, "Debug: c2b_cmd_sort_bed: [%s]\n", bed_unsorted2bed_sorted_cmd);
+#endif
+
+ bed_unsorted2bed_sorted_stage.pid = c2b_popen4(bed_unsorted2bed_sorted_cmd,
+ p->in[2],
+ p->out[2],
+ p->err[2],
+ POPEN4_FLAG_NONE);
+
+ if (waitpid(bed_unsorted2bed_sorted_stage.pid,
+ &bed_unsorted2bed_sorted_stage.status,
+ WNOHANG | WUNTRACED) == -1) {
+ errsv = errno;
+ fprintf(stderr, "Error: Sort stage waitpid() call failed (%s)\n", (errsv == ECHILD ? "ECHILD" : (errsv == EINTR ? "EINTR" : "EINVAL")));
+ exit(errsv);
+ }
+ }
+
+ if (c2b_globals.output_format_idx == STARCH_FORMAT) {
+ c2b_cmd_starch_bed(bed_sorted2starch_cmd);
+#ifdef DEBUG
+ fprintf(stderr, "Debug: c2b_cmd_starch_bed: [%s]\n", bed_sorted2starch_cmd);
+#endif
+
+ bed_sorted2starch_stage.pid = c2b_popen4(bed_sorted2starch_cmd,
+ p->in[3],
+ p->out[3],
+ p->err[3],
+ POPEN4_FLAG_NONE);
+
+ if (waitpid(bed_sorted2starch_stage.pid,
+ &bed_sorted2starch_stage.status,
+ WNOHANG | WUNTRACED) == -1) {
+ errsv = errno;
+ fprintf(stderr, "Error: Compression stage waitpid() call failed (%s)\n", (errsv == ECHILD ? "ECHILD" : (errsv == EINTR ? "EINTR" : "EINVAL")));
+ exit(errsv);
+ }
+ }
+
+#ifdef DEBUG
+ c2b_debug_pipeset(p, MAX_PIPES);
+#endif
+
+ /*
+ Once we have the desired process instances, we create and join
+ threads for their ordered execution.
+ */
+
+ if ((!c2b_globals.sort->is_enabled) && (c2b_globals.output_format_idx == BED_FORMAT)) {
+ pthread_create(&bam2sam_thread,
+ NULL,
+ c2b_read_bytes_from_stdin,
+ &bam2sam_stage);
+ pthread_create(&sam2bed_unsorted_thread,
+ NULL,
+ c2b_process_intermediate_bytes_by_lines,
+ &sam2bed_unsorted_stage);
+ pthread_create(&bed_unsorted2stdout_thread,
+ NULL,
+ c2b_write_in_bytes_to_stdout,
+ &bed_unsorted2stdout_stage);
+ }
+ else if (c2b_globals.output_format_idx == BED_FORMAT) {
+ pthread_create(&bam2sam_thread,
+ NULL,
+ c2b_read_bytes_from_stdin,
+ &bam2sam_stage);
+ pthread_create(&sam2bed_unsorted_thread,
+ NULL,
+ c2b_process_intermediate_bytes_by_lines,
+ &sam2bed_unsorted_stage);
+ pthread_create(&bed_unsorted2bed_sorted_thread,
+ NULL,
+ c2b_write_in_bytes_to_in_process,
+ &bed_unsorted2bed_sorted_stage);
+ pthread_create(&bed_sorted2stdout_thread,
+ NULL,
+ c2b_write_out_bytes_to_stdout,
+ &bed_sorted2stdout_stage);
+ }
+ else if (c2b_globals.output_format_idx == STARCH_FORMAT) {
+ pthread_create(&bam2sam_thread,
+ NULL,
+ c2b_read_bytes_from_stdin,
+ &bam2sam_stage);
+ pthread_create(&sam2bed_unsorted_thread,
+ NULL,
+ c2b_process_intermediate_bytes_by_lines,
+ &sam2bed_unsorted_stage);
+ pthread_create(&bed_unsorted2bed_sorted_thread,
+ NULL,
+ c2b_write_in_bytes_to_in_process,
+ &bed_unsorted2bed_sorted_stage);
+ pthread_create(&bed_sorted2starch_thread,
+ NULL,
+ c2b_write_out_bytes_to_in_process,
+ &bed_sorted2starch_stage);
+ pthread_create(&starch2stdout_thread,
+ NULL,
+ c2b_write_out_bytes_to_stdout,
+ &starch2stdout_stage);
+ }
+
+ if ((!c2b_globals.sort->is_enabled) && (c2b_globals.output_format_idx == BED_FORMAT)) {
+ pthread_join(bam2sam_thread, (void **) NULL);
+ pthread_join(sam2bed_unsorted_thread, (void **) NULL);
+ pthread_join(bed_unsorted2stdout_thread, (void **) NULL);
+ }
+ else if (c2b_globals.output_format_idx == BED_FORMAT) {
+ pthread_join(bam2sam_thread, (void **) NULL);
+ pthread_join(sam2bed_unsorted_thread, (void **) NULL);
+ pthread_join(bed_unsorted2bed_sorted_thread, (void **) NULL);
+ pthread_join(bed_sorted2stdout_thread, (void **) NULL);
+ }
+ else if (c2b_globals.output_format_idx == STARCH_FORMAT) {
+ pthread_join(bam2sam_thread, (void **) NULL);
+ pthread_join(sam2bed_unsorted_thread, (void **) NULL);
+ pthread_join(bed_unsorted2bed_sorted_thread, (void **) NULL);
+ pthread_join(bed_sorted2starch_thread, (void **) NULL);
+ pthread_join(starch2stdout_thread, (void **) NULL);
+ }
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_bam_conversion() - exit ---\n");
+#endif
+}
+
+static inline void
+c2b_cmd_cat_stdin(char *cmd)
+{
+ const char *cat_args = " - ";
+
+ /* /path/to/cat - */
+ memcpy(cmd,
+ c2b_globals.cat->path,
+ strlen(c2b_globals.cat->path) + 1);
+ memcpy(cmd + strlen(c2b_globals.cat->path),
+ cat_args,
+ strlen(cat_args) + 1);
+ cmd[strlen(c2b_globals.cat->path) + strlen(cat_args)] = '\0';
+}
+
+static inline void
+c2b_cmd_bam_to_sam(char *cmd)
+{
+ const char *bam2sam_args = " view -h -";
+
+ /* /path/to/samtools view -h - */
+ memcpy(cmd,
+ c2b_globals.sam->samtools_path,
+ strlen(c2b_globals.sam->samtools_path) + 1);
+ memcpy(cmd + strlen(c2b_globals.sam->samtools_path),
+ bam2sam_args,
+ strlen(bam2sam_args) + 1);
+ cmd[strlen(c2b_globals.sam->samtools_path) + strlen(bam2sam_args)] = '\0';
+}
+
+static inline void
+c2b_cmd_sort_bed(char *cmd)
+{
+ char sort_bed_args[C2B_MAX_LINE_LENGTH_VALUE];
+ memset(sort_bed_args, 0, C2B_MAX_LINE_LENGTH_VALUE);
+
+ /* /path/to/sort-bed [--max-mem <val>] [--tmpdir <path>] - */
+ if (c2b_globals.sort->max_mem_value) {
+ memcpy(sort_bed_args,
+ sort_bed_max_mem_arg,
+ strlen(sort_bed_max_mem_arg) + 1);
+ memcpy(sort_bed_args + strlen(sort_bed_args),
+ c2b_globals.sort->max_mem_value,
+ strlen(c2b_globals.sort->max_mem_value) + 1);
+ sort_bed_args[strlen(sort_bed_max_mem_arg) + strlen(sort_bed_args)] = '\0';
+ }
+ else {
+ memcpy(sort_bed_args,
+ sort_bed_max_mem_default_arg,
+ strlen(sort_bed_max_mem_default_arg) + 1);
+ sort_bed_args[strlen(sort_bed_max_mem_default_arg)] = '\0';
+ }
+ if (c2b_globals.sort->sort_tmpdir_path) {
+ memcpy(sort_bed_args + strlen(sort_bed_args),
+ sort_bed_tmpdir_arg,
+ strlen(sort_bed_tmpdir_arg) + 1);
+ memcpy(sort_bed_args + strlen(sort_bed_args),
+ c2b_globals.sort->sort_tmpdir_path,
+ strlen(c2b_globals.sort->sort_tmpdir_path) + 1);
+ sort_bed_args[strlen(sort_bed_args) + strlen(c2b_globals.sort->sort_tmpdir_path)] = '\0';
+ }
+ memcpy(sort_bed_args + strlen(sort_bed_args),
+ sort_bed_stdin,
+ strlen(sort_bed_stdin) + 1);
+ sort_bed_args[strlen(sort_bed_args) + strlen(sort_bed_stdin)] = '\0';
+
+ /* cmd */
+ memcpy(cmd,
+ c2b_globals.sort->sort_bed_path,
+ strlen(c2b_globals.sort->sort_bed_path) + 1);
+ memcpy(cmd + strlen(c2b_globals.sort->sort_bed_path),
+ sort_bed_args,
+ strlen(sort_bed_args) + 1);
+ cmd[strlen(c2b_globals.sort->sort_bed_path) + strlen(sort_bed_args)] = '\0';
+}
+
+static inline void
+c2b_cmd_starch_bed(char *cmd)
+{
+ char starch_args[C2B_MAX_LINE_LENGTH_VALUE];
+ memset(starch_args, 0, C2B_MAX_LINE_LENGTH_VALUE);
+
+ /* /path/to/starch [--bzip2 | --gzip] [--note="xyz..."] - */
+ if (c2b_globals.starch->bzip2) {
+ memcpy(starch_args,
+ starch_bzip2_arg,
+ strlen(starch_bzip2_arg) + 1);
+ starch_args[strlen(starch_bzip2_arg)] = '\0';
+ }
+ else if (c2b_globals.starch->gzip) {
+ memcpy(starch_args,
+ starch_gzip_arg,
+ strlen(starch_gzip_arg) + 1);
+ starch_args[strlen(starch_gzip_arg)] = '\0';
+ }
+
+#ifdef DEBUG
+ fprintf(stderr, "Debug: c2b_globals.starch->bzip2: [%d]\n", c2b_globals.starch->bzip2);
+ fprintf(stderr, "Debug: c2b_globals.starch->gzip: [%d]\n", c2b_globals.starch->gzip);
+ fprintf(stderr, "Debug: c2b_globals.starch->note: [%s]\n", c2b_globals.starch->note);
+ fprintf(stderr, "Debug: starch_args: [%s]\n", starch_args);
+#endif
+
+ if (c2b_globals.starch->note) {
+ memcpy(starch_args + strlen(starch_args),
+ starch_note_prefix_arg,
+ strlen(starch_note_prefix_arg) + 1);
+ memcpy(starch_args + strlen(starch_args),
+ c2b_globals.starch->note,
+ strlen(c2b_globals.starch->note) + 1);
+ memcpy(starch_args + strlen(starch_args),
+ starch_note_suffix_arg,
+ strlen(starch_note_suffix_arg) + 1);
+ starch_args[strlen(starch_args) + strlen(starch_note_prefix_arg) + strlen(c2b_globals.starch->note) + strlen(starch_note_suffix_arg)] = '\0';
+ }
+ memcpy(starch_args + strlen(starch_args),
+ starch_stdin_arg,
+ strlen(starch_stdin_arg) + 1);
+
+#ifdef DEBUG
+ fprintf(stderr, "Debug: starch_args: [%s]\n", starch_args);
+#endif
+
+ /* cmd */
+ memcpy(cmd,
+ c2b_globals.starch->path,
+ strlen(c2b_globals.starch->path) + 1);
+ memcpy(cmd + strlen(c2b_globals.starch->path),
+ starch_args,
+ strlen(starch_args) + 1);
+ cmd[strlen(c2b_globals.starch->path) + strlen(starch_args)] = '\0';
+}
+
+static void
+c2b_line_convert_gtf_to_bed_unsorted(char *dest, ssize_t *dest_size, char *src, ssize_t src_size)
+{
+ ssize_t gtf_field_offsets[C2B_MAX_FIELD_COUNT_VALUE];
+ int gtf_field_idx = 0;
+ ssize_t current_src_posn = -1;
+
+ while (++current_src_posn < src_size) {
+ if ((src[current_src_posn] == c2b_tab_delim) || (src[current_src_posn] == c2b_line_delim)) {
+ gtf_field_offsets[gtf_field_idx++] = current_src_posn;
+ }
+ if (gtf_field_idx >= C2B_MAX_FIELD_COUNT_VALUE) {
+ fprintf(stderr, "Error: Invalid field count (%d) -- input file may have too many fields\n", gtf_field_idx);
+ c2b_print_usage(stderr);
+ exit(EINVAL); /* Invalid argument (POSIX.1) */
+ }
+ }
+ gtf_field_offsets[gtf_field_idx] = src_size;
+ gtf_field_offsets[gtf_field_idx + 1] = -1;
+
+ /*
+ If number of fields is not in bounds, we may need to exit early
+ */
+
+ if (((gtf_field_idx + 1) < c2b_gtf_field_min) || ((gtf_field_idx + 1) > c2b_gtf_field_max)) {
+ if (gtf_field_idx == 0) {
+ if (src[0] == c2b_gtf_comment) {
+ if (!c2b_globals.keep_header_flag) {
+ return;
+ }
+ else {
+ /* copy header line to destination stream buffer */
+ char src_header_line_str[C2B_MAX_LINE_LENGTH_VALUE];
+ char dest_header_line_str[C2B_MAX_LINE_LENGTH_VALUE];
+ memcpy(src_header_line_str, src, src_size);
+ src_header_line_str[src_size] = '\0';
+ sprintf(dest_header_line_str, "%s\t%u\t%u\t%s\n", c2b_header_chr_name, c2b_globals.header_line_idx, (c2b_globals.header_line_idx + 1), src_header_line_str);
+ memcpy(dest + *dest_size, dest_header_line_str, strlen(dest_header_line_str));
+ *dest_size += strlen(dest_header_line_str);
+ c2b_globals.header_line_idx++;
+ return;
+ }
+ }
+ else {
+ return;
+ }
+ }
+ else {
+ fprintf(stderr, "Error: Invalid field count (%d) -- input file may not match input format\n", gtf_field_idx);
+ c2b_print_usage(stderr);
+ exit(EINVAL); /* Invalid argument (POSIX.1) */
+ }
+ }
+
+ /* 0 - seqname */
+ char seqname_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t seqname_size = gtf_field_offsets[0];
+ memcpy(seqname_str, src, seqname_size);
+ seqname_str[seqname_size] = '\0';
+
+ /* 1 - source */
+ char source_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t source_size = gtf_field_offsets[1] - gtf_field_offsets[0] - 1;
+ memcpy(source_str, src + gtf_field_offsets[0] + 1, source_size);
+ source_str[source_size] = '\0';
+
+ /* 2 - feature */
+ char feature_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t feature_size = gtf_field_offsets[2] - gtf_field_offsets[1] - 1;
+ memcpy(feature_str, src + gtf_field_offsets[1] + 1, feature_size);
+ feature_str[feature_size] = '\0';
+
+ /* 3 - start */
+ char start_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t start_size = gtf_field_offsets[3] - gtf_field_offsets[2] - 1;
+ memcpy(start_str, src + gtf_field_offsets[2] + 1, start_size);
+ start_str[start_size] = '\0';
+ uint64_t start_val = strtoull(start_str, NULL, 10);
+
+ /* 4 - end */
+ char end_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t end_size = gtf_field_offsets[4] - gtf_field_offsets[3] - 1;
+ memcpy(end_str, src + gtf_field_offsets[3] + 1, end_size);
+ end_str[end_size] = '\0';
+ uint64_t end_val = strtoull(end_str, NULL, 10);
+
+ /* 5 - score */
+ char score_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t score_size = gtf_field_offsets[5] - gtf_field_offsets[4] - 1;
+ memcpy(score_str, src + gtf_field_offsets[4] + 1, score_size);
+ score_str[score_size] = '\0';
+
+ /* 6 - strand */
+ char strand_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t strand_size = gtf_field_offsets[6] - gtf_field_offsets[5] - 1;
+ memcpy(strand_str, src + gtf_field_offsets[5] + 1, strand_size);
+ strand_str[strand_size] = '\0';
+
+ /* 7 - frame */
+ char frame_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t frame_size = gtf_field_offsets[7] - gtf_field_offsets[6] - 1;
+ memcpy(frame_str, src + gtf_field_offsets[6] + 1, frame_size);
+ frame_str[frame_size] = '\0';
+
+ /* 8 - attributes */
+ char attributes_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t attributes_size = gtf_field_offsets[8] - gtf_field_offsets[7] - 1;
+ memcpy(attributes_str, src + gtf_field_offsets[7] + 1, attributes_size);
+ attributes_str[attributes_size] = '\0';
+
+ /* 9 - comments */
+ char comments_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t comments_size = 0;
+ if (gtf_field_idx == 9) {
+ comments_size = gtf_field_offsets[9] - gtf_field_offsets[8] - 1;
+ memcpy(comments_str, src + gtf_field_offsets[8] + 1, comments_size);
+ comments_str[comments_size] = '\0';
+ }
+
+ c2b_gtf_t gtf;
+ gtf.seqname = seqname_str;
+ gtf.source = source_str;
+ gtf.feature = feature_str;
+ gtf.start = start_val;
+ gtf.end = end_val;
+ gtf.score = score_str;
+ gtf.strand = strand_str;
+ gtf.frame = frame_str;
+ gtf.attributes = attributes_str;
+ gtf.comments = comments_str;
+
+ /*
+ Fix coordinate indexing, and (if needed) add attribute for zero-length record
+ */
+
+ if (gtf.start == gtf.end) {
+ gtf.start -= 1;
+ ssize_t trailing_semicolon_fudge = (attributes_str[strlen(attributes_str) - 1] == ';') ? 1 : 0;
+ memcpy(attributes_str + strlen(attributes_str) - trailing_semicolon_fudge,
+ c2b_gtf_zero_length_insertion_attribute,
+ strlen(c2b_gtf_zero_length_insertion_attribute) + 1);
+ }
+ else {
+ gtf.start -= 1;
+ }
+
+ /*
+ Parse ID value out from attributes string
+ */
+
+ char *attributes_copy = NULL;
+ attributes_copy = malloc(strlen(attributes_str) + 1);
+ if (!attributes_copy) {
+ fprintf(stderr, "Error: Could not allocate space for GTF attributes copy\n");
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ memcpy(attributes_copy, attributes_str, strlen(attributes_str) + 1);
+ const char *kv_tok;
+ char *gene_id_str = NULL;
+ char *transcript_id_str = NULL;
+ boolean gene_id_value_defined = kFalse;
+ boolean transcript_id_value_defined = kFalse;
+ while((kv_tok = c2b_strsep(&attributes_copy, c2b_gtf_field_delimiter)) != NULL) {
+ gene_id_str = strstr(kv_tok, c2b_gtf_gene_id_prefix);
+ if (gene_id_str) {
+ /* we remove quotation marks around ID string value */
+ char *gtf_id_start = NULL;
+ gtf_id_start = strchr(kv_tok + strlen(c2b_gtf_gene_id_prefix), c2b_gtf_id_delimiter);
+ if (gtf_id_start - (kv_tok + strlen(c2b_gtf_gene_id_prefix)) < 0) {
+ gtf_id_start = NULL;
+ }
+ char *gtf_id_end = NULL;
+ if (gtf_id_start) {
+ gtf_id_end = strchr(gtf_id_start + 1, c2b_gtf_id_delimiter);
+ if (gtf_id_end - (kv_tok + strlen(c2b_gtf_gene_id_prefix)) <= 0) {
+ gtf_id_end = NULL;
+ }
+ }
+ if (!gtf_id_start || !gtf_id_end) {
+ fprintf(stderr, "Error: Could not parse ID from GTF attributes (malformed GTF at line [%" PRIu64 "]?)\n", c2b_globals.gtf->line_count + 1);
+ exit(ENODATA); /* No data available (POSIX.1) */
+ }
+ if ((gtf_id_start && gtf_id_end) && (gtf_id_start != gtf_id_end)) {
+ memcpy(c2b_globals.gtf->id, gtf_id_start + 1, gtf_id_end - gtf_id_start - 1);
+ c2b_globals.gtf->id[gtf_id_end - gtf_id_start - 1] = '\0';
+ }
+ else {
+ c2b_globals.gtf->id[0] = '\0';
+ }
+ if (strlen(c2b_globals.gtf->id) == 0) {
+ strcpy(c2b_globals.gtf->id, c2b_gtf_field_placeholder);
+ }
+ gene_id_value_defined = kTrue;
+ }
+ transcript_id_str = strstr(kv_tok, c2b_gtf_transcript_id_prefix);
+ if (transcript_id_str) {
+ transcript_id_value_defined = kTrue;
+ }
+ }
+ if (!gene_id_value_defined || !transcript_id_value_defined) {
+ fprintf(stderr, "Error: Potentially missing gene or transcript ID from GTF attributes (malformed GTF at line [%" PRIu64 "]?)\n", c2b_globals.gtf->line_count + 1);
+ exit(ENODATA); /* No data available (POSIX.1) */
+ }
+ free(attributes_copy), attributes_copy = NULL;
+ gtf.id = c2b_globals.gtf->id;
+
+ /*
+ Convert GTF struct to BED string and copy it to destination
+ */
+
+ c2b_line_convert_gtf_to_bed(gtf, dest, dest_size);
+ c2b_globals.gtf->line_count++;
+}
+
+static inline void
+c2b_line_convert_gtf_to_bed(c2b_gtf_t g, char *dest_line, ssize_t *dest_size)
+{
+ /*
+ For GTF-formatted data, we use the mapping provided by BEDOPS convention described at:
+
+ http://bedops.readthedocs.org/en/latest/content/reference/file-management/conversion/gtf2bed.html
+
+ GTF field BED column index BED field
+ -------------------------------------------------------------------------
+ seqname 1 chromosome
+ start 2 start
+ end 3 stop
+ ID (via attributes) 4 id
+ score 5 score
+ strand 6 strand
+
+ The remaining GTF columns are mapped as-is, in same order, to adjacent BED columns:
+
+ GTF field BED column index BED field
+ -------------------------------------------------------------------------
+ source 7 -
+ feature 8 -
+ frame 9 -
+ attributes 10 -
+
+ If present in the GTF2.2 input, the following column is also mapped:
+
+ GTF field BED column index BED field
+ -------------------------------------------------------------------------
+ comments 11 -
+ */
+
+ if (strlen(g.comments) == 0) {
+ *dest_size += sprintf(dest_line + *dest_size,
+ "%s\t" \
+ "%" PRIu64 "\t" \
+ "%" PRIu64 "\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\n",
+ g.seqname,
+ g.start,
+ g.end,
+ g.id,
+ g.score,
+ g.strand,
+ g.source,
+ g.feature,
+ g.frame,
+ g.attributes);
+ }
+ else {
+ *dest_size += sprintf(dest_line + *dest_size,
+ "%s\t" \
+ "%" PRIu64 "\t" \
+ "%" PRIu64 "\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\n",
+ g.seqname,
+ g.start,
+ g.end,
+ g.id,
+ g.score,
+ g.strand,
+ g.source,
+ g.feature,
+ g.frame,
+ g.attributes,
+ g.comments);
+ }
+}
+
+static void
+c2b_line_convert_gff_to_bed_unsorted(char *dest, ssize_t *dest_size, char *src, ssize_t src_size)
+{
+ ssize_t gff_field_offsets[C2B_MAX_FIELD_COUNT_VALUE];
+ int gff_field_idx = 0;
+ ssize_t current_src_posn = -1;
+
+ while (++current_src_posn < src_size) {
+ if ((src[current_src_posn] == c2b_tab_delim) || (src[current_src_posn] == c2b_line_delim)) {
+ gff_field_offsets[gff_field_idx++] = current_src_posn;
+ }
+ if (gff_field_idx >= C2B_MAX_FIELD_COUNT_VALUE) {
+ fprintf(stderr, "Error: Invalid field count (%d) -- input file may have too many fields\n", gff_field_idx);
+ c2b_print_usage(stderr);
+ exit(EINVAL); /* Invalid argument (POSIX.1) */
+ }
+ }
+ gff_field_offsets[gff_field_idx] = src_size;
+ gff_field_offsets[gff_field_idx + 1] = -1;
+
+ /*
+ If number of fields is not in bounds, we may need to exit early
+ */
+
+ if (((gff_field_idx + 1) < c2b_gff_field_min) || ((gff_field_idx + 1) > c2b_gff_field_max)) {
+ if (gff_field_idx == 0) {
+ char non_interval_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ memcpy(non_interval_str, src, current_src_posn);
+ non_interval_str[current_src_posn] = '\0';
+ char non_int_prefix[C2B_MAX_FIELD_LENGTH_VALUE];
+ strncpy(non_int_prefix, non_interval_str, 2);
+ non_int_prefix[2] = '\0';
+ /* We compare against either of two standard GFF3 or GVF header pragmas */
+ if ((strcmp(non_interval_str, c2b_gff_header) == 0) ||
+ (strcmp(non_interval_str, c2b_gvf_header) == 0) ||
+ (strcmp(non_int_prefix, c2b_gvf_generic_header) == 0)) {
+ if (!c2b_globals.keep_header_flag) {
+ return;
+ }
+ else {
+ /* copy header line to destination stream buffer */
+ char src_header_line_str[C2B_MAX_LINE_LENGTH_VALUE];
+ char dest_header_line_str[C2B_MAX_LINE_LENGTH_VALUE];
+ memcpy(src_header_line_str, src, src_size);
+ src_header_line_str[src_size] = '\0';
+ sprintf(dest_header_line_str, "%s\t%u\t%u\t%s\n", c2b_header_chr_name, c2b_globals.header_line_idx, (c2b_globals.header_line_idx + 1), src_header_line_str);
+ memcpy(dest + *dest_size, dest_header_line_str, strlen(dest_header_line_str));
+ *dest_size += strlen(dest_header_line_str);
+ c2b_globals.header_line_idx++;
+ return;
+ }
+ }
+ else if (strcmp(non_interval_str, c2b_gff_fasta) == 0) {
+ return;
+ }
+ else {
+ return;
+ }
+ }
+ else {
+ fprintf(stderr, "Error: Invalid field count (%d) -- input file may not match input format\n", gff_field_idx);
+ c2b_print_usage(stderr);
+ exit(EINVAL); /* Invalid argument (POSIX.1) */
+ }
+ }
+
+ /* 0 - seqid */
+ char seqid_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t seqid_size = gff_field_offsets[0];
+ memcpy(seqid_str, src, seqid_size);
+ seqid_str[seqid_size] = '\0';
+
+ /* 1 - source */
+ char source_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t source_size = gff_field_offsets[1] - gff_field_offsets[0] - 1;
+ memcpy(source_str, src + gff_field_offsets[0] + 1, source_size);
+ source_str[source_size] = '\0';
+
+ /* 2 - type */
+ char type_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t type_size = gff_field_offsets[2] - gff_field_offsets[1] - 1;
+ memcpy(type_str, src + gff_field_offsets[1] + 1, type_size);
+ type_str[type_size] = '\0';
+
+ /* 3 - start */
+ char start_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t start_size = gff_field_offsets[3] - gff_field_offsets[2] - 1;
+ memcpy(start_str, src + gff_field_offsets[2] + 1, start_size);
+ start_str[start_size] = '\0';
+ uint64_t start_val = strtoull(start_str, NULL, 10);
+
+ /* 4 - end */
+ char end_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t end_size = gff_field_offsets[4] - gff_field_offsets[3] - 1;
+ memcpy(end_str, src + gff_field_offsets[3] + 1, end_size);
+ end_str[end_size] = '\0';
+ uint64_t end_val = strtoull(end_str, NULL, 10);
+
+ /* 5 - score */
+ char score_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t score_size = gff_field_offsets[5] - gff_field_offsets[4] - 1;
+ memcpy(score_str, src + gff_field_offsets[4] + 1, score_size);
+ score_str[score_size] = '\0';
+
+ /* 6 - strand */
+ char strand_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t strand_size = gff_field_offsets[6] - gff_field_offsets[5] - 1;
+ memcpy(strand_str, src + gff_field_offsets[5] + 1, strand_size);
+ strand_str[strand_size] = '\0';
+
+ /* 7 - phase */
+ char phase_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t phase_size = gff_field_offsets[7] - gff_field_offsets[6] - 1;
+ memcpy(phase_str, src + gff_field_offsets[6] + 1, phase_size);
+ phase_str[phase_size] = '\0';
+
+ /* 8 - attributes */
+ char attributes_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t attributes_size = gff_field_offsets[8] - gff_field_offsets[7] - 1;
+ memcpy(attributes_str, src + gff_field_offsets[7] + 1, attributes_size);
+ attributes_str[attributes_size] = '\0';
+
+ c2b_gff_t gff;
+ gff.seqid = seqid_str;
+ gff.source = source_str;
+ gff.type = type_str;
+ gff.start = start_val;
+ gff.end = end_val;
+ gff.score = score_str;
+ gff.strand = strand_str;
+ gff.phase = phase_str;
+ gff.attributes = attributes_str;
+
+ /*
+ Fix coordinate indexing, and (if needed) add attribute for zero-length record
+ */
+
+ if (gff.start == gff.end) {
+ gff.start -= 1;
+ ssize_t trailing_semicolon_fudge = (attributes_str[strlen(attributes_str) - 1] == ';') ? 1 : 0;
+ memcpy(attributes_str + strlen(attributes_str) - trailing_semicolon_fudge,
+ c2b_gff_zero_length_insertion_attribute,
+ strlen(c2b_gff_zero_length_insertion_attribute) + 1);
+ }
+ else {
+ gff.start -= 1;
+ }
+
+ /*
+ Parse ID value out from attributes string
+ */
+
+ char *attributes_copy = NULL;
+ attributes_copy = malloc(strlen(attributes_str) + 1);
+ if (!attributes_copy) {
+ fprintf(stderr, "Error: Could not allocate space for GFF attributes copy\n");
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ memcpy(attributes_copy, attributes_str, strlen(attributes_str) + 1);
+ const char *kv_tok;
+ const char *gff_id_prefix = "ID=";
+ const char *gff_null_id = ".";
+ char *id_str = NULL;
+ memcpy(c2b_globals.gff->id, gff_null_id, strlen(gff_null_id) + 1);
+ while ((kv_tok = c2b_strsep(&attributes_copy, ";")) != NULL) {
+ id_str = strstr(kv_tok, gff_id_prefix);
+ if (id_str) {
+ memcpy(c2b_globals.gff->id, kv_tok + strlen(gff_id_prefix), strlen(kv_tok + strlen(gff_id_prefix)) + 1);
+ c2b_globals.gff->id[strlen(kv_tok + strlen(gff_id_prefix)) + 1] = '\0';
+ }
+ }
+ free(attributes_copy), attributes_copy = NULL;
+ gff.id = c2b_globals.gff->id;
+
+ /*
+ Convert GFF struct to BED string and copy it to destination
+ */
+
+ c2b_line_convert_gff_to_bed(gff, dest, dest_size);
+}
+
+static inline void
+c2b_line_convert_gff_to_bed(c2b_gff_t g, char *dest_line, ssize_t *dest_size)
+{
+ /*
+ For GFF- and GVF-formatted data, we use the mapping provided by BEDOPS convention described at:
+
+ http://bedops.readthedocs.org/en/latest/content/reference/file-management/conversion/gff2bed.html
+
+ GFF field BED column index BED field
+ -------------------------------------------------------------------------
+ seqid 1 chromosome
+ start 2 start
+ end 3 stop
+ ID (via attributes) 4 id
+ score 5 score
+ strand 6 strand
+
+ The remaining GFF columns are mapped as-is, in same order, to adjacent BED columns:
+
+ GFF field BED column index BED field
+ -------------------------------------------------------------------------
+ source 7 -
+ type 8 -
+ phase 9 -
+ attributes 10 -
+ */
+
+ *dest_size += sprintf(dest_line + *dest_size,
+ "%s\t" \
+ "%" PRIu64 "\t" \
+ "%" PRIu64 "\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\n",
+ g.seqid,
+ g.start,
+ g.end,
+ g.id,
+ g.score,
+ g.strand,
+ g.source,
+ g.type,
+ g.phase,
+ g.attributes);
+}
+
+static void
+c2b_line_convert_psl_to_bed_unsorted(char *dest, ssize_t *dest_size, char *src, ssize_t src_size)
+{
+ ssize_t psl_field_offsets[C2B_MAX_FIELD_COUNT_VALUE];
+ int psl_field_idx = 0;
+ ssize_t current_src_posn = -1;
+
+ while (++current_src_posn < src_size) {
+ if ((src[current_src_posn] == c2b_tab_delim) || (src[current_src_posn] == c2b_line_delim)) {
+ psl_field_offsets[psl_field_idx++] = current_src_posn;
+ }
+ if (psl_field_idx >= C2B_MAX_FIELD_COUNT_VALUE) {
+ fprintf(stderr, "Error: Invalid field count (%d) -- input file may have too many fields\n", psl_field_idx);
+ c2b_print_usage(stderr);
+ exit(EINVAL); /* Invalid argument (POSIX.1) */
+ }
+ }
+ psl_field_offsets[psl_field_idx] = src_size;
+ psl_field_offsets[psl_field_idx + 1] = -1;
+
+ /*
+ If number of fields is not in bounds, we may need to exit early
+ */
+
+ if (((psl_field_idx + 1) < c2b_psl_field_min) || ((psl_field_idx + 1) > c2b_psl_field_max)) {
+ if ((psl_field_idx == 0) || (psl_field_idx == 17)) {
+ if ((c2b_globals.psl->is_headered) && (c2b_globals.keep_header_flag) && (c2b_globals.header_line_idx <= 5)) {
+ /* copy header line to destination stream buffer */
+ char src_header_line_str[C2B_MAX_LINE_LENGTH_VALUE];
+ char dest_header_line_str[C2B_MAX_LINE_LENGTH_VALUE];
+ memcpy(src_header_line_str, src, src_size);
+ src_header_line_str[src_size] = '\0';
+ sprintf(dest_header_line_str, "%s\t%u\t%u\t%s\n", c2b_header_chr_name, c2b_globals.header_line_idx, (c2b_globals.header_line_idx + 1), src_header_line_str);
+ memcpy(dest + *dest_size, dest_header_line_str, strlen(dest_header_line_str));
+ *dest_size += strlen(dest_header_line_str);
+ c2b_globals.header_line_idx++;
+ return;
+ }
+ else if ((c2b_globals.psl->is_headered) && (c2b_globals.header_line_idx <= 5)) {
+ c2b_globals.header_line_idx++;
+ return;
+ }
+ else {
+ fprintf(stderr, "Error: Possible corrupt input on line %u -- if PSL input is headered, use the --headered option\n", c2b_globals.header_line_idx);
+ c2b_print_usage(stderr);
+ exit(EINVAL); /* Invalid argument (POSIX.1) */
+ }
+ }
+ else {
+ fprintf(stderr, "Error: Invalid field count (%d) -- input file may not match input format\n", psl_field_idx);
+ c2b_print_usage(stderr);
+ exit(EINVAL); /* Invalid argument (POSIX.1) */
+ }
+ }
+
+ /* 0 - matches */
+ char matches_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t matches_size = psl_field_offsets[0];
+ memcpy(matches_str, src, matches_size);
+ matches_str[matches_size] = '\0';
+ uint64_t matches_val = strtoull(matches_str, NULL, 10);
+
+#ifdef DEBUG
+ fprintf(stderr, "matches_str: [%s]\n", matches_str);
+#endif
+
+ /*
+ We test if matches is a number or string, as one of the header
+ lines can mimic a genomic element
+ */
+
+ if ((matches_val == 0) && (!isdigit(matches_str[0]))) {
+ if ((c2b_globals.psl->is_headered) && (c2b_globals.keep_header_flag) && (c2b_globals.header_line_idx <= 5)) {
+ /* copy header line to destination stream buffer */
+ char src_header_line_str[C2B_MAX_LINE_LENGTH_VALUE];
+ char dest_header_line_str[C2B_MAX_LINE_LENGTH_VALUE];
+ memcpy(src_header_line_str, src, src_size);
+ src_header_line_str[src_size] = '\0';
+ sprintf(dest_header_line_str, "%s\t%u\t%u\t%s\n", c2b_header_chr_name, c2b_globals.header_line_idx, (c2b_globals.header_line_idx + 1), src_header_line_str);
+ memcpy(dest + *dest_size, dest_header_line_str, strlen(dest_header_line_str));
+ *dest_size += strlen(dest_header_line_str);
+ c2b_globals.header_line_idx++;
+ }
+ return;
+ }
+
+ /* 1 - misMatches */
+ char misMatches_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t misMatches_size = psl_field_offsets[1] - psl_field_offsets[0] - 1;
+ memcpy(misMatches_str, src + psl_field_offsets[0] + 1, misMatches_size);
+ misMatches_str[misMatches_size] = '\0';
+ uint64_t misMatches_val = strtoull(misMatches_str, NULL, 10);
+
+#ifdef DEBUG
+ fprintf(stderr, "misMatches_str: [%s]\n", misMatches_str);
+#endif
+
+ /* 2 - repMatches */
+ char repMatches_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t repMatches_size = psl_field_offsets[2] - psl_field_offsets[1] - 1;
+ memcpy(repMatches_str, src + psl_field_offsets[1] + 1, repMatches_size);
+ repMatches_str[repMatches_size] = '\0';
+ uint64_t repMatches_val = strtoull(repMatches_str, NULL, 10);
+
+#ifdef DEBUG
+ fprintf(stderr, "repMatches_str: [%s]\n", repMatches_str);
+#endif
+
+ /* 3 - nCount */
+ char nCount_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t nCount_size = psl_field_offsets[3] - psl_field_offsets[2] - 1;
+ memcpy(nCount_str, src + psl_field_offsets[2] + 1, nCount_size);
+ nCount_str[nCount_size] = '\0';
+ uint64_t nCount_val = strtoull(nCount_str, NULL, 10);
+
+#ifdef DEBUG
+ fprintf(stderr, "nCount_str: [%s]\n", nCount_str);
+#endif
+
+ /* 4 - qNumInsert */
+ char qNumInsert_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t qNumInsert_size = psl_field_offsets[4] - psl_field_offsets[3] - 1;
+ memcpy(qNumInsert_str, src + psl_field_offsets[3] + 1, qNumInsert_size);
+ qNumInsert_str[qNumInsert_size] = '\0';
+ uint64_t qNumInsert_val = strtoull(qNumInsert_str, NULL, 10);
+
+#ifdef DEBUG
+ fprintf(stderr, "qNumInsert_str: [%s]\n", qNumInsert_str);
+#endif
+
+ /* 5 - qBaseInsert */
+ char qBaseInsert_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t qBaseInsert_size = psl_field_offsets[5] - psl_field_offsets[4] - 1;
+ memcpy(qBaseInsert_str, src + psl_field_offsets[4] + 1, qBaseInsert_size);
+ qBaseInsert_str[qBaseInsert_size] = '\0';
+ uint64_t qBaseInsert_val = strtoull(qBaseInsert_str, NULL, 10);
+
+#ifdef DEBUG
+ fprintf(stderr, "qBaseInsert_str: [%s]\n", qBaseInsert_str);
+#endif
+
+ /* 6 - tNumInsert */
+ char tNumInsert_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t tNumInsert_size = psl_field_offsets[6] - psl_field_offsets[5] - 1;
+ memcpy(tNumInsert_str, src + psl_field_offsets[5] + 1, tNumInsert_size);
+ tNumInsert_str[tNumInsert_size] = '\0';
+ uint64_t tNumInsert_val = strtoull(tNumInsert_str, NULL, 10);
+
+#ifdef DEBUG
+ fprintf(stderr, "tNumInsert_str: [%s]\n", tNumInsert_str);
+#endif
+
+ /* 7 - tBaseInsert */
+ char tBaseInsert_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t tBaseInsert_size = psl_field_offsets[7] - psl_field_offsets[6] - 1;
+ memcpy(tBaseInsert_str, src + psl_field_offsets[6] + 1, tBaseInsert_size);
+ tBaseInsert_str[tBaseInsert_size] = '\0';
+ uint64_t tBaseInsert_val = strtoull(tBaseInsert_str, NULL, 10);
+
+#ifdef DEBUG
+ fprintf(stderr, "tBaseInsert_str: [%s]\n", tBaseInsert_str);
+#endif
+
+ /* 8 - strand */
+ char strand_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t strand_size = psl_field_offsets[8] - psl_field_offsets[7] - 1;
+ memcpy(strand_str, src + psl_field_offsets[7] + 1, strand_size);
+ strand_str[strand_size] = '\0';
+
+#ifdef DEBUG
+ fprintf(stderr, "strand_str: [%s]\n", strand_str);
+#endif
+
+ /* 9 - qName */
+ char qName_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t qName_size = psl_field_offsets[9] - psl_field_offsets[8] - 1;
+ memcpy(qName_str, src + psl_field_offsets[8] + 1, qName_size);
+ qName_str[qName_size] = '\0';
+
+#ifdef DEBUG
+ fprintf(stderr, "qName_str: [%s]\n", qName_str);
+#endif
+
+ /* 10 - qSize */
+ char qSize_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t qSize_size = psl_field_offsets[10] - psl_field_offsets[9] - 1;
+ memcpy(qSize_str, src + psl_field_offsets[9] + 1, qSize_size);
+ qSize_str[qSize_size] = '\0';
+ uint64_t qSize_val = strtoull(qSize_str, NULL, 10);
+
+#ifdef DEBUG
+ fprintf(stderr, "qSize_str: [%s]\n", qSize_str);
+#endif
+
+ /* 11 - qStart */
+ char qStart_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t qStart_size = psl_field_offsets[11] - psl_field_offsets[10] - 1;
+ memcpy(qStart_str, src + psl_field_offsets[10] + 1, qStart_size);
+ qStart_str[qStart_size] = '\0';
+ uint64_t qStart_val = strtoull(qStart_str, NULL, 10);
+
+#ifdef DEBUG
+ fprintf(stderr, "qStart_str: [%s]\n", qStart_str);
+#endif
+
+ /* 12 - qEnd */
+ char qEnd_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t qEnd_size = psl_field_offsets[12] - psl_field_offsets[11] - 1;
+ memcpy(qEnd_str, src + psl_field_offsets[11] + 1, qEnd_size);
+ qEnd_str[qEnd_size] = '\0';
+ uint64_t qEnd_val = strtoull(qEnd_str, NULL, 10);
+
+#ifdef DEBUG
+ fprintf(stderr, "qEnd_str: [%s]\n", qEnd_str);
+#endif
+
+ /* 13 - tName */
+ char tName_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t tName_size = psl_field_offsets[13] - psl_field_offsets[12] - 1;
+ memcpy(tName_str, src + psl_field_offsets[12] + 1, tName_size);
+ tName_str[tName_size] = '\0';
+
+#ifdef DEBUG
+ fprintf(stderr, "tName_str: [%s]\n", tName_str);
+#endif
+
+ /* 14 - tSize */
+ char tSize_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t tSize_size = psl_field_offsets[14] - psl_field_offsets[13] - 1;
+ memcpy(tSize_str, src + psl_field_offsets[13] + 1, tSize_size);
+ tSize_str[tSize_size] = '\0';
+ uint64_t tSize_val = strtoull(tSize_str, NULL, 10);
+
+#ifdef DEBUG
+ fprintf(stderr, "tSize_str: [%s]\n", tSize_str);
+#endif
+
+ /* 15 - tStart */
+ char tStart_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t tStart_size = psl_field_offsets[15] - psl_field_offsets[14] - 1;
+ memcpy(tStart_str, src + psl_field_offsets[14] + 1, tStart_size);
+ tStart_str[tStart_size] = '\0';
+ uint64_t tStart_val = strtoull(tStart_str, NULL, 10);
+
+#ifdef DEBUG
+ fprintf(stderr, "tStart_str: [%s]\n", tStart_str);
+#endif
+
+ /* 16 - tEnd */
+ char tEnd_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t tEnd_size = psl_field_offsets[16] - psl_field_offsets[15] - 1;
+ memcpy(tEnd_str, src + psl_field_offsets[15] + 1, tEnd_size);
+ tEnd_str[tEnd_size] = '\0';
+ uint64_t tEnd_val = strtoull(tEnd_str, NULL, 10);
+
+#ifdef DEBUG
+ fprintf(stderr, "tEnd_str: [%s]\n", tEnd_str);
+#endif
+
+ /* 17 - blockCount */
+ char blockCount_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t blockCount_size = psl_field_offsets[17] - psl_field_offsets[16] - 1;
+ memcpy(blockCount_str, src + psl_field_offsets[16] + 1, blockCount_size);
+ blockCount_str[blockCount_size] = '\0';
+ uint64_t blockCount_val = strtoull(blockCount_str, NULL, 10);
+
+#ifdef DEBUG
+ fprintf(stderr, "blockCount_str: [%s]\n", blockCount_str);
+#endif
+
+ /* 18 - blockSizes */
+ char blockSizes_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t blockSizes_size = psl_field_offsets[18] - psl_field_offsets[17] - 1;
+ memcpy(blockSizes_str, src + psl_field_offsets[17] + 1, blockSizes_size);
+ blockSizes_str[blockSizes_size] = '\0';
+
+#ifdef DEBUG
+ fprintf(stderr, "blockSizes_str: [%s]\n", blockSizes_str);
+#endif
+
+ /* 19 - qStarts */
+ char qStarts_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t qStarts_size = psl_field_offsets[19] - psl_field_offsets[18] - 1;
+ memcpy(qStarts_str, src + psl_field_offsets[18] + 1, qStarts_size);
+ qStarts_str[qStarts_size] = '\0';
+
+#ifdef DEBUG
+ fprintf(stderr, "qStarts_str: [%s]\n", qStarts_str);
+#endif
+
+ /* 20 - tStarts */
+ char tStarts_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t tStarts_size = psl_field_offsets[20] - psl_field_offsets[19] - 1;
+ memcpy(tStarts_str, src + psl_field_offsets[19] + 1, tStarts_size);
+ tStarts_str[tStarts_size] = '\0';
+
+#ifdef DEBUG
+ fprintf(stderr, "tStarts_str: [%s]\n", tStarts_str);
+#endif
+
+ c2b_psl_t psl;
+ psl.matches = matches_val;
+ psl.misMatches = misMatches_val;
+ psl.repMatches = repMatches_val;
+ psl.nCount = nCount_val;
+ psl.qNumInsert = qNumInsert_val;
+ psl.qBaseInsert = qBaseInsert_val;
+ psl.tNumInsert = tNumInsert_val;
+ psl.tBaseInsert = tBaseInsert_val;
+ psl.strand = strand_str;
+ psl.qName = qName_str;
+ psl.qSize = qSize_val;
+ psl.qStart = qStart_val;
+ psl.qEnd = qEnd_val;
+ psl.tName = tName_str;
+ psl.tSize = tSize_val;
+ psl.tStart = tStart_val;
+ psl.tEnd = tEnd_val;
+ psl.blockCount = blockCount_val;
+ psl.blockSizes = blockSizes_str;
+ psl.qStarts = qStarts_str;
+ psl.tStarts = tStarts_str;
+
+ /*
+ Convert PSL struct to BED string and copy it to destination
+ */
+
+ if ((c2b_globals.split_flag) && (blockCount_val > 1)) {
+ if (c2b_globals.psl->block->max_count < blockCount_val) {
+ fprintf(stderr, "Error: Insufficent PSL block state global size\n");
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ /* parse tStarts_str and blockSizes_str to write per-block elements */
+ c2b_psl_blockSizes_to_ptr(blockSizes_str, blockCount_val);
+ c2b_psl_tStarts_to_ptr(tStarts_str, blockCount_val);
+ for (uint64_t bc_idx = 0; bc_idx < blockCount_val; bc_idx++) {
+ psl.tStart = c2b_globals.psl->block->starts[bc_idx];
+ psl.tEnd = c2b_globals.psl->block->starts[bc_idx] + c2b_globals.psl->block->sizes[bc_idx];
+ c2b_line_convert_psl_to_bed(psl, dest, dest_size);
+ }
+ }
+ else {
+ c2b_line_convert_psl_to_bed(psl, dest, dest_size);
+ }
+}
+
+static inline void
+c2b_psl_blockSizes_to_ptr(char *s, uint64_t bc)
+{
+ size_t start_bs_offset = 0;
+ size_t end_bs_index = 0;
+ size_t length_bs_offset = 0;
+ uint64_t bc_idx;
+ char bs_arr[C2B_MAX_PSL_BLOCK_SIZES_STRING_LENGTH];
+ char *bs_ptr = NULL;
+ uint64_t bs_val = 0;
+
+ for (bc_idx = 0; bc_idx < bc; bc_idx++) {
+ bs_ptr = strchr(s + start_bs_offset, c2b_psl_blockSizes_delimiter);
+#ifdef DEBUG
+ fprintf(stderr, "s: [%s] | bs_ptr: [%s]\n", s, bs_ptr);
+#endif
+ if (bs_ptr) {
+ end_bs_index = bs_ptr - s;
+#ifdef DEBUG
+ fprintf(stderr, "start_bs_offset: [%zu] | end_bs_index: [%zu]\n", start_bs_offset, end_bs_index);
+#endif
+ length_bs_offset = end_bs_index - start_bs_offset;
+ if (length_bs_offset > C2B_MAX_PSL_BLOCK_SIZES_STRING_LENGTH) {
+ fprintf(stderr, "Error: PSL block size string length too long\n");
+ exit(EINVAL); // Invalid argument (POSIX.1)
+ }
+ memcpy(bs_arr, s + start_bs_offset, length_bs_offset);
+ bs_arr[length_bs_offset] = '\0';
+#ifdef DEBUG
+ fprintf(stderr, "bs_arr: [%s]\n", bs_arr);
+#endif
+ bs_val = strtoull(bs_arr, NULL, 10);
+ c2b_globals.psl->block->sizes[bc_idx] = bs_val;
+ start_bs_offset = end_bs_index + 1;
+ }
+ }
+}
+
+static inline void
+c2b_psl_tStarts_to_ptr(char *s, uint64_t bc)
+{
+ size_t start_ts_offset = 0;
+ size_t end_ts_index = 0;
+ size_t length_ts_offset = 0;
+ uint64_t bc_idx;
+ char ts_arr[C2B_MAX_PSL_T_STARTS_STRING_LENGTH];
+ char *ts_ptr = NULL;
+ uint64_t ts_val = 0;
+
+ for (bc_idx = 0; bc_idx < bc; bc_idx++) {
+ ts_ptr = strchr(s + start_ts_offset, c2b_psl_tStarts_delimiter);
+#ifdef DEBUG
+ fprintf(stderr, "s: [%s] | ts_ptr: [%s]\n", s, ts_ptr);
+#endif
+ if (ts_ptr) {
+ end_ts_index = ts_ptr - s;
+#ifdef DEBUG
+ fprintf(stderr, "start_ts_offset: [%zu] | end_ts_index: [%zu]\n", start_ts_offset, end_ts_index);
+#endif
+ length_ts_offset = end_ts_index - start_ts_offset;
+ if (length_ts_offset > C2B_MAX_PSL_T_STARTS_STRING_LENGTH) {
+ fprintf(stderr, "Error: PSL block start string length too long\n");
+ exit(EINVAL); // Invalid argument (POSIX.1)
+ }
+ memcpy(ts_arr, s + start_ts_offset, length_ts_offset);
+ ts_arr[length_ts_offset] = '\0';
+#ifdef DEBUG
+ fprintf(stderr, "ts_arr: [%s]\n", ts_arr);
+#endif
+ ts_val = strtoull(ts_arr, NULL, 10);
+ c2b_globals.psl->block->starts[bc_idx] = ts_val;
+ start_ts_offset = end_ts_index + 1;
+ }
+ }
+}
+
+static inline void
+c2b_line_convert_psl_to_bed(c2b_psl_t p, char *dest_line, ssize_t *dest_size)
+{
+ /*
+ For PSL-formatted data, we use the mapping provided by BEDOPS convention described at:
+
+ http://bedops.readthedocs.org/en/latest/content/reference/file-management/conversion/psl2bed.html
+
+ PSL field BED column index BED field
+ -------------------------------------------------------------------------
+ tName 1 chromosome
+ tStart 2 start
+ tEnd 3 stop
+ qName 4 id
+ matches 5 score
+ strand 6 strand
+
+ The remaining PSL columns are mapped as-is, in same order, to adjacent BED columns:
+
+ PSL field BED column index BED field
+ -------------------------------------------------------------------------
+ qSize 7 -
+ misMatches 8 -
+ repMatches 9 -
+ nCount 10 -
+ qNumInsert 11 -
+ qBaseInsert 12 -
+ tNumInsert 13 -
+ tBaseInsert 14 -
+ qStart 15 -
+ qEnd 16 -
+ tSize 17 -
+ blockCount 18 -
+ blockSizes 19 -
+ qStarts 20 -
+ tStarts 21 -
+ */
+
+ *dest_size += sprintf(dest_line + *dest_size,
+ "%s\t" \
+ "%" PRIu64 "\t" \
+ "%" PRIu64 "\t" \
+ "%s\t" \
+ "%" PRIu64 "\t" \
+ "%s\t" \
+ "%" PRIu64 "\t" \
+ "%" PRIu64 "\t" \
+ "%" PRIu64 "\t" \
+ "%" PRIu64 "\t" \
+ "%" PRIu64 "\t" \
+ "%" PRIu64 "\t" \
+ "%" PRIu64 "\t" \
+ "%" PRIu64 "\t" \
+ "%" PRIu64 "\t" \
+ "%" PRIu64 "\t" \
+ "%" PRIu64 "\t" \
+ "%" PRIu64 "\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\n",
+ p.tName,
+ p.tStart,
+ p.tEnd,
+ p.qName,
+ p.matches,
+ p.strand,
+ p.qSize,
+ p.misMatches,
+ p.repMatches,
+ p.nCount,
+ p.qNumInsert,
+ p.qBaseInsert,
+ p.tNumInsert,
+ p.tBaseInsert,
+ p.qStart,
+ p.qEnd,
+ p.tSize,
+ p.blockCount,
+ p.blockSizes,
+ p.qStarts,
+ p.tStarts);
+}
+
+static void
+c2b_line_convert_rmsk_to_bed_unsorted(char *dest, ssize_t *dest_size, char *src, ssize_t src_size)
+{
+ /*
+ RepeatMasker annotation output is space-delimited and can have multiple spaces. We also need to walk
+ past the first lines of the the output data to skip the header.
+ */
+
+ ssize_t rmsk_field_start_offsets[C2B_MAX_FIELD_COUNT_VALUE];
+ ssize_t rmsk_field_end_offsets[C2B_MAX_FIELD_COUNT_VALUE];
+ int rmsk_field_start_idx = 0;
+ int rmsk_field_end_idx = 0;
+ ssize_t current_src_posn = 0;
+
+ while (current_src_posn < src_size) {
+ /* within bounds */
+ if (((current_src_posn + 1) < src_size) && (c2b_globals.rmsk->line >= c2b_rmsk_header_line_count)) {
+ /* skip over any initial spaces */
+ while (c2b_globals.rmsk->is_start_of_line) {
+ if ((src[current_src_posn] != c2b_space_delim) && (src[current_src_posn] != c2b_line_delim)) {
+ c2b_globals.rmsk->is_start_of_line = kFalse;
+ rmsk_field_start_offsets[rmsk_field_start_idx++] = current_src_posn; /* 0th offset is *start* of actual data */
+ break;
+ }
+ if (rmsk_field_start_idx >= C2B_MAX_FIELD_COUNT_VALUE) {
+ fprintf(stderr, "Error: Invalid field count (%d) -- input file may have too many fields\n", rmsk_field_start_idx);
+ c2b_print_usage(stderr);
+ exit(EINVAL); // Invalid argument (POSIX.1)
+ }
+ current_src_posn++;
+ }
+ /* if current position is a space delimiter, we keep reading until there are no more spaces */
+ if (src[current_src_posn] == c2b_space_delim) {
+ c2b_globals.rmsk->is_start_of_gap = kTrue;
+ if (c2b_globals.rmsk->is_start_of_gap) {
+ rmsk_field_end_offsets[rmsk_field_end_idx++] = current_src_posn; /* current offset is end of current field */
+ }
+ /* walk through gap until next field is found */
+ while (c2b_globals.rmsk->is_start_of_gap) {
+ if (src[current_src_posn++] != c2b_space_delim) {
+ c2b_globals.rmsk->is_start_of_gap = kFalse;
+ rmsk_field_start_offsets[rmsk_field_start_idx++] = current_src_posn - 1; /* current offset is start of next field */
+ if (src[current_src_posn] == c2b_line_delim) {
+ rmsk_field_end_offsets[rmsk_field_end_idx++] = current_src_posn;
+ }
+ current_src_posn--;
+ break;
+ }
+ }
+ }
+ /* if current position is a line delimiter, we increment some indices */
+ else if (src[current_src_posn] == c2b_line_delim) {
+ rmsk_field_end_offsets[rmsk_field_end_idx++] = current_src_posn;
+ c2b_globals.rmsk->line++;
+ c2b_globals.rmsk->is_start_of_line = kTrue;
+ c2b_globals.rmsk->is_start_of_gap = kFalse;
+ }
+ }
+ else {
+ if (src[current_src_posn + 1] == c2b_line_delim) {
+ rmsk_field_end_offsets[rmsk_field_end_idx++] = current_src_posn + 1;
+ c2b_globals.rmsk->line++;
+ c2b_globals.rmsk->is_start_of_line = kTrue;
+ c2b_globals.rmsk->is_start_of_gap = kFalse;
+ if (c2b_globals.rmsk->line <= c2b_rmsk_header_line_count) {
+ if (c2b_globals.keep_header_flag) {
+ char src_header_line_str[C2B_MAX_LINE_LENGTH_VALUE];
+ char dest_header_line_str[C2B_MAX_LINE_LENGTH_VALUE];
+ memcpy(src_header_line_str, src, src_size);
+ src_header_line_str[src_size] = '\0';
+ sprintf(dest_header_line_str, "%s\t%u\t%u\t%s\n", c2b_header_chr_name, c2b_globals.header_line_idx, (c2b_globals.header_line_idx + 1), src_header_line_str);
+ memcpy(dest + *dest_size, dest_header_line_str, strlen(dest_header_line_str));
+ *dest_size += strlen(dest_header_line_str);
+ c2b_globals.header_line_idx++;
+ }
+ return;
+ }
+ }
+ }
+ current_src_posn++;
+ }
+
+ c2b_globals.rmsk->is_start_of_line = kTrue;
+ c2b_globals.rmsk->is_start_of_gap = kFalse;
+
+#ifdef DEBUG
+ fprintf(stderr, "rmsk_field_start_idx: %d\n", (int) rmsk_field_start_idx);
+ fprintf(stderr, "rmsk_field_end_idx: %d\n", (int) rmsk_field_end_idx);
+#endif
+
+ if ((rmsk_field_start_idx < c2b_rmsk_field_min) || (rmsk_field_end_idx > c2b_rmsk_field_max)) {
+ fprintf(stderr, "Error: Invalid field count (%d) -- input file may not match input format\n", rmsk_field_start_idx);
+ c2b_print_usage(stderr);
+ exit(EINVAL); // Invalid argument (POSIX.1)
+ }
+
+ /* 0 - Smith-Waterman score of the match */
+ char sw_score_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t sw_score_start = rmsk_field_start_offsets[0];
+ ssize_t sw_score_end = rmsk_field_end_offsets[0];
+ ssize_t sw_score_size = sw_score_end - sw_score_start;
+ memcpy(sw_score_str, src + sw_score_start, sw_score_size);
+ sw_score_str[sw_score_size] = '\0';
+
+#ifdef DEBUG
+ fprintf(stderr, "sw_score_str [%s]\n", sw_score_str);
+#endif
+
+ /* 1 - Percent, divergence = mismatches / (matches + mismatches) */
+ char perc_div_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t perc_div_start = rmsk_field_start_offsets[1];
+ ssize_t perc_div_end = rmsk_field_end_offsets[1];
+ ssize_t perc_div_size = perc_div_end - perc_div_start;
+ memcpy(perc_div_str, src + perc_div_start, perc_div_size);
+ perc_div_str[perc_div_size] = '\0';
+
+#ifdef DEBUG
+ fprintf(stderr, "perc_div_str [%s]\n", perc_div_str);
+#endif
+
+ /* 2 - Percent, bases opposite a gap in the query sequence = deleted bp */
+ char perc_deleted_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t perc_deleted_start = rmsk_field_start_offsets[2];
+ ssize_t perc_deleted_end = rmsk_field_end_offsets[2];
+ ssize_t perc_deleted_size = perc_deleted_end - perc_deleted_start;
+ memcpy(perc_deleted_str, src + perc_deleted_start, perc_deleted_size);
+ perc_deleted_str[perc_deleted_size] = '\0';
+
+#ifdef DEBUG
+ fprintf(stderr, "perc_deleted_str [%s]\n", perc_deleted_str);
+#endif
+
+ /* 3 - Percent, bases opposite a gap in the repeat consensus = inserted bp */
+ char perc_inserted_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t perc_inserted_start = rmsk_field_start_offsets[3];
+ ssize_t perc_inserted_end = rmsk_field_end_offsets[3];
+ ssize_t perc_inserted_size = perc_inserted_end - perc_inserted_start;
+ memcpy(perc_inserted_str, src + perc_inserted_start, perc_inserted_size);
+ perc_inserted_str[perc_inserted_size] = '\0';
+
+#ifdef DEBUG
+ fprintf(stderr, "perc_inserted_str [%s]\n", perc_inserted_str);
+#endif
+
+ /* 4 - Query sequence */
+ char query_seq_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t query_seq_start = rmsk_field_start_offsets[4];
+ ssize_t query_seq_end = rmsk_field_end_offsets[4];
+ ssize_t query_seq_size = query_seq_end - query_seq_start;
+ memcpy(query_seq_str, src + query_seq_start, query_seq_size);
+ query_seq_str[query_seq_size] = '\0';
+
+#ifdef DEBUG
+ fprintf(stderr, "query_seq_str [%s]\n", query_seq_str);
+#endif
+
+ /* 5 - Query start (1-indexed) */
+ char query_start_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t query_start_start = rmsk_field_start_offsets[5];
+ ssize_t query_start_end = rmsk_field_end_offsets[5];
+ ssize_t query_start_size = query_start_end - query_start_start;
+ memcpy(query_start_str, src + query_start_start, query_start_size);
+ query_start_str[query_start_size] = '\0';
+ uint64_t query_start_val = strtoull(query_start_str, NULL, 10);
+
+#ifdef DEBUG
+ fprintf(stderr, "query_start_str [%s]\n", query_start_str);
+#endif
+
+ /* 6 - Query end */
+ char query_end_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t query_end_start = rmsk_field_start_offsets[6];
+ ssize_t query_end_end = rmsk_field_end_offsets[6];
+ ssize_t query_end_size = query_end_end - query_end_start;
+ memcpy(query_end_str, src + query_end_start, query_end_size);
+ query_end_str[query_end_size] = '\0';
+ uint64_t query_end_val = strtoull(query_end_str, NULL, 10);
+
+#ifdef DEBUG
+ fprintf(stderr, "query_end_str [%s]\n", query_end_str);
+#endif
+
+ /* 7 - Bases in query sequence past the ending position of match */
+ char bases_past_match_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t bases_past_match_start = rmsk_field_start_offsets[7];
+ ssize_t bases_past_match_end = rmsk_field_end_offsets[7];
+ ssize_t bases_past_match_size = bases_past_match_end - bases_past_match_start;
+ memcpy(bases_past_match_str, src + bases_past_match_start, bases_past_match_size);
+ bases_past_match_str[bases_past_match_size] = '\0';
+
+#ifdef DEBUG
+ fprintf(stderr, "bases_past_match_str [%s]\n", bases_past_match_str);
+#endif
+
+ /* 8 - Strand match with repeat consensus sequence (+ = forward, C = complement) */
+ char strand_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t strand_start = rmsk_field_start_offsets[8];
+ ssize_t strand_end = rmsk_field_end_offsets[8];
+ ssize_t strand_size = strand_end - strand_start;
+ memcpy(strand_str, src + strand_start, strand_size);
+ strand_str[strand_size] = '\0';
+ if (strcmp(strand_str, c2b_rmsk_strand_complement) == 0) {
+ memcpy(strand_str, c2b_rmsk_strand_complement_replacement, strlen(c2b_rmsk_strand_complement_replacement) + 1);
+ }
+
+#ifdef DEBUG
+ fprintf(stderr, "strand_str [%s]\n", strand_str);
+#endif
+
+ /* 9 - Matching interspersed repeat name */
+ char repeat_name_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t repeat_name_start = rmsk_field_start_offsets[9];
+ ssize_t repeat_name_end = rmsk_field_end_offsets[9];
+ ssize_t repeat_name_size = repeat_name_end - repeat_name_start;
+ memcpy(repeat_name_str, src + repeat_name_start, repeat_name_size);
+ repeat_name_str[repeat_name_size] = '\0';
+
+#ifdef DEBUG
+ fprintf(stderr, "repeat_name_str [%s]\n", repeat_name_str);
+#endif
+
+ /* 10 - Repeat class */
+ char repeat_class_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t repeat_class_start = rmsk_field_start_offsets[10];
+ ssize_t repeat_class_end = rmsk_field_end_offsets[10];
+ ssize_t repeat_class_size = repeat_class_end - repeat_class_start;
+ memcpy(repeat_class_str, src + repeat_class_start, repeat_class_size);
+ repeat_class_str[repeat_class_size] = '\0';
+
+#ifdef DEBUG
+ fprintf(stderr, "repeat_class_str [%s]\n", repeat_class_str);
+#endif
+
+ /* 11 - Bases in (complement of) the repeat consensus sequence, prior to beginning of the match */
+ char bases_before_match_comp_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t bases_before_match_comp_start = rmsk_field_start_offsets[11];
+ ssize_t bases_before_match_comp_end = rmsk_field_end_offsets[11];
+ ssize_t bases_before_match_comp_size = bases_before_match_comp_end - bases_before_match_comp_start;
+ memcpy(bases_before_match_comp_str, src + bases_before_match_comp_start, bases_before_match_comp_size);
+ bases_before_match_comp_str[bases_before_match_comp_size] = '\0';
+
+#ifdef DEBUG
+ fprintf(stderr, "bases_before_match_comp_str [%s]\n", bases_before_match_comp_str);
+#endif
+
+ /* 12 - Match start (in repeat consensus sequence) */
+ char match_start_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t match_start_start = rmsk_field_start_offsets[12];
+ ssize_t match_start_end = rmsk_field_end_offsets[12];
+ ssize_t match_start_size = match_start_end - match_start_start;
+ memcpy(match_start_str, src + match_start_start, match_start_size);
+ match_start_str[match_start_size] = '\0';
+
+#ifdef DEBUG
+ fprintf(stderr, "match_start_str [%s]\n", match_start_str);
+#endif
+
+ /* 13 - Match end (in repeat consensus sequence) */
+ char match_end_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t match_end_start = rmsk_field_start_offsets[13];
+ ssize_t match_end_end = rmsk_field_end_offsets[13];
+ ssize_t match_end_size = match_end_end - match_end_start;
+ memcpy(match_end_str, src + match_end_start, match_end_size);
+ match_end_str[match_end_size] = '\0';
+
+#ifdef DEBUG
+ fprintf(stderr, "match_end_str [%s]\n", match_end_str);
+#endif
+
+ /* 14 - Identifier for individual insertions */
+ char unique_id_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t unique_id_start = rmsk_field_start_offsets[14];
+ ssize_t unique_id_end = rmsk_field_end_offsets[14];
+ ssize_t unique_id_size = unique_id_end - unique_id_start;
+ memcpy(unique_id_str, src + unique_id_start, unique_id_size);
+ unique_id_str[unique_id_size] = '\0';
+
+#ifdef DEBUG
+ fprintf(stderr, "unique_id_str [%s]\n", unique_id_str);
+#endif
+
+ /* 15 - Higher-scoring match present (optional) */
+ char higher_score_match_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ higher_score_match_str[0] = '\0';
+
+ if ((rmsk_field_start_idx == c2b_rmsk_field_max) && (rmsk_field_end_idx == c2b_rmsk_field_max)) {
+ ssize_t higher_score_match_start = rmsk_field_start_offsets[15];
+ ssize_t higher_score_match_end = rmsk_field_end_offsets[15];
+ ssize_t higher_score_match_size = higher_score_match_end - higher_score_match_start;
+ memcpy(higher_score_match_str, src + higher_score_match_start, higher_score_match_size);
+ higher_score_match_str[higher_score_match_size] = '\0';
+ }
+
+#ifdef DEBUG
+ fprintf(stderr, "higher_score_match_str [%s]\n", higher_score_match_str);
+#endif
+
+ c2b_rmsk_t rmsk;
+ rmsk.sw_score = sw_score_str;
+ rmsk.perc_div = perc_div_str;
+ rmsk.perc_deleted = perc_deleted_str;
+ rmsk.perc_inserted = perc_inserted_str;
+ rmsk.query_seq = query_seq_str;
+ rmsk.query_start = query_start_val - 1;
+ rmsk.query_end = query_end_val;
+ rmsk.bases_past_match = bases_past_match_str;
+ rmsk.strand = strand_str;
+ rmsk.repeat_name = repeat_name_str;
+ rmsk.repeat_class = repeat_class_str;
+ rmsk.bases_before_match_comp = bases_before_match_comp_str;
+ rmsk.match_start = match_start_str;
+ rmsk.match_end = match_end_str;
+ rmsk.unique_id = unique_id_str;
+ rmsk.higher_score_match = higher_score_match_str;
+
+ c2b_line_convert_rmsk_to_bed(rmsk, dest, dest_size);
+}
+
+static inline void
+c2b_line_convert_rmsk_to_bed(c2b_rmsk_t r, char *dest_line, ssize_t *dest_size)
+{
+ /*
+ For RepeatMasker annotation-formatted data, we use the mapping provided by BEDOPS
+ convention described at:
+
+ http://bedops.readthedocs.org/en/latest/content/reference/file-management/conversion/rmsk2bed.html
+
+ RepeatMasker field BED column index BED field
+ -------------------------------------------------------------------------
+ query_seq 1 chromosome
+ query_start - 1 2 start
+ query_end 3 stop
+ repeat_name 4 id
+ sw_score 5 score
+ strand 6 strand
+
+ The remaining RepeatMasker columns are mapped as-is, in same order, to adjacent BED columns:
+
+ RepeatMasker field BED column index BED field
+ -------------------------------------------------------------------------
+ perc_div 7 -
+ perc_deleted 8 -
+ perc_inserted 9 -
+ bases_past_match 10 -
+ repeat_class 11 -
+ bases_before_match_comp 12 -
+ match_start 13 -
+ match_end 14 -
+ unique_id 15 -
+ higher_score_match 16 -
+ */
+
+ if (strlen(r.higher_score_match) == 0) {
+ *dest_size += sprintf(dest_line + *dest_size,
+ "%s\t" \
+ "%" PRIu64 "\t" \
+ "%" PRIu64 "\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\n",
+ r.query_seq,
+ r.query_start,
+ r.query_end,
+ r.repeat_name,
+ r.sw_score,
+ r.strand,
+ r.perc_div,
+ r.perc_deleted,
+ r.perc_inserted,
+ r.bases_past_match,
+ r.repeat_class,
+ r.bases_before_match_comp,
+ r.match_start,
+ r.match_end,
+ r.unique_id);
+ }
+ else {
+ *dest_size += sprintf(dest_line + *dest_size,
+ "%s\t" \
+ "%" PRIu64 "\t" \
+ "%" PRIu64 "\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\n",
+ r.query_seq,
+ r.query_start,
+ r.query_end,
+ r.repeat_name,
+ r.sw_score,
+ r.strand,
+ r.perc_div,
+ r.perc_deleted,
+ r.perc_inserted,
+ r.bases_past_match,
+ r.repeat_class,
+ r.bases_before_match_comp,
+ r.match_start,
+ r.match_end,
+ r.unique_id,
+ r.higher_score_match);
+ }
+}
+
+static void
+c2b_line_convert_sam_to_bed_unsorted_without_split_operation(char *dest, ssize_t *dest_size, char *src, ssize_t src_size)
+{
+ /*
+ This functor builds a list of tab delimiters, but first reads in the CIGAR string (6th field) and
+ parses it for operation key-value pairs to loop through later on
+ */
+
+ ssize_t sam_field_offsets[C2B_MAX_FIELD_COUNT_VALUE];
+ int sam_field_idx = 0;
+ ssize_t current_src_posn = -1;
+
+ /*
+ Find offsets or process header line
+ */
+
+ if (src[0] == c2b_sam_header_prefix) {
+ if (!c2b_globals.keep_header_flag) {
+ /* skip header line */
+ return;
+ }
+ else {
+ /* copy header line to destination stream buffer */
+ char src_header_line_str[C2B_MAX_LINE_LENGTH_VALUE];
+ char dest_header_line_str[C2B_MAX_LINE_LENGTH_VALUE];
+ memcpy(src_header_line_str, src, src_size);
+ src_header_line_str[src_size] = '\0';
+ sprintf(dest_header_line_str, "%s\t%u\t%u\t%s\n", c2b_header_chr_name, c2b_globals.header_line_idx, (c2b_globals.header_line_idx + 1), src_header_line_str);
+ memcpy(dest + *dest_size, dest_header_line_str, strlen(dest_header_line_str));
+ *dest_size += strlen(dest_header_line_str);
+ c2b_globals.header_line_idx++;
+ return;
+ }
+ }
+
+ while (++current_src_posn < src_size) {
+ if ((src[current_src_posn] == c2b_tab_delim) || (src[current_src_posn] == c2b_line_delim)) {
+ sam_field_offsets[sam_field_idx++] = current_src_posn;
+ }
+ if (sam_field_idx >= C2B_MAX_FIELD_COUNT_VALUE) {
+ fprintf(stderr, "Error: Invalid field count (%d) -- input file may have too many fields\n", sam_field_idx);
+ c2b_print_usage(stderr);
+ exit(EINVAL); /* Invalid argument (POSIX.1) */
+ }
+ }
+ sam_field_offsets[sam_field_idx] = src_size;
+ sam_field_offsets[sam_field_idx + 1] = -1;
+
+ /*
+ If no more than one field is read in, then something went wrong
+ */
+
+ if (sam_field_idx == 0) {
+ fprintf(stderr, "Error: Invalid field count (%d) -- input file may not match input format\n", sam_field_idx);
+ c2b_print_usage(stderr);
+ exit(EINVAL); /* Invalid argument (POSIX.1) */
+ }
+
+ /*
+ Translate CIGAR string to operations
+ */
+
+ ssize_t cigar_size = sam_field_offsets[5] - sam_field_offsets[4];
+ char cigar_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ memcpy(cigar_str, src + sam_field_offsets[4] + 1, cigar_size - 1);
+ cigar_str[cigar_size - 1] = '\0';
+ c2b_sam_cigar_str_to_ops(cigar_str);
+#ifdef DEBUG
+ c2b_sam_debug_cigar_ops(c2b_globals.sam->cigar);
+#endif
+ ssize_t cigar_length = 0;
+ ssize_t op_idx = 0;
+ for (op_idx = 0; op_idx < c2b_globals.sam->cigar->length; ++op_idx) {
+ cigar_length += c2b_globals.sam->cigar->ops[op_idx].bases;
+ }
+
+ /*
+ Firstly, is the read mapped? If not, and c2b_globals.all_reads_flag is kFalse, we skip over this line
+ */
+
+ ssize_t flag_size = sam_field_offsets[1] - sam_field_offsets[0];
+ char flag_src_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ memcpy(flag_src_str, src + sam_field_offsets[0] + 1, flag_size);
+ flag_src_str[flag_size] = '\0';
+ int flag_val = (int) strtol(flag_src_str, NULL, 10);
+ boolean is_mapped = (boolean) !(4 & flag_val);
+ if ((!is_mapped) && (!c2b_globals.all_reads_flag))
+ return;
+
+ /*
+ Secondly, we need to retrieve RNAME, POS, QNAME parameters
+ */
+
+ /* RNAME */
+ char rname_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ if (is_mapped) {
+ ssize_t rname_size = sam_field_offsets[2] - sam_field_offsets[1] - 1;
+ memcpy(rname_str, src + sam_field_offsets[1] + 1, rname_size);
+ rname_str[rname_size] = '\0';
+ }
+ else {
+ char unmapped_read_chr_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ memcpy(unmapped_read_chr_str, c2b_unmapped_read_chr_name, strlen(c2b_unmapped_read_chr_name));
+ unmapped_read_chr_str[strlen(c2b_unmapped_read_chr_name)] = '\t';
+ unmapped_read_chr_str[strlen(c2b_unmapped_read_chr_name) + 1] = '\0';
+ memcpy(rname_str, unmapped_read_chr_str, strlen(unmapped_read_chr_str));
+ rname_str[strlen(unmapped_read_chr_str)] = '\0';
+ }
+
+ /* POS */
+ ssize_t pos_size = sam_field_offsets[3] - sam_field_offsets[2];
+ char pos_src_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ memcpy(pos_src_str, src + sam_field_offsets[2] + 1, pos_size - 1);
+ pos_src_str[pos_size - 1] = '\0';
+ uint64_t pos_val = strtoull(pos_src_str, NULL, 10);
+ uint64_t start_val = pos_val - 1; /* remember, start = POS - 1 */
+
+ /* QNAME */
+ char qname_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t qname_size = sam_field_offsets[0];
+ memcpy(qname_str, src, qname_size);
+ qname_str[qname_size] = '\0';
+
+ /* 16 & FLAG */
+ int strand_val = 0x10 & flag_val;
+ char strand_str[C2B_MAX_STRAND_LENGTH_VALUE];
+ sprintf(strand_str, "%c", (strand_val == 0x10) ? '-' : '+');
+
+ /* MAPQ */
+ char mapq_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t mapq_size = sam_field_offsets[4] - sam_field_offsets[3] - 1;
+ memcpy(mapq_str, src + sam_field_offsets[3] + 1, mapq_size);
+ mapq_str[mapq_size] = '\0';
+
+ /* RNEXT */
+ char rnext_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t rnext_size = sam_field_offsets[6] - sam_field_offsets[5] - 1;
+ memcpy(rnext_str, src + sam_field_offsets[5] + 1, rnext_size);
+ rnext_str[rnext_size] = '\0';
+
+ /* PNEXT */
+ char pnext_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t pnext_size = sam_field_offsets[7] - sam_field_offsets[6] - 1;
+ memcpy(pnext_str, src + sam_field_offsets[6] + 1, pnext_size);
+ pnext_str[pnext_size] = '\0';
+
+ /* TLEN */
+ char tlen_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t tlen_size = sam_field_offsets[8] - sam_field_offsets[7] - 1;
+ memcpy(tlen_str, src + sam_field_offsets[7] + 1, tlen_size);
+ tlen_str[tlen_size] = '\0';
+
+ /* SEQ */
+ char seq_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t seq_size = sam_field_offsets[9] - sam_field_offsets[8] - 1;
+ memcpy(seq_str, src + sam_field_offsets[8] + 1, seq_size);
+ seq_str[seq_size] = '\0';
+
+ /* QUAL */
+ char qual_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t qual_size = sam_field_offsets[10] - sam_field_offsets[9] - 1;
+ memcpy(qual_str, src + sam_field_offsets[9] + 1, qual_size);
+ qual_str[qual_size] = '\0';
+
+ /* Optional fields */
+ char opt_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ if (sam_field_offsets[11] != -1) {
+ opt_str[0] = '\0';
+ for (int field_idx = 11; field_idx <= sam_field_idx; field_idx++) {
+ ssize_t opt_size = sam_field_offsets[field_idx] - sam_field_offsets[field_idx - 1] - (field_idx == sam_field_idx ? 1 : 0);
+ memcpy(opt_str + strlen(opt_str), src + sam_field_offsets[field_idx - 1] + 1, opt_size);
+ opt_str[strlen(opt_str) + opt_size] = '\0';
+ }
+ }
+
+ /*
+ Loop through operations and process a line of input based on each operation and its associated value
+ */
+
+ c2b_sam_t sam;
+ sam.rname = rname_str;
+ sam.start = start_val;
+ sam.stop = start_val;
+ sam.qname = qname_str;
+ sam.flag = flag_val;
+ sam.strand = strand_str;
+ sam.mapq = mapq_str;
+ sam.cigar = cigar_str;
+ sam.rnext = rnext_str;
+ sam.pnext = pnext_str;
+ sam.tlen = tlen_str;
+ sam.seq = seq_str;
+ sam.qual = qual_str;
+ sam.opt = opt_str;
+
+ for (op_idx = 0; op_idx < c2b_globals.sam->cigar->length; ++op_idx) {
+ char current_op = c2b_globals.sam->cigar->ops[op_idx].operation;
+ unsigned int bases = c2b_globals.sam->cigar->ops[op_idx].bases;
+ switch (current_op)
+ {
+ case 'M':
+ case 'N':
+ case 'D':
+ case '=':
+ case 'X':
+ sam.stop += bases;
+ case 'H':
+ case 'I':
+ case 'P':
+ case 'S':
+ break;
+ default:
+ break;
+ }
+ }
+
+ c2b_line_convert_sam_to_bed(sam, dest, dest_size);
+}
+
+static void
+c2b_line_convert_sam_to_bed_unsorted_with_split_operation(char *dest, ssize_t *dest_size, char *src, ssize_t src_size)
+{
+ /*
+ This functor builds a list of tab delimiters, but first reads in the CIGAR string (6th field) and
+ parses it for operation key-value pairs to loop through later on
+ */
+
+ ssize_t sam_field_offsets[C2B_MAX_FIELD_COUNT_VALUE];
+ int sam_field_idx = 0;
+ ssize_t current_src_posn = -1;
+
+ /*
+ Find offsets or process header line
+ */
+
+ if (src[0] == c2b_sam_header_prefix) {
+ if (!c2b_globals.keep_header_flag) {
+ /* skip header line */
+ return;
+ }
+ else {
+ /* copy header line to destination stream buffer */
+ char src_header_line_str[C2B_MAX_LINE_LENGTH_VALUE];
+ char dest_header_line_str[C2B_MAX_LINE_LENGTH_VALUE];
+ memcpy(src_header_line_str, src, src_size);
+ src_header_line_str[src_size] = '\0';
+ sprintf(dest_header_line_str, "%s\t%u\t%u\t%s\n", c2b_header_chr_name, c2b_globals.header_line_idx, (c2b_globals.header_line_idx + 1), src_header_line_str);
+ memcpy(dest + *dest_size, dest_header_line_str, strlen(dest_header_line_str));
+ *dest_size += strlen(dest_header_line_str);
+ c2b_globals.header_line_idx++;
+ return;
+ }
+ }
+
+ while (++current_src_posn < src_size) {
+ if ((src[current_src_posn] == c2b_tab_delim) || (src[current_src_posn] == c2b_line_delim)) {
+ sam_field_offsets[sam_field_idx++] = current_src_posn;
+ }
+ if (sam_field_idx >= C2B_MAX_FIELD_COUNT_VALUE) {
+ fprintf(stderr, "Error: Invalid field count (%d) -- input file may have too many fields\n", sam_field_idx);
+ c2b_print_usage(stderr);
+ exit(EINVAL); /* Invalid argument (POSIX.1) */
+ }
+ }
+ sam_field_offsets[sam_field_idx] = src_size;
+ sam_field_offsets[sam_field_idx + 1] = -1;
+
+ /*
+ If no more than one field is read in, then something went wrong
+ */
+
+ if (sam_field_idx == 0) {
+ fprintf(stderr, "Error: Invalid field count (%d) -- input file may not match input format\n", sam_field_idx);
+ c2b_print_usage(stderr);
+ exit(EINVAL); /* Invalid argument (POSIX.1) */
+ }
+
+ /*
+ Translate CIGAR string to operations
+ */
+
+ ssize_t cigar_size = sam_field_offsets[5] - sam_field_offsets[4];
+ char cigar_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ memcpy(cigar_str, src + sam_field_offsets[4] + 1, cigar_size - 1);
+ cigar_str[cigar_size - 1] = '\0';
+ c2b_sam_cigar_str_to_ops(cigar_str);
+#ifdef DEBUG
+ c2b_sam_debug_cigar_ops(c2b_globals.sam->cigar);
+#endif
+ ssize_t cigar_length = 0;
+ ssize_t op_idx = 0;
+ for (op_idx = 0; op_idx < c2b_globals.sam->cigar->length; ++op_idx) {
+ cigar_length += c2b_globals.sam->cigar->ops[op_idx].bases;
+ }
+
+ /*
+ Firstly, is the read mapped? If not, and c2b_globals.all_reads_flag is kFalse, we skip over this line
+ */
+
+ ssize_t flag_size = sam_field_offsets[1] - sam_field_offsets[0];
+ char flag_src_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ memcpy(flag_src_str, src + sam_field_offsets[0] + 1, flag_size);
+ flag_src_str[flag_size] = '\0';
+ int flag_val = (int) strtol(flag_src_str, NULL, 10);
+ boolean is_mapped = (boolean) !(4 & flag_val);
+ if ((!is_mapped) && (!c2b_globals.all_reads_flag))
+ return;
+
+ /*
+ Secondly, we need to retrieve RNAME, POS, QNAME parameters
+ */
+
+ /* RNAME */
+ char rname_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ if (is_mapped) {
+ ssize_t rname_size = sam_field_offsets[2] - sam_field_offsets[1] - 1;
+ memcpy(rname_str, src + sam_field_offsets[1] + 1, rname_size);
+ rname_str[rname_size] = '\0';
+ }
+ else {
+ char unmapped_read_chr_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ memcpy(unmapped_read_chr_str, c2b_unmapped_read_chr_name, strlen(c2b_unmapped_read_chr_name));
+ unmapped_read_chr_str[strlen(c2b_unmapped_read_chr_name)] = '\t';
+ unmapped_read_chr_str[strlen(c2b_unmapped_read_chr_name) + 1] = '\0';
+ memcpy(rname_str, unmapped_read_chr_str, strlen(unmapped_read_chr_str));
+ rname_str[strlen(unmapped_read_chr_str)] = '\0';
+ }
+
+ /* POS */
+ ssize_t pos_size = sam_field_offsets[3] - sam_field_offsets[2];
+ char pos_src_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ memcpy(pos_src_str, src + sam_field_offsets[2] + 1, pos_size - 1);
+ pos_src_str[pos_size - 1] = '\0';
+ uint64_t pos_val = strtoull(pos_src_str, NULL, 10);
+ uint64_t start_val = pos_val - 1; /* remember, start = POS - 1 */
+ uint64_t stop_val = start_val + cigar_length;
+
+ /* QNAME */
+ char qname_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t qname_size = sam_field_offsets[0];
+ memcpy(qname_str, src, qname_size);
+ qname_str[qname_size] = '\0';
+
+ /* 16 & FLAG */
+ int strand_val = 0x10 & flag_val;
+ char strand_str[C2B_MAX_STRAND_LENGTH_VALUE];
+ sprintf(strand_str, "%c", (strand_val == 0x10) ? '-' : '+');
+
+ /* MAPQ */
+ char mapq_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t mapq_size = sam_field_offsets[4] - sam_field_offsets[3] - 1;
+ memcpy(mapq_str, src + sam_field_offsets[3] + 1, mapq_size);
+ mapq_str[mapq_size] = '\0';
+
+ /* RNEXT */
+ char rnext_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t rnext_size = sam_field_offsets[6] - sam_field_offsets[5] - 1;
+ memcpy(rnext_str, src + sam_field_offsets[5] + 1, rnext_size);
+ rnext_str[rnext_size] = '\0';
+
+ /* PNEXT */
+ char pnext_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t pnext_size = sam_field_offsets[7] - sam_field_offsets[6] - 1;
+ memcpy(pnext_str, src + sam_field_offsets[6] + 1, pnext_size);
+ pnext_str[pnext_size] = '\0';
+
+ /* TLEN */
+ char tlen_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t tlen_size = sam_field_offsets[8] - sam_field_offsets[7] - 1;
+ memcpy(tlen_str, src + sam_field_offsets[7] + 1, tlen_size);
+ tlen_str[tlen_size] = '\0';
+
+ /* SEQ */
+ char seq_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t seq_size = sam_field_offsets[9] - sam_field_offsets[8] - 1;
+ memcpy(seq_str, src + sam_field_offsets[8] + 1, seq_size);
+ seq_str[seq_size] = '\0';
+
+ /* QUAL */
+ char qual_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t qual_size = sam_field_offsets[10] - sam_field_offsets[9] - 1;
+ memcpy(qual_str, src + sam_field_offsets[9] + 1, qual_size);
+ qual_str[qual_size] = '\0';
+
+ /* Optional fields */
+ char opt_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ if (sam_field_offsets[11] != -1) {
+ for (int field_idx = 11; field_idx <= sam_field_idx; field_idx++) {
+ ssize_t opt_size = sam_field_offsets[field_idx] - sam_field_offsets[field_idx - 1] - (field_idx == sam_field_idx ? 1 : 0);
+ memcpy(opt_str + strlen(opt_str), src + sam_field_offsets[field_idx - 1] + 1, opt_size);
+ opt_str[strlen(opt_str) + opt_size] = '\0';
+ }
+ }
+
+ /*
+ Loop through operations and process a line of input based on each operation and its associated value
+ */
+
+ ssize_t block_idx;
+ char previous_op = default_cigar_op_operation;
+ char modified_qname_str[C2B_MAX_FIELD_LENGTH_VALUE];
+
+ c2b_sam_t sam;
+ sam.rname = rname_str;
+ sam.start = start_val;
+ sam.stop = start_val;
+ sam.qname = qname_str;
+ sam.flag = flag_val;
+ sam.strand = strand_str;
+ sam.mapq = mapq_str;
+ sam.cigar = cigar_str;
+ sam.rnext = rnext_str;
+ sam.pnext = pnext_str;
+ sam.tlen = tlen_str;
+ sam.seq = seq_str;
+ sam.qual = qual_str;
+ sam.opt = opt_str;
+
+ for (op_idx = 0, block_idx = 1; op_idx < c2b_globals.sam->cigar->length; ++op_idx) {
+ char current_op = c2b_globals.sam->cigar->ops[op_idx].operation;
+ unsigned int bases = c2b_globals.sam->cigar->ops[op_idx].bases;
+ switch (current_op)
+ {
+ case 'M':
+ sam.stop += bases;
+ if ((previous_op == default_cigar_op_operation) || (previous_op == 'D') || (previous_op == 'N')) {
+ sprintf(modified_qname_str, "%s/%zu", qname_str, block_idx++);
+ sam.qname = modified_qname_str;
+ c2b_line_convert_sam_to_bed(sam, dest, dest_size);
+ sam.start = stop_val;
+ }
+ break;
+ case 'N':
+ case 'D':
+ sam.stop += bases;
+ sam.start = sam.stop;
+ case 'H':
+ case 'I':
+ case 'P':
+ case 'S':
+ break;
+ default:
+ break;
+ }
+ previous_op = current_op;
+ }
+
+ /*
+ If the CIGAR string does not contain a split or deletion operation ('N', 'D') or the
+ operations are unavailable ('*') then to quote Captain John O'Hagan, we don't enhance: we
+ just print the damn thing
+ */
+
+ if (block_idx == 1) {
+ c2b_line_convert_sam_to_bed(sam, dest, dest_size);
+ }
+}
+
+static inline void
+c2b_sam_cigar_str_to_ops(char *s)
+{
+ size_t s_idx;
+ size_t s_len = strlen(s);
+ size_t bases_idx = 0;
+ boolean bases_flag = kTrue;
+ boolean operation_flag = kFalse;
+ char curr_bases_field[C2B_MAX_OPERATION_FIELD_LENGTH_VALUE];
+ char curr_char = default_cigar_op_operation;
+ unsigned int curr_bases = 0;
+ ssize_t op_idx = 0;
+
+ for (s_idx = 0; s_idx < s_len; ++s_idx) {
+ curr_char = s[s_idx];
+ if (isdigit(curr_char)) {
+ if (operation_flag) {
+ c2b_globals.sam->cigar->ops[op_idx].bases = curr_bases;
+ op_idx++;
+ operation_flag = kFalse;
+ bases_flag = kTrue;
+ }
+ curr_bases_field[bases_idx++] = curr_char;
+ curr_bases_field[bases_idx] = '\0';
+ }
+ else {
+ if (bases_flag) {
+ curr_bases = atoi(curr_bases_field);
+ bases_flag = kFalse;
+ operation_flag = kTrue;
+ bases_idx = 0;
+ memset(curr_bases_field, 0, strlen(curr_bases_field));
+ }
+ c2b_globals.sam->cigar->ops[op_idx].operation = curr_char;
+ if (curr_char == '*') {
+ break;
+ }
+ }
+ }
+ c2b_globals.sam->cigar->ops[op_idx].bases = curr_bases;
+ c2b_globals.sam->cigar->length = op_idx + 1;
+}
+
+static void
+c2b_sam_init_cigar_ops(c2b_cigar_t **c, const ssize_t size)
+{
+ *c = malloc(sizeof(c2b_cigar_t));
+ if (!*c) {
+ fprintf(stderr, "Error: Could not allocate space for CIGAR struct pointer\n");
+ c2b_print_usage(stderr);
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ (*c)->ops = malloc(size * sizeof(c2b_cigar_op_t));
+ if (!(*c)->ops) {
+ fprintf(stderr, "Error: Could not allocate space for CIGAR struct operation pointer\n");
+ c2b_print_usage(stderr);
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ (*c)->size = size;
+ (*c)->length = 0;
+ for (ssize_t idx = 0; idx < size; idx++) {
+ (*c)->ops[idx].bases = default_cigar_op_bases;
+ (*c)->ops[idx].operation = default_cigar_op_operation;
+ }
+}
+
+/*
+ specifying special attribute for c2b_sam_debug_cigar_ops() to avoid: "warning: unused
+ function 'c2b_sam_debug_cigar_ops' [-Wunused-function]" message during non-debug compilation
+
+ cf. http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Function-Attributes.html#Function%20Attributes
+*/
+#if defined(__GNUC__)
+static void c2b_sam_debug_cigar_ops() __attribute__ ((unused));
+#endif
+
+static void
+c2b_sam_debug_cigar_ops(c2b_cigar_t *c)
+{
+ ssize_t idx = 0;
+ ssize_t length = c->length;
+ for (idx = 0; idx < length; ++idx) {
+ fprintf(stderr, "\t-> c2b_sam_debug_cigar_ops - %zu [%03u, %c]\n", idx, c->ops[idx].bases, c->ops[idx].operation);
+ }
+}
+
+static void
+c2b_sam_delete_cigar_ops(c2b_cigar_t *c)
+{
+ if (c) {
+ if (c->ops) {
+ free(c->ops), c->ops = NULL;
+ }
+ c->length = 0, c->size = 0;
+ free(c), c = NULL;
+ }
+}
+
+static inline void
+c2b_line_convert_sam_to_bed(c2b_sam_t s, char *dest_line, ssize_t *dest_size)
+{
+ /*
+ For SAM-formatted data, we use the mapping provided by BEDOPS convention described at:
+
+ http://bedops.readthedocs.org/en/latest/content/reference/file-management/conversion/sam2bed.html
+
+ SAM field BED column index BED field
+ -------------------------------------------------------------------------
+ RNAME 1 chromosome
+ POS - 1 2 start
+ POS + length(CIGAR) - 1 3 stop
+ QNAME 4 id
+ MAPQ 5 score
+ 16 & FLAG 6 strand
+
+ If NOT (4 & FLAG) is true, then the read is mapped.
+
+ The remaining SAM columns are mapped as-is, in same order, to adjacent BED columns:
+
+ SAM field BED column index BED field
+ -------------------------------------------------------------------------
+ FLAG 7 -
+ CIGAR 8 -
+ RNEXT 9 -
+ PNEXT 10 -
+ TLEN 11 -
+ SEQ 12 -
+ QUAL 13 -
+
+ If present:
+
+ SAM field BED column index BED field
+ -------------------------------------------------------------------------
+ Alignment fields 14+ -
+ */
+
+ if (strlen(s.opt)) {
+ *dest_size += sprintf(dest_line + *dest_size,
+ "%s\t" \
+ "%" PRIu64 "\t" \
+ "%" PRIu64 "\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%d\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\n",
+ s.rname,
+ s.start,
+ s.stop,
+ s.qname,
+ s.mapq,
+ s.strand,
+ s.flag,
+ s.cigar,
+ s.rnext,
+ s.pnext,
+ s.tlen,
+ s.seq,
+ s.qual,
+ s.opt);
+ memset(s.opt, 0, strlen(s.opt));
+ }
+ else {
+ *dest_size += sprintf(dest_line + *dest_size,
+ "%s\t" \
+ "%" PRIu64 "\t" \
+ "%" PRIu64 "\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%d\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\n",
+ s.rname,
+ s.start,
+ s.stop,
+ s.qname,
+ s.mapq,
+ s.strand,
+ s.flag,
+ s.cigar,
+ s.rnext,
+ s.pnext,
+ s.tlen,
+ s.seq,
+ s.qual);
+ }
+}
+
+static void
+c2b_line_convert_vcf_to_bed_unsorted(char *dest, ssize_t *dest_size, char *src, ssize_t src_size)
+{
+ ssize_t vcf_field_offsets[C2B_MAX_VCF_FIELD_COUNT_VALUE];
+ int vcf_field_idx = 0;
+ ssize_t current_src_posn = -1;
+
+ while (++current_src_posn < src_size) {
+ if ((src[current_src_posn] == c2b_tab_delim) || (src[current_src_posn] == c2b_line_delim)) {
+ vcf_field_offsets[vcf_field_idx++] = current_src_posn;
+ }
+ if (vcf_field_idx >= C2B_MAX_VCF_FIELD_COUNT_VALUE) {
+ fprintf(stderr, "Error: Invalid field count (%d) -- input file may have too many fields\n", vcf_field_idx);
+ c2b_print_usage(stderr);
+ exit(EINVAL); /* Invalid argument (POSIX.1) */
+ }
+ }
+ vcf_field_offsets[vcf_field_idx] = src_size;
+ vcf_field_offsets[vcf_field_idx + 1] = -1;
+
+ /*
+ If number of fields in not in bounds, we may need to exit early
+ */
+
+ char *src_header_line_str = NULL;
+ src_header_line_str = malloc(C2B_MAX_LONGER_LINE_LENGTH_VALUE);
+ if (!src_header_line_str) {
+ fprintf(stderr, "Error: Could not allocate space for VCF source header line string\n");
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+
+ char *dest_header_line_str = NULL;
+ dest_header_line_str = malloc(C2B_MAX_LONGER_LINE_LENGTH_VALUE);
+ if (!dest_header_line_str) {
+ fprintf(stderr, "Error: Could not allocate space for VCF destination header line string\n");
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+
+ if ((vcf_field_idx + 1) < c2b_vcf_field_min) {
+ /* Legal header cases: line starts with "##" or "#" */
+ if ((vcf_field_idx == 0) && (src[0] == c2b_vcf_header_prefix)) {
+ if (c2b_globals.keep_header_flag) {
+ /* copy header line to destination stream buffer */
+ memcpy(src_header_line_str, src, src_size);
+ src_header_line_str[src_size] = '\0';
+ sprintf(dest_header_line_str, "%s\t%u\t%u\t%s\n", c2b_header_chr_name, c2b_globals.header_line_idx, (c2b_globals.header_line_idx + 1), src_header_line_str);
+ fprintf(stderr, "%s", dest_header_line_str);
+ memcpy(dest + *dest_size, dest_header_line_str, strlen(dest_header_line_str));
+ *dest_size += strlen(dest_header_line_str);
+ c2b_globals.header_line_idx++;
+ free(src_header_line_str), src_header_line_str = NULL;
+ free(dest_header_line_str), dest_header_line_str = NULL;
+ return;
+ }
+ else {
+ return;
+ }
+ }
+ else if (vcf_field_idx == 0) {
+ fprintf(stderr, "Error: Invalid field count (%d) -- input file may not match input format\n", vcf_field_idx);
+ c2b_print_usage(stderr);
+ exit(EINVAL); /* Invalid argument (POSIX.1) */
+ }
+ }
+
+ /* 0 - CHROM */
+ char chrom_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t chrom_size = vcf_field_offsets[0];
+ memcpy(chrom_str, src, chrom_size);
+ chrom_str[chrom_size] = '\0';
+
+ if ((chrom_str[0] == c2b_vcf_header_prefix) && (c2b_globals.keep_header_flag)) {
+ memcpy(src_header_line_str, src, src_size);
+ src_header_line_str[src_size] = '\0';
+ sprintf(dest_header_line_str, "%s\t%u\t%u\t%s\n", c2b_header_chr_name, c2b_globals.header_line_idx, (c2b_globals.header_line_idx + 1), src_header_line_str);
+ memcpy(dest + *dest_size, dest_header_line_str, strlen(dest_header_line_str));
+ *dest_size += strlen(dest_header_line_str);
+ c2b_globals.header_line_idx++;
+ return;
+ }
+ else if (chrom_str[0] == c2b_vcf_header_prefix) {
+ return;
+ }
+
+ /* 1 - POS */
+ char pos_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t pos_size = vcf_field_offsets[1] - vcf_field_offsets[0] - 1;
+ memcpy(pos_str, src + vcf_field_offsets[0] + 1, pos_size);
+ pos_str[pos_size] = '\0';
+ uint64_t pos_val = strtoull(pos_str, NULL, 10);
+ uint64_t start_val = pos_val - 1;
+ uint64_t end_val = pos_val; /* note that this value may change below, depending on options */
+
+ /* 2 - ID */
+ char id_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t id_size = vcf_field_offsets[2] - vcf_field_offsets[1] - 1;
+ memcpy(id_str, src + vcf_field_offsets[1] + 1, id_size);
+ id_str[id_size] = '\0';
+
+ /* 3 - REF */
+ char ref_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t ref_size = vcf_field_offsets[3] - vcf_field_offsets[2] - 1;
+ memcpy(ref_str, src + vcf_field_offsets[2] + 1, ref_size);
+ ref_str[ref_size] = '\0';
+
+ /* 4 - ALT */
+ char alt_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t alt_size = vcf_field_offsets[4] - vcf_field_offsets[3] - 1;
+ memcpy(alt_str, src + vcf_field_offsets[3] + 1, alt_size);
+ alt_str[alt_size] = '\0';
+
+ /* 5 - QUAL */
+ char qual_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t qual_size = vcf_field_offsets[5] - vcf_field_offsets[4] - 1;
+ memcpy(qual_str, src + vcf_field_offsets[4] + 1, qual_size);
+ qual_str[qual_size] = '\0';
+
+ /* 6 - FILTER */
+ char filter_str[C2B_MAX_FIELD_LENGTH_VALUE];
+ ssize_t filter_size = vcf_field_offsets[6] - vcf_field_offsets[5] - 1;
+ memcpy(filter_str, src + vcf_field_offsets[5] + 1, filter_size);
+ filter_str[filter_size] = '\0';
+
+ /* 7 - INFO */
+ char *info_str = NULL;
+ info_str = malloc(C2B_MAX_LONGER_LINE_LENGTH_VALUE);
+ if (!info_str) {
+ fprintf(stderr, "Error: Could not allocate space for VCF INFO string\n");
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+
+ ssize_t info_size = vcf_field_offsets[7] - vcf_field_offsets[6] - 1;
+ memcpy(info_str, src + vcf_field_offsets[6] + 1, info_size);
+ info_str[info_size] = '\0';
+
+ char *format_str = NULL;
+ format_str = malloc(C2B_MAX_LONGER_LINE_LENGTH_VALUE);
+ if (!format_str) {
+ fprintf(stderr, "Error: Could not allocate space for VCF FORMAT string\n");
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ format_str[0] = '\0'; /* initialize to zero-length string */
+
+ char *samples_str = NULL;
+ samples_str = malloc(C2B_MAX_LONGER_LINE_LENGTH_VALUE);
+ if (!samples_str) {
+ fprintf(stderr, "Error: Could not allocate space for VCF SAMPLE string\n");
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+
+ if (vcf_field_idx >= 8) {
+ /* 8 - FORMAT */
+ ssize_t format_size = vcf_field_offsets[8] - vcf_field_offsets[7] - 1;
+ memcpy(format_str, src + vcf_field_offsets[7] + 1, format_size);
+ format_str[format_size] = '\0';
+
+ /* 9 - Samples */
+ ssize_t samples_size = vcf_field_offsets[vcf_field_idx] - vcf_field_offsets[8] - 1;
+ memcpy(samples_str, src + vcf_field_offsets[8] + 1, samples_size);
+ samples_str[samples_size] = '\0';
+ }
+
+ c2b_vcf_t vcf;
+ vcf.chrom = chrom_str;
+ vcf.pos = pos_val;
+ vcf.start = start_val;
+ vcf.end = end_val;
+ vcf.id = id_str;
+ vcf.ref = ref_str;
+ vcf.alt = alt_str;
+ vcf.qual = qual_str;
+ vcf.filter = filter_str;
+ vcf.info = info_str;
+ vcf.format = format_str;
+ vcf.samples = samples_str;
+
+ if ((!c2b_globals.vcf->do_not_split) && (memchr(alt_str, c2b_vcf_alt_allele_delim, strlen(alt_str)))) {
+
+ /* loop through each allele */
+
+ char *alt_alleles_copy = NULL;
+ alt_alleles_copy = malloc(strlen(alt_str) + 1);
+ if (!alt_alleles_copy) {
+ fprintf(stderr, "Error: Could not allocate space for VCF alt alleles copy\n");
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ memcpy(alt_alleles_copy, alt_str, strlen(alt_str) + 1);
+ const char *allele_tok;
+ while ((allele_tok = c2b_strsep(&alt_alleles_copy, ",")) != NULL) {
+ vcf.alt = (char *) allele_tok; /* discard const */
+ if ((c2b_globals.vcf->filter_count == 1) && (!c2b_globals.vcf->only_insertions)) {
+ vcf.end = start_val + ref_size - strlen(vcf.alt) + 1;
+ }
+ if ( (c2b_globals.vcf->filter_count == 0) ||
+ ((c2b_globals.vcf->only_snvs) && (c2b_vcf_record_is_snv(ref_str, vcf.alt))) ||
+ ((c2b_globals.vcf->only_insertions) && (c2b_vcf_record_is_insertion(ref_str, vcf.alt))) ||
+ ((c2b_globals.vcf->only_deletions) && (c2b_vcf_record_is_deletion(ref_str, vcf.alt))) )
+ {
+ c2b_line_convert_vcf_to_bed(vcf, dest, dest_size);
+ }
+ }
+ free(alt_alleles_copy), alt_alleles_copy = NULL;
+ }
+ else {
+
+ /* just print the one allele */
+
+ if ((c2b_globals.vcf->filter_count == 1) && (!c2b_globals.vcf->only_insertions)) {
+ vcf.end = start_val + ref_size - strlen(alt_str) + 1;
+ }
+ if ( (c2b_globals.vcf->filter_count == 0) ||
+ ((c2b_globals.vcf->only_snvs) && (c2b_vcf_record_is_snv(ref_str, alt_str))) ||
+ ((c2b_globals.vcf->only_insertions) && (c2b_vcf_record_is_insertion(ref_str, alt_str))) ||
+ ((c2b_globals.vcf->only_deletions) && (c2b_vcf_record_is_deletion(ref_str, alt_str))) )
+ {
+ c2b_line_convert_vcf_to_bed(vcf, dest, dest_size);
+ }
+ }
+
+ free(info_str), info_str = NULL;
+ free(format_str), format_str = NULL;
+ free(samples_str), samples_str = NULL;
+}
+
+static inline boolean
+c2b_vcf_allele_is_id(char *s)
+{
+ return ((s[0] == c2b_vcf_id_prefix) && (s[strlen(s)-1] == c2b_vcf_id_suffix)) ? kTrue : kFalse;
+}
+
+static inline boolean
+c2b_vcf_record_is_snv(char *ref, char *alt)
+{
+ return ((!c2b_vcf_allele_is_id(alt)) && (((int) strlen(ref) - (int) strlen(alt)) == 0)) ? kTrue : kFalse;
+}
+
+static inline boolean
+c2b_vcf_record_is_insertion(char *ref, char *alt)
+{
+ return ((!c2b_vcf_allele_is_id(alt)) && (((int) strlen(ref) - (int) strlen(alt)) < 0)) ? kTrue : kFalse;
+}
+
+static inline boolean
+c2b_vcf_record_is_deletion(char *ref, char *alt)
+{
+ return ((!c2b_vcf_allele_is_id(alt)) && (((int) strlen(ref) - (int) strlen(alt)) > 0)) ? kTrue : kFalse;
+}
+
+static inline void
+c2b_line_convert_vcf_to_bed(c2b_vcf_t v, char *dest_line, ssize_t *dest_size)
+{
+ /*
+ For VCF v4.2-formatted data, we use the mapping provided by BEDOPS convention described at:
+
+ http://bedops.readthedocs.org/en/latest/content/reference/file-management/conversion/vcf2bed.html
+
+ VCF field BED column index BED field
+ -------------------------------------------------------------------------
+ CHROM 1 chromosome
+ POS - 1 2 start
+ POS (*) 3 stop
+ ID 4 id
+ QUAL 5 score
+
+ * : When using --deletions, the stop value of the BED output is determined by the length difference
+ between ALT and REF alleles. Use of --insertions or --snvs yields a one-base BED element.
+
+ The remaining VCF columns are mapped as-is, in same order, to adjacent BED columns:
+
+ VCF field BED column index BED field
+ -------------------------------------------------------------------------
+ REF 6 -
+ ALT 7 -
+ FILTER 8 -
+ INFO 9 -
+
+ If present in the VCF v4 input, the following columns are also mapped:
+
+ VCF field BED column index BED field
+ -------------------------------------------------------------------------
+ FORMAT 10 -
+ Sample 1 11 -
+ Sample 2 12 -
+ ...
+ */
+
+ if (strlen(v.format) > 0) {
+ *dest_size += sprintf(dest_line + *dest_size,
+ "%s\t" \
+ "%" PRIu64 "\t" \
+ "%" PRIu64 "\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\n",
+ v.chrom,
+ v.start,
+ v.end,
+ v.id,
+ v.qual,
+ v.ref,
+ v.alt,
+ v.filter,
+ v.info,
+ v.format,
+ v.samples);
+ }
+ else {
+ *dest_size += sprintf(dest_line + *dest_size,
+ "%s\t" \
+ "%" PRIu64 "\t" \
+ "%" PRIu64 "\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\t" \
+ "%s\n",
+ v.chrom,
+ v.start,
+ v.end,
+ v.id,
+ v.qual,
+ v.ref,
+ v.alt,
+ v.filter,
+ v.info);
+ }
+}
+
+static void
+c2b_line_convert_wig_to_bed_unsorted(char *dest, ssize_t *dest_size, char *src, ssize_t src_size)
+{
+ char src_line_str[C2B_MAX_LINE_LENGTH_VALUE];
+ char dest_line_str[C2B_MAX_LINE_LENGTH_VALUE];
+
+ /*
+ Initialize and increment parameters
+ */
+
+ c2b_globals.wig->line++;
+ if (c2b_globals.wig->basename) {
+ sprintf(c2b_globals.wig->id,
+ "%s.%u",
+ c2b_globals.wig->basename,
+ c2b_globals.wig->section);
+ }
+
+ /*
+ Legal header cases: line starts with '#'
+ */
+
+ if (src[0] == c2b_wig_header_prefix) {
+ if (c2b_globals.wig->start_write) {
+ c2b_globals.wig->start_write = kFalse;
+ sprintf(c2b_globals.wig->id,
+ "%s.%u",
+ c2b_globals.wig->basename,
+ ++c2b_globals.wig->section);
+ }
+ if (c2b_globals.keep_header_flag) {
+ /* copy header line to destination stream buffer */
+ memcpy(src_line_str, src, src_size);
+ src_line_str[src_size] = '\0';
+ if (!c2b_globals.wig->basename) {
+ sprintf(dest_line_str,
+ "%s\t%u\t%u\t%s\n",
+ c2b_header_chr_name,
+ c2b_globals.header_line_idx,
+ c2b_globals.header_line_idx + 1,
+ src_line_str);
+ }
+ else {
+ sprintf(dest_line_str,
+ "%s\t%u\t%u\t%s\t%s\n",
+ c2b_header_chr_name,
+ c2b_globals.header_line_idx,
+ c2b_globals.header_line_idx + 1,
+ c2b_globals.wig->id,
+ src_line_str);
+ }
+ memcpy(dest + *dest_size, dest_line_str, strlen(dest_line_str));
+ *dest_size += strlen(dest_line_str);
+ c2b_globals.header_line_idx++;
+ return;
+ }
+ else {
+ return;
+ }
+ }
+ else if ((strncmp(src, c2b_wig_track_prefix, strlen(c2b_wig_track_prefix)) == 0) ||
+ (strncmp(src, c2b_wig_browser_prefix, strlen(c2b_wig_browser_prefix)) == 0)) {
+ if (c2b_globals.wig->start_write) {
+ c2b_globals.wig->start_write = kFalse;
+ sprintf(c2b_globals.wig->id,
+ "%s.%u",
+ c2b_globals.wig->basename,
+ ++c2b_globals.wig->section);
+ }
+ if (c2b_globals.keep_header_flag) {
+ /* copy header line to destination stream buffer */
+ memcpy(src_line_str, src, src_size);
+ src_line_str[src_size] = '\0';
+ if (!c2b_globals.wig->basename) {
+ sprintf(dest_line_str,
+ "%s\t%u\t%u\t%s\n",
+ c2b_header_chr_name,
+ c2b_globals.header_line_idx,
+ c2b_globals.header_line_idx + 1,
+ src_line_str);
+ }
+ else {
+ sprintf(dest_line_str,
+ "%s\t%u\t%u\t%s\t%s\n",
+ c2b_header_chr_name,
+ c2b_globals.header_line_idx,
+ c2b_globals.header_line_idx + 1,
+ c2b_globals.wig->id,
+ src_line_str);
+ }
+ memcpy(dest + *dest_size, dest_line_str, strlen(dest_line_str));
+ *dest_size += strlen(dest_line_str);
+ c2b_globals.header_line_idx++;
+ return;
+ }
+ else {
+ return;
+ }
+ }
+ else if (strncmp(src, c2b_wig_variable_step_prefix, strlen(c2b_wig_variable_step_prefix)) == 0) {
+ memcpy(src_line_str, src, src_size);
+ src_line_str[src_size] = '\0';
+ int variable_step_fields = sscanf(src_line_str,
+ "variableStep chrom=%s span=%" SCNu64 "\n",
+ c2b_globals.wig->chr,
+ &(c2b_globals.wig->span));
+ if (variable_step_fields < 1) {
+ fprintf(stderr, "Error: Invalid variableStep header on line %u\n", c2b_globals.wig->line);
+ exit(EINVAL); /* Invalid argument (POSIX.1) */
+ }
+ if (variable_step_fields == 1)
+ c2b_globals.wig->span = 1;
+ c2b_globals.wig->is_fixed_step = kFalse;
+ if (c2b_globals.wig->start_write) {
+ c2b_globals.wig->start_write = kFalse;
+ sprintf(c2b_globals.wig->id,
+ "%s.%u",
+ c2b_globals.wig->basename,
+ ++c2b_globals.wig->section);
+ }
+ if (c2b_globals.keep_header_flag) {
+ /* copy header line to destination stream buffer */
+ if (!c2b_globals.wig->basename) {
+ sprintf(dest_line_str,
+ "%s\t%u\t%u\t%s\n",
+ c2b_header_chr_name,
+ c2b_globals.header_line_idx,
+ c2b_globals.header_line_idx + 1,
+ src_line_str);
+ }
+ else {
+ sprintf(dest_line_str,
+ "%s\t%u\t%u\t%s\t%s\n",
+ c2b_header_chr_name,
+ c2b_globals.header_line_idx,
+ c2b_globals.header_line_idx + 1,
+ c2b_globals.wig->id,
+ src_line_str);
+ }
+ memcpy(dest + *dest_size, dest_line_str, strlen(dest_line_str));
+ *dest_size += strlen(dest_line_str);
+ c2b_globals.header_line_idx++;
+ return;
+ }
+ else {
+ return;
+ }
+ }
+ else if (strncmp(src, c2b_wig_fixed_step_prefix, strlen(c2b_wig_fixed_step_prefix)) == 0) {
+ memcpy(src_line_str, src, src_size);
+ src_line_str[src_size] = '\0';
+ int fixed_step_fields = sscanf(src_line_str,
+ "fixedStep chrom=%s start=%" SCNu64 " step=%" SCNu64 " span=%" SCNu64 "\n",
+ c2b_globals.wig->chr,
+ &(c2b_globals.wig->start_pos),
+ &(c2b_globals.wig->step),
+ &(c2b_globals.wig->span));
+ if (fixed_step_fields < 3) {
+ fprintf(stderr, "Error: Invalid fixedStep header on line %u\n", c2b_globals.wig->line);
+ exit(EINVAL); /* Invalid argument (POSIX.1) */
+ }
+ if (fixed_step_fields == 3) {
+ c2b_globals.wig->span = 1;
+ }
+ c2b_globals.wig->is_fixed_step = kTrue;
+ if (c2b_globals.keep_header_flag) {
+ /* copy header line to destination stream buffer */
+ if (!c2b_globals.wig->basename) {
+ sprintf(dest_line_str,
+ "%s\t%u\t%u\t%s\n",
+ c2b_header_chr_name,
+ c2b_globals.header_line_idx,
+ c2b_globals.header_line_idx + 1,
+ src_line_str);
+ }
+ else {
+ sprintf(dest_line_str,
+ "%s\t%u\t%u\t%s\t%s\n",
+ c2b_header_chr_name,
+ c2b_globals.header_line_idx,
+ c2b_globals.header_line_idx + 1,
+ c2b_globals.wig->id,
+ src_line_str);
+ }
+ memcpy(dest + *dest_size, dest_line_str, strlen(dest_line_str));
+ *dest_size += strlen(dest_line_str);
+ c2b_globals.header_line_idx++;
+ return;
+ }
+ else {
+ return;
+ }
+ }
+ else if (strncmp(src, c2b_wig_chr_prefix, strlen(c2b_wig_chr_prefix)) == 0) {
+ memcpy(src_line_str, src, src_size);
+ src_line_str[src_size] = '\0';
+ int bed_fields = sscanf(src_line_str,
+ "%s\t%" SCNu64 "\t%" SCNu64 "\t%lf\n",
+ c2b_globals.wig->chr,
+ &(c2b_globals.wig->start_pos),
+ &(c2b_globals.wig->end_pos),
+ &(c2b_globals.wig->score));
+ if (bed_fields != 4) {
+ fprintf(stderr, "Error: Invalid WIG line %u\n", c2b_globals.wig->line);
+ exit(EINVAL); /* Invalid argument (POSIX.1) */
+ }
+ c2b_globals.wig->pos_lines++;
+ if ((c2b_globals.wig->start_pos == 0) && (!c2b_globals.zero_indexed_flag)) {
+ fprintf(stderr, "Error: WIG data contains 0-indexed element at line %u\n", c2b_globals.wig->line);
+ fprintf(stderr, " Consider adding --zero-indexed (-x) option to convert zero-indexed WIG data\n");
+ exit(EINVAL); /* Invalid argument (POSIX.1) */
+ }
+ if (!c2b_globals.wig->basename) {
+ sprintf(dest_line_str,
+ "%s\t" \
+ "%" PRIu64 "\t" \
+ "%" PRIu64 "\t" \
+ "id-%d\t" \
+ "%lf\n",
+ c2b_globals.wig->chr,
+ c2b_globals.wig->start_pos - c2b_globals.wig->start_shift,
+ c2b_globals.wig->end_pos - c2b_globals.wig->end_shift,
+ c2b_globals.wig->pos_lines,
+ c2b_globals.wig->score);
+ }
+ else {
+ sprintf(dest_line_str,
+ "%s\t" \
+ "%" PRIu64 "\t" \
+ "%" PRIu64 "\t" \
+ "%s-%d\t" \
+ "%lf\n",
+ c2b_globals.wig->chr,
+ c2b_globals.wig->start_pos - c2b_globals.wig->start_shift,
+ c2b_globals.wig->end_pos - c2b_globals.wig->end_shift,
+ c2b_globals.wig->id,
+ c2b_globals.wig->pos_lines,
+ c2b_globals.wig->score);
+ }
+ c2b_globals.wig->start_write = kTrue;
+ memcpy(dest + *dest_size, dest_line_str, strlen(dest_line_str));
+ *dest_size += strlen(dest_line_str);
+ }
+ else {
+ memcpy(src_line_str, src, src_size);
+ src_line_str[src_size] = '\0';
+
+ if (c2b_globals.wig->is_fixed_step) {
+
+ int fixed_step_column_fields = sscanf(src_line_str, "%lf\n", &(c2b_globals.wig->score));
+ if (fixed_step_column_fields != 1) {
+ fprintf(stderr, "Error: Invalid WIG line %u\n", c2b_globals.wig->line);
+ exit(EINVAL); /* Invalid argument (POSIX.1) */
+ }
+ c2b_globals.wig->pos_lines++;
+ if ((c2b_globals.wig->start_pos == 0) && (!c2b_globals.zero_indexed_flag)) {
+ fprintf(stderr, "Error: WIG data contains 0-indexed element at line %u\n", c2b_globals.wig->line);
+ fprintf(stderr, " Consider adding --zero-indexed (-x) option to convert zero-indexed WIG data\n");
+ exit(EINVAL); /* Invalid argument (POSIX.1) */
+ }
+ if (!c2b_globals.wig->basename) {
+ sprintf(dest_line_str,
+ "%s\t" \
+ "%" PRIu64 "\t" \
+ "%" PRIu64 "\t" \
+ "id-%d\t" \
+ "%lf\n",
+ c2b_globals.wig->chr,
+ c2b_globals.wig->start_pos - c2b_globals.wig->start_shift,
+ c2b_globals.wig->start_pos + c2b_globals.wig->span - c2b_globals.wig->end_shift,
+ c2b_globals.wig->pos_lines,
+ c2b_globals.wig->score);
+ }
+ else {
+ sprintf(dest_line_str,
+ "%s\t" \
+ "%" PRIu64 "\t" \
+ "%" PRIu64 "\t" \
+ "%s-%d\t" \
+ "%lf\n",
+ c2b_globals.wig->chr,
+ c2b_globals.wig->start_pos - c2b_globals.wig->start_shift,
+ c2b_globals.wig->start_pos + c2b_globals.wig->span - c2b_globals.wig->end_shift,
+ c2b_globals.wig->id,
+ c2b_globals.wig->pos_lines,
+ c2b_globals.wig->score);
+ }
+ c2b_globals.wig->start_pos += c2b_globals.wig->step;
+ c2b_globals.wig->start_write = kTrue;
+ memcpy(dest + *dest_size, dest_line_str, strlen(dest_line_str));
+ *dest_size += strlen(dest_line_str);
+ }
+ else {
+ int variable_step_column_fields = sscanf(src_line_str,
+ "%" SCNu64 "\t%lf\n",
+ &(c2b_globals.wig->start_pos),
+ &(c2b_globals.wig->score));
+ if (variable_step_column_fields != 2) {
+ fprintf(stderr, "Error: Invalid WIG line %u\n", c2b_globals.wig->line);
+ exit(EINVAL); /* Invalid argument (POSIX.1) */
+ }
+ c2b_globals.wig->pos_lines++;
+ if ((c2b_globals.wig->start_pos == 0) && (!c2b_globals.zero_indexed_flag)) {
+ fprintf(stderr, "Error: WIG data contains 0-indexed element at line %u\n", c2b_globals.wig->line);
+ fprintf(stderr, " Consider adding --zero-indexed (-x) option to convert zero-indexed WIG data\n");
+ exit(EINVAL); /* Invalid argument (POSIX.1) */
+ }
+ if (!c2b_globals.wig->basename) {
+ sprintf(dest_line_str,
+ "%s\t" \
+ "%" PRIu64 "\t" \
+ "%" PRIu64 "\t" \
+ "id-%d\t" \
+ "%lf\n",
+ c2b_globals.wig->chr,
+ c2b_globals.wig->start_pos - c2b_globals.wig->start_shift,
+ c2b_globals.wig->start_pos + c2b_globals.wig->span - c2b_globals.wig->end_shift,
+ c2b_globals.wig->pos_lines,
+ c2b_globals.wig->score);
+ }
+ else {
+ sprintf(dest_line_str,
+ "%s\t" \
+ "%" PRIu64 "\t" \
+ "%" PRIu64 "\t" \
+ "%s-%d\t" \
+ "%lf\n",
+ c2b_globals.wig->chr,
+ c2b_globals.wig->start_pos - c2b_globals.wig->start_shift,
+ c2b_globals.wig->start_pos + c2b_globals.wig->span - c2b_globals.wig->end_shift,
+ c2b_globals.wig->id,
+ c2b_globals.wig->pos_lines,
+ c2b_globals.wig->score);
+ }
+ c2b_globals.wig->start_pos += c2b_globals.wig->step;
+ c2b_globals.wig->start_write = kTrue;
+ memcpy(dest + *dest_size, dest_line_str, strlen(dest_line_str));
+ *dest_size += strlen(dest_line_str);
+ }
+ }
+}
+
+static void *
+c2b_read_bytes_from_stdin(void *arg)
+{
+ c2b_pipeline_stage_t *stage = (c2b_pipeline_stage_t *) arg;
+ c2b_pipeset_t *pipes = stage->pipeset;
+ char buffer[C2B_MAX_LINE_LENGTH_VALUE];
+ ssize_t bytes_read;
+ int exit_status = 0;
+
+#ifdef DEBUG
+ fprintf(stderr, "\t-> c2b_read_bytes_from_stdin | reading from fd (%02d) | writing to fd (%02d)\n", STDIN_FILENO, pipes->in[stage->dest][PIPE_WRITE]);
+#endif
+
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunused-result"
+ while ((bytes_read = read(STDIN_FILENO, buffer, C2B_MAX_LINE_LENGTH_VALUE)) > 0) {
+ write(pipes->in[stage->dest][PIPE_WRITE], buffer, bytes_read);
+ }
+#pragma GCC diagnostic pop
+ close(pipes->in[stage->dest][PIPE_WRITE]);
+
+ if (WIFEXITED(stage->status) || WIFSIGNALED(stage->status)) {
+ waitpid(stage->pid, &stage->status, WUNTRACED);
+ exit_status = WEXITSTATUS(stage->status);
+ if (exit_status != 0)
+ fprintf(stderr,
+ "Error: Stage [%s] failed -- exit status [%d | %d]\n",
+ stage->description,
+ stage->status,
+ exit_status);
+ }
+
+
+ pthread_exit(NULL);
+}
+
+static void *
+c2b_process_intermediate_bytes_by_lines(void *arg)
+{
+ c2b_pipeline_stage_t *stage = (c2b_pipeline_stage_t *) arg;
+ c2b_pipeset_t *pipes = stage->pipeset;
+ char *src_buffer = NULL;
+ ssize_t src_buffer_size = C2B_MAX_LONGER_LINE_LENGTH_VALUE;
+ ssize_t src_bytes_read = 0;
+ ssize_t remainder_length = 0;
+ ssize_t remainder_offset = 0;
+ char line_delim = '\n';
+ ssize_t lines_offset = 0;
+ ssize_t start_offset = 0;
+ ssize_t end_offset = 0;
+ char *dest_buffer = NULL;
+ ssize_t dest_buffer_size = C2B_MAX_LONGER_LINE_LENGTH_VALUE * C2B_MAX_LINES_VALUE;
+ ssize_t dest_bytes_written = 0;
+ void (*line_functor)(char *, ssize_t *, char *, ssize_t) = stage->line_functor;
+ int exit_status = 0;
+
+ /*
+ We read from the src out pipe, then write to the dest in pipe
+ */
+
+ src_buffer = malloc(src_buffer_size);
+ if (!src_buffer) {
+ fprintf(stderr, "Error: Could not allocate space for intermediate source buffer.\n");
+ c2b_print_usage(stderr);
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+
+ dest_buffer = malloc(dest_buffer_size);
+ if (!dest_buffer) {
+ fprintf(stderr, "Error: Could not allocate space for intermediate destination buffer.\n");
+ c2b_print_usage(stderr);
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ dest_buffer[0] = '\0';
+
+ while ((src_bytes_read = read(pipes->out[stage->src][PIPE_READ],
+ src_buffer + remainder_length,
+ src_buffer_size - remainder_length)) > 0) {
+
+ /*
+ So here's what src_buffer looks like initially; basically, some stuff separated by
+ newlines. The src_buffer will probably not terminate with a newline. So we first use
+ a custom memrchr() call to find the remainder_offset index value:
+
+ src_buffer [ . . . \n . . . \n . . . \n . . . . . . ]
+ index 0 1 2 ... ^ ^
+ | |
+ | src_bytes_read --
+ |
+ remainder_offset ---
+
+ In other words, everything at and after index [remainder_offset + 1] to index
+ [src_bytes_read - 1] is a remainder byte ("R"):
+
+ src_buffer [ . . . \n . . . \n . . . \n R R R R R ]
+
+ Assuming this failed:
+
+ If remainder_offset is -1 and we have read src_buffer_size bytes, then we know there
+ are no newlines anywhere in the src_buffer and so we terminate early with an error state.
+ This would suggest either src_buffer_size is too small to hold a whole intermediate
+ line or the input data is perhaps corrupt. Basically, something went wrong and we need
+ to investigate.
+
+ Asumming this worked:
+
+ We can now parse byte indices {[0 .. remainder_offset]} into lines, which are fed one
+ by one to the line_functor. This functor parses out tab offsets and writes out a
+ reordered string based on the rules for the format (see BEDOPS docs for reordering
+ table).
+
+ Finally, we write bytes from index [remainder_offset + 1] to [src_bytes_read - 1]
+ back to src_buffer. We are writing remainder_length bytes:
+
+ new_remainder_length = current_src_bytes_read + old_remainder_length - new_remainder_offset
+
+ Note that we can leave the rest of the buffer untouched:
+
+ src_buffer [ R R R R R \n . . . \n . . . \n . . . ]
+
+ On the subsequent read, we want to read() into src_buffer at position remainder_length
+ and read up to, at most, (src_buffer_size - remainder_length) bytes:
+
+ read(byte_source,
+ src_buffer + remainder_length,
+ src_buffer_size - remainder_length)
+
+ Second and subsequent reads should reduce the maximum number of src_bytes_read from
+ src_buffer_size to something smaller.
+ */
+
+ c2b_memrchr_offset(&remainder_offset, src_buffer, src_buffer_size, src_bytes_read + remainder_length, line_delim);
+
+ if (remainder_offset == -1) {
+ if (src_bytes_read + remainder_length == src_buffer_size) {
+ fprintf(stderr, "Error: Could not find newline in intermediate buffer; check input\n");
+ c2b_print_usage(stderr);
+ exit(EINVAL); /* Invalid argument (POSIX.1) */
+ }
+ remainder_offset = 0;
+ }
+
+ /*
+ We next want to process bytes from index [0] to index [remainder_offset - 1] for all
+ lines contained within. We basically build a buffer containing all translated
+ lines to write downstream.
+ */
+
+ lines_offset = 0;
+ start_offset = 0;
+ dest_bytes_written = 0;
+ while (lines_offset < remainder_offset) {
+ if (src_buffer[lines_offset] == line_delim) {
+ end_offset = lines_offset;
+ /* for a given line from src, we write dest_bytes_written number of bytes to dest_buffer (plus written offset) */
+ (*line_functor)(dest_buffer, &dest_bytes_written, src_buffer + start_offset, end_offset - start_offset);
+ start_offset = end_offset + 1;
+ }
+ lines_offset++;
+ }
+
+ /*
+ We have filled up dest_buffer with translated bytes (dest_bytes_written of them)
+ and can now write() this buffer to the in-pipe of the destination stage
+ */
+
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunused-result"
+ write(pipes->in[stage->dest][PIPE_WRITE], dest_buffer, dest_bytes_written);
+ //fprintf(stderr, "dest_bytes_written [%zu]\n", dest_bytes_written);
+#pragma GCC diagnostic pop
+
+ remainder_length = src_bytes_read + remainder_length - remainder_offset;
+ memcpy(src_buffer, src_buffer + remainder_offset, remainder_length);
+ }
+
+ close(pipes->in[stage->dest][PIPE_WRITE]);
+
+ if (src_buffer)
+ free(src_buffer), src_buffer = NULL;
+
+ if (dest_buffer)
+ free(dest_buffer), dest_buffer = NULL;
+
+ if (WIFEXITED(stage->status) || WIFSIGNALED(stage->status)) {
+ waitpid(stage->pid, &stage->status, WUNTRACED);
+ exit_status = WEXITSTATUS(stage->status);
+ if (exit_status != 0)
+ fprintf(stderr,
+ "Error: Stage [%s] failed -- exit status [%d | %d]\n",
+ stage->description,
+ stage->status,
+ exit_status);
+ }
+
+ pthread_exit(NULL);
+}
+
+static void *
+c2b_write_in_bytes_to_in_process(void *arg)
+{
+ c2b_pipeline_stage_t *stage = (c2b_pipeline_stage_t *) arg;
+ c2b_pipeset_t *pipes = stage->pipeset;
+ char buffer[C2B_MAX_LINE_LENGTH_VALUE];
+ ssize_t bytes_read;
+ int exit_status = 0;
+
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunused-result"
+ /* read buffer from p->in[1] and write buffer to p->in[2] */
+ while ((bytes_read = read(pipes->in[stage->src][PIPE_READ], buffer, C2B_MAX_LINE_LENGTH_VALUE)) > 0) {
+ write(pipes->in[stage->dest][PIPE_WRITE], buffer, bytes_read);
+ }
+#pragma GCC diagnostic pop
+
+ close(pipes->in[stage->dest][PIPE_WRITE]);
+
+ if (WIFEXITED(stage->status) || WIFSIGNALED(stage->status)) {
+ waitpid(stage->pid, &stage->status, WUNTRACED);
+ exit_status = WEXITSTATUS(stage->status);
+ if (exit_status != 0)
+ fprintf(stderr,
+ "Error: Stage [%s] failed -- exit status [%d | %d]\n",
+ stage->description,
+ stage->status,
+ exit_status);
+ }
+
+ pthread_exit(NULL);
+}
+
+static void *
+c2b_write_out_bytes_to_in_process(void *arg)
+{
+ c2b_pipeline_stage_t *stage = (c2b_pipeline_stage_t *) arg;
+ c2b_pipeset_t *pipes = stage->pipeset;
+ char buffer[C2B_MAX_LINE_LENGTH_VALUE];
+ ssize_t bytes_read;
+ int exit_status = 0;
+
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunused-result"
+ /* read buffer from p->out[1] and write buffer to p->in[2] */
+ while ((bytes_read = read(pipes->out[stage->src][PIPE_READ], buffer, C2B_MAX_LINE_LENGTH_VALUE)) > 0) {
+ write(pipes->in[stage->dest][PIPE_WRITE], buffer, bytes_read);
+ }
+#pragma GCC diagnostic pop
+
+ close(pipes->in[stage->dest][PIPE_WRITE]);
+
+ if (WIFEXITED(stage->status) || WIFSIGNALED(stage->status)) {
+ waitpid(stage->pid, &stage->status, WUNTRACED);
+ exit_status = WEXITSTATUS(stage->status);
+ if (exit_status != 0)
+ fprintf(stderr,
+ "Error: Stage [%s] failed -- exit status [%d | %d]\n",
+ stage->description,
+ stage->status,
+ exit_status);
+ }
+
+ pthread_exit(NULL);
+}
+
+static void *
+c2b_write_in_bytes_to_stdout(void *arg)
+{
+ c2b_pipeline_stage_t *stage = (c2b_pipeline_stage_t *) arg;
+ c2b_pipeset_t *pipes = stage->pipeset;
+ char buffer[C2B_MAX_LINE_LENGTH_VALUE];
+ ssize_t bytes_read;
+ int exit_status = 0;
+
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunused-result"
+ while ((bytes_read = read(pipes->in[stage->src][PIPE_READ], buffer, C2B_MAX_LINE_LENGTH_VALUE)) > 0) {
+ write(STDOUT_FILENO, buffer, bytes_read);
+ }
+#pragma GCC diagnostic pop
+
+ if (WIFEXITED(stage->status) || WIFSIGNALED(stage->status)) {
+ waitpid(stage->pid, &stage->status, WUNTRACED);
+ exit_status = WEXITSTATUS(stage->status);
+ if (exit_status != 0)
+ fprintf(stderr,
+ "Error: Stage [%s] failed -- exit status [%d | %d]\n",
+ stage->description,
+ stage->status,
+ exit_status);
+ }
+
+ pthread_exit(NULL);
+}
+
+static void *
+c2b_write_out_bytes_to_stdout(void *arg)
+{
+ c2b_pipeline_stage_t *stage = (c2b_pipeline_stage_t *) arg;
+ c2b_pipeset_t *pipes = stage->pipeset;
+ char buffer[C2B_MAX_LINE_LENGTH_VALUE];
+ ssize_t bytes_read;
+ int exit_status = 0;
+
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunused-result"
+ while ((bytes_read = read(pipes->out[stage->src][PIPE_READ], buffer, C2B_MAX_LINE_LENGTH_VALUE)) > 0) {
+ write(STDOUT_FILENO, buffer, bytes_read);
+ }
+#pragma GCC diagnostic pop
+
+ if (WIFEXITED(stage->status) || WIFSIGNALED(stage->status)) {
+ waitpid(stage->pid, &stage->status, WUNTRACED);
+ exit_status = WEXITSTATUS(stage->status);
+ if (exit_status != 0)
+ fprintf(stderr,
+ "Error: Stage [%s] failed -- exit status [%d | %d]\n",
+ stage->description,
+ stage->status,
+ exit_status);
+ }
+
+ pthread_exit(NULL);
+}
+
+static void
+c2b_memrchr_offset(ssize_t *offset, char *buf, ssize_t buf_size, ssize_t len, char delim)
+{
+ ssize_t left = len;
+
+ *offset = -1;
+ if (len > buf_size)
+ return;
+
+ while (left > 0) {
+ if (buf[left - 1] == delim) {
+ *offset = left;
+ return;
+ }
+ left--;
+ }
+}
+
+static void
+c2b_init_pipeset(c2b_pipeset_t *p, const size_t num)
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_pipeset() - enter ---\n");
+#endif
+
+ int **ins = NULL;
+ int **outs = NULL;
+ int **errs = NULL;
+ size_t n;
+
+ ins = malloc(num * sizeof(int *));
+ outs = malloc(num * sizeof(int *));
+ errs = malloc(num * sizeof(int *));
+ if ((!ins) || (!outs) || (!errs)) {
+ fprintf(stderr, "Error: Could not allocate space to temporary pipe arrays\n");
+ c2b_print_usage(stderr);
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+
+ p->in = ins;
+ p->out = outs;
+ p->err = errs;
+
+ for (n = 0; n < num; n++) {
+ p->in[n] = NULL;
+ p->in[n] = malloc(PIPE_STREAMS * sizeof(int));
+ if (!p->in[n]) {
+ fprintf(stderr, "Error: Could not allocate space to temporary internal pipe array\n");
+ c2b_print_usage(stderr);
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ p->out[n] = NULL;
+ p->out[n] = malloc(PIPE_STREAMS * sizeof(int));
+ if (!p->out[n]) {
+ fprintf(stderr, "Error: Could not allocate space to temporary internal pipe array\n");
+ c2b_print_usage(stderr);
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ p->err[n] = NULL;
+ p->err[n] = malloc(PIPE_STREAMS * sizeof(int));
+ if (!p->err[n]) {
+ fprintf(stderr, "Error: Could not allocate space to temporary internal pipe array\n");
+ c2b_print_usage(stderr);
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+
+ /* set close-on-exec flag for each pipe */
+ c2b_pipe4_cloexec(p->in[n]);
+ c2b_pipe4_cloexec(p->out[n]);
+ c2b_pipe4_cloexec(p->err[n]);
+
+ /* set stderr as output for each err write */
+ p->err[n][PIPE_WRITE] = STDERR_FILENO;
+ }
+
+ p->num = num;
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_pipeset() - exit ---\n");
+#endif
+}
+
+/*
+ specifying special attribute for c2b_debug_pipeset() to avoid: "warning: unused
+ function 'c2b_debug_pipeset' [-Wunused-function]" message during non-debug compilation
+
+ cf. http://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/Function-Attributes.html#Function%20Attributes
+*/
+#if defined(__GNUC__)
+static void c2b_debug_pipeset() __attribute__ ((unused));
+#endif
+
+static void
+c2b_debug_pipeset(c2b_pipeset_t *p, const size_t num)
+{
+ size_t n;
+ size_t s;
+
+ for (n = 0; n < num; n++) {
+ for (s = 0; s < PIPE_STREAMS; s++) {
+ fprintf(stderr, "\t-> c2b_debug_pipeset - [n, s] = [%zu, %zu] - [%s\t- in, out, err] = [%d, %d, %d]\n",
+ n,
+ s,
+ (!s ? "READ" : "WRITE"),
+ p->in[n][s],
+ p->out[n][s],
+ p->err[n][s]);
+ }
+ }
+}
+
+static void
+c2b_delete_pipeset(c2b_pipeset_t *p)
+{
+ size_t n;
+ size_t s;
+
+ for (n = 0; n < p->num; n++) {
+ for (s = 0; s < PIPE_STREAMS; s++) {
+ close(p->in[n][s]);
+ close(p->out[n][s]);
+ close(p->err[n][s]);
+ }
+ free(p->in[n]), p->in[n] = NULL;
+ free(p->out[n]), p->out[n] = NULL;
+ free(p->err[n]), p->err[n] = NULL;
+ }
+ free(p->in), p->in = NULL;
+ free(p->out), p->out = NULL;
+ free(p->err), p->err = NULL;
+
+ p->num = 0;
+}
+
+static void
+c2b_set_close_exec_flag(int fd)
+{
+ fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
+}
+
+static void
+c2b_unset_close_exec_flag(int fd)
+{
+ fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) & ~FD_CLOEXEC);
+}
+
+static int
+c2b_pipe4(int fd[2], int flags)
+{
+ int ret = pipe(fd);
+ if (flags & PIPE4_FLAG_RD_CLOEXEC) {
+ c2b_set_close_exec_flag(fd[PIPE_READ]);
+ }
+ if (flags & PIPE4_FLAG_WR_CLOEXEC) {
+ c2b_set_close_exec_flag(fd[PIPE_WRITE]);
+ }
+ return ret;
+}
+
+static pid_t
+c2b_popen4(const char* cmd, int pin[2], int pout[2], int perr[2], int flags)
+{
+ pid_t ret = fork();
+ int execl_ret = 0;
+
+ if (ret < 0) {
+ fprintf(stderr, "fork() failed!\n");
+ return ret;
+ }
+ else if (ret == 0) {
+ /*
+ Child-side of fork
+ */
+ if (flags & POPEN4_FLAG_CLOSE_CHILD_STDIN) {
+ close(STDIN_FILENO);
+ }
+ else {
+ c2b_unset_close_exec_flag(pin[PIPE_READ]);
+ dup2(pin[PIPE_READ], STDIN_FILENO);
+ }
+ if (flags & POPEN4_FLAG_CLOSE_CHILD_STDOUT) {
+ close(STDOUT_FILENO);
+ }
+ else {
+ c2b_unset_close_exec_flag(pout[PIPE_WRITE]);
+ dup2(pout[PIPE_WRITE], STDOUT_FILENO);
+ }
+ if (flags & POPEN4_FLAG_CLOSE_CHILD_STDERR) {
+ close(STDERR_FILENO);
+ }
+ else {
+ c2b_unset_close_exec_flag(perr[PIPE_WRITE]);
+ dup2(perr[PIPE_WRITE], STDERR_FILENO);
+ }
+ execl_ret = execl("/bin/sh", "/bin/sh", "-c", cmd, NULL);
+ if (execl_ret == -1) {
+ int errsv = errno;
+ fprintf(stderr, "Error: exec() failed (%d)\n", errsv);
+ exit(errsv);
+ }
+ }
+ else {
+ /*
+ Parent-side of fork
+ */
+ if (~flags & POPEN4_FLAG_NOCLOSE_PARENT_STDIN && ~flags & POPEN4_FLAG_CLOSE_CHILD_STDIN) {
+ close(pin[PIPE_READ]);
+ }
+ if (~flags & POPEN4_FLAG_NOCLOSE_PARENT_STDOUT && ~flags & POPEN4_FLAG_CLOSE_CHILD_STDOUT) {
+ close(pout[PIPE_WRITE]);
+ }
+ if (~flags & POPEN4_FLAG_NOCLOSE_PARENT_STDERR && ~flags & POPEN4_FLAG_CLOSE_CHILD_STDERR) {
+ //close(perr[PIPE_WRITE]);
+ }
+ return ret;
+ }
+
+ /* Unreachable */
+ return ret;
+}
+
+static void
+c2b_test_dependencies()
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_test_dependencies() - enter ---\n");
+#endif
+
+ char *p = NULL;
+ char *path = NULL;
+
+ if ((p = getenv("PATH")) == NULL) {
+ fprintf(stderr, "Error: Cannot retrieve environment PATH variable\n");
+ c2b_print_usage(stderr);
+ exit(EINVAL); /* Invalid argument (POSIX.1) */
+ }
+ path = malloc(strlen(p) + 1);
+ if (!path) {
+ fprintf(stderr, "Error: Cannot allocate space for path variable copy\n");
+ c2b_print_usage(stderr);
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ memcpy(path, p, strlen(p) + 1);
+
+ if ((c2b_globals.input_format_idx == BAM_FORMAT) || (c2b_globals.input_format_idx == SAM_FORMAT)) {
+ char *samtools = NULL;
+ samtools = malloc(strlen(c2b_samtools) + 1);
+ if (!samtools) {
+ fprintf(stderr, "Error: Cannot allocate space for samtools variable copy\n");
+ c2b_print_usage(stderr);
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ memcpy(samtools, c2b_samtools, strlen(c2b_samtools) + 1);
+
+ char *path_samtools = NULL;
+ path_samtools = malloc(strlen(path) + 1);
+ if (!path_samtools) {
+ fprintf(stderr, "Error: Cannot allocate space for path (samtools) copy\n");
+ c2b_print_usage(stderr);
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ memcpy(path_samtools, path, strlen(path) + 1);
+
+#ifdef DEBUG
+ fprintf(stderr, "Debug: Searching [%s] for samtools\n", path_samtools);
+#endif
+
+ if (c2b_print_matches(path_samtools, samtools) != kTrue) {
+ fprintf(stderr, "Error: Cannot find samtools binary required for conversion of BAM and SAM format\n");
+ c2b_print_usage(stderr);
+ exit(ENOENT); /* No such file or directory (POSIX.1) */
+ }
+ free(path_samtools), path_samtools = NULL;
+ free(samtools), samtools = NULL;
+ }
+
+ if (c2b_globals.sort->is_enabled) {
+ char *sort_bed = NULL;
+ sort_bed = malloc(strlen(c2b_sort_bed) + 1);
+ if (!sort_bed) {
+ fprintf(stderr, "Error: Cannot allocate space for sort-bed variable copy\n");
+ c2b_print_usage(stderr);
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ memcpy(sort_bed, c2b_sort_bed, strlen(c2b_sort_bed) + 1);
+
+ char *path_sort_bed = NULL;
+ path_sort_bed = malloc(strlen(path) + 1);
+ if (!path_sort_bed) {
+ fprintf(stderr, "Error: Cannot allocate space for path (samtools) copy\n");
+ c2b_print_usage(stderr);
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ memcpy(path_sort_bed, path, strlen(path) + 1);
+
+#ifdef DEBUG
+ fprintf(stderr, "Debug: Searching [%s] for sort-bed\n", path_sort_bed);
+#endif
+
+ if (c2b_print_matches(path_sort_bed, sort_bed) != kTrue) {
+ fprintf(stderr, "Error: Cannot find sort-bed binary required for sorting BED output\n");
+ c2b_print_usage(stderr);
+ exit(ENOENT); /* No such file or directory (POSIX.1) */
+ }
+ free(path_sort_bed), path_sort_bed = NULL;
+ free(sort_bed), sort_bed = NULL;
+ }
+
+ if (c2b_globals.output_format_idx == STARCH_FORMAT) {
+ char *starch = NULL;
+ starch = malloc(strlen(c2b_starch) + 1);
+ if (!starch) {
+ fprintf(stderr, "Error: Cannot allocate space for starch variable copy\n");
+ c2b_print_usage(stderr);
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ memcpy(starch, c2b_starch, strlen(c2b_starch) + 1);
+
+ char *path_starch = NULL;
+ path_starch = malloc(strlen(path) + 1);
+ if (!path_starch) {
+ fprintf(stderr, "Error: Cannot allocate space for path (starch) copy\n");
+ c2b_print_usage(stderr);
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ memcpy(path_starch, path, strlen(path) + 1);
+
+#ifdef DEBUG
+ fprintf(stderr, "Debug: Searching [%s] for starch\n", path_starch);
+#endif
+
+ if (c2b_print_matches(path_starch, starch) != kTrue) {
+ fprintf(stderr, "Error: Cannot find starch binary required for compression of BED output\n");
+ c2b_print_usage(stderr);
+ exit(ENOENT); /* No such file or directory (POSIX.1) */
+ }
+ free(path_starch), path_starch = NULL;
+ free(starch), starch = NULL;
+ }
+
+ if (c2b_globals.input_format_idx != BAM_FORMAT) {
+ char *cat = NULL;
+ cat = malloc(strlen(c2b_cat) + 1);
+ if (!cat) {
+ fprintf(stderr, "Error: Cannot allocate space for cat variable copy\n");
+ c2b_print_usage(stderr);
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ memcpy(cat, c2b_cat, strlen(c2b_cat) + 1);
+
+ char *path_cat = NULL;
+ path_cat = malloc(strlen(path) + 1);
+ if (!path_cat) {
+ fprintf(stderr, "Error: Cannot allocate space for path (cat) copy\n");
+ c2b_print_usage(stderr);
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ memcpy(path_cat, path, strlen(path) + 1);
+
+#ifdef DEBUG
+ fprintf(stderr, "Debug: Searching [%s] for cat\n", path_cat);
+#endif
+
+ if (c2b_print_matches(path_cat, cat) != kTrue) {
+ fprintf(stderr, "Error: Cannot find cat binary required for piping IO\n");
+ c2b_print_usage(stderr);
+ exit(ENOENT); /* No such file or directory (POSIX.1) */
+ }
+ free(path_cat), path_cat = NULL;
+ free(cat), cat = NULL;
+ }
+
+ free(path), path = NULL;
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_test_dependencies() - exit ---\n");
+#endif
+}
+
+static boolean
+c2b_print_matches(char *path, char *fn)
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_print_matches() - enter ---\n");
+#endif
+
+ char candidate[PATH_MAX];
+ const char *d;
+ boolean found = kFalse;
+
+ if (strchr(fn, '/') != NULL) {
+ return (c2b_is_there(fn) ? kTrue : kFalse);
+ }
+ while ((d = c2b_strsep(&path, ":")) != NULL) {
+ if (*d == '\0') {
+ d = ".";
+ }
+ if (snprintf(candidate, sizeof(candidate), "%s/%s", d, fn) >= (int) sizeof(candidate)) {
+ continue;
+ }
+ if (c2b_is_there(candidate)) {
+ found = kTrue;
+ if (strcmp(fn, c2b_samtools) == 0) {
+ c2b_globals.sam->samtools_path = malloc(strlen(candidate) + 1);
+ if (!c2b_globals.sam->samtools_path) {
+ fprintf(stderr, "Error: Could not allocate space for storing samtools path global\n");
+ c2b_print_usage(stderr);
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ memcpy(c2b_globals.sam->samtools_path, candidate, strlen(candidate));
+ c2b_globals.sam->samtools_path[strlen(candidate)] = '\0';
+ }
+ else if (strcmp(fn, c2b_sort_bed) == 0) {
+ c2b_globals.sort->sort_bed_path = malloc(strlen(candidate) + 1);
+ if (!c2b_globals.sort->sort_bed_path) {
+ fprintf(stderr, "Error: Could not allocate space for storing sortbed path global\n");
+ c2b_print_usage(stderr);
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ memcpy(c2b_globals.sort->sort_bed_path, candidate, strlen(candidate));
+ c2b_globals.sort->sort_bed_path[strlen(candidate)] = '\0';
+ }
+ else if (strcmp(fn, c2b_starch) == 0) {
+ c2b_globals.starch->path = malloc(strlen(candidate) + 1);
+ if (!c2b_globals.starch->path) {
+ fprintf(stderr, "Error: Could not allocate space for storing starch path global\n");
+ c2b_print_usage(stderr);
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ memcpy(c2b_globals.starch->path, candidate, strlen(candidate));
+ c2b_globals.starch->path[strlen(candidate)] = '\0';
+ }
+ else if (strcmp(fn, c2b_cat) == 0) {
+ c2b_globals.cat->path = malloc(strlen(candidate) + 1);
+ if (!c2b_globals.cat->path) {
+ fprintf(stderr, "Errrpr: Could not allocate space for storing cat path global\n");
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ memcpy(c2b_globals.cat->path, candidate, strlen(candidate));
+ c2b_globals.cat->path[strlen(candidate)] = '\0';
+ }
+ break;
+ }
+ }
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_print_matches() - exit ---\n");
+#endif
+
+ return found;
+}
+
+static char *
+c2b_strsep(char **stringp, const char *delim)
+{
+ char *s;
+ const char *spanp;
+ int c, sc;
+ char *tok;
+
+ if ((s = *stringp) == NULL)
+ return NULL;
+
+ for (tok = s;;) {
+ c = *s++;
+ spanp = delim;
+ do {
+ if ((sc = *spanp++) == c) {
+ if (c == 0)
+ s = NULL;
+ else
+ s[-1] = 0;
+ *stringp = s;
+ return tok;
+ }
+ } while (sc != 0);
+ }
+
+ return NULL;
+}
+
+static boolean
+c2b_is_there(char *candidate)
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_is_there() - enter ---\n");
+#endif
+
+ struct stat fin;
+ boolean found = kFalse;
+
+ if (access(candidate, X_OK) == 0
+ && stat(candidate, &fin) == 0
+ && S_ISREG(fin.st_mode)
+ && (getuid() != 0 || (fin.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)) != 0)) {
+#ifdef DEBUG
+ fprintf(stderr, "Debug: Found dependency [%s]\n", candidate);
+#endif
+ found = kTrue;
+ }
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_is_there() - exit ---\n");
+#endif
+
+ return found;
+}
+
+static void
+c2b_init_globals()
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_globals() - enter ---\n");
+#endif
+
+ c2b_globals.input_format = NULL;
+ c2b_globals.input_format_idx = UNDEFINED_FORMAT;
+ c2b_globals.output_format = NULL;
+ c2b_globals.output_format_idx = UNDEFINED_FORMAT;
+ c2b_globals.all_reads_flag = kFalse;
+ c2b_globals.keep_header_flag = kFalse;
+ c2b_globals.split_flag = kFalse;
+ c2b_globals.zero_indexed_flag = kFalse;
+ c2b_globals.header_line_idx = 0U;
+ c2b_globals.gff = NULL, c2b_init_global_gff_state();
+ c2b_globals.gtf = NULL, c2b_init_global_gtf_state();
+ c2b_globals.psl = NULL, c2b_init_global_psl_state();
+ c2b_globals.rmsk = NULL, c2b_init_global_rmsk_state();
+ c2b_globals.sam = NULL, c2b_init_global_sam_state();
+ c2b_globals.vcf = NULL, c2b_init_global_vcf_state();
+ c2b_globals.wig = NULL, c2b_init_global_wig_state();
+ c2b_globals.cat = NULL, c2b_init_global_cat_params();
+ c2b_globals.sort = NULL, c2b_init_global_sort_params();
+ c2b_globals.starch = NULL, c2b_init_global_starch_params();
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_globals() - exit ---\n");
+#endif
+}
+
+static void
+c2b_delete_globals()
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_delete_globals() - enter ---\n");
+#endif
+
+ if (c2b_globals.output_format) free(c2b_globals.output_format), c2b_globals.output_format = NULL;
+ if (c2b_globals.input_format) free(c2b_globals.input_format), c2b_globals.input_format = NULL;
+ c2b_globals.input_format_idx = UNDEFINED_FORMAT;
+ c2b_globals.all_reads_flag = kFalse;
+ c2b_globals.keep_header_flag = kFalse;
+ c2b_globals.split_flag = kFalse;
+ c2b_globals.header_line_idx = 0U;
+ if (c2b_globals.gff) c2b_delete_global_gff_state();
+ if (c2b_globals.gtf) c2b_delete_global_gtf_state();
+ if (c2b_globals.psl) c2b_delete_global_psl_state();
+ if (c2b_globals.rmsk) c2b_delete_global_rmsk_state();
+ if (c2b_globals.sam) c2b_delete_global_sam_state();
+ if (c2b_globals.vcf) c2b_delete_global_vcf_state();
+ if (c2b_globals.wig) c2b_delete_global_wig_state();
+ if (c2b_globals.cat) c2b_delete_global_cat_params();
+ if (c2b_globals.sort) c2b_delete_global_sort_params();
+ if (c2b_globals.starch) c2b_delete_global_starch_params();
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_delete_globals() - exit ---\n");
+#endif
+}
+
+static void
+c2b_init_global_gff_state()
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_global_gff_state() - enter ---\n");
+#endif
+
+ c2b_globals.gff = malloc(sizeof(c2b_gff_state_t));
+ if (!c2b_globals.gff) {
+ fprintf(stderr, "Error: Could not allocate space for GFF state global\n");
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+
+ c2b_globals.gff->id = malloc(C2B_MAX_FIELD_LENGTH_VALUE);
+ if (!c2b_globals.gff->id) {
+ fprintf(stderr, "Error: Could not allocate space for GFF ID global\n");
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ memset(c2b_globals.gff->id, 0, C2B_MAX_FIELD_LENGTH_VALUE);
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_global_gff_state() - exit ---\n");
+#endif
+}
+
+static void
+c2b_delete_global_gff_state()
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_delete_global_gff_state() - enter ---\n");
+#endif
+
+ if (c2b_globals.gff->id)
+ free(c2b_globals.gff->id), c2b_globals.gff->id = NULL;
+
+ free(c2b_globals.gff), c2b_globals.gff = NULL;
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_delete_global_gff_state() - exit ---\n");
+#endif
+}
+
+static void
+c2b_init_global_gtf_state()
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_global_gtf_state() - enter ---\n");
+#endif
+
+ c2b_globals.gtf = malloc(sizeof(c2b_gtf_state_t));
+ if (!c2b_globals.gtf) {
+ fprintf(stderr, "Error: Could not allocate space for GTF state global\n");
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+
+ c2b_globals.gtf->id = malloc(C2B_MAX_FIELD_LENGTH_VALUE);
+ if (!c2b_globals.gtf->id) {
+ fprintf(stderr, "Error: Could not allocate space for GTF ID global\n");
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ memset(c2b_globals.gtf->id, 0, C2B_MAX_FIELD_LENGTH_VALUE);
+
+ c2b_globals.gtf->line_count = 0;
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_global_gtf_state() - exit ---\n");
+#endif
+}
+
+static void
+c2b_delete_global_gtf_state()
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_delete_global_gtf_state() - enter ---\n");
+#endif
+
+ if (c2b_globals.gtf->id)
+ free(c2b_globals.gtf->id), c2b_globals.gtf->id = NULL;
+
+ free(c2b_globals.gtf), c2b_globals.gtf = NULL;
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_delete_global_gtf_state() - exit ---\n");
+#endif
+}
+
+static void
+c2b_init_global_psl_state()
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_global_psl_state() - enter ---\n");
+#endif
+
+ c2b_globals.psl = malloc(sizeof(c2b_psl_state_t));
+ if (!c2b_globals.psl) {
+ fprintf(stderr, "Error: Could not allocate space for PSL state global\n");
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+
+ c2b_globals.psl->is_headered = kTrue;
+
+ c2b_globals.psl->block = NULL;
+ c2b_globals.psl->block = malloc(sizeof(c2b_psl_block_t));
+ if (!c2b_globals.psl->block) {
+ fprintf(stderr, "Error: Could not allocate space for PSL block state global\n");
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+
+ c2b_globals.psl->block->max_count = 0;
+
+ c2b_globals.psl->block->sizes = NULL;
+ c2b_globals.psl->block->sizes = malloc(sizeof(uint64_t) * C2B_MAX_PSL_BLOCKS);
+ if (!c2b_globals.psl->block->sizes) {
+ fprintf(stderr, "Error: Could not allocate space for PSL block state sizes global\n");
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+
+ c2b_globals.psl->block->starts = NULL;
+ c2b_globals.psl->block->starts = malloc(sizeof(uint64_t) * C2B_MAX_PSL_BLOCKS);
+ if (!c2b_globals.psl->block->starts) {
+ fprintf(stderr, "Error: Could not allocate space for PSL block state starts global\n");
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+
+ c2b_globals.psl->block->max_count = C2B_MAX_PSL_BLOCKS;
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_global_psl_state() - exit ---\n");
+#endif
+}
+
+static void
+c2b_delete_global_psl_state()
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_delete_global_psl_state() - enter ---\n");
+#endif
+
+ free(c2b_globals.psl->block->starts), c2b_globals.psl->block->starts = NULL;
+ free(c2b_globals.psl->block->sizes), c2b_globals.psl->block->sizes = NULL;
+ c2b_globals.psl->block->max_count = 0;
+ free(c2b_globals.psl->block), c2b_globals.psl->block = NULL;
+ free(c2b_globals.psl), c2b_globals.psl = NULL;
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_delete_global_psl_state() - exit ---\n");
+#endif
+}
+
+static void
+c2b_init_global_rmsk_state()
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_global_rmsk_state() - enter ---\n");
+#endif
+
+ c2b_globals.rmsk = malloc(sizeof(c2b_rmsk_state_t));
+ if (!c2b_globals.rmsk) {
+ fprintf(stderr, "Error: Could not allocate space for RepeatMasker annotation state global\n");
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+
+ c2b_globals.rmsk->line = 0U;
+ c2b_globals.rmsk->is_start_of_line = kTrue;
+ c2b_globals.rmsk->is_start_of_gap = kFalse;
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_global_rmsk_state() - exit ---\n");
+#endif
+}
+
+static void
+c2b_delete_global_rmsk_state()
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_delete_global_rmsk_state() - enter ---\n");
+#endif
+
+ free(c2b_globals.rmsk), c2b_globals.rmsk = NULL;
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_delete_global_rmsk_state() - exit ---\n");
+#endif
+}
+
+static void
+c2b_init_global_sam_state()
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_global_sam_state() - enter ---\n");
+#endif
+
+ c2b_globals.sam = malloc(sizeof(c2b_sam_state_t));
+ if (!c2b_globals.sam) {
+ fprintf(stderr, "Error: Could not allocate space for SAM state global\n");
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+
+ c2b_globals.sam->samtools_path = NULL;
+
+ c2b_globals.sam->cigar = NULL, c2b_sam_init_cigar_ops(&(c2b_globals.sam->cigar), C2B_MAX_OPERATIONS_VALUE);
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_global_sam_state() - exit ---\n");
+#endif
+}
+
+static void
+c2b_delete_global_sam_state()
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_delete_global_sam_state() - enter ---\n");
+#endif
+
+ if (c2b_globals.sam->samtools_path)
+ free(c2b_globals.sam->samtools_path), c2b_globals.sam->samtools_path = NULL;
+
+ if (c2b_globals.sam->cigar)
+ c2b_sam_delete_cigar_ops(c2b_globals.sam->cigar);
+
+ free(c2b_globals.sam), c2b_globals.sam = NULL;
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_delete_global_sam_state() - exit ---\n");
+#endif
+}
+
+static void
+c2b_init_global_vcf_state()
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_global_vcf_state() - enter ---\n");
+#endif
+
+ c2b_globals.vcf = malloc(sizeof(c2b_vcf_state_t));
+ if (!c2b_globals.vcf) {
+ fprintf(stderr, "Error: Could not allocate space for VCF state global\n");
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+
+ c2b_globals.vcf->do_not_split = kFalse;
+ c2b_globals.vcf->only_snvs = kFalse;
+ c2b_globals.vcf->only_insertions = kFalse;
+ c2b_globals.vcf->only_deletions = kFalse;
+ c2b_globals.vcf->filter_count = 0U;
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_global_vcf_state() - exit ---\n");
+#endif
+}
+
+static void
+c2b_delete_global_vcf_state()
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_delete_global_vcf_state() - enter ---\n");
+#endif
+
+ free(c2b_globals.vcf), c2b_globals.vcf = NULL;
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_delete_global_vcf_state() - exit ---\n");
+#endif
+}
+
+static void
+c2b_init_global_wig_state()
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_global_wig_state() - enter ---\n");
+#endif
+
+ c2b_globals.wig = malloc(sizeof(c2b_wig_state_t));
+ if (!c2b_globals.wig) {
+ fprintf(stderr, "Error: Could not allocate space for WIG state global\n");
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+
+ c2b_globals.wig->section = 1;
+ c2b_globals.wig->line = 0;
+ c2b_globals.wig->pos_lines = 0;
+ c2b_globals.wig->span = 0;
+ c2b_globals.wig->step = 0;
+ c2b_globals.wig->start_pos = 0;
+ c2b_globals.wig->end_pos = 0;
+ c2b_globals.wig->score = 0.0f;
+ c2b_globals.wig->chr = NULL;
+ c2b_globals.wig->id = NULL;
+ c2b_globals.wig->is_fixed_step = kFalse;
+ c2b_globals.wig->start_write = kFalse;
+ c2b_globals.wig->basename = NULL;
+ c2b_globals.wig->start_shift = 1;
+ c2b_globals.wig->end_shift = 1;
+
+ c2b_globals.wig->chr = malloc(C2B_MAX_CHROMOSOME_LENGTH);
+ if (!c2b_globals.wig->chr) {
+ fprintf(stderr, "Error: Could not allocate space for global WIG chromosome string\n");
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ memset(c2b_globals.wig->chr, 0, C2B_MAX_CHROMOSOME_LENGTH);
+
+ c2b_globals.wig->id = malloc(C2B_MAX_FIELD_LENGTH_VALUE);
+ if (!c2b_globals.wig->id) {
+ fprintf(stderr, "Error: Could not allocate space for global WIG ID string\n");
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ memset(c2b_globals.wig->id, 0, C2B_MAX_FIELD_LENGTH_VALUE);
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_global_wig_state() - exit ---\n");
+#endif
+}
+
+static void
+c2b_delete_global_wig_state()
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_delete_global_wig_state() - enter ---\n");
+#endif
+
+ if (c2b_globals.wig->chr)
+ free(c2b_globals.wig->chr), c2b_globals.wig->chr = NULL;
+
+ if (c2b_globals.wig->id)
+ free(c2b_globals.wig->id), c2b_globals.wig->id = NULL;
+
+ if (c2b_globals.wig->basename)
+ free(c2b_globals.wig->basename), c2b_globals.wig->basename = NULL;
+
+ free(c2b_globals.wig), c2b_globals.wig = NULL;
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_delete_global_wig_state() - exit ---\n");
+#endif
+}
+
+static void
+c2b_init_global_cat_params()
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_global_cat_params() - enter ---\n");
+#endif
+
+ c2b_globals.cat = malloc(sizeof(c2b_cat_params_t));
+ if (!c2b_globals.cat) {
+ fprintf(stderr, "Error: Could not allocate space for cat parameters global\n");
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+
+ c2b_globals.cat->path = NULL;
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_global_cat_params() - exit ---\n");
+#endif
+}
+
+static void
+c2b_delete_global_cat_params()
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_delete_global_cat_params() - enter ---\n");
+#endif
+
+ if (c2b_globals.cat->path)
+ free(c2b_globals.cat->path), c2b_globals.cat->path = NULL;
+
+ free(c2b_globals.cat), c2b_globals.cat = NULL;
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_delete_global_cat_params() - exit ---\n");
+#endif
+}
+
+static void
+c2b_init_global_sort_params()
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_global_sort_params() - enter ---\n");
+#endif
+
+ c2b_globals.sort = malloc(sizeof(c2b_sort_params_t));
+ if (!c2b_globals.sort) {
+ fprintf(stderr, "Error: Could not allocate space for sort parameters global\n");
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+
+ c2b_globals.sort->is_enabled = kTrue;
+ c2b_globals.sort->sort_bed_path = NULL;
+ c2b_globals.sort->max_mem_value = NULL;
+ c2b_globals.sort->sort_tmpdir_path = NULL;
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_global_sort_params() - exit ---\n");
+#endif
+}
+
+static void
+c2b_delete_global_sort_params()
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_delete_global_sort_params() - enter ---\n");
+#endif
+
+ if (c2b_globals.sort->max_mem_value)
+ free(c2b_globals.sort->max_mem_value), c2b_globals.sort->max_mem_value = NULL;
+
+ if (c2b_globals.sort->sort_bed_path)
+ free(c2b_globals.sort->sort_bed_path), c2b_globals.sort->sort_bed_path = NULL;
+
+ if (c2b_globals.sort->sort_tmpdir_path)
+ free(c2b_globals.sort->sort_tmpdir_path), c2b_globals.sort->sort_tmpdir_path = NULL;
+
+ free(c2b_globals.sort), c2b_globals.sort = NULL;
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_delete_global_sort_params() - exit ---\n");
+#endif
+}
+
+static void
+c2b_init_global_starch_params()
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_global_starch_params() - enter ---\n");
+#endif
+
+ c2b_globals.starch = malloc(sizeof(c2b_starch_params_t));
+ if (!c2b_globals.starch) {
+ fprintf(stderr, "Error: Could not allocate space for starch parameters global\n");
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+
+ c2b_globals.starch->path = NULL;
+ c2b_globals.starch->bzip2 = kFalse;
+ c2b_globals.starch->gzip = kFalse;
+ c2b_globals.starch->note = NULL;
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_global_starch_params() - exit ---\n");
+#endif
+}
+
+static void
+c2b_delete_global_starch_params()
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_delete_global_starch_params() - enter ---\n");
+#endif
+
+ if (c2b_globals.starch->path)
+ free(c2b_globals.starch->path), c2b_globals.starch->path = NULL;
+
+ if (c2b_globals.starch->note)
+ free(c2b_globals.starch->note), c2b_globals.starch->note = NULL;
+
+ free(c2b_globals.starch), c2b_globals.starch = NULL;
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_delete_global_starch_params() - exit ---\n");
+#endif
+}
+
+static void
+c2b_init_command_line_options(int argc, char **argv)
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_command_line_options() - enter ---\n");
+#endif
+
+ char *input_format = NULL;
+ char *output_format = NULL;
+ int client_long_index;
+ int client_opt = getopt_long(argc,
+ argv,
+ c2b_client_opt_string,
+ c2b_client_long_options,
+ &client_long_index);
+
+ opterr = 0; /* disable error reporting by GNU getopt */
+
+ while (client_opt != -1) {
+ switch (client_opt)
+ {
+ case 'i':
+ input_format = malloc(strlen(optarg) + 1);
+ if (!input_format) {
+ fprintf(stderr, "Error: Could not allocate space for input format argument\n");
+ c2b_print_usage(stderr);
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ memcpy(input_format, optarg, strlen(optarg) + 1);
+ c2b_globals.input_format = c2b_to_lowercase(input_format);
+ c2b_globals.input_format_idx = c2b_to_input_format(c2b_globals.input_format);
+ free(input_format), input_format = NULL;
+ break;
+ case 'o':
+ output_format = malloc(strlen(optarg) + 1);
+ if (!output_format) {
+ fprintf(stderr, "Error: Could not allocate space for output format argument\n");
+ c2b_print_usage(stderr);
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ memcpy(output_format, optarg, strlen(optarg) + 1);
+ c2b_globals.output_format = c2b_to_lowercase(output_format);
+ c2b_globals.output_format_idx = c2b_to_output_format(c2b_globals.output_format);
+ free(output_format), output_format = NULL;
+ break;
+ case 'm':
+ c2b_globals.sort->max_mem_value = malloc(strlen(optarg) + 1);
+ if (!c2b_globals.sort->max_mem_value) {
+ fprintf(stderr, "Error: Could not allocate space for sort-bed max-mem argument\n");
+ c2b_print_usage(stderr);
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ memcpy(c2b_globals.sort->max_mem_value, optarg, strlen(optarg) + 1);
+ break;
+ case 'r':
+ c2b_globals.sort->sort_tmpdir_path = malloc(strlen(optarg) + 1);
+ if (!c2b_globals.sort->sort_tmpdir_path) {
+ fprintf(stderr, "Error: Could not allocate space for sort-bed temporary directory argument\n");
+ c2b_print_usage(stderr);
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ memcpy(c2b_globals.sort->sort_tmpdir_path, optarg, strlen(optarg) + 1);
+ break;
+ case 'e':
+ c2b_globals.starch->note = malloc(strlen(optarg) + 1);
+ if (!c2b_globals.starch->note) {
+ fprintf(stderr, "Error: Could not allocate space for Starch note\n");
+ c2b_print_usage(stderr);
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ memcpy(c2b_globals.starch->note, optarg, strlen(optarg) + 1);
+ break;
+ case 'b':
+ c2b_globals.wig->basename = malloc(strlen(optarg) + 1);
+ if (!c2b_globals.wig->basename) {
+ fprintf(stderr, "Error: Could not allocate space for WIG basename\n");
+ c2b_print_usage(stderr);
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ memcpy(c2b_globals.wig->basename, optarg, strlen(optarg) + 1);
+ break;
+ case 's':
+ c2b_globals.split_flag = kTrue;
+ break;
+ case 'p':
+ c2b_globals.vcf->do_not_split = kTrue;
+ break;
+ case 'v':
+ c2b_globals.vcf->filter_count++;
+ c2b_globals.vcf->only_snvs = kTrue;
+ break;
+ case 't':
+ c2b_globals.vcf->filter_count++;
+ c2b_globals.vcf->only_insertions = kTrue;
+ break;
+ case 'n':
+ c2b_globals.vcf->filter_count++;
+ c2b_globals.vcf->only_deletions = kTrue;
+ break;
+ case 'd':
+ c2b_globals.sort->is_enabled = kFalse;
+ break;
+ case 'a':
+ c2b_globals.all_reads_flag = kTrue;
+ break;
+ case 'k':
+ c2b_globals.keep_header_flag = kTrue;
+ break;
+ case 'z':
+ c2b_globals.starch->bzip2 = kTrue;
+ break;
+ case 'g':
+ c2b_globals.starch->gzip = kTrue;
+ break;
+ case 'x':
+ c2b_globals.wig->start_shift = 0;
+ c2b_globals.wig->end_shift = 0;
+ c2b_globals.zero_indexed_flag = kTrue;
+ break;
+ case 'h':
+ c2b_print_usage(stdout);
+ exit(EXIT_SUCCESS);
+ case 'w':
+ c2b_print_version(stdout);
+ exit(EXIT_SUCCESS);
+ case '1':
+ c2b_globals.help_format_idx = BAM_FORMAT;
+ c2b_print_format_usage(stdout);
+ exit(EXIT_SUCCESS);
+ case '2':
+ c2b_globals.help_format_idx = GFF_FORMAT;
+ c2b_print_format_usage(stdout);
+ exit(EXIT_SUCCESS);
+ case '3':
+ c2b_globals.help_format_idx = GTF_FORMAT;
+ c2b_print_format_usage(stdout);
+ exit(EXIT_SUCCESS);
+ case '4':
+ c2b_globals.help_format_idx = GVF_FORMAT;
+ c2b_print_format_usage(stdout);
+ exit(EXIT_SUCCESS);
+ case '5':
+ c2b_globals.help_format_idx = PSL_FORMAT;
+ c2b_print_format_usage(stdout);
+ exit(EXIT_SUCCESS);
+ case '6':
+ c2b_globals.help_format_idx = RMSK_FORMAT;
+ c2b_print_format_usage(stdout);
+ exit(EXIT_SUCCESS);
+ case '7':
+ c2b_globals.help_format_idx = SAM_FORMAT;
+ c2b_print_format_usage(stdout);
+ exit(EXIT_SUCCESS);
+ case '8':
+ c2b_globals.help_format_idx = VCF_FORMAT;
+ c2b_print_format_usage(stdout);
+ exit(EXIT_SUCCESS);
+ case '9':
+ c2b_globals.help_format_idx = WIG_FORMAT;
+ c2b_print_format_usage(stdout);
+ exit(EXIT_SUCCESS);
+ case '?':
+ c2b_print_usage(stderr);
+ exit(EXIT_SUCCESS);
+ default:
+ break;
+ }
+ client_opt = getopt_long(argc,
+ argv,
+ c2b_client_opt_string,
+ c2b_client_long_options,
+ &client_long_index);
+ }
+
+ if ((!c2b_globals.input_format) || (c2b_globals.input_format_idx == UNDEFINED_FORMAT)) {
+ c2b_print_usage(stderr);
+ exit(EINVAL); /* Invalid argument (POSIX.1) */
+ }
+
+ if ((!c2b_globals.output_format) || (c2b_globals.output_format_idx == UNDEFINED_FORMAT)) {
+ c2b_globals.output_format = malloc(strlen(c2b_default_output_format) + 1);
+ if (!c2b_globals.output_format) {
+ fprintf(stderr, "Error: Could not allocate space for output format copy\n");
+ c2b_print_usage(stderr);
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ memcpy(c2b_globals.output_format, c2b_default_output_format, strlen(c2b_default_output_format) + 1);
+ c2b_globals.output_format_idx = c2b_to_output_format(c2b_globals.output_format);
+ }
+
+ if ((c2b_globals.input_format_idx == VCF_FORMAT) && (c2b_globals.vcf->filter_count > 1)) {
+ fprintf(stderr, "Error: Cannot specify more than one VCF variant filter option\n");
+ c2b_print_usage(stderr);
+ exit(EINVAL); /* Invalid argument (POSIX.1) */
+ }
+
+ if ((c2b_globals.starch->bzip2) && (c2b_globals.starch->gzip)) {
+ fprintf(stderr, "Error: Cannot specify both Starch compression options\n");
+ c2b_print_usage(stderr);
+ exit(EINVAL); /* Invalid argument (POSIX.1) */
+ }
+
+ if (!(c2b_globals.starch->bzip2) && !(c2b_globals.starch->gzip) && (c2b_globals.output_format_idx == STARCH_FORMAT)) {
+ c2b_globals.starch->bzip2 = kTrue;
+ }
+ else if ((c2b_globals.starch->bzip2 || c2b_globals.starch->gzip) && (c2b_globals.output_format_idx == BED_FORMAT)) {
+ fprintf(stderr, "Error: Cannot specify Starch compression options without setting output format to Starch\n");
+ c2b_print_usage(stderr);
+ exit(EINVAL); /* Invalid argument (POSIX.1) */
+ }
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_init_command_line_options() - exit ---\n");
+#endif
+}
+
+static void
+c2b_print_version(FILE *stream)
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_print_version() - enter ---\n");
+#endif
+
+ fprintf(stream,
+ "%s\n" \
+ " version: %s\n" \
+ " author: %s\n",
+ application_name,
+ application_version,
+ application_authors);
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_print_version() - exit ---\n");
+#endif
+}
+
+static void
+c2b_print_usage(FILE *stream)
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_print_usage() - enter ---\n");
+#endif
+
+ fprintf(stream,
+ "%s\n" \
+ " version: %s\n" \
+ " author: %s\n" \
+ "%s\n" \
+ "%s\n" \
+ "%s\n" \
+ "%s\n",
+ application_name,
+ application_version,
+ application_authors,
+ general_usage,
+ general_description,
+ general_io_options,
+ general_options);
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_print_usage() - exit ---\n");
+#endif
+}
+
+static void
+c2b_print_format_usage(FILE *stream)
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_print_format_usage() - enter ---\n");
+#endif
+
+ char *format_name = NULL;
+ char *format_description = NULL;
+ char *format_options = NULL;
+ char *format_usage = NULL;
+
+ switch(c2b_globals.help_format_idx) {
+ case BAM_FORMAT:
+ format_name = (char *) bam_name;
+ format_usage = (char *) bam_usage;
+ format_description = (char *) bam_description;
+ format_options = (char *) bam_options;
+ break;
+ case GFF_FORMAT:
+ format_name = (char *) gff_name;
+ format_usage = (char *) gff_usage;
+ format_description = (char *) gff_description;
+ format_options = (char *) gff_options;
+ break;
+ case GTF_FORMAT:
+ format_name = (char *) gtf_name;
+ format_usage = (char *) gtf_usage;
+ format_description = (char *) gtf_description;
+ format_options = (char *) gtf_options;
+ break;
+ case GVF_FORMAT:
+ format_name = (char *) gvf_name;
+ format_usage = (char *) gvf_usage;
+ format_description = (char *) gvf_description;
+ format_options = (char *) gvf_options;
+ break;
+ case PSL_FORMAT:
+ format_name = (char *) psl_name;
+ format_usage = (char *) psl_usage;
+ format_description = (char *) psl_description;
+ format_options = (char *) psl_options;
+ break;
+ case RMSK_FORMAT:
+ format_name = (char *) rmsk_name;
+ format_usage = (char *) rmsk_usage;
+ format_description = (char *) rmsk_description;
+ format_options = (char *) rmsk_options;
+ break;
+ case SAM_FORMAT:
+ format_name = (char *) sam_name;
+ format_usage = (char *) sam_usage;
+ format_description = (char *) sam_description;
+ format_options = (char *) sam_options;
+ break;
+ case VCF_FORMAT:
+ format_name = (char *) vcf_name;
+ format_usage = (char *) vcf_usage;
+ format_description = (char *) vcf_description;
+ format_options = (char *) vcf_options;
+ break;
+ case WIG_FORMAT:
+ format_name = (char *) wig_name;
+ format_usage = (char *) wig_usage;
+ format_description = (char *) wig_description;
+ format_options = (char *) wig_options;
+ break;
+ default:
+ format_name = (char *) application_name;
+ format_usage = (char *) format_undefined_usage;
+ format_description = (char *) general_description;
+ format_options = (char *) general_options;
+ }
+
+ if (format_options) {
+ fprintf(stream,
+ "%s\n" \
+ " version: %s\n" \
+ " author: %s\n\n" \
+ "%s\n" \
+ "%s\n" \
+ "%s\n" \
+ "%s\n",
+ format_name,
+ application_version,
+ application_authors,
+ format_usage,
+ format_description,
+ format_options,
+ general_options);
+ }
+ else {
+ fprintf(stream,
+ "%s\n" \
+ " version: %s\n" \
+ " author: %s\n\n" \
+ "%s\n" \
+ "%s\n" \
+ "%s\n",
+ format_name,
+ application_version,
+ application_authors,
+ format_usage,
+ format_description,
+ general_options);
+ }
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_print_format_usage() - exit ---\n");
+#endif
+}
+
+static char *
+c2b_to_lowercase(const char *src)
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_to_lowercase() - enter ---\n");
+#endif
+
+ char *dest = NULL;
+ char *p = NULL;
+
+ if (!src)
+ return dest;
+
+ p = malloc(strlen(src) + 1);
+ if (!p) {
+ fprintf(stderr, "Error: Could not allocate space for lowercase translation\n");
+ c2b_print_usage(stderr);
+ exit(ENOMEM); /* Not enough space (POSIX.1) */
+ }
+ memcpy(p, src, strlen(src) + 1);
+ dest = p;
+ for ( ; *p; ++p)
+ *p = (*p >= 'A' && *p <= 'Z') ? (*p | 0x60) : *p;
+
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_to_lowercase() - exit ---\n");
+#endif
+ return dest;
+}
+
+static c2b_format_t
+c2b_to_input_format(const char *input_format)
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_to_input_format() - enter ---\n");
+ fprintf(stderr, "--- c2b_to_input_format() - exit ---\n");
+#endif
+
+ return
+ (strcmp(input_format, "bam") == 0) ? BAM_FORMAT :
+ (strcmp(input_format, "gff") == 0) ? GFF_FORMAT :
+ (strcmp(input_format, "gtf") == 0) ? GTF_FORMAT :
+ (strcmp(input_format, "gvf") == 0) ? GVF_FORMAT :
+ (strcmp(input_format, "psl") == 0) ? PSL_FORMAT :
+ (strcmp(input_format, "rmsk") == 0) ? RMSK_FORMAT :
+ (strcmp(input_format, "sam") == 0) ? SAM_FORMAT :
+ (strcmp(input_format, "vcf") == 0) ? VCF_FORMAT :
+ (strcmp(input_format, "wig") == 0) ? WIG_FORMAT :
+ UNDEFINED_FORMAT;
+}
+
+static c2b_format_t
+c2b_to_output_format(const char *output_format)
+{
+#ifdef DEBUG
+ fprintf(stderr, "--- c2b_to_output_format() - enter ---\n");
+ fprintf(stderr, "--- c2b_to_output_format() - exit ---\n");
+#endif
+
+ return
+ (strcmp(output_format, "bed") == 0) ? BED_FORMAT :
+ (strcmp(output_format, "starch") == 0) ? STARCH_FORMAT :
+ UNDEFINED_FORMAT;
+}
+
diff --git a/applications/bed/conversion/src/convert2bed.h b/applications/bed/conversion/src/convert2bed.h
new file mode 100644
index 0000000..ec0057a
--- /dev/null
+++ b/applications/bed/conversion/src/convert2bed.h
@@ -0,0 +1,1431 @@
+/*
+ convert2bed.h
+ -----------------------------------------------------------------------
+ Copyright (C) 2014-2016 Alex Reynolds
+
+ wig2bed components, (C) 2011-2016 Scott Kuehn and Shane Neph
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+#ifndef C2B_H
+#define C2B_H
+
+#define __STDC_FORMAT_MACROS
+
+#ifdef __cplusplus
+#include <cstdio>
+#include <cstdlib>
+#include <cgetopt>
+#include <cstring>
+#include <cassert>
+#include <cctype>
+#include <cinttypes>
+#include <cerrno>
+#else
+#include <stdio.h>
+#include <stdlib.h>
+#include <getopt.h>
+#include <string.h>
+#include <assert.h>
+#include <ctype.h>
+#include <inttypes.h>
+#include <errno.h>
+#endif
+#include <unistd.h>
+#include <pthread.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <sys/param.h>
+#include <sys/wait.h>
+
+#define C2B_VERSION "2.4.20"
+
+typedef int boolean;
+extern const boolean kTrue;
+extern const boolean kFalse;
+const boolean kTrue = 1;
+const boolean kFalse = 0;
+
+#define C2B_MAX_FIELD_COUNT_VALUE 64
+#define C2B_MAX_FIELD_LENGTH_VALUE 24576
+#define C2B_MAX_OPERATION_FIELD_LENGTH_VALUE 32
+#define C2B_MAX_STRAND_LENGTH_VALUE 4
+#define C2B_MAX_LINE_LENGTH_VALUE 131072
+#define C2B_MAX_LONGER_LINE_LENGTH_VALUE 1048576
+#define C2B_MAX_LINES_VALUE 32
+#define C2B_MAX_OPERATIONS_VALUE 1024
+#define C2B_MAX_CHROMOSOME_LENGTH 32
+#define C2B_MAX_PSL_BLOCKS 1024
+#define C2B_MAX_PSL_BLOCK_SIZES_STRING_LENGTH 20
+#define C2B_MAX_PSL_T_STARTS_STRING_LENGTH 20
+#define C2B_MAX_VCF_FIELD_COUNT_VALUE 24576
+
+extern const char *c2b_samtools;
+extern const char *c2b_sort_bed;
+extern const char *c2b_starch;
+extern const char *c2b_cat;
+extern const char *c2b_default_output_format;
+extern const char *c2b_unmapped_read_chr_name;
+extern const char *c2b_header_chr_name;
+extern const char *sort_bed_max_mem_arg;
+extern const char *sort_bed_max_mem_default_arg;
+extern const char *sort_bed_tmpdir_arg;
+extern const char *sort_bed_stdin;
+extern const char *starch_bzip2_arg;
+extern const char *starch_gzip_arg;
+extern const char *starch_note_prefix_arg;
+extern const char *starch_note_suffix_arg;
+extern const char *starch_stdin_arg;
+extern const char c2b_tab_delim;
+extern const char c2b_line_delim;
+extern const char c2b_space_delim;
+extern const char c2b_sam_header_prefix;
+extern const char *c2b_gff_header;
+extern const char *c2b_gff_fasta;
+extern const int c2b_gff_field_min;
+extern const int c2b_gff_field_max;
+extern const char *c2b_gff_zero_length_insertion_attribute;
+extern const int c2b_gtf_field_min;
+extern const int c2b_gtf_field_max;
+extern const char *c2b_gtf_gene_id_prefix;
+extern const char *c2b_gtf_transcript_id_prefix;
+extern const char c2b_gtf_id_delimiter;
+extern const char *c2b_gtf_field_delimiter;
+extern const char *c2b_gtf_field_placeholder;
+extern const char c2b_gtf_comment;
+extern const char *c2b_gtf_zero_length_insertion_attribute;
+extern const char *c2b_gvf_header;
+extern const char *c2b_gvf_generic_header;
+extern const int c2b_psl_field_min;
+extern const int c2b_psl_field_max;
+extern const char c2b_psl_blockSizes_delimiter;
+extern const char c2b_psl_tStarts_delimiter;
+extern const uint64_t c2b_rmsk_header_line_count;
+extern const int c2b_rmsk_field_min;
+extern const int c2b_rmsk_field_max;
+extern const char *c2b_rmsk_strand_complement;
+extern const char *c2b_rmsk_strand_complement_replacement;
+extern const int c2b_vcf_field_min;
+extern const char c2b_vcf_header_prefix;
+extern const char c2b_vcf_alt_allele_delim;
+extern const char c2b_vcf_id_prefix;
+extern const char c2b_vcf_id_suffix;
+extern const char c2b_wig_header_prefix;
+extern const char *c2b_wig_track_prefix;
+extern const char *c2b_wig_browser_prefix;
+extern const char *c2b_wig_variable_step_prefix;
+extern const char *c2b_wig_fixed_step_prefix;
+extern const char *c2b_wig_chr_prefix;
+
+const char *c2b_samtools = "samtools";
+const char *c2b_sort_bed = "sort-bed";
+const char *c2b_starch = "starch";
+const char *c2b_cat = "cat";
+const char *c2b_default_output_format = "bed";
+const char *c2b_unmapped_read_chr_name = "_unmapped";
+const char *c2b_header_chr_name = "_header";
+const char *sort_bed_max_mem_arg = " --max-mem ";
+const char *sort_bed_max_mem_default_arg = " --max-mem 2G ";
+const char *sort_bed_tmpdir_arg = " --tmpdir ";
+const char *sort_bed_stdin = " - ";
+const char *starch_bzip2_arg = " --bzip2 ";
+const char *starch_gzip_arg = " --gzip ";
+const char *starch_note_prefix_arg = " --note=\"";
+const char *starch_note_suffix_arg = "\" ";
+const char *starch_stdin_arg = " - ";
+const char c2b_tab_delim = '\t';
+const char c2b_line_delim = '\n';
+const char c2b_space_delim = 0x20;
+const char c2b_sam_header_prefix = '@';
+const char *c2b_gff_header = "##gff-version 3";
+const char *c2b_gff_fasta = "##FASTA";
+const int c2b_gff_field_min = 9;
+const int c2b_gff_field_max = 9;
+const char *c2b_gff_zero_length_insertion_attribute = ";zero_length_insertion=True";
+const int c2b_gtf_field_min = 9;
+const int c2b_gtf_field_max = 10;
+const char *c2b_gtf_gene_id_prefix = "gene_id ";
+const char *c2b_gtf_transcript_id_prefix = "transcript_id ";
+const char c2b_gtf_id_delimiter = '"';
+const char *c2b_gtf_field_delimiter = ";";
+const char *c2b_gtf_field_placeholder = ".";
+const char c2b_gtf_comment = '#';
+const char *c2b_gtf_zero_length_insertion_attribute = "; zero_length_insertion=True";
+const char *c2b_gvf_header = "##gvf-version 1.07";
+const char *c2b_gvf_generic_header = "##";
+const int c2b_psl_field_min = 21;
+const int c2b_psl_field_max = 21;
+const char c2b_psl_blockSizes_delimiter = ',';
+const char c2b_psl_tStarts_delimiter = ',';
+const uint64_t c2b_rmsk_header_line_count = 3;
+const int c2b_rmsk_field_min = 15;
+const int c2b_rmsk_field_max = 16;
+const char *c2b_rmsk_strand_complement = "C";
+const char *c2b_rmsk_strand_complement_replacement = "-";
+const int c2b_vcf_field_min = 8;
+const char c2b_vcf_header_prefix = '#';
+const char c2b_vcf_alt_allele_delim = ',';
+const char c2b_vcf_id_prefix = '<';
+const char c2b_vcf_id_suffix = '>';
+const char c2b_wig_header_prefix = '#';
+const char *c2b_wig_track_prefix = "track";
+const char *c2b_wig_browser_prefix = "browser";
+const char *c2b_wig_variable_step_prefix = "variableStep";
+const char *c2b_wig_fixed_step_prefix = "fixedStep";
+const char *c2b_wig_chr_prefix = "chr";
+
+/*
+ Allowed input and output formats
+*/
+
+typedef enum format {
+ BED_FORMAT,
+ STARCH_FORMAT,
+ BAM_FORMAT,
+ GFF_FORMAT,
+ GTF_FORMAT,
+ GVF_FORMAT,
+ PSL_FORMAT,
+ RMSK_FORMAT,
+ SAM_FORMAT,
+ VCF_FORMAT,
+ WIG_FORMAT,
+ UNDEFINED_FORMAT
+} c2b_format_t;
+
+/*
+ BAM/SAM CIGAR operations
+ -------------------------------------------------------------------------
+ Allowed ops: \*|([0-9]+[MIDNSHPX=])+
+*/
+
+typedef struct cigar_op {
+ unsigned int bases;
+ char operation;
+} c2b_cigar_op_t;
+
+typedef struct cigar {
+ c2b_cigar_op_t *ops;
+ ssize_t size;
+ ssize_t length;
+} c2b_cigar_t;
+
+extern const unsigned int default_cigar_op_bases;
+const unsigned int default_cigar_op_bases = 0;
+
+extern const char default_cigar_op_operation;
+const char default_cigar_op_operation = '-';
+
+/*
+ The SAM format is described at:
+
+ http://samtools.github.io/hts-specs/SAMv1.pdf
+
+ SAM fields are in the following ordering:
+
+ Index SAM field
+ ---------------------------------------------------------
+ 0 QNAME
+ 1 FLAG
+ 2 RNAME
+ 3 POS
+ 4 MAPQ
+ 5 CIGAR
+ 6 RNEXT
+ 7 PNEXT
+ 8 TLEN
+ 9 SEQ
+ 10 QUAL
+ 11+ Optional alignment section fields (TAG:TYPE:VALUE)
+*/
+
+typedef struct sam {
+ char *qname;
+ int flag;
+ char *strand;
+ char *rname;
+ uint64_t start;
+ uint64_t stop;
+ char *mapq;
+ char *cigar;
+ char *rnext;
+ char *pnext;
+ char *tlen;
+ char *seq;
+ char *qual;
+ char *opt;
+} c2b_sam_t;
+
+/*
+ The GFF format is described at:
+
+ http://www.sequenceontology.org/gff3.shtml
+
+ GFF fields are in the following ordering:
+
+ Index GFF field
+ ---------------------------------------------------------
+ 0 seqid
+ 1 source
+ 2 type
+ 3 start
+ 4 end
+ 5 score
+ 6 strand
+ 7 phase
+ 8 attributes
+*/
+
+typedef struct gff {
+ char *seqid;
+ char *source;
+ char *type;
+ uint64_t start;
+ uint64_t end;
+ char *score;
+ char *strand;
+ char *phase;
+ char *attributes;
+ char *id;
+} c2b_gff_t;
+
+/*
+ The GTF format is described at:
+
+ http://mblab.wustl.edu/GTF22.html
+
+ GTF fields are in the following ordering:
+
+ Index GTF field
+ ---------------------------------------------------------
+ 0 seqname
+ 1 soure
+ 2 feature
+ 3 start
+ 4 end
+ 5 score
+ 6 strand
+ 7 frame
+ 8 (optional) attributes
+ 9 (optional) comments
+*/
+
+typedef struct gtf {
+ char *seqname;
+ char *source;
+ char *feature;
+ uint64_t start;
+ uint64_t end;
+ char *score;
+ char *strand;
+ char *frame;
+ char *attributes;
+ char *id;
+ char *comments;
+} c2b_gtf_t;
+
+/*
+ The PSL format is described at:
+
+ http://genome.ucsc.edu/FAQ/FAQformat.html#format2
+
+ PSL fields are in the following ordering:
+
+ Index PSL field
+ ---------------------------------------------------------
+ 0 matches
+ 1 misMatches
+ 2 repMatches
+ 3 nCount
+ 4 qNumInsert
+ 5 qBaseInsert
+ 6 tNumInsert
+ 7 tBaseInsert
+ 8 strand
+ 9 qName
+ 10 qSize
+ 11 qStart
+ 12 qEnd
+ 13 tName
+ 14 tSize
+ 15 tStart
+ 16 tEnd
+ 17 blockCount
+ 18 blockSizes
+ 19 qStarts
+ 20 tStarts
+*/
+
+typedef struct psl {
+ uint64_t matches;
+ uint64_t misMatches;
+ uint64_t repMatches;
+ uint64_t nCount;
+ uint64_t qNumInsert;
+ uint64_t qBaseInsert;
+ uint64_t tNumInsert;
+ uint64_t tBaseInsert;
+ char *strand;
+ char *qName;
+ uint64_t qSize;
+ uint64_t qStart;
+ uint64_t qEnd;
+ char *tName;
+ uint64_t tSize;
+ uint64_t tStart;
+ uint64_t tEnd;
+ uint64_t blockCount;
+ char *blockSizes;
+ char *qStarts;
+ char *tStarts;
+} c2b_psl_t;
+
+typedef struct block {
+ uint64_t *sizes;
+ uint64_t *starts;
+ uint64_t max_count;
+} c2b_psl_block_t;
+
+/*
+ The RepeatMasker OUT (RMSK) format is described at:
+
+ https://helix.nih.gov/Applications/repeatmasker.help
+
+ OUT fields are in the following ordering:
+
+ Index OUT field
+ ---------------------------------------------------------
+ 0 Smith-Waterman score of the match
+ 1 Percent, divergence = mismatches / (matches + mismatches)
+ 2 Percent, bases opposite a gap in the query sequence = deleted bp
+ 3 Percent, bases opposite a gap in the repeat consensus = inserted bp
+ 4 Query sequence
+ 5 Query start (1-indexed)
+ 6 Query end
+ 7 Bases in query sequence past the ending position of match
+ 8 Strand match with repeat consensus sequence (+ = forward, C = complement)
+ 9 Matching interspersed repeat name
+ 10 Repeat class
+ 11 Bases in (complement of) the repeat consensus sequence, prior to beginning of the match
+ 12 Match start (in repeat consensus sequence)
+ 13 Match end (in repeat consensus sequence)
+ 14 Identifier for individual insertions
+
+ An asterisk (*) following the final column indicates that there is a
+ higher-scoring match whose domain partly (<80%) includes the domain of
+ the current match.
+
+ 15 Higher-scoring match present
+*/
+
+typedef struct rmsk {
+ char *sw_score;
+ char *perc_div;
+ char *perc_deleted;
+ char *perc_inserted;
+ char *query_seq;
+ uint64_t query_start;
+ uint64_t query_end;
+ char *bases_past_match;
+ char *strand;
+ char *repeat_name;
+ char *repeat_class;
+ char *bases_before_match_comp;
+ char *match_start;
+ char *match_end;
+ char *unique_id;
+ char *higher_score_match;
+} c2b_rmsk_t;
+
+/*
+ The VCF v4.2 format is described at:
+
+ http://samtools.github.io/hts-specs/VCFv4.2.pdf
+
+ VCF fields are in the following ordering:
+
+ Index VCF field
+ ---------------------------------------------------------
+ 0 CHROM
+ 1 POS
+ 2 ID
+ 3 REF
+ 4 ALT
+ 5 QUAL
+ 6 FILTER
+ 7 INFO
+
+ If genotype data is present in the file, these are followed
+ by a FORMAT column header, then an arbitrary number of sample
+ IDs. The header line is tab-delimited.
+
+ Index VCF field
+ ---------------------------------------------------------
+ 8 FORMAT
+ 9 Sample 1
+ 10 Sample 2
+ 11+ ...
+*/
+
+typedef struct vcf {
+ char *chrom;
+ uint64_t pos;
+ uint64_t start;
+ uint64_t end;
+ char *id;
+ char *ref;
+ char *alt;
+ char *qual;
+ char *filter;
+ char *info;
+ char *format;
+ char *samples;
+} c2b_vcf_t;
+
+/*
+ At most, we need 4 pipes to handle the most complex conversion
+ pipeline used with the BEDOPS suite:
+
+ BAM -> SAM -> BED (unsorted) -> BED (sorted) -> Starch
+
+ Here, each arrow represents a unidirectional path of data
+ between processing steps.
+
+ The other two possibilities are:
+
+ BAM -> SAM -> BED (unsorted) -> BED (sorted)
+ BAM -> SAM -> BED (unsorted)
+
+ More generically, other formats typically follow one of these three paths:
+
+ XYZ -> BED (unsorted) -> BED (sorted) -> Starch
+ XYZ -> BED (unsorted) -> BED (sorted)
+ XYZ -> BED (unsorted)
+
+ Here, XYZ is one of GFF, GTF, PSL, RepeatMasker (OUT), SAM, VCF, or WIG.
+
+ If a more complex pipeline arises, we can increase the value of MAX_PIPES.
+
+ Each pipe has a read and write stream. The write stream handles
+ data sent via the out and err file handles. We bundle all the pipes
+ into a "pipeset" for use at a processing stage, described below.
+*/
+
+#define PIPE_READ 0
+#define PIPE_WRITE 1
+#define PIPE_STREAMS 2
+#define MAX_PIPES 4
+
+typedef struct pipeset {
+ int **in;
+ int **out;
+ int **err;
+ size_t num;
+} c2b_pipeset_t;
+
+/*
+ A pipeline stage contains a pipeset (set of I/O pipes), source
+ and destination stage IDs, and a "line functor" which generally
+ processes fields from a precursor format to BED. This functor is
+ specific to the specified input format. This stage is passed to
+ each processing thread.
+*/
+
+typedef struct pipeline_stage {
+ c2b_pipeset_t *pipeset;
+ unsigned int src;
+ unsigned int dest;
+ void (*line_functor)();
+ int status;
+ char *description;
+ pid_t pid;
+} c2b_pipeline_stage_t;
+
+#define PIPE4_FLAG_NONE (0U)
+#define PIPE4_FLAG_RD_CLOEXEC (1U << 0)
+#define PIPE4_FLAG_WR_CLOEXEC (1U << 1)
+
+#define c2b_pipe4_cloexec(fd) c2b_pipe4((fd), PIPE4_FLAG_RD_CLOEXEC | PIPE4_FLAG_WR_CLOEXEC)
+
+#define POPEN4_FLAG_NONE (0U)
+#define POPEN4_FLAG_NOCLOSE_PARENT_STDIN (1U << 0)
+#define POPEN4_FLAG_NOCLOSE_PARENT_STDOUT (1U << 1)
+#define POPEN4_FLAG_NOCLOSE_PARENT_STDERR (1U << 2)
+#define POPEN4_FLAG_CLOSE_CHILD_STDIN (1U << 3)
+#define POPEN4_FLAG_CLOSE_CHILD_STDOUT (1U << 4)
+#define POPEN4_FLAG_CLOSE_CHILD_STDERR (1U << 5)
+
+static const char *application_name = "convert2bed";
+
+static const char *application_version = C2B_VERSION;
+
+static const char *application_authors = "Alex Reynolds";
+
+static const char *general_usage = "\n" \
+ " Usage:\n" \
+ "\n" \
+ " $ convert2bed --input=fmt [--output=fmt] [options] < input > output\n";
+
+static const char *general_description = \
+ " Convert BAM, GFF, GTF, GVF, PSL, RepeatMasker (OUT), SAM, VCF\n" \
+ " and WIG genomic formats to BED or BEDOPS Starch (compressed BED)\n" \
+ "\n" \
+ " Input can be a regular file or standard input piped in using the\n" \
+ " hyphen character ('-'):\n" \
+ "\n" \
+ " $ some_upstream_process ... | convert2bed --input=fmt - > output\n";
+
+static const char *general_io_options = \
+ " Input (required):\n\n" \
+ " --input=[bam|gff|gtf|gvf|psl|rmsk|sam|vcf|wig] (-i <fmt>)\n" \
+ " Genomic format of input file (required)\n\n" \
+ " Output:\n\n" \
+ " --output=[bed|starch] (-o <fmt>)\n" \
+ " Format of output file, either BED or BEDOPS Starch (optional, default is BED)\n";
+
+static const char *general_options = \
+ " Other processing options:\n\n" \
+ " --do-not-sort (-d)\n" \
+ " Do not sort BED output with sort-bed (not compatible with --output=starch)\n" \
+ " --max-mem=<value> (-m <val>)\n" \
+ " Sets aside <value> memory for sorting BED output. For example, <value> can\n" \
+ " be 8G, 8000M or 8000000000 to specify 8 GB of memory (default is 2G)\n" \
+ " --sort-tmpdir=<dir> (-r <dir>)\n" \
+ " Optionally sets [dir] as temporary directory for sort data, when used in\n" \
+ " conjunction with --max-mem=[value], instead of the host's operating system\n" \
+ " default temporary directory\n" \
+ " --starch-bzip2 (-z)\n" \
+ " Used with --output=starch, the compressed output explicitly applies the bzip2\n" \
+ " algorithm to compress intermediate data (default is bzip2)\n" \
+ " --starch-gzip (-g)\n" \
+ " Used with --output=starch, the compressed output applies gzip compression on\n" \
+ " intermediate data\n" \
+ " --starch-note=\"xyz...\" (-e \"xyz...\")\n" \
+ " Used with --output=starch, this adds a note to the Starch archive metadata\n" \
+ " --help | --help[-bam|-gff|-gtf|-gvf|-psl|-rmsk|-sam|-vcf|-wig] (-h | -h <fmt>)\n" \
+ " Show general help message (or detailed help for a specified input format)\n" \
+ " --version (-w)\n" \
+ " Show application version\n";
+
+static const char *bam_name = "convert2bed -i bam";
+
+static const char *bam_description = \
+ " The BAM format is an indexed, binary representation of a SAM (Sequence\n" \
+ " Alignment/Map) file. Internally, it is a 0-based, half-open [a-1,b)\n" \
+ " file, but printing it to text via samtools turns it into a SAM file, which\n" \
+ " is 1-based, closed [a,b]. We convert this indexing back to 0-based, half-\n" \
+ " open when creating BED output.\n" \
+ "\n" \
+ " We process SAM columns from mappable reads (as described by \n" \
+ " http://samtools.github.io/hts-specs/SAMv1.pdf) converting them into the first\n" \
+ " six UCSC BED columns as follows:\n" \
+ "\n" \
+ " - RNAME <--> chromosome (1st column)\n" \
+ " - POS - 1 <--> start (2nd column)\n" \
+ " - POS + length(CIGAR) - 1 <--> stop (3rd column)\n" \
+ " - QNAME <--> id (4th column)\n" \
+ " - FLAG <--> score (5th column)\n" \
+ " - 16 & FLAG <--> strand (6th column)\n" \
+ "\n" \
+ " The remaining SAM columns are mapped intact, in order, to adjacent BED\n" \
+ " columns:\n" \
+ "\n" \
+ " - MAPQ\n" \
+ " - CIGAR\n" \
+ " - RNEXT\n" \
+ " - PNEXT\n" \
+ " - TLEN\n" \
+ " - SEQ\n" \
+ " - QUAL\n" \
+ "\n" \
+ " Because we have mapped all columns, we can translate converted BED data back\n" \
+ " to headerless SAM reads with a simple awk statement or other script that\n" \
+ " calculates 1-based coordinates and permutes columns.\n" \
+ "\n" \
+ " By default, we only process mapped reads. If you also want to convert unmapped\n" \
+ " reads, add the --all-reads option.\n" \
+ "\n" \
+ " In the case of RNA-seq data with skipped regions ('N' components in the\n" \
+ " read's CIGAR string), the --split option will split the read into two or more\n" \
+ " separate BED elements.\n" \
+ "\n" \
+ " The header section is normally stripped from the output. You can use the\n" \
+ " --keep-header option to preserve the header data from the SAM input as\n" \
+ " pseudo-BED elements that use the \"_header\" chromosome name.\n";
+
+static const char *bam_options = \
+ " BAM conversion options:\n\n" \
+ " --all-reads (-a)\n" \
+ " Include both unmapped and mapped reads in output\n" \
+ " --keep-header (-k)\n" \
+ " Preserve header section as pseudo-BED elements\n" \
+ " --split (-s)\n" \
+ " Split reads with 'N' CIGAR operations into separate BED\n" \
+ " elements\n";
+
+static const char *bam_usage = \
+ " Converts 0-based, half-open [a-1,b) headered or headerless BAM input\n" \
+ " into 0-based, half-open [a-1,b) extended BED or BEDOPS Starch\n\n" \
+ " Usage:\n" \
+ "\n" \
+ " $ bam2bed < foo.bam > sorted-foo.bam.bed\n" \
+ " $ bam2starch < foo.bam > sorted-foo.bam.starch\n" \
+ "\n" \
+ " Or:\n" \
+ "\n" \
+ " $ convert2bed -i bam < foo.bam > sorted-foo.bam.bed\n" \
+ " $ convert2bed -i bam -o starch < foo.bam > sorted-foo.bam.starch\n" \
+ "\n" \
+ " We make no assumptions about sort order from converted output. Apply\n" \
+ " the usage case displayed to pass data to the BEDOPS sort-bed application,\n" \
+ " which generates lexicographically-sorted BED data as output.\n" \
+ "\n" \
+ " If you want to skip sorting, use the --do-not-sort option:\n" \
+ "\n" \
+ " $ bam2bed --do-not-sort < foo.bam > unsorted-foo.bam.bed\n";
+
+static const char *gff_name = "convert2bed -i gff";
+
+static const char *gff_description = \
+ " The GFF3 specification (http://www.sequenceontology.org/gff3.shtml) \n" \
+ " contains columns that do not map directly to common or UCSC BED columns.\n" \
+ " Therefore, we add the following columns to preserve the ability to\n" \
+ " seamlessly convert back to GFF3 after performing operations with\n" \
+ " bedops, bedmap, or other BEDOPS or BED-processing tools.\n" \
+ "\n" \
+ " - The 'source' GFF column data maps to the 7th BED column\n" \
+ " - The 'type' data maps to the 8th BED column\n" \
+ " - The 'phase' data maps to the 9th BED column\n" \
+ " - The 'attributes' data maps to the 10th BED column\n" \
+ "\n" \
+ " We make the following assumptions about the GFF3 input data:\n" \
+ "\n" \
+ " - The 'seqid' GFF column data maps to the chromosome label (1st BED column)\n" \
+ " - The 'ID' attribute in the 'attributes' GFF column (if present) maps to\n" \
+ " the element ID (4th BED column)\n" \
+ " - The 'score' and 'strand' GFF columns (if present) are mapped to the\n" \
+ " 5th and 6th BED columns, respectively\n" \
+ "\n" \
+ " If we encounter zero-length insertion elements (which are defined\n" \
+ " where the start and stop GFF column data values are equivalent), the\n" \
+ " start coordinate is decremented to convert to 0-based, half-open indexing,\n" \
+ " and a 'zero_length_insertion' attribute is added to the 'attributes' GFF\n" \
+ " column data.\n" \
+ "\n" \
+ " Metadata and header fields are usually stripped. Use the --keep-header\n" \
+ " option to preserve these data as pseudo-BED elements that use the \"_header\"\n" \
+ " chromosome name.\n";
+
+static const char *gff_options = \
+ " GFF conversion options:\n\n" \
+ " --keep-header (-k)\n" \
+ " Preserve header section as pseudo-BED elements\n";
+
+static const char *gff_usage = \
+ " Converts 1-based, closed [a, b] GFF3 input into 0-based, half-\n" \
+ " open [a-1, b) six-column extended BED or BEDOPS Starch\n" \
+ "\n" \
+ " Usage:\n" \
+ "\n" \
+ " $ gff2bed < foo.gff > sorted-foo.gff.bed\n" \
+ " $ gff2starch < foo.gff > sorted-foo.gff.starch\n" \
+ "\n" \
+ " Or:\n" \
+ "\n" \
+ " $ convert2bed -i gff < foo.gff > sorted-foo.gff.bed\n" \
+ " $ convert2bed -i gff -o starch < foo.gff > sorted-foo.gff.starch\n" \
+ "\n" \
+ " We make no assumptions about sort order from converted output. Apply\n" \
+ " the usage case displayed to pass data to the sort-bed application,\n" \
+ " which generates lexicographically-sorted BED data as output.\n" \
+ "\n" \
+ " If you want to skip sorting, use the --do-not-sort option:\n" \
+ "\n" \
+ " $ gff2bed --do-not-sort < foo.gff > unsorted-foo.gff.bed\n";
+
+static const char *gtf_name = "convert2bed -i gtf";
+
+static const char *gtf_usage = \
+ " Converts 1-based, closed [a, b] GTF2.2 input into 0-based, half-\n" \
+ " open [a-1, b) six-column extended BED and BEDOPS Starch\n" \
+ "\n" \
+ " Usage:\n" \
+ "\n" \
+ " $ gtf2bed < foo.gtf > sorted-foo.gtf.bed\n" \
+ " $ gtf2starch < foo.gtf > sorted-foo.gtf.starch\n" \
+ "\n" \
+ " Or:\n" \
+ "\n" \
+ " $ convert2bed -i gtf < foo.gtf > sorted-foo.gtf.bed\n" \
+ " $ convert2bed -i gtf -o starch < foo.gtf > sorted-foo.gtf.starch\n" \
+ "\n" \
+ " We make no assumptions about sort order from converted output. Apply\n" \
+ " the usage case displayed to pass data to the sort-bed application,\n" \
+ " which generates lexicographically-sorted BED data as output.\n" \
+ "\n" \
+ " If you want to skip sorting, use the --do-not-sort option:\n" \
+ "\n" \
+ " $ gtf2bed --do-not-sort < foo.gtf > unsorted-foo.gtf.bed\n";
+
+static const char *gtf_description = \
+ " The GTF2.2 specification (http://mblab.wustl.edu/GTF22.html)\n" \
+ " contains columns that do not map directly to common or UCSC BED columns.\n" \
+ " Therefore, we add the following columns to preserve the ability to\n" \
+ " seamlessly convert back to GTF after performing operations with\n" \
+ " BEDOPS or other tools.\n" \
+ "\n" \
+ " - The 'source' GTF column data maps to the 7th BED column\n" \
+ " - The 'feature' data maps to the 8th BED column\n" \
+ " - The 'frame' data maps to the 9th BED column\n" \
+ " - The 'attributes' data maps to the 10th BED column\n" \
+ " - The 'comments' data (if present) maps to the 11th BED column\n" \
+ "\n" \
+ " We make the following assumptions about the GTF input data:\n" \
+ "\n" \
+ " - The 'seqname' GTF column data maps to the chromosome label (1st BED column)\n" \
+ " - The 'gene_id' attribute in the 'attributes' GTF column (if present) maps to \n" \
+ " the element ID (4th BED column)\n" \
+ " - The 'score' and 'strand' GFF columns (if present) are mapped to the\n" \
+ " 5th and 6th BED columns, respectively\n" \
+ "\n" \
+ " If we encounter zero-length insertion elements (which are defined\n" \
+ " where the start and stop GTF column data values are equivalent), the \n" \
+ " start coordinate is decremented to convert to 0-based, half-open indexing,\n" \
+ " and a 'zero_length_insertion' attribute is added to the 'attributes' GTF\n" \
+ " column data.\n";
+
+static const char *gtf_options = NULL;
+
+static const char *gvf_name = "convert2bed -i gvf";
+
+static const char *gvf_description = \
+ " GVF is a type of GFF3 file with additional pragmas and attributes \n" \
+ " specified (http://www.sequenceontology.org/resources/gvf.html).\n" \
+ " The GVF format has the same nine-column tab-delimited format as \n" \
+ " GFF3. All of the requirements and restrictions specified for GFF3\n" \
+ " apply to the GVF specification.\n" \
+ "\n" \
+ " The GFF3 specification (http://www.sequenceontology.org/gff3.shtml) \n" \
+ " contains columns that do not map directly to common or UCSC BED columns.\n" \
+ " Therefore, we add the following columns to preserve the ability to\n" \
+ " seamlessly convert back to GVF (GFF3) after performing operations\n" \
+ " with bedops, bedmap, or other BEDOPS or BED-processing tools.\n" \
+ "\n" \
+ " - The 'source' GVF column data maps to the 7th BED column\n" \
+ " - The 'type' data maps to the 8th BED column\n" \
+ " - The 'phase' data maps to the 9th BED column\n" \
+ " - The 'attributes' data maps to the 10th BED column\n" \
+ "\n" \
+ " We make the following assumptions about the GVF (GFF3) input data:\n" \
+ "\n" \
+ " - The 'seqid' GVF column data maps to the chromosome label (1st BED column)\n" \
+ " - The 'ID' attribute in the 'attributes' GFF column (if present) maps to\n" \
+ " the element ID (4th BED column)\n" \
+ " - The 'score' and 'strand' GVF columns (if present) are mapped to the\n" \
+ " 5th and 6th BED columns, respectively\n" \
+ "\n" \
+ " If we encounter zero-length insertion elements (which are defined\n" \
+ " where the start and stop GVF column data values are equivalent), the\n" \
+ " start coordinate is decremented to convert to 0-based, half-open indexing,\n" \
+ " and a 'zero_length_insertion' attribute is added to the 'attributes' GFF\n" \
+ " column data.\n" \
+ "\n" \
+ " Metadata and header fields are usually stripped. Use the --keep-header\n" \
+ " option to preserve these data as pseudo-BED elements that use the \"_header\"\n" \
+ " chromosome name.\n";
+
+static const char *gvf_options = \
+ " GVF conversion options:\n\n" \
+ " --keep-header (-k)\n" \
+ " Preserve header section as pseudo-BED elements\n";
+
+static const char *gvf_usage = \
+ " Converts 1-based, closed [a, b] GVF (GFF3) input into 0-based,\n" \
+ " half-open [a-1, b) six-column extended BED or BEDOPS Starch\n" \
+ "\n" \
+ " Usage:\n" \
+ "\n" \
+ " $ gvf2bed < foo.gvf > sorted-foo.gvf.bed\n" \
+ " $ gvf2starch < foo.gvf > sorted-foo.gvf.starch\n" \
+ "\n" \
+ " Or:\n" \
+ "\n" \
+ " $ convert2bed -i gvf < foo.gvf > sorted-foo.gvf.bed\n" \
+ " $ convert2bed -i gvf -o starch < foo.gvf > sorted-foo.gvf.starch\n" \
+ "\n" \
+ " We make no assumptions about sort order from converted output. Apply\n" \
+ " the usage case displayed to pass data to the sort-bed application,\n" \
+ " which generates lexicographically-sorted BED data as output.\n" \
+ "\n" \
+ " If you want to skip sorting, use the --do-not-sort option:\n" \
+ "\n" \
+ " $ gvf2bed --do-not-sort < foo.gvf > unsorted-foo.gvf.bed\n";
+
+static const char *psl_name = "convert2bed -i psl";
+
+static const char *psl_usage = \
+ " Converts 0-based, half-open [a-1, b) headered or headerless PSL\n" \
+ " input into 0-based, half-open [a-1, b) extended BED or BEDOPS Starch\n" \
+ "\n" \
+ " $ psl2bed < foo.psl > sorted-foo.psl.bed\n" \
+ " $ psl2starch < foo.psl > sorted-foo.psl.starch\n" \
+ "\n" \
+ " Or:\n" \
+ "\n" \
+ " $ convert2bed -i psl < foo.psl > sorted-foo.psl.bed\n" \
+ " $ convert2bed -i psl -o starch < foo.psl > sorted-foo.psl.starch\n" \
+ "\n" \
+ " We make no assumptions about sort order from converted output. Apply\n" \
+ " the usage case displayed to pass data to the BEDOPS sort-bed application\n" \
+ " which generates lexicographically-sorted BED data as output.\n" \
+ "\n" \
+ " If you want to skip sorting, use the --do-not-sort option:\n" \
+ "\n" \
+ " $ psl2bed --do-not-sort < foo.psl > unsorted-foo.psl.bed\n";
+
+static const char *psl_description = \
+ " The PSL specification (http://genome.ucsc.edu/goldenPath/help/blatSpec.html)\n" \
+ " contains 21 columns, some which map to UCSC BED columns and some which do not.\n" \
+ "\n" \
+ " PSL input can contain a header or be headerless, if the BLAT search was\n" \
+ " performed with the -noHead option. This program can accept input in\n" \
+ " either format.\n" \
+ "\n" \
+ " If input is headered, you can use the --keep-header option to preserve the header\n" \
+ " data as pseudo-BED elements that use the \"_header\" chromosome name. We expect this\n" \
+ " should not cause any collision problems since PSL data should use UCSC chromosome\n" \
+ " naming conventions.\n" \
+ "\n" \
+ " We describe below how we map columns to BED, so that BLAT results can be losslessly\n" \
+ " transformed back into PSL format with a simple awk statement or other similar\n" \
+ " command that permutes columns into PSL-ordering.\n" \
+ "\n" \
+ " We map the following PSL columns to their equivalent BED column, as follows:\n" \
+ "\n" \
+ " - tName <--> chromosome\n" \
+ " - tStart <--> start\n" \
+ " - tEnd <--> stop\n" \
+ " - qName <--> id\n" \
+ " - qSize <--> score\n" \
+ " - strand <--> strand\n" \
+ "\n" \
+ " Remaining PSL columns are mapped, in order, to columns 7 through 21 in the\n" \
+ " BED output:\n" \
+ "\n" \
+ " - matches\n" \
+ " - misMatches\n" \
+ " - repMatches\n" \
+ " - nCount\n" \
+ " - qNumInsert\n" \
+ " - qBaseInsert\n" \
+ " - tNumInsert\n" \
+ " - tBaseInsert\n" \
+ " - qStart\n" \
+ " - qEnd\n" \
+ " - tSize\n" \
+ " - blockCount\n" \
+ " - blockSizes\n" \
+ " - qStarts\n" \
+ " - tStarts\n";
+
+static const char *psl_options = \
+ " PSL conversion options:\n\n" \
+ " --keep-header (-k)\n" \
+ " Preserve header section as pseudo-BED elements (requires --headered)\n" \
+ " --split (-s)\n" \
+ " Split record into multiple BED elements, based on tStarts field value\n";
+
+static const char *rmsk_name = "convert2bed -i rmsk";
+
+static const char *rmsk_usage = \
+ " Converts 1-base, closed [a, b] RepeatMasker annotation input\n" \
+ " into 0-based, half-open [a-1, b) extended BED or BEDOPS Starch\n" \
+ "\n" \
+ " Usage:\n" \
+ "\n" \
+ " $ rmsk2bed < foo.out > sorted-foo.out.bed\n" \
+ " $ rmsk2starch < foo.out > sorted-foo.out.starch\n" \
+ "\n" \
+ " Or:\n" \
+ "\n" \
+ " $ convert2bed -i rmsk < foo.out > sorted-foo.out.bed\n" \
+ " $ convert2bed -i rmsk -o starch < foo.out > sorted-foo.out.starch\n" \
+ "\n" \
+ " We make no assumptions about sort order from converted output. Apply\n" \
+ " the usage case displayed to pass data to the BEDOPS sort-bed application,\n" \
+ " which generates lexicographically-sorted BED data as output.\n" \
+ "\n" \
+ " If you want to skip sorting, use the --do-not-sort option:\n" \
+ "\n" \
+ " $ rmsk2bed --do-not-sort < foo.out > unsorted-foo.out.bed\n";
+
+static const char *rmsk_description = \
+ " The RepeatMasker annotation format is 1-based and closed [a, b]\n" \
+ " which is converted to 0-based, half-closed [a-1, b) when creating\n" \
+ " BED output.\n" \
+ "\n" \
+ " We process RepeatMasker annotation data (as described in:\n" \
+ " http://www.repeatmasker.org/webrepeatmaskerhelp.html) converting\n" \
+ " them into the first six UCSC BED columns, as follows:\n" \
+ "\n" \
+ " - Query sequence <--> chromosome (1st column)\n" \
+ " - Query start - 1 <--> start (2nd column)\n" \
+ " - Query end <--> stop (3rd column)\n" \
+ " - Match repeat name <--> id (4th column)\n" \
+ " - SW score <--> score (5th column)\n" \
+ " - strand <--> strand (6th column)\n" \
+ "\n" \
+ " The remaining RepeatMasker columns are mapped as-is, in order,\n" \
+ " to adjacent BED columns:\n" \
+ "\n" \
+ " - Percent, divergence\n" \
+ " - Percent, bases opposite gap in query (deleted bp)\n" \
+ " - Percent, bases opposite gap in repeat (inserted bp)\n" \
+ " - Bases in query sequence past the ending position of match\n" \
+ " - Repeat class\n" \
+ " - Bases in (complement of) the repeat consensus sequence\n" \
+ " - Match start (in repeat consensus sequence)\n" \
+ " - Match end (in repeat consensus sequence)\n" \
+ " - Identifier for individual insertions\n" \
+ "\n" \
+ " Because we have mapped all columns, we can translate converted BED data back\n" \
+ " to RepeatMasker annotation output with a simple awk statement or other script\n" \
+ " that calculates 1-based coordinates and permutes columns.\n";
+
+static const char *rmsk_options = \
+ " RepeatMasker annotation conversion options:\n\n" \
+ " --keep-header (-k)\n" \
+ " Preserve header section as pseudo-BED elements\n";
+
+static const char *sam_name = "convert2bed -i sam";
+
+static const char *sam_usage = \
+ " Converts 1-based, closed [a, b] headered or headerless SAM input\n" \
+ " into 0-based, half-open [a-1, b) extended BED or BEDOPS Starch\n" \
+ "\n" \
+ " Usage:\n" \
+ "\n" \
+ " $ sam2bed < foo.sam > sorted-foo.sam.bed\n" \
+ " $ sam2starch < foo.sam > sorted-foo.sam.starch\n" \
+ "\n" \
+ " Or:\n" \
+ "\n" \
+ " $ convert2bed -i sam < foo.sam > sorted-foo.sam.bed\n" \
+ " $ convert2bed -i sam -o starch < foo.sam > sorted-foo.sam.starch\n" \
+ "\n" \
+ " We make no assumptions about sort order from converted output. Apply\n" \
+ " the usage case displayed to pass data to the BEDOPS sort-bed application,\n" \
+ " which generates lexicographically-sorted BED data as output.\n" \
+ "\n" \
+ " If you want to skip sorting, use the --do-not-sort option:\n" \
+ "\n" \
+ " $ sam2bed --do-not-sort < foo.sam > unsorted-foo.sam.bed\n";
+
+static const char *sam_description = \
+ " The SAM (Sequence Alignment/Map) format is 1-based and closed [a, b]\n" \
+ " which is converted to 0-based, half-closed [a-1, b) when creating\n" \
+ " BED output.\n" \
+ "\n" \
+ " We process SAM columns from mappable reads (as described by \n" \
+ " http://samtools.github.io/hts-specs/SAMv1.pdf) converting them into \n" \
+ " the first six UCSC BED columns, as follows:\n" \
+ "\n" \
+ " - RNAME <--> chromosome (1st column)\n" \
+ " - POS - 1 <--> start (2nd column)\n" \
+ " - POS + length(CIGAR) - 1 <--> stop (3rd column)\n" \
+ " - QNAME <--> id (4th column)\n" \
+ " - FLAG <--> score (5th column)\n" \
+ " - 16 & FLAG <--> strand (6th column)\n" \
+ "\n" \
+ " The remaining SAM columns are mapped intact, in order, to adjacent\n" \
+ " BED columns:\n" \
+ "\n" \
+ " - MAPQ\n" \
+ " - CIGAR\n" \
+ " - RNEXT\n" \
+ " - PNEXT\n" \
+ " - TLEN\n" \
+ " - SEQ\n" \
+ " - QUAL\n" \
+ "\n" \
+ " Because we have mapped all columns, we can translate converted BED data back\n" \
+ " to headerless SAM reads with a simple awk statement or other script that\n" \
+ " calculates 1-based coordinates and permutes columns.\n" \
+ "\n" \
+ " By default, we only process mapped reads. If you also want to convert unmapped\n" \
+ " reads, add the --all-reads option.\n" \
+ "\n" \
+ " In the case of RNA-seq data with skipped regions ('N' components in the\n" \
+ " read's CIGAR string), the --split option will split the read into two or more\n" \
+ " separate BED elements.\n" \
+ "\n" \
+ " The header section is normally stripped from the output. You can use the\n" \
+ " --keep-header option to preserve the header data from the SAM input as\n" \
+ " pseudo-BED elements.\n";
+
+static const char *sam_options = \
+ " SAM conversion options:\n\n" \
+ " --all-reads (-a)\n" \
+ " Include both unmapped and mapped reads in output\n" \
+ " --keep-header (-k)\n" \
+ " Preserve header section as pseudo-BED elements\n" \
+ " --split (-s)\n" \
+ " Split reads with 'N' CIGAR operations into separate BED\n" \
+ " elements\n";
+
+static const char *vcf_name = "convert2bed -i vcf";
+
+static const char *vcf_usage = \
+ " Converts 1-based, closed [a, b] VCF v4 input into 0-based,\n" \
+ " half-open [a-1, b) extended BED or BEDOPS Starch\n" \
+ "\n" \
+ " Usage:\n" \
+ "\n" \
+ " $ vcf2bed < foo.vcf > sorted-foo.vcf.bed\n" \
+ " $ vcf2starch < foo.vcf > sorted-foo.vcf.starch\n" \
+ "\n" \
+ " Or:\n" \
+ "\n" \
+ " $ convert2bed -i vcf < foo.vcf > sorted-foo.vcf.bed\n" \
+ " $ convert2bed -i vcf -o starch < foo.vcf > sorted-foo.vcf.starch\n" \
+ "\n" \
+ " We make no assumptions about sort order from converted output. Apply\n" \
+ " the usage case displayed to pass data to the BEDOPS sort-bed application,\n" \
+ " which generates lexicographically-sorted BED data as output.\n" \
+ "\n" \
+ " If you want to skip sorting, use the --do-not-sort option:\n" \
+ "\n" \
+ " $ vcf2bed --do-not-sort < foo.vcf > unsorted-foo.vcf.bed\n";
+
+static const char *vcf_description = \
+ " This conversion utility relies on the VCF v4.2 format, with its\n" \
+ " specifications outlined here by the 1000 Genomes and Samtools projects:\n" \
+ "\n" \
+ " http://samtools.github.io/hts-specs/VCFv4.2.pdf\n" \
+ "\n" \
+ " -- The \"meta-information\" (starting with '##') and \"header\"\n" \
+ " lines (starting with '#') are discarded, unless the --keep-header\n" \
+ " option is used.\n\n" \
+ " To preserve metadata and header as BED elements, use the \n" \
+ " --keep-header option, which munges these data into pseudo-elements\n" \
+ " that generally sort to the top (when chromosomes follow UCSC naming\n" \
+ " conventions) by using the \"_header\" chromosome name.\n" \
+ "\n" \
+ " -- The header line must be tab-delimited. The eight, fixed mandatory\n" \
+ " columns are converted to BED data as follows:\n" \
+ "\n" \
+ " - Data in the #CHROM column are mapped to the first column of\n" \
+ " the BED output\n" \
+ " - The POS column is mapped to the second and third BED columns\n" \
+ " - The ID and QUAL columns are mapped to the fourth and fifth BED\n" \
+ " columns, respectively\n" \
+ " - The REF, ALT, FILTER and INFO are mapped to the sixth through\n" \
+ " ninth BED columns, respectively\n" \
+ "\n" \
+ " -- If present, genotype data in FORMAT and subsequence sample IDs\n" \
+ " are placed into tenth and subsequent columns.\n" \
+ "\n" \
+ " -- Data rows must also be tab-delimited.\n" \
+ "\n" \
+ " -- Any missing data or non-standard delimiters may cause\n" \
+ " problems. It may be useful to validate the VCF v4.2 input\n" \
+ " before conversion.\n";
+
+static const char *vcf_options = \
+ " VCF conversion options:\n\n" \
+ " --do-not-split (-p)\n" \
+ " By default, this application prints multiple BED elements for each alternate\n" \
+ " allele. Use this flag to print one BED element for all alternate alleles\n" \
+ " --snvs (-v)\n" \
+ " Report only single nucleotide variants\n" \
+ " --insertions (-t)\n" \
+ " Report only insertion variants\n" \
+ " --deletions (-n)\n" \
+ " Report only deletion variants\n" \
+ " --keep-header (-k)\n" \
+ " Preserve header section as pseudo-BED elements\n";
+
+static const char *wig_name = "convert2bed -i wig";
+
+static const char *wig_usage = \
+ " Convert UCSC Wiggle to extended BED or BEDOPS Starch\n" \
+ "\n" \
+ " Usage:\n" \
+ "\n" \
+ " $ wig2bed < foo.wig > sorted-foo.wig.bed\n" \
+ " $ wig2starch < foo.wig > sorted-foo.wig.starch\n" \
+ "\n" \
+ " Or:\n" \
+ "\n" \
+ " $ convert2bed -i wig < foo.wig > sorted-foo.wig.bed\n" \
+ " $ convert2bed -i wig -o starch < foo.wig > sorted-foo.wig.starch\n" \
+ "\n" \
+ " We make no assumptions about sort order from converted output. Apply\n" \
+ " the usage case displayed to pass data to the BEDOPS sort-bed application,\n" \
+ " which generates lexicographically-sorted BED data as output.\n" \
+ "\n" \
+ " If you want to skip sorting, use the --do-not-sort option:\n" \
+ "\n" \
+ " $ wig2bed --do-not-sort < foo.wig > unsorted-foo.wig.bed\n";
+
+static const char *wig_description = \
+ " The UCSC Wiggle format (http://genome.ucsc.edu/goldenPath/help/wiggle.html)\n" \
+ " is 1-based, closed [a, b] and is offered in variable or fixed step varieties.\n" \
+ " We convert either variety to 0-based, half-open [a-1, b) indexing when creating\n" \
+ " BED output.\n" \
+ "\n" \
+ " By default, data are passed internally to BEDOPS sort-bed to provide sorted\n" \
+ " output ready for use with other BEDOPS utilities.\n";
+
+static const char *wig_options = \
+ " WIG conversion options:\n\n" \
+ " --keep-header (-k)\n" \
+ " Preserve header section as pseudo-BED elements\n" \
+ " --multisplit=<basename> (-b <basename>)\n" \
+ " A single input file may have multiple WIG sections. With this option\n" \
+ " every section gets an ID prefix starting with <basename>.1, then\n" \
+ " <basename>.2, and so on\n" \
+ " --zero-indexed (-x)\n" \
+ " Do not apply any index adjustment to input WIG data. This is useful\n" \
+ " with input derived from bigWigToWig, for example, where the bigWig\n" \
+ " data are originally zero-indexed.\n";
+
+static const char *format_undefined_usage = \
+ " Note: Please specify format to get detailed usage parameters:\n\n" \
+ " --help[-bam|-gff|-gtf|-gvf|-psl|-rmsk|-sam|-vcf|-wig] (-h <fmt>)\n";
+
+typedef struct gff_state {
+ char *id;
+} c2b_gff_state_t;
+
+typedef struct gtf_state {
+ char *id;
+ uint64_t line_count;
+} c2b_gtf_state_t;
+
+typedef struct psl_state {
+ boolean is_headered;
+ c2b_psl_block_t *block;
+} c2b_psl_state_t;
+
+typedef struct rmsk_state {
+ uint64_t line;
+ boolean is_start_of_line;
+ boolean is_start_of_gap;
+} c2b_rmsk_state_t;
+
+typedef struct sam_state {
+ char *samtools_path;
+ c2b_cigar_t *cigar;
+} c2b_sam_state_t;
+
+typedef struct vcf_state {
+ boolean do_not_split;
+ boolean only_snvs;
+ boolean only_insertions;
+ boolean only_deletions;
+ unsigned int filter_count;
+} c2b_vcf_state_t;
+
+typedef struct wig_state {
+ uint32_t section;
+ uint32_t line;
+ uint32_t pos_lines;
+ uint64_t span;
+ uint64_t step;
+ uint64_t start_pos;
+ uint64_t end_pos;
+ double score;
+ char *chr;
+ char *id;
+ boolean is_fixed_step;
+ boolean start_write;
+ char *basename;
+ int start_shift;
+ int end_shift;
+} c2b_wig_state_t;
+
+typedef struct cat_params {
+ char *path;
+} c2b_cat_params_t;
+
+typedef struct sort_params {
+ boolean is_enabled;
+ char *sort_bed_path;
+ char *max_mem_value;
+ char *sort_tmpdir_path;
+} c2b_sort_params_t;
+
+typedef struct starch_params {
+ char *path;
+ boolean bzip2;
+ boolean gzip;
+ char *note;
+} c2b_starch_params_t;
+
+static struct globals {
+ c2b_format_t help_format_idx;
+ char *input_format;
+ c2b_format_t input_format_idx;
+ char *output_format;
+ c2b_format_t output_format_idx;
+ unsigned int header_line_idx;
+ boolean all_reads_flag;
+ boolean keep_header_flag;
+ boolean split_flag;
+ boolean zero_indexed_flag;
+ c2b_gff_state_t *gff;
+ c2b_gtf_state_t *gtf;
+ c2b_psl_state_t *psl;
+ c2b_rmsk_state_t *rmsk;
+ c2b_sam_state_t *sam;
+ c2b_vcf_state_t *vcf;
+ c2b_wig_state_t *wig;
+ c2b_cat_params_t *cat;
+ c2b_sort_params_t *sort;
+ c2b_starch_params_t *starch;
+} c2b_globals;
+
+static struct option c2b_client_long_options[] = {
+ { "input", required_argument, NULL, 'i' },
+ { "output", required_argument, NULL, 'o' },
+ { "do-not-sort", no_argument, NULL, 'd' },
+ { "all-reads", no_argument, NULL, 'a' },
+ { "keep-header", no_argument, NULL, 'k' },
+ { "split", no_argument, NULL, 's' },
+ { "do-not-split", no_argument, NULL, 'p' },
+ { "snvs", no_argument, NULL, 'v' },
+ { "insertions", no_argument, NULL, 't' },
+ { "deletions", no_argument, NULL, 'n' },
+ { "starch-bzip2", no_argument, NULL, 'z' },
+ { "starch-gzip", no_argument, NULL, 'g' },
+ { "starch-note", required_argument, NULL, 'e' },
+ { "max-mem", required_argument, NULL, 'm' },
+ { "sort-tmpdir", required_argument, NULL, 'r' },
+ { "multisplit", required_argument, NULL, 'b' },
+ { "zero-indexed", no_argument, NULL, 'x' },
+ { "help", no_argument, NULL, 'h' },
+ { "version", no_argument, NULL, 'w' },
+ { "help-bam", no_argument, NULL, '1' },
+ { "help-gff", no_argument, NULL, '2' },
+ { "help-gtf", no_argument, NULL, '3' },
+ { "help-gvf", no_argument, NULL, '4' },
+ { "help-psl", no_argument, NULL, '5' },
+ { "help-rmsk", no_argument, NULL, '6' },
+ { "help-sam", no_argument, NULL, '7' },
+ { "help-vcf", no_argument, NULL, '8' },
+ { "help-wig", no_argument, NULL, '9' },
+ { NULL, no_argument, NULL, 0 }
+};
+
+static const char *c2b_client_opt_string = "i:o:dakspvtnzge:m:r:b:xhw12345678?";
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ static void c2b_init_conversion(c2b_pipeset_t *p);
+ static void c2b_init_gff_conversion(c2b_pipeset_t *p);
+ static void c2b_init_gtf_conversion(c2b_pipeset_t *p);
+ static void c2b_init_gvf_conversion(c2b_pipeset_t *p);
+ static void c2b_init_psl_conversion(c2b_pipeset_t *p);
+ static void c2b_init_rmsk_conversion(c2b_pipeset_t *p);
+ static void c2b_init_sam_conversion(c2b_pipeset_t *p);
+ static void c2b_init_vcf_conversion(c2b_pipeset_t *p);
+ static void c2b_init_wig_conversion(c2b_pipeset_t *p);
+ static void c2b_init_generic_conversion(c2b_pipeset_t *p, void(*to_bed_line_functor)(char *, ssize_t *, char *, ssize_t));
+ static void c2b_init_bam_conversion(c2b_pipeset_t *p);
+ static inline void c2b_cmd_cat_stdin(char *cmd);
+ static inline void c2b_cmd_bam_to_sam(char *cmd);
+ static inline void c2b_cmd_sort_bed(char *cmd);
+ static inline void c2b_cmd_starch_bed(char *cmd);
+ static void c2b_line_convert_gff_to_bed_unsorted(char *dest, ssize_t *dest_size, char *src, ssize_t src_size);
+ static inline void c2b_line_convert_gff_to_bed(c2b_gff_t g, char *dest_line, ssize_t *dest_size);
+ static void c2b_line_convert_gtf_to_bed_unsorted(char *dest, ssize_t *dest_size, char *src, ssize_t src_size);
+ static inline void c2b_line_convert_gtf_to_bed(c2b_gtf_t g, char *dest_line, ssize_t *dest_size);
+ static void c2b_line_convert_psl_to_bed_unsorted(char *dest, ssize_t *dest_size, char *src, ssize_t src_size);
+ static inline void c2b_psl_blockSizes_to_ptr(char *s, uint64_t bc);
+ static inline void c2b_psl_tStarts_to_ptr(char *s, uint64_t bc);
+ static inline void c2b_line_convert_psl_to_bed(c2b_psl_t p, char *dest_line, ssize_t *dest_size);
+ static void c2b_line_convert_rmsk_to_bed_unsorted(char *dest, ssize_t *dest_size, char *src, ssize_t src_size);
+ static inline void c2b_line_convert_rmsk_to_bed(c2b_rmsk_t r, char *dest_line, ssize_t *dest_size);
+ static void c2b_line_convert_sam_to_bed_unsorted_without_split_operation(char *dest, ssize_t *dest_size, char *src, ssize_t src_size);
+ static void c2b_line_convert_sam_to_bed_unsorted_with_split_operation(char *dest, ssize_t *dest_size, char *src, ssize_t src_size);
+ static inline void c2b_sam_cigar_str_to_ops(char *s);
+ static void c2b_sam_init_cigar_ops(c2b_cigar_t **c, const ssize_t size);
+ static void c2b_sam_debug_cigar_ops(c2b_cigar_t *c);
+ static void c2b_sam_delete_cigar_ops(c2b_cigar_t *c);
+ static inline void c2b_line_convert_sam_to_bed(c2b_sam_t s, char *dest_line, ssize_t *dest_size);
+ static void c2b_line_convert_vcf_to_bed_unsorted(char *dest, ssize_t *dest_size, char *src, ssize_t src_size);
+ static inline boolean c2b_vcf_allele_is_id(char *s);
+ static inline boolean c2b_vcf_record_is_snv(char *ref, char *alt);
+ static inline boolean c2b_vcf_record_is_insertion(char *ref, char *alt);
+ static inline boolean c2b_vcf_record_is_deletion(char *ref, char *alt);
+ static inline void c2b_line_convert_vcf_to_bed(c2b_vcf_t v, char *dest_line, ssize_t *dest_size);
+ static void c2b_line_convert_wig_to_bed_unsorted(char *dest, ssize_t *dest_size, char *src, ssize_t src_size);
+ static void * c2b_read_bytes_from_stdin(void *arg);
+ static void * c2b_process_intermediate_bytes_by_lines(void *arg);
+ static void * c2b_write_in_bytes_to_in_process(void *arg);
+ static void * c2b_write_out_bytes_to_in_process(void *arg);
+ static void * c2b_write_in_bytes_to_stdout(void *arg);
+ static void * c2b_write_out_bytes_to_stdout(void *arg);
+ static void c2b_memrchr_offset(ssize_t *offset, char *buf, ssize_t buf_size, ssize_t len, char delim);
+ static void c2b_init_pipeset(c2b_pipeset_t *p, const size_t num);
+ static void c2b_debug_pipeset(c2b_pipeset_t *p, const size_t num);
+ static void c2b_delete_pipeset(c2b_pipeset_t *p);
+ static void c2b_set_close_exec_flag(int fd);
+ static void c2b_unset_close_exec_flag(int fd);
+ static int c2b_pipe4(int fd[2], int flags);
+ static pid_t c2b_popen4(const char* cmd, int pin[2], int pout[2], int perr[2], int flags);
+ static void c2b_test_dependencies();
+ static boolean c2b_print_matches(char *path, char *fn);
+ static char * c2b_strsep(char **stringp, const char *delim);
+ static boolean c2b_is_there(char *candidate);
+ static void c2b_init_globals();
+ static void c2b_delete_globals();
+ static void c2b_init_global_gff_state();
+ static void c2b_delete_global_gff_state();
+ static void c2b_init_global_gtf_state();
+ static void c2b_delete_global_gtf_state();
+ static void c2b_init_global_psl_state();
+ static void c2b_delete_global_psl_state();
+ static void c2b_init_global_rmsk_state();
+ static void c2b_delete_global_rmsk_state();
+ static void c2b_init_global_sam_state();
+ static void c2b_delete_global_sam_state();
+ static void c2b_init_global_vcf_state();
+ static void c2b_delete_global_vcf_state();
+ static void c2b_init_global_wig_state();
+ static void c2b_delete_global_wig_state();
+ static void c2b_init_global_cat_params();
+ static void c2b_delete_global_cat_params();
+ static void c2b_init_global_sort_params();
+ static void c2b_delete_global_sort_params();
+ static void c2b_init_global_starch_params();
+ static void c2b_delete_global_starch_params();
+ static void c2b_init_command_line_options(int argc, char **argv);
+ static void c2b_print_version(FILE *stream);
+ static void c2b_print_usage(FILE *stream);
+ static void c2b_print_format_usage(FILE *stream);
+ static char * c2b_to_lowercase(const char *src);
+ static c2b_format_t c2b_to_input_format(const char *input_format);
+ static c2b_format_t c2b_to_output_format(const char *output_format);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/applications/bed/conversion/src/gprof-helper.c b/applications/bed/conversion/src/gprof-helper.c
new file mode 100644
index 0000000..eea1b71
--- /dev/null
+++ b/applications/bed/conversion/src/gprof-helper.c
@@ -0,0 +1,119 @@
+/* gprof-helper.c -- preload library to profile pthread-enabled programs
+ *
+ * Authors: Sam Hocevar <sam at zoy dot org>
+ * Daniel Jönsson <danieljo at fagotten dot org>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the Do What The Fuck You Want To
+ * Public License as published by Banlu Kemiyatorn. See
+ * http://sam.zoy.org/projects/COPYING.WTFPL for more details.
+ *
+ * Compilation example:
+ * gcc -shared -fPIC gprof-helper.c -o gprof-helper.so -lpthread -ldl
+ *
+ * Usage example:
+ * LD_PRELOAD=./gprof-helper.so your_program
+ */
+
+#define _GNU_SOURCE
+#include <sys/time.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <dlfcn.h>
+#include <pthread.h>
+
+static void * wrapper_routine(void *);
+
+/* Original pthread function */
+static int (*pthread_create_orig)(pthread_t *__restrict,
+ __const pthread_attr_t *__restrict,
+ void *(*)(void *),
+ void *__restrict) = NULL;
+
+/* Library initialization function */
+void wooinit(void) __attribute__((constructor));
+
+void wooinit(void)
+{
+ pthread_create_orig = dlsym(RTLD_NEXT, "pthread_create");
+ fprintf(stderr, "pthreads: using profiling hooks for gprof\n");
+ if(pthread_create_orig == NULL)
+ {
+ char *error = dlerror();
+ if(error == NULL)
+ {
+ error = "pthread_create is NULL";
+ }
+ fprintf(stderr, "%s\n", error);
+ exit(EXIT_FAILURE);
+ }
+}
+
+/* Our data structure passed to the wrapper */
+typedef struct wrapper_s
+{
+ void * (*start_routine)(void *);
+ void * arg;
+
+ pthread_mutex_t lock;
+ pthread_cond_t wait;
+
+ struct itimerval itimer;
+
+} wrapper_t;
+
+/* The wrapper function in charge for setting the itimer value */
+static void * wrapper_routine(void * data)
+{
+ /* Put user data in thread-local variables */
+ void * (*start_routine)(void *) = ((wrapper_t*)data)->start_routine;
+ void * arg = ((wrapper_t*)data)->arg;
+
+ /* Set the profile timer value */
+ setitimer(ITIMER_PROF, &((wrapper_t*)data)->itimer, NULL);
+
+ /* Tell the calling thread that we don't need its data anymore */
+ pthread_mutex_lock(&((wrapper_t*)data)->lock);
+ pthread_cond_signal(&((wrapper_t*)data)->wait);
+ pthread_mutex_unlock(&((wrapper_t*)data)->lock);
+
+ /* Call the real function */
+ return start_routine(arg);
+}
+
+/* Our wrapper function for the real pthread_create() */
+int pthread_create(pthread_t *__restrict thread,
+ __const pthread_attr_t *__restrict attr,
+ void * (*start_routine)(void *),
+ void *__restrict arg)
+{
+ wrapper_t wrapper_data;
+ int i_return;
+
+ /* Initialize the wrapper structure */
+ wrapper_data.start_routine = start_routine;
+ wrapper_data.arg = arg;
+ getitimer(ITIMER_PROF, &wrapper_data.itimer);
+ pthread_cond_init(&wrapper_data.wait, NULL);
+ pthread_mutex_init(&wrapper_data.lock, NULL);
+ pthread_mutex_lock(&wrapper_data.lock);
+
+ /* The real pthread_create call */
+ i_return = pthread_create_orig(thread,
+ attr,
+ &wrapper_routine,
+ &wrapper_data);
+
+ /* If the thread was successfully spawned, wait for the data
+ * to be released */
+ if(i_return == 0)
+ {
+ pthread_cond_wait(&wrapper_data.wait, &wrapper_data.lock);
+ }
+
+ pthread_mutex_unlock(&wrapper_data.lock);
+ pthread_mutex_destroy(&wrapper_data.lock);
+ pthread_cond_destroy(&wrapper_data.wait);
+
+ return i_return;
+}
diff --git a/applications/bed/conversion/src/tests/bam/makefile b/applications/bed/conversion/src/tests/bam/makefile
new file mode 100644
index 0000000..8c27234
--- /dev/null
+++ b/applications/bed/conversion/src/tests/bam/makefile
@@ -0,0 +1,4 @@
+all: test
+
+test:
+ @./test.sh
diff --git a/applications/bed/conversion/src/tests/bam/sample.bam b/applications/bed/conversion/src/tests/bam/sample.bam
new file mode 100644
index 0000000..18a2876
Binary files /dev/null and b/applications/bed/conversion/src/tests/bam/sample.bam differ
diff --git a/applications/bed/conversion/src/tests/bam/sample.expected.bed b/applications/bed/conversion/src/tests/bam/sample.expected.bed
new file mode 100644
index 0000000..e1b965c
--- /dev/null
+++ b/applications/bed/conversion/src/tests/bam/sample.expected.bed
@@ -0,0 +1,9 @@
+chr1 110753024 110753038 ctcf-variant002 255 - 16 14M * 0 0 ATGCCACCTCGCGC IIIIIIIIIIIIII XA:i:0 MD:Z:14 NM:i:0
+chr11 432658 432672 ctcf-variant001 255 - 16 14M * 0 0 ATGCCACCTCGCGA IIIIIIIIIIIIII XA:i:1 MD:Z:5G8 NM:i:1
+chr12 125038759 125038773 ctcf-variant001 255 + 0 14M * 0 0 TCGCGAGGTGGCAT IIIIIIIIIIIIII XA:i:1 MD:Z:0C13 NM:i:1
+chr15 80472438 80472452 ctcf-variant000 255 - 16 14M * 0 0 ATGCCACCTCGCGT IIIIIIIIIIIIII XA:i:1 MD:Z:2T11 NM:i:1
+chr15 99416251 99416265 ctcf-variant000 255 - 16 14M * 0 0 ATGCCACCTCGCGT IIIIIIIIIIIIII XA:i:1 MD:Z:4T9 NM:i:1
+chr16 49891427 49891441 ctcf-variant001 255 - 16 14M * 0 0 ATGCCACCTCGCGA IIIIIIIIIIIIII XA:i:1 MD:Z:0T13 NM:i:1
+chr5 177019527 177019541 ctcf-variant002 255 - 16 14M * 0 0 ATGCCACCTCGCGC IIIIIIIIIIIIII XA:i:0 MD:Z:14 NM:i:0
+chr5 178376198 178376212 ctcf-variant002 255 - 16 14M * 0 0 ATGCCACCTCGCGC IIIIIIIIIIIIII XA:i:1 MD:Z:0C13 NM:i:1
+chr7 97801278 97801292 ctcf-variant000 255 - 16 14M * 0 0 ATGCCACCTCGCGT IIIIIIIIIIIIII XA:i:1 MD:Z:3A10 NM:i:1
diff --git a/applications/bed/conversion/src/tests/bam/sample.expected.starch b/applications/bed/conversion/src/tests/bam/sample.expected.starch
new file mode 100644
index 0000000..5678650
Binary files /dev/null and b/applications/bed/conversion/src/tests/bam/sample.expected.starch differ
diff --git a/applications/bed/conversion/src/tests/bam/split.bam b/applications/bed/conversion/src/tests/bam/split.bam
new file mode 100644
index 0000000..316962d
Binary files /dev/null and b/applications/bed/conversion/src/tests/bam/split.bam differ
diff --git a/applications/bed/conversion/src/tests/bam/split.expected.bed b/applications/bed/conversion/src/tests/bam/split.expected.bed
new file mode 100644
index 0000000..eee4956
--- /dev/null
+++ b/applications/bed/conversion/src/tests/bam/split.expected.bed
@@ -0,0 +1,3 @@
+chr19 7695544 7695545 NS500372:42:H2JWJBGXX:2:12207:2947:19765/1 50 - 81 1M163N24M626N11M = 7694707 -1663 GAGGGAGCTGTGGCCACCTGAGAAGCTTCAAGAGAT FFFFFFFFFF<FFFFFFFFFFFFFFF.7FFFAAAA< XA:i:0 MD:Z:36 PG:Z:MarkDuplicates NH:i:1 NM:i:0 XS:A:+
+chr19 7695708 7695732 NS500372:42:H2JWJBGXX:2:12207:2947:19765/2 50 - 81 1M163N24M626N11M = 7694707 -1663 GAGGGAGCTGTGGCCACCTGAGAAGCTTCAAGAGAT FFFFFFFFFF<FFFFFFFFFFFFFFF.7FFFAAAA< XA:i:0 MD:Z:36 PG:Z:MarkDuplicates NH:i:1 NM:i:0 XS:A:+
+chr19 7696358 7696369 NS500372:42:H2JWJBGXX:2:12207:2947:19765/3 50 - 81 1M163N24M626N11M = 7694707 -1663 GAGGGAGCTGTGGCCACCTGAGAAGCTTCAAGAGAT FFFFFFFFFF<FFFFFFFFFFFFFFF.7FFFAAAA< XA:i:0 MD:Z:36 PG:Z:MarkDuplicates NH:i:1 NM:i:0 XS:A:+
diff --git a/applications/bed/conversion/src/tests/bam/test.sh b/applications/bed/conversion/src/tests/bam/test.sh
new file mode 100755
index 0000000..7306a70
--- /dev/null
+++ b/applications/bed/conversion/src/tests/bam/test.sh
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+bin_dir="/usr/local/bin"
+bam2bed_bin="${bin_dir}/bam2bed"
+bam2starch_bin="${bin_dir}/bam2starch"
+
+echo "[bam2bed] testing sorted output..."
+sample_bam_fn="sample.bam"
+expected_sorted_bed_fn="sample.expected.bed"
+observed_sorted_bed_fn="$(mktemp /tmp/XXXXXX)"
+${bam2bed_bin} < ${sample_bam_fn} > ${observed_sorted_bed_fn} 2> /dev/null
+diff -q ${expected_sorted_bed_fn} ${observed_sorted_bed_fn}
+rm -f ${observed_sorted_bed_fn}
+
+echo "[bam2bed] testing split output..."
+split_bam_fn="split.bam"
+expected_split_bed_fn="split.expected.bed"
+observed_split_bed_fn="$(mktemp /tmp/XXXXXX)"
+${bam2bed_bin} --split < ${split_bam_fn} > ${observed_split_bed_fn} 2> /dev/null
+diff -q ${expected_split_bed_fn} ${observed_split_bed_fn}
+rm -f ${observed_split_bed_fn}
+
+echo "[bam2bed] testing starch (bzip2) output..."
+sample_bam_fn="sample.bam"
+expected_starch_fn="sample.expected.starch"
+observed_starch_fn="$(mktemp /tmp/XXXXXX)"
+${bam2starch_bin} < ${sample_bam_fn} > ${observed_starch_fn} 2> /dev/null
+diff -q <(unstarch ${expected_starch_fn}) <(unstarch ${observed_starch_fn})
+rm -f ${observed_starch_fn}
+
+echo "[bam2bed] testing starch (gzip) output..."
+sample_bam_fn="sample.bam"
+expected_starch_fn="sample.expected.starch"
+observed_starch_fn="$(mktemp /tmp/XXXXXX)"
+${bam2starch_bin} --starch-gzip < ${sample_bam_fn} > ${observed_starch_fn} 2> /dev/null
+diff -q <(unstarch ${expected_starch_fn}) <(unstarch ${observed_starch_fn})
+rm -f ${observed_starch_fn}
+
+echo "[bam2bed] tests complete!"
diff --git a/applications/bed/conversion/src/tests/gff/makefile b/applications/bed/conversion/src/tests/gff/makefile
new file mode 100644
index 0000000..8c27234
--- /dev/null
+++ b/applications/bed/conversion/src/tests/gff/makefile
@@ -0,0 +1,4 @@
+all: test
+
+test:
+ @./test.sh
diff --git a/applications/bed/conversion/src/tests/gff/sample.expected.bed b/applications/bed/conversion/src/tests/gff/sample.expected.bed
new file mode 100644
index 0000000..1883b15
--- /dev/null
+++ b/applications/bed/conversion/src/tests/gff/sample.expected.bed
@@ -0,0 +1,5 @@
+chr1 1049 1500 exon00002 . - USA exon 0 ID=exon00002;Ontology_term="GO:0046703";Ontology_term="GO:0046704"
+chr1 1299 1300 exon00001 . + Canada exon . ID=exon00001;score=1;zero_length_insertion=True
+chr1 2999 3902 exon00003 . ? Canada exon 2 ID=exon00003;score=4;Name=foo
+chr1 4999 5500 exon00004 . . . exon . ID=exon00004;Gap=M8 D3 M6 I1 M6
+chr1 6999 9000 exon00005 10 + . exon 1 ID=exon00005;Dbxref="NCBI_gi:10727410"
diff --git a/applications/bed/conversion/src/tests/gff/sample.expected.gzip.starch b/applications/bed/conversion/src/tests/gff/sample.expected.gzip.starch
new file mode 100644
index 0000000..43d8855
Binary files /dev/null and b/applications/bed/conversion/src/tests/gff/sample.expected.gzip.starch differ
diff --git a/applications/bed/conversion/src/tests/gff/sample.expected.starch b/applications/bed/conversion/src/tests/gff/sample.expected.starch
new file mode 100644
index 0000000..effe152
Binary files /dev/null and b/applications/bed/conversion/src/tests/gff/sample.expected.starch differ
diff --git a/applications/bed/conversion/src/tests/gff/sample.gff b/applications/bed/conversion/src/tests/gff/sample.gff
new file mode 100644
index 0000000..abc770b
--- /dev/null
+++ b/applications/bed/conversion/src/tests/gff/sample.gff
@@ -0,0 +1,10 @@
+##gff-version 3
+chr1 Canada exon 1300 1300 . + . ID=exon00001;score=1
+chr1 USA exon 1050 1500 . - 0 ID=exon00002;Ontology_term="GO:0046703";Ontology_term="GO:0046704"
+chr1 Canada exon 3000 3902 . ? 2 ID=exon00003;score=4;Name=foo
+chr1 . exon 5000 5500 . . . ID=exon00004;Gap=M8 D3 M6 I1 M6
+chr1 . exon 7000 9000 10 + 1 ID=exon00005;Dbxref="NCBI_gi:10727410"
+##FASTA
+>exon00001
+cttctgggcgtacccgattctcggagaacttgccgcaccattccgccttg
+tgttcattgctgcctgcatgttcattgtctacctcggctacgtgtggcta
diff --git a/applications/bed/conversion/src/tests/gff/test.sh b/applications/bed/conversion/src/tests/gff/test.sh
new file mode 100755
index 0000000..cb61e04
--- /dev/null
+++ b/applications/bed/conversion/src/tests/gff/test.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+bin_dir="/usr/local/bin"
+gff2bed_bin="${bin_dir}/gff2bed"
+gff2starch_bin="${bin_dir}/gff2starch"
+
+echo "[gff2bed] testing sorted output..."
+sample_gff_fn="sample.gff"
+expected_sorted_bed_fn="sample.expected.bed"
+observed_sorted_bed_fn="$(mktemp /tmp/XXXXXX)"
+${gff2bed_bin} < ${sample_gff_fn} > ${observed_sorted_bed_fn} 2> /dev/null
+diff -q ${expected_sorted_bed_fn} ${observed_sorted_bed_fn}
+rm -f ${observed_sorted_bed_fn}
+
+echo "[gff2bed] testing starch (bzip2) output..."
+sample_gff_fn="sample.gff"
+expected_starch_fn="sample.expected.starch"
+observed_starch_fn="$(mktemp /tmp/XXXXXX)"
+${gff2starch_bin} < ${sample_gff_fn} > ${observed_starch_fn} 2> /dev/null
+diff -q <(unstarch ${expected_starch_fn}) <(unstarch ${observed_starch_fn})
+rm -f ${observed_starch_fn}
+
+echo "[gff2bed] testing starch (gzip) output..."
+sample_gff_fn="sample.gff"
+expected_starch_fn="sample.expected.gzip.starch"
+observed_starch_fn="$(mktemp /tmp/XXXXXX)"
+${gff2starch_bin} --starch-gzip < ${sample_gff_fn} > ${observed_starch_fn} 2> /dev/null
+diff -q <(unstarch ${expected_starch_fn}) <(unstarch ${observed_starch_fn})
+rm -f ${observed_starch_fn}
+
+echo "[gff2bed] tests complete!"
diff --git a/applications/bed/conversion/src/tests/gtf/makefile b/applications/bed/conversion/src/tests/gtf/makefile
new file mode 100644
index 0000000..8c27234
--- /dev/null
+++ b/applications/bed/conversion/src/tests/gtf/makefile
@@ -0,0 +1,4 @@
+all: test
+
+test:
+ @./test.sh
diff --git a/applications/bed/conversion/src/tests/gtf/sample.expected.bed b/applications/bed/conversion/src/tests/gtf/sample.expected.bed
new file mode 100644
index 0000000..73d3e77
--- /dev/null
+++ b/applications/bed/conversion/src/tests/gtf/sample.expected.bed
@@ -0,0 +1,7 @@
+chr1 8346223 8466555 AL356072.21 0.000000 + hg19_gold exon . gene_id "AL356072.21"; transcript_id "AL356072.21";
+chr1 16773050 16859226 AL137802.71 0.000000 + hg19_gold exon . gene_id "AL137802.7"; transcript_id "AL137802.7";
+chr1 25112510 25191441 AL662924.24 0.000000 + hg19_gold exon . gene_id "AL662924.24"; transcript_id "AL662924.24";
+chr1 33456181 33607078 AL020995.14 0.000000 + hg19_gold exon . gene_id "AL020995.14"; transcript_id "AL020995.14";
+chr1 41902275 42054428 AL445933.32 0.000000 + hg19_gold exon . gene_id "AL445933.32"; transcript_id "AL445933.32";
+chr1 67088325 67183780 AL139147.7 0.000000 + hg19_gold exon . gene_id "AL139147.7"; transcript_id "AL139147.7";
+chr1 201216110 201371130 AC119427.3 0.000000 + hg19_gold exon . gene_id "AC119427.3"; transcript_id "AC119427.3";
diff --git a/applications/bed/conversion/src/tests/gtf/sample.expected.gzip.starch b/applications/bed/conversion/src/tests/gtf/sample.expected.gzip.starch
new file mode 100644
index 0000000..4baf5ca
--- /dev/null
+++ b/applications/bed/conversion/src/tests/gtf/sample.expected.gzip.starch
@@ -0,0 +1,25 @@
+�\��x��=j1�Z:�q�+iH��&���l���3vȢB��>=>�v0S�,����k�B�0@�� O�sE;���cX~.�º�����w����v}?\O�6c�Kv
����\*P*��aDuYl�c��LU\ʙ�$�̮�
+#�cC�jű,E�1 0ӄ��Va}x��
3E+���1'��e[a�ual��I���e(%�Y
+���H��*��Y����фJ�Ik�?��,�ry�X{
+ "archive": {
+ "type": "starch",
+ "customUCSCHeaders": false,
+ "creationTimestamp": "2014-12-12T22:30:06-0800",
+ "version": {
+ "major": 2,
+ "minor": 0,
+ "revision": 0
+ },
+ "compressionFormat": 1
+ },
+ "streams": [
+ {
+ "chromosome": "chr1",
+ "filename": "chr1.pid70550.Papillion-2.local",
+ "size": "239",
+ "uncompressedLineCount": 7,
+ "nonUniqueBaseCount": 838964,
+ "uniqueBaseCount": 838964
+ }
+ ]
+}00000000000000000243W5QXMHjLoRUrXjHU72ZOBN/h27k=
diff --git a/applications/bed/conversion/src/tests/gtf/sample.expected.starch b/applications/bed/conversion/src/tests/gtf/sample.expected.starch
new file mode 100644
index 0000000..64d3a52
Binary files /dev/null and b/applications/bed/conversion/src/tests/gtf/sample.expected.starch differ
diff --git a/applications/bed/conversion/src/tests/gtf/sample.gtf b/applications/bed/conversion/src/tests/gtf/sample.gtf
new file mode 100644
index 0000000..cd3ab14
--- /dev/null
+++ b/applications/bed/conversion/src/tests/gtf/sample.gtf
@@ -0,0 +1,7 @@
+chr1 hg19_gold exon 67088326 67183780 0.000000 + . gene_id "AL139147.7"; transcript_id "AL139147.7";
+chr1 hg19_gold exon 201216111 201371130 0.000000 + . gene_id "AC119427.3"; transcript_id "AC119427.3";
+chr1 hg19_gold exon 8346224 8466555 0.000000 + . gene_id "AL356072.21"; transcript_id "AL356072.21";
+chr1 hg19_gold exon 16773051 16859226 0.000000 + . gene_id "AL137802.7"; transcript_id "AL137802.7";
+chr1 hg19_gold exon 25112511 25191441 0.000000 + . gene_id "AL662924.24"; transcript_id "AL662924.24";
+chr1 hg19_gold exon 33456182 33607078 0.000000 + . gene_id "AL020995.14"; transcript_id "AL020995.14";
+chr1 hg19_gold exon 41902276 42054428 0.000000 + . gene_id "AL445933.32"; transcript_id "AL445933.32";
diff --git a/applications/bed/conversion/src/tests/gtf/test.sh b/applications/bed/conversion/src/tests/gtf/test.sh
new file mode 100755
index 0000000..ca5ab9f
--- /dev/null
+++ b/applications/bed/conversion/src/tests/gtf/test.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+bin_dir="/usr/local/bin"
+gtf2bed_bin="${bin_dir}/gtf2bed"
+gtf2starch_bin="${bin_dir}/gtf2starch"
+
+echo "[gtf2bed] testing sorted output..."
+sample_gtf_fn="sample.gtf"
+expected_sorted_bed_fn="sample.expected.bed"
+observed_sorted_bed_fn="$(mktemp /tmp/XXXXXX)"
+${gtf2bed_bin} < ${sample_gtf_fn} > ${observed_sorted_bed_fn} 2> /dev/null
+diff -q ${expected_sorted_bed_fn} ${observed_sorted_bed_fn}
+rm -f ${observed_sorted_bed_fn}
+
+echo "[gtf2bed] testing starch (bzip2) output..."
+sample_gtf_fn="sample.gtf"
+expected_starch_fn="sample.expected.starch"
+observed_starch_fn="$(mktemp /tmp/XXXXXX)"
+${gtf2starch_bin} < ${sample_gtf_fn} > ${observed_starch_fn} 2> /dev/null
+diff -q <(unstarch ${expected_starch_fn}) <(unstarch ${observed_starch_fn})
+rm -f ${observed_starch_fn}
+
+echo "[gtf2bed] testing starch (gzip) output..."
+sample_gtf_fn="sample.gtf"
+expected_starch_fn="sample.expected.gzip.starch"
+observed_starch_fn="$(mktemp /tmp/XXXXXX)"
+${gtf2starch_bin} --starch-gzip < ${sample_gtf_fn} > ${observed_starch_fn} 2> /dev/null
+diff -q <(unstarch ${expected_starch_fn}) <(unstarch ${observed_starch_fn})
+rm -f ${observed_starch_fn}
+
+echo "[gtf2bed] tests complete!"
diff --git a/applications/bed/conversion/src/tests/gvf/makefile b/applications/bed/conversion/src/tests/gvf/makefile
new file mode 100644
index 0000000..8c27234
--- /dev/null
+++ b/applications/bed/conversion/src/tests/gvf/makefile
@@ -0,0 +1,4 @@
+all: test
+
+test:
+ @./test.sh
diff --git a/applications/bed/conversion/src/tests/gvf/sample.expected.bed b/applications/bed/conversion/src/tests/gvf/sample.expected.bed
new file mode 100644
index 0000000..30469f0
--- /dev/null
+++ b/applications/bed/conversion/src/tests/gvf/sample.expected.bed
@@ -0,0 +1,7 @@
+chr16 49291359 49291360 ID_2 . + dbSNP SNV . ID=ID_2;Variant_seq=C,G;Individual=0,1,2,3;Genotype=0:1,0:0,1:1,0:1;zero_length_insertion=True
+chr16 49302124 49302125 ID_3 . + dbSNP SNV . ID=ID_3;Variant_seq=C,T;Individual=0,1,3;Genotype=0:1,2:2,0:2;zero_length_insertion=True
+chr16 49302364 49302365 ID_4 . + dbSNP SNV . ID=ID_4;Variant_seq=G;Individual=0,1;Genotype=0:0,0:0;zero_length_insertion=True
+chr16 49302699 49302700 ID_5 . + dbSNP SNV . ID=ID_5;Variant_seq=C,T;Individual=2,3;Genotype=0:1,0:0;zero_length_insertion=True
+chr16 49303083 49303084 ID_6 . + dbSNP SNV . ID=ID_6;Variant_seq=T,G,A;Individual=3;Genotype=1,2:;zero_length_insertion=True
+chr16 49303426 49303427 ID_8 . + dbSNP SNV . ID=ID_8;Variant_seq=T;Individual=0;Genotype=0:0;zero_length_insertion=True
+chr16 49303595 49303596 ID_9 . + dbSNP SNV . ID=ID_9;Variant_seq=A,G,T;Individual=0,1,3;Genotype=1:2,3:3,1:3;zero_length_insertion=True
diff --git a/applications/bed/conversion/src/tests/gvf/sample.expected.gzip.starch b/applications/bed/conversion/src/tests/gvf/sample.expected.gzip.starch
new file mode 100644
index 0000000..1222ce2
Binary files /dev/null and b/applications/bed/conversion/src/tests/gvf/sample.expected.gzip.starch differ
diff --git a/applications/bed/conversion/src/tests/gvf/sample.expected.starch b/applications/bed/conversion/src/tests/gvf/sample.expected.starch
new file mode 100644
index 0000000..28a020e
Binary files /dev/null and b/applications/bed/conversion/src/tests/gvf/sample.expected.starch differ
diff --git a/applications/bed/conversion/src/tests/gvf/sample.gvf b/applications/bed/conversion/src/tests/gvf/sample.gvf
new file mode 100644
index 0000000..cd382f7
--- /dev/null
+++ b/applications/bed/conversion/src/tests/gvf/sample.gvf
@@ -0,0 +1,13 @@
+##gvf-version 1.07
+##feature-ontology http://www.sequenceontology.org/resources/obo_files/current_release.obo
+##multi-individual NA19240,NA18507,NA12878,NA19238
+##genome-build NCBI B36.3
+##sequence-region chr16 1 88827254
+
+chr16 dbSNP SNV 49291360 49291360 . + . ID=ID_2;Variant_seq=C,G;Individual=0,1,2,3;Genotype=0:1,0:0,1:1,0:1;
+chr16 dbSNP SNV 49302125 49302125 . + . ID=ID_3;Variant_seq=C,T;Individual=0,1,3;Genotype=0:1,2:2,0:2;
+chr16 dbSNP SNV 49302365 49302365 . + . ID=ID_4;Variant_seq=G;Individual=0,1;Genotype=0:0,0:0;
+chr16 dbSNP SNV 49302700 49302700 . + . ID=ID_5;Variant_seq=C,T;Individual=2,3;Genotype=0:1,0:0;
+chr16 dbSNP SNV 49303084 49303084 . + . ID=ID_6;Variant_seq=T,G,A;Individual=3;Genotype=1,2:;
+chr16 dbSNP SNV 49303427 49303427 . + . ID=ID_8;Variant_seq=T;Individual=0;Genotype=0:0;
+chr16 dbSNP SNV 49303596 49303596 . + . ID=ID_9;Variant_seq=A,G,T;Individual=0,1,3;Genotype=1:2,3:3,1:3;
diff --git a/applications/bed/conversion/src/tests/gvf/test.sh b/applications/bed/conversion/src/tests/gvf/test.sh
new file mode 100755
index 0000000..4653f28
--- /dev/null
+++ b/applications/bed/conversion/src/tests/gvf/test.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+bin_dir="/usr/local/bin"
+gvf2bed_bin="${bin_dir}/gvf2bed"
+gvf2starch_bin="${bin_dir}/gvf2starch"
+
+echo "[gvf2bed] testing sorted output..."
+sample_gvf_fn="sample.gvf"
+expected_sorted_bed_fn="sample.expected.bed"
+observed_sorted_bed_fn="$(mktemp /tmp/XXXXXX)"
+${gvf2bed_bin} < ${sample_gvf_fn} > ${observed_sorted_bed_fn} 2> /dev/null
+diff -q ${expected_sorted_bed_fn} ${observed_sorted_bed_fn}
+rm -f ${observed_sorted_bed_fn}
+
+echo "[gvf2bed] testing starch (bzip2) output..."
+sample_gvf_fn="sample.gvf"
+expected_starch_fn="sample.expected.starch"
+observed_starch_fn="$(mktemp /tmp/XXXXXX)"
+${gvf2starch_bin} < ${sample_gvf_fn} > ${observed_starch_fn} 2> /dev/null
+diff -q <(unstarch ${expected_starch_fn}) <(unstarch ${observed_starch_fn})
+rm -f ${observed_starch_fn}
+
+echo "[gvf2bed] testing starch (gzip) output..."
+sample_gvf_fn="sample.gvf"
+expected_starch_fn="sample.expected.gzip.starch"
+observed_starch_fn="$(mktemp /tmp/XXXXXX)"
+${gvf2starch_bin} --starch-gzip < ${sample_gvf_fn} > ${observed_starch_fn} 2> /dev/null
+diff -q <(unstarch ${expected_starch_fn}) <(unstarch ${observed_starch_fn})
+rm -f ${observed_starch_fn}
+
+echo "[gvf2bed] tests complete!"
diff --git a/applications/bed/conversion/src/tests/makefile b/applications/bed/conversion/src/tests/makefile
new file mode 100644
index 0000000..a82b594
--- /dev/null
+++ b/applications/bed/conversion/src/tests/makefile
@@ -0,0 +1,9 @@
+formats := bam gff gtf gvf psl rmsk sam vcf wig
+
+.PHONY: $(formats)
+
+all: $(formats)
+ @echo "[convert2bed] tests complete!"
+
+$(formats):
+ @$(MAKE) -C $@
diff --git a/applications/bed/conversion/src/tests/psl/makefile b/applications/bed/conversion/src/tests/psl/makefile
new file mode 100644
index 0000000..8c27234
--- /dev/null
+++ b/applications/bed/conversion/src/tests/psl/makefile
@@ -0,0 +1,4 @@
+all: test
+
+test:
+ @./test.sh
diff --git a/applications/bed/conversion/src/tests/psl/sample.expected.headered.bed b/applications/bed/conversion/src/tests/psl/sample.expected.headered.bed
new file mode 100644
index 0000000..e1d0642
--- /dev/null
+++ b/applications/bed/conversion/src/tests/psl/sample.expected.headered.bed
@@ -0,0 +1,34 @@
+chr1 30571100 30571135 foo 50 - 35 0 0 0 0 0 0 0 15 50 249250621 1 35, 0, 30571100,
+chr1 69592160 69592195 foo 50 - 34 1 0 0 0 0 0 0 15 50 249250621 1 35, 0, 69592160,
+chr1 107200050 107200100 foo 50 + 50 0 0 0 0 0 0 0 0 50 249250621 1 50, 0, 107200050,
+chr11 12618347 12618389 foo 50 + 39 3 0 0 0 0 0 0 8 50 135006516 1 42, 8, 12618347,
+chr11 32933028 32933063 foo 50 + 35 0 0 0 1 1 0 0 8 44 135006516 2 4,31, 8,13, 32933028,32933032,
+chr11 80116421 80116457 foo 50 + 35 1 0 0 0 0 0 0 14 50 135006516 1 36, 14, 80116421,
+chr11 133952291 133952327 foo 50 + 34 2 0 0 0 0 0 0 14 50 135006516 1 36, 14, 133952291,
+chr13 99729482 99729523 foo 50 + 39 2 0 0 0 0 0 0 8 49 115169878 1 41, 8, 99729482,
+chr13 111391852 111391888 foo 50 + 34 2 0 0 0 0 0 0 14 50 115169878 1 36, 14, 111391852,
+chr16 8149657 8149694 foo 50 + 36 1 0 0 0 0 0 0 13 50 90354753 1 37, 13, 8149657,
+chr19 28603245 28603281 foo 50 - 34 2 0 0 0 0 0 0 14 50 59128983 1 36, 0, 28603245,
+chr2 44076681 44076716 foo 50 - 35 0 0 0 0 0 0 0 15 50 243199373 1 35, 0, 44076681,
+chr2 138092330 138092362 foo 50 + 31 1 0 0 0 0 0 0 18 50 243199373 1 32, 18, 138092330,
+chr2 159266272 159266302 foo 50 + 30 0 0 0 0 0 0 0 14 44 243199373 1 30, 14, 159266272,
+chr2 213333021 213333057 foo 50 + 35 1 0 0 0 0 0 0 14 50 243199373 1 36, 14, 213333021,
+chr2 225564373 225564408 foo 50 + 35 0 0 0 0 0 0 0 15 50 243199373 1 35, 15, 225564373,
+chr21 16689364 16689402 foo 50 + 37 1 0 0 0 0 0 0 12 50 48129895 1 38, 12, 16689364,
+chr3 42509214 42509250 foo 50 + 34 2 0 0 0 0 0 0 14 50 198022430 1 36, 14, 42509214,
+chr3 150940163 150940199 foo 50 + 35 1 0 0 0 0 0 0 14 50 198022430 1 36, 14, 150940163,
+chr3 151443333 151443371 foo 50 - 37 1 0 0 0 0 0 0 11 49 198022430 1 38, 1, 151443333,
+chr3 192870971 192871001 foo 50 + 30 0 0 0 0 0 0 0 20 50 198022430 1 30, 20, 192870971,
+chr4 21041798 21041834 foo 50 - 33 3 0 0 0 0 0 0 14 50 191154276 1 36, 0, 21041798,
+chr4 82259023 82259059 foo 50 + 35 1 0 0 0 0 0 0 14 50 191154276 1 36, 14, 82259023,
+chr5 119897315 119897346 foo 50 + 31 0 0 0 0 0 0 0 13 44 180915260 1 31, 13, 119897315,
+chr5 123254725 123254755 foo 50 + 30 0 0 0 0 0 0 0 14 44 180915260 1 30, 14, 123254725,
+chr6 9392527 9392561 foo 50 - 34 0 0 0 0 0 0 0 7 41 171115067 1 34, 9, 9392527,
+chr6 93161871 93161901 foo 50 + 30 0 0 0 0 0 0 0 14 44 171115067 1 30, 14, 93161871,
+chr6 127685756 127685786 foo 50 + 30 0 0 0 0 0 0 0 14 44 171115067 1 30, 14, 127685756,
+chr8 102334624 102334661 foo 50 - 36 1 0 0 0 0 0 0 13 50 146364022 1 37, 0, 102334624,
+chr8 131572122 131572159 foo 50 + 35 2 0 0 0 0 0 0 13 50 146364022 1 37, 13, 131572122,
+chrX 40535836 40535871 foo 50 + 35 0 0 0 0 0 0 0 15 50 155270560 1 35, 15, 40535836,
+chrX 43068135 43068170 foo 50 + 33 2 0 0 0 0 0 0 14 49 155270560 1 35, 14, 43068135,
+chrX 68019028 68019064 foo 50 + 34 2 0 0 0 0 0 0 14 50 155270560 1 36, 14, 68019028,
+chrX 101602211 101602248 foo 50 - 36 1 0 0 0 0 0 0 13 50 155270560 1 37, 0, 101602211,
diff --git a/applications/bed/conversion/src/tests/psl/sample.expected.headered.gzip.starch b/applications/bed/conversion/src/tests/psl/sample.expected.headered.gzip.starch
new file mode 100644
index 0000000..1d75c52
Binary files /dev/null and b/applications/bed/conversion/src/tests/psl/sample.expected.headered.gzip.starch differ
diff --git a/applications/bed/conversion/src/tests/psl/sample.expected.headered.starch b/applications/bed/conversion/src/tests/psl/sample.expected.headered.starch
new file mode 100644
index 0000000..3a9c06f
Binary files /dev/null and b/applications/bed/conversion/src/tests/psl/sample.expected.headered.starch differ
diff --git a/applications/bed/conversion/src/tests/psl/sample.expected.headerless.bed b/applications/bed/conversion/src/tests/psl/sample.expected.headerless.bed
new file mode 100644
index 0000000..e1d0642
--- /dev/null
+++ b/applications/bed/conversion/src/tests/psl/sample.expected.headerless.bed
@@ -0,0 +1,34 @@
+chr1 30571100 30571135 foo 50 - 35 0 0 0 0 0 0 0 15 50 249250621 1 35, 0, 30571100,
+chr1 69592160 69592195 foo 50 - 34 1 0 0 0 0 0 0 15 50 249250621 1 35, 0, 69592160,
+chr1 107200050 107200100 foo 50 + 50 0 0 0 0 0 0 0 0 50 249250621 1 50, 0, 107200050,
+chr11 12618347 12618389 foo 50 + 39 3 0 0 0 0 0 0 8 50 135006516 1 42, 8, 12618347,
+chr11 32933028 32933063 foo 50 + 35 0 0 0 1 1 0 0 8 44 135006516 2 4,31, 8,13, 32933028,32933032,
+chr11 80116421 80116457 foo 50 + 35 1 0 0 0 0 0 0 14 50 135006516 1 36, 14, 80116421,
+chr11 133952291 133952327 foo 50 + 34 2 0 0 0 0 0 0 14 50 135006516 1 36, 14, 133952291,
+chr13 99729482 99729523 foo 50 + 39 2 0 0 0 0 0 0 8 49 115169878 1 41, 8, 99729482,
+chr13 111391852 111391888 foo 50 + 34 2 0 0 0 0 0 0 14 50 115169878 1 36, 14, 111391852,
+chr16 8149657 8149694 foo 50 + 36 1 0 0 0 0 0 0 13 50 90354753 1 37, 13, 8149657,
+chr19 28603245 28603281 foo 50 - 34 2 0 0 0 0 0 0 14 50 59128983 1 36, 0, 28603245,
+chr2 44076681 44076716 foo 50 - 35 0 0 0 0 0 0 0 15 50 243199373 1 35, 0, 44076681,
+chr2 138092330 138092362 foo 50 + 31 1 0 0 0 0 0 0 18 50 243199373 1 32, 18, 138092330,
+chr2 159266272 159266302 foo 50 + 30 0 0 0 0 0 0 0 14 44 243199373 1 30, 14, 159266272,
+chr2 213333021 213333057 foo 50 + 35 1 0 0 0 0 0 0 14 50 243199373 1 36, 14, 213333021,
+chr2 225564373 225564408 foo 50 + 35 0 0 0 0 0 0 0 15 50 243199373 1 35, 15, 225564373,
+chr21 16689364 16689402 foo 50 + 37 1 0 0 0 0 0 0 12 50 48129895 1 38, 12, 16689364,
+chr3 42509214 42509250 foo 50 + 34 2 0 0 0 0 0 0 14 50 198022430 1 36, 14, 42509214,
+chr3 150940163 150940199 foo 50 + 35 1 0 0 0 0 0 0 14 50 198022430 1 36, 14, 150940163,
+chr3 151443333 151443371 foo 50 - 37 1 0 0 0 0 0 0 11 49 198022430 1 38, 1, 151443333,
+chr3 192870971 192871001 foo 50 + 30 0 0 0 0 0 0 0 20 50 198022430 1 30, 20, 192870971,
+chr4 21041798 21041834 foo 50 - 33 3 0 0 0 0 0 0 14 50 191154276 1 36, 0, 21041798,
+chr4 82259023 82259059 foo 50 + 35 1 0 0 0 0 0 0 14 50 191154276 1 36, 14, 82259023,
+chr5 119897315 119897346 foo 50 + 31 0 0 0 0 0 0 0 13 44 180915260 1 31, 13, 119897315,
+chr5 123254725 123254755 foo 50 + 30 0 0 0 0 0 0 0 14 44 180915260 1 30, 14, 123254725,
+chr6 9392527 9392561 foo 50 - 34 0 0 0 0 0 0 0 7 41 171115067 1 34, 9, 9392527,
+chr6 93161871 93161901 foo 50 + 30 0 0 0 0 0 0 0 14 44 171115067 1 30, 14, 93161871,
+chr6 127685756 127685786 foo 50 + 30 0 0 0 0 0 0 0 14 44 171115067 1 30, 14, 127685756,
+chr8 102334624 102334661 foo 50 - 36 1 0 0 0 0 0 0 13 50 146364022 1 37, 0, 102334624,
+chr8 131572122 131572159 foo 50 + 35 2 0 0 0 0 0 0 13 50 146364022 1 37, 13, 131572122,
+chrX 40535836 40535871 foo 50 + 35 0 0 0 0 0 0 0 15 50 155270560 1 35, 15, 40535836,
+chrX 43068135 43068170 foo 50 + 33 2 0 0 0 0 0 0 14 49 155270560 1 35, 14, 43068135,
+chrX 68019028 68019064 foo 50 + 34 2 0 0 0 0 0 0 14 50 155270560 1 36, 14, 68019028,
+chrX 101602211 101602248 foo 50 - 36 1 0 0 0 0 0 0 13 50 155270560 1 37, 0, 101602211,
diff --git a/applications/bed/conversion/src/tests/psl/sample.expected.headerless.gzip.starch b/applications/bed/conversion/src/tests/psl/sample.expected.headerless.gzip.starch
new file mode 100644
index 0000000..ccb74a4
Binary files /dev/null and b/applications/bed/conversion/src/tests/psl/sample.expected.headerless.gzip.starch differ
diff --git a/applications/bed/conversion/src/tests/psl/sample.expected.headerless.split.bed b/applications/bed/conversion/src/tests/psl/sample.expected.headerless.split.bed
new file mode 100644
index 0000000..aec10b0
--- /dev/null
+++ b/applications/bed/conversion/src/tests/psl/sample.expected.headerless.split.bed
@@ -0,0 +1,35 @@
+chr1 30571100 30571135 foo 50 - 35 0 0 0 0 0 0 0 15 50 249250621 1 35, 0, 30571100,
+chr1 69592160 69592195 foo 50 - 34 1 0 0 0 0 0 0 15 50 249250621 1 35, 0, 69592160,
+chr1 107200050 107200100 foo 50 + 50 0 0 0 0 0 0 0 0 50 249250621 1 50, 0, 107200050,
+chr11 12618347 12618389 foo 50 + 39 3 0 0 0 0 0 0 8 50 135006516 1 42, 8, 12618347,
+chr11 32933028 32933032 foo 50 + 35 0 0 0 1 1 0 0 8 44 135006516 2 4,31, 8,13, 32933028,32933032,
+chr11 32933032 32933063 foo 50 + 35 0 0 0 1 1 0 0 8 44 135006516 2 4,31, 8,13, 32933028,32933032,
+chr11 80116421 80116457 foo 50 + 35 1 0 0 0 0 0 0 14 50 135006516 1 36, 14, 80116421,
+chr11 133952291 133952327 foo 50 + 34 2 0 0 0 0 0 0 14 50 135006516 1 36, 14, 133952291,
+chr13 99729482 99729523 foo 50 + 39 2 0 0 0 0 0 0 8 49 115169878 1 41, 8, 99729482,
+chr13 111391852 111391888 foo 50 + 34 2 0 0 0 0 0 0 14 50 115169878 1 36, 14, 111391852,
+chr16 8149657 8149694 foo 50 + 36 1 0 0 0 0 0 0 13 50 90354753 1 37, 13, 8149657,
+chr19 28603245 28603281 foo 50 - 34 2 0 0 0 0 0 0 14 50 59128983 1 36, 0, 28603245,
+chr2 44076681 44076716 foo 50 - 35 0 0 0 0 0 0 0 15 50 243199373 1 35, 0, 44076681,
+chr2 138092330 138092362 foo 50 + 31 1 0 0 0 0 0 0 18 50 243199373 1 32, 18, 138092330,
+chr2 159266272 159266302 foo 50 + 30 0 0 0 0 0 0 0 14 44 243199373 1 30, 14, 159266272,
+chr2 213333021 213333057 foo 50 + 35 1 0 0 0 0 0 0 14 50 243199373 1 36, 14, 213333021,
+chr2 225564373 225564408 foo 50 + 35 0 0 0 0 0 0 0 15 50 243199373 1 35, 15, 225564373,
+chr21 16689364 16689402 foo 50 + 37 1 0 0 0 0 0 0 12 50 48129895 1 38, 12, 16689364,
+chr3 42509214 42509250 foo 50 + 34 2 0 0 0 0 0 0 14 50 198022430 1 36, 14, 42509214,
+chr3 150940163 150940199 foo 50 + 35 1 0 0 0 0 0 0 14 50 198022430 1 36, 14, 150940163,
+chr3 151443333 151443371 foo 50 - 37 1 0 0 0 0 0 0 11 49 198022430 1 38, 1, 151443333,
+chr3 192870971 192871001 foo 50 + 30 0 0 0 0 0 0 0 20 50 198022430 1 30, 20, 192870971,
+chr4 21041798 21041834 foo 50 - 33 3 0 0 0 0 0 0 14 50 191154276 1 36, 0, 21041798,
+chr4 82259023 82259059 foo 50 + 35 1 0 0 0 0 0 0 14 50 191154276 1 36, 14, 82259023,
+chr5 119897315 119897346 foo 50 + 31 0 0 0 0 0 0 0 13 44 180915260 1 31, 13, 119897315,
+chr5 123254725 123254755 foo 50 + 30 0 0 0 0 0 0 0 14 44 180915260 1 30, 14, 123254725,
+chr6 9392527 9392561 foo 50 - 34 0 0 0 0 0 0 0 7 41 171115067 1 34, 9, 9392527,
+chr6 93161871 93161901 foo 50 + 30 0 0 0 0 0 0 0 14 44 171115067 1 30, 14, 93161871,
+chr6 127685756 127685786 foo 50 + 30 0 0 0 0 0 0 0 14 44 171115067 1 30, 14, 127685756,
+chr8 102334624 102334661 foo 50 - 36 1 0 0 0 0 0 0 13 50 146364022 1 37, 0, 102334624,
+chr8 131572122 131572159 foo 50 + 35 2 0 0 0 0 0 0 13 50 146364022 1 37, 13, 131572122,
+chrX 40535836 40535871 foo 50 + 35 0 0 0 0 0 0 0 15 50 155270560 1 35, 15, 40535836,
+chrX 43068135 43068170 foo 50 + 33 2 0 0 0 0 0 0 14 49 155270560 1 35, 14, 43068135,
+chrX 68019028 68019064 foo 50 + 34 2 0 0 0 0 0 0 14 50 155270560 1 36, 14, 68019028,
+chrX 101602211 101602248 foo 50 - 36 1 0 0 0 0 0 0 13 50 155270560 1 37, 0, 101602211,
diff --git a/applications/bed/conversion/src/tests/psl/sample.expected.headerless.split.gzip.starch b/applications/bed/conversion/src/tests/psl/sample.expected.headerless.split.gzip.starch
new file mode 100644
index 0000000..8204c27
Binary files /dev/null and b/applications/bed/conversion/src/tests/psl/sample.expected.headerless.split.gzip.starch differ
diff --git a/applications/bed/conversion/src/tests/psl/sample.expected.headerless.split.starch b/applications/bed/conversion/src/tests/psl/sample.expected.headerless.split.starch
new file mode 100644
index 0000000..77a0837
Binary files /dev/null and b/applications/bed/conversion/src/tests/psl/sample.expected.headerless.split.starch differ
diff --git a/applications/bed/conversion/src/tests/psl/sample.expected.headerless.starch b/applications/bed/conversion/src/tests/psl/sample.expected.headerless.starch
new file mode 100644
index 0000000..0dd48bb
Binary files /dev/null and b/applications/bed/conversion/src/tests/psl/sample.expected.headerless.starch differ
diff --git a/applications/bed/conversion/src/tests/psl/sample.headered.psl b/applications/bed/conversion/src/tests/psl/sample.headered.psl
new file mode 100644
index 0000000..ee7f542
--- /dev/null
+++ b/applications/bed/conversion/src/tests/psl/sample.headered.psl
@@ -0,0 +1,39 @@
+psLayout version 3
+
+match mis- rep. N's Q gap Q gap T gap T gap strand Q Q Q Q T T T T block blockSizes qStarts tStarts
+ match match count bases count bases name size start end name size start end count
+---------------------------------------------------------------------------------------------------------------------------------------------------------------
+35 0 0 0 0 0 0 0 + foo 50 15 50 chrX 155270560 40535836 40535871 1 35, 15, 40535836,
+34 2 0 0 0 0 0 0 + foo 50 14 50 chrX 155270560 68019028 68019064 1 36, 14, 68019028,
+33 2 0 0 0 0 0 0 + foo 50 14 49 chrX 155270560 43068135 43068170 1 35, 14, 43068135,
+35 2 0 0 0 0 0 0 + foo 50 13 50 chr8 146364022 131572122 131572159 1 37, 13, 131572122,
+30 0 0 0 0 0 0 0 + foo 50 14 44 chr6 171115067 127685756 127685786 1 30, 14, 127685756,
+30 0 0 0 0 0 0 0 + foo 50 14 44 chr6 171115067 93161871 93161901 1 30, 14, 93161871,
+31 0 0 0 0 0 0 0 + foo 50 13 44 chr5 180915260 119897315 119897346 1 31, 13, 119897315,
+30 0 0 0 0 0 0 0 + foo 50 14 44 chr5 180915260 123254725 123254755 1 30, 14, 123254725,
+35 1 0 0 0 0 0 0 + foo 50 14 50 chr4 191154276 82259023 82259059 1 36, 14, 82259023,
+35 1 0 0 0 0 0 0 + foo 50 14 50 chr3 198022430 150940163 150940199 1 36, 14, 150940163,
+34 2 0 0 0 0 0 0 + foo 50 14 50 chr3 198022430 42509214 42509250 1 36, 14, 42509214,
+30 0 0 0 0 0 0 0 + foo 50 20 50 chr3 198022430 192870971 192871001 1 30, 20, 192870971,
+37 1 0 0 0 0 0 0 + foo 50 12 50 chr21 48129895 16689364 16689402 1 38, 12, 16689364,
+35 0 0 0 0 0 0 0 + foo 50 15 50 chr2 243199373 225564373 225564408 1 35, 15, 225564373,
+35 1 0 0 0 0 0 0 + foo 50 14 50 chr2 243199373 213333021 213333057 1 36, 14, 213333021,
+31 1 0 0 0 0 0 0 + foo 50 18 50 chr2 243199373 138092330 138092362 1 32, 18, 138092330,
+30 0 0 0 0 0 0 0 + foo 50 14 44 chr2 243199373 159266272 159266302 1 30, 14, 159266272,
+36 1 0 0 0 0 0 0 + foo 50 13 50 chr16 90354753 8149657 8149694 1 37, 13, 8149657,
+39 2 0 0 0 0 0 0 + foo 50 8 49 chr13 115169878 99729482 99729523 1 41, 8, 99729482,
+34 2 0 0 0 0 0 0 + foo 50 14 50 chr13 115169878 111391852 111391888 1 36, 14, 111391852,
+39 3 0 0 0 0 0 0 + foo 50 8 50 chr11 135006516 12618347 12618389 1 42, 8, 12618347,
+35 1 0 0 0 0 0 0 + foo 50 14 50 chr11 135006516 80116421 80116457 1 36, 14, 80116421,
+34 2 0 0 0 0 0 0 + foo 50 14 50 chr11 135006516 133952291 133952327 1 36, 14, 133952291,
+35 0 0 0 1 1 0 0 + foo 50 8 44 chr11 135006516 32933028 32933063 2 4,31, 8,13, 32933028,32933032,
+50 0 0 0 0 0 0 0 + foo 50 0 50 chr1 249250621 107200050 107200100 1 50, 0, 107200050,
+36 1 0 0 0 0 0 0 - foo 50 13 50 chrX 155270560 101602211 101602248 1 37, 0, 101602211,
+36 1 0 0 0 0 0 0 - foo 50 13 50 chr8 146364022 102334624 102334661 1 37, 0, 102334624,
+34 0 0 0 0 0 0 0 - foo 50 7 41 chr6 171115067 9392527 9392561 1 34, 9, 9392527,
+33 3 0 0 0 0 0 0 - foo 50 14 50 chr4 191154276 21041798 21041834 1 36, 0, 21041798,
+37 1 0 0 0 0 0 0 - foo 50 11 49 chr3 198022430 151443333 151443371 1 38, 1, 151443333,
+35 0 0 0 0 0 0 0 - foo 50 15 50 chr2 243199373 44076681 44076716 1 35, 0, 44076681,
+34 2 0 0 0 0 0 0 - foo 50 14 50 chr19 59128983 28603245 28603281 1 36, 0, 28603245,
+35 0 0 0 0 0 0 0 - foo 50 15 50 chr1 249250621 30571100 30571135 1 35, 0, 30571100,
+34 1 0 0 0 0 0 0 - foo 50 15 50 chr1 249250621 69592160 69592195 1 35, 0, 69592160,
diff --git a/applications/bed/conversion/src/tests/psl/sample.headerless.psl b/applications/bed/conversion/src/tests/psl/sample.headerless.psl
new file mode 100644
index 0000000..0337bb8
--- /dev/null
+++ b/applications/bed/conversion/src/tests/psl/sample.headerless.psl
@@ -0,0 +1,34 @@
+35 0 0 0 0 0 0 0 + foo 50 15 50 chrX 155270560 40535836 40535871 1 35, 15, 40535836,
+34 2 0 0 0 0 0 0 + foo 50 14 50 chrX 155270560 68019028 68019064 1 36, 14, 68019028,
+33 2 0 0 0 0 0 0 + foo 50 14 49 chrX 155270560 43068135 43068170 1 35, 14, 43068135,
+35 2 0 0 0 0 0 0 + foo 50 13 50 chr8 146364022 131572122 131572159 1 37, 13, 131572122,
+30 0 0 0 0 0 0 0 + foo 50 14 44 chr6 171115067 127685756 127685786 1 30, 14, 127685756,
+30 0 0 0 0 0 0 0 + foo 50 14 44 chr6 171115067 93161871 93161901 1 30, 14, 93161871,
+31 0 0 0 0 0 0 0 + foo 50 13 44 chr5 180915260 119897315 119897346 1 31, 13, 119897315,
+30 0 0 0 0 0 0 0 + foo 50 14 44 chr5 180915260 123254725 123254755 1 30, 14, 123254725,
+35 1 0 0 0 0 0 0 + foo 50 14 50 chr4 191154276 82259023 82259059 1 36, 14, 82259023,
+35 1 0 0 0 0 0 0 + foo 50 14 50 chr3 198022430 150940163 150940199 1 36, 14, 150940163,
+34 2 0 0 0 0 0 0 + foo 50 14 50 chr3 198022430 42509214 42509250 1 36, 14, 42509214,
+30 0 0 0 0 0 0 0 + foo 50 20 50 chr3 198022430 192870971 192871001 1 30, 20, 192870971,
+37 1 0 0 0 0 0 0 + foo 50 12 50 chr21 48129895 16689364 16689402 1 38, 12, 16689364,
+35 0 0 0 0 0 0 0 + foo 50 15 50 chr2 243199373 225564373 225564408 1 35, 15, 225564373,
+35 1 0 0 0 0 0 0 + foo 50 14 50 chr2 243199373 213333021 213333057 1 36, 14, 213333021,
+31 1 0 0 0 0 0 0 + foo 50 18 50 chr2 243199373 138092330 138092362 1 32, 18, 138092330,
+30 0 0 0 0 0 0 0 + foo 50 14 44 chr2 243199373 159266272 159266302 1 30, 14, 159266272,
+36 1 0 0 0 0 0 0 + foo 50 13 50 chr16 90354753 8149657 8149694 1 37, 13, 8149657,
+39 2 0 0 0 0 0 0 + foo 50 8 49 chr13 115169878 99729482 99729523 1 41, 8, 99729482,
+34 2 0 0 0 0 0 0 + foo 50 14 50 chr13 115169878 111391852 111391888 1 36, 14, 111391852,
+39 3 0 0 0 0 0 0 + foo 50 8 50 chr11 135006516 12618347 12618389 1 42, 8, 12618347,
+35 1 0 0 0 0 0 0 + foo 50 14 50 chr11 135006516 80116421 80116457 1 36, 14, 80116421,
+34 2 0 0 0 0 0 0 + foo 50 14 50 chr11 135006516 133952291 133952327 1 36, 14, 133952291,
+35 0 0 0 1 1 0 0 + foo 50 8 44 chr11 135006516 32933028 32933063 2 4,31, 8,13, 32933028,32933032,
+50 0 0 0 0 0 0 0 + foo 50 0 50 chr1 249250621 107200050 107200100 1 50, 0, 107200050,
+36 1 0 0 0 0 0 0 - foo 50 13 50 chrX 155270560 101602211 101602248 1 37, 0, 101602211,
+36 1 0 0 0 0 0 0 - foo 50 13 50 chr8 146364022 102334624 102334661 1 37, 0, 102334624,
+34 0 0 0 0 0 0 0 - foo 50 7 41 chr6 171115067 9392527 9392561 1 34, 9, 9392527,
+33 3 0 0 0 0 0 0 - foo 50 14 50 chr4 191154276 21041798 21041834 1 36, 0, 21041798,
+37 1 0 0 0 0 0 0 - foo 50 11 49 chr3 198022430 151443333 151443371 1 38, 1, 151443333,
+35 0 0 0 0 0 0 0 - foo 50 15 50 chr2 243199373 44076681 44076716 1 35, 0, 44076681,
+34 2 0 0 0 0 0 0 - foo 50 14 50 chr19 59128983 28603245 28603281 1 36, 0, 28603245,
+35 0 0 0 0 0 0 0 - foo 50 15 50 chr1 249250621 30571100 30571135 1 35, 0, 30571100,
+34 1 0 0 0 0 0 0 - foo 50 15 50 chr1 249250621 69592160 69592195 1 35, 0, 69592160,
diff --git a/applications/bed/conversion/src/tests/psl/test.sh b/applications/bed/conversion/src/tests/psl/test.sh
new file mode 100755
index 0000000..4e6ec9b
--- /dev/null
+++ b/applications/bed/conversion/src/tests/psl/test.sh
@@ -0,0 +1,79 @@
+#!/bin/bash
+
+bin_dir="/usr/local/bin"
+psl2bed_bin="${bin_dir}/psl2bed"
+psl2starch_bin="${bin_dir}/psl2starch"
+
+echo "[psl2bed] testing headered output..."
+sample_psl_fn="sample.headered.psl"
+expected_sorted_bed_fn="sample.expected.headered.bed"
+observed_sorted_bed_fn="$(mktemp /tmp/XXXXXX)"
+${psl2bed_bin} < ${sample_psl_fn} > ${observed_sorted_bed_fn} 2> /dev/null
+diff -q ${expected_sorted_bed_fn} ${observed_sorted_bed_fn}
+rm -f ${observed_sorted_bed_fn}
+
+echo "[psl2bed] testing headerless output..."
+sample_psl_fn="sample.headerless.psl"
+expected_sorted_bed_fn="sample.expected.headerless.bed"
+observed_sorted_bed_fn="$(mktemp /tmp/XXXXXX)"
+${psl2bed_bin} < ${sample_psl_fn} > ${observed_sorted_bed_fn} 2> /dev/null
+diff -q ${expected_sorted_bed_fn} ${observed_sorted_bed_fn}
+rm -f ${observed_sorted_bed_fn}
+
+echo "[psl2bed] testing headerless split output..."
+sample_psl_fn="sample.headerless.psl"
+expected_sorted_bed_fn="sample.expected.headerless.split.bed"
+observed_sorted_bed_fn="$(mktemp /tmp/XXXXXX)"
+${psl2bed_bin} --split < ${sample_psl_fn} > ${observed_sorted_bed_fn} 2> /dev/null
+diff -q ${expected_sorted_bed_fn} ${observed_sorted_bed_fn}
+rm -f ${observed_sorted_bed_fn}
+
+echo "[psl2bed] testing headered starch (bzip2) output..."
+sample_psl_fn="sample.headered.psl"
+expected_starch_fn="sample.expected.headered.starch"
+observed_starch_fn="$(mktemp /tmp/XXXXXX)"
+${psl2starch_bin} < ${sample_psl_fn} > ${observed_starch_fn} 2> /dev/null
+diff -q <(unstarch ${expected_starch_fn}) <(unstarch ${observed_starch_fn})
+rm -f ${observed_starch_fn}
+
+echo "[psl2bed] testing headered starch (gzip) output..."
+sample_psl_fn="sample.headered.psl"
+expected_starch_fn="sample.expected.headered.gzip.starch"
+observed_starch_fn="$(mktemp /tmp/XXXXXX)"
+${psl2starch_bin} --starch-gzip < ${sample_psl_fn} > ${observed_starch_fn} 2> /dev/null
+diff -q <(unstarch ${expected_starch_fn}) <(unstarch ${observed_starch_fn})
+rm -f ${observed_starch_fn}
+
+echo "[psl2bed] testing headerless starch (bzip2) output..."
+sample_psl_fn="sample.headerless.psl"
+expected_starch_fn="sample.expected.headerless.starch"
+observed_starch_fn="$(mktemp /tmp/XXXXXX)"
+${psl2starch_bin} < ${sample_psl_fn} > ${observed_starch_fn} 2> /dev/null
+diff -q <(unstarch ${expected_starch_fn}) <(unstarch ${observed_starch_fn})
+rm -f ${observed_starch_fn}
+
+echo "[psl2bed] testing headerless split starch (bzip2) output..."
+sample_psl_fn="sample.headerless.psl"
+expected_starch_fn="sample.expected.headerless.split.starch"
+observed_starch_fn="$(mktemp /tmp/XXXXXX)"
+${psl2starch_bin} --split < ${sample_psl_fn} > ${observed_starch_fn} 2> /dev/null
+diff -q <(unstarch ${expected_starch_fn}) <(unstarch ${observed_starch_fn})
+rm -f ${observed_starch_fn}
+
+echo "[psl2bed] testing headerless starch (gzip) output..."
+sample_psl_fn="sample.headerless.psl"
+expected_starch_fn="sample.expected.headerless.gzip.starch"
+observed_starch_fn="$(mktemp /tmp/XXXXXX)"
+${psl2starch_bin} --starch-gzip < ${sample_psl_fn} > ${observed_starch_fn} 2> /dev/null
+diff -q <(unstarch ${expected_starch_fn}) <(unstarch ${observed_starch_fn})
+rm -f ${observed_starch_fn}
+
+echo "[psl2bed] testing headerless split starch (gzip) output..."
+sample_psl_fn="sample.headerless.psl"
+expected_starch_fn="sample.expected.headerless.split.gzip.starch"
+observed_starch_fn="$(mktemp /tmp/XXXXXX)"
+${psl2starch_bin} --starch-gzip --split < ${sample_psl_fn} > ${observed_starch_fn} 2> /dev/null
+diff -q <(unstarch ${expected_starch_fn}) <(unstarch ${observed_starch_fn})
+rm -f ${observed_starch_fn}
+
+echo "[psl2bed] tests complete!"
diff --git a/applications/bed/conversion/src/tests/rmsk/makefile b/applications/bed/conversion/src/tests/rmsk/makefile
new file mode 100644
index 0000000..8c27234
--- /dev/null
+++ b/applications/bed/conversion/src/tests/rmsk/makefile
@@ -0,0 +1,4 @@
+all: test
+
+test:
+ @./test.sh
diff --git a/applications/bed/conversion/src/tests/rmsk/sample.expected.bed b/applications/bed/conversion/src/tests/rmsk/sample.expected.bed
new file mode 100644
index 0000000..68fa374
--- /dev/null
+++ b/applications/bed/conversion/src/tests/rmsk/sample.expected.bed
@@ -0,0 +1,7 @@
+HSU08988 6562 6781 MER7A 1320 - 15.6 6.2 0.0 (22462) DNA/MER2_type (0) 337 104 20
+HSU08988 6781 7718 Tigger1 12279 - 10.5 2.1 1.7 (21525) DNA/MER2_type (0) 2418 1486 19
+HSU08988 7718 8022 AluSx 1769 - 12.9 6.6 1.9 (21221) SINE/Alu (0) 317 1 17
+HSU08988 8022 8694 Tigger1 12279 - 10.5 2.1 1.7 (20549) DNA/MER2_type (932) 1486 818 19
+HSU08988 8694 9000 AluSg 2335 - 11.1 0.3 0.7 (20243) SINE/Alu (5) 305 1 18
+HSU08988 9000 9695 Tigger1 12279 - 10.5 2.1 1.7 (19548) DNA/MER2_type (1600) 818 2 19
+HSU08988 9695 9816 MER7A 721 - 21.2 1.4 0.0 (19427) DNA/MER2_type (224) 122 2 20
diff --git a/applications/bed/conversion/src/tests/rmsk/sample.expected.gzip.starch b/applications/bed/conversion/src/tests/rmsk/sample.expected.gzip.starch
new file mode 100644
index 0000000..6d92f5d
--- /dev/null
+++ b/applications/bed/conversion/src/tests/rmsk/sample.expected.gzip.starch
@@ -0,0 +1,26 @@
+�\��x��?K�@�z�I.�{3o�o�
+
��쭎 XQ�o���B�p��
���Y`m�)C
OOes�܉��%��3F�?OGN���{��AGq/b:,�ˠ��:��wJ�A� �"YB�/ѪX�Y�Y\#����˗X�kB#���e`�\
Χ#�6����a��%�b�I���ʨݳR�/e��^�XG���J��)��:����M���bY����b0&mK*0:`����ZD٥ps,0�;�h�bg{
+ "archive": {
+ "type": "starch",
+ "customUCSCHeaders": false,
+ "creationTimestamp": "2015-01-27T23:02:43-0800",
+ "version": {
+ "major": 2,
+ "minor": 1,
+ "revision": 0
+ },
+ "compressionFormat": 1
+ },
+ "streams": [
+ {
+ "chromosome": "HSU08988",
+ "filename": "HSU08988.pid43647.Papillion.local",
+ "size": "248",
+ "uncompressedLineCount": 7,
+ "nonUniqueBaseCount": 3254,
+ "uniqueBaseCount": 3254,
+ "duplicateElementExists": false,
+ "nestedElementExists": false
+ }
+ ]
+}00000000000000000252jSOCietGdcfV/KyN+EMebW4T4AE=
diff --git a/applications/bed/conversion/src/tests/rmsk/sample.expected.starch b/applications/bed/conversion/src/tests/rmsk/sample.expected.starch
new file mode 100644
index 0000000..c7fceef
Binary files /dev/null and b/applications/bed/conversion/src/tests/rmsk/sample.expected.starch differ
diff --git a/applications/bed/conversion/src/tests/rmsk/sample.out b/applications/bed/conversion/src/tests/rmsk/sample.out
new file mode 100644
index 0000000..1275cbc
--- /dev/null
+++ b/applications/bed/conversion/src/tests/rmsk/sample.out
@@ -0,0 +1,10 @@
+ SW perc perc perc query position in query matching repeat position in repeat
+score div. del. ins. sequence begin end (left) repeat class/family begin end (left) ID
+...
+ 1320 15.6 6.2 0.0 HSU08988 6563 6781 (22462) C MER7A DNA/MER2_type (0) 337 104 20
+12279 10.5 2.1 1.7 HSU08988 6782 7718 (21525) C Tigger1 DNA/MER2_type (0) 2418 1486 19
+ 1769 12.9 6.6 1.9 HSU08988 7719 8022 (21221) C AluSx SINE/Alu (0) 317 1 17
+12279 10.5 2.1 1.7 HSU08988 8023 8694 (20549) C Tigger1 DNA/MER2_type (932) 1486 818 19
+ 2335 11.1 0.3 0.7 HSU08988 8695 9000 (20243) C AluSg SINE/Alu (5) 305 1 18
+12279 10.5 2.1 1.7 HSU08988 9001 9695 (19548) C Tigger1 DNA/MER2_type (1600) 818 2 19
+ 721 21.2 1.4 0.0 HSU08988 9696 9816 (19427) C MER7A DNA/MER2_type (224) 122 2 20
diff --git a/applications/bed/conversion/src/tests/rmsk/sample2.expected.bed b/applications/bed/conversion/src/tests/rmsk/sample2.expected.bed
new file mode 100644
index 0000000..2f51322
--- /dev/null
+++ b/applications/bed/conversion/src/tests/rmsk/sample2.expected.bed
@@ -0,0 +1,25 @@
+NT_001227 85630 87837 L1PA16 7120 + 19.9 0.6 0.3 (19816) LINE/L1 1 1885 (4964) 123
+NT_001227 87838 88241 MSTA 2503 + 14.9 6.5 0.7 (19412) LTR/MaLR 1 428 (0) 100
+NT_001227 88241 88388 MSTA-int 867 + 12.9 2.7 0.0 (19265) LTR/MaLR 1 151 (1500) 100 *
+NT_001227 88385 89342 MSTA-int 5219 + 19.5 2.9 0.6 (18311) LTR/MaLR 629 1607 (44) 100
+NT_001227 89361 90773 L1PA3 8003 - 3.5 0.8 0.0 (16880) LINE/L1 (0) 6155 4745 103
+NT_001227 90794 94059 L1PA3 7677 - 3.5 0.0 0.0 (13594) LINE/L1 (0) 6155 2872 104
+NT_001227 94059 95127 MER11C 9050 - 6.5 0.4 0.1 (12526) LTR/ERVK (0) 1071 1 106
+NT_001227 95127 97101 L1PA3 7677 - 3.5 0.0 0.0 (10552) LINE/L1 (3282) 2873 900 104
+NT_001227 97096 97865 L1PA3 5619 - 7.8 0.3 0.9 (9788) LINE/L1 (5370) 776 13 104 *
+NT_001227 97875 97934 MSTA-int 320 + 16.9 0.0 1.7 (9719) LTR/MaLR 1594 1651 (0) 100
+NT_001227 97934 98255 MSTA 1475 + 19.0 4.8 5.6 (9398) LTR/MaLR 1 323 (48) 100
+NT_001227 98255 98629 THE1C 2322 + 14.4 0.8 1.6 (9024) LTR/MaLR 1 371 (0) 112
+NT_001227 98629 100221 THE1C-int 10051 + 12.9 3.5 4.3 (7432) LTR/MaLR 1 1580 (0) 112
+NT_001227 100223 100598 THE1C 2359 + 15.7 0.3 1.9 (7055) LTR/MaLR 3 371 (0) 112
+NT_001227 100598 100646 MSTA 1475 + 19.0 4.8 5.6 (7007) LTR/MaLR 323 371 (0) 100
+NT_001227 100661 100955 MSTA 1360 + 19.4 8.2 1.7 (6698) LTR/MaLR 114 426 (0) 113
+NT_001227 100967 101243 L1PA16 11892 + 24.7 1.9 2.0 (6410) LINE/L1 1881 2143 (4706) 123
+NT_001227 101243 101563 L1PA12 2062 - 11.9 8.4 0.0 (6090) LINE/L1 (10) 6164 5818 116
+NT_001227 101563 105425 L1PA16 11892 + 24.7 1.9 2.0 (2228) LINE/L1 2137 5989 (860) 123
+NT_001227 105435 105469 (TAA)n 257 + 0.0 0.0 2.9 (2184) Simple 2 34 (0) 118
+NT_001227 105469 105893 L1PA16 2189 + 18.2 0.2 0.7 (1760) LINE/L1 6062 6483 (386) 123
+NT_001227 105895 105928 (TA)n 255 + 6.1 0.0 0.0 (1725) Simple 1 33 (0) 120 *
+NT_001227 105927 105968 (GA)n 369 + 0.0 0.0 0.0 (1685) Simple 2 42 (0) 121
+NT_001227 105970 106066 (TA)n 305 + 18.8 0.0 1.0 (1587) Simple 2 96 (0) 122
+NT_001227 106067 106449 L1PA16 1589 + 21.2 1.6 1.1 (1204) LINE/L1 6485 6868 (1) 123
diff --git a/applications/bed/conversion/src/tests/rmsk/sample2.expected.gzip.starch b/applications/bed/conversion/src/tests/rmsk/sample2.expected.gzip.starch
new file mode 100644
index 0000000..e990ba1
Binary files /dev/null and b/applications/bed/conversion/src/tests/rmsk/sample2.expected.gzip.starch differ
diff --git a/applications/bed/conversion/src/tests/rmsk/sample2.expected.starch b/applications/bed/conversion/src/tests/rmsk/sample2.expected.starch
new file mode 100644
index 0000000..54a6bbe
Binary files /dev/null and b/applications/bed/conversion/src/tests/rmsk/sample2.expected.starch differ
diff --git a/applications/bed/conversion/src/tests/rmsk/sample2.out b/applications/bed/conversion/src/tests/rmsk/sample2.out
new file mode 100644
index 0000000..63ff2ec
--- /dev/null
+++ b/applications/bed/conversion/src/tests/rmsk/sample2.out
@@ -0,0 +1,28 @@
+ SW perc perc perc query position in query matching repeat position in repeat
+score div. del. ins. sequence begin end (left) repeat class/family begin end (left) ID
+...
+ 7120 19.9 0.6 0.3 NT_001227 85631 87837 (19816) + L1PA16 LINE/L1 1 1885 (4964) 123
+ 2503 14.9 6.5 0.7 NT_001227 87839 88241 (19412) + MSTA LTR/MaLR 1 428 (0) 100
+ 867 12.9 2.7 0.0 NT_001227 88242 88388 (19265) + MSTA-int LTR/MaLR 1 151 (1500) 100 *
+ 5219 19.5 2.9 0.6 NT_001227 88386 89342 (18311) + MSTA-int LTR/MaLR 629 1607 (44) 100
+ 8003 3.5 0.8 0.0 NT_001227 89362 90773 (16880) C L1PA3 LINE/L1 (0) 6155 4745 103
+ 7677 3.5 0.0 0.0 NT_001227 90795 94059 (13594) C L1PA3 LINE/L1 (0) 6155 2872 104
+ 9050 6.5 0.4 0.1 NT_001227 94060 95127 (12526) C MER11C LTR/ERVK (0) 1071 1 106
+ 7677 3.5 0.0 0.0 NT_001227 95128 97101 (10552) C L1PA3 LINE/L1 (3282) 2873 900 104
+ 5619 7.8 0.3 0.9 NT_001227 97097 97865 (9788) C L1PA3 LINE/L1 (5370) 776 13 104 *
+ 320 16.9 0.0 1.7 NT_001227 97876 97934 (9719) + MSTA-int LTR/MaLR 1594 1651 (0) 100
+ 1475 19.0 4.8 5.6 NT_001227 97935 98255 (9398) + MSTA LTR/MaLR 1 323 (48) 100
+ 2322 14.4 0.8 1.6 NT_001227 98256 98629 (9024) + THE1C LTR/MaLR 1 371 (0) 112
+10051 12.9 3.5 4.3 NT_001227 98630 100221 (7432) + THE1C-int LTR/MaLR 1 1580 (0) 112
+ 2359 15.7 0.3 1.9 NT_001227 100224 100598 (7055) + THE1C LTR/MaLR 3 371 (0) 112
+ 1475 19.0 4.8 5.6 NT_001227 100599 100646 (7007) + MSTA LTR/MaLR 323 371 (0) 100
+ 1360 19.4 8.2 1.7 NT_001227 100662 100955 (6698) + MSTA LTR/MaLR 114 426 (0) 113
+11892 24.7 1.9 2.0 NT_001227 100968 101243 (6410) + L1PA16 LINE/L1 1881 2143 (4706) 123
+ 2062 11.9 8.4 0.0 NT_001227 101244 101563 (6090) C L1PA12 LINE/L1 (10) 6164 5818 116
+11892 24.7 1.9 2.0 NT_001227 101564 105425 (2228) + L1PA16 LINE/L1 2137 5989 (860) 123
+ 257 0.0 0.0 2.9 NT_001227 105436 105469 (2184) + (TAA)n Simple 2 34 (0) 118
+ 2189 18.2 0.2 0.7 NT_001227 105470 105893 (1760) + L1PA16 LINE/L1 6062 6483 (386) 123
+ 255 6.1 0.0 0.0 NT_001227 105896 105928 (1725) + (TA)n Simple 1 33 (0) 120 *
+ 369 0.0 0.0 0.0 NT_001227 105928 105968 (1685) + (GA)n Simple 2 42 (0) 121
+ 305 18.8 0.0 1.0 NT_001227 105971 106066 (1587) + (TA)n Simple 2 96 (0) 122
+ 1589 21.2 1.6 1.1 NT_001227 106068 106449 (1204) + L1PA16 LINE/L1 6485 6868 (1) 123
diff --git a/applications/bed/conversion/src/tests/rmsk/test.sh b/applications/bed/conversion/src/tests/rmsk/test.sh
new file mode 100755
index 0000000..c9d4a43
--- /dev/null
+++ b/applications/bed/conversion/src/tests/rmsk/test.sh
@@ -0,0 +1,55 @@
+#!/bin/bash
+
+bin_dir="/usr/local/bin"
+rmsk2bed_bin="${bin_dir}/rmsk2bed"
+rmsk2starch_bin="${bin_dir}/rmsk2starch"
+
+echo "[rmsk2bed] testing sorted output..."
+sample_rmsk_fn="sample.out"
+expected_sorted_bed_fn="sample.expected.bed"
+observed_sorted_bed_fn="$(mktemp /tmp/XXXXXX)"
+${rmsk2bed_bin} < ${sample_rmsk_fn} > ${observed_sorted_bed_fn} 2> /dev/null
+diff -q ${expected_sorted_bed_fn} ${observed_sorted_bed_fn}
+rm -f ${observed_sorted_bed_fn}
+
+echo "[rmsk2bed] testing starch (bzip2) output..."
+sample_rmsk_fn="sample.out"
+expected_starch_fn="sample.expected.starch"
+observed_starch_fn="$(mktemp /tmp/XXXXXX)"
+${rmsk2starch_bin} < ${sample_rmsk_fn} > ${observed_starch_fn} 2> /dev/null
+diff -q <(unstarch ${expected_starch_fn}) <(unstarch ${observed_starch_fn})
+rm -f ${observed_starch_fn}
+
+echo "[rmsk2bed] testing starch (gzip) output..."
+sample_rmsk_fn="sample.out"
+expected_starch_fn="sample.expected.gzip.starch"
+observed_starch_fn="$(mktemp /tmp/XXXXXX)"
+${rmsk2starch_bin} --starch-gzip < ${sample_rmsk_fn} > ${observed_starch_fn} 2> /dev/null
+diff -q <(unstarch ${expected_starch_fn}) <(unstarch ${observed_starch_fn})
+rm -f ${observed_starch_fn}
+
+echo "[rmsk2bed] testing sorted output (2)..."
+sample_rmsk_fn="sample2.out"
+expected_sorted_bed_fn="sample2.expected.bed"
+observed_sorted_bed_fn="$(mktemp /tmp/XXXXXX)"
+${rmsk2bed_bin} < ${sample_rmsk_fn} > ${observed_sorted_bed_fn} 2> /dev/null
+diff -q ${expected_sorted_bed_fn} ${observed_sorted_bed_fn}
+rm -f ${observed_sorted_bed_fn}
+
+echo "[rmsk2bed] testing starch (bzip2) output (2)..."
+sample_rmsk_fn="sample2.out"
+expected_starch_fn="sample2.expected.starch"
+observed_starch_fn="$(mktemp /tmp/XXXXXX)"
+${rmsk2starch_bin} < ${sample_rmsk_fn} > ${observed_starch_fn} 2> /dev/null
+diff -q <(unstarch ${expected_starch_fn}) <(unstarch ${observed_starch_fn})
+rm -f ${observed_starch_fn}
+
+echo "[rmsk2bed] testing starch (gzip) output (2)..."
+sample_rmsk_fn="sample2.out"
+expected_starch_fn="sample2.expected.gzip.starch"
+observed_starch_fn="$(mktemp /tmp/XXXXXX)"
+${rmsk2starch_bin} --starch-gzip < ${sample_rmsk_fn} > ${observed_starch_fn} 2> /dev/null
+diff -q <(unstarch ${expected_starch_fn}) <(unstarch ${observed_starch_fn})
+rm -f ${observed_starch_fn}
+
+echo "[rmsk2bed] tests complete!"
diff --git a/applications/bed/conversion/src/tests/sam/makefile b/applications/bed/conversion/src/tests/sam/makefile
new file mode 100644
index 0000000..8c27234
--- /dev/null
+++ b/applications/bed/conversion/src/tests/sam/makefile
@@ -0,0 +1,4 @@
+all: test
+
+test:
+ @./test.sh
diff --git a/applications/bed/conversion/src/tests/sam/sample.expected.bed b/applications/bed/conversion/src/tests/sam/sample.expected.bed
new file mode 100644
index 0000000..e1b965c
--- /dev/null
+++ b/applications/bed/conversion/src/tests/sam/sample.expected.bed
@@ -0,0 +1,9 @@
+chr1 110753024 110753038 ctcf-variant002 255 - 16 14M * 0 0 ATGCCACCTCGCGC IIIIIIIIIIIIII XA:i:0 MD:Z:14 NM:i:0
+chr11 432658 432672 ctcf-variant001 255 - 16 14M * 0 0 ATGCCACCTCGCGA IIIIIIIIIIIIII XA:i:1 MD:Z:5G8 NM:i:1
+chr12 125038759 125038773 ctcf-variant001 255 + 0 14M * 0 0 TCGCGAGGTGGCAT IIIIIIIIIIIIII XA:i:1 MD:Z:0C13 NM:i:1
+chr15 80472438 80472452 ctcf-variant000 255 - 16 14M * 0 0 ATGCCACCTCGCGT IIIIIIIIIIIIII XA:i:1 MD:Z:2T11 NM:i:1
+chr15 99416251 99416265 ctcf-variant000 255 - 16 14M * 0 0 ATGCCACCTCGCGT IIIIIIIIIIIIII XA:i:1 MD:Z:4T9 NM:i:1
+chr16 49891427 49891441 ctcf-variant001 255 - 16 14M * 0 0 ATGCCACCTCGCGA IIIIIIIIIIIIII XA:i:1 MD:Z:0T13 NM:i:1
+chr5 177019527 177019541 ctcf-variant002 255 - 16 14M * 0 0 ATGCCACCTCGCGC IIIIIIIIIIIIII XA:i:0 MD:Z:14 NM:i:0
+chr5 178376198 178376212 ctcf-variant002 255 - 16 14M * 0 0 ATGCCACCTCGCGC IIIIIIIIIIIIII XA:i:1 MD:Z:0C13 NM:i:1
+chr7 97801278 97801292 ctcf-variant000 255 - 16 14M * 0 0 ATGCCACCTCGCGT IIIIIIIIIIIIII XA:i:1 MD:Z:3A10 NM:i:1
diff --git a/applications/bed/conversion/src/tests/sam/sample.expected.starch b/applications/bed/conversion/src/tests/sam/sample.expected.starch
new file mode 100644
index 0000000..5678650
Binary files /dev/null and b/applications/bed/conversion/src/tests/sam/sample.expected.starch differ
diff --git a/applications/bed/conversion/src/tests/sam/sample.sam b/applications/bed/conversion/src/tests/sam/sample.sam
new file mode 100644
index 0000000..9793764
--- /dev/null
+++ b/applications/bed/conversion/src/tests/sam/sample.sam
@@ -0,0 +1,36 @@
+ at HD VN:1.0 SO:unsorted
+ at SQ SN:chr1 LN:249250621
+ at SQ SN:chr10 LN:135534747
+ at SQ SN:chr11 LN:135006516
+ at SQ SN:chr12 LN:133851895
+ at SQ SN:chr13 LN:115169878
+ at SQ SN:chr14 LN:107349540
+ at SQ SN:chr15 LN:102531392
+ at SQ SN:chr16 LN:90354753
+ at SQ SN:chr17 LN:81195210
+ at SQ SN:chr18 LN:78077248
+ at SQ SN:chr19 LN:59128983
+ at SQ SN:chr2 LN:243199373
+ at SQ SN:chr20 LN:63025520
+ at SQ SN:chr21 LN:48129895
+ at SQ SN:chr22 LN:51304566
+ at SQ SN:chr3 LN:198022430
+ at SQ SN:chr4 LN:191154276
+ at SQ SN:chr5 LN:180915260
+ at SQ SN:chr6 LN:171115067
+ at SQ SN:chr7 LN:159138663
+ at SQ SN:chr8 LN:146364022
+ at SQ SN:chr9 LN:141213431
+ at SQ SN:chrM LN:16571
+ at SQ SN:chrX LN:155270560
+ at SQ SN:chrY LN:59373566
+ at PG ID:Bowtie VN:0.12.9 CL:"./bowtie -k 3 -v 1 hg19 -S -f test.fa"
+ctcf-variant000 16 chr15 80472439 255 14M * 0 0 ATGCCACCTCGCGT IIIIIIIIIIIIII XA:i:1 MD:Z:2T11 NM:i:1
+ctcf-variant000 16 chr7 97801279 255 14M * 0 0 ATGCCACCTCGCGT IIIIIIIIIIIIII XA:i:1 MD:Z:3A10 NM:i:1
+ctcf-variant000 16 chr15 99416252 255 14M * 0 0 ATGCCACCTCGCGT IIIIIIIIIIIIII XA:i:1 MD:Z:4T9 NM:i:1
+ctcf-variant001 16 chr16 49891428 255 14M * 0 0 ATGCCACCTCGCGA IIIIIIIIIIIIII XA:i:1 MD:Z:0T13 NM:i:1
+ctcf-variant001 16 chr11 432659 255 14M * 0 0 ATGCCACCTCGCGA IIIIIIIIIIIIII XA:i:1 MD:Z:5G8 NM:i:1
+ctcf-variant001 0 chr12 125038760 255 14M * 0 0 TCGCGAGGTGGCAT IIIIIIIIIIIIII XA:i:1 MD:Z:0C13 NM:i:1
+ctcf-variant002 16 chr1 110753025 255 14M * 0 0 ATGCCACCTCGCGC IIIIIIIIIIIIII XA:i:0 MD:Z:14 NM:i:0
+ctcf-variant002 16 chr5 177019528 255 14M * 0 0 ATGCCACCTCGCGC IIIIIIIIIIIIII XA:i:0 MD:Z:14 NM:i:0
+ctcf-variant002 16 chr5 178376199 255 14M * 0 0 ATGCCACCTCGCGC IIIIIIIIIIIIII XA:i:1 MD:Z:0C13 NM:i:1
diff --git a/applications/bed/conversion/src/tests/sam/split.expected.bed b/applications/bed/conversion/src/tests/sam/split.expected.bed
new file mode 100644
index 0000000..eee4956
--- /dev/null
+++ b/applications/bed/conversion/src/tests/sam/split.expected.bed
@@ -0,0 +1,3 @@
+chr19 7695544 7695545 NS500372:42:H2JWJBGXX:2:12207:2947:19765/1 50 - 81 1M163N24M626N11M = 7694707 -1663 GAGGGAGCTGTGGCCACCTGAGAAGCTTCAAGAGAT FFFFFFFFFF<FFFFFFFFFFFFFFF.7FFFAAAA< XA:i:0 MD:Z:36 PG:Z:MarkDuplicates NH:i:1 NM:i:0 XS:A:+
+chr19 7695708 7695732 NS500372:42:H2JWJBGXX:2:12207:2947:19765/2 50 - 81 1M163N24M626N11M = 7694707 -1663 GAGGGAGCTGTGGCCACCTGAGAAGCTTCAAGAGAT FFFFFFFFFF<FFFFFFFFFFFFFFF.7FFFAAAA< XA:i:0 MD:Z:36 PG:Z:MarkDuplicates NH:i:1 NM:i:0 XS:A:+
+chr19 7696358 7696369 NS500372:42:H2JWJBGXX:2:12207:2947:19765/3 50 - 81 1M163N24M626N11M = 7694707 -1663 GAGGGAGCTGTGGCCACCTGAGAAGCTTCAAGAGAT FFFFFFFFFF<FFFFFFFFFFFFFFF.7FFFAAAA< XA:i:0 MD:Z:36 PG:Z:MarkDuplicates NH:i:1 NM:i:0 XS:A:+
diff --git a/applications/bed/conversion/src/tests/sam/split.sam b/applications/bed/conversion/src/tests/sam/split.sam
new file mode 100644
index 0000000..8cd3d85
--- /dev/null
+++ b/applications/bed/conversion/src/tests/sam/split.sam
@@ -0,0 +1,29 @@
+ at HD VN:1.4 SO:coordinate
+ at SQ SN:chr1 LN:249250621
+ at SQ SN:chr10 LN:135534747
+ at SQ SN:chr11 LN:135006516
+ at SQ SN:chr12 LN:133851895
+ at SQ SN:chr13 LN:115169878
+ at SQ SN:chr14 LN:107349540
+ at SQ SN:chr15 LN:102531392
+ at SQ SN:chr16 LN:90354753
+ at SQ SN:chr17 LN:81195210
+ at SQ SN:chr18 LN:78077248
+ at SQ SN:chr19 LN:59128983
+ at SQ SN:chr2 LN:243199373
+ at SQ SN:chr20 LN:63025520
+ at SQ SN:chr21 LN:48129895
+ at SQ SN:chr22 LN:51304566
+ at SQ SN:chr3 LN:198022430
+ at SQ SN:chr4 LN:191154276
+ at SQ SN:chr5 LN:180915260
+ at SQ SN:chr6 LN:171115067
+ at SQ SN:chr7 LN:159138663
+ at SQ SN:chr8 LN:146364022
+ at SQ SN:chr9 LN:141213431
+ at SQ SN:chrM LN:16571
+ at SQ SN:chrX LN:155270560
+ at SQ SN:chrY LN:59373566
+ at PG ID:TopHat VN:2.0.13 CL:/net/lebowski/vol1/sw/tophat/2.0.13/tophat --GTF /home/nelsonjs/code/stampipes/data/tophat/refseq/hg19/genes.gtf -r 200 --mate-std-dev 300 --library-type fr-unstranded -p 8 -o DS27050_TCCGGAGA-TCAGAGCC_L001_tophat_001 /home/nelsonjs/code/stampipes/data/tophat/refseq/hg19/hg19 trimmed/DS27050_TCCGGAGA-TCAGAGCC_L001_R1_001.fastq.gz trimmed/DS27050_TCCGGAGA-TCAGAGCC_L001_R2_001.fastq.gz
+ at PG ID:MarkDuplicates PN:MarkDuplicates VN:1.118(2329276ea55d31ab6b19bab55b9ee7b51e4a446e_1406559781) CL:picard.sam.MarkDuplicates INPUT=[DS27050_TCCGGAGA-TCAGAGCC_L001.tophat_merged.bam] OUTPUT=DS27050_TCCGGAGA-TCAGAGCC_L001.hg19.bam METRICS_FILE=DS27050_TCCGGAGA-TCAGAGCC_L001.spotdups.txt REMOVE_DUPLICATES=false ASSUME_SORTED=true PROGRAM_RECORD_ID=MarkDuplicates PROGRAM_GROUP_NAME=MarkDuplicates MAX_SEQUENCES_FOR_DISK_READ_ENDS_MAP=50000 MAX_FILE_HANDLES_FOR_READ_ENDS_MAP=8000 SORT [...]
+NS500372:42:H2JWJBGXX:2:12207:2947:19765 81 chr19 7695545 50 1M163N24M626N11M = 7694707 -1663 GAGGGAGCTGTGGCCACCTGAGAAGCTTCAAGAGAT FFFFFFFFFF<FFFFFFFFFFFFFFF.7FFFAAAA< XA:i:0 MD:Z:36 PG:Z:MarkDuplicates NH:i:1 NM:i:0 XS:A:+
diff --git a/applications/bed/conversion/src/tests/sam/test.sh b/applications/bed/conversion/src/tests/sam/test.sh
new file mode 100755
index 0000000..5983394
--- /dev/null
+++ b/applications/bed/conversion/src/tests/sam/test.sh
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+bin_dir="/usr/local/bin"
+sam2bed_bin="${bin_dir}/sam2bed"
+sam2starch_bin="${bin_dir}/sam2starch"
+
+echo "[sam2bed] testing sorted output..."
+sample_sam_fn="sample.sam"
+expected_sorted_bed_fn="sample.expected.bed"
+observed_sorted_bed_fn="$(mktemp /tmp/XXXXXX)"
+${sam2bed_bin} < ${sample_sam_fn} > ${observed_sorted_bed_fn} 2> /dev/null
+diff -q ${expected_sorted_bed_fn} ${observed_sorted_bed_fn}
+rm -f ${observed_sorted_bed_fn}
+
+echo "[sam2bed] testing split output..."
+split_sam_fn="split.sam"
+expected_split_bed_fn="split.expected.bed"
+observed_split_bed_fn="$(mktemp /tmp/XXXXXX)"
+${sam2bed_bin} --split < ${split_sam_fn} > ${observed_split_bed_fn} 2> /dev/null
+diff -q ${expected_split_bed_fn} ${observed_split_bed_fn}
+rm -f ${observed_split_bed_fn}
+
+echo "[sam2bed] testing starch (bzip2) output..."
+sample_sam_fn="sample.sam"
+expected_starch_fn="sample.expected.starch"
+observed_starch_fn="$(mktemp /tmp/XXXXXX)"
+${sam2starch_bin} < ${sample_sam_fn} > ${observed_starch_fn} 2> /dev/null
+diff -q <(unstarch ${expected_starch_fn}) <(unstarch ${observed_starch_fn})
+rm -f ${observed_starch_fn}
+
+echo "[sam2bed] testing starch (gzip) output..."
+sample_sam_fn="sample.sam"
+expected_starch_fn="sample.expected.starch"
+observed_starch_fn="$(mktemp /tmp/XXXXXX)"
+${sam2starch_bin} --starch-gzip < ${sample_sam_fn} > ${observed_starch_fn} 2> /dev/null
+diff -q <(unstarch ${expected_starch_fn}) <(unstarch ${observed_starch_fn})
+rm -f ${observed_starch_fn}
+
+echo "[sam2bed] tests complete!"
diff --git a/applications/bed/conversion/src/tests/vcf/makefile b/applications/bed/conversion/src/tests/vcf/makefile
new file mode 100644
index 0000000..8c27234
--- /dev/null
+++ b/applications/bed/conversion/src/tests/vcf/makefile
@@ -0,0 +1,4 @@
+all: test
+
+test:
+ @./test.sh
diff --git a/applications/bed/conversion/src/tests/vcf/sample.expected.bed b/applications/bed/conversion/src/tests/vcf/sample.expected.bed
new file mode 100644
index 0000000..aad3a57
--- /dev/null
+++ b/applications/bed/conversion/src/tests/vcf/sample.expected.bed
@@ -0,0 +1,7 @@
+chr20 14369 14370 rs6054257 29 G A PASS NS=3;DP=14;AF=0.5;DB;H2 GT:GQ:DP:HQ 0|0:48:1:51,51 1|0:48:8:51,51 1/1:43:5:.,.
+chr20 17329 17330 . 3 T A q10 NS=3;DP=11;AF=0.017 GT:GQ:DP:HQ 0|0:49:3:58,50 0|1:3:5:65,3 0/0:41:3
+chr20 1110695 1110696 rs6040355 67 A T PASS NS=2;DP=10;AF=0.333,0.667;AA=T;DB GT:GQ:DP:HQ 1|2:21:6:23,27 2|1:2:0:18,2 2/2:35:4
+chr20 1110695 1110696 rs6040355 67 A G PASS NS=2;DP=10;AF=0.333,0.667;AA=T;DB GT:GQ:DP:HQ 1|2:21:6:23,27 2|1:2:0:18,2 2/2:35:4
+chr20 1230236 1230237 . 47 T . PASS NS=3;DP=13;AA=T GT:GQ:DP:HQ 0|0:54:7:56,60 0|0:48:4:51,51 0/0:61:2
+chr20 1234566 1234567 microsat1 50 GTCT G PASS NS=3;DP=9;AA=G GT:GQ:DP 0/1:35:4 0/2:17:2 1/1:40:3
+chr20 1234566 1234567 microsat1 50 GTCT GTACT PASS NS=3;DP=9;AA=G GT:GQ:DP 0/1:35:4 0/2:17:2 1/1:40:3
diff --git a/applications/bed/conversion/src/tests/vcf/sample.expected.nosplit.bed b/applications/bed/conversion/src/tests/vcf/sample.expected.nosplit.bed
new file mode 100644
index 0000000..f31ae64
--- /dev/null
+++ b/applications/bed/conversion/src/tests/vcf/sample.expected.nosplit.bed
@@ -0,0 +1,5 @@
+chr20 14369 14370 rs6054257 29 G A PASS NS=3;DP=14;AF=0.5;DB;H2 GT:GQ:DP:HQ 0|0:48:1:51,51 1|0:48:8:51,51 1/1:43:5:.,.
+chr20 17329 17330 . 3 T A q10 NS=3;DP=11;AF=0.017 GT:GQ:DP:HQ 0|0:49:3:58,50 0|1:3:5:65,3 0/0:41:3
+chr20 1110695 1110696 rs6040355 67 A G,T PASS NS=2;DP=10;AF=0.333,0.667;AA=T;DB GT:GQ:DP:HQ 1|2:21:6:23,27 2|1:2:0:18,2 2/2:35:4
+chr20 1230236 1230237 . 47 T . PASS NS=3;DP=13;AA=T GT:GQ:DP:HQ 0|0:54:7:56,60 0|0:48:4:51,51 0/0:61:2
+chr20 1234566 1234567 microsat1 50 GTCT G,GTACT PASS NS=3;DP=9;AA=G GT:GQ:DP 0/1:35:4 0/2:17:2 1/1:40:3
diff --git a/applications/bed/conversion/src/tests/vcf/sample.expected.nosplit.bzip2.starch b/applications/bed/conversion/src/tests/vcf/sample.expected.nosplit.bzip2.starch
new file mode 100644
index 0000000..16b6e81
Binary files /dev/null and b/applications/bed/conversion/src/tests/vcf/sample.expected.nosplit.bzip2.starch differ
diff --git a/applications/bed/conversion/src/tests/vcf/sample.expected.nosplit.gzip.starch b/applications/bed/conversion/src/tests/vcf/sample.expected.nosplit.gzip.starch
new file mode 100644
index 0000000..12bb099
--- /dev/null
+++ b/applications/bed/conversion/src/tests/vcf/sample.expected.nosplit.gzip.starch
@@ -0,0 +1,26 @@
+�\��xe��N�@�����������q�P��P*
+$�yx�6ET�+��g�A
EI�Y3p�
+#���������@��l��>�;�:Y=�vo��-vF����k�{ݐE1�6�
-Ђ��O¿}Z�����b�~
E�ْ�8��
aI�(DUH��k�n�H�
+��mJ��ar�;$]٘,K`��H64�o�D-6DE#�J����8k,Y��V�H-���f��Y��4�$�4Q������~y�"p�:=N�R�џw��̔z�x���6��@s{�B��bi�{
+ "archive": {
+ "type": "starch",
+ "customUCSCHeaders": false,
+ "creationTimestamp": "2014-12-12T22:54:15-0800",
+ "version": {
+ "major": 2,
+ "minor": 0,
+ "revision": 0
+ },
+ "compressionFormat": 1
+ },
+ "streams": [
+ {
+ "chromosome": "chr20",
+ "filename": "chr20.pid71876.Papillion-2.local",
+ "size": "282",
+ "uncompressedLineCount": 5,
+ "nonUniqueBaseCount": 5,
+ "uniqueBaseCount": 5
+ }
+ ]
+}00000000000000000286TKt7HkGoXH+gQLPTt5ySLqJ14R0=
diff --git a/applications/bed/conversion/src/tests/vcf/sample.expected.split.bed b/applications/bed/conversion/src/tests/vcf/sample.expected.split.bed
new file mode 100644
index 0000000..aad3a57
--- /dev/null
+++ b/applications/bed/conversion/src/tests/vcf/sample.expected.split.bed
@@ -0,0 +1,7 @@
+chr20 14369 14370 rs6054257 29 G A PASS NS=3;DP=14;AF=0.5;DB;H2 GT:GQ:DP:HQ 0|0:48:1:51,51 1|0:48:8:51,51 1/1:43:5:.,.
+chr20 17329 17330 . 3 T A q10 NS=3;DP=11;AF=0.017 GT:GQ:DP:HQ 0|0:49:3:58,50 0|1:3:5:65,3 0/0:41:3
+chr20 1110695 1110696 rs6040355 67 A T PASS NS=2;DP=10;AF=0.333,0.667;AA=T;DB GT:GQ:DP:HQ 1|2:21:6:23,27 2|1:2:0:18,2 2/2:35:4
+chr20 1110695 1110696 rs6040355 67 A G PASS NS=2;DP=10;AF=0.333,0.667;AA=T;DB GT:GQ:DP:HQ 1|2:21:6:23,27 2|1:2:0:18,2 2/2:35:4
+chr20 1230236 1230237 . 47 T . PASS NS=3;DP=13;AA=T GT:GQ:DP:HQ 0|0:54:7:56,60 0|0:48:4:51,51 0/0:61:2
+chr20 1234566 1234567 microsat1 50 GTCT G PASS NS=3;DP=9;AA=G GT:GQ:DP 0/1:35:4 0/2:17:2 1/1:40:3
+chr20 1234566 1234567 microsat1 50 GTCT GTACT PASS NS=3;DP=9;AA=G GT:GQ:DP 0/1:35:4 0/2:17:2 1/1:40:3
diff --git a/applications/bed/conversion/src/tests/vcf/sample.expected.split.bzip2.starch b/applications/bed/conversion/src/tests/vcf/sample.expected.split.bzip2.starch
new file mode 100644
index 0000000..8ed4a49
Binary files /dev/null and b/applications/bed/conversion/src/tests/vcf/sample.expected.split.bzip2.starch differ
diff --git a/applications/bed/conversion/src/tests/vcf/sample.expected.split.gzip.starch b/applications/bed/conversion/src/tests/vcf/sample.expected.split.gzip.starch
new file mode 100644
index 0000000..a251f98
Binary files /dev/null and b/applications/bed/conversion/src/tests/vcf/sample.expected.split.gzip.starch differ
diff --git a/applications/bed/conversion/src/tests/vcf/sample.vcf b/applications/bed/conversion/src/tests/vcf/sample.vcf
new file mode 100644
index 0000000..7610c88
--- /dev/null
+++ b/applications/bed/conversion/src/tests/vcf/sample.vcf
@@ -0,0 +1,23 @@
+##fileformat=VCFv4.0
+##fileDate=20090805
+##source=myImputationProgramV3.1
+##reference=1000GenomesPilot-NCBI36
+##phasing=partial
+##INFO=<ID=NS,Number=1,Type=Integer,Description="Number of Samples With Data">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Total Depth">
+##INFO=<ID=AF,Number=.,Type=Float,Description="Allele Frequency">
+##INFO=<ID=AA,Number=1,Type=String,Description="Ancestral Allele">
+##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP membership, build 129">
+##INFO=<ID=H2,Number=0,Type=Flag,Description="HapMap2 membership">
+##FILTER=<ID=q10,Description="Quality below 10">
+##FILTER=<ID=s50,Description="Less than 50% of samples have data">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth">
+##FORMAT=<ID=HQ,Number=2,Type=Integer,Description="Haplotype Quality">
+#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NA00001 NA00002 NA00003
+chr20 1234567 microsat1 GTCT G,GTACT 50 PASS NS=3;DP=9;AA=G GT:GQ:DP 0/1:35:4 0/2:17:2 1/1:40:3
+chr20 14370 rs6054257 G A 29 PASS NS=3;DP=14;AF=0.5;DB;H2 GT:GQ:DP:HQ 0|0:48:1:51,51 1|0:48:8:51,51 1/1:43:5:.,.
+chr20 1230237 . T . 47 PASS NS=3;DP=13;AA=T GT:GQ:DP:HQ 0|0:54:7:56,60 0|0:48:4:51,51 0/0:61:2
+chr20 17330 . T A 3 q10 NS=3;DP=11;AF=0.017 GT:GQ:DP:HQ 0|0:49:3:58,50 0|1:3:5:65,3 0/0:41:3
+chr20 1110696 rs6040355 A G,T 67 PASS NS=2;DP=10;AF=0.333,0.667;AA=T;DB GT:GQ:DP:HQ 1|2:21:6:23,27 2|1:2:0:18,2 2/2:35:4
diff --git a/applications/bed/conversion/src/tests/vcf/test.sh b/applications/bed/conversion/src/tests/vcf/test.sh
new file mode 100755
index 0000000..a907c94
--- /dev/null
+++ b/applications/bed/conversion/src/tests/vcf/test.sh
@@ -0,0 +1,55 @@
+#!/bin/bash
+
+bin_dir="/usr/local/bin"
+vcf2bed_bin="${bin_dir}/vcf2bed"
+vcf2starch_bin="${bin_dir}/vcf2starch"
+
+echo "[vcf2bed] testing sorted and split output..."
+sample_split_vcf_fn="sample.vcf"
+expected_split_sorted_bed_fn="sample.expected.split.bed"
+observed_split_sorted_bed_fn="$(mktemp /tmp/XXXXXX)"
+${vcf2bed_bin} < ${sample_split_vcf_fn} > ${observed_split_sorted_bed_fn} 2> /dev/null
+diff -q ${expected_split_sorted_bed_fn} ${observed_split_sorted_bed_fn}
+rm -f ${observed_split_sorted_bed_fn}
+
+echo "[vcf2bed] testing sorted and no-split output..."
+sample_nosplit_vcf_fn="sample.vcf"
+expected_nosplit_sorted_bed_fn="sample.expected.nosplit.bed"
+observed_nosplit_sorted_bed_fn="$(mktemp /tmp/XXXXXX)"
+${vcf2bed_bin} --do-not-split < ${sample_nosplit_vcf_fn} > ${observed_nosplit_sorted_bed_fn} 2> /dev/null
+diff -q ${expected_nosplit_sorted_bed_fn} ${observed_nosplit_sorted_bed_fn}
+rm -f ${observed_nosplit_sorted_bed_fn}
+
+echo "[vcf2bed] testing starch split (bzip2) output..."
+sample_vcf_fn="sample.vcf"
+expected_split_starch_fn="sample.expected.split.bzip2.starch"
+observed_split_starch_fn="$(mktemp /tmp/XXXXXX)"
+${vcf2starch_bin} < ${sample_vcf_fn} > ${observed_split_starch_fn} 2> /dev/null
+diff -q <(unstarch ${expected_split_starch_fn}) <(unstarch ${observed_split_starch_fn})
+rm -f ${observed_split_starch_fn}
+
+echo "[vcf2bed] testing starch (gzip) output..."
+sample_vcf_fn="sample.vcf"
+expected_split_starch_fn="sample.expected.split.gzip.starch"
+observed_split_starch_fn="$(mktemp /tmp/XXXXXX)"
+${vcf2starch_bin} --starch-gzip < ${sample_vcf_fn} > ${observed_split_starch_fn} 2> /dev/null
+diff -q <(unstarch ${expected_split_starch_fn}) <(unstarch ${observed_split_starch_fn})
+rm -f ${observed_split_starch_fn}
+
+echo "[vcf2bed] testing starch no-split (bzip2) output..."
+sample_vcf_fn="sample.vcf"
+expected_split_starch_fn="sample.expected.nosplit.bzip2.starch"
+observed_split_starch_fn="$(mktemp /tmp/XXXXXX)"
+${vcf2starch_bin} --do-not-split < ${sample_vcf_fn} > ${observed_split_starch_fn} 2> /dev/null
+diff -q <(unstarch ${expected_split_starch_fn}) <(unstarch ${observed_split_starch_fn})
+rm -f ${observed_split_starch_fn}
+
+echo "[vcf2bed] testing starch (gzip) output..."
+sample_vcf_fn="sample.vcf"
+expected_split_starch_fn="sample.expected.nosplit.gzip.starch"
+observed_split_starch_fn="$(mktemp /tmp/XXXXXX)"
+${vcf2starch_bin} --do-not-split --starch-gzip < ${sample_vcf_fn} > ${observed_split_starch_fn} 2> /dev/null
+diff -q <(unstarch ${expected_split_starch_fn}) <(unstarch ${observed_split_starch_fn})
+rm -f ${observed_split_starch_fn}
+
+echo "[vcf2bed] tests complete!"
diff --git a/applications/bed/conversion/src/tests/wig/makefile b/applications/bed/conversion/src/tests/wig/makefile
new file mode 100644
index 0000000..8c27234
--- /dev/null
+++ b/applications/bed/conversion/src/tests/wig/makefile
@@ -0,0 +1,4 @@
+all: test
+
+test:
+ @./test.sh
diff --git a/applications/bed/conversion/src/tests/wig/sample_1.expected.bed b/applications/bed/conversion/src/tests/wig/sample_1.expected.bed
new file mode 100644
index 0000000..bda8afb
--- /dev/null
+++ b/applications/bed/conversion/src/tests/wig/sample_1.expected.bed
@@ -0,0 +1,10 @@
+chr1 147971108 147971158 id-1 -0.590000
+chr1 147971146 147971196 id-2 0.120000
+chr1 147971184 147971234 id-3 0.110000
+chr1 147971222 147971272 id-4 -0.760000
+chr1 147971260 147971310 id-5 -0.200000
+chr1 147971298 147971348 id-6 -0.300000
+chr1 147971336 147971386 id-7 0.090000
+chr1 147971374 147971424 id-8 -0.510000
+chr1 147971412 147971462 id-9 -0.000000
+chr1 147971450 147971500 id-10 -0.090000
diff --git a/applications/bed/conversion/src/tests/wig/sample_1.expected.gzip.starch b/applications/bed/conversion/src/tests/wig/sample_1.expected.gzip.starch
new file mode 100644
index 0000000..47ba6c4
Binary files /dev/null and b/applications/bed/conversion/src/tests/wig/sample_1.expected.gzip.starch differ
diff --git a/applications/bed/conversion/src/tests/wig/sample_1.expected.starch b/applications/bed/conversion/src/tests/wig/sample_1.expected.starch
new file mode 100644
index 0000000..9e7d1cb
Binary files /dev/null and b/applications/bed/conversion/src/tests/wig/sample_1.expected.starch differ
diff --git a/applications/bed/conversion/src/tests/wig/sample_1.wig b/applications/bed/conversion/src/tests/wig/sample_1.wig
new file mode 100644
index 0000000..2d9759b
--- /dev/null
+++ b/applications/bed/conversion/src/tests/wig/sample_1.wig
@@ -0,0 +1,10 @@
+chr1 147971109 147971159 -0.59
+chr1 147971147 147971197 0.12
+chr1 147971185 147971235 0.11
+chr1 147971223 147971273 -0.76
+chr1 147971261 147971311 -0.20
+chr1 147971299 147971349 -0.30
+chr1 147971337 147971387 0.09
+chr1 147971375 147971425 -0.51
+chr1 147971413 147971463 -0.00
+chr1 147971451 147971501 -0.09
diff --git a/applications/bed/conversion/src/tests/wig/sample_2.expected.bed b/applications/bed/conversion/src/tests/wig/sample_2.expected.bed
new file mode 100644
index 0000000..bda8afb
--- /dev/null
+++ b/applications/bed/conversion/src/tests/wig/sample_2.expected.bed
@@ -0,0 +1,10 @@
+chr1 147971108 147971158 id-1 -0.590000
+chr1 147971146 147971196 id-2 0.120000
+chr1 147971184 147971234 id-3 0.110000
+chr1 147971222 147971272 id-4 -0.760000
+chr1 147971260 147971310 id-5 -0.200000
+chr1 147971298 147971348 id-6 -0.300000
+chr1 147971336 147971386 id-7 0.090000
+chr1 147971374 147971424 id-8 -0.510000
+chr1 147971412 147971462 id-9 -0.000000
+chr1 147971450 147971500 id-10 -0.090000
diff --git a/applications/bed/conversion/src/tests/wig/sample_2.expected.gzip.starch b/applications/bed/conversion/src/tests/wig/sample_2.expected.gzip.starch
new file mode 100644
index 0000000..e123bdf
Binary files /dev/null and b/applications/bed/conversion/src/tests/wig/sample_2.expected.gzip.starch differ
diff --git a/applications/bed/conversion/src/tests/wig/sample_2.expected.starch b/applications/bed/conversion/src/tests/wig/sample_2.expected.starch
new file mode 100644
index 0000000..b0433b1
Binary files /dev/null and b/applications/bed/conversion/src/tests/wig/sample_2.expected.starch differ
diff --git a/applications/bed/conversion/src/tests/wig/sample_2.wig b/applications/bed/conversion/src/tests/wig/sample_2.wig
new file mode 100644
index 0000000..5eef101
--- /dev/null
+++ b/applications/bed/conversion/src/tests/wig/sample_2.wig
@@ -0,0 +1,11 @@
+browser display=foo
+chr1 147971109 147971159 -0.59
+chr1 147971147 147971197 0.12
+chr1 147971185 147971235 0.11
+chr1 147971223 147971273 -0.76
+chr1 147971261 147971311 -0.20
+chr1 147971299 147971349 -0.30
+chr1 147971337 147971387 0.09
+chr1 147971375 147971425 -0.51
+chr1 147971413 147971463 -0.00
+chr1 147971451 147971501 -0.09
diff --git a/applications/bed/conversion/src/tests/wig/sample_3.expected.bed b/applications/bed/conversion/src/tests/wig/sample_3.expected.bed
new file mode 100644
index 0000000..bda8afb
--- /dev/null
+++ b/applications/bed/conversion/src/tests/wig/sample_3.expected.bed
@@ -0,0 +1,10 @@
+chr1 147971108 147971158 id-1 -0.590000
+chr1 147971146 147971196 id-2 0.120000
+chr1 147971184 147971234 id-3 0.110000
+chr1 147971222 147971272 id-4 -0.760000
+chr1 147971260 147971310 id-5 -0.200000
+chr1 147971298 147971348 id-6 -0.300000
+chr1 147971336 147971386 id-7 0.090000
+chr1 147971374 147971424 id-8 -0.510000
+chr1 147971412 147971462 id-9 -0.000000
+chr1 147971450 147971500 id-10 -0.090000
diff --git a/applications/bed/conversion/src/tests/wig/sample_3.expected.gzip.starch b/applications/bed/conversion/src/tests/wig/sample_3.expected.gzip.starch
new file mode 100644
index 0000000..bf31869
Binary files /dev/null and b/applications/bed/conversion/src/tests/wig/sample_3.expected.gzip.starch differ
diff --git a/applications/bed/conversion/src/tests/wig/sample_3.expected.starch b/applications/bed/conversion/src/tests/wig/sample_3.expected.starch
new file mode 100644
index 0000000..3cd6cbd
Binary files /dev/null and b/applications/bed/conversion/src/tests/wig/sample_3.expected.starch differ
diff --git a/applications/bed/conversion/src/tests/wig/sample_3.wig b/applications/bed/conversion/src/tests/wig/sample_3.wig
new file mode 100644
index 0000000..38ef1d1
--- /dev/null
+++ b/applications/bed/conversion/src/tests/wig/sample_3.wig
@@ -0,0 +1,12 @@
+browser display=foo
+chr1 147971109 147971159 -0.59
+chr1 147971147 147971197 0.12
+chr1 147971185 147971235 0.11
+chr1 147971223 147971273 -0.76
+track type=wiggle_0 name=foo description=foo
+chr1 147971261 147971311 -0.20
+chr1 147971299 147971349 -0.30
+chr1 147971337 147971387 0.09
+chr1 147971375 147971425 -0.51
+chr1 147971413 147971463 -0.00
+chr1 147971451 147971501 -0.09
diff --git a/applications/bed/conversion/src/tests/wig/sample_4.expected.bed b/applications/bed/conversion/src/tests/wig/sample_4.expected.bed
new file mode 100644
index 0000000..e50803f
--- /dev/null
+++ b/applications/bed/conversion/src/tests/wig/sample_4.expected.bed
@@ -0,0 +1,15 @@
+chr1 147971108 147971158 id-1 -0.590000
+chr1 147971146 147971196 id-2 0.120000
+chr1 147971184 147971234 id-3 0.110000
+chr1 147971222 147971272 id-4 -0.760000
+chr1 147971260 147971310 id-5 -0.200000
+chr1 147971298 147971348 id-6 -0.300000
+chr1 147971336 147971386 id-7 0.090000
+chr1 147971374 147971424 id-8 -0.510000
+chr1 147971412 147971462 id-9 -0.000000
+chr1 147971450 147971500 id-10 -0.090000
+chrX 99 104 id-11 1.900000
+chrX 109 114 id-12 2.300000
+chrX 119 124 id-13 -0.100000
+chrX 129 134 id-14 1.100000
+chrX 139 144 id-15 4.100000
diff --git a/applications/bed/conversion/src/tests/wig/sample_4.expected.gzip.starch b/applications/bed/conversion/src/tests/wig/sample_4.expected.gzip.starch
new file mode 100644
index 0000000..4b4e9f9
Binary files /dev/null and b/applications/bed/conversion/src/tests/wig/sample_4.expected.gzip.starch differ
diff --git a/applications/bed/conversion/src/tests/wig/sample_4.expected.starch b/applications/bed/conversion/src/tests/wig/sample_4.expected.starch
new file mode 100644
index 0000000..a6fea2d
Binary files /dev/null and b/applications/bed/conversion/src/tests/wig/sample_4.expected.starch differ
diff --git a/applications/bed/conversion/src/tests/wig/sample_4.wig b/applications/bed/conversion/src/tests/wig/sample_4.wig
new file mode 100644
index 0000000..d8d5095
--- /dev/null
+++ b/applications/bed/conversion/src/tests/wig/sample_4.wig
@@ -0,0 +1,19 @@
+browser display=foo
+chr1 147971109 147971159 -0.59
+chr1 147971147 147971197 0.12
+chr1 147971185 147971235 0.11
+chr1 147971223 147971273 -0.76
+track type=wiggle_0 name=foo description=foo
+chr1 147971261 147971311 -0.20
+chr1 147971299 147971349 -0.30
+chr1 147971337 147971387 0.09
+chr1 147971375 147971425 -0.51
+chr1 147971413 147971463 -0.00
+chr1 147971451 147971501 -0.09
+track type=wiggle_0 name=testfixed
+fixedStep chrom=chrX start=100 step=10 span=5
+1.9
+2.3
+-0.1
+1.1
+4.1
diff --git a/applications/bed/conversion/src/tests/wig/sample_5.expected.bed b/applications/bed/conversion/src/tests/wig/sample_5.expected.bed
new file mode 100644
index 0000000..43cbbfc
--- /dev/null
+++ b/applications/bed/conversion/src/tests/wig/sample_5.expected.bed
@@ -0,0 +1,19 @@
+chr1 147971108 147971158 id-1 -0.590000
+chr1 147971146 147971196 id-2 0.120000
+chr1 147971184 147971234 id-3 0.110000
+chr1 147971222 147971272 id-4 -0.760000
+chr1 147971260 147971310 id-5 -0.200000
+chr1 147971298 147971348 id-6 -0.300000
+chr1 147971336 147971386 id-7 0.090000
+chr1 147971374 147971424 id-8 -0.510000
+chr1 147971412 147971462 id-9 -0.000000
+chr1 147971450 147971500 id-10 -0.090000
+chr9 99 104 id-11 1.900000
+chr9 109 114 id-12 2.300000
+chr9 119 124 id-13 -0.100000
+chr9 129 134 id-14 1.100000
+chr9 139 144 id-15 4.100000
+chrX 99999 100099 id-16 8.100000
+chrX 812388 812488 id-17 -999.100000
+chrX 1000881 1000981 id-18 0.700000
+chrX 1008830 1008930 id-19 4.200000
diff --git a/applications/bed/conversion/src/tests/wig/sample_5.expected.gzip.starch b/applications/bed/conversion/src/tests/wig/sample_5.expected.gzip.starch
new file mode 100644
index 0000000..1ec13c3
Binary files /dev/null and b/applications/bed/conversion/src/tests/wig/sample_5.expected.gzip.starch differ
diff --git a/applications/bed/conversion/src/tests/wig/sample_5.expected.starch b/applications/bed/conversion/src/tests/wig/sample_5.expected.starch
new file mode 100644
index 0000000..015d8dc
Binary files /dev/null and b/applications/bed/conversion/src/tests/wig/sample_5.expected.starch differ
diff --git a/applications/bed/conversion/src/tests/wig/sample_5.wig b/applications/bed/conversion/src/tests/wig/sample_5.wig
new file mode 100644
index 0000000..ad09355
--- /dev/null
+++ b/applications/bed/conversion/src/tests/wig/sample_5.wig
@@ -0,0 +1,25 @@
+browser display=foo
+chr1 147971109 147971159 -0.59
+chr1 147971147 147971197 0.12
+chr1 147971185 147971235 0.11
+chr1 147971223 147971273 -0.76
+track type=wiggle_0 name=foo description=foo
+chr1 147971261 147971311 -0.20
+chr1 147971299 147971349 -0.30
+chr1 147971337 147971387 0.09
+chr1 147971375 147971425 -0.51
+chr1 147971413 147971463 -0.00
+chr1 147971451 147971501 -0.09
+track type=wiggle_0 name=testFixedStep
+fixedStep chrom=chr9 start=100 step=10 span=5
+1.9
+2.3
+-0.1
+1.1
+4.1
+track type=wiggle_0 name=testVariableStep
+variableStep chrom=chrX span=100
+100000 8.1
+812389 -999.1
+1000882 0.7
+1008831 4.2
diff --git a/applications/bed/conversion/src/tests/wig/sample_6.expected.bed b/applications/bed/conversion/src/tests/wig/sample_6.expected.bed
new file mode 100644
index 0000000..abb79da
--- /dev/null
+++ b/applications/bed/conversion/src/tests/wig/sample_6.expected.bed
@@ -0,0 +1,18 @@
+_header 0 1 foo.1 track type=wiggle_0 name=foo description=foo
+_header 1 2 foo.2 track type=wiggle_0 name=testfixed
+_header 2 3 foo.2 fixedStep chrom=chrX start=100 step=10 span=5
+chr1 147971108 147971158 foo.1-1 -0.590000
+chr1 147971146 147971196 foo.1-2 0.120000
+chr1 147971184 147971234 foo.1-3 0.110000
+chr1 147971222 147971272 foo.1-4 -0.760000
+chr1 147971260 147971310 foo.1-5 -0.200000
+chr1 147971298 147971348 foo.1-6 -0.300000
+chr1 147971336 147971386 foo.1-7 0.090000
+chr1 147971374 147971424 foo.1-8 -0.510000
+chr1 147971412 147971462 foo.1-9 -0.000000
+chr1 147971450 147971500 foo.1-10 -0.090000
+chrX 99 104 foo.2-11 1.900000
+chrX 109 114 foo.2-12 2.300000
+chrX 119 124 foo.2-13 -0.100000
+chrX 129 134 foo.2-14 1.100000
+chrX 139 144 foo.2-15 4.100000
diff --git a/applications/bed/conversion/src/tests/wig/sample_6.expected.gzip.starch b/applications/bed/conversion/src/tests/wig/sample_6.expected.gzip.starch
new file mode 100644
index 0000000..c599d73
Binary files /dev/null and b/applications/bed/conversion/src/tests/wig/sample_6.expected.gzip.starch differ
diff --git a/applications/bed/conversion/src/tests/wig/sample_6.expected.starch b/applications/bed/conversion/src/tests/wig/sample_6.expected.starch
new file mode 100644
index 0000000..91893ac
Binary files /dev/null and b/applications/bed/conversion/src/tests/wig/sample_6.expected.starch differ
diff --git a/applications/bed/conversion/src/tests/wig/sample_6.wig b/applications/bed/conversion/src/tests/wig/sample_6.wig
new file mode 100644
index 0000000..6e7af2a
--- /dev/null
+++ b/applications/bed/conversion/src/tests/wig/sample_6.wig
@@ -0,0 +1,18 @@
+track type=wiggle_0 name=foo description=foo
+chr1 147971109 147971159 -0.59
+chr1 147971147 147971197 0.12
+chr1 147971185 147971235 0.11
+chr1 147971223 147971273 -0.76
+chr1 147971261 147971311 -0.20
+chr1 147971299 147971349 -0.30
+chr1 147971337 147971387 0.09
+chr1 147971375 147971425 -0.51
+chr1 147971413 147971463 -0.00
+chr1 147971451 147971501 -0.09
+track type=wiggle_0 name=testfixed
+fixedStep chrom=chrX start=100 step=10 span=5
+1.9
+2.3
+-0.1
+1.1
+4.1
diff --git a/applications/bed/conversion/src/tests/wig/test.sh b/applications/bed/conversion/src/tests/wig/test.sh
new file mode 100755
index 0000000..04e5a73
--- /dev/null
+++ b/applications/bed/conversion/src/tests/wig/test.sh
@@ -0,0 +1,60 @@
+#!/bin/bash
+
+bin_dir="/usr/local/bin"
+wig2bed_bin="${bin_dir}/wig2bed"
+wig2starch_bin="${bin_dir}/wig2starch"
+
+for idx in $(seq 1 5)
+do
+ echo "[wig2bed] testing output [$idx]..."
+ sample_wig_fn="sample_$idx.wig"
+ expected_sorted_bed_fn="sample_$idx.expected.bed"
+ observed_sorted_bed_fn="$(mktemp /tmp/XXXXXX)"
+ ${wig2bed_bin} < ${sample_wig_fn} > ${observed_sorted_bed_fn} 2> /dev/null
+ diff -q ${expected_sorted_bed_fn} ${observed_sorted_bed_fn}
+ rm -f ${observed_sorted_bed_fn}
+
+ echo "[wig2bed] testing starch (bzip2) output [$idx]..."
+ sample_wig_fn="sample_$idx.wig"
+ expected_starch_fn="sample_$idx.expected.starch"
+ observed_starch_fn="$(mktemp /tmp/XXXXXX)"
+ ${wig2starch_bin} < ${sample_wig_fn} > ${observed_starch_fn} 2> /dev/null
+ diff -q <(unstarch ${expected_starch_fn}) <(unstarch ${observed_starch_fn})
+ rm -f ${observed_starch_fn}
+
+ echo "[wig2bed] testing starch (gzip) output [$idx]..."
+ sample_wig_fn="sample_$idx.wig"
+ expected_starch_fn="sample_$idx.expected.gzip.starch"
+ observed_starch_fn="$(mktemp /tmp/XXXXXX)"
+ ${wig2starch_bin} --starch-gzip < ${sample_wig_fn} > ${observed_starch_fn} 2> /dev/null
+ diff -q <(unstarch ${expected_starch_fn}) <(unstarch ${observed_starch_fn})
+ rm -f ${observed_starch_fn}
+done
+
+idx=6
+
+echo "[wig2bed] testing output [$idx]..."
+sample_wig_fn="sample_$idx.wig"
+expected_sorted_bed_fn="sample_$idx.expected.bed"
+observed_sorted_bed_fn="$(mktemp /tmp/XXXXXX)"
+${wig2bed_bin} --keep-header --multisplit="foo" < ${sample_wig_fn} > ${observed_sorted_bed_fn} 2> /dev/null
+diff -q ${expected_sorted_bed_fn} ${observed_sorted_bed_fn}
+rm -f ${observed_sorted_bed_fn}
+
+echo "[wig2bed] testing starch (bzip2) output [$idx]..."
+sample_wig_fn="sample_$idx.wig"
+expected_starch_fn="sample_$idx.expected.starch"
+observed_starch_fn="$(mktemp /tmp/XXXXXX)"
+${wig2starch_bin} --keep-header --multisplit="foo" < ${sample_wig_fn} > ${observed_starch_fn} 2> /dev/null
+diff -q <(unstarch ${expected_starch_fn}) <(unstarch ${observed_starch_fn})
+rm -f ${observed_starch_fn}
+
+echo "[wig2bed] testing starch (gzip) output [$idx]..."
+sample_wig_fn="sample_$idx.wig"
+expected_starch_fn="sample_$idx.expected.gzip.starch"
+observed_starch_fn="$(mktemp /tmp/XXXXXX)"
+${wig2starch_bin} --starch-gzip --keep-header --multisplit="foo" < ${sample_wig_fn} > ${observed_starch_fn} 2> /dev/null
+diff -q <(unstarch ${expected_starch_fn}) <(unstarch ${observed_starch_fn})
+rm -f ${observed_starch_fn}
+
+echo "[wig2bed] tests complete!"
diff --git a/applications/bed/conversion/src/wrappers/bam2bed b/applications/bed/conversion/src/wrappers/bam2bed
new file mode 100755
index 0000000..feb4d8c
--- /dev/null
+++ b/applications/bed/conversion/src/wrappers/bam2bed
@@ -0,0 +1,148 @@
+#!/bin/bash
+
+#
+# convert2bed
+# Copyright (C) 2014-2016 Alex Reynolds
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+cmd="convert2bed"
+input_format="bam"
+output_format="bed"
+
+# general
+
+do_not_sort=false
+max_mem_set=false
+max_mem="2G"
+sort_tmpdir_set=false
+sort_tmpdir="/tmp"
+
+# format-specific
+
+all_reads=false
+keep_header=false
+split=false
+
+help()
+{
+ ${cmd} --help-bam
+ exit $1
+}
+
+optspec=":r:m:dhaks-:"
+while getopts "$optspec" optchar; do
+ case "${optchar}" in
+ -)
+ case "${OPTARG}" in
+ sort-tmpdir)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ sort-tmpdir=*)
+ val=${OPTARG#*=}
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ max-mem)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ max-mem=*)
+ val=${OPTARG#*=}
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ do-not-sort)
+ do_not_sort=true
+ ;;
+ help)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ #echo "Parsing option: '--${OPTARG}', value: '${val}'" >&2;
+ help 0
+ ;;
+ help=*)
+ val=${OPTARG#*=}
+ opt=${OPTARG%=$val}
+ #echo "Parsing option: '--${opt}', value: '${val}'" >&2
+ help 0
+ ;;
+ help-bam)
+ help 0
+ ;;
+ all-reads)
+ all_reads=true
+ ;;
+ keep-header)
+ keep_header=true
+ ;;
+ split)
+ split=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" = 1 ] && [ "${optspec:0:1}" != ":" ]; then echo "Unknown option --${OPTARG}" >&2; fi
+ ;;
+ esac;;
+ r)
+ sort_tmpdir=${OPTARG}
+ sort_tmpdir_set=true
+ ;;
+ m)
+ max_mem=${OPTARG}
+ max_mem_set=true
+ ;;
+ d)
+ do_not_sort=true
+ ;;
+ h)
+ help 0
+ ;;
+ a)
+ all_reads=true
+ ;;
+ k)
+ keep_header=true
+ ;;
+ s)
+ split=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" != 1 ] || [ "${optspec:0:1}" = ":" ]; then echo "Non-option argument: '-${OPTARG}'" >&2; fi
+ ;;
+ esac
+done
+
+# base options
+
+options="--input=${input_format} --output=${output_format}"
+
+# general
+
+if [ "${max_mem_set}" = true ]; then options="${options} --max-mem=${max_mem}"; fi
+if [ "${sort_tmpdir_set}" = true ]; then options="${options} --sort-tmpdir=${sort_tmpdir}"; fi
+if [ "${do_not_sort}" = true ]; then options="${options} --do-not-sort"; fi
+
+# format-specific
+
+if [ "${all_reads}" = true ]; then options="${options} --all-reads"; fi
+if [ "${keep_header}" = true ]; then options="${options} --keep-header"; fi
+if [ "${split}" = true ]; then options="${options} --split"; fi
+
+${cmd} ${options} - <&0
diff --git a/applications/bed/conversion/src/wrappers/bam2bed_gnuParallel b/applications/bed/conversion/src/wrappers/bam2bed_gnuParallel
new file mode 100755
index 0000000..bac0c6e
--- /dev/null
+++ b/applications/bed/conversion/src/wrappers/bam2bed_gnuParallel
@@ -0,0 +1,137 @@
+#!/bin/tcsh -ef
+
+# bam2bed_gnuParallel
+# -----------------------------------------------------------------------
+# Copyright (C) 2011-2016 Shane Neph and Alex Reynolds
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+############################
+# some input error checking
+############################
+
+set help = "\nUsage: bam2bed_gnuParallel [--help] [--clean] <input-indexed-bam-file> [output-bed-file]\n\n"
+set help = "$help Pass in the name of an indexed BAM file to create a sorted BED file using GNU Parallel.\n\n"
+set help = "$help (stdin isn't supported through this wrapper script.)\n\n"
+set help = "$help Add --clean to remove <input-indexed-bam-file> after turning it into BED.\n\n"
+set help = "$help You can pass in the name of the output bed archive to be created.\n"
+set help = "$help Otherwise, the output will have the same name as the input file, with an additional\n"
+set help = "$help '.bed' ending. If the input file ends with '.bam', that will be stripped off.\n"
+
+if ( $#argv == 0 ) then
+ printf "$help"
+ exit -1
+endif
+
+@ inputset = 0
+@ clean = 0
+foreach argc (`seq 1 $#argv`)
+ if ( "$argv[$argc]" == "--help" ) then
+ printf "$help"
+ exit 0
+ else if ( "$argv[$argc]" == "--clean" ) then
+ @ clean = 1
+ else if ( $argc == $#argv ) then
+ if ( $inputset > 0 ) then
+ set output = "$argv[$argc]"
+ else
+ set originput = "$argv[$argc]"
+ set output = $originput:t.bed
+ endif
+ @ inputset = 1
+ else if ( $inputset > 0 ) then
+ printf "$help"
+ printf "Multiple input files cannot be specified\n"
+ exit -1
+ else
+ set originput = "$argv[$argc]"
+ set output = $originput:t.bed
+ @ inputset = 1
+ endif
+end
+
+if ( $inputset == 0 ) then
+ printf "No input file specified\n"
+ exit -1
+else if ( ! -s $originput ) then
+ printf "Unable to find BAM file: %s\n" $originput
+ exit -1
+else if ( "$output" == "$originput:t.bed" && "$originput:e" == "bam" ) then
+ set output = "$originput:t:r.bed"
+endif
+
+set origininputindex = "$originput.bai"
+if ( ! -s $origininputindex ) then
+ printf "Unable to find associated BAI file (is the BAM file indexed?): %s\n" $origininputindex
+ exit -1
+endif
+
+###############################################################
+# new working directory to keep file pileups local to this job
+###############################################################
+
+set nm = b2bcg.`uname -a | cut -f2 -d' '`.$$
+if ( -d $nm ) then
+ rm -rf $nm
+endif
+mkdir -p $nm
+
+set here = `pwd`
+cd $nm
+if ( -s ../$originput ) then
+ set input = ../$originput
+else
+ # $originput includes absolute path
+ set input = $originput
+endif
+
+# $output:h gives back $output if there is no directory information
+if ( -d ../$output:h || "$output:h" == "$output" ) then
+ set output = $here/$output
+else if ( `echo $output | awk '{ print substr($0, 1, 1); }'` == "/" ) then
+ # $output includes absolute path
+else
+ # $output includes non-absolute path
+ set output = $here/$output
+endif
+
+#####################################################
+# extract information by chromosome and bam2bed it
+#####################################################
+
+@ chrom_count = (`samtools idxstats $input | awk '$1!~"^*"' | awk 'END { print NR }'`)
+
+samtools idxstats $input | awk '$1!~"^*"' | parallel "samtools view -b $input {} | bam2bed - > $here/$nm/{}.bed"
+
+@ converted_file_count = `find $here/$nm -name '*.bed' | wc -l`
+if ( $chrom_count != $converted_file_count ) then
+ printf "Error: Only some or no files were submitted to GNU Parallel successfully\n"
+ exit -1
+endif
+
+##################################################
+# create final bed archive and clean things up
+##################################################
+
+bedops --everything $here/$nm/*.bed > $output
+
+cd $here
+rm -rf $nm
+
+if ( $clean > 0 ) then
+ rm -f $originput
+endif
+
+exit 0
diff --git a/applications/bed/conversion/src/wrappers/bam2bed_sge b/applications/bed/conversion/src/wrappers/bam2bed_sge
new file mode 100755
index 0000000..26f638e
--- /dev/null
+++ b/applications/bed/conversion/src/wrappers/bam2bed_sge
@@ -0,0 +1,158 @@
+#!/bin/tcsh -ef
+
+# bam2bed_sge
+# -----------------------------------------------------------------------
+# Copyright (C) 2011-2016 Shane Neph and Alex Reynolds
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+####################################################
+# cluster variables:
+# change to match your environment
+# may also require changes to 2 'qsub' calls below
+####################################################
+
+set shell = "-S /bin/tcsh"
+set queue = "-q all.q"
+set misc_opts = "-V -cwd -w e -r yes -now no"
+set soundoff = "-j n -e /dev/null -o /dev/null"
+set sge_opts = "$queue $shell $misc_opts $soundoff"
+
+############################
+# some input error checking
+############################
+
+set help = "\nUsage: bam2bed_sge [--help] [--clean] <input-indexed-bam-file> [output-bed-file]\n\n"
+set help = "$help Pass in the name of an indexed BAM file to create a sorted BED file using the cluster.\n\n"
+set help = "$help (stdin isn't supported through this wrapper script.)\n\n"
+set help = "$help Add --clean to remove <input-indexed-bam-file> after turning it into BED.\n\n"
+set help = "$help You can pass in the name of the output bed archive to be created.\n"
+set help = "$help Otherwise, the output will have the same name as the input file, with an additional\n"
+set help = "$help '.bed' ending. If the input file ends with '.bam', that will be stripped off.\n"
+
+if ( $#argv == 0 ) then
+ printf "$help"
+ exit -1
+endif
+
+@ inputset = 0
+@ clean = 0
+foreach argc (`seq 1 $#argv`)
+ if ( "$argv[$argc]" == "--help" ) then
+ printf "$help"
+ exit 0
+ else if ( "$argv[$argc]" == "--clean" ) then
+ @ clean = 1
+ else if ( $argc == $#argv ) then
+ if ( $inputset > 0 ) then
+ set output = "$argv[$argc]"
+ else
+ set originput = "$argv[$argc]"
+ set output = $originput:t.bed
+ endif
+ @ inputset = 1
+ else if ( $inputset > 0 ) then
+ printf "$help"
+ printf "Multiple input files cannot be specified\n"
+ exit -1
+ else
+ set originput = "$argv[$argc]"
+ set output = $originput:t.bed
+ @ inputset = 1
+ endif
+end
+
+if ( $inputset == 0 ) then
+ printf "No input file specified\n"
+ exit -1
+else if ( ! -s $originput ) then
+ printf "Unable to find BAM file: %s\n" $originput
+ exit -1
+else if ( "$output" == "$originput:t.bed" && "$originput:e" == "bam" ) then
+ set output = "$originput:t:r.bed"
+endif
+
+set origininputindex = "$originput.bai"
+if ( ! -s $origininputindex ) then
+ printf "Unable to find associated BAI file (is the BAM file indexed?): %s\n" $origininputindex
+ exit -1
+endif
+
+###############################################################
+# new working directory to keep file pileups local to this job
+###############################################################
+
+set nm = b2scs.`uname -a | cut -f2 -d' '`.$$
+if ( -d $nm ) then
+ rm -rf $nm
+endif
+mkdir -p $nm
+
+set here = `pwd`
+cd $nm
+if ( -s ../$originput ) then
+ set input = ../$originput
+else
+ # $originput includes absolute path
+ set input = $originput
+endif
+
+# $output:h gives back $output if there is no directory information
+if ( -d ../$output:h || "$output:h" == "$output" ) then
+ set output = $here/$output
+else if ( `echo $output | awk '{ print substr($0, 1, 1); }'` == "/" ) then
+ # $output includes absolute path
+else
+ # $output includes non-absolute path
+ set output = $here/$output
+endif
+
+#####################################################
+# extract information by chromosome and bam2bed it
+#####################################################
+
+set files = ()
+set jids = ()
+@ cntr = 0
+foreach chrom (`samtools idxstats $input | awk '$1!~"^*"'`)
+ qsub $sge_opts -N $nm.$cntr > /dev/stderr << __EXTRACTION__
+ samtools view -b $input $chrom | bam2bed - > $here/$nm/$cntr
+__EXTRACTION__
+
+ set jids = ($jids $nm.$cntr)
+ set files = ($files $here/$nm/$cntr)
+ @ cntr++
+end
+
+if ( $cntr == 0 ) then
+ printf "Program problem: no files were submitted to the cluster?\n"
+ exit -1
+endif
+
+##################################################
+# create final bed archive and clean things up
+##################################################
+
+qsub $sge_opts -N $nm.union -hold_jid `echo $jids | tr ' ' ','` > /dev/stderr << __CATTED__
+ bedops --everything $files > $output
+ cd $here
+ rm -rf $nm
+
+ if ( $clean > 0 ) then
+ rm -f $originput
+ endif
+__CATTED__
+
+exit 0
diff --git a/applications/bed/conversion/src/wrappers/bam2starch b/applications/bed/conversion/src/wrappers/bam2starch
new file mode 100755
index 0000000..7a01673
--- /dev/null
+++ b/applications/bed/conversion/src/wrappers/bam2starch
@@ -0,0 +1,181 @@
+#!/bin/bash
+
+#
+# convert2bed
+# Copyright (C) 2014-2016 Alex Reynolds
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+cmd="convert2bed"
+input_format="bam"
+output_format="starch"
+
+# general
+
+do_not_sort=false
+max_mem_set=false
+max_mem="2G"
+sort_tmpdir_set=false
+sort_tmpdir="/tmp"
+starch_bzip2=false
+starch_gzip=false
+starch_note=""
+starch_not_set=false
+
+# format-specific
+
+all_reads=false
+keep_header=false
+split=false
+
+help()
+{
+ ${cmd} --help-bam
+ exit $1
+}
+
+optspec=":e:zgr:m:dhaks-:"
+while getopts "$optspec" optchar; do
+ case "${optchar}" in
+ -)
+ case "${OPTARG}" in
+ starch-bzip2)
+ starch_bzip2=true
+ ;;
+ starch-gzip)
+ starch_gzip=true
+ ;;
+ sort-tmpdir)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ sort-tmpdir=*)
+ val=${OPTARG#*=}
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ starch-note)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ starch_note="\"${val}\""
+ starch_note_set=true
+ ;;
+ starch-note=*)
+ val=${OPTARG#*=}
+ starch_note="\"${val}\""
+ starch_note_set=true
+ ;;
+ max-mem)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ max-mem=*)
+ val=${OPTARG#*=}
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ do-not-sort)
+ do_not_sort=true
+ ;;
+ help)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ #echo "Parsing option: '--${OPTARG}', value: '${val}'" >&2;
+ help 0
+ ;;
+ help=*)
+ val=${OPTARG#*=}
+ opt=${OPTARG%=$val}
+ #echo "Parsing option: '--${opt}', value: '${val}'" >&2
+ help 0
+ ;;
+ help-bam)
+ help 0
+ ;;
+ all-reads)
+ all_reads=true
+ ;;
+ keep-header)
+ keep_header=true
+ ;;
+ split)
+ split=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" = 1 ] && [ "${optspec:0:1}" != ":" ]; then echo "Unknown option --${OPTARG}" >&2; fi
+ ;;
+ esac;;
+ e)
+ starch_note="\"${OPTARG}\""
+ starch_note_set=true
+ ;;
+ z)
+ starch_bzip2=true
+ ;;
+ g)
+ starch_gzip=true
+ ;;
+ r)
+ sort_tmpdir=${OPTARG}
+ sort_tmpdir_set=true
+ ;;
+ m)
+ max_mem=${OPTARG}
+ max_mem_set=true
+ ;;
+ d)
+ do_not_sort=true
+ ;;
+ h)
+ help 0
+ ;;
+ a)
+ all_reads=true
+ ;;
+ k)
+ keep_header=true
+ ;;
+ s)
+ split=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" != 1 ] || [ "${optspec:0:1}" = ":" ]; then echo "Non-option argument: '-${OPTARG}'" >&2; fi
+ ;;
+ esac
+done
+
+# base options
+
+options="--input=${input_format} --output=${output_format}"
+
+# general
+
+if [ "${max_mem_set}" = true ]; then options="${options} --max-mem=${max_mem}"; fi
+if [ "${sort_tmpdir_set}" = true ]; then options="${options} --sort-tmpdir=\"${sort_tmpdir}\""; fi
+if [ "${do_not_sort}" = true ]; then options="${options} --do-not-sort"; fi
+if [ "${starch_gzip}" = false ]; then starch_bzip2=true; else options="${options} --starch-gzip"; fi
+if [ "${starch_bzip2}" = true ]; then options="${options} --starch-bzip2"; fi
+if [ "${starch_note_set}" = true ]; then options="${options} --starch-note=\"${starch_note}\""; fi
+
+# format-specific
+
+if [ "${all_reads}" = true ]; then options="${options} --all-reads"; fi
+if [ "${keep_header}" = true ]; then options="${options} --keep-header"; fi
+if [ "${split}" = true ]; then options="${options} --split"; fi
+
+${cmd} ${options} - <&0
diff --git a/applications/bed/conversion/src/wrappers/bam2starch_gnuParallel b/applications/bed/conversion/src/wrappers/bam2starch_gnuParallel
new file mode 100755
index 0000000..187a9a1
--- /dev/null
+++ b/applications/bed/conversion/src/wrappers/bam2starch_gnuParallel
@@ -0,0 +1,137 @@
+#!/bin/tcsh -ef
+
+# bam2starch_gnuParallel
+# -----------------------------------------------------------------------
+# Copyright (C) 2011-2016 Shane Neph and Alex Reynolds
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+############################
+# some input error checking
+############################
+
+set help = "\nUsage: bam2starch_gnuParallel [--help] [--clean] <input-indexed-bam-file> [output-starch-file]\n\n"
+set help = "$help Pass in the name of an indexed BAM file to create a Starch file using GNU Parallel.\n\n"
+set help = "$help (stdin isn't supported through this wrapper script.)\n\n"
+set help = "$help Add --clean to remove <input-indexed-bam-file> after starching it up.\n\n"
+set help = "$help You can pass in the name of the output Starch archive to be created.\n"
+set help = "$help Otherwise, the output will have the same name as the input file, with an additional\n"
+set help = "$help '.bed' ending. If the input file ends with '.bam', that will be stripped off.\n"
+
+if ( $#argv == 0 ) then
+ printf "$help"
+ exit -1
+endif
+
+@ inputset = 0
+@ clean = 0
+foreach argc (`seq 1 $#argv`)
+ if ( "$argv[$argc]" == "--help" ) then
+ printf "$help"
+ exit 0
+ else if ( "$argv[$argc]" == "--clean" ) then
+ @ clean = 1
+ else if ( $argc == $#argv ) then
+ if ( $inputset > 0 ) then
+ set output = "$argv[$argc]"
+ else
+ set originput = "$argv[$argc]"
+ set output = $originput:t.bed
+ endif
+ @ inputset = 1
+ else if ( $inputset > 0 ) then
+ printf "$help"
+ printf "Multiple input files cannot be specified\n"
+ exit -1
+ else
+ set originput = "$argv[$argc]"
+ set output = $originput:t.bed
+ @ inputset = 1
+ endif
+end
+
+if ( $inputset == 0 ) then
+ printf "No input file specified\n"
+ exit -1
+else if ( ! -s $originput ) then
+ printf "Unable to find BAM file: %s\n" $originput
+ exit -1
+else if ( "$output" == "$originput:t.bed" && "$originput:e" == "bam" ) then
+ set output = "$originput:t:r.bed"
+endif
+
+set origininputindex = "$originput.bai"
+if ( ! -s $origininputindex ) then
+ printf "Unable to find associated BAI file (is the BAM file indexed?): %s\n" $origininputindex
+ exit -1
+endif
+
+###############################################################
+# new working directory to keep file pileups local to this job
+###############################################################
+
+set nm = b2bcg.`uname -a | cut -f2 -d' '`.$$
+if ( -d $nm ) then
+ rm -rf $nm
+endif
+mkdir -p $nm
+
+set here = `pwd`
+cd $nm
+if ( -s ../$originput ) then
+ set input = ../$originput
+else
+ # $originput includes absolute path
+ set input = $originput
+endif
+
+# $output:h gives back $output if there is no directory information
+if ( -d ../$output:h || "$output:h" == "$output" ) then
+ set output = $here/$output
+else if ( `echo $output | awk '{ print substr($0, 1, 1); }'` == "/" ) then
+ # $output includes absolute path
+else
+ # $output includes non-absolute path
+ set output = $here/$output
+endif
+
+#####################################################
+# extract information by chromosome and bam2bed it
+#####################################################
+
+@ chrom_count = (`samtools idxstats $input | awk '$1!~"^*"' | awk 'END { print NR }'`)
+
+samtools idxstats $input | awk '$1!~"^*"' | parallel "samtools view -b $input {} | bam2starch - > $here/$nm/{}.starch"
+
+@ converted_file_count = `find $here/$nm -name '*.starch' | wc -l`
+if ( $chrom_count != $converted_file_count ) then
+ printf "Error: Only some or no files were submitted to GNU Parallel successfully\n"
+ exit -1
+endif
+
+##################################################
+# create final bed archive and clean things up
+##################################################
+
+starchcat $here/$nm/*.starch > $output
+
+cd $here
+rm -rf $nm
+
+if ( $clean > 0 ) then
+ rm -f $originput
+endif
+
+exit 0
diff --git a/applications/bed/conversion/src/wrappers/bam2starch_sge b/applications/bed/conversion/src/wrappers/bam2starch_sge
new file mode 100755
index 0000000..b445764
--- /dev/null
+++ b/applications/bed/conversion/src/wrappers/bam2starch_sge
@@ -0,0 +1,158 @@
+#!/bin/tcsh -ef
+
+# bam2starch_sge
+# -----------------------------------------------------------------------
+# Copyright (C) 2011-2016 Shane Neph and Alex Reynolds
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+####################################################
+# cluster variables:
+# change to match your environment
+# may also require changes to 2 'qsub' calls below
+####################################################
+
+set shell = "-S /bin/tcsh"
+set queue = "-q all.q"
+set misc_opts = "-V -cwd -w e -r yes -now no"
+set soundoff = "-j n -e /dev/null -o /dev/null"
+set sge_opts = "$queue $shell $misc_opts $soundoff"
+
+############################
+# some input error checking
+############################
+
+set help = "\nUsage: bam2starch_sge [--help] [--clean] <input-indexed-bam-file> [output-starch-file]\n\n"
+set help = "$help Pass in the name of an indexed BAM file to create a Starch archive using the cluster.\n\n"
+set help = "$help (stdin isn't supported through this wrapper script, but Starch supports it natively.)\n\n"
+set help = "$help Add --clean to remove <input-indexed-bam-file> after starching it up.\n\n"
+set help = "$help You can pass in the name of the output Starch archive to be created.\n"
+set help = "$help Otherwise, the output will have the same name as the input file, with an additional\n"
+set help = "$help '.starch' ending. If the input file ends with '.bam', that will be stripped off.\n"
+
+if ( $#argv == 0 ) then
+ printf "$help"
+ exit -1
+endif
+
+@ inputset = 0
+@ clean = 0
+foreach argc (`seq 1 $#argv`)
+ if ( "$argv[$argc]" == "--help" ) then
+ printf "$help"
+ exit 0
+ else if ( "$argv[$argc]" == "--clean" ) then
+ @ clean = 1
+ else if ( $argc == $#argv ) then
+ if ( $inputset > 0 ) then
+ set output = "$argv[$argc]"
+ else
+ set originput = "$argv[$argc]"
+ set output = $originput:t.starch
+ endif
+ @ inputset = 1
+ else if ( $inputset > 0 ) then
+ printf "$help"
+ printf "Multiple input files cannot be specified\n"
+ exit -1
+ else
+ set originput = "$argv[$argc]"
+ set output = $originput:t.starch
+ @ inputset = 1
+ endif
+end
+
+if ( $inputset == 0 ) then
+ printf "No input file specified\n"
+ exit -1
+else if ( ! -s $originput ) then
+ printf "Unable to find BAM file: %s\n" $originput
+ exit -1
+else if ( "$output" == "$originput:t.starch" && "$originput:e" == "bam" ) then
+ set output = "$originput:t:r.starch"
+endif
+
+set origininputindex = "$originput.bai"
+if ( ! -s $origininputindex ) then
+ printf "Unable to find associated BAI file (is the BAM file indexed?): %s\n" $origininputindex
+ exit -1
+endif
+
+###############################################################
+# new working directory to keep file pileups local to this job
+###############################################################
+
+set nm = b2scs.`uname -a | cut -f2 -d' '`.$$
+if ( -d $nm ) then
+ rm -rf $nm
+endif
+mkdir -p $nm
+
+set here = `pwd`
+cd $nm
+if ( -s ../$originput ) then
+ set input = ../$originput
+else
+ # $originput includes absolute path
+ set input = $originput
+endif
+
+# $output:h gives back $output if there is no directory information
+if ( -d ../$output:h || "$output:h" == "$output" ) then
+ set output = $here/$output
+else if ( `echo $output | awk '{ print substr($0, 1, 1); }'` == "/" ) then
+ # $output includes absolute path
+else
+ # $output includes non-absolute path
+ set output = $here/$output
+endif
+
+#####################################################
+# extract information by chromosome and bam2starch it
+#####################################################
+
+set files = ()
+set jids = ()
+@ cntr = 0
+foreach chrom (`samtools idxstats $input | awk '$1!~"^*"'`)
+ qsub $sge_opts -N $nm.$cntr > /dev/stderr << __EXTRACTION__
+ samtools view -b $input $chrom | bam2starch - > $here/$nm/$cntr
+__EXTRACTION__
+
+ set jids = ($jids $nm.$cntr)
+ set files = ($files $here/$nm/$cntr)
+ @ cntr++
+end
+
+if ( $cntr == 0 ) then
+ printf "Program problem: no files were submitted to the cluster?\n"
+ exit -1
+endif
+
+##################################################
+# create final starch archive and clean things up
+##################################################
+
+qsub $sge_opts -N $nm.union -hold_jid `echo $jids | tr ' ' ','` > /dev/stderr << __CATTED__
+ starchcat $files > $output
+ cd $here
+ rm -rf $nm
+
+ if ( $clean > 0 ) then
+ rm -f $originput
+ endif
+__CATTED__
+
+exit 0
diff --git a/applications/bed/conversion/src/wrappers/gff2bed b/applications/bed/conversion/src/wrappers/gff2bed
new file mode 100755
index 0000000..5937e01
--- /dev/null
+++ b/applications/bed/conversion/src/wrappers/gff2bed
@@ -0,0 +1,132 @@
+#!/bin/bash
+
+#
+# convert2bed
+# Copyright (C) 2014-2016 Alex Reynolds
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+cmd="convert2bed"
+input_format="gff"
+output_format="bed"
+
+# general
+
+do_not_sort=false
+max_mem_set=false
+max_mem="2G"
+sort_tmpdir_set=false
+sort_tmpdir="/tmp"
+
+# format-specific
+
+keep_header=false
+
+help()
+{
+ ${cmd} --help-gff
+ exit $1
+}
+
+optspec=":r:m:dhk-:"
+while getopts "$optspec" optchar; do
+ case "${optchar}" in
+ -)
+ case "${OPTARG}" in
+ sort-tmpdir)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ sort-tmpdir=*)
+ val=${OPTARG#*=}
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ max-mem)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ max-mem=*)
+ val=${OPTARG#*=}
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ help)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ #echo "Parsing option: '--${OPTARG}', value: '${val}'" >&2;
+ help 0
+ ;;
+ help=*)
+ val=${OPTARG#*=}
+ opt=${OPTARG%=$val}
+ #echo "Parsing option: '--${opt}', value: '${val}'" >&2
+ help 0
+ ;;
+ do-not-sort)
+ do_not_sort=true
+ ;;
+ help-gff)
+ help 0
+ ;;
+ keep-header)
+ keep_header=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" = 1 ] && [ "${optspec:0:1}" != ":" ]; then echo "Unknown option --${OPTARG}" >&2; fi
+ ;;
+ esac;;
+ r)
+ sort_tmpdir=${OPTARG}
+ sort_tmpdir_set=true
+ ;;
+ m)
+ max_mem=${OPTARG}
+ max_mem_set=true
+ ;;
+ d)
+ do_not_sort=true
+ ;;
+ h)
+ help 0
+ ;;
+ k)
+ keep_header=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" != 1 ] || [ "${optspec:0:1}" = ":" ]; then echo "Non-option argument: '-${OPTARG}'" >&2; fi
+ ;;
+ esac
+done
+
+# base options
+
+options="--input=${input_format} --output=${output_format}"
+
+# general
+
+if [ "${max_mem_set}" = true ]; then options="${options} --max-mem=${max_mem}"; fi
+if [ "${sort_tmpdir_set}" = true ]; then options="${options} --sort-tmpdir=${sort_tmpdir}"; fi
+if [ "${do_not_sort}" = true ]; then options="${options} --do-not-sort"; fi
+
+# format-specific
+
+if [ "${keep_header}" = true ]; then options="${options} --keep-header"; fi
+
+${cmd} ${options} - <&0
diff --git a/applications/bed/conversion/src/wrappers/gff2starch b/applications/bed/conversion/src/wrappers/gff2starch
new file mode 100755
index 0000000..e32f003
--- /dev/null
+++ b/applications/bed/conversion/src/wrappers/gff2starch
@@ -0,0 +1,165 @@
+#!/bin/bash
+
+#
+# convert2bed
+# Copyright (C) 2014-2016 Alex Reynolds
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+cmd="convert2bed"
+input_format="gff"
+output_format="starch"
+
+# general
+
+do_not_sort=false
+max_mem_set=false
+max_mem="2G"
+sort_tmpdir_set=false
+sort_tmpdir="/tmp"
+starch_bzip2=false
+starch_gzip=false
+starch_note=""
+starch_not_set=false
+
+# format-specific
+
+keep_header=false
+
+help()
+{
+ ${cmd} --help-gff
+ exit $1
+}
+
+optspec=":e:zgr:m:dhk-:"
+while getopts "$optspec" optchar; do
+ case "${optchar}" in
+ -)
+ case "${OPTARG}" in
+ starch-bzip2)
+ starch_bzip2=true
+ ;;
+ starch-gzip)
+ starch_gzip=true
+ ;;
+ sort-tmpdir)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ sort-tmpdir=*)
+ val=${OPTARG#*=}
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ starch-note)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ starch_note="\"${val}\""
+ starch_note_set=true
+ ;;
+ starch-note=*)
+ val=${OPTARG#*=}
+ starch_note="\"${val}\""
+ starch_note_set=true
+ ;;
+ max-mem)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ max-mem=*)
+ val=${OPTARG#*=}
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ do-not-sort)
+ do_not_sort=true
+ ;;
+ help)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ #echo "Parsing option: '--${OPTARG}', value: '${val}'" >&2;
+ help 0
+ ;;
+ help=*)
+ val=${OPTARG#*=}
+ opt=${OPTARG%=$val}
+ #echo "Parsing option: '--${opt}', value: '${val}'" >&2
+ help 0
+ ;;
+ help-gff)
+ help 0
+ ;;
+ keep-header)
+ keep_header=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" = 1 ] && [ "${optspec:0:1}" != ":" ]; then echo "Unknown option --${OPTARG}" >&2; fi
+ ;;
+ esac;;
+ e)
+ starch_note="\"${OPTARG}\""
+ starch_note_set=true
+ ;;
+ z)
+ starch_bzip2=true
+ ;;
+ g)
+ starch_gzip=true
+ ;;
+ r)
+ sort_tmpdir=${OPTARG}
+ sort_tmpdir_set=true
+ ;;
+ m)
+ max_mem=${OPTARG}
+ max_mem_set=true
+ ;;
+ d)
+ do_not_sort=true
+ ;;
+ h)
+ help 0
+ ;;
+ k)
+ keep_header=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" != 1 ] || [ "${optspec:0:1}" = ":" ]; then echo "Non-option argument: '-${OPTARG}'" >&2; fi
+ ;;
+ esac
+done
+
+# base options
+
+options="--input=${input_format} --output=${output_format}"
+
+# general
+
+if [ "${max_mem_set}" = true ]; then options="${options} --max-mem=${max_mem}"; fi
+if [ "${sort_tmpdir_set}" = true ]; then options="${options} --sort-tmpdir=\"${sort_tmpdir}\""; fi
+if [ "${do_not_sort}" = true ]; then options="${options} --do-not-sort"; fi
+if [ "${starch_gzip}" = false ]; then starch_bzip2=true; else options="${options} --starch-gzip"; fi
+if [ "${starch_bzip2}" = true ]; then options="${options} --starch-bzip2"; fi
+if [ "${starch_note_set}" = true ]; then options="${options} --starch-note=\"${starch_note}\""; fi
+
+# format-specific
+
+if [ "${keep_header}" = true ]; then options="${options} --keep-header"; fi
+
+${cmd} ${options} - <&0
diff --git a/applications/bed/conversion/src/wrappers/gtf2bed b/applications/bed/conversion/src/wrappers/gtf2bed
new file mode 100755
index 0000000..e84abb5
--- /dev/null
+++ b/applications/bed/conversion/src/wrappers/gtf2bed
@@ -0,0 +1,122 @@
+#!/bin/bash
+
+#
+# convert2bed
+# Copyright (C) 2014-2016 Alex Reynolds
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+cmd="convert2bed"
+input_format="gtf"
+output_format="bed"
+
+# general
+
+do_not_sort=false
+max_mem_set=false
+max_mem="2G"
+sort_tmpdir_set=false
+sort_tmpdir="/tmp"
+
+# format-specific
+
+help()
+{
+ ${cmd} --help-gtf
+ exit $1
+}
+
+optspec=":r:m:dh-:"
+while getopts "$optspec" optchar; do
+ case "${optchar}" in
+ -)
+ case "${OPTARG}" in
+ sort-tmpdir)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ sort-tmpdir=*)
+ val=${OPTARG#*=}
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ max-mem)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ max-mem=*)
+ val=${OPTARG#*=}
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ help)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ #echo "Parsing option: '--${OPTARG}', value: '${val}'" >&2;
+ help 0
+ ;;
+ help=*)
+ val=${OPTARG#*=}
+ opt=${OPTARG%=$val}
+ #echo "Parsing option: '--${opt}', value: '${val}'" >&2
+ help 0
+ ;;
+ do-not-sort)
+ do_not_sort=true
+ ;;
+ help-gtf)
+ help 0
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" = 1 ] && [ "${optspec:0:1}" != ":" ]; then echo "Unknown option --${OPTARG}" >&2; fi
+ ;;
+ esac;;
+ r)
+ sort_tmpdir=${OPTARG}
+ sort_tmpdir_set=true
+ ;;
+ m)
+ max_mem=${OPTARG}
+ max_mem_set=true
+ ;;
+ d)
+ do_not_sort=true
+ ;;
+ h)
+ help 0
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" != 1 ] || [ "${optspec:0:1}" = ":" ]; then echo "Non-option argument: '-${OPTARG}'" >&2; fi
+ ;;
+ esac
+done
+
+# base options
+
+options="--input=${input_format} --output=${output_format}"
+
+# general
+
+if [ "${max_mem_set}" = true ]; then options="${options} --max-mem=${max_mem}"; fi
+if [ "${sort_tmpdir_set}" = true ]; then options="${options} --sort-tmpdir=${sort_tmpdir}"; fi
+if [ "${do_not_sort}" = true ]; then options="${options} --do-not-sort"; fi
+
+# format-specific
+
+${cmd} ${options} - <&0
diff --git a/applications/bed/conversion/src/wrappers/gtf2starch b/applications/bed/conversion/src/wrappers/gtf2starch
new file mode 100755
index 0000000..97f0237
--- /dev/null
+++ b/applications/bed/conversion/src/wrappers/gtf2starch
@@ -0,0 +1,155 @@
+#!/bin/bash
+
+#
+# convert2bed
+# Copyright (C) 2014-2016 Alex Reynolds
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+cmd="convert2bed"
+input_format="gtf"
+output_format="starch"
+
+# general
+
+do_not_sort=false
+max_mem_set=false
+max_mem="2G"
+sort_tmpdir_set=false
+sort_tmpdir="/tmp"
+starch_bzip2=false
+starch_gzip=false
+starch_note=""
+starch_not_set=false
+
+# format-specific
+
+help()
+{
+ ${cmd} --help-gtf
+ exit $1
+}
+
+optspec=":e:zgr:m:dh-:"
+while getopts "$optspec" optchar; do
+ case "${optchar}" in
+ -)
+ case "${OPTARG}" in
+ starch-bzip2)
+ starch_bzip2=true
+ ;;
+ starch-gzip)
+ starch_gzip=true
+ ;;
+ sort-tmpdir)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ sort-tmpdir=*)
+ val=${OPTARG#*=}
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ starch-note)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ starch_note="\"${val}\""
+ starch_note_set=true
+ ;;
+ starch-note=*)
+ val=${OPTARG#*=}
+ starch_note="\"${val}\""
+ starch_note_set=true
+ ;;
+ max-mem)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ max-mem=*)
+ val=${OPTARG#*=}
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ do-not-sort)
+ do_not_sort=true
+ ;;
+ help)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ #echo "Parsing option: '--${OPTARG}', value: '${val}'" >&2;
+ help 0
+ ;;
+ help=*)
+ val=${OPTARG#*=}
+ opt=${OPTARG%=$val}
+ #echo "Parsing option: '--${opt}', value: '${val}'" >&2
+ help 0
+ ;;
+ help-gtf)
+ help 0
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" = 1 ] && [ "${optspec:0:1}" != ":" ]; then echo "Unknown option --${OPTARG}" >&2; fi
+ ;;
+ esac;;
+ e)
+ starch_note="\"${OPTARG}\""
+ starch_note_set=true
+ ;;
+ z)
+ starch_bzip2=true
+ ;;
+ g)
+ starch_gzip=true
+ ;;
+ r)
+ sort_tmpdir=${OPTARG}
+ sort_tmpdir_set=true
+ ;;
+ m)
+ max_mem=${OPTARG}
+ max_mem_set=true
+ ;;
+ d)
+ do_not_sort=true
+ ;;
+ h)
+ help 0
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" != 1 ] || [ "${optspec:0:1}" = ":" ]; then echo "Non-option argument: '-${OPTARG}'" >&2; fi
+ ;;
+ esac
+done
+
+# base options
+
+options="--input=${input_format} --output=${output_format}"
+
+# general
+
+if [ "${max_mem_set}" = true ]; then options="${options} --max-mem=${max_mem}"; fi
+if [ "${sort_tmpdir_set}" = true ]; then options="${options} --sort-tmpdir=\"${sort_tmpdir}\""; fi
+if [ "${do_not_sort}" = true ]; then options="${options} --do-not-sort"; fi
+if [ "${starch_gzip}" = false ]; then starch_bzip2=true; else options="${options} --starch-gzip"; fi
+if [ "${starch_bzip2}" = true ]; then options="${options} --starch-bzip2"; fi
+if [ "${starch_note_set}" = true ]; then options="${options} --starch-note=\"${starch_note}\""; fi
+
+# format-specific
+
+${cmd} ${options} - <&0
diff --git a/applications/bed/conversion/src/wrappers/gvf2bed b/applications/bed/conversion/src/wrappers/gvf2bed
new file mode 100755
index 0000000..f368bb9
--- /dev/null
+++ b/applications/bed/conversion/src/wrappers/gvf2bed
@@ -0,0 +1,132 @@
+#!/bin/bash
+
+#
+# convert2bed
+# Copyright (C) 2014-2016 Alex Reynolds
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+cmd="convert2bed"
+input_format="gvf"
+output_format="bed"
+
+# general
+
+do_not_sort=false
+max_mem_set=false
+max_mem="2G"
+sort_tmpdir_set=false
+sort_tmpdir="/tmp"
+
+# format-specific
+
+keep_header=false
+
+help()
+{
+ ${cmd} --help-gvf
+ exit $1
+}
+
+optspec=":r:m:dhk-:"
+while getopts "$optspec" optchar; do
+ case "${optchar}" in
+ -)
+ case "${OPTARG}" in
+ sort-tmpdir)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ sort-tmpdir=*)
+ val=${OPTARG#*=}
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ max-mem)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ max-mem=*)
+ val=${OPTARG#*=}
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ help)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ #echo "Parsing option: '--${OPTARG}', value: '${val}'" >&2;
+ help 0
+ ;;
+ help=*)
+ val=${OPTARG#*=}
+ opt=${OPTARG%=$val}
+ #echo "Parsing option: '--${opt}', value: '${val}'" >&2
+ help 0
+ ;;
+ do-not-sort)
+ do_not_sort=true
+ ;;
+ help-gvf)
+ help 0
+ ;;
+ keep-header)
+ keep_header=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" = 1 ] && [ "${optspec:0:1}" != ":" ]; then echo "Unknown option --${OPTARG}" >&2; fi
+ ;;
+ esac;;
+ r)
+ sort_tmpdir=${OPTARG}
+ sort_tmpdir_set=true
+ ;;
+ m)
+ max_mem=${OPTARG}
+ max_mem_set=true
+ ;;
+ d)
+ do_not_sort=true
+ ;;
+ h)
+ help 0
+ ;;
+ k)
+ keep_header=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" != 1 ] || [ "${optspec:0:1}" = ":" ]; then echo "Non-option argument: '-${OPTARG}'" >&2; fi
+ ;;
+ esac
+done
+
+# base options
+
+options="--input=${input_format} --output=${output_format}"
+
+# general
+
+if [ "${max_mem_set}" = true ]; then options="${options} --max-mem=${max_mem}"; fi
+if [ "${sort_tmpdir_set}" = true ]; then options="${options} --sort-tmpdir=${sort_tmpdir}"; fi
+if [ "${do_not_sort}" = true ]; then options="${options} --do-not-sort"; fi
+
+# format-specific
+
+if [ "${keep_header}" = true ]; then options="${options} --keep-header"; fi
+
+${cmd} ${options} - <&0
diff --git a/applications/bed/conversion/src/wrappers/gvf2starch b/applications/bed/conversion/src/wrappers/gvf2starch
new file mode 100755
index 0000000..387578b
--- /dev/null
+++ b/applications/bed/conversion/src/wrappers/gvf2starch
@@ -0,0 +1,165 @@
+#!/bin/bash
+
+#
+# convert2bed
+# Copyright (C) 2014-2016 Alex Reynolds
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+cmd="convert2bed"
+input_format="gvf"
+output_format="starch"
+
+# general
+
+do_not_sort=false
+max_mem_set=false
+max_mem="2G"
+sort_tmpdir_set=false
+sort_tmpdir="/tmp"
+starch_bzip2=false
+starch_gzip=false
+starch_note=""
+starch_not_set=false
+
+# format-specific
+
+keep_header=false
+
+help()
+{
+ ${cmd} --help-gvf
+ exit $1
+}
+
+optspec=":e:zgr:m:dhk-:"
+while getopts "$optspec" optchar; do
+ case "${optchar}" in
+ -)
+ case "${OPTARG}" in
+ starch-bzip2)
+ starch_bzip2=true
+ ;;
+ starch-gzip)
+ starch_gzip=true
+ ;;
+ sort-tmpdir)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ sort-tmpdir=*)
+ val=${OPTARG#*=}
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ starch-note)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ starch_note="\"${val}\""
+ starch_note_set=true
+ ;;
+ starch-note=*)
+ val=${OPTARG#*=}
+ starch_note="\"${val}\""
+ starch_note_set=true
+ ;;
+ max-mem)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ max-mem=*)
+ val=${OPTARG#*=}
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ do-not-sort)
+ do_not_sort=true
+ ;;
+ help)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ #echo "Parsing option: '--${OPTARG}', value: '${val}'" >&2;
+ help 0
+ ;;
+ help=*)
+ val=${OPTARG#*=}
+ opt=${OPTARG%=$val}
+ #echo "Parsing option: '--${opt}', value: '${val}'" >&2
+ help 0
+ ;;
+ help-gvf)
+ help 0
+ ;;
+ keep-header)
+ keep_header=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" = 1 ] && [ "${optspec:0:1}" != ":" ]; then echo "Unknown option --${OPTARG}" >&2; fi
+ ;;
+ esac;;
+ e)
+ starch_note="\"${OPTARG}\""
+ starch_note_set=true
+ ;;
+ z)
+ starch_bzip2=true
+ ;;
+ g)
+ starch_gzip=true
+ ;;
+ r)
+ sort_tmpdir=${OPTARG}
+ sort_tmpdir_set=true
+ ;;
+ m)
+ max_mem=${OPTARG}
+ max_mem_set=true
+ ;;
+ d)
+ do_not_sort=true
+ ;;
+ h)
+ help 0
+ ;;
+ k)
+ keep_header=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" != 1 ] || [ "${optspec:0:1}" = ":" ]; then echo "Non-option argument: '-${OPTARG}'" >&2; fi
+ ;;
+ esac
+done
+
+# base options
+
+options="--input=${input_format} --output=${output_format}"
+
+# general
+
+if [ "${max_mem_set}" = true ]; then options="${options} --max-mem=${max_mem}"; fi
+if [ "${sort_tmpdir_set}" = true ]; then options="${options} --sort-tmpdir=\"${sort_tmpdir}\""; fi
+if [ "${do_not_sort}" = true ]; then options="${options} --do-not-sort"; fi
+if [ "${starch_gzip}" = false ]; then starch_bzip2=true; else options="${options} --starch-gzip"; fi
+if [ "${starch_bzip2}" = true ]; then options="${options} --starch-bzip2"; fi
+if [ "${starch_note_set}" = true ]; then options="${options} --starch-note=\"${starch_note}\""; fi
+
+# format-specific
+
+if [ "${keep_header}" = true ]; then options="${options} --keep-header"; fi
+
+${cmd} ${options} - <&0
diff --git a/applications/bed/conversion/src/wrappers/psl2bed b/applications/bed/conversion/src/wrappers/psl2bed
new file mode 100755
index 0000000..ce6feb2
--- /dev/null
+++ b/applications/bed/conversion/src/wrappers/psl2bed
@@ -0,0 +1,140 @@
+#!/bin/bash
+
+#
+# convert2bed
+# Copyright (C) 2014-2016 Alex Reynolds
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+cmd="convert2bed"
+input_format="psl"
+output_format="bed"
+
+# general
+
+do_not_sort=false
+max_mem_set=false
+max_mem="2G"
+sort_tmpdir_set=false
+sort_tmpdir="/tmp"
+
+# format-specific
+
+keep_header=false
+split=false
+
+help()
+{
+ ${cmd} --help-psl
+ exit $1
+}
+
+optspec=":r:m:dhks-:"
+while getopts "$optspec" optchar; do
+ case "${optchar}" in
+ -)
+ case "${OPTARG}" in
+ sort-tmpdir)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ sort-tmpdir=*)
+ val=${OPTARG#*=}
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ max-mem)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ max-mem=*)
+ val=${OPTARG#*=}
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ do-not-sort)
+ do_not_sort=true
+ ;;
+ help)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ #echo "Parsing option: '--${OPTARG}', value: '${val}'" >&2;
+ help 0
+ ;;
+ help=*)
+ val=${OPTARG#*=}
+ opt=${OPTARG%=$val}
+ #echo "Parsing option: '--${opt}', value: '${val}'" >&2
+ help 0
+ ;;
+ help-psl)
+ help 0
+ ;;
+ keep-header)
+ keep_header=true
+ ;;
+ split)
+ split=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" = 1 ] && [ "${optspec:0:1}" != ":" ]; then echo "Unknown option --${OPTARG}" >&2; fi
+ ;;
+ esac;;
+ r)
+ sort_tmpdir=${OPTARG}
+ sort_tmpdir_set=true
+ ;;
+ m)
+ max_mem=${OPTARG}
+ max_mem_set=true
+ ;;
+ d)
+ do_not_sort=true
+ ;;
+ h)
+ help 0
+ ;;
+ k)
+ keep_header=true
+ ;;
+ s)
+ split=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" != 1 ] || [ "${optspec:0:1}" = ":" ]; then echo "Non-option argument: '-${OPTARG}'" >&2; fi
+ ;;
+ esac
+done
+
+# base options
+
+options="--input=${input_format} --output=${output_format}"
+
+# general
+
+if [ "${max_mem_set}" = true ]; then options="${options} --max-mem=${max_mem}"; fi
+if [ "${sort_tmpdir_set}" = true ]; then options="${options} --sort-tmpdir=${sort_tmpdir}"; fi
+if [ "${do_not_sort}" = true ]; then options="${options} --do-not-sort"; fi
+
+# format-specific
+
+if [ "${keep_header}" = true ]; then options="${options} --keep-header"; fi
+if [ "${split}" = true ]; then options="${options} --split"; fi
+
+${cmd} ${options} - <&0
diff --git a/applications/bed/conversion/src/wrappers/psl2starch b/applications/bed/conversion/src/wrappers/psl2starch
new file mode 100755
index 0000000..5396625
--- /dev/null
+++ b/applications/bed/conversion/src/wrappers/psl2starch
@@ -0,0 +1,173 @@
+#!/bin/bash
+
+#
+# convert2bed
+# Copyright (C) 2014-2016 Alex Reynolds
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+cmd="convert2bed"
+input_format="psl"
+output_format="starch"
+
+# general
+
+do_not_sort=false
+max_mem_set=false
+max_mem="2G"
+sort_tmpdir_set=false
+sort_tmpdir="/tmp"
+starch_bzip2=false
+starch_gzip=false
+starch_note=""
+starch_not_set=false
+
+# format-specific
+
+keep_header=false
+split=false
+
+help()
+{
+ ${cmd} --help-psl
+ exit $1
+}
+
+optspec=":e:zgr:m:dhks-:"
+while getopts "$optspec" optchar; do
+ case "${optchar}" in
+ -)
+ case "${OPTARG}" in
+ starch-bzip2)
+ starch_bzip2=true
+ ;;
+ starch-gzip)
+ starch_gzip=true
+ ;;
+ sort-tmpdir)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ sort-tmpdir=*)
+ val=${OPTARG#*=}
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ starch-note)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ starch_note="\"${val}\""
+ starch_note_set=true
+ ;;
+ starch-note=*)
+ val=${OPTARG#*=}
+ starch_note="\"${val}\""
+ starch_note_set=true
+ ;;
+ max-mem)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ max-mem=*)
+ val=${OPTARG#*=}
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ do-not-sort)
+ do_not_sort=true
+ ;;
+ help)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ #echo "Parsing option: '--${OPTARG}', value: '${val}'" >&2;
+ help 0
+ ;;
+ help=*)
+ val=${OPTARG#*=}
+ opt=${OPTARG%=$val}
+ #echo "Parsing option: '--${opt}', value: '${val}'" >&2
+ help 0
+ ;;
+ help-psl)
+ help 0
+ ;;
+ keep-header)
+ keep_header=true
+ ;;
+ split)
+ split=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" = 1 ] && [ "${optspec:0:1}" != ":" ]; then echo "Unknown option --${OPTARG}" >&2; fi
+ ;;
+ esac;;
+ e)
+ starch_note="\"${OPTARG}\""
+ starch_note_set=true
+ ;;
+ z)
+ starch_bzip2=true
+ ;;
+ g)
+ starch_gzip=true
+ ;;
+ r)
+ sort_tmpdir=${OPTARG}
+ sort_tmpdir_set=true
+ ;;
+ m)
+ max_mem=${OPTARG}
+ max_mem_set=true
+ ;;
+ d)
+ do_not_sort=true
+ ;;
+ h)
+ help 0
+ ;;
+ k)
+ keep_header=true
+ ;;
+ s)
+ split=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" != 1 ] || [ "${optspec:0:1}" = ":" ]; then echo "Non-option argument: '-${OPTARG}'" >&2; fi
+ ;;
+ esac
+done
+
+# base options
+
+options="--input=${input_format} --output=${output_format}"
+
+# general
+
+if [ "${max_mem_set}" = true ]; then options="${options} --max-mem=${max_mem}"; fi
+if [ "${sort_tmpdir_set}" = true ]; then options="${options} --sort-tmpdir=\"${sort_tmpdir}\""; fi
+if [ "${do_not_sort}" = true ]; then options="${options} --do-not-sort"; fi
+if [ "${starch_gzip}" = false ]; then starch_bzip2=true; else options="${options} --starch-gzip"; fi
+if [ "${starch_bzip2}" = true ]; then options="${options} --starch-bzip2"; fi
+if [ "${starch_note_set}" = true ]; then options="${options} --starch-note=\"${starch_note}\""; fi
+
+# format-specific
+
+if [ "${keep_header}" = true ]; then options="${options} --keep-header"; fi
+if [ "${split}" = true ]; then options="${options} --split"; fi
+
+${cmd} ${options} - <&0
diff --git a/applications/bed/conversion/src/wrappers/rmsk2bed b/applications/bed/conversion/src/wrappers/rmsk2bed
new file mode 100755
index 0000000..0ce29bb
--- /dev/null
+++ b/applications/bed/conversion/src/wrappers/rmsk2bed
@@ -0,0 +1,132 @@
+#!/bin/bash
+
+#
+# convert2bed
+# Copyright (C) 2014-2016 Alex Reynolds
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+cmd="convert2bed"
+input_format="rmsk"
+output_format="bed"
+
+# general
+
+do_not_sort=false
+max_mem_set=false
+max_mem="2G"
+sort_tmpdir_set=false
+sort_tmpdir="/tmp"
+
+# format-specific
+
+keep_header=false
+
+help()
+{
+ ${cmd} --help-rmsk
+ exit $1
+}
+
+optspec=":r:m:dhk-:"
+while getopts "$optspec" optchar; do
+ case "${optchar}" in
+ -)
+ case "${OPTARG}" in
+ sort-tmpdir)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ sort-tmpdir=*)
+ val=${OPTARG#*=}
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ max-mem)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ max-mem=*)
+ val=${OPTARG#*=}
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ help)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ #echo "Parsing option: '--${OPTARG}', value: '${val}'" >&2;
+ help 0
+ ;;
+ help=*)
+ val=${OPTARG#*=}
+ opt=${OPTARG%=$val}
+ #echo "Parsing option: '--${opt}', value: '${val}'" >&2
+ help 0
+ ;;
+ do-not-sort)
+ do_not_sort=true
+ ;;
+ help-rmsk)
+ help 0
+ ;;
+ keep-header)
+ keep_header=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" = 1 ] && [ "${optspec:0:1}" != ":" ]; then echo "Unknown option --${OPTARG}" >&2; fi
+ ;;
+ esac;;
+ r)
+ sort_tmpdir=${OPTARG}
+ sort_tmpdir_set=true
+ ;;
+ m)
+ max_mem=${OPTARG}
+ max_mem_set=true
+ ;;
+ d)
+ do_not_sort=true
+ ;;
+ h)
+ help 0
+ ;;
+ k)
+ keep_header=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" != 1 ] || [ "${optspec:0:1}" = ":" ]; then echo "Non-option argument: '-${OPTARG}'" >&2; fi
+ ;;
+ esac
+done
+
+# base options
+
+options="--input=${input_format} --output=${output_format}"
+
+# general
+
+if [ "${max_mem_set}" = true ]; then options="${options} --max-mem=${max_mem}"; fi
+if [ "${sort_tmpdir_set}" = true ]; then options="${options} --sort-tmpdir=${sort_tmpdir}"; fi
+if [ "${do_not_sort}" = true ]; then options="${options} --do-not-sort"; fi
+
+# format-specific
+
+if [ "${keep_header}" = true ]; then options="${options} --keep-header"; fi
+
+${cmd} ${options} - <&0
diff --git a/applications/bed/conversion/src/wrappers/rmsk2starch b/applications/bed/conversion/src/wrappers/rmsk2starch
new file mode 100755
index 0000000..d946c17
--- /dev/null
+++ b/applications/bed/conversion/src/wrappers/rmsk2starch
@@ -0,0 +1,165 @@
+#!/bin/bash
+
+#
+# convert2bed
+# Copyright (C) 2014-2016 Alex Reynolds
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+cmd="convert2bed"
+input_format="rmsk"
+output_format="starch"
+
+# general
+
+do_not_sort=false
+max_mem_set=false
+max_mem="2G"
+sort_tmpdir_set=false
+sort_tmpdir="/tmp"
+starch_bzip2=false
+starch_gzip=false
+starch_note=""
+starch_not_set=false
+
+# format-specific
+
+keep_header=false
+
+help()
+{
+ ${cmd} --help-rmsk
+ exit $1
+}
+
+optspec=":e:zgr:m:dhk-:"
+while getopts "$optspec" optchar; do
+ case "${optchar}" in
+ -)
+ case "${OPTARG}" in
+ starch-bzip2)
+ starch_bzip2=true
+ ;;
+ starch-gzip)
+ starch_gzip=true
+ ;;
+ sort-tmpdir)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ sort-tmpdir=*)
+ val=${OPTARG#*=}
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ starch-note)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ starch_note="\"${val}\""
+ starch_note_set=true
+ ;;
+ starch-note=*)
+ val=${OPTARG#*=}
+ starch_note="\"${val}\""
+ starch_note_set=true
+ ;;
+ max-mem)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ max-mem=*)
+ val=${OPTARG#*=}
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ do-not-sort)
+ do_not_sort=true
+ ;;
+ help)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ #echo "Parsing option: '--${OPTARG}', value: '${val}'" >&2;
+ help 0
+ ;;
+ help=*)
+ val=${OPTARG#*=}
+ opt=${OPTARG%=$val}
+ #echo "Parsing option: '--${opt}', value: '${val}'" >&2
+ help 0
+ ;;
+ help-rmsk)
+ help 0
+ ;;
+ keep-header)
+ keep_header=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" = 1 ] && [ "${optspec:0:1}" != ":" ]; then echo "Unknown option --${OPTARG}" >&2; fi
+ ;;
+ esac;;
+ e)
+ starch_note="\"${OPTARG}\""
+ starch_note_set=true
+ ;;
+ z)
+ starch_bzip2=true
+ ;;
+ g)
+ starch_gzip=true
+ ;;
+ r)
+ sort_tmpdir=${OPTARG}
+ sort_tmpdir_set=true
+ ;;
+ m)
+ max_mem=${OPTARG}
+ max_mem_set=true
+ ;;
+ d)
+ do_not_sort=true
+ ;;
+ h)
+ help 0
+ ;;
+ k)
+ keep_header=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" != 1 ] || [ "${optspec:0:1}" = ":" ]; then echo "Non-option argument: '-${OPTARG}'" >&2; fi
+ ;;
+ esac
+done
+
+# base options
+
+options="--input=${input_format} --output=${output_format}"
+
+# general
+
+if [ "${max_mem_set}" = true ]; then options="${options} --max-mem=${max_mem}"; fi
+if [ "${sort_tmpdir_set}" = true ]; then options="${options} --sort-tmpdir=\"${sort_tmpdir}\""; fi
+if [ "${do_not_sort}" = true ]; then options="${options} --do-not-sort"; fi
+if [ "${starch_gzip}" = false ]; then starch_bzip2=true; else options="${options} --starch-gzip"; fi
+if [ "${starch_bzip2}" = true ]; then options="${options} --starch-bzip2"; fi
+if [ "${starch_note_set}" = true ]; then options="${options} --starch-note=\"${starch_note}\""; fi
+
+# format-specific
+
+if [ "${keep_header}" = true ]; then options="${options} --keep-header"; fi
+
+${cmd} ${options} - <&0
diff --git a/applications/bed/conversion/src/wrappers/sam2bed b/applications/bed/conversion/src/wrappers/sam2bed
new file mode 100755
index 0000000..69e49b9
--- /dev/null
+++ b/applications/bed/conversion/src/wrappers/sam2bed
@@ -0,0 +1,148 @@
+#!/bin/bash
+
+#
+# convert2bed
+# Copyright (C) 2014-2016 Alex Reynolds
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+cmd="convert2bed"
+input_format="sam"
+output_format="bed"
+
+# general
+
+do_not_sort=false
+max_mem_set=false
+max_mem="2G"
+sort_tmpdir_set=false
+sort_tmpdir="/tmp"
+
+# format-specific
+
+all_reads=false
+keep_header=false
+split=false
+
+help()
+{
+ ${cmd} --help-sam
+ exit $1
+}
+
+optspec=":r:m:dhaks-:"
+while getopts "$optspec" optchar; do
+ case "${optchar}" in
+ -)
+ case "${OPTARG}" in
+ sort-tmpdir)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ sort-tmpdir=*)
+ val=${OPTARG#*=}
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ max-mem)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ max-mem=*)
+ val=${OPTARG#*=}
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ do-not-sort)
+ do_not_sort=true
+ ;;
+ help)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ #echo "Parsing option: '--${OPTARG}', value: '${val}'" >&2;
+ help 0
+ ;;
+ help=*)
+ val=${OPTARG#*=}
+ opt=${OPTARG%=$val}
+ #echo "Parsing option: '--${opt}', value: '${val}'" >&2
+ help 0
+ ;;
+ help-sam)
+ help 0
+ ;;
+ all-reads)
+ all_reads=true
+ ;;
+ keep-header)
+ keep_header=true
+ ;;
+ split)
+ split=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" = 1 ] && [ "${optspec:0:1}" != ":" ]; then echo "Unknown option --${OPTARG}" >&2; fi
+ ;;
+ esac;;
+ r)
+ sort_tmpdir=${OPTARG}
+ sort_tmpdir_set=true
+ ;;
+ m)
+ max_mem=${OPTARG}
+ max_mem_set=true
+ ;;
+ d)
+ do_not_sort=true
+ ;;
+ h)
+ help 0
+ ;;
+ a)
+ all_reads=true
+ ;;
+ k)
+ keep_header=true
+ ;;
+ s)
+ split=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" != 1 ] || [ "${optspec:0:1}" = ":" ]; then echo "Non-option argument: '-${OPTARG}'" >&2; fi
+ ;;
+ esac
+done
+
+# base options
+
+options="--input=${input_format} --output=${output_format}"
+
+# general
+
+if [ "${max_mem_set}" = true ]; then options="${options} --max-mem=${max_mem}"; fi
+if [ "${sort_tmpdir_set}" = true ]; then options="${options} --sort-tmpdir=${sort_tmpdir}"; fi
+if [ "${do_not_sort}" = true ]; then options="${options} --do-not-sort"; fi
+
+# format-specific
+
+if [ "${all_reads}" = true ]; then options="${options} --all-reads"; fi
+if [ "${keep_header}" = true ]; then options="${options} --keep-header"; fi
+if [ "${split}" = true ]; then options="${options} --split"; fi
+
+${cmd} ${options} - <&0
diff --git a/applications/bed/conversion/src/wrappers/sam2starch b/applications/bed/conversion/src/wrappers/sam2starch
new file mode 100755
index 0000000..12a38c6
--- /dev/null
+++ b/applications/bed/conversion/src/wrappers/sam2starch
@@ -0,0 +1,181 @@
+#!/bin/bash
+
+#
+# convert2bed
+# Copyright (C) 2014-2016 Alex Reynolds
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+cmd="convert2bed"
+input_format="sam"
+output_format="starch"
+
+# general
+
+do_not_sort=false
+max_mem_set=false
+max_mem="2G"
+sort_tmpdir_set=false
+sort_tmpdir="/tmp"
+starch_bzip2=false
+starch_gzip=false
+starch_note=""
+starch_not_set=false
+
+# format-specific
+
+all_reads=false
+keep_header=false
+split=false
+
+help()
+{
+ ${cmd} --help-sam
+ exit $1
+}
+
+optspec=":e:zgr:m:dhaks-:"
+while getopts "$optspec" optchar; do
+ case "${optchar}" in
+ -)
+ case "${OPTARG}" in
+ starch-bzip2)
+ starch_bzip2=true
+ ;;
+ starch-gzip)
+ starch_gzip=true
+ ;;
+ sort-tmpdir)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ sort-tmpdir=*)
+ val=${OPTARG#*=}
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ starch-note)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ starch_note="\"${val}\""
+ starch_note_set=true
+ ;;
+ starch-note=*)
+ val=${OPTARG#*=}
+ starch_note="\"${val}\""
+ starch_note_set=true
+ ;;
+ max-mem)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ max-mem=*)
+ val=${OPTARG#*=}
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ do-not-sort)
+ do_not_sort=true
+ ;;
+ help)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ #echo "Parsing option: '--${OPTARG}', value: '${val}'" >&2;
+ help 0
+ ;;
+ help=*)
+ val=${OPTARG#*=}
+ opt=${OPTARG%=$val}
+ #echo "Parsing option: '--${opt}', value: '${val}'" >&2
+ help 0
+ ;;
+ help-sam)
+ help 0
+ ;;
+ all-reads)
+ all_reads=true
+ ;;
+ keep-header)
+ keep_header=true
+ ;;
+ split)
+ split=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" = 1 ] && [ "${optspec:0:1}" != ":" ]; then echo "Unknown option --${OPTARG}" >&2; fi
+ ;;
+ esac;;
+ e)
+ starch_note="\"${OPTARG}\""
+ starch_note_set=true
+ ;;
+ z)
+ starch_bzip2=true
+ ;;
+ g)
+ starch_gzip=true
+ ;;
+ r)
+ sort_tmpdir=${OPTARG}
+ sort_tmpdir_set=true
+ ;;
+ m)
+ max_mem=${OPTARG}
+ max_mem_set=true
+ ;;
+ d)
+ do_not_sort=true
+ ;;
+ h)
+ help 0
+ ;;
+ a)
+ all_reads=true
+ ;;
+ k)
+ keep_header=true
+ ;;
+ s)
+ split=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" != 1 ] || [ "${optspec:0:1}" = ":" ]; then echo "Non-option argument: '-${OPTARG}'" >&2; fi
+ ;;
+ esac
+done
+
+# base options
+
+options="--input=${input_format} --output=${output_format}"
+
+# general
+
+if [ "${max_mem_set}" = true ]; then options="${options} --max-mem=${max_mem}"; fi
+if [ "${sort_tmpdir_set}" = true ]; then options="${options} --sort-tmpdir=\"${sort_tmpdir}\""; fi
+if [ "${do_not_sort}" = true ]; then options="${options} --do-not-sort"; fi
+if [ "${starch_gzip}" = false ]; then starch_bzip2=true; else options="${options} --starch-gzip"; fi
+if [ "${starch_bzip2}" = true ]; then options="${options} --starch-bzip2"; fi
+if [ "${starch_note_set}" = true ]; then options="${options} --starch-note=\"${starch_note}\""; fi
+
+# format-specific
+
+if [ "${all_reads}" = true ]; then options="${options} --all-reads"; fi
+if [ "${keep_header}" = true ]; then options="${options} --keep-header"; fi
+if [ "${split}" = true ]; then options="${options} --split"; fi
+
+${cmd} ${options} - <&0
diff --git a/applications/bed/conversion/src/wrappers/vcf2bed b/applications/bed/conversion/src/wrappers/vcf2bed
new file mode 100755
index 0000000..7aa721b
--- /dev/null
+++ b/applications/bed/conversion/src/wrappers/vcf2bed
@@ -0,0 +1,164 @@
+#!/bin/bash
+
+#
+# convert2bed
+# Copyright (C) 2014-2016 Alex Reynolds
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+cmd="convert2bed"
+input_format="vcf"
+output_format="bed"
+
+# general
+
+do_not_sort=false
+max_mem_set=false
+max_mem="2G"
+sort_tmpdir_set=false
+sort_tmpdir="/tmp"
+
+# format-specific
+
+do_not_split=false
+snvs=false
+insertions=false
+deletions=false
+keep_header=false
+
+help()
+{
+ ${cmd} --help-vcf
+ exit $1
+}
+
+optspec=":r:m:dhpvtnk-:"
+while getopts "$optspec" optchar; do
+ case "${optchar}" in
+ -)
+ case "${OPTARG}" in
+ sort-tmpdir)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ sort-tmpdir=*)
+ val=${OPTARG#*=}
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ max-mem)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ max-mem=*)
+ val=${OPTARG#*=}
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ help)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ #echo "Parsing option: '--${OPTARG}', value: '${val}'" >&2;
+ help 0
+ ;;
+ help=*)
+ val=${OPTARG#*=}
+ opt=${OPTARG%=$val}
+ #echo "Parsing option: '--${opt}', value: '${val}'" >&2
+ help 0
+ ;;
+ do-not-sort)
+ do_not_sort=true
+ ;;
+ help-vcf)
+ help 0
+ ;;
+ do-not-split)
+ do_not_split=true
+ ;;
+ snvs)
+ snvs=true
+ ;;
+ insertions)
+ insertions=true
+ ;;
+ deletions)
+ deletions=true
+ ;;
+ keep-header)
+ keep_header=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" = 1 ] && [ "${optspec:0:1}" != ":" ]; then echo "Unknown option --${OPTARG}" >&2; fi
+ ;;
+ esac;;
+ r)
+ sort_tmpdir=${OPTARG}
+ sort_tmpdir_set=true
+ ;;
+ m)
+ max_mem=${OPTARG}
+ max_mem_set=true
+ ;;
+ d)
+ do_not_sort=true
+ ;;
+ h)
+ help 0
+ ;;
+ p)
+ do_not_split=true
+ ;;
+ v)
+ snvs=true
+ ;;
+ t)
+ insertions=true
+ ;;
+ n)
+ deletions=true
+ ;;
+ k)
+ keep_header=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" != 1 ] || [ "${optspec:0:1}" = ":" ]; then echo "Non-option argument: '-${OPTARG}'" >&2; fi
+ ;;
+ esac
+done
+
+# base options
+
+options="--input=${input_format} --output=${output_format}"
+
+# general
+
+if [ "${max_mem_set}" = true ]; then options="${options} --max-mem=${max_mem}"; fi
+if [ "${sort_tmpdir_set}" = true ]; then options="${options} --sort-tmpdir=${sort_tmpdir}"; fi
+if [ "${do_not_sort}" = true ]; then options="${options} --do-not-sort"; fi
+
+# format-specific
+
+if [ "${do_not_split}" = true ]; then options="${options} --do-not-split"; fi
+if [ "${snvs}" = true ]; then options="${options} --snvs"; fi
+if [ "${insertions}" = true ]; then options="${options} --insertions"; fi
+if [ "${deletions}" = true ]; then options="${options} --deletions"; fi
+if [ "${keep_header}" = true ]; then options="${options} --keep-header"; fi
+
+${cmd} ${options} - <&0
diff --git a/applications/bed/conversion/src/wrappers/vcf2starch b/applications/bed/conversion/src/wrappers/vcf2starch
new file mode 100755
index 0000000..6f84e58
--- /dev/null
+++ b/applications/bed/conversion/src/wrappers/vcf2starch
@@ -0,0 +1,197 @@
+#!/bin/bash
+
+#
+# convert2bed
+# Copyright (C) 2014-2016 Alex Reynolds
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+cmd="convert2bed"
+input_format="vcf"
+output_format="starch"
+
+# general
+
+do_not_sort=false
+max_mem_set=false
+max_mem="2G"
+sort_tmpdir_set=false
+sort_tmpdir="/tmp"
+starch_bzip2=false
+starch_gzip=false
+starch_note=""
+starch_not_set=false
+
+# format-specific
+
+do_not_split=false
+snvs=false
+insertions=false
+deletions=false
+keep_header=false
+
+help()
+{
+ ${cmd} --help-vcf
+ exit $1
+}
+
+optspec=":e:zgr:m:dhpvtnk-:"
+while getopts "$optspec" optchar; do
+ case "${optchar}" in
+ -)
+ case "${OPTARG}" in
+ starch-bzip2)
+ starch_bzip2=true
+ ;;
+ starch-gzip)
+ starch_gzip=true
+ ;;
+ sort-tmpdir)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ sort-tmpdir=*)
+ val=${OPTARG#*=}
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ starch-note)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ starch_note="\"${val}\""
+ starch_note_set=true
+ ;;
+ starch-note=*)
+ val=${OPTARG#*=}
+ starch_note="\"${val}\""
+ starch_note_set=true
+ ;;
+ max-mem)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ max-mem=*)
+ val=${OPTARG#*=}
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ do-not-sort)
+ do_not_sort=true
+ ;;
+ help)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ #echo "Parsing option: '--${OPTARG}', value: '${val}'" >&2;
+ help 0
+ ;;
+ help=*)
+ val=${OPTARG#*=}
+ opt=${OPTARG%=$val}
+ #echo "Parsing option: '--${opt}', value: '${val}'" >&2
+ help 0
+ ;;
+ help-vcf)
+ help 0
+ ;;
+ keep-header)
+ keep_header=true
+ ;;
+ do-not-split)
+ do_not_split=true
+ ;;
+ snvs)
+ snvs=true
+ ;;
+ insertions)
+ insertions=true
+ ;;
+ deletions)
+ deletions=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" = 1 ] && [ "${optspec:0:1}" != ":" ]; then echo "Unknown option --${OPTARG}" >&2; fi
+ ;;
+ esac;;
+ e)
+ starch_note="\"${OPTARG}\""
+ starch_note_set=true
+ ;;
+ z)
+ starch_bzip2=true
+ ;;
+ g)
+ starch_gzip=true
+ ;;
+ r)
+ sort_tmpdir=${OPTARG}
+ sort_tmpdir_set=true
+ ;;
+ m)
+ max_mem=${OPTARG}
+ max_mem_set=true
+ ;;
+ d)
+ do_not_sort=true
+ ;;
+ h)
+ help 0
+ ;;
+ p)
+ do_not_split=true
+ ;;
+ v)
+ snvs=true
+ ;;
+ t)
+ insertions=true
+ ;;
+ n)
+ deletions=true
+ ;;
+ k)
+ keep_header=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" != 1 ] || [ "${optspec:0:1}" = ":" ]; then echo "Non-option argument: '-${OPTARG}'" >&2; fi
+ ;;
+ esac
+done
+
+# base options
+
+options="--input=${input_format} --output=${output_format}"
+
+# general
+
+if [ "${max_mem_set}" = true ]; then options="${options} --max-mem=${max_mem}"; fi
+if [ "${sort_tmpdir_set}" = true ]; then options="${options} --sort-tmpdir=\"${sort_tmpdir}\""; fi
+if [ "${do_not_sort}" = true ]; then options="${options} --do-not-sort"; fi
+if [ "${starch_gzip}" = false ]; then starch_bzip2=true; else options="${options} --starch-gzip"; fi
+if [ "${starch_bzip2}" = true ]; then options="${options} --starch-bzip2"; fi
+if [ "${starch_note_set}" = true ]; then options="${options} --starch-note=\"${starch_note}\""; fi
+
+# format-specific
+
+if [ "${do_not_split}" = true ]; then options="${options} --do-not-split"; fi
+if [ "${snvs}" = true ]; then options="${options} --snvs"; fi
+if [ "${insertions}" = true ]; then options="${options} --insertions"; fi
+if [ "${deletions}" = true ]; then options="${options} --deletions"; fi
+if [ "${keep_header}" = true ]; then options="${options} --keep-header"; fi
+
+${cmd} ${options} - <&0
diff --git a/applications/bed/conversion/src/wrappers/wig2bed b/applications/bed/conversion/src/wrappers/wig2bed
new file mode 100755
index 0000000..fd613c4
--- /dev/null
+++ b/applications/bed/conversion/src/wrappers/wig2bed
@@ -0,0 +1,156 @@
+#!/bin/bash
+
+#
+# convert2bed
+# Copyright (C) 2014-2016 Alex Reynolds
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+cmd="convert2bed"
+input_format="wig"
+output_format="bed"
+
+# general
+
+do_not_sort=false
+max_mem_set=false
+max_mem="2G"
+sort_tmpdir_set=false
+sort_tmpdir="/tmp"
+
+# format-specific
+keep_header=false
+multisplit=""
+multisplit_set=false
+zero_indexed=false
+
+help()
+{
+ ${cmd} --help-wig
+ exit $1
+}
+
+optspec=":r:m:dhkxb:-:"
+while getopts "$optspec" optchar; do
+ case "${optchar}" in
+ -)
+ case "${OPTARG}" in
+ sort-tmpdir)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ sort-tmpdir=*)
+ val=${OPTARG#*=}
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ max-mem)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ max-mem=*)
+ val=${OPTARG#*=}
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ help)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ #echo "Parsing option: '--${OPTARG}', value: '${val}'" >&2;
+ help 0
+ ;;
+ help=*)
+ val=${OPTARG#*=}
+ opt=${OPTARG%=$val}
+ #echo "Parsing option: '--${opt}', value: '${val}'" >&2
+ help 0
+ ;;
+ do-not-sort)
+ do_not_sort=true
+ ;;
+ help-wig)
+ help 0
+ ;;
+ keep-header)
+ keep_header=true
+ ;;
+ multisplit)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ multisplit=${val}
+ multisplit_set=true
+ ;;
+ multisplit=*)
+ val=${OPTARG#*=}
+ multisplit=${val}
+ multisplit_set=true
+ ;;
+ zero-indexed)
+ zero_indexed=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" = 1 ] && [ "${optspec:0:1}" != ":" ]; then echo "Unknown option --${OPTARG}" >&2; fi
+ ;;
+ esac;;
+ r)
+ sort_tmpdir=${OPTARG}
+ sort_tmpdir_set=true
+ ;;
+ m)
+ max_mem=${OPTARG}
+ max_mem_set=true
+ ;;
+ d)
+ do_not_sort=true
+ ;;
+ h)
+ help 0
+ ;;
+ k)
+ keep_header=true
+ ;;
+ x)
+ zero_indexed=true
+ ;;
+ b)
+ multisplit=${OPTARG}
+ multisplit_set=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" != 1 ] || [ "${optspec:0:1}" = ":" ]; then echo "Non-option argument: '-${OPTARG}'" >&2; fi
+ ;;
+ esac
+done
+
+# base options
+
+options="--input=${input_format} --output=${output_format}"
+
+# general
+
+if [ "${max_mem_set}" = true ]; then options="${options} --max-mem=${max_mem}"; fi
+if [ "${sort_tmpdir_set}" = true ]; then options="${options} --sort-tmpdir=${sort_tmpdir}"; fi
+if [ "${do_not_sort}" = true ]; then options="${options} --do-not-sort"; fi
+
+# format-specific
+
+if [ "${keep_header}" = true ]; then options="${options} --keep-header"; fi
+if [ "${multisplit_set}" = true ]; then options="${options} --multisplit=${multisplit}"; fi
+if [ "${zero_indexed}" = true ]; then options="${options} --zero-indexed"; fi
+
+${cmd} ${options} - <&0
diff --git a/applications/bed/conversion/src/wrappers/wig2starch b/applications/bed/conversion/src/wrappers/wig2starch
new file mode 100755
index 0000000..4389665
--- /dev/null
+++ b/applications/bed/conversion/src/wrappers/wig2starch
@@ -0,0 +1,189 @@
+#!/bin/bash
+
+#
+# convert2bed
+# Copyright (C) 2014-2016 Alex Reynolds
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+cmd="convert2bed"
+input_format="wig"
+output_format="starch"
+
+# general
+
+do_not_sort=false
+max_mem_set=false
+max_mem="2G"
+sort_tmpdir_set=false
+sort_tmpdir="/tmp"
+starch_bzip2=false
+starch_gzip=false
+starch_note=""
+starch_not_set=false
+
+# format-specific
+keep_header=false
+multisplit=""
+multisplit_set=false
+zero_indexed=false
+
+help()
+{
+ ${cmd} --help-wig
+ exit $1
+}
+
+optspec=":e:zgr:m:dhkxb:-:"
+while getopts "$optspec" optchar; do
+ case "${optchar}" in
+ -)
+ case "${OPTARG}" in
+ starch-bzip2)
+ starch_bzip2=true
+ ;;
+ starch-gzip)
+ starch_gzip=true
+ ;;
+ sort-tmpdir)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ sort-tmpdir=*)
+ val=${OPTARG#*=}
+ sort_tmpdir=${val}
+ sort_tmpdir_set=true
+ ;;
+ starch-note)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ starch_note="\"${val}\""
+ starch_note_set=true
+ ;;
+ starch-note=*)
+ val=${OPTARG#*=}
+ starch_note="\"${val}\""
+ starch_note_set=true
+ ;;
+ max-mem)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ max-mem=*)
+ val=${OPTARG#*=}
+ max_mem=${val}
+ max_mem_set=true
+ ;;
+ do-not-sort)
+ do_not_sort=true
+ ;;
+ help)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ #echo "Parsing option: '--${OPTARG}', value: '${val}'" >&2;
+ help 0
+ ;;
+ help=*)
+ val=${OPTARG#*=}
+ opt=${OPTARG%=$val}
+ #echo "Parsing option: '--${opt}', value: '${val}'" >&2
+ help 0
+ ;;
+ help-wig)
+ help 0
+ ;;
+ keep-header)
+ keep_header=true
+ ;;
+ zero-indexed)
+ zero_indexed=true
+ ;;
+ multisplit)
+ val="${!OPTIND}"; OPTIND=$(( $OPTIND + 1 ))
+ multisplit=${val}
+ multisplit_set=true
+ ;;
+ multisplit=*)
+ val=${OPTARG#*=}
+ multisplit=${val}
+ multisplit_set=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" = 1 ] && [ "${optspec:0:1}" != ":" ]; then echo "Unknown option --${OPTARG}" >&2; fi
+ ;;
+ esac;;
+ e)
+ starch_note="\"${OPTARG}\""
+ starch_note_set=true
+ ;;
+ z)
+ starch_bzip2=true
+ ;;
+ g)
+ starch_gzip=true
+ ;;
+ r)
+ sort_tmpdir=${OPTARG}
+ sort_tmpdir_set=true
+ ;;
+ m)
+ max_mem=${OPTARG}
+ max_mem_set=true
+ ;;
+ d)
+ do_not_sort=true
+ ;;
+ h)
+ help 0
+ ;;
+ k)
+ keep_header=true
+ ;;
+ x)
+ zero_indexed=true
+ ;;
+ b)
+ multisplit=${OPTARG}
+ multisplit_set=true
+ ;;
+ *)
+ help 1
+ #if [ "$OPTERR" != 1 ] || [ "${optspec:0:1}" = ":" ]; then echo "Non-option argument: '-${OPTARG}'" >&2; fi
+ ;;
+ esac
+done
+
+# base options
+
+options="--input=${input_format} --output=${output_format}"
+
+# general
+
+if [ "${max_mem_set}" = true ]; then options="${options} --max-mem=${max_mem}"; fi
+if [ "${sort_tmpdir_set}" = true ]; then options="${options} --sort-tmpdir=\"${sort_tmpdir}\""; fi
+if [ "${do_not_sort}" = true ]; then options="${options} --do-not-sort"; fi
+if [ "${starch_gzip}" = false ]; then starch_bzip2=true; else options="${options} --starch-gzip"; fi
+if [ "${starch_bzip2}" = true ]; then options="${options} --starch-bzip2"; fi
+if [ "${starch_note_set}" = true ]; then options="${options} --starch-note=\"${starch_note}\""; fi
+
+# format-specific
+
+if [ "${keep_header}" = true ]; then options="${options} --keep-header"; fi
+if [ "${multisplit_set}" = true ]; then options="${options} --multisplit=${multisplit}"; fi
+if [ "${zero_indexed}" = true ]; then options="${options} --zero-indexed"; fi
+
+${cmd} ${options} - <&0
diff --git a/applications/bed/sort-bed/src/CheckSort.cpp b/applications/bed/sort-bed/src/CheckSort.cpp
new file mode 100644
index 0000000..093c071
--- /dev/null
+++ b/applications/bed/sort-bed/src/CheckSort.cpp
@@ -0,0 +1,56 @@
+/*
+ Author: Shane Neph and Alex Reynolds
+ Date: Fri Feb 13 15:05:44 PST 2015
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#include <cstdio>
+#include <fstream>
+#include <string>
+
+#include "data/bed/BedCheckIterator.hpp"
+#include "data/bed/BedTypes.hpp"
+#include "utility/Exception.hpp"
+
+#include "Structures.hpp"
+
+int
+checkSort(char const **bedFileNames, unsigned int numFiles)
+{
+ typedef Bed::bed_check_iterator<Bed::B3Rest*> IterType;
+ int rtnval = EXIT_FAILURE;
+ try {
+ for ( unsigned int i = 0; i < numFiles; ++i ) {
+ std::ifstream infile(bedFileNames[i]);
+ if ( 0 != std::strcmp(bedFileNames[i], "-") && !infile )
+ throw(Ext::UserError("Unable to find: " + std::string(bedFileNames[i])));
+ IterType start((std::strcmp(bedFileNames[i], "-") == 0) ? std::cin : infile,
+ bedFileNames[i]), end;
+ while ( start != end )
+ delete *start++;
+ } // for each file
+ rtnval = EXIT_SUCCESS;
+ } catch(std::exception& s) {
+ std::fprintf(stderr, "%s\n", s.what());
+ } catch(...) {
+ std::fprintf(stderr, "Unknown problem\n");
+ }
+ return rtnval;
+}
diff --git a/applications/bed/sort-bed/src/Makefile b/applications/bed/sort-bed/src/Makefile
new file mode 100644
index 0000000..54b5c8f
--- /dev/null
+++ b/applications/bed/sort-bed/src/Makefile
@@ -0,0 +1,77 @@
+MAIN = ../../../..
+HEAD = $(MAIN)/interfaces/general-headers
+LIB1 = $(MAIN)/interfaces/src/data/measurement
+LIB2 = $(MAIN)/interfaces/src/utility
+LIB3 = $(MAIN)/interfaces/src/data/starch
+THISDIR = ${shell pwd}
+INCLUDES = -iquote$(HEAD) -I${LOCALJANSSONINCDIR} -I${LOCALBZIP2INCDIR} -I${LOCALZLIBINCDIR}
+
+PARTY3 = ${THISDIR}/$(MAIN)/third-party
+LIBJANSSON = libjansson.a
+LIBBZIP2 = libbz2.a
+LIBZLIB = libz.a
+LOCALJANSSONDIR = ${PARTY3}/jansson
+LOCALJANSSONLIBDIR = ${LOCALJANSSONDIR}/lib
+LOCALJANSSONINCDIR = ${LOCALJANSSONDIR}/include
+LOCALJANSSONLIB = ${LOCALJANSSONLIBDIR}/${LIBJANSSON}
+LOCALBZIP2DIR = ${PARTY3}/bzip2
+LOCALBZIP2LIBDIR = ${LOCALBZIP2DIR}
+LOCALBZIP2LIB = ${LOCALBZIP2LIBDIR}/${LIBBZIP2}
+LOCALBZIP2INCDIR = ${LOCALBZIP2DIR}
+LOCALZLIBDIR = ${PARTY3}/zlib
+LOCALZLIBLIB = ${LOCALZLIBDIR}/${LIBZLIB}
+LOCALZLIBINCDIR = ${LOCALZLIBDIR}
+
+LIBLOCATION = -L${LOCALJANSSONLIBDIR} -L${LOCALBZIP2LIBDIR} -L${LOCALZLIBDIR}
+LIBRARIES = ${LOCALJANSSONLIB} ${LOCALBZIP2LIB} ${LOCALZLIBLIB}
+
+PROG = sort-bed
+BINDIR = ../bin
+OBJDIR = objects
+WARNINGS = -Wall -Wextra -pedantic
+BLDFLAGS = ${WARNINGS} -O3 -std=c++11
+SFLAGS = -static
+
+dependency_names = starchConstants starchFileHelpers starchHelpers starchMetadataHelpers unstarchHelpers starchSha1Digest starchBase64Coding SortDetails Sort CheckSort
+dependencies = $(addprefix $(OBJDIR)/, $(addsuffix .o, $(dependency_names)))
+
+FLAGS = $(SFLAGS) -s ${BLDFLAGS} ${LIBLOCATION} ${INCLUDES}
+DFLAGS = $(SFLAGS) -g -O0 -std=c++11 -Wall -fno-inline -pedantic ${LIBLOCATION} ${INCLUDES}
+GPROFFLAGS = $(SFLAGS) -O -std=c++11 -Wall -pedantic -pg ${LIBLOCATION} ${INCLUDES}
+
+ifneq ($(shell uname -s),CYGWIN_NT-6.1)
+ WARNINGS += -ansi
+else
+ WARNINGS += -U__STRICT_ANSI__
+endif
+
+build: $(BINDIR)/$(PROG) $(dependencies)
+
+build_gprof: $(BINDIR)/gprof.$(PROG)
+
+build_debug: $(BINDIR)/debug.$(PROG)
+
+dependencies: $(dependencies)
+
+$(BINDIR)/$(PROG) : $(dependencies)
+ mkdir -p $(BINDIR) && $(CXX) -o $@ $(FLAGS) $^ ${LIBRARIES}
+
+$(BINDIR)/gprof.$(PROG) : $(dependencies)
+ mkdir -p $(BINDIR) && $(CXX) -o $@ $(GPROFFLAGS) $^ ${LIBRARIES}
+
+$(BINDIR)/debug.$(PROG) : $(dependencies)
+ mkdir -p $(BINDIR) && $(CXX) -o $@ $(DFLAGS) $^ ${LIBRARIES}
+
+$(OBJDIR)/%.o : $(LIB1)/%.cpp
+ mkdir -p $(OBJDIR) && $(CXX) -c $(BLDFLAGS) $^ -o $@ ${INCLUDES}
+
+$(OBJDIR)/%.o : $(LIB3)/%.c
+ mkdir -p $(OBJDIR) && $(CXX) -c ${BLDFLAGS} $^ -o $@ ${INCLUDES}
+
+$(OBJDIR)/%.o : %.cpp
+ mkdir -p $(OBJDIR) && $(CXX) -c ${BLDFLAGS} $^ -o $@ ${INCLUDES}
+
+clean:
+ rm -rf ${OBJDIR}
+ rm -f $(BINDIR)/$(PROG)
+ rm -f $(BINDIR)/*.$(PROG)
diff --git a/applications/bed/sort-bed/src/Makefile.darwin b/applications/bed/sort-bed/src/Makefile.darwin
new file mode 100644
index 0000000..3a4657f
--- /dev/null
+++ b/applications/bed/sort-bed/src/Makefile.darwin
@@ -0,0 +1,89 @@
+MIN_OSX_VERSION = 10.7
+
+MAIN = ../../../..
+MAINAPPDIR = ../..
+HEAD = $(MAIN)/interfaces/general-headers
+LIB3 = $(MAIN)/interfaces/src/data/starch
+PROG = sort-bed
+DIST_DIR = ../bin
+OBJ_DIR = objects_${ARCH}
+OPTIMIZE = -O3 -std=c++11 -stdlib=libc++
+WARNINGS = -Wall
+MAIN = ../../../..
+HEAD = ${MAIN}/interfaces/general-headers
+THISDIR = ${shell pwd}
+PARTY3 = ${THISDIR}/$(MAIN)/third-party
+LIBJANSSON = libjansson.a
+LIBBZIP2 = libbz2.a
+LIBZLIB = libz.a
+LOCALJANSSONDIR = ${PARTY3}/darwin_intel_${ARCH}/jansson
+LOCALJANSSONLIBDIR = ${LOCALJANSSONDIR}/lib
+LOCALJANSSONINCDIR = ${LOCALJANSSONDIR}/include
+LOCALJANSSONLIB = ${LOCALJANSSONLIBDIR}/${LIBJANSSON}
+LOCALBZIP2DIR = ${PARTY3}/darwin_intel_${ARCH}/bzip2
+LOCALBZIP2LIBDIR = ${LOCALBZIP2DIR}
+LOCALBZIP2LIB = ${LOCALBZIP2LIBDIR}/${LIBBZIP2}
+LOCALBZIP2INCDIR = ${LOCALBZIP2DIR}
+LOCALZLIBDIR = ${PARTY3}/darwin_intel_${ARCH}/zlib
+LOCALZLIBLIBDIR = ${LOCALZLIBDIR}
+LOCALZLIBLIB = ${LOCALZLIBLIBDIR}/${LIBZLIB}
+LOCALZLIBINCDIR = ${LOCALZLIBDIR}
+INCLUDES = -iquote$(HEAD) -I${LOCALJANSSONINCDIR} -I${LOCALBZIP2INCDIR} -I${LOCALZLIBINCDIR}
+LIBLOCATION = -L${LOCALJANSSONLIBDIR} -L${LOCALBZIP2LIBDIR} -L${LOCALZLIBDIR}
+LIBRARIES = ${LOCALJANSSONLIB} ${LOCALBZIP2LIB} ${LOCALZLIBLIB}
+BLDFLAGS = ${WARNINGS} ${OPTIMIZE}
+INCLUDES = -iquote$(HEAD) -I${LOCALJANSSONINCDIR} -I${LOCALBZIP2INCDIR} -I${LOCALZLIBINCDIR}
+STARCHOBJS = $(OBJ_DIR)/starchConstants.o $(OBJ_DIR)/starchFileHelpers.o $(OBJ_DIR)/starchHelpers.o $(OBJ_DIR)/starchMetadataHelpers.o $(OBJ_DIR)/unstarchHelpers.o $(OBJ_DIR)/starchSha1Digest.o $(OBJ_DIR)/starchBase64Coding.o
+
+build: sort
+
+sort: sortbuild
+ ${CXX} -o ${DIST_DIR}/${PROG}_${ARCH} ${BLDFLAGS} ${LIBLOCATION} ${INCLUDES} -mmacosx-version-min=$(MIN_OSX_VERSION) -arch $(ARCH) -lc++ ${STARCHOBJS} ${OBJ_DIR}/SortDetails.o ${OBJ_DIR}/Sort.o ${OBJ_DIR}/CheckSort.o ${LIBRARIES}
+
+sortbuild: prep
+ $(CXX) -x c++ -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -c ${BLDFLAGS} ${LIB3}/starchConstants.c -o ${OBJ_DIR}/starchConstants.o ${INCLUDES}
+ $(CXX) -x c++ -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -c ${BLDFLAGS} ${LIB3}/starchFileHelpers.c -o ${OBJ_DIR}/starchFileHelpers.o ${INCLUDES}
+ $(CXX) -x c++ -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -c ${BLDFLAGS} ${LIB3}/starchHelpers.c -o ${OBJ_DIR}/starchHelpers.o -iquote${HEAD} ${INCLUDES}
+ $(CXX) -x c++ -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -c ${BLDFLAGS} ${LIB3}/starchMetadataHelpers.c -o ${OBJ_DIR}/starchMetadataHelpers.o ${INCLUDES}
+ $(CXX) -x c++ -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -c ${BLDFLAGS} ${LIB3}/unstarchHelpers.c -o ${OBJ_DIR}/unstarchHelpers.o ${INCLUDES}
+ $(CXX) -x c++ -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -c ${BLDFLAGS} ${LIB3}/starchSha1Digest.c -o ${OBJ_DIR}/starchSha1Digest.o ${INCLUDES}
+ $(CXX) -x c++ -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -c ${BLDFLAGS} ${LIB3}/starchBase64Coding.c -o ${OBJ_DIR}/starchBase64Coding.o ${INCLUDES}
+ ${CXX} -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -c ${BLDFLAGS} SortDetails.cpp -o ${OBJ_DIR}/SortDetails.o -I${HEAD}
+ ${CXX} -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -c ${BLDFLAGS} Sort.cpp -o ${OBJ_DIR}/Sort.o -I${HEAD}
+ ${CXX} -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -c ${BLDFLAGS} CheckSort.cpp -o ${OBJ_DIR}/CheckSort.o ${INCLUDES}
+
+build_debug: prep
+ $(CXX) -x c++ -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -g -O0 -std=c++11 -stdlib=libc++ -c ${LIB3}/starchConstants.c -o ${OBJ_DIR}/starchConstants.o ${INCLUDES}
+ $(CXX) -x c++ -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -g -O0 -std=c++11 -stdlib=libc++ -c ${LIB3}/starchFileHelpers.c -o ${OBJ_DIR}/starchFileHelpers.o ${INCLUDES}
+ $(CXX) -x c++ -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -g -O0 -std=c++11 -stdlib=libc++ -c ${LIB3}/starchHelpers.c -o ${OBJ_DIR}/starchHelpers.o -iquote${HEAD} ${INCLUDES}
+ $(CXX) -x c++ -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -g -O0 -std=c++11 -stdlib=libc++ -c ${LIB3}/starchMetadataHelpers.c -o ${OBJ_DIR}/starchMetadataHelpers.o ${INCLUDES}
+ $(CXX) -x c++ -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -g -O0 -std=c++11 -stdlib=libc++ -c ${LIB3}/unstarchHelpers.c -o ${OBJ_DIR}/unstarchHelpers.o ${INCLUDES}
+ $(CXX) -x c++ -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -g -O0 -std=c++11 -stdlib=libc++ -c ${LIB3}/starchSha1Digest.c -o ${OBJ_DIR}/starchSha1Digest.o ${INCLUDES}
+ $(CXX) -x c++ -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -g -O0 -std=c++11 -stdlib=libc++ -c ${LIB3}/starchBase64Coding.c -o ${OBJ_DIR}/starchBase64Coding.o ${INCLUDES}
+ ${CXX} -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -g -O0 -std=c++11 -stdlib=libc++ -c SortDetails.cpp -o ${OBJ_DIR}/SortDetails.o -I${HEAD}
+ ${CXX} -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -g -O0 -std=c++11 -stdlib=libc++ -c Sort.cpp -o ${OBJ_DIR}/Sort.o -I${HEAD}
+ ${CXX} -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -g -O0 -std=c++11 -stdlib=libc++ -c CheckSort.cpp -o ${OBJ_DIR}/CheckSort.o ${INCLUDES}
+ ${CXX} -o ${DIST_DIR}/debug.${PROG}_${ARCH} ${LIBLOCATION} ${INCLUDES} -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -g -lc++ ${STARCHOBJS} ${OBJ_DIR}/SortDetails.o ${OBJ_DIR}/Sort.o ${OBJ_DIR}/CheckSort.o ${LIBRARIES}
+
+build_gprof: prep
+ $(CXX) -x c++ -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -pg -O -std=c++11 -stdlib=libc++ -c ${LIB3}/starchConstants.c -o ${OBJ_DIR}/starchConstants.o ${INCLUDES}
+ $(CXX) -x c++ -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -pg -O -std=c++11 -stdlib=libc++ -c ${LIB3}/starchFileHelpers.c -o ${OBJ_DIR}/starchFileHelpers.o ${INCLUDES}
+ $(CXX) -x c++ -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -pg -O -std=c++11 -stdlib=libc++ -c ${LIB3}/starchHelpers.c -o ${OBJ_DIR}/starchHelpers.o -iquote${HEAD} ${INCLUDES}
+ $(CXX) -x c++ -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -pg -O -std=c++11 -stdlib=libc++ -c ${LIB3}/starchMetadataHelpers.c -o ${OBJ_DIR}/starchMetadataHelpers.o ${INCLUDES}
+ $(CXX) -x c++ -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -pg -O -std=c++11 -stdlib=libc++ -c ${LIB3}/unstarchHelpers.c -o ${OBJ_DIR}/unstarchHelpers.o ${INCLUDES}
+ $(CXX) -x c++ -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -pg -O -std=c++11 -stdlib=libc++ -c ${LIB3}/starchSha1Digest.c -o ${OBJ_DIR}/starchSha1Digest.o ${INCLUDES}
+ $(CXX) -x c++ -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -pg -O -std=c++11 -stdlib=libc++ -c ${LIB3}/starchBase64Coding.c -o ${OBJ_DIR}/starchBase64Coding.o ${INCLUDES}
+ ${CXX} -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -pg -O -std=c++11 -stdlib=libc++ -c SortDetails.cpp -o ${OBJ_DIR}/SortDetails.o -I${HEAD}
+ ${CXX} -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -pg -O -std=c++11 -stdlib=libc++ -c Sort.cpp -o ${OBJ_DIR}/Sort.o -I${HEAD}
+ ${CXX} -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -pg -O -std=c++11 -stdlib=libc++ -c CheckSort.cpp -o ${OBJ_DIR}/CheckSort.o ${INCLUDES}
+ ${CXX} -o ${DIST_DIR}/gprof.${PROG}_${ARCH} ${LIBLOCATION} ${INCLUDES} -mmacosx-version-min=${MIN_OSX_VERSION} -arch ${ARCH} -g -lc++ ${STARCHOBJS} ${OBJ_DIR}/SortDetails.o ${OBJ_DIR}/Sort.o ${OBJ_DIR}/CheckSort.o ${LIBRARIES}
+
+prep:
+ rm -rf ${OBJ_DIR}
+ mkdir -p ${OBJ_DIR}
+
+clean:
+ rm -rf ${OBJ_DIR}*
+ rm -rf ${DIST_DIR}/${PROG}*
+ rm -rf ${DIST_DIR}/*.${PROG}*
+ rm -rf ${DIST_DIR}
diff --git a/applications/bed/sort-bed/src/Sort.cpp b/applications/bed/sort-bed/src/Sort.cpp
new file mode 100644
index 0000000..3c1a69d
--- /dev/null
+++ b/applications/bed/sort-bed/src/Sort.cpp
@@ -0,0 +1,234 @@
+/*
+ Author: Scott Kuehn
+ Mods: Shane Neph
+ Date: Thu Sep 7 08:48:35 PDT 2006
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#include <cctype>
+#include <cstdlib>
+#include <cstdio>
+#include <cstring>
+
+#include <sys/stat.h>
+
+#include "Structures.hpp"
+#include "suite/BEDOPS.Version.hpp"
+
+using namespace std;
+
+#define MAX_INFILES 10000
+
+static const char *name = "sort-bed";
+static const char *authors = "Scott Kuehn";
+static const char *usage = "\nUSAGE: sort-bed [--help] [--version] [--check-sort] [--max-mem <val>] [--tmpdir <path>] <file1.bed> <file2.bed> <...>\n Sort BED file(s).\n May use '-' to indicate stdin.\n Results are sent to stdout.\n\n <val> for --max-mem may be 8G, 8000M, or 8000000000 to specify 8 GB of memory.\n --tmpdir is useful only with --max-mem.\n";
+
+static void
+getArgs(int argc, char **argv, const char **inFiles, unsigned int *numInFiles, int *justCheck, double* maxMem, char **tmpPath)
+{
+ int numFiles, i, j, stdincnt = 0, changeMem = 0, units = 0, changeTDir = 0;
+ size_t k;
+ size_t lng = 0U;
+ double factor = 1;
+ char *tmp;
+ numFiles = argc - 1;
+ if(numFiles < 1)
+ {
+ fprintf(stderr, "%s\n citation: %s\n version: %s\n authors: %s\n%s\n",
+ name, BEDOPS::citation(), BEDOPS::revision(), authors, usage);
+ exit(EXIT_FAILURE);
+ }
+ else if (numFiles > MAX_INFILES)
+ {
+ fprintf(stderr, "%s\n citation: %s\n version: %s\n authors: %s\n%s\nToo Many Files\n",
+ name, BEDOPS::citation(), BEDOPS::revision(), authors, usage);
+ exit(EXIT_FAILURE);
+ }
+ else
+ {
+ for(i = 1, j = 0; i < argc; i++, j++)
+ {
+ /* Check for --help */
+ if(strcmp(argv[i], "--help") == 0)
+ {
+ fprintf(stdout, "%s\n citation: %s\n version: %s\n authors: %s\n%s\n",
+ name, BEDOPS::citation(), BEDOPS::revision(), authors, usage);
+ exit(EXIT_SUCCESS);
+ }
+ else if (strcmp(argv[i], "--version") == 0)
+ {
+ fprintf(stdout, "%s\n citation: %s\n version: %s\n authors: %s\n",
+ name, BEDOPS::citation(), BEDOPS::revision(), authors);
+ exit(EXIT_SUCCESS);
+ }
+ /* Check for max memory before merge-sort */
+ else if(strcmp(argv[i], "--max-mem") == 0)
+ {
+ units = 0;
+ factor = 1;
+ if(changeMem != 0)
+ {
+ fprintf(stderr, "Specify --max-mem at most one time!\n");
+ exit(EXIT_FAILURE);
+ }
+ changeMem = 1;
+ if(++i == argc)
+ {
+ fprintf(stderr, "No value given for --max-mem.\n");
+ exit(EXIT_FAILURE);
+ }
+
+ lng = strlen(argv[i]);
+ for(k=0; k < lng; ++k)
+ {
+ if(!isdigit(argv[i][k]))
+ {
+ if(0 == k || k != lng-1) /* bad number? just G? M? */
+ {
+ fprintf(stderr, "Bad number for --max-mem. Expect value to be like 10G (for 10 gigabytes) or 1000M (for 1000 megabytes) or just 1000000000 (for 1 gigabyte).\n");
+ exit(EXIT_FAILURE);
+ }
+ if(argv[i][k] == 'G')
+ factor = 1000000000, --lng;
+ else if(argv[i][k] == 'M')
+ factor = 1000000, --lng;
+ else
+ {
+ fprintf(stderr, "Unrecognized units for --max-mem. Expect value to be like 10G (for 10 gigabytes) or 1000M (for 1000 megabytes) or just 1000000000 (for 1 gigabyte).\n");
+ exit(EXIT_FAILURE);
+ }
+
+ units = 1;
+ tmp = static_cast<char*>( malloc(lng + 1) );
+ strncpy(tmp, argv[i], lng);
+ tmp[lng] = '\0';
+ *maxMem = factor * strtod(tmp, NULL);
+ free(tmp);
+ }
+ } /* for */
+ if(!units)
+ {
+ *maxMem = strtod(argv[i], NULL);
+ }
+ if(*maxMem > 128000000000.0)
+ {
+ fprintf(stderr, "\nSetting memory > 128 GB probably isn't practical.\nIf you remove --max-mem, the program will use up to all available system memory.\nContinuing.\n\n");
+ /* just going to send a warning exit(EXIT_FAILURE); */
+ }
+ if(*maxMem < 500000000.0)
+ {
+ fprintf(stderr, "While theoretically possible to sort with less memory, we expect at least 500 megabytes for --max-mem\n");
+ exit(EXIT_FAILURE);
+ }
+ --j;
+ numFiles -= 2;
+ continue;
+ }
+ else if(strcmp(argv[i], "--tmpdir") == 0)
+ {
+ if(changeTDir != 0)
+ {
+ fprintf(stderr, "Specify --tmpdir at most one time!\n");
+ exit(EXIT_FAILURE);
+ }
+ changeTDir = 1;
+ if(++i == argc)
+ {
+ fprintf(stderr, "No value given for --tmpdir.\n");
+ exit(EXIT_FAILURE);
+ }
+ *tmpPath = static_cast<char*>( malloc(strlen(argv[i])+1) );
+ strcpy(*tmpPath, argv[i]);
+ --j;
+ numFiles -= 2;
+ continue;
+ }
+ else if(strcmp(argv[i], "--check-sort") == 0)
+ {
+ *justCheck = 1;
+ --j;
+ numFiles -= 1;
+ continue;
+ }
+ else if(strcmp(argv[i], "-") == 0) /* stdin */
+ {
+ stdincnt++;
+ }
+ inFiles[j] = argv[i];
+ (*numInFiles)++;
+ } /* for */
+ }
+
+ if(stdincnt > 1)
+ {
+ fprintf(stderr, "Cannot specify '-' more than once\n");
+ exit(EXIT_FAILURE);
+ }
+ else if(numFiles < 1) /* can be different from before if --max-mem was used, for example*/
+ {
+ fprintf(stderr, "%s\n citation: %s\n version: %s\n authors: %s\n%s\n%s\n",
+ name, BEDOPS::citation(), BEDOPS::revision(), authors, usage, "No file given.");
+ exit(EXIT_FAILURE);
+ }
+ return;
+}
+
+int
+main(int argc, char **argv)
+{
+ unsigned int numInFiles = 0U;
+ double maxMemory = -1;
+ const char *inFiles[MAX_INFILES];
+ char* tmpPath = NULL;
+ bool clean = false;
+ int justCheck = 0;
+ int rval = EXIT_FAILURE;
+
+ getArgs(argc, argv, inFiles, &numInFiles, &justCheck, &maxMemory, &tmpPath);
+ if(justCheck) /* just checking inputs */
+ rval = checkSort(inFiles, numInFiles);
+ else /* sorting */
+ {
+ if(tmpPath != NULL)
+ {
+ if(maxMemory > 0)
+ {
+ clean = true;
+ }
+ else /* tmpPath only useful when --max-mem is used */
+ {
+ free(tmpPath);
+ tmpPath = NULL;
+ }
+ }
+ else if (maxMemory > 0)
+ {
+ tmpPath = getenv("TMPDIR");
+ }
+
+ // sort
+ rval = processData(inFiles, numInFiles, maxMemory, tmpPath);
+
+ if(clean)
+ free(tmpPath);
+ }
+
+ return rval;
+}
diff --git a/applications/bed/sort-bed/src/SortDetails.cpp b/applications/bed/sort-bed/src/SortDetails.cpp
new file mode 100644
index 0000000..15e9b98
--- /dev/null
+++ b/applications/bed/sort-bed/src/SortDetails.cpp
@@ -0,0 +1,1202 @@
+/*
+ Author: Scott Kuehn
+ Mods: Shane Neph
+ Date: Thu Sep 7 08:48:35 PDT 2006
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#include <cinttypes>
+#include <cerrno>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <cctype>
+#include <fstream>
+#include <map>
+#include <string>
+
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <sys/unistd.h>
+
+#include "suite/BEDOPS.Constants.hpp"
+
+#include "Structures.hpp"
+
+using namespace std;
+
+int
+mergeSort(FILE* output, FILE **tmpFiles, unsigned int numFiles);
+
+FILE *
+createTmpFile(char const* path, char** fileName);
+
+void
+freeTmpFiles(unsigned int fcount, FILE **tmpFiles, char **tmpFileNames);
+
+int
+createDir(char* dir);
+
+// probably linux-specific. From
+// http://stackoverflow.com/questions/63166/how-to-determine-cpu-and-memory-consumption-from-inside-a-process
+// just used them to help debug my overestimates of internal memory allocated
+namespace dbug_help
+{
+ int parseLine(char* line);
+ int getVirtMemValue();
+ int getResMemValue();
+
+ int
+ parseLine(char* line)
+ {
+ int i = static_cast<int>( strlen(line) ); // perhaps better to cast strlen to an int, in order to fulfill parseline contract
+ while (*line < '0' || *line > '9') line++;
+ line[i-3] = '\0';
+ i = atoi(line);
+ return i;
+ }
+
+ int
+ getVirtMemValue()
+ { //Note: this value is in KB!
+ FILE* file = fopen("/proc/self/status", "r");
+ int result = -1;
+ char line[128];
+
+ while (fgets(line, 128, file) != NULL)
+ {
+ if (strncmp(line, "VmSize:", 7) == 0)
+ {
+ result = parseLine(line);
+ break;
+ }
+ }
+ fclose(file);
+ return result;
+ }
+
+ int getResMemValue()
+ { //Note: this value is in KB!
+ FILE* file = fopen("/proc/self/status", "r");
+ int result = -1;
+ char line[128];
+
+ while (fgets(line, 128, file) != NULL)
+ {
+ if (strncmp(line, "VmRSS:", 6) == 0)
+ {
+ result = parseLine(line);
+ break;
+ }
+ } /* while */
+ fclose(file);
+ return result;
+ }
+} // end namespace dbug_help
+
+
+FILE *
+createTmpFile(char const* path, char** fileName)
+{
+ FILE* fp;
+ int fd;
+ char* tmpl;
+
+ if (path == NULL)
+ {
+ fileName = NULL;
+ return tmpfile();
+ }
+
+ tmpl = static_cast<char*>( malloc(1 + strlen(path) + L_tmpnam) );
+ strcpy(tmpl, path);
+ strcpy(tmpl+strlen(path), "/sb.XXXXXX");
+ fd = mkstemp(tmpl);
+ if(fd == -1)
+ {
+ fprintf(stderr, "unable to create temp file!\n");
+ return NULL;
+ }
+ fp = fdopen(fd, "wb+");
+ *fileName = static_cast<char*>( malloc(strlen(tmpl) + 1) );
+ strcpy(*fileName, tmpl);
+ free(tmpl);
+ return fp;
+}
+
+int
+createDir(char* dir)
+{
+ /* could use boost filesystem, but it requires compilation, and
+ likely another dependency - jam.
+ */
+ struct stat mystat;
+ bool ok = true;
+ ifstream ifcheck(dir);
+ bool makeit = !ifcheck.good();
+ FILE *fptr = NULL;
+ char *fname = NULL;
+
+ if (ifcheck.good()) /* already exists */
+ {
+ if (stat(dir, &mystat) == 0)
+ {
+ if (S_ISDIR(mystat.st_mode))
+ {
+ makeit = false;
+ /* make sure it's writable */
+ fptr = createTmpFile(dir, &fname);
+ if (fptr == NULL)
+ {
+ fprintf(stderr, "Unable to create a file in existing directory: %s\n.Check permissions.\n", dir);
+ ok = false;
+ }
+ else
+ {
+ remove(fname);
+ }
+ }
+ else
+ {
+ fprintf(stderr, "This already exists, but it is not a directory: %s\n", dir);
+ ok = false;
+ }
+ }
+ else
+ {
+ fprintf(stderr, "(odd) Trouble finding: %s\n", dir);
+ ok = false;
+ }
+ }
+
+ if (!ok)
+ return EXIT_FAILURE;
+ else if (makeit)
+ {
+ if (mkdir(dir, 0700) != 0)
+ {
+ fprintf(stderr, "Unknown problem creating directory. Check permissions. %s\n", dir);
+ return EXIT_FAILURE;
+ }
+ }
+ return EXIT_SUCCESS;
+}
+
+BedData *
+initializeBedData(double *bytes)
+{
+
+ BedData * beds;
+
+ beds = static_cast<BedData*>( malloc(sizeof(BedData)) );
+ *bytes += sizeof(BedData);
+
+ if (beds == NULL)
+ {
+ return NULL;
+ }
+ beds->numChroms = 0;
+ beds->chroms = static_cast<ChromBedData**>( malloc(sizeof(ChromBedData *) * (NUM_CHROM_EST)) );
+ *bytes += (sizeof(ChromBedData*) * NUM_CHROM_EST);
+ if (beds->chroms == NULL)
+ {
+ return NULL;
+ }
+
+ return beds;
+}
+
+
+ChromBedData *
+initializeChromBedData(char *chromBuf, double *bytes) {
+ ChromBedData *chrom;
+ size_t chromBufLen;
+
+ if(chromBuf == NULL)
+ {
+ return NULL;
+ }
+
+ chrom = static_cast<ChromBedData*>( malloc(sizeof(ChromBedData)) );
+ *bytes += sizeof(ChromBedData);
+ if(chrom == NULL)
+ {
+ return NULL;
+ }
+
+ /* Coords */
+ chrom->coords = NULL;
+
+ /* Chrom name*/
+ chromBufLen = strlen(chromBuf); // we know >= 1
+ strncpy(chrom->chromName, chromBuf, chromBufLen);
+ chrom->chromName[chromBufLen] = '\0';
+ chrom->numCoords = 0;
+ return chrom;
+}
+
+
+
+Bed::SignedCoordType
+appendChromBedEntry(ChromBedData *chrom, Bed::SignedCoordType startPos, Bed::SignedCoordType endPos,
+ char *data, double *bytes, double maxMem)
+{
+
+ /* can realloc a lot of data in this function
+ need to be mindful of whether we could dynamically get to maxMem.
+ in particular, might get to maxMem upon reallocation and then drop back below it.
+ in such a case, set *bytes to maxMem (when applicable).
+ */
+ Bed::LineCountType index;
+ size_t dataBufLen, newSize;
+ char *dataPtr;
+
+ if(chrom == NULL)
+ {
+ fprintf(stderr, "Error: %s, %d: Bad 'chrom' variable.\n", __FILE__, __LINE__);
+ return static_cast<Bed::SignedCoordType>(-1);
+ }
+
+ index = chrom->numCoords;
+
+ // requires INIT_NUM_BED_ITEMS_EST < NUM_BED_ITEMS_EST
+ if (index == 0)
+ { // first initialization
+ chrom->coords = static_cast<BedCoordData*>( malloc(sizeof(BedCoordData) * INIT_NUM_BED_ITEMS_EST) );
+ if(chrom->coords == NULL)
+ {
+ fprintf(stderr, "Error: %s, %d: Unable to create BedCoordData structure. Out of memory.\n", __FILE__, __LINE__);
+ return static_cast<Bed::SignedCoordType>(-1);
+ }
+ *bytes += (sizeof(BedCoordData) * INIT_NUM_BED_ITEMS_EST);
+ }
+ else if (index == (INIT_NUM_BED_ITEMS_EST-1))
+ {
+ newSize = sizeof(BedCoordData) * static_cast<size_t>(NUM_BED_ITEMS_EST);
+ chrom->coords = static_cast<BedCoordData*>( realloc(chrom->coords, newSize) );
+ if(chrom->coords == NULL)
+ {
+ fprintf(stderr, "Error: %s, %d: Unable to create BED structure. Out of memory.\n", __FILE__, __LINE__);
+ return static_cast<Bed::SignedCoordType>(-1);
+ }
+ if ((maxMem > 0) && (*bytes + newSize >= maxMem))
+ { // may have temporarily reach maxMem or more
+ *bytes = maxMem;
+ }
+ else
+ {
+ *bytes += (sizeof(BedCoordData) * NUM_BED_ITEMS_EST);
+ *bytes -= (sizeof(BedCoordData) * INIT_NUM_BED_ITEMS_EST);
+ }
+ }
+ else if((index % (NUM_BED_ITEMS_EST-1)) == 0)
+ {
+ //fprintf(stderr, "Reallocating...\n");
+ newSize = sizeof(BedCoordData) * static_cast<size_t>(index + NUM_BED_ITEMS_EST);
+ chrom->coords = static_cast<BedCoordData*>( realloc(chrom->coords, newSize) );
+ if(chrom->coords == NULL)
+ {
+ fprintf(stderr, "Error: %s, %d: Unable to create BED structure. Out of memory.\n", __FILE__, __LINE__);
+ return static_cast<Bed::SignedCoordType>(-1);
+ }
+ if ((maxMem > 0) && (*bytes + newSize >= maxMem))
+ { // may have temporarily reach maxMem or more
+ *bytes = maxMem;
+ }
+ else
+ { // only increasing by NUM_BED_ITEMS_EST since last time around
+ *bytes += (sizeof(BedCoordData) * NUM_BED_ITEMS_EST);
+ }
+ }
+
+ /* Coords */
+ chrom->coords[index].startCoord = startPos;
+ chrom->coords[index].endCoord = endPos;
+
+ /* Copy in data */
+ if(data)
+ {
+ dataBufLen = strlen(data);
+ if(dataBufLen <= 0)
+ {
+ fprintf(stderr, "Error: %s, %d: Bad 'data' variable.\n", __FILE__, __LINE__);
+ return static_cast<Bed::SignedCoordType>(-1);
+ }
+ dataPtr = static_cast<char*>( calloc(dataBufLen + 1, sizeof(char)) );
+ *bytes += dataBufLen + 1;
+ if(dataPtr == NULL)
+ {
+ fprintf(stderr, "Error: %s, %d: Unable to create BED structure. Out of memory.\n", __FILE__, __LINE__);
+ return static_cast<Bed::SignedCoordType>(-1);
+ }
+ chrom->coords[index].data = strncpy(dataPtr, data, dataBufLen + 1);
+ chrom->coords[index].data[dataBufLen] = '\0';
+ }
+ else
+ chrom->coords[index].data = NULL;
+
+ return static_cast<Bed::SignedCoordType>(++chrom->numCoords);
+}
+
+int
+checkfiles(const char **bedFileNames, unsigned int numFiles)
+{
+ FILE* bedFile;
+ int notStdin = 0, stdinCount = 0;
+ unsigned int i = 0U;
+
+ for(i = 0; i < numFiles; i++)
+ {
+ notStdin = strcmp(bedFileNames[i], "-");
+ if(notStdin)
+ {
+ bedFile = fopen(bedFileNames[i], "r");
+ if (!bedFile)
+ {
+ fprintf(stderr, "Unable to access %s\n", bedFileNames[i]);
+ return -1;
+ }
+ fclose(bedFile);
+ }
+ else if (++stdinCount > 1)
+ {
+ fprintf(stderr, "stdin specified multiple times\n");
+ return -1;
+ }
+ } /* for */
+ return 0;
+}
+
+int
+mergeSort(FILE* output, FILE **tmpFiles, unsigned int numFiles)
+{
+ /* error checking in processData() has already been performed, headers and empty rows removed, etc. */
+ unsigned int i = 0U;
+ int done = 0, currMin = 0, val = 0;
+ char **chroms = static_cast<char**>( malloc(sizeof(char*) * static_cast<size_t>(numFiles)) );
+
+ if(chroms == NULL)
+ return -1;
+
+ Bed::SignedCoordType *starts = static_cast<Bed::SignedCoordType*>( malloc(sizeof(Bed::SignedCoordType) * static_cast<size_t>(numFiles)) );
+ if(starts == NULL)
+ return -1;
+
+ Bed::SignedCoordType *ends = static_cast<Bed::SignedCoordType*>( malloc(sizeof(Bed::SignedCoordType) * static_cast<size_t>(numFiles)) );
+ if(ends == NULL)
+ return -1;
+
+ int *fields = static_cast<int*>( malloc(sizeof(int) * static_cast<size_t>(numFiles)) );
+ if(fields == NULL)
+ return -1;
+
+ char **rests = static_cast<char**>( malloc(sizeof(char*) * static_cast<size_t>(numFiles)) );
+ if(rests == NULL)
+ return -1;
+
+ for(i=0; i < numFiles; ++i) {
+ fseek(tmpFiles[i], 0, SEEK_SET);
+ chroms[i] = static_cast<char*>( malloc(sizeof(char) * (CHROM_NAME_LEN+1)) );
+ if(chroms[i] == NULL)
+ return -1;
+ rests[i] = static_cast<char*>( malloc(sizeof(char) * (BED_LINE_LEN+1)) );
+ if(rests[i] == NULL)
+ return -1;
+ } /* for */
+
+ for(i=0; i < numFiles; ++i)
+ {
+ fields[i] = fscanf(tmpFiles[i], "%s\t%" SCNd64 "\t%" SCNd64 "%[^\n]s\n",
+ chroms[i], &starts[i], &ends[i], rests[i]);
+ if(fields[i] == EOF)
+ {
+ starts[i] = -1;
+ ends[i] = -1;
+ fields[i] = 0;
+ }
+ } /* for */
+
+ /* find minimum, over and over again */
+ while(!done)
+ {
+ currMin = -1;
+ for(i=0; i < numFiles; ++i)
+ {
+ if(starts[i]>=0)
+ {
+ if(currMin<0 || (val = strcmp(chroms[i], chroms[currMin]))<0)
+ currMin = static_cast<int>(i);
+ else if(0 == val)
+ {
+ if(starts[i] < starts[currMin])
+ currMin = static_cast<int>(i);
+ else if(starts[i] == starts[currMin] && ends[i] < ends[currMin])
+ currMin = static_cast<int>(i);
+ }
+ }
+ } /* for */
+ if(currMin < 0)
+ break;
+
+ if(3 == fields[currMin])
+ fprintf(output, "%s\t%" PRId64 "\t%" PRId64 "\n", chroms[currMin],
+ starts[currMin], ends[currMin]);
+ else
+ fprintf(output, "%s\t%" PRId64 "\t%" PRId64 "%s\n", chroms[currMin],
+ starts[currMin], ends[currMin], rests[currMin]);
+
+ fields[currMin] = fscanf(tmpFiles[currMin], "%s\t%" SCNd64 "\t%" SCNd64 "%[^\n]s\n",
+ chroms[currMin], &starts[currMin],
+ &ends[currMin], rests[currMin]);
+ if(fields[currMin] == EOF)
+ {
+ starts[currMin] = -1;
+ ends[currMin] = -1;
+ fields[currMin] = 0;
+ }
+ } /* while */
+
+ for(i=0; i < numFiles; ++i)
+ {
+ free(chroms[i]);
+ free(rests[i]);
+ }
+ free(chroms);
+ free(starts);
+ free(ends);
+ free(rests);
+ free(fields);
+
+ return 0;
+}
+
+void
+freeTmpFiles(unsigned int fcount, FILE **tmpFiles, char **tmpFileNames) {
+ if (fcount)
+ {
+ unsigned int i = 0;
+ while (i < fcount)
+ {
+ /* tmpFileNames[i] will be NULL if temp file was created through C's tmpfile() */
+ fclose(tmpFiles[i]);
+ if ( tmpFileNames[i] != NULL )
+ {
+ remove(tmpFileNames[i]);
+ free(tmpFileNames[i]);
+ }
+ ++i;
+ } /* while */
+ free(tmpFileNames);
+ free(tmpFiles);
+ }
+}
+
+int
+processData(char const **bedFileNames, unsigned int numFiles, const double maxMem, char *tmpPath)
+{
+ /* maxMem will be ignored if <= 0 */
+ /* function does not do a great job of cleaning up memory on failure (including user input problems).
+ But, failure leads to quick program termination and cleanup by the OS. */
+
+ FILE *bedFile = NULL;
+ Bed::SignedCoordType chromEntryCount;
+ int notStdin = 0,
+ fields = 0,
+ headCheck = 1,
+ val = 0;
+ unsigned int iidx, jidx, kidx, tidx, newChrom;
+ unsigned int tmpFileCount = 0U;
+ size_t chromAllocs = 1;
+ Bed::SignedCoordType lastidx = 0;
+
+ Bed::SignedCoordType startPos = 0, endPos = 0;
+ Bed::LineCountType lines = 1;
+ FILE* tmpX;
+
+ BedData *beds;
+ ChromBedData *chrom;
+
+ char **tmpFileNames = NULL;
+ FILE **tmpFiles = NULL;
+ char *tfile = NULL;
+
+ double **chromBytes = NULL;
+ const int chromCrossover = 1000;
+ const unsigned int maxTmpFiles = 120; // can hit max open file descriptors in extreme cases. use hierarchial merge-sort
+ double diffBytes = 0;
+ double maxChromBytes = 0;
+ bool firstCross = true;
+ std::map<std::string, unsigned int> chrNames;
+ std::map<std::string, unsigned int>::iterator siter;
+
+ /*Line reading buffers*/
+ char bedLine[BED_LINE_LEN + 1];
+ char chromBuf[CHROM_NAME_LEN + 1];
+ char *cptr = NULL;
+ char *dptr = NULL;
+ char tmpArr[BED_LINE_LEN + 1];
+ bedLine[0] = '\0';
+ chromBuf[0] = '\0';
+
+ /* check input files */
+ if(0 != checkfiles(bedFileNames, numFiles))
+ {
+ return EXIT_FAILURE;
+ }
+
+ /* if we'll perform file system merge sort, create or check tmp dir */
+ if ((tmpPath != NULL) && (createDir(tmpPath) == EXIT_FAILURE))
+ {
+ return EXIT_FAILURE;
+ }
+
+ chromBytes = static_cast<double**>( malloc(sizeof(double *)) );
+ if(chromBytes == NULL)
+ {
+ fprintf(stderr, "Error: %s, %d: Unable to create double* array. Out of memory.\n", __FILE__, __LINE__);
+ return EXIT_FAILURE;
+ }
+
+ /* a guess for general overhead for local vars, function call stacks, etc. */
+ const int overhead = 50000000 + (2 * (BED_LINE_LEN + 1)) + CHROM_NAME_LEN + 1;
+ double totalBytes = overhead;
+
+ beds = initializeBedData(&totalBytes);
+ if(beds == NULL)
+ {
+ fprintf(stderr, "Error: %s, %d: Unable to create BED structure. Out of memory.\n", __FILE__, __LINE__);
+ return EXIT_FAILURE;
+ }
+
+
+
+ for(iidx = 0; iidx < numFiles; iidx++)
+ {
+ headCheck = 1;
+ lines = 1;
+ notStdin = strcmp(bedFileNames[iidx], "-");
+ if(notStdin)
+ {
+ bedFile = fopen(bedFileNames[iidx], "r");
+ }
+ else
+ {
+ bedFile = stdin;
+ }
+
+ /* error check if your line length (including the newline) is BED_LINE_LEN or more */
+ bedLine[BED_LINE_LEN] = '1';
+ bedLine[0] = '\n';
+ while(fgets(bedLine, BED_LINE_LEN+1, bedFile))
+ {
+ if('\n' == bedLine[0])
+ { /* only a new line was found */
+ lines++;
+ continue;
+ }
+ else if('\0' == bedLine[BED_LINE_LEN])
+ {
+ fprintf(stderr, "BED row length exceeds capacity at line %" PRIu64 " in %s.\n",
+ lines, bedFileNames[iidx]);
+ fprintf(stderr, "Check that you have unix newlines (cat -A) or increase TOKENS_MAX_LENGTH in BEDOPS.Constants.hpp and recompile BEDOPS.\n");
+ return EXIT_FAILURE;
+ }
+ else if(' ' == bedLine[0] || '\t' == bedLine[0])
+ {
+ fprintf(stderr, "Row begins with a tab or space at line %" PRIu64 " in %s.\n",
+ lines, bedFileNames[iidx]);
+ return EXIT_FAILURE;
+ }
+
+ if(headCheck &&
+ (strstr(bedLine, "browser") == bedLine ||
+ strstr(bedLine, "track") == bedLine ||
+ strstr(bedLine, "#") == bedLine ||
+ strstr(bedLine, "@") == bedLine))
+ { /* allow silly headers on input; delete them on output */
+ lines++;
+ continue;
+ }
+
+ /* chromosome check */
+ cptr = strpbrk(bedLine, "\t "); /* we'll convert spaces to tabs in the first 3 fields */
+ if(cptr == NULL)
+ {
+ fprintf(stderr, "No tabs/spaces found at line %" PRIu64 " in %s.\n",
+ lines, bedFileNames[iidx]);
+ return EXIT_FAILURE;
+ }
+ if(static_cast<size_t>(cptr - bedLine) > CHROM_NAME_LEN)
+ {
+ fprintf(stderr, "Chromosome name too long at line %" PRIu64 " in %s.\n",
+ lines, bedFileNames[iidx]);
+ fprintf(stderr, "Check that you have unix newlines (cat -A) or increase TOKEN_CHR_MAX_LENGTH in BEDOPS.Constants.hpp and recompile BEDOPS.\n");
+ return EXIT_FAILURE;
+ }
+
+ // reverse chrom name for faster lookup in common case that everything looks like chrBLAH
+ jidx = 0;
+ for ( kidx = static_cast<unsigned int>(cptr-bedLine); kidx > 0; )
+ chromBuf[jidx++] = bedLine[--kidx];
+ chromBuf[static_cast<size_t>(cptr-bedLine)-1] = bedLine[0];
+ // memcpy(chromBuf, bedLine, static_cast<size_t>(cptr-bedLine));
+ chromBuf[cptr-bedLine] = '\0';
+
+ /* start coord check */
+ dptr = strpbrk(++cptr, "\t "); /* we'll convert spaces to tabs in the first 3 fields */
+ if(dptr == NULL)
+ {
+ fprintf(stderr, "No tabs/spaces found after the start coordinate (or no start coordinate at all) at line %" PRIu64 " in %s.\n",
+ lines, bedFileNames[iidx]);
+ return EXIT_FAILURE;
+ }
+ if(dptr - cptr > static_cast<double>( Bed::MAX_DEC_INTEGERS ))
+ {
+ fprintf(stderr, "Start coordinate is too large. Max decimal digits allowed is %ld in BEDOPS.Constants.hpp. See line %" PRIu64 " in %s.\n",
+ Bed::MAX_DEC_INTEGERS, lines, bedFileNames[iidx]);
+ return EXIT_FAILURE;
+ }
+ else if(0 == dptr - cptr)
+ {
+ fprintf(stderr, "Consecutive tabs and/or spaces between chromosome and start coordinate. See line %" PRIu64 " in %s.\n",
+ lines, bedFileNames[iidx]);
+ return EXIT_FAILURE;
+ }
+ memcpy(tmpArr, cptr, static_cast<size_t>(dptr-cptr));
+ tmpArr[dptr-cptr] = '\0';
+ for(kidx=0; kidx < static_cast<unsigned int>(dptr-cptr); ++kidx)
+ {
+ if(!isdigit(tmpArr[kidx]))
+ {
+ fprintf(stderr, "Non-numeric start coordinate. See line %" PRIu64 " in %s.\n(remember that chromosome names should not contain spaces.)\n",
+ lines, bedFileNames[iidx]);
+ return EXIT_FAILURE;
+ }
+ } /* for */
+ if(atof(tmpArr) > double(Bed::MAX_COORD_VALUE))
+ {
+ fprintf(stderr, "Start coordinate is too large. Max allowed value is %" PRIu64 " in BEDOPS.Constants.hpp. See line %" PRIu64 " in %s.\n",
+ Bed::MAX_COORD_VALUE, lines, bedFileNames[iidx]);
+ return EXIT_FAILURE;
+ }
+ sscanf(tmpArr, "%" SCNd64, &startPos);
+
+ /* end coord check */
+ cptr = strpbrk(++dptr, "\t ");
+ if(cptr == NULL)
+ { /* eol */
+ cptr = strchr(dptr, '\n');
+ if(cptr == NULL)
+ {
+ fprintf(stderr, "No end of line found at %" PRIu64 " in %s.\nMay need to increase BED_LINE_LEN and recompile.\nFirst check that you have unix newlines (cat -A).",
+ lines, bedFileNames[iidx]);
+ return EXIT_FAILURE;
+ }
+ }
+ if(cptr - dptr > static_cast<double>( Bed::MAX_DEC_INTEGERS ))
+ {
+ fprintf(stderr, "End coordinate is too large. Max decimal digits allowed is %ld in BEDOPS.Constants.hpp. See line %" PRIu64 " in %s.\n",
+ Bed::MAX_DEC_INTEGERS, lines, bedFileNames[iidx]);
+ return EXIT_FAILURE;
+ }
+ else if(cptr == dptr)
+ {
+ fprintf(stderr, "Extra tab and/or space found in between start and end coordinates. See line %" PRIu64 " in %s.\n",
+ lines, bedFileNames[iidx]);
+ return EXIT_FAILURE;
+ }
+ memcpy(tmpArr, dptr, static_cast<size_t>(cptr-dptr));
+ tmpArr[cptr-dptr] = '\0';
+ for(kidx=0; kidx < static_cast<unsigned int>(cptr-dptr); ++kidx)
+ {
+ if(!isdigit(tmpArr[kidx]))
+ {
+ fprintf(stderr, "Non-numeric end coordinate. See line %" PRIu64 " in %s.\n",
+ lines, bedFileNames[iidx]);
+ return EXIT_FAILURE;
+ }
+ } /* for */
+ if(atof(tmpArr) > double(Bed::MAX_COORD_VALUE))
+ {
+ fprintf(stderr, "End coordinate is too large. Max allowed value is %" PRIu64 " in BEDOPS.Constants.hpp. See line %" PRIu64 " in %s.\n",
+ Bed::MAX_COORD_VALUE, lines, bedFileNames[iidx]);
+ return EXIT_FAILURE;
+ }
+ sscanf(tmpArr, "%" SCNd64, &endPos);
+
+ /* rest of the line goes into bedLine */
+ fields = 3;
+ if ( (val = sscanf(cptr, "\t%[^\n]s\n", bedLine)) != EOF )
+ fields += val;
+ headCheck = 0;
+
+ /* Validate Coords */
+ if ((startPos < 0) || (endPos < 0))
+ {
+ fprintf(stderr, "Error on line %" PRIu64 " in %s. Genomic position must be greater than 0.\n",
+ lines, bedFileNames[iidx]);
+ return EXIT_FAILURE;
+ }
+ if (endPos <= startPos)
+ {
+ fprintf(stderr, "Error on line %" PRIu64 " in %s. Genomic end coordinate is less than (or equal to) start coordinate.\n",
+ lines, bedFileNames[iidx]);
+ return EXIT_FAILURE;
+ }
+
+
+ /*Find the chrom*/
+ newChrom = 1;
+ if (beds->numChroms < chromCrossover)
+ {
+ if (beds->numChroms > 0 && (strcmp(beds->chroms[lastidx]->chromName, chromBuf) == 0))
+ { /* same chr as last row which often happens in practice */
+ jidx = static_cast<unsigned int>(lastidx);
+ newChrom = 0;
+ }
+ else /* linear search */
+ {
+ for(jidx = 0; jidx < beds->numChroms; jidx++)
+ {
+ if(strcmp(beds->chroms[jidx]->chromName, chromBuf) == 0)
+ {
+ lastidx = jidx;
+ newChrom = 0;
+ break;
+ }
+ } /* for */
+ }
+ }
+ else /* map search since there are a ridiculous # distinct chrom names */
+ {
+ if (firstCross)
+ { /* copy over what we have up until this point into our map */
+ firstCross = false;
+ chrNames.clear();
+ for(tidx = 0; tidx < beds->numChroms; ++tidx)
+ chrNames.insert(std::make_pair(std::string(beds->chroms[tidx]->chromName), tidx));
+ }
+
+ /*Find the chrom*/
+ siter = chrNames.find(std::string(chromBuf));
+ if ( siter != chrNames.end() )
+ { /* chrom already exists */
+ jidx = siter->second;
+ newChrom = 0;
+ }
+ else /* Create a new chrom */
+ {
+ chrNames.insert(std::make_pair(std::string(chromBuf), beds->numChroms));
+ }
+ }
+
+ if (!newChrom)
+ {
+ /* Append data to current chrom */
+ diffBytes = totalBytes;
+ if(fields > 3)
+ { /* check ID column is <= ID_NAME_LEN for the benefit of downstream programs */
+ cptr = strpbrk(bedLine, "\t "); /* bedops/bedmap do not differentiate these whitespace characters */
+ if(cptr == NULL)
+ {
+ if(strlen(bedLine) > ID_NAME_LEN)
+ {
+ fprintf(stderr, "ID field too long at line %" PRIu64 " in %s.\n",
+ lines, bedFileNames[iidx]);
+ fprintf(stderr, "Check that you have unix newlines (cat -A) or increase TOKEN_ID_MAX_LENGTH in BEDOPS.Constants.hpp and recompile BEDOPS.\n");
+ fprintf(stderr, "You may instead choose to put a dummy id column (like 'id') in as the 4th field to fix this.\n");
+ return EXIT_FAILURE;
+ }
+ }
+ else if(cptr - bedLine > static_cast<double>( ID_NAME_LEN ))
+ {
+ fprintf(stderr, "ID field too long at line %" PRIu64 " in %s.\n",
+ lines, bedFileNames[iidx]);
+ fprintf(stderr, "Check that you have unix newlines (cat -A) or increase TOKEN_ID_MAX_LENGTH in BEDOPS.Constants.hpp and recompile BEDOPS.\n");
+ fprintf(stderr, "You may instead choose to put a dummy id column (like 'id') in as the 4th field to fix this.\n");
+ return EXIT_FAILURE;
+ }
+ chromEntryCount = appendChromBedEntry(beds->chroms[jidx], startPos, endPos, bedLine, &totalBytes, maxMem);
+ }
+ else
+ {
+ chromEntryCount = appendChromBedEntry(beds->chroms[jidx], startPos, endPos, NULL, &totalBytes, maxMem);
+ }
+
+ if (static_cast<int>(chromEntryCount) < 0)
+ {
+ fprintf(stderr, "Error: %s, %d: Unable to create BED structure.\n", __FILE__, __LINE__);
+ return EXIT_FAILURE;
+ }
+ diffBytes = totalBytes - diffBytes;
+ *chromBytes[jidx] += diffBytes;
+ maxChromBytes = (*chromBytes[jidx] < maxChromBytes) ? maxChromBytes : *chromBytes[jidx];
+ }
+ else /* new chrom */
+ {
+ errno = 0;
+ if(beds->numChroms >= static_cast<double>( ((NUM_CHROM_EST * chromAllocs)) ))
+ { /* Resize Chrom Structure */
+ chromAllocs++;
+ beds->chroms = static_cast<ChromBedData**>( realloc(beds->chroms, sizeof(ChromBedData*) * NUM_CHROM_EST * chromAllocs) );
+ totalBytes += sizeof(ChromBedData*) * NUM_CHROM_EST;
+ if(beds->chroms == NULL)
+ {
+ fprintf(stderr, "Error: %s, %d: Unable to expand Chrom structure: %s. Out of memory.\n", __FILE__,
+ __LINE__, strerror(errno));
+ return EXIT_FAILURE;
+ }
+ }
+
+ diffBytes = totalBytes;
+ chrom = initializeChromBedData(chromBuf, &totalBytes);
+ if(chrom == NULL)
+ {
+ fprintf(stderr, "Error: %s, %d: Unable to create Chrom structure: %s. Out of memory.\n", __FILE__,
+ __LINE__, strerror(errno));
+ return EXIT_FAILURE;
+ }
+ diffBytes = totalBytes - diffBytes;
+ chromBytes = static_cast<double**>( realloc(chromBytes, sizeof(double*) * (static_cast<size_t>(beds->numChroms) + 1)) );
+ if(chromBytes == NULL)
+ {
+ fprintf(stderr, "Error: %s, %d: Unable to create double* array. Out of memory.\n", __FILE__, __LINE__);
+ return EXIT_FAILURE;
+ }
+ chromBytes[beds->numChroms] = static_cast<double*>( malloc(sizeof(double)) );
+ if(chromBytes[beds->numChroms] == NULL)
+ {
+ fprintf(stderr, "Error: %s, %d: Unable to create double. Out of memory.\n", __FILE__, __LINE__);
+ return EXIT_FAILURE;
+ }
+ *chromBytes[beds->numChroms] = diffBytes;
+ totalBytes += sizeof(double*) + sizeof(double); // sizeof(double*) increments in realloc of chromBytes + sizeof(double) for malloc
+ diffBytes = totalBytes;
+ if(fields > 3)
+ { /* check ID column is <= ID_NAME_LEN for the benefit of downstream programs */
+ cptr = strpbrk(bedLine, "\t "); /* bedops/bedmap do not differentiate these whitespace characters */
+ if(cptr == NULL)
+ {
+ if(strlen(bedLine) > ID_NAME_LEN)
+ {
+ fprintf(stderr, "ID field too long at line %" PRIu64 " in %s.\n",
+ lines, bedFileNames[iidx]);
+ fprintf(stderr, "Check that you have unix newlines (cat -A) or increase TOKEN_ID_MAX_LENGTH in BEDOPS.Constants.hpp and recompile BEDOPS.\n");
+ fprintf(stderr, "You may instead choose to put a dummy id column (like 'id') in as the 4th field to fix this.\n");
+ return EXIT_FAILURE;
+ }
+ }
+ else if(cptr - bedLine > static_cast<double>( ID_NAME_LEN ))
+ {
+ fprintf(stderr, "ID field too long at line %" PRIu64 " in %s.\n",
+ lines, bedFileNames[iidx]);
+ fprintf(stderr, "Check that you have unix newlines (cat -A) or increase TOKEN_ID_MAX_LENGTH in BEDOPS.Constants.hpp and recompile BEDOPS.\n");
+ fprintf(stderr, "You may instead choose to put a dummy id column (like 'id') in as the 4th field to fix this.\n");
+ return EXIT_FAILURE;
+ }
+ chromEntryCount = appendChromBedEntry(chrom, startPos, endPos, bedLine, &totalBytes, maxMem);
+ }
+ else
+ {
+ chromEntryCount = appendChromBedEntry(chrom, startPos, endPos, NULL, &totalBytes, maxMem);
+ }
+
+ if(static_cast<int>(chromEntryCount) < 0)
+ {
+ fprintf(stderr, "Error: %s, %d: Unable to create BED structure.\n", __FILE__, __LINE__);
+ return EXIT_FAILURE;
+ }
+ diffBytes = totalBytes - diffBytes;
+ *chromBytes[beds->numChroms] += diffBytes;
+ maxChromBytes = (*chromBytes[beds->numChroms] < maxChromBytes) ? maxChromBytes : *chromBytes[beds->numChroms];
+
+ beds->chroms[beds->numChroms] = chrom;
+ lastidx = beds->numChroms++;
+ }
+
+ /* check memory */
+ if(maxMem > 0 && (totalBytes + maxChromBytes >= maxMem))
+ {
+ /* worst case quicksort memory is O(2*n),
+ yet we sort by a single chrom at a time and totalBytes already
+ accounts for 1*n maxChromBytes. totalBytes is a conservative
+ measure of memory used.
+ */
+
+ errno = 0;
+ tmpFiles = static_cast<FILE**>( realloc(tmpFiles, sizeof(FILE*) * (tmpFileCount+1)) );
+ if(tmpFiles == NULL)
+ {
+ fprintf(stderr, "Error: %s, %d: Unable to create FILE* array: %s. Out of memory.\n", __FILE__,
+ __LINE__, strerror(errno));
+ return EXIT_FAILURE;
+ }
+ errno = 0;
+ tmpFileNames = static_cast<char**>( realloc(tmpFileNames, sizeof(char*) * (tmpFileCount+1)) );
+ if(tmpFileNames == NULL)
+ {
+ fprintf(stderr, "Error: %s, %d: Unable to create char* array: %s. Out of memory.\n", __FILE__,
+ __LINE__, strerror(errno));
+ return EXIT_FAILURE;
+ }
+ totalBytes += sizeof(FILE*) * (tmpFileCount+1);
+ totalBytes += sizeof(char*) * (tmpFileCount+1);
+ tfile = NULL;
+ tmpFiles[tmpFileCount] = createTmpFile(tmpPath, &tfile);
+ if(tmpFiles[tmpFileCount] == NULL)
+ {
+ fprintf(stderr, "Error: %s, %d: Unable to create FILE* for temp file: %s. Out of memory.\n", __FILE__,
+ __LINE__, strerror(errno));
+ return EXIT_FAILURE;
+ }
+ totalBytes += (tfile == NULL) ? 0 : (strlen(tfile)+1);
+ tmpFileNames[tmpFileCount] = tfile;
+ lexSortBedData(beds);
+ printBed(tmpFiles[tmpFileCount], beds);
+ for(tidx = 0; tidx < beds->numChroms; ++tidx)
+ free(chromBytes[tidx]);
+ free(chromBytes);
+
+ freeBedData(beds);
+ chromAllocs = 1;
+ chrNames.clear();
+ firstCross = true;
+ chromBytes = static_cast<double**>( malloc(sizeof(double *)) );
+ if(chromBytes == NULL)
+ {
+ fprintf(stderr, "Error: %s, %d: Unable to create double* array. Out of memory.\n", __FILE__, __LINE__);
+ return EXIT_FAILURE;
+ }
+ maxChromBytes = 0;
+ totalBytes = overhead; /* already includes chromBytes array */
+ if ( ++tmpFileCount == maxTmpFiles )
+ { /* hierarchial merge sort to keep # open file descriptors low */
+ tfile = NULL;
+ tmpX = createTmpFile(tmpPath, &tfile);
+ if(tmpX == NULL)
+ {
+ fprintf(stderr, "Error: %s, %d: Unable to create FILE* for temp file: %s. Out of memory.\n", __FILE__,
+ __LINE__, strerror(errno));
+ return EXIT_FAILURE;
+ }
+
+ if(0 != mergeSort(tmpX, tmpFiles, tmpFileCount))
+ {
+ fprintf(stderr, "Error: %s, %d. Out of memory.\n", __FILE__, __LINE__);
+ return EXIT_FAILURE;
+ }
+
+ freeTmpFiles(tmpFileCount, tmpFiles, tmpFileNames);
+ tmpFiles = static_cast<FILE**>( malloc(sizeof(FILE *)) );
+ if(tmpFiles == NULL)
+ {
+ fprintf(stderr, "Error: %s, %d: Unable to create FILE* array. Out of memory.\n", __FILE__, __LINE__);
+ return EXIT_FAILURE;
+ }
+ tmpFileNames = static_cast<char**>( malloc(sizeof(char *)) );
+ if(tmpFileNames == NULL)
+ {
+ fprintf(stderr, "Error: %s, %d: Unable to create char* array. Out of memory.\n", __FILE__, __LINE__);
+ return EXIT_FAILURE;
+ }
+ totalBytes += sizeof(FILE *);
+ totalBytes += sizeof(char *);
+ totalBytes += (tfile == NULL) ? 0 : (strlen(tfile)+1);
+ tmpFileCount = 1U;
+ tmpFiles[0] = tmpX;
+ tmpFileNames[0] = tfile;
+ tmpX = NULL;
+ }
+
+ beds = initializeBedData(&totalBytes);
+ if(beds == NULL)
+ {
+ fprintf(stderr, "Error: %s, %d: Unable to create BED structure. Out of memory.\n", __FILE__, __LINE__);
+ return EXIT_FAILURE;
+ }
+ }
+
+ bedLine[BED_LINE_LEN] = '1';
+ bedLine[0] = '\n';
+ lines++;
+ } /* while */
+
+ if(notStdin)
+ {
+ fclose(bedFile);
+ }
+ } /* for */
+
+ if(tmpFileCount > 0)
+ {
+ if(beds->numChroms > 0)
+ { /* sort and spit out what's in memory */
+ errno = 0;
+ tmpFiles = static_cast<FILE **>( realloc(tmpFiles, sizeof(FILE*) * (tmpFileCount+1)) );
+ if(tmpFiles == NULL)
+ {
+ fprintf(stderr, "Error: %s, %d: Unable to expand Chrom structure: %s. Out of memory.\n", __FILE__,
+ __LINE__, strerror(errno));
+ return EXIT_FAILURE;
+ }
+ tmpFileNames = static_cast<char**>( realloc(tmpFileNames, sizeof(char*) * (tmpFileCount+1)) );
+ if(tmpFileNames == NULL)
+ {
+ fprintf(stderr, "Error: %s, %d: Unable to create char* array: %s. Out of memory.\n", __FILE__,
+ __LINE__, strerror(errno));
+ return EXIT_FAILURE;
+ }
+ tfile = NULL;
+ tmpFiles[tmpFileCount] = createTmpFile(tmpPath, &tfile);
+ if(tmpFiles[tmpFileCount] == NULL)
+ {
+ fprintf(stderr, "Error: %s, %d: Unable to create FILE* for temp file: %s. Out of memory.\n", __FILE__,
+ __LINE__, strerror(errno));
+ return EXIT_FAILURE;
+ }
+ tmpFileNames[tmpFileCount] = tfile;
+ lexSortBedData(beds);
+ printBed(tmpFiles[tmpFileCount], beds);
+ ++tmpFileCount;
+ for(tidx = 0; tidx < beds->numChroms; ++tidx)
+ free(chromBytes[tidx]);
+ free(chromBytes);
+ freeBedData(beds);
+ }
+ if(0 != mergeSort(stdout, tmpFiles, tmpFileCount))
+ {
+ fprintf(stderr, "Error: %s, %d. Out of memory.\n", __FILE__, __LINE__);
+ return EXIT_FAILURE;
+ }
+ freeTmpFiles(tmpFileCount, tmpFiles, tmpFileNames);
+ }
+ else
+ {
+ lexSortBedData(beds);
+ printBed(stdout, beds);
+ for(tidx = 0; tidx < beds->numChroms; ++tidx)
+ free(chromBytes[tidx]);
+ free(chromBytes);
+ /* freeBedData(beds); let the OS clean up - takes significant time to do this step manually */
+ }
+ return EXIT_SUCCESS;
+}
+
+void
+printBed(FILE *out, BedData *beds)
+{
+ unsigned int i = 0U;
+ Bed::LineCountType j = 0;
+
+ if(beds == NULL)
+ return;
+
+ for(i = 0; i < beds->numChroms; i++)
+ for(j = 0; j < beds->chroms[i]->numCoords; j++)
+ {
+ fprintf(out, "%s\t%" PRId64 "\t%" PRId64, beds->chroms[i]->chromName, beds->chroms[i]->coords[j].startCoord,
+ beds->chroms[i]->coords[j].endCoord);
+ if(beds->chroms[i]->coords[j].data)
+ fprintf(out, "\t%s\n", beds->chroms[i]->coords[j].data);
+ else
+ fprintf(out, "\n");
+ }
+ return;
+}
+
+void
+freeBedData(BedData *beds)
+{
+ unsigned int i = 0;
+ Bed::LineCountType j = 0;
+
+ if(beds == NULL)
+ {
+ return;
+ }
+
+ for(i = 0; i < beds->numChroms; i++)
+ {
+
+ for(j = 0; j < beds->chroms[i]->numCoords; j++)
+ {
+ free(beds->chroms[i]->coords[j].data);
+ }
+ free(beds->chroms[i]->coords);
+ free(beds->chroms[i]);
+ }
+ free(beds->chroms);
+ free(beds);
+}
+
+void
+lexSortBedData(BedData *beds)
+{
+ unsigned int i, j, k;
+ char chromBuf[CHROM_NAME_LEN + 1];
+ chromBuf[0] = '\0';
+ size_t chromBufLen;
+
+ if(beds == NULL)
+ {
+ return;
+ }
+
+ /* reverse chromosome names (back to correct names) before comparisons */
+ for(i = 0; i < beds->numChroms; ++i)
+ {
+ k = 0;
+ chromBufLen = strlen(beds->chroms[i]->chromName); // we know >= 1
+ strncpy(chromBuf, beds->chroms[i]->chromName, chromBufLen);
+ for ( j = static_cast<unsigned int>(chromBufLen); j > 0; )
+ beds->chroms[i]->chromName[k++] = chromBuf[--j];
+ /* terminating null is already in correct spot */
+ }
+
+ /* sort coords */
+ for(i = 0; i < beds->numChroms; ++i)
+ {
+ qsort(beds->chroms[i]->coords, static_cast<size_t>(beds->chroms[i]->numCoords), sizeof(BedCoordData), numCompareBedData);
+ }
+
+ /* sort chroms */
+ qsort(beds->chroms, static_cast<size_t>(beds->numChroms), sizeof(ChromBedData *), lexCompareBedData);
+ return;
+}
+
+int
+numCompareBedData(const void *pos1, const void *pos2)
+{
+ Bed::SignedCoordType diff = (static_cast<const BedCoordData *>(pos1))->startCoord - (static_cast<const BedCoordData *>(pos2))->startCoord;
+ if(diff)
+ {
+ return (diff > 0) ? 1 : -1;
+ }
+ diff = (static_cast<const BedCoordData *>(pos1))->endCoord - (static_cast<const BedCoordData *>(pos2))->endCoord;
+ return (diff > 0) ? 1 : ((diff < 0) ? -1 : 0);
+}
+
+int
+lexCompareBedData(const void *chrPos1, const void *chrPos2)
+{
+ ChromBedData **chrPos1Cbd = static_cast<ChromBedData **>(const_cast<void *>(chrPos1));
+ ChromBedData **chrPos2Cbd = static_cast<ChromBedData **>(const_cast<void *>(chrPos2));
+ return strcmp((*chrPos1Cbd)->chromName, (*chrPos2Cbd)->chromName);
+}
diff --git a/applications/bed/sort-bed/src/Structures.hpp b/applications/bed/sort-bed/src/Structures.hpp
new file mode 100644
index 0000000..6bf6048
--- /dev/null
+++ b/applications/bed/sort-bed/src/Structures.hpp
@@ -0,0 +1,106 @@
+/*
+ Author: Scott Kuehn
+ Mods: Shane Neph
+ Date: Tue May 16 09:15:54 PDT 2006
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef BED_STRUCTURES_H
+#define BED_STRUCTURES_H
+
+#include <cstdio>
+
+#include "suite/BEDOPS.Constants.hpp"
+
+static const unsigned long CHROM_NAME_LEN = Bed::TOKEN_CHR_MAX_LENGTH;
+static const unsigned long ID_NAME_LEN = Bed::TOKEN_ID_MAX_LENGTH;
+static const unsigned long BED_LINE_LEN = Bed::TOKENS_MAX_LENGTH;
+static const unsigned long NUM_BED_ITEMS_EST = 100000;
+static const unsigned long INIT_NUM_BED_ITEMS_EST = 10;
+static const unsigned long NUM_CHROM_EST = 32;
+
+#define GT(A,B) ((A) > (B) ? 1 : 0)
+
+/* Data Structures */
+typedef struct {
+ Bed::SignedCoordType startCoord;
+ Bed::SignedCoordType endCoord;
+ char *data;
+} BedCoordData;
+
+typedef struct {
+ char chromName[CHROM_NAME_LEN + 1];
+ Bed::LineCountType numCoords;
+ //BedCoordData coords[MAX_BED_ITEMS];
+ BedCoordData *coords;
+} ChromBedData;
+
+typedef struct {
+ Bed::SignedCoordType numChroms;
+ ChromBedData **chroms; // struct is padded on 64-bit OS X system - cf. http://stackoverflow.com/questions/15031061/alignas-for-struct-members-using-clang-c11 for possible portable solution for warning
+} BedData;
+
+/* Function Prototypes */
+int
+checkfiles(const char **bedFileNames, unsigned int numFiles);
+
+int
+checkSort(char const **bedFileNames, unsigned int numFiles);
+
+int
+mergeSort(FILE **tmpFiles, unsigned int numFiles);
+
+int
+processData(char const **bedFileNames, unsigned int numFiles, double maxMem, char *tmpPath);
+
+void
+printBed(FILE *out, BedData *beds);
+
+void
+freeBedData(BedData *beds);
+
+void
+sortBedData(BedData *beds);
+
+void
+numSortBedData(BedData *beds);
+
+void
+lexSortBedData(BedData *beds);
+
+Bed::SignedCoordType
+appendChromBedEntry(ChromBedData *chrom, Bed::SignedCoordType startPos, Bed::SignedCoordType endPos,
+ char *data, double* bytes, double maxMem);
+
+ChromBedData*
+initializeChromBedData(char * chromName, double* bytes);
+
+BedData*
+initializeBedData(double* bytes);
+
+int
+numCompareBedData(const void *pos1, const void *pos2);
+
+int
+lexCompareBedData(const void *pos1, const void *pos2);
+
+
+
+#endif /* BED_STRUCTURES_H */
diff --git a/applications/bed/sort-bed/test/sort-chr-test.bash b/applications/bed/sort-bed/test/sort-chr-test.bash
new file mode 100755
index 0000000..429bbf5
--- /dev/null
+++ b/applications/bed/sort-bed/test/sort-chr-test.bash
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+#
+# Oct 21 2013
+# Alex Reynolds
+#
+# This script creates BED files containing a simple genomic coordinate pair
+# for each of one to one hundred thousand chromosomes, and then it sorts that
+# file.
+#
+# Because the result of a numerical sort (which comes out of this script by
+# default) is different from the lexicographical sort out of sort-bed, this
+# helps test how sort-bed handles BED data with large numbers of chromosomes.
+#
+
+CHROM_START=1
+CHROM_END=10000
+TEST_FN=.test.bed
+
+rm -f ${TEST_FN}
+
+for ((idx = CHROM_START; idx <= CHROM_END; idx++))
+do
+ echo "testing sorting file with chrs ${CHROM_START}-${idx}..." > /dev/stderr
+ echo -e "chr${idx}\t1\t2" >> ${TEST_FN}
+ ../bin/sort-bed --max-mem 2G ${TEST_FN} > /dev/null
+ if [ $? -ne 0 ]
+ then
+ echo "failed on chr count [ ${idx} ]"
+ exit -1
+ fi
+done
+
+rm -f ${TEST_FN}
+
+echo "success!"
+exit 0
diff --git a/applications/bed/starch/src/Makefile b/applications/bed/starch/src/Makefile
new file mode 100644
index 0000000..7865386
--- /dev/null
+++ b/applications/bed/starch/src/Makefile
@@ -0,0 +1,104 @@
+HEAD = ../../../..
+INTERFACES = $(HEAD)/interfaces
+MAIN = ${INTERFACES}/general-headers
+MAINAPPDIR = ../..
+PARTY3 = $(HEAD)/third-party
+BINDIR = ../bin
+THISDIR = ${shell pwd}
+LIBSTARCH = libstarch.a
+LIBSTARCHDEBUG = libstarch_debug.a
+LIBSTARCHGPROF = libstarch_gprof.a
+LIBJANSSON = libjansson.a
+LIBBZIP2 = libbz2.a
+LIBZLIB = libz.a
+LOCALSTARCHLIBDIR = ../lib
+LOCALSTARCHLIB = ${LOCALSTARCHLIBDIR}/${LIBSTARCH}
+LOCALSTARCHLIBDEBUG = ${LOCALSTARCHLIBDIR}/${LIBSTARCHDEBUG}
+LOCALSTARCHLIBGPROF = ${LOCALSTARCHLIBDIR}/${LIBSTARCHGPROF}
+LOCALJANSSONDIR = ${THISDIR}/${PARTY3}/jansson
+LOCALJANSSONLIBDIR = ${LOCALJANSSONDIR}/lib
+LOCALJANSSONLIB = ${LOCALJANSSONLIBDIR}/${LIBJANSSON}
+LOCALJANSSONINCDIR = ${LOCALJANSSONDIR}/include
+LOCALBZIP2DIR = ${THISDIR}/${PARTY3}/bzip2
+LOCALBZIP2LIBDIR = ${LOCALBZIP2DIR}
+LOCALBZIP2LIB = ${LOCALBZIP2LIBDIR}/${LIBBZIP2}
+LOCALBZIP2INCDIR = ${LOCALBZIP2DIR}
+LOCALZLIBDIR = ${THISDIR}/${PARTY3}/zlib
+LOCALZLIBLIBDIR = ${LOCALZLIBDIR}
+LOCALZLIBLIB = ${LOCALZLIBLIBDIR}/${LIBZLIB}
+LOCALZLIBINCDIR = ${LOCALZLIBDIR}
+OBJDIR = ${INTERFACES}/src/data/starch
+LOCALOBJDIR = objects
+INCLUDES = -iquote${MAIN} -iquote${HEAD} -iquote${PARTY3} -I${LOCALJANSSONINCDIR} -I${LOCALBZIP2INCDIR} -I${LOCALZLIBINCDIR}
+LIBRARIES = ${LOCALJANSSONLIB} ${LOCALBZIP2LIB} ${LOCALZLIBLIB}
+ARCH_VERSION = v2.1
+BIN_VERSION = v2.4.16
+TEST = ../test
+TEST_LINUX_BINDIR = ${TEST}/binaries/linux/${ARCH_VERSION}/bin
+TEST_OSX_BINDIR = ${TEST}/binaries/osx/${ARCH_VERSION}/bin
+AR = ar
+SFLAGS = -static
+CXXFLAGS = -D__STDC_CONSTANT_MACROS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE=1 -DUSE_ZLIB -DUSE_BZLIB -O2 -Wformat -Wall -Wextra -Wswitch-enum -std=c++11 ${SFLAGS} -s
+CXXDFLAGS = -D__STDC_CONSTANT_MACROS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE=1 -DUSE_ZLIB -DUSE_BZLIB -O0 -g -Wformat -Wall -Wextra -Wswitch-enum -std=c++11 -DDEBUG_VERBOSE=1 ${SFLAGS}
+CXXGFLAGS = -D__STDC_CONSTANT_MACROS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE=1 -DUSE_ZLIB -DUSE_BZLIB -O -Wformat -Wall -Wextra -Wswitch-enum -std=c++11 -DDEBUG_VERBOSE=1 ${SFLAGS} -pg
+
+STARCH_NAMES = starchConstants unstarchHelpers starchHelpers starchMetadataHelpers starchFileHelpers starchSha1Digest starchBase64Coding
+STARCH_OBJECTS = $(addprefix $(LOCALOBJDIR)/, $(addsuffix .o, $(STARCH_NAMES)))
+
+.PHONY: starchcluster starch unstarch starchcat build build_debug build_gprof
+
+build: starch unstarch starchcat starchcluster
+build_debug: $(BINDIR)/debug.starch $(BINDIR)/debug.unstarch $(BINDIR)/debug.starchcat
+build_gprof: $(BINDIR)/gprof.starch $(BINDIR)/gprof.unstarch $(BINDIR)/gprof.starchcat
+
+# Cancel implicit compilation rules
+% : %.o
+% : %.c
+
+starch: $(BINDIR)/starch
+unstarch: $(BINDIR)/unstarch
+starchcat: $(BINDIR)/starchcat
+starchcluster: $(BINDIR)/starchcluster_gnuParallel $(BINDIR)/starchcluster_sge
+
+$(BINDIR)/% : %.c $(LOCALSTARCHLIB) $(LIBRARIES)
+ mkdir -p $(BINDIR)
+ ${CXX} ${CXXFLAGS} -c $*.c -o $(LOCALOBJDIR)/$*.o ${INCLUDES}
+ ${CXX} ${CXXFLAGS} $(LOCALOBJDIR)/$*.o -o $@ ${LOCALSTARCHLIB} ${LIBRARIES}
+
+$(BINDIR)/debug.% : %.c $(LOCALSTARCHLIB) $(LIBRARIES)
+ mkdir -p $(BINDIR)
+ ${CXX} ${CXXDFLAGS} -c $*.c -o $(LOCALOBJDIR)/$*.o ${INCLUDES}
+ ${CXX} ${CXXDFLAGS} $(LOCALOBJDIR)/$*.o -o $@ ${LOCALSTARCHLIB} ${LIBRARIES}
+
+$(BINDIR)/gprof.% : %.c $(LOCALSTARCHLIB) $(LIBRARIES)
+ mkdir -p $(BINDIR)
+ ${CXX} ${CXXGFLAGS} -c $*.c -o $(LOCALOBJDIR)/$*.o ${INCLUDES}
+ ${CXX} ${CXXGFLAGS} $(LOCALOBJDIR)/$*.o -o $@ ${LOCALSTARCHLIB} ${LIBRARIES}
+
+$(BINDIR)/% : %.tcsh
+ mkdir -p $(BINDIR)
+ cp $< $@
+
+starchLibrary: $(LOCALSTARCHLIB)
+
+$(LOCALSTARCHLIB) : $(STARCH_OBJECTS)
+ mkdir -p $(LOCALSTARCHLIBDIR)
+ ${AR} rcs $@ $^
+
+$(LOCALOBJDIR)/%.o : $(OBJDIR)/%.c $(LIBRARIES)
+ mkdir -p $(LOCALOBJDIR)
+ ${CXX} ${CXXFLAGS} -c $< -o $@ ${INCLUDES}
+
+test: starch unstarch starchcat
+ cp ${BINDIR}/starch ${TEST_LINUX_BINDIR}/starch
+ cp ${BINDIR}/unstarch ${TEST_LINUX_BINDIR}/unstarch
+ cp ${BINDIR}/starchcat ${TEST_LINUX_BINDIR}/starchcat
+ make -C ${TEST} all
+
+clean:
+ rm -f $(LOCALSTARCHLIB)
+ rm -f ${LOCALSTARCHLIBDEBUG}
+ rm -f ${LOCALSTARCHLIBGPROF}
+ rm -f ${BINDIR}/*starch*
+ rm -rf ${LOCALOBJDIR}
+ rm -rf ${BINDIR}
diff --git a/applications/bed/starch/src/Makefile.darwin b/applications/bed/starch/src/Makefile.darwin
new file mode 100644
index 0000000..664086d
--- /dev/null
+++ b/applications/bed/starch/src/Makefile.darwin
@@ -0,0 +1,125 @@
+MIN_OSX_VERSION = 10.7
+
+MAIN = ../../../..
+MAINAPPDIR = ../..
+INTERFACES = $(MAIN)/interfaces
+HEAD = ${INTERFACES}/general-headers
+THISDIR = ${shell pwd}
+PARTY3 = ${THISDIR}/$(MAIN)/third-party
+LIBSTARCH = libstarch.a
+LIBSTARCHDEBUG = libstarch_debug.a
+LIBJANSSON = libjansson.a
+LIBBZIP2 = libbz2.a
+LIBZLIB = libz.a
+LOCALSTARCHLIBDIR = ../lib_${ARCH}
+LOCALSTARCHLIB = ${LOCALSTARCHLIBDIR}/${LIBSTARCH}
+LOCALSTARCHLIBDEBUG = ${LOCALSTARCHLIBDIR}/${LIBSTARCHDEBUG}
+LOCALJANSSONDIR = ${PARTY3}/darwin_intel_${ARCH}/jansson
+LOCALJANSSONLIBDIR = ${LOCALJANSSONDIR}/lib
+LOCALJANSSONLIB = ${LOCALJANSSONLIBDIR}/${LIBJANSSON}
+LOCALJANSSONINCDIR = ${LOCALJANSSONDIR}/include
+LOCALBZIP2DIR = ${PARTY3}/darwin_intel_${ARCH}/bzip2
+LOCALBZIP2LIBDIR = ${LOCALBZIP2DIR}
+LOCALBZIP2LIB = ${LOCALBZIP2LIBDIR}/${LIBBZIP2}
+LOCALBZIP2INCDIR = ${LOCALBZIP2DIR}
+LOCALZLIBDIR = ${PARTY3}/darwin_intel_${ARCH}/zlib
+LOCALZLIBLIBDIR = ${LOCALZLIBDIR}
+LOCALZLIBLIB = ${LOCALZLIBLIBDIR}/${LIBZLIB}
+LOCALZLIBINCDIR = ${LOCALZLIBDIR}
+OBJDIR = ${INTERFACES}/src/data/starch
+LOCALOBJDIR = objects_${ARCH}
+INCLUDES = -iquote${MAIN} -iquote${HEAD} -iquote${PARTY3} -I${LOCALJANSSONINCDIR} -I${LOCALBZIP2INCDIR} -I${LOCALZLIBINCDIR}
+LIBRARIES = ${LOCALJANSSONLIB} ${LOCALBZIP2LIB} ${LOCALZLIBLIB}
+BINDIR = ../bin_${ARCH}
+WARNINGS = -Weverything -Wno-c++98-compat-pedantic -Wno-padded
+ARCH_VERSION = v2.1
+BIN_VERSION = v2.4.16
+TEST = ../test
+TEST_OSX_BINDIR = ${TEST}/binaries/osx/${ARCH_VERSION}/bin
+
+CFLAGS = -D__STDC_CONSTANT_MACROS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE=1 -DUSE_ZLIB -DUSE_BZLIB -O2 ${WARNINGS} -std=c99 -mmacosx-version-min=$(MIN_OSX_VERSION) -arch ${ARCH} -x c++ -v -stdlib=libc++ -std=c++11
+CXXFLAGS = -D__STDC_CONSTANT_MACROS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE=1 -DUSE_ZLIB -DUSE_BZLIB -O2 ${WARNINGS} -std=c++11 -stdlib=libc++ -mmacosx-version-min=$(MIN_OSX_VERSION) -arch ${ARCH}
+CDFLAGS = -D__STDC_CONSTANT_MACROS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE=1 -DUSE_ZLIB -DUSE_BZLIB -O0 -g ${WARNINGS} -std=c99 -DDEBUG_VERBOSE=1 -mmacosx-version-min=$(MIN_OSX_VERSION) -arch ${ARCH} -x c++ -v -stdlib=libc++ -std=c++11
+CXXDFLAGS = -D__STDC_CONSTANT_MACROS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE=1 -DUSE_ZLIB -DUSE_BZLIB -O0 -g ${WARNINGS} -std=c++11 -stdlib=libc++ -DDEBUG_VERBOSE=1 -mmacosx-version-min=$(MIN_OSX_VERSION) -arch ${ARCH}
+
+
+build: dependencies starchLibrary starch unstarch starchcat starchcluster
+ rm -f *~
+
+# dependencies-related recipes all have mkdirs prereqs
+# and pretty much everything else has dependencies-related prereqs at some level
+# -> let make figure out hierarchy and eliminate mkdir/rm race conditions
+dependencies: mkdirs
+ ${CC} ${CFLAGS} -c ${OBJDIR}/starchConstants.c -o ${LOCALOBJDIR}/starchConstants.o ${INCLUDES}
+ ${CC} ${CFLAGS} -c ${OBJDIR}/starchMetadataHelpers.c -o ${LOCALOBJDIR}/starchMetadataHelpers.o ${INCLUDES}
+ ${CC} ${CFLAGS} -c ${OBJDIR}/unstarchHelpers.c -o ${LOCALOBJDIR}/unstarchHelpers.o ${INCLUDES}
+ ${CC} ${CFLAGS} -c ${OBJDIR}/starchHelpers.c -o ${LOCALOBJDIR}/starchHelpers.o ${INCLUDES}
+ ${CC} ${CFLAGS} -c ${OBJDIR}/starchFileHelpers.c -o ${LOCALOBJDIR}/starchFileHelpers.o ${INCLUDES}
+ ${CC} ${CFLAGS} -c ${OBJDIR}/starchSha1Digest.c -o ${LOCALOBJDIR}/starchSha1Digest.o ${INCLUDES}
+ ${CC} ${CFLAGS} -c ${OBJDIR}/starchBase64Coding.c -o ${LOCALOBJDIR}/starchBase64Coding.o ${INCLUDES}
+
+build_debug: dependencies_debug starch_debug unstarch_debug starchcat_debug
+ rm -f *~
+
+dependencies_debug: mkdirs
+ ${CC} ${CDFLAGS} -c ${OBJDIR}/starchConstants.c -o ${LOCALOBJDIR}/starchConstants.o ${INCLUDES}
+ ${CC} ${CDFLAGS} -c ${OBJDIR}/unstarchHelpers.c -o ${LOCALOBJDIR}/unstarchHelpers.o ${INCLUDES}
+ ${CC} ${CDFLAGS} -c ${OBJDIR}/starchHelpers.c -o ${LOCALOBJDIR}/starchHelpers.o ${INCLUDES}
+ ${CC} ${CDFLAGS} -c ${OBJDIR}/starchMetadataHelpers.c -o ${LOCALOBJDIR}/starchMetadataHelpers.o ${INCLUDES}
+ ${CC} ${CDFLAGS} -c ${OBJDIR}/starchFileHelpers.c -o ${LOCALOBJDIR}/starchFileHelpers.o ${INCLUDES}
+ ${CC} ${CDFLAGS} -c ${OBJDIR}/starchSha1Digest.c -o ${LOCALOBJDIR}/starchSha1Digest.o ${INCLUDES}
+ ${CC} ${CDFLAGS} -c ${OBJDIR}/starchBase64Coding.c -o ${LOCALOBJDIR}/starchBase64Coding.o ${INCLUDES}
+
+starchLibrary: dependencies
+ ${AR} rcs ${LOCALSTARCHLIB} ${LOCALOBJDIR}/starchConstants.o ${LOCALOBJDIR}/unstarchHelpers.o ${LOCALOBJDIR}/starchHelpers.o ${LOCALOBJDIR}/starchMetadataHelpers.o ${LOCALOBJDIR}/starchFileHelpers.o ${LOCALOBJDIR}/starchSha1Digest.o ${LOCALOBJDIR}/starchBase64Coding.o
+
+starchLibrary_debug: dependencies_debug
+ ${AR} rcs ${LOCALSTARCHLIBDEBUG} ${LOCALOBJDIR}/starchConstants.o ${LOCALOBJDIR}/unstarchHelpers.o ${LOCALOBJDIR}/starchHelpers.o ${LOCALOBJDIR}/starchMetadataHelpers.o ${LOCALOBJDIR}/starchFileHelpers.o ${LOCALOBJDIR}/starchSha1Digest.o ${LOCALOBJDIR}/starchBase64Coding.o
+
+starch: starchLibrary
+ ${CC} ${CFLAGS} -c starch.c -o $(LOCALOBJDIR)/starch.o ${INCLUDES}
+ ${CXX} ${CXXFLAGS} -lc++ $(LOCALOBJDIR)/starch.o -o ${BINDIR}/starch ${LOCALSTARCHLIB} ${LIBRARIES}
+
+starch_debug: starchLibrary_debug
+ ${CC} ${CDFLAGS} -c starch.c -o $(LOCALOBJDIR)/debug.starch.o ${INCLUDES}
+ ${CXX} ${CXXDFLAGS} -lc++ $(LOCALOBJDIR)/debug.starch.o -o ${BINDIR}/debug.starch ${LOCALSTARCHLIBDEBUG} ${LIBRARIES}
+
+unstarch: starchLibrary
+ ${CC} ${CFLAGS} -c unstarch.c -o $(LOCALOBJDIR)/unstarch.o ${INCLUDES}
+ ${CXX} ${CXXFLAGS} -lc++ $(LOCALOBJDIR)/unstarch.o -o ${BINDIR}/unstarch ${LOCALSTARCHLIB} ${LIBRARIES}
+
+unstarch_debug: starchLibrary_debug
+ ${CC} ${CDFLAGS} -c unstarch.c -o $(LOCALOBJDIR)/debug.unstarch.o ${INCLUDES}
+ ${CXX} ${CXXDFLAGS} -lc++ $(LOCALOBJDIR)/debug.unstarch.o -o ${BINDIR}/debug.unstarch ${LOCALSTARCHLIBDEBUG} ${LIBRARIES}
+
+starchcluster: starchcat
+ cp starchcluster_sge.tcsh ${BINDIR}/starchcluster_sge
+ cp starchcluster_gnuParallel.tcsh ${BINDIR}/starchcluster_gnuParallel
+
+starchcat: starchLibrary
+ ${CC} ${CFLAGS} -c starchcat.c -o $(LOCALOBJDIR)/starchcat.o ${INCLUDES}
+ ${CXX} ${CXXFLAGS} -lc++ $(LOCALOBJDIR)/starchcat.o -o ${BINDIR}/starchcat ${LOCALSTARCHLIB} ${LIBRARIES}
+
+starchcat_debug: starchLibrary_debug
+ ${CC} ${CDFLAGS} -c starchcat.c -o $(LOCALOBJDIR)/starchcat.o ${INCLUDES}
+ ${CXX} ${CXXDFLAGS} -lc++ $(LOCALOBJDIR)/starchcat.o -o ${BINDIR}/debug.starchcat ${LOCALSTARCHLIBDEBUG} ${LIBRARIES}
+
+test: starch unstarch starchcat
+ cp ${BINDIR}/starch ${TEST_OSX_BINDIR}/starch
+ cp ${BINDIR}/unstarch ${TEST_OSX_BINDIR}/unstarch
+ cp ${BINDIR}/starchcat ${TEST_OSX_BINDIR}/starchcat
+ make -C ${TEST} all
+
+mkdirs:
+ mkdir -p ${LOCALOBJDIR}
+ mkdir -p ${LOCALSTARCHLIBDIR}
+ mkdir -p ${BINDIR}
+
+clean:
+ rm -f $(LOCALSTARCHLIB)
+ rm -f ${LOCALSTARCHLIBDEBUG}
+ rm -Rf ${LOCALOBJDIR}
+ rm -Rf ${LOCALSTARCHLIBDIR}
+ rm -rf ${BINDIR}/*starch*
+ rm -Rf ${BINDIR}
+ rm -Rf ${THISDIR}/../bin
diff --git a/applications/bed/starch/src/starch.c b/applications/bed/starch/src/starch.c
new file mode 100644
index 0000000..ea6fc3b
--- /dev/null
+++ b/applications/bed/starch/src/starch.c
@@ -0,0 +1,366 @@
+//=========
+// Author: Alex Reynolds & Shane Neph
+// Project: starch
+// File: starch.c
+//=========
+
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#include "starch.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "data/starch/starchHelpers.h"
+#include "data/starch/starchConstants.h"
+#include "data/starch/starchFileHelpers.h"
+#include "suite/BEDOPS.Version.hpp"
+
+#ifdef __cplusplus
+namespace {
+ using namespace starch;
+} // unnamed namespace
+#endif
+
+int
+main (int argc, char **argv)
+{
+#ifdef DEBUG
+ fprintf (stderr, "\n--- starch main() - enter ---\n");
+#endif
+ int parseValue = 0;
+ CompressionType type;
+ char *note = NULL;
+ char *tag = NULL;
+ char *bedFn = NULL;
+ FILE *bedFnPtr = NULL;
+ Metadata *metadata = NULL;
+ Boolean bedHeaderFlag = kStarchFalse;
+ unsigned char *starchHeader = NULL;
+
+ setlocale (LC_ALL, "POSIX");
+
+ parseValue = STARCH_parseCommandLineOptions (argc, argv);
+ switch (parseValue) {
+ case STARCH_HELP_ERROR: {
+ STARCH_printUsage (STARCH_HELP_ERROR);
+ return EXIT_SUCCESS;
+ }
+ case STARCH_VERSION_ERROR: {
+ STARCH_printRevision ();
+ return EXIT_SUCCESS;
+ }
+ case STARCH_FATAL_ERROR: {
+ STARCH_printUsage (STARCH_FATAL_ERROR);
+ return EXIT_FAILURE;
+ }
+ }
+ note = starch_client_global_args.note;
+ bedFn = starch_client_global_args.inputFile;
+ type = starch_client_global_args.compressionType;
+ tag = starch_client_global_args.uniqueTag;
+ bedHeaderFlag = starch_client_global_args.headerFlag;
+
+ if (STARCH_MAJOR_VERSION == 1)
+ {
+ if (strcmp (bedFn, "-") == 0) // this condition is preserved in case of test-builds of legacy Starch binaries
+ {
+ /* process stdin */
+ if ((bedHeaderFlag == kStarchTrue) &&
+#ifdef __cplusplus
+ (STARCH_transformInput(&metadata,
+ NULL,
+ static_cast<const CompressionType>( type ),
+ reinterpret_cast<const char *>( tag ),
+ reinterpret_cast<const char *>( note )) != 0))
+#else
+ (STARCH_transformInput(&metadata,
+ NULL,
+ (const CompressionType) type,
+ (const char *) tag,
+ (const char *) note) != 0))
+#endif
+ exit (EXIT_FAILURE);
+ else if ((bedHeaderFlag == kStarchFalse) &&
+#ifdef __cplusplus
+ (STARCH_transformHeaderlessInput(&metadata,
+ NULL,
+ static_cast<const CompressionType>( type ),
+ reinterpret_cast<const char *>( tag ),
+ static_cast<const Boolean>( kStarchFinalizeTransformTrue ),
+ reinterpret_cast<const char *>( note )) != 0))
+#else
+ (STARCH_transformHeaderlessInput(&metadata,
+ NULL,
+ (const CompressionType) type,
+ (const char *) tag,
+ (const Boolean) kStarchFinalizeTransformTrue,
+ (const char *) note) != 0))
+#endif
+ exit (EXIT_FAILURE);
+ }
+ else {
+ /* process file input */
+ bedFnPtr = STARCH_fopen (bedFn, "r");
+ if (!bedFnPtr) {
+ fprintf (stderr, "ERROR: Could not open bed file %s\n", bedFn);
+ exit (EXIT_FAILURE);
+ }
+ if ((bedHeaderFlag == kStarchTrue) &&
+#ifdef __cplusplus
+ (STARCH_transformInput(&metadata,
+ reinterpret_cast<const FILE *>( bedFnPtr ),
+ static_cast<const CompressionType>( type ),
+ reinterpret_cast<const char *>( tag ),
+ reinterpret_cast<const char *>( note )) != 0))
+#else
+ (STARCH_transformInput(&metadata,
+ (const FILE *) bedFnPtr,
+ (const CompressionType) type,
+ (const char *) tag,
+ (const char *) note) != 0))
+#endif
+ exit (EXIT_FAILURE);
+ else if ((bedHeaderFlag == kStarchFalse) &&
+#ifdef __cplusplus
+ (STARCH_transformHeaderlessInput(&metadata,
+ reinterpret_cast<const FILE *>( bedFnPtr ),
+ static_cast<const CompressionType>( type ),
+ reinterpret_cast<const char *>( tag ),
+ static_cast<const Boolean>( kStarchFinalizeTransformTrue ),
+ reinterpret_cast<const char *>( note )) != 0))
+#else
+ (STARCH_transformHeaderlessInput(&metadata,
+ (const FILE *) bedFnPtr,
+ (const CompressionType) type,
+ (const char *) tag,
+ (const Boolean) kStarchFinalizeTransformTrue,
+ (const char *) note) != 0))
+#endif
+ exit (EXIT_FAILURE);
+ }
+ }
+ else if (STARCH_MAJOR_VERSION == 2) {
+ if (strcmp (bedFn, "-") == 0)
+ bedFnPtr = stdin;
+ else {
+ bedFnPtr = STARCH_fopen (bedFn, "r");
+ if (!bedFnPtr) {
+ fprintf (stderr, "ERROR: Could not open input BED file pointer from (%s)\n", bedFn);
+ exit (EXIT_FAILURE);
+ }
+ }
+
+#ifdef __cplusplus
+ if (STARCH2_transformInput(&starchHeader,
+ &metadata,
+ reinterpret_cast<const FILE *>( bedFnPtr ),
+ static_cast<const CompressionType>( type ),
+ reinterpret_cast<const char *>( tag ),
+ reinterpret_cast<const char *>( note ),
+ static_cast<const Boolean>( bedHeaderFlag )) != STARCH_EXIT_SUCCESS)
+ {
+ exit (EXIT_FAILURE);
+ }
+#else
+ if (STARCH2_transformInput(&starchHeader,
+ &metadata,
+ (const FILE *) bedFnPtr,
+ (const CompressionType) type,
+ (const char *) tag,
+ (const char *) note,
+ (const Boolean) bedHeaderFlag) != STARCH_EXIT_SUCCESS)
+ {
+ exit (EXIT_FAILURE);
+ }
+#endif
+ }
+
+ else if (STARCH_MAJOR_VERSION > 2) {
+ fprintf (stderr, "ERROR: Starch does not yet support making archives in this major version release (built as: %d.%d.%d)\n", STARCH_MAJOR_VERSION, STARCH_MINOR_VERSION, STARCH_REVISION_VERSION); // this condition is preserved in case of test-builds of future-proofed Starch binaries
+ exit (EXIT_FAILURE);
+ }
+
+ /* cleanup */
+ if (bedFnPtr != NULL)
+ fclose (bedFnPtr), bedFnPtr = NULL;
+ if (metadata != NULL)
+ STARCH_freeMetadata (&metadata);
+ if (starchHeader)
+ free (starchHeader), starchHeader = NULL;
+ if (starch_client_global_args.uniqueTag)
+ free (starch_client_global_args.uniqueTag), starch_client_global_args.uniqueTag = NULL;
+
+#ifdef DEBUG
+ fprintf (stderr, "\n--- starch main() - exit ---\n");
+#endif
+
+ return EXIT_SUCCESS;
+}
+
+#ifdef __cplusplus
+namespace starch {
+#endif
+
+void
+STARCH_initializeGlobals ()
+{
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCH_initializeGlobals() ---\n");
+#endif
+ starch_client_global_args.note = NULL;
+ starch_client_global_args.compressionType = STARCH_DEFAULT_COMPRESSION_TYPE;
+ starch_client_global_args.headerFlag = kStarchFalse;
+ starch_client_global_args.inputFile = NULL;
+ starch_client_global_args.uniqueTag = NULL;
+ starch_client_global_args.numberInputFiles = 0;
+ starch_client_global_args.inputFiles = NULL;
+}
+
+int
+STARCH_parseCommandLineOptions (int argc, char **argv)
+{
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCH_parseCommandLineOptions() ---\n");
+#endif
+
+ int starch_client_long_index;
+ int starch_client_opt = getopt_long (argc, argv, starch_client_opt_string, starch_client_long_options, &starch_client_long_index);
+
+ if (argc > 6) {
+ fprintf (stderr, "ERROR: Wrong number of arguments.\n");
+ return STARCH_FATAL_ERROR;
+ }
+
+ opterr = 0; /* disable error reporting by GNU getopt -- we handle this */
+ STARCH_initializeGlobals ();
+
+ while (starch_client_opt != -1) {
+ switch (starch_client_opt) {
+ case 'v':
+ return STARCH_VERSION_ERROR;
+ case 'n':
+ starch_client_global_args.note = optarg;
+ break;
+ case 'b':
+ starch_client_global_args.compressionType = kBzip2;
+ break;
+ case 'g':
+ starch_client_global_args.compressionType = kGzip;
+ break;
+ case 'e':
+ starch_client_global_args.headerFlag = kStarchTrue;
+ break;
+ case 'h':
+ return STARCH_HELP_ERROR;
+ case '?':
+ return STARCH_FATAL_ERROR;
+ default:
+ break;
+ }
+ starch_client_opt = getopt_long (argc, argv, starch_client_opt_string, starch_client_long_options, &starch_client_long_index);
+ }
+
+ STARCH_buildProcessIDTag (&(starch_client_global_args.uniqueTag));
+
+ starch_client_global_args.inputFiles = argv + optind;
+#ifdef __cplusplus
+ starch_client_global_args.numberInputFiles = static_cast<size_t>( argc - optind );
+#else
+ starch_client_global_args.numberInputFiles = (size_t) (argc - optind);
+#endif
+
+ switch (starch_client_global_args.numberInputFiles) {
+ case 0: {
+ fprintf (stderr, "ERROR: Wrong number of arguments.\n");
+ return STARCH_FATAL_ERROR;
+ }
+ case 1: {
+ starch_client_global_args.inputFile = *(starch_client_global_args.inputFiles);
+ break;
+ }
+ case 2: {
+ starch_client_global_args.uniqueTag = *(starch_client_global_args.inputFiles);
+ starch_client_global_args.inputFile = *(starch_client_global_args.inputFiles + 1);
+ break;
+ }
+ default:
+ break;
+ }
+
+#ifdef __cplusplus
+ return static_cast<int>( kStarchTrue );
+#else
+ return (int) kStarchTrue;
+#endif
+}
+
+void
+STARCH_printUsage (int errorType)
+{
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCH_printUsage() ---\n");
+#endif
+ char *avStr = NULL;
+#ifdef __cplusplus
+ avStr = static_cast<char *>( malloc (STARCH_ARCHIVE_VERSION_STRING_LENGTH) );
+#else
+ avStr = malloc (STARCH_ARCHIVE_VERSION_STRING_LENGTH);
+#endif
+ if (avStr != NULL) {
+ int result = sprintf (avStr, "%d.%d.%d", STARCH_MAJOR_VERSION, STARCH_MINOR_VERSION, STARCH_REVISION_VERSION);
+ if (result != -1) {
+ switch (errorType) {
+ case STARCH_FATAL_ERROR:
+ case STARCH_HELP_ERROR:
+ default: {
+ fprintf(stderr, "%s\n citation: %s\n binary version: %s (creates archive version: %s)\n authors: %s\n%s\n\n", name, BEDOPS::citation(), BEDOPS::revision(), avStr, authors, usage);
+ break;
+ }
+ }
+ }
+ free (avStr);
+ }
+}
+
+void
+STARCH_printRevision ()
+{
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCH_printRevision() ---\n");
+#endif
+ char *avStr = NULL;
+#ifdef __cplusplus
+ avStr = static_cast<char *>( malloc (STARCH_ARCHIVE_VERSION_STRING_LENGTH) );
+#else
+ avStr = malloc (STARCH_ARCHIVE_VERSION_STRING_LENGTH);
+#endif
+ if (avStr != NULL) {
+ int result = sprintf (avStr, "%d.%d.%d", STARCH_MAJOR_VERSION, STARCH_MINOR_VERSION, STARCH_REVISION_VERSION);
+ if (result != -1)
+ fprintf (stderr, "%s\n binary version: %s (creates archive version: %s)\n", name, BEDOPS::revision(), avStr);
+ free (avStr);
+ }
+}
+
+#ifdef __cplusplus
+} // unnamed namespace
+#endif
diff --git a/applications/bed/starch/src/starch.h b/applications/bed/starch/src/starch.h
new file mode 100644
index 0000000..3321f19
--- /dev/null
+++ b/applications/bed/starch/src/starch.h
@@ -0,0 +1,106 @@
+//=========
+// Author: Alex Reynolds & Shane Neph
+// Project: starch
+// File: starch.h
+//=========
+
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef STARCH_H
+#define STARCH_H
+
+#include <getopt.h>
+
+#include "data/starch/starchMetadataHelpers.h"
+
+#ifdef __cplusplus
+namespace {
+ using namespace starch;
+} // unnamed namespace
+#endif
+
+static const char *name = "starch";
+static const char *authors = "Alex Reynolds and Shane Neph";
+static const char *usage = "\n" \
+ "USAGE: starch [--note=\"foo bar...\"] [--bzip2 | --gzip] [--header] [<unique-tag>] <bed-file>\n" \
+ " \n" \
+ " * BED input must be sorted lexicographically (e.g., using BEDOPS sort-bed).\n" \
+ " * Please use '-' to indicate reading BED data from standard input.\n" \
+ " * Output must be directed to a regular file.\n" \
+ " * The bzip2 compression type makes smaller archives, while gzip extracts faster.\n" \
+ " \n" \
+ " Process Flags:\n\n" \
+ " --note=\"foo bar...\" Append note to output archive metadata (optional)\n" \
+ " --bzip2 | --gzip Specify backend compression type (optional, default is bzip2)\n" \
+ " --header Support BED input with custom UCSC track, SAM or VCF headers, or generic comments (optional)\n" \
+ " <unique-tag> Specify unique identifier for transformed data (optional)\n" \
+ " --help Show this usage message\n" \
+ " --version Show binary version";
+
+static struct starch_client_global_args_t {
+ char *note;
+ CompressionType compressionType;
+ Boolean headerFlag;
+ char *inputFile;
+ char *uniqueTag;
+ char *tag;
+ char **inputFiles;
+ size_t numberInputFiles;
+} starch_client_global_args;
+
+static struct option starch_client_long_options[] = {
+ {"note", required_argument, NULL, 'n'},
+ {"bzip2", no_argument, NULL, 'b'},
+ {"gzip", no_argument, NULL, 'g'},
+ {"header", no_argument, NULL, 'e'},
+ {"version", no_argument, NULL, 'v'},
+ {"help", no_argument, NULL, 'h'},
+ {NULL, no_argument, NULL, 0}
+};
+
+static const char *starch_client_opt_string = "n:bgevh?";
+
+/*
+ On Darwin, file I/O is 64-bit by default (OS X 10.5 at least) so we use standard
+ types and calls
+*/
+
+#ifdef __APPLE__
+#define off64_t off_t
+#endif
+
+#ifdef __cplusplus
+namespace starch {
+#endif
+
+void STARCH_initializeGlobals();
+
+int STARCH_parseCommandLineOptions(int argc,
+ char **argv);
+
+void STARCH_printUsage(int t);
+
+void STARCH_printRevision();
+
+#ifdef __cplusplus
+} // namespace starch
+#endif
+
+#endif
diff --git a/applications/bed/starch/src/starchcat.c b/applications/bed/starch/src/starchcat.c
new file mode 100644
index 0000000..e54e749
--- /dev/null
+++ b/applications/bed/starch/src/starchcat.c
@@ -0,0 +1,6188 @@
+//=========
+// Author: Alex Reynolds & Shane Neph
+// Project: starch
+// File: starchcat.c
+//=========
+
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifdef __cplusplus
+#include <cstdint>
+#include <ctime>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <clocale>
+#include <cassert>
+#include <climits>
+#include <limits>
+#else
+#include <stdint.h>
+#include <time.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <locale.h>
+#include <assert.h>
+#include <limits.h>
+#endif
+
+#include <errno.h>
+#include <sys/stat.h>
+
+#include "starchcat.h"
+
+#include "data/starch/starchBase64Coding.h"
+#include "data/starch/starchSha1Digest.h"
+#include "data/starch/starchFileHelpers.h"
+#include "data/starch/starchHelpers.h"
+#include "data/starch/starchConstants.h"
+#include "suite/BEDOPS.Version.hpp"
+
+#ifdef __cplusplus
+namespace {
+ using namespace Bed;
+ using namespace starch;
+} // unnamed namespace
+#endif
+
+int
+main (int argc, char **argv)
+{
+#ifdef DEBUG
+ fprintf (stderr, "\n--- starchcat main() - enter ---\n");
+#endif
+ char *note = NULL;
+ ChromosomeSummaries *summaries = NULL;
+ ChromosomeSummary *summary = NULL;
+ MetadataRecord *mdRecords = NULL;
+ CompressionType outputType = STARCH_DEFAULT_COMPRESSION_TYPE;
+ int parseResult = 0;
+ unsigned int firstArgc = UINT_MAX;
+ unsigned int numRecords = 0U;
+ char **chromosomes = NULL;
+ unsigned int numChromosomes = 0U;
+ json_t **metadataJSONs = NULL;
+ size_t cumulativeRecSize = 0U;
+ unsigned char *header = NULL;
+
+ setlocale(LC_ALL, "POSIX");
+
+#ifdef DEBUG
+ fprintf (stderr, "\tparsing command-line options\n");
+#endif
+
+ parseResult = STARCHCAT_parseCommandLineOptions(argc, argv);
+ note = starchcat_client_global_args.note;
+ outputType = starchcat_client_global_args.compressionType;
+#ifdef __cplusplus
+ firstArgc = static_cast<unsigned int>( argc ) - static_cast<unsigned int>( starchcat_client_global_args.numberInputFiles );
+#else
+ firstArgc = (unsigned int) argc - (unsigned int) starchcat_client_global_args.numberInputFiles;
+#endif
+
+ switch (parseResult) {
+ case STARCHCAT_EXIT_SUCCESS: {
+
+#ifdef __cplusplus
+ if (firstArgc < static_cast<unsigned int>( argc ))
+ numRecords = static_cast<unsigned int>( argc ) - firstArgc;
+#else
+ if (firstArgc < (unsigned int) argc)
+ numRecords = (unsigned int) argc - firstArgc;
+#endif
+ else {
+ fprintf(stderr, "ERROR: No files specified\n");
+ STARCHCAT_printUsage(STARCHCAT_FATAL_ERROR);
+ return EXIT_FAILURE;
+ }
+#ifdef DEBUG
+ fprintf(stderr, "\t--- PARSING METADATA ---\n\n");
+#endif
+#ifdef __cplusplus
+ assert( STARCHCAT_allocMetadataRecords ( &mdRecords, static_cast<const unsigned int>( numRecords ) ) );
+ assert( STARCHCAT_allocMetadataJSONObjects ( &metadataJSONs, static_cast<const unsigned int>( numRecords ) ) );
+ assert( STARCHCAT_buildMetadataRecords ( &metadataJSONs, &mdRecords, static_cast<const unsigned int>( firstArgc ), static_cast<const int>( argc ), const_cast<const char **>( argv ) ) );
+ assert( STARCHCAT_checkMetadataJSONVersions ( &metadataJSONs, static_cast<const unsigned int>( numRecords ) ) );
+ assert( STARCHCAT_buildUniqueChromosomeList ( &chromosomes, &numChromosomes, reinterpret_cast<const MetadataRecord *>( mdRecords ), static_cast<const unsigned int>( numRecords ) ) );
+ assert( STARCHCAT_allocChromosomeSummary ( &summary, static_cast<const unsigned int>( numChromosomes ) ) );
+ assert( STARCHCAT_buildChromosomeSummary ( &summary, reinterpret_cast<const MetadataRecord *>( mdRecords ), static_cast<const unsigned int>( numRecords ), const_cast<const char **>( chromosomes ), static_cast<const unsigned int>( numChromosomes ) ) );
+ assert( STARCHCAT_allocChromosomeSummaries ( &summaries, static_cast<const unsigned int>( numChromosomes ) ) );
+ assert( STARCHCAT_buildChromosomeSummaries ( &summaries, reinterpret_cast<const ChromosomeSummary *>( summary ), static_cast<const unsigned int>( numChromosomes ) ) );
+ assert( STARCHCAT_printChromosomeSummaries ( reinterpret_cast<const ChromosomeSummaries *>( summaries ) ) );
+#else
+ assert( STARCHCAT_allocMetadataRecords ( &mdRecords, (const unsigned int) numRecords ) );
+ assert( STARCHCAT_allocMetadataJSONObjects ( &metadataJSONs, (const unsigned int) numRecords ) );
+ assert( STARCHCAT_buildMetadataRecords ( &metadataJSONs, &mdRecords, (const unsigned int) firstArgc, (const int) argc, (const char **) argv ) );
+ assert( STARCHCAT_checkMetadataJSONVersions ( &metadataJSONs, (const unsigned int) numRecords ) );
+ assert( STARCHCAT_buildUniqueChromosomeList ( &chromosomes, &numChromosomes, (const MetadataRecord *) mdRecords, (const unsigned int) numRecords ) );
+ assert( STARCHCAT_allocChromosomeSummary ( &summary, (const unsigned int) numChromosomes ) );
+ assert( STARCHCAT_buildChromosomeSummary ( &summary, (const MetadataRecord *) mdRecords, (const unsigned int) numRecords, (const char **) chromosomes, (const unsigned int) numChromosomes ) );
+ assert( STARCHCAT_allocChromosomeSummaries ( &summaries, (const unsigned int) numChromosomes ) );
+ assert( STARCHCAT_buildChromosomeSummaries ( &summaries, (const ChromosomeSummary *) summary, (const unsigned int) numChromosomes ) );
+ assert( STARCHCAT_printChromosomeSummaries ( (const ChromosomeSummaries *) summaries ) );
+#endif
+#ifdef DEBUG
+ fprintf(stderr, "\t--- MERGE ---\n\n");
+#endif
+ if (STARCH_MAJOR_VERSION == 1) {
+#ifdef __cplusplus
+ assert( STARCHCAT_mergeChromosomeStreams ( reinterpret_cast<const ChromosomeSummaries *>( summaries ),
+ static_cast<const CompressionType>( outputType ),
+ reinterpret_cast<const char *>( note ) ) );
+#else
+ assert( STARCHCAT_mergeChromosomeStreams ( (const ChromosomeSummaries *) summaries,
+ (const CompressionType) outputType,
+ (const char *) note ) );
+#endif
+ }
+ else if (STARCH_MAJOR_VERSION == 2) {
+ assert( STARCH2_initializeStarchHeader(&header) );
+ assert( STARCH2_writeStarchHeaderToOutputFp(header, stdout) );
+ cumulativeRecSize += STARCH2_MD_HEADER_BYTE_LENGTH;
+#ifdef __cplusplus
+ assert( STARCHCAT2_mergeChromosomeStreams ( reinterpret_cast<const ChromosomeSummaries *>( summaries ),
+ static_cast<const CompressionType>( outputType ),
+ reinterpret_cast<const char *>( note ),
+ &cumulativeRecSize ) );
+#else
+ assert( STARCHCAT2_mergeChromosomeStreams ( (const ChromosomeSummaries *) summaries,
+ (const CompressionType) outputType,
+ (const char *) note,
+ &cumulativeRecSize ) );
+#endif
+ }
+ break;
+ }
+ case STARCHCAT_HELP_ERROR: {
+ STARCHCAT_printUsage(parseResult);
+ return EXIT_SUCCESS;
+ }
+ case STARCHCAT_VERSION_ERROR: {
+ STARCHCAT_printRevision();
+ return EXIT_SUCCESS;
+ }
+ case STARCHCAT_FATAL_ERROR: {
+ STARCHCAT_printUsage(parseResult);
+ return EXIT_FAILURE;
+ }
+ default: {
+ fprintf(stderr, "ERROR: Unknown parsing error.\n");
+ return EXIT_FAILURE;
+ }
+ }
+
+#ifdef DEBUG
+ fprintf(stderr, "\t--- CLEANUP ---\n\n");
+#endif
+
+ if (summaries)
+ assert( STARCHCAT_freeChromosomeSummaries( &summaries ) );
+
+ if (mdRecords)
+#ifdef __cplusplus
+ assert( STARCHCAT_freeMetadataRecords( &mdRecords, static_cast<const unsigned int>( numRecords ) ) );
+#else
+ assert( STARCHCAT_freeMetadataRecords( &mdRecords, (const unsigned int) numRecords ) );
+#endif
+
+ if (chromosomes)
+ assert( STARCHCAT_freeChromosomeNames( &chromosomes, numChromosomes ) );
+
+ if (metadataJSONs)
+#ifdef __cplusplus
+ assert (STARCHCAT_freeMetadataJSONObjects( &metadataJSONs, static_cast<const unsigned int>( numRecords ) ) );
+#else
+ assert (STARCHCAT_freeMetadataJSONObjects( &metadataJSONs, (const unsigned int) numRecords ) );
+#endif
+
+#ifdef DEBUG
+ fprintf (stderr, "\n--- starchcat main() - exit ---\n");
+#endif
+
+ return EXIT_SUCCESS;
+}
+
+#ifdef __cplusplus
+namespace starch {
+#endif
+
+void
+STARCHCAT_initializeGlobals()
+{
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCHCAT_initializeGlobals() ---\n");
+#endif
+
+ starchcat_client_global_args.note = NULL;
+ starchcat_client_global_args.compressionType = STARCH_DEFAULT_COMPRESSION_TYPE;
+ starchcat_client_global_args.numberInputFiles = 0;
+ starchcat_client_global_args.inputFiles = NULL;
+}
+
+int
+STARCHCAT_parseCommandLineOptions(int argc, char **argv)
+{
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCHCAT_parseCommandLineOptions() ---\n");
+#endif
+ int starchcat_client_long_index;
+ int starchcat_client_opt = getopt_long(argc, argv, starchcat_client_opt_string, starchcat_client_long_options, &starchcat_client_long_index);
+
+ opterr = 0; /* disable error reporting by GNU getopt -- we handle this */
+ STARCHCAT_initializeGlobals();
+
+ while (starchcat_client_opt != -1) {
+ switch (starchcat_client_opt) {
+ case 'v':
+ return STARCHCAT_VERSION_ERROR;
+ case 'n':
+ starchcat_client_global_args.note = optarg;
+ break;
+ case 'b':
+ starchcat_client_global_args.compressionType = kBzip2;
+ break;
+ case 'g':
+ starchcat_client_global_args.compressionType = kGzip;
+ break;
+ case 'h':
+ return STARCHCAT_HELP_ERROR;
+ case '?':
+ return STARCHCAT_FATAL_ERROR;
+ default:
+ break;
+ }
+ starchcat_client_opt = getopt_long(argc, argv, starchcat_client_opt_string, starchcat_client_long_options, &starchcat_client_long_index);
+ }
+
+ starchcat_client_global_args.inputFiles = argv + optind;
+
+#ifdef __cplusplus
+ starchcat_client_global_args.numberInputFiles = static_cast<size_t>( argc - optind );
+#else
+ starchcat_client_global_args.numberInputFiles = (size_t) (argc - optind);
+#endif
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT2_copyInputRecordToOutput (Metadata **outMd, const char *outTag, const CompressionType outType, const char *inChr, const MetadataRecord *inRec, size_t *cumulativeOutputSize)
+{
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCHCAT2_copyInputRecordToOutput() ---\n");
+#endif
+ /*
+ This function copies the bytes of a single record (chromosome)
+ of data to standard output. The output metadata specifics are copied
+ over without alterations to the stream.
+ */
+ char *outFn = NULL;
+ FILE *outFnPtr = stdout;
+ uint64_t startOffset = 0;
+ uint64_t endOffset = 0;
+ uint64_t outFileSize = 0;
+ uint64_t outFileSizeCounter = 0;
+ LineCountType outFileLineCount = 0;
+ BaseCountType outFileNonUniqueBases = 0;
+ BaseCountType outFileUniqueBases = 0;
+ Boolean outDuplicateElementExists = STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE;
+ Boolean outNestedElementExists = STARCH_DEFAULT_NESTED_ELEMENT_FLAG_VALUE;
+ Metadata *iter, *inMd = inRec->metadata;
+ const ArchiveVersion *av = inRec->av;
+ char buffer[STARCHCAT_COPY_BUFFER_MAXSIZE];
+ size_t nBytesRead = 0;
+
+ if (!inMd) {
+ fprintf(stderr, "ERROR: Could not locate input metadata.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+ switch (outType) {
+ case kBzip2: {
+#ifdef __cplusplus
+ outFn = static_cast<char *>( malloc(strlen(inChr) + strlen(outTag) + 6) ); /* X.Y.bz2\0 */
+#else
+ outFn = malloc(strlen(inChr) + strlen(outTag) + 6); /* X.Y.bz2\0 */
+#endif
+ if (!outFn) {
+ fprintf(stderr, "ERROR: Could not allocate space for output filename in input copy routine.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ sprintf(outFn, "%s.%s.bz2", inChr, outTag);
+ break;
+ }
+ case kGzip: {
+#ifdef __cplusplus
+ outFn = static_cast<char *>( malloc(strlen(inChr) + strlen(outTag) + 5) ); /* X.Y.gz\0 */
+#else
+ outFn = malloc(strlen(inChr) + strlen(outTag) + 5); /* X.Y.gz\0 */
+#endif
+ if (!outFn) {
+ fprintf(stderr, "ERROR: Could not allocate space for output filename in input copy routine.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ sprintf(outFn, "%s.%s.gz", inChr, outTag);
+ break;
+ }
+ case kUndefined: {
+ fprintf(stderr, "ERROR: Undefined compression type.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ }
+
+#ifdef DEBUG
+ fprintf(stderr, "\tinRec->chromosome -> %s \t av->major -> %d \t av->minor -> %d\n", inRec->metadata->chromosome, inRec->av->major, inRec->av->minor);
+#endif
+
+ /* determine the offsets of the stream-of-interest */
+ if (av->major == 2)
+ startOffset += STARCH2_MD_HEADER_BYTE_LENGTH;
+ else
+ startOffset += inRec->mdOffset;
+
+#ifdef DEBUG
+ fprintf(stderr, "\tdetermined startOffset -> %" PRId64 "\n", startOffset);
+#endif
+
+ for (iter = inMd; iter != NULL; iter = iter->next) {
+ if (strcmp(iter->chromosome, inChr) == 0) {
+ if (((av->major == 1) && (av->minor >= 4)) || (av->major == 2)) {
+ outFileLineCount = iter->lineCount;
+ outFileNonUniqueBases = iter->totalNonUniqueBases;
+ outFileUniqueBases = iter->totalUniqueBases;
+ outDuplicateElementExists = iter->duplicateElementExists;
+ outNestedElementExists = iter->nestedElementExists;
+ }
+ else if ((av->major == 1) && (av->minor >= 3))
+ outFileLineCount = iter->lineCount;
+ else {
+ /*
+ Something went wrong here. We needed to
+ extract the stream, get the line count
+ and put this into the metadata. Note that
+ we should never see this error, if the version
+ tests' logic is written correctly.
+ */
+ fprintf(stderr, "ERROR: Using older archive with newer starchcat requires line count migration.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ endOffset = startOffset + iter->size;
+ break;
+ }
+ else {
+ startOffset += iter->size;
+ }
+ }
+#ifdef __cplusplus
+ outFileSize = static_cast<uint64_t>( endOffset - startOffset );
+#else
+ outFileSize = (uint64_t) (endOffset - startOffset);
+#endif
+
+ *cumulativeOutputSize += outFileSize;
+
+#ifdef __cplusplus
+ fseeko(inRec->fp, static_cast<off_t>( startOffset ), SEEK_SET);
+#else
+ fseeko(inRec->fp, (off_t) startOffset, SEEK_SET);
+#endif
+
+#ifdef DEBUG
+#ifdef __cplusplus
+ fprintf(stderr, "\tstartOffset -> %" PRId64" \t outFileSize -> %" PRIu64 " \t *cumulativeOutputSize -> %" PRIu64 "\n", static_cast<uint64_t>( startOffset ), static_cast<uint64_t>( outFileSize ), static_cast<uint64_t>( *cumulativeOutputSize ));
+#else
+ fprintf(stderr, "\tstartOffset -> %" PRId64" \t outFileSize -> %" PRIu64 " \t *cumulativeOutputSize -> %" PRIu64 "\n", (uint64_t) startOffset, (uint64_t) outFileSize, (uint64_t) *cumulativeOutputSize);
+#endif
+#endif
+
+ /*
+ Copy STARCHCAT_COPY_BUFFER_MAXSIZE-chunked bytes from input
+ stream to output file -- or less, if the output file size is
+ smaller than STARCHCAT_COPY_BUFFER_MAXSIZE.
+ */
+
+ outFileSizeCounter = outFileSize;
+ do {
+ if (outFileSizeCounter > STARCHCAT_COPY_BUFFER_MAXSIZE) {
+#ifdef __cplusplus
+ nBytesRead = fread(buffer, sizeof(char), static_cast<size_t>( STARCHCAT_COPY_BUFFER_MAXSIZE ), inRec->fp);
+#else
+ nBytesRead = fread(buffer, sizeof(char), (size_t) STARCHCAT_COPY_BUFFER_MAXSIZE, inRec->fp);
+#endif
+ if (nBytesRead != STARCHCAT_COPY_BUFFER_MAXSIZE * sizeof(char)) {
+ fprintf(stderr, "ERROR: Was not able to copy sufficient bytes into buffer (STARCHCAT_COPY_BUFFER_MAXSIZE).\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+#ifdef __cplusplus
+ fwrite(buffer, sizeof(char), static_cast<size_t>( STARCHCAT_COPY_BUFFER_MAXSIZE ), outFnPtr);
+#else
+ fwrite(buffer, sizeof(char), (size_t) STARCHCAT_COPY_BUFFER_MAXSIZE, outFnPtr);
+#endif
+ outFileSizeCounter -= STARCHCAT_COPY_BUFFER_MAXSIZE;
+ }
+ else {
+#ifdef __cplusplus
+ nBytesRead = fread(buffer, sizeof(char), static_cast<size_t>( outFileSizeCounter ), inRec->fp);
+#else
+ nBytesRead = fread(buffer, sizeof(char), (size_t) outFileSizeCounter, inRec->fp);
+#endif
+ if (nBytesRead != outFileSizeCounter * sizeof(char)) {
+ fprintf(stderr, "ERROR: Was not able to copy sufficient bytes into buffer (outFileSizeCounter).\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+#ifdef __cplusplus
+ fwrite(buffer, sizeof(char), static_cast<size_t>( outFileSizeCounter ), outFnPtr);
+#else
+ fwrite(buffer, sizeof(char), (size_t) outFileSizeCounter, outFnPtr);
+#endif
+ outFileSizeCounter = 0ULL;
+ }
+ } while (outFileSizeCounter > 0);
+
+ /* update output metadata */
+ if (! *outMd) {
+#ifdef DEBUG
+ fprintf(stderr, "\t\tmaking new output metadata structure... (%" PRIu64 ")\n", outFileSize);
+#endif
+#ifdef __cplusplus
+ *outMd = STARCH_createMetadata( const_cast<char *>( inChr ),
+#else
+ *outMd = STARCH_createMetadata( (char *) inChr,
+#endif
+ outFn,
+ outFileSize,
+ outFileLineCount,
+ outFileNonUniqueBases,
+ outFileUniqueBases,
+ outDuplicateElementExists,
+ outNestedElementExists );
+ }
+ else {
+#ifdef DEBUG
+ fprintf(stderr, "\t\tappending to existing output metadata structure...\n");
+#endif
+ *outMd = STARCH_addMetadata( *outMd,
+#ifdef __cplusplus
+ const_cast<char *>( inChr ),
+#else
+ (char *) inChr,
+#endif
+ outFn,
+ outFileSize,
+ outFileLineCount,
+ outFileNonUniqueBases,
+ outFileUniqueBases,
+ outDuplicateElementExists,
+ outNestedElementExists );
+ }
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT_copyInputRecordToOutput (Metadata **outMd, const char *outTag, const CompressionType outType, const char *inChr, const MetadataRecord *inRec)
+{
+ /*
+ This function copies the bytes of a single record (chromosome)
+ of data to a temporary file. The temporary file remains compressed
+ with the same compression type and is added to the output metadata
+ without alterations to the stream.
+ */
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCHCAT_copyInputRecordToOutput() ---\n");
+#endif
+ uint64_t startOffset = inRec->mdOffset;
+ uint64_t endOffset = 0;
+ uint64_t outFileSize = 0;
+ uint64_t outFileSizeCounter = 0;
+ LineCountType outFileLineCount = 0;
+ BaseCountType outFileNonUniqueBases = 0;
+ BaseCountType outFileUniqueBases = 0;
+ Boolean outDuplicateElementExists = STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE;
+ Boolean outNestedElementExists = STARCH_DEFAULT_NESTED_ELEMENT_FLAG_VALUE;
+ Metadata *iter, *inMd = inRec->metadata;
+ const ArchiveVersion *av = inRec->av;
+ char buffer[STARCHCAT_COPY_BUFFER_MAXSIZE];
+ FILE *outFnPtr = NULL;
+ char *outFn = NULL;
+ size_t nBytesRead = 0;
+
+ if (!inMd) {
+ fprintf(stderr, "ERROR: Could not locate input metadata.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+ /* build temporary output filename */
+ switch (outType) {
+ case kBzip2: {
+#ifdef __cplusplus
+ outFn = static_cast<char *>( malloc(strlen(inChr) + strlen(outTag) + 6) ); /* X.Y.bz2\0 */
+#else
+ outFn = malloc(strlen(inChr) + strlen(outTag) + 6); /* X.Y.bz2\0 */
+#endif
+ if (!outFn) {
+ fprintf(stderr, "ERROR: Could not allocate space for output filename in input copy routine.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ sprintf(outFn, "%s.%s.bz2", inChr, outTag);
+ break;
+ }
+ case kGzip: {
+#ifdef __cplusplus
+ outFn = static_cast<char *>( malloc(strlen(inChr) + strlen(outTag) + 5) ); /* X.Y.gz\0 */
+#else
+ outFn = malloc(strlen(inChr) + strlen(outTag) + 5); /* X.Y.gz\0 */
+#endif
+ if (!outFn) {
+ fprintf(stderr, "ERROR: Could not allocate space for output filename in input copy routine.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ sprintf(outFn, "%s.%s.gz", inChr, outTag);
+ break;
+ }
+ case kUndefined: {
+ fprintf(stderr, "ERROR: Undefined compression type.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ }
+ outFnPtr = STARCH_fopen(outFn, "wb");
+ if (!outFnPtr) {
+ fprintf(stderr, "ERROR: Could not open an output file handle to %s\n", outFn);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+ /* determine the offsets of the stream-of-interest */
+ for (iter = inMd; iter != NULL; iter = iter->next) {
+ if (strcmp(iter->chromosome, inChr) != 0)
+ startOffset += iter->size;
+ else {
+ if ((av->major >= 1) && (av->minor >= 4)) {
+ outFileLineCount = iter->lineCount;
+ outFileNonUniqueBases = iter->totalNonUniqueBases;
+ outFileUniqueBases = iter->totalUniqueBases;
+ outDuplicateElementExists = iter->duplicateElementExists;
+ outNestedElementExists = iter->nestedElementExists;
+ }
+ else if ((av->major >= 1) && (av->minor >= 3))
+ outFileLineCount = iter->lineCount;
+ else {
+ /*
+ something went wrong here. we needed to
+ extract the stream, get the line count
+ and put this into the metadata.
+ */
+ fprintf(stderr, "ERROR: Using older archive with newer starchcat requires line count migration.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+#ifdef __cplusplus
+ endOffset = static_cast<uint64_t>( startOffset + iter->size );
+#else
+ endOffset = (uint64_t) (startOffset + iter->size);
+#endif
+ break;
+ }
+ }
+#ifdef __cplusplus
+ outFileSize = static_cast<uint64_t>( endOffset - startOffset );
+#else
+ outFileSize = (uint64_t) (endOffset - startOffset);
+#endif
+
+#ifdef DEBUG
+ fprintf(stderr, "\t\tfile offsets: %" PRId64 " - %" PRId64 "\n", startOffset, endOffset);
+#endif
+
+ /*
+ copy STARCHCAT_COPY_BUFFER_MAXSIZE-chunked bytes from input
+ stream to output file, or less, if the output file size is
+ smaller than STARCHCAT_COPY_BUFFER_MAXSIZE
+ */
+
+ outFileSizeCounter = outFileSize;
+#ifdef __cplusplus
+ fseeko(inRec->fp, static_cast<off_t>( startOffset ), SEEK_SET);
+#else
+ fseeko(inRec->fp, (off_t) startOffset, SEEK_SET);
+#endif
+ do {
+ if (outFileSizeCounter > STARCHCAT_COPY_BUFFER_MAXSIZE) {
+#ifdef __cplusplus
+ nBytesRead = fread(buffer, sizeof(char), static_cast<size_t>( STARCHCAT_COPY_BUFFER_MAXSIZE ), inRec->fp);
+#else
+ nBytesRead = fread(buffer, sizeof(char), (size_t) STARCHCAT_COPY_BUFFER_MAXSIZE, inRec->fp);
+#endif
+ if (nBytesRead != STARCHCAT_COPY_BUFFER_MAXSIZE * sizeof(char)) {
+ fprintf(stderr, "ERROR: Was not able to copy sufficient bytes into buffer (STARCHCAT_COPY_BUFFER_MAXSIZE).\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+#ifdef __cplusplus
+ fwrite(buffer, sizeof(char), static_cast<size_t>( STARCHCAT_COPY_BUFFER_MAXSIZE ), outFnPtr);
+#else
+ fwrite(buffer, sizeof(char), (size_t) STARCHCAT_COPY_BUFFER_MAXSIZE, outFnPtr);
+#endif
+ outFileSizeCounter -= STARCHCAT_COPY_BUFFER_MAXSIZE;
+ }
+ else {
+#ifdef __cplusplus
+ nBytesRead = fread(buffer, sizeof(char), static_cast<size_t>( outFileSizeCounter ), inRec->fp);
+#else
+ nBytesRead = fread(buffer, sizeof(char), (size_t) outFileSizeCounter, inRec->fp);
+#endif
+ if (nBytesRead != outFileSizeCounter * sizeof(char)) {
+ fprintf(stderr, "ERROR: Was not able to copy sufficient bytes into buffer (outFileSizeCounter).\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+#ifdef __cplusplus
+ fwrite(buffer, sizeof(char), static_cast<size_t>( outFileSizeCounter ), outFnPtr);
+#else
+ fwrite(buffer, sizeof(char), (size_t) outFileSizeCounter, outFnPtr);
+#endif
+ outFileSizeCounter = 0ULL;
+ }
+ } while (outFileSizeCounter > 0);
+
+ /* update output metadata */
+ if (! *outMd) {
+#ifdef DEBUG
+ fprintf(stderr, "\t\tmaking new output metadata structure...\n");
+#endif
+#ifdef __cplusplus
+ *outMd = STARCH_createMetadata( const_cast<char *>( inChr ),
+#else
+ *outMd = STARCH_createMetadata( (char *) inChr,
+#endif
+ outFn,
+ outFileSize,
+ outFileLineCount,
+ outFileNonUniqueBases,
+ outFileUniqueBases,
+ outDuplicateElementExists,
+ outNestedElementExists);
+ }
+ else {
+#ifdef DEBUG
+ fprintf(stderr, "\t\tappending to existing output metadata structure...\n");
+#endif
+ *outMd = STARCH_addMetadata( *outMd,
+#ifdef __cplusplus
+ const_cast<char *>( inChr ),
+#else
+ (char *) inChr,
+#endif
+ outFn,
+ outFileSize,
+ outFileLineCount,
+ outFileNonUniqueBases,
+ outFileUniqueBases,
+ outDuplicateElementExists,
+ outNestedElementExists);
+ }
+ /* fprintf(stderr, "\t\tchr: %s, outFn: %s, size: %llu\n", (*outMd)->chromosome, (*outMd)->filename, (*outMd)->size); */
+
+ /* cleanup */
+ fclose(outFnPtr);
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT2_rewriteInputRecordToOutput (Metadata **outMd, const char *outTag, const CompressionType outType, const char *inChr, const MetadataRecord *inRec, size_t *cumulativeOutputSize)
+{
+ /*
+ This function extracts a single record (chromosome) of data
+ to a temporary buffer. The temporary buffer is reverse-transformed
+ to BED, retransformed, and then compressed with the given outbound
+ stream compression type. The records metadata are updated at the end
+ with the statistics for the new record.
+ */
+
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCHCAT2_rewriteInputRecordToOutput() ---\n");
+#endif
+ FILE *inFp = inRec->fp;
+ FILE *outFp = stdout;
+ CompressionType inType = inRec->type;
+ char *outTagFn = NULL;
+ SignedCoordType startOffset = 0;
+ Metadata *iter, *inMd = inRec->metadata;
+ ArchiveVersion *av = inRec->av;
+
+ /* intermediate buffer variaables */
+ unsigned char retransformLineBuf[TOKENS_MAX_LENGTH] = {0};
+ int64_t nRetransformLineBuf = 0;
+ int64_t nRetransformLineBufPos = 0;
+ unsigned char retransformBuf[STARCH_BUFFER_MAX_LENGTH] = {0};
+ int64_t nRetransformBuf = 0;
+
+ /* bzip2 variables */
+ BZFILE *bzInFp = NULL;
+ BZFILE *bzOutFp = NULL;
+ int bzInError = BZ_OK;
+ int bzOutError = BZ_OK;
+ unsigned char bzReadBuf[STARCH_BZ_BUFFER_MAX_LENGTH] = {0};
+ size_t nBzReadBuf = STARCH_BZ_BUFFER_MAX_LENGTH;
+ unsigned char bzRemainderBuf[STARCH_BZ_BUFFER_MAX_LENGTH] = {0};
+ size_t nBzRemainderBuf = 0;
+ size_t nBzRead = 0;
+ size_t bzBufIndex = 0;
+ unsigned char bzLineBuf[STARCH_BZ_BUFFER_MAX_LENGTH] = {0};
+ unsigned int bzOutBytesConsumed = 0U;
+ unsigned int bzOutBytesWritten = 0U;
+
+ /* gzip variables */
+ z_stream zInStream;
+ z_stream zOutStream;
+ int zInError = -1;
+ int zOutError = -1;
+ unsigned char zOutBuffer[STARCH_Z_BUFFER_MAX_LENGTH] = {0};
+ unsigned char zReadBuf[STARCH_Z_CHUNK/1024];
+ unsigned char zOutBuf[STARCH_Z_CHUNK];
+ size_t zInHave = 0;
+ size_t zOutHave = 0;
+ size_t zBufIndex = 0;
+ unsigned char zRemainderBuf[STARCH_Z_BUFFER_MAX_LENGTH] = {0};
+ size_t nZRemainderBuf = 0;
+ unsigned char zLineBuf[STARCH_Z_BUFFER_MAX_LENGTH] = {0};
+
+ /* transformation variables */
+ size_t lastNewlineOffset = 0U;
+ unsigned char bufChar = '\0';
+ size_t bufCharIndex = 0;
+ SignedCoordType t_start = 0;
+ SignedCoordType t_pLength = 0;
+ SignedCoordType t_lastEnd = 0;
+ char t_firstInputToken[UNSTARCH_FIRST_TOKEN_MAX_LENGTH] = {0};
+ char t_secondInputToken[UNSTARCH_SECOND_TOKEN_MAX_LENGTH] = {0};
+ char *t_currChr = NULL;
+ size_t t_currChrLen = 0U;
+ SignedCoordType t_currStart = 0;
+ SignedCoordType t_currStop = 0;
+ char *t_currRemainder = NULL;
+ size_t t_currRemainderLen = 0U;
+ LineCountType t_lineIdx = 0;
+ SignedCoordType t_pStart = 0;
+ SignedCoordType t_pStop = 0;
+ SignedCoordType t_previousStop = 0;
+ SignedCoordType t_lastPosition = 0;
+ SignedCoordType t_lcDiff = 0;
+ BaseCountType t_totalNonUniqueBases = 0;
+ BaseCountType t_totalUniqueBases = 0;
+ Boolean t_duplicateElementExists = STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE;
+ Boolean t_nestedElementExists = STARCH_DEFAULT_NESTED_ELEMENT_FLAG_VALUE;
+ size_t t_fileSize = 0U;
+
+ static const char tab = '\t';
+
+#ifdef DEBUG
+ /*
+ fprintf(stderr, "\tsetting up tag... (%s)\n", outTag);
+ */
+#endif
+ switch (outType) {
+ case kBzip2: {
+#ifdef __cplusplus
+ outTagFn = static_cast<char *>( malloc(strlen(inChr) + strlen(outTag) + 3 + strlen(".bz2")) );
+#else
+ outTagFn = malloc(strlen(inChr) + strlen(outTag) + 3 + strlen(".bz2"));
+#endif
+ sprintf(outTagFn, "%s.%s.bz2", inChr, outTag);
+ break;
+ }
+ case kGzip: {
+#ifdef __cplusplus
+ outTagFn = static_cast<char *>( malloc(strlen(inChr) + strlen(outTag) + 3 + strlen(".gz")) );
+#else
+ outTagFn = malloc(strlen(inChr) + strlen(outTag) + 3 + strlen(".gz"));
+#endif
+ sprintf(outTagFn, "%s.%s.gz", inChr, outTag);
+ break;
+ }
+ case kUndefined: {
+ fprintf(stderr, "ERROR: Undefined outbound compression type.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ }
+#ifdef DEBUG
+ /*
+ fprintf(stderr, "\toutTagFn: %s\n", outTagFn);
+ */
+#endif
+
+ /*
+ Use fseek() to ensure we are at the correct file offset before reading bytes
+ */
+ if (av->major == 2)
+ startOffset += STARCH2_MD_HEADER_BYTE_LENGTH;
+ else if (av->major == 1)
+ startOffset += inRec->mdOffset;
+
+ for (iter = inMd; iter != NULL; iter = iter->next) {
+ if (strcmp(iter->chromosome, inChr) == 0)
+ break;
+ else
+ startOffset += iter->size;
+ }
+
+#ifdef DEBUG
+ fprintf(stderr, "\tseeking to file offset: %" PRIu64 "\n", startOffset);
+#endif
+#ifdef __cplusplus
+ fseeko(inFp, static_cast<off_t>( startOffset ), SEEK_SET);
+#else
+ fseeko(inFp, (off_t) startOffset, SEEK_SET);
+#endif
+
+ /*
+ Set up I/O streams
+ */
+
+#ifdef DEBUG
+ fprintf(stderr, "\tsetting up I/O streams...\n");
+#endif
+ switch (outType) {
+ case kBzip2: {
+#ifdef DEBUG
+ /*
+ fprintf (stderr, "\tsetting up bzip2 write stream...\n");
+ */
+#endif
+ bzOutFp = BZ2_bzWriteOpen(&bzOutError, outFp, STARCH_BZ_COMPRESSION_LEVEL, STARCH_BZ_VERBOSITY, STARCH_BZ_WORKFACTOR);
+ if (!bzOutFp) {
+ fprintf(stderr, "ERROR: Could not instantiate BZFILE pointer\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ else if (bzOutError != BZ_OK) {
+ switch (bzOutError) {
+ case BZ_CONFIG_ERROR: {
+ fprintf(stderr, "ERROR: Bzip2 library has been miscompiled\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ case BZ_PARAM_ERROR: {
+ fprintf(stderr, "ERROR: Stream is null, or block size, verbosity and work factor parameters are invalid\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ case BZ_IO_ERROR: {
+ fprintf(stderr, "ERROR: The value of ferror(outFp) is nonzero -- check outFp\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ case BZ_MEM_ERROR: {
+ fprintf(stderr, "ERROR: Not enough memory is available\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ default: {
+ fprintf(stderr, "ERROR: Unknown error with BZ2_bzWriteOpen() (err: %d)\n", bzOutError);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ }
+ }
+ break;
+ }
+ case kGzip: {
+#ifdef DEBUG
+ /*
+ fprintf (stderr, "\tsetting up gzip write stream...\n");
+ */
+#endif
+ zOutStream.zalloc = Z_NULL;
+ zOutStream.zfree = Z_NULL;
+ zOutStream.opaque = Z_NULL;
+ /* cf. http://www.zlib.net/manual.html for level information */
+ /* zOutError = deflateInit2(&zOutStream, STARCH_Z_COMPRESSION_LEVEL, Z_DEFLATED, STARCH_Z_WINDOW_BITS, STARCH_Z_MEMORY_LEVEL, Z_DEFAULT_STRATEGY); */
+ zOutError = deflateInit(&zOutStream, STARCH_Z_COMPRESSION_LEVEL);
+ if (zOutError != Z_OK) {
+ switch (zOutError) {
+ case Z_MEM_ERROR: {
+ fprintf(stderr, "ERROR: Not enough memory is available\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ case Z_STREAM_ERROR: {
+ fprintf(stderr, "ERROR: Gzip initialization parameter is invalid (e.g., invalid method)\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ case Z_VERSION_ERROR: {
+ fprintf(stderr, "ERROR: the zlib library version is incompatible with the version assumed by the caller (ZLIB_VERSION)\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ default: {
+ fprintf(stderr, "ERROR: Unknown error with deflateInit() (err: %d)\n", zOutError);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ }
+ }
+ break;
+ }
+ case kUndefined: {
+ fprintf (stderr, "ERROR: Unknown output compression type specified!\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ }
+
+ /*
+ Reprocess based on input compression type
+ */
+ switch (inType) {
+ /*
+ Bzip2 stream reprocessing
+ */
+ case kBzip2: {
+#ifdef DEBUG
+ /*
+ fprintf (stderr, "\tsetting up bzip2 read stream...\n");
+ */
+#endif
+ bzInFp = BZ2_bzReadOpen(&bzInError, inFp, STARCH_BZ_VERBOSITY, STARCH_BZ_SMALL, NULL, 0); /* http://www.bzip.org/1.0.5/bzip2-manual-1.0.5.html#bzreadopen */
+ if (bzInError != BZ_OK) {
+ switch (bzInError) {
+ case BZ_CONFIG_ERROR: {
+ fprintf(stderr, "ERROR: Bzip2 library was miscompiled. Contact your system administrator.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ case BZ_PARAM_ERROR: {
+ fprintf(stderr, "ERROR: Input file stream is NULL, small value is invalid, or unused parameters are invalid.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ case BZ_IO_ERROR: {
+ fprintf(stderr, "ERROR: Error reading the underlying compressed file.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ case BZ_MEM_ERROR: {
+ fprintf(stderr, "ERROR: Insufficient memory is available for bzip2 setup.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ default:
+ break;
+ }
+ }
+
+ while (bzInError == BZ_OK) {
+#ifdef DEBUG
+ /*
+ fprintf (stderr, "\t\treading from stream... (%s)\n", inChr);
+ */
+#endif
+#ifdef __cplusplus
+ nBzRead = static_cast<size_t>( BZ2_bzRead(&bzInError, bzInFp, bzReadBuf, static_cast<int>( nBzReadBuf )) );
+#else
+ nBzRead = (size_t) BZ2_bzRead(&bzInError, bzInFp, bzReadBuf, (int) nBzReadBuf);
+#endif
+#ifdef DEBUG
+ /*
+ fprintf (stderr, "\t\tbzInError: %d \t nBzRemainderBuf: %d \t nBzRead: %d\n", bzInError, nBzRemainderBuf, nBzRead);
+ */
+#endif
+ if ((bzInError == BZ_OK) || (bzInError == BZ_STREAM_END)) {
+ /*
+ We read nBzRemainderBuf bytes from bzRemainderBuf
+ and nBzRead bytes from bzReadBuf. We then tokenize by
+ newline and reverse transform the line token.
+
+ Once we have a buffer of BED data, we then
+ transform that in order to recalculate statistics.
+ Transormed data are recompressed and sent to stdout.
+ */
+ bufCharIndex = 0;
+ if (nBzRemainderBuf > 0) {
+ memset(bzLineBuf, 0, nBzRemainderBuf + 1);
+ bzBufIndex = 0;
+ while (bzBufIndex < nBzRemainderBuf) {
+ bufChar = bzRemainderBuf[bzBufIndex];
+ bzLineBuf[bufCharIndex++] = bufChar;
+#ifdef DEBUG
+ /*
+ fprintf(stderr, "[%c]\n", bufChar);
+ */
+#endif
+ bzBufIndex++;
+ }
+ /* memset(bzRemainderBuf, 0, nBzRemainderBuf); */
+ bzRemainderBuf[nBzRemainderBuf] = '\0';
+ nBzRemainderBuf = 0;
+ }
+ bzBufIndex = 0;
+ while (bzBufIndex < nBzRead) {
+ bufChar = bzReadBuf[bzBufIndex];
+ bzLineBuf[bufCharIndex++] = bufChar;
+#ifdef DEBUG
+ /*
+ fprintf(stderr, "%c", bufChar);
+ */
+#endif
+ /*
+ We have extracted a line of post-transformed data, so we process it
+ with UNSTARCH_extractRawLine(), which converts it to BED data.
+ */
+ if (bufChar == '\n') {
+ bzLineBuf[bufCharIndex - 1] = '\0';
+#ifdef DEBUG
+ /*
+ fprintf(stderr, "\tbzLineBuf: %s\n", bzLineBuf);
+ fprintf(stderr, "\tBEFORE UNSTARCH_extractLine() - t_currChr: %s \t t_currStart: %" PRIu64 " \t t_currStop: %" PRIu64 " \t t_currRemainder: %s\n", t_currChr, t_currStart, t_currStop, t_currRemainder);
+ */
+#endif
+ UNSTARCH_extractRawLine( inChr,
+ bzLineBuf,
+ tab,
+ &t_start,
+ &t_pLength,
+ &t_lastEnd,
+ t_firstInputToken,
+ t_secondInputToken,
+ &t_currChr,
+ &t_currChrLen,
+ &t_currStart,
+ &t_currStop,
+ &t_currRemainder,
+ &t_currRemainderLen );
+
+#ifdef DEBUG
+ /*
+ fprintf(stderr, "\tAFTER UNSTARCH_extractLine() - t_currChr: %s \t t_currStart: %" PRIu64 " \t t_currStop: %" PRIu64 " \t t_currRemainder: %s\n", t_currChr, t_currStart, t_currStop, t_currRemainder);
+ fprintf(stderr, "\tfirst token: %s \t second token: %s\n", t_firstInputToken, t_secondInputToken);
+ */
+#endif
+ /*
+ If we aren't on a post-transform line starting with 'p', then we have a complete BED
+ element.
+
+ So we build a BED element from the results, adding it to the BED buffer (if space
+ is available). This buffer stores BED elements that will eventually be retransformed,
+ compressed and written to stdout.
+
+ Else, if the BED buffer will overflow, we instead compress the current BED buffer
+ with our output compression type (which may be the same as or different from the
+ input compression type) and put the BED element into a remainder-BED buffer that
+ is primed on the next loop.
+ */
+
+ if (bzLineBuf[0] != 'p') {
+#ifdef DEBUG
+ /*
+ fprintf(stderr, "\tRaw BED data -> %s\t%" PRIu64 "\t%" PRIu64 "\t%s\n", t_currChr, t_currStart, t_currStop, t_currRemainder);
+ */
+#endif
+ /* increment line counter */
+ t_lineIdx++;
+
+ /* reverse transform */
+#ifdef __cplusplus
+ UNSTARCH_reverseTransformCoordinates( static_cast<const LineCountType>( t_lineIdx ),
+#else
+ UNSTARCH_reverseTransformCoordinates( (const LineCountType) t_lineIdx,
+#endif
+ &t_lastPosition,
+ &t_lcDiff,
+ &t_currStart,
+ &t_currStop,
+ &t_currRemainder,
+ retransformLineBuf,
+ &nRetransformLineBuf,
+ &nRetransformLineBufPos );
+
+ /* adjust per-stream statistics */
+ t_lastPosition = t_currStop;
+#ifdef __cplusplus
+ t_totalNonUniqueBases += static_cast<BaseCountType>( t_currStop - t_currStart );
+ if (t_previousStop <= t_currStart)
+ t_totalUniqueBases += static_cast<BaseCountType>( t_currStop - t_currStart );
+ else if (t_previousStop < t_currStop)
+ t_totalUniqueBases += static_cast<BaseCountType>( t_currStop - t_previousStop );
+#else
+ t_totalNonUniqueBases += (BaseCountType) (t_currStop - t_currStart);
+ if (t_previousStop <= t_currStart)
+ t_totalUniqueBases += (BaseCountType) (t_currStop - t_currStart);
+ else if (t_previousStop < t_currStop)
+ t_totalUniqueBases += (BaseCountType) (t_currStop - t_previousStop);
+#endif
+ t_previousStop = (t_currStop > t_previousStop) ? t_currStop : t_previousStop;
+
+ /* test for duplicate element */
+ if ((t_pStart == t_currStart) && (t_pStop == t_currStop))
+ t_duplicateElementExists = kStarchTrue;
+
+ /* test for nested element */
+ if ((t_pStart < t_currStart) && (t_pStop > t_currStop))
+ t_nestedElementExists = kStarchTrue;
+
+ /* set pElement values */
+ t_pStart = t_currStart;
+ t_pStop = t_currStop;
+
+ /* collate transformed coordinates with larger buffer */
+#ifdef __cplusplus
+ if (nRetransformBuf + nRetransformLineBufPos < static_cast<int64_t>( sizeof(retransformBuf) )) {
+ memcpy(retransformBuf + nRetransformBuf, retransformLineBuf, static_cast<size_t>( nRetransformLineBufPos ));
+#else
+ if (nRetransformBuf + nRetransformLineBufPos < (int64_t) sizeof(retransformBuf)) {
+ memcpy(retransformBuf + nRetransformBuf, retransformLineBuf, (size_t) nRetransformLineBufPos);
+#endif
+ nRetransformBuf += nRetransformLineBufPos;
+ nRetransformLineBufPos = 0;
+ nRetransformLineBuf = 0;
+ }
+ else {
+ /*
+ Compress whatever is already in retransformBuf given the specified
+ outbound compression type, add retransformLineBuf to the start of
+ retransformBuf, and set nRetransformBuf.
+ */
+ switch (outType) {
+ /* compress with bzip2 */
+ case kBzip2: {
+#ifdef DEBUG
+ /*
+ fprintf(stderr, "\twriting compressed retransformLineBuf data to bzOutFp:\n----\n%s\n---\n%" PRId64 " | % " PRId64 "\n---\n", retransformLineBuf, nRetransformLineBuf, nRetransformLineBufPos);
+ */
+#endif
+#ifdef __cplusplus
+ BZ2_bzWrite(&bzOutError, bzOutFp, retransformBuf, static_cast<int>( nRetransformBuf ));
+#else
+ BZ2_bzWrite(&bzOutError, bzOutFp, retransformBuf, (int) nRetransformBuf);
+#endif
+ if (bzOutError != BZ_OK) {
+ switch (bzOutError) {
+ case BZ_PARAM_ERROR: {
+ fprintf(stderr, "ERROR: Stream is NULL, transformedBuffer is NULL, or currentTransformedBufferLength is negative\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ case BZ_SEQUENCE_ERROR: {
+ fprintf(stderr, "ERROR: Bzip2 streams are out of sequence\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ case BZ_IO_ERROR: {
+ fprintf(stderr, "ERROR: There is an error writing the compressed data to the bz stream\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ default: {
+ fprintf(stderr, "ERROR: Unknown error with BZ2_bzWrite() (err: %d)\n", bzOutError);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ }
+ }
+ break;
+ }
+ /* compress with gzip */
+ case kGzip: {
+#ifdef __cplusplus
+ zOutStream.next_in = reinterpret_cast<unsigned char *>( retransformBuf );
+ zOutStream.avail_in = static_cast<unsigned int>( nRetransformBuf );
+#else
+ zOutStream.next_in = (unsigned char *) retransformBuf;
+ zOutStream.avail_in = (unsigned int) nRetransformBuf;
+#endif
+ do {
+ zOutStream.avail_out = STARCH_Z_BUFFER_MAX_LENGTH;
+#ifdef __cplusplus
+ zOutStream.next_out = reinterpret_cast<unsigned char *>( zOutBuffer );
+#else
+ zOutStream.next_out = (unsigned char *) zOutBuffer;
+#endif
+ /* zOutError = deflate (&zOutStream, feof(inFp) ? Z_FINISH : Z_NO_FLUSH); */
+ zOutError = deflate (&zOutStream, Z_NO_FLUSH);
+ switch (zOutError) {
+ case Z_MEM_ERROR: {
+ fprintf(stderr, "ERROR: Not enough memory to compress data\n");
+ return STARCHCAT_FATAL_ERROR;
+ }
+ case Z_BUF_ERROR:
+ default:
+ break;
+ }
+#ifdef __cplusplus
+ zOutHave = static_cast<size_t>( STARCH_Z_BUFFER_MAX_LENGTH - zOutStream.avail_out );
+#else
+ zOutHave = (size_t) (STARCH_Z_BUFFER_MAX_LENGTH - zOutStream.avail_out);
+#endif
+ t_fileSize += zOutHave;
+ *cumulativeOutputSize += zOutHave;
+ fwrite(zOutBuffer, 1, zOutHave, outFp);
+ fflush(outFp);
+ } while (zOutStream.avail_out == 0);
+ break;
+ }
+ case kUndefined: {
+ fprintf(stderr, "ERROR: Outbound compression type is unknown. Are the parameters corrupt?\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ }
+ /* memcpy(retransformBuf, retransformLineBuf + nRetransformLineBufPos, nRetransformLineBuf); */
+#ifdef __cplusplus
+ memcpy(retransformBuf, retransformLineBuf, static_cast<size_t>( nRetransformLineBufPos ));
+#else
+ memcpy(retransformBuf, retransformLineBuf, (size_t) nRetransformLineBufPos);
+#endif
+ nRetransformBuf = nRetransformLineBufPos;
+ retransformBuf[nRetransformBuf] = '\0';
+ nRetransformLineBuf = 0;
+ nRetransformLineBufPos = 0;
+#ifdef DEBUG
+ /*
+ fprintf(stderr, "POST RETRANS COMP: [%s]\n", retransformBuf);
+ */
+#endif
+ }
+ }
+
+ /* this lets us know where we last found a newline, for handling the remainder */
+ lastNewlineOffset = bzBufIndex;
+#ifdef DEBUG
+ /*
+ fprintf(stderr, "\tLAST NEWLINE OFFSET -> %lu\n", lastNewlineOffset);
+ */
+#endif
+
+ /* reset parameters */
+ t_firstInputToken[0] = '\0';
+ t_secondInputToken[0] = '\0';
+ bufCharIndex = 0;
+ }
+
+ /*
+ If we're at the end of the extracted buffer and there is no
+ newline, then we need to put that remainder at the front of the
+ remainder buffer, which can then be copied back to the line
+ buffer before any further parsing of the extraction buffer is
+ done.
+ */
+ else if ((bzBufIndex + 1) == nBzRead) {
+ /*
+ Note that there may be data left over in bzReadBuf
+ that remains after a final newline. This needs to be
+ processed on the next loop through the BZ2_bzRead()
+ call.
+ */
+ memset(bzRemainderBuf, 0, nBzRemainderBuf);
+#ifdef __cplusplus
+ nBzRemainderBuf = static_cast<size_t>( nBzRead - (lastNewlineOffset + 1) );
+#else
+ nBzRemainderBuf = (size_t) nBzRead - (lastNewlineOffset + 1);
+#endif
+ memcpy(bzRemainderBuf, bzReadBuf + lastNewlineOffset + 1, nBzRemainderBuf);
+#ifdef DEBUG
+ /*
+ bzRemainderBuf[nBzRemainderBuf] = '\0';
+ fprintf(stderr, "\t\tPOST-LOOP bzReadBuf: [%s]\n", bzReadBuf + lastNewlineOffset);
+ fprintf(stderr, "\t\tPOST-LOOP bzRemainderBuf: [%s]\n", bzRemainderBuf);
+ */
+#endif
+ }
+ bzBufIndex++;
+ }
+ }
+ }
+
+ /* compress whatever is left in the retransform buffer */
+ switch (outType) {
+ case kBzip2: {
+#ifdef DEBUG
+ retransformBuf[nRetransformBuf] = '\0';
+ fprintf(stderr, "\t(whatever's left) writing compressed retransformBuf data to bzOutFp:\n----\n%s\n---\n%" PRId64 "\n---\n", retransformBuf, nRetransformBuf);
+#endif
+#ifdef __cplusplus
+ BZ2_bzWrite(&bzOutError, bzOutFp, retransformBuf, static_cast<int>( nRetransformBuf ));
+#else
+ BZ2_bzWrite(&bzOutError, bzOutFp, retransformBuf, (int) nRetransformBuf);
+#endif
+ if (bzOutError != BZ_OK) {
+ switch (bzOutError) {
+ case BZ_PARAM_ERROR: {
+ fprintf(stderr, "ERROR: Stream is NULL, transformedBuffer is NULL, or currentTransformedBufferLength is negative\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ case BZ_SEQUENCE_ERROR: {
+ fprintf(stderr, "ERROR: Bzip2 streams are out of sequence\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ case BZ_IO_ERROR: {
+ fprintf(stderr, "ERROR: There is an error writing the compressed data to the bz stream\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ default: {
+ fprintf(stderr, "ERROR: Unknown error with BZ2_bzWrite() (err: %d)\n", bzOutError);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ }
+ }
+ break;
+ }
+ case kGzip: {
+#ifdef DEBUG
+ retransformBuf[nRetransformBuf] = '\0';
+ fprintf(stderr, "\t(whatever's left) writing compressed retransformBuf data to zOutFp:\n----\n%s\n---\n%" PRId64 "\n---\n", retransformBuf, nRetransformBuf);
+#endif
+#ifdef __cplusplus
+ zOutStream.next_in = reinterpret_cast<unsigned char *>( retransformBuf );
+ zOutStream.avail_in = static_cast<unsigned int>( nRetransformBuf );
+#else
+ zOutStream.next_in = (unsigned char *) retransformBuf;
+ zOutStream.avail_in = (unsigned int) nRetransformBuf;
+#endif
+
+ do {
+#ifdef DEBUG
+ /*
+ fprintf(stderr, "START zOutStream.avail_out -> %d\n", zOutStream.avail_out);
+ */
+#endif
+ zOutStream.avail_out = STARCH_Z_BUFFER_MAX_LENGTH;
+#ifdef __cplusplus
+ zOutStream.next_out = reinterpret_cast<unsigned char *>( zOutBuffer );
+#else
+ zOutStream.next_out = (unsigned char *) zOutBuffer;
+#endif
+
+ zOutError = deflate (&zOutStream, Z_FINISH);
+
+#ifdef DEBUG
+ /*
+ fprintf(stderr, "zOutError -> %d\n", zOutError);
+ */
+#endif
+
+ switch (zOutError) {
+ case Z_MEM_ERROR: {
+ fprintf(stderr, "ERROR: Not enough memory to compress data\n");
+ return STARCHCAT_FATAL_ERROR;
+ }
+ case Z_BUF_ERROR:
+ default:
+ break;
+ }
+ zOutHave = STARCH_Z_BUFFER_MAX_LENGTH - zOutStream.avail_out;
+#ifdef DEBUG
+ /*
+ fprintf(stderr, "zOutHave -> %d\n", zOutHave);
+ */
+#endif
+ t_fileSize += zOutHave;
+ *cumulativeOutputSize += zOutHave;
+ fwrite(zOutBuffer, 1, zOutHave, outFp);
+ fflush(outFp);
+ } while (zOutStream.avail_out == 0);
+
+ break;
+ }
+ case kUndefined: {
+ fprintf(stderr, "ERROR: Outbound compression type is unknown. Are the parameters corrupt?\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ }
+
+ /* clean up bzip2 read stream */
+ if (bzInError != BZ_STREAM_END) {
+ fprintf(stderr, "ERROR: Bzip2 error after read: %d\n", bzInError);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ BZ2_bzReadClose(&bzInError, bzInFp);
+ if (bzInError != BZ_OK) {
+ fprintf(stderr, "ERROR: Bzip2 error after closing read stream: %d\n", bzInError);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ break;
+ }
+
+ /*
+ -------------------------------------------------------------------------------------------------------
+ Gzip-stream reprocessing
+ -------------------------------------------------------------------------------------------------------
+ */
+ case kGzip: {
+#ifdef DEBUG
+ fprintf (stderr, "\tsetting up gzip read stream...\n");
+#endif
+ zInStream.zalloc = Z_NULL;
+ zInStream.zfree = Z_NULL;
+ zInStream.opaque = Z_NULL;
+ zInStream.avail_in = 0;
+ zInStream.next_in = Z_NULL;
+ /* cf. http://www.zlib.net/manual.html for level information */
+ zInError = inflateInit2(&zInStream, (15+32));
+ if (zInError != Z_OK) {
+ fprintf(stderr, "ERROR: Could not initialize z-stream\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+ do {
+#ifdef DEBUG
+ fprintf (stderr, "\treading from stream... (%s)\n", inChr);
+#endif
+#ifdef __cplusplus
+ zInStream.avail_in = static_cast<unsigned int>( fread(zReadBuf, 1, STARCH_Z_CHUNK/1024, inFp) );
+#else
+ zInStream.avail_in = (unsigned int) fread(zReadBuf, 1, STARCH_Z_CHUNK/1024, inFp);
+#endif
+#ifdef DEBUG
+ fprintf (stderr, "\tzInStream.avail_in -> %d\n", zInStream.avail_in);
+#endif
+ if (zInStream.avail_in == 0)
+ break;
+ zInStream.next_in = zReadBuf;
+ do {
+ zInStream.avail_out = STARCH_Z_CHUNK;
+ zInStream.next_out = zOutBuf;
+ zOutError = inflate(&zInStream, Z_NO_FLUSH);
+ if (zOutError != Z_OK) {
+ switch (zOutError) {
+ case Z_STREAM_ERROR: {
+ fprintf(stderr, "ERROR: Z-stream clobbered.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ case Z_NEED_DICT: {
+ zOutError = Z_DATA_ERROR;
+ inflateEnd(&zInStream);
+ break;
+ }
+ case Z_DATA_ERROR: {
+ inflateEnd(&zInStream);
+ break;
+ }
+ case Z_MEM_ERROR: {
+ inflateEnd(&zInStream);
+ break;
+ }
+ }
+ }
+#ifdef __cplusplus
+ zInHave = static_cast<size_t>( STARCH_Z_CHUNK - zInStream.avail_out );
+#else
+ zInHave = (size_t) (STARCH_Z_CHUNK - zInStream.avail_out);
+#endif
+
+#ifdef DEBUG
+ fprintf (stderr, "\tzOutBuf -> [");
+ fwrite (zOutBuf, 1, zInHave, stderr);
+ fprintf (stderr, "]\n");
+#endif
+
+ /*
+ Read through zInHave bytes of zOutBuf, splitting
+ on a newline character. We reverse transform the line
+ buffer as is done for bzip2 streams.
+ */
+ bufCharIndex = 0;
+
+ if (nZRemainderBuf > 0) {
+#ifdef DEBUG
+ fprintf(stderr, "\tADDING FROM REMAINDER [%zd] [%s]\n", nZRemainderBuf, zRemainderBuf);
+#endif
+#ifdef __cplusplus
+ memset(reinterpret_cast<char *>( zLineBuf ), 0, nZRemainderBuf + 1);
+#else
+ memset((char *) zLineBuf, 0, nZRemainderBuf + 1);
+#endif
+ zBufIndex = 0;
+ while (zBufIndex < nZRemainderBuf) {
+ bufChar = zRemainderBuf[zBufIndex];
+ zLineBuf[bufCharIndex++] = bufChar;
+ zBufIndex++;
+ }
+ memset(zRemainderBuf, 0, nZRemainderBuf + 1);
+ /* zRemainderBuf[nZRemainderBuf] = '\0'; */
+ nZRemainderBuf = 0;
+ }
+
+ zBufIndex = 0;
+ while (zBufIndex < zInHave) {
+
+ bufChar = zOutBuf[zBufIndex];
+ zLineBuf[bufCharIndex++] = bufChar;
+
+ if (bufChar == '\n') {
+ zLineBuf[bufCharIndex - 1] = '\0';
+
+ /* extract a line of transformed data */
+ UNSTARCH_extractRawLine(inChr,
+ zLineBuf,
+ tab,
+ &t_start,
+ &t_pLength,
+ &t_lastEnd,
+ t_firstInputToken,
+ t_secondInputToken,
+ &t_currChr,
+ &t_currChrLen,
+ &t_currStart,
+ &t_currStop,
+ &t_currRemainder,
+ &t_currRemainderLen);
+ if (zLineBuf[0] != 'p') {
+ /* increment line counter */
+ t_lineIdx++;
+
+ /* reverse transform */
+#ifdef __cplusplus
+ UNSTARCH_reverseTransformCoordinates(static_cast<const LineCountType>( t_lineIdx ),
+#else
+ UNSTARCH_reverseTransformCoordinates((const LineCountType) t_lineIdx,
+#endif
+ &t_lastPosition,
+ &t_lcDiff,
+ &t_currStart,
+ &t_currStop,
+ &t_currRemainder,
+ retransformLineBuf,
+ &nRetransformLineBuf,
+ &nRetransformLineBufPos);
+ /* adjust statistics */
+ t_lastPosition = t_currStop;
+#ifdef __cplusplus
+ t_totalNonUniqueBases += static_cast<BaseCountType>( t_currStop - t_currStart );
+ if (t_previousStop <= t_currStart)
+ t_totalUniqueBases += static_cast<BaseCountType>( t_currStop - t_currStart );
+ else if (t_previousStop < t_currStop)
+ t_totalUniqueBases += static_cast<BaseCountType>( t_currStop - t_previousStop );
+#else
+ t_totalNonUniqueBases += (BaseCountType) (t_currStop - t_currStart);
+ if (t_previousStop <= t_currStart)
+ t_totalUniqueBases += (BaseCountType) (t_currStop - t_currStart);
+ else if (t_previousStop < t_currStop)
+ t_totalUniqueBases += (BaseCountType) (t_currStop - t_previousStop);
+#endif
+ t_previousStop = (t_currStop > t_previousStop) ? t_currStop : t_previousStop;
+
+ /* test for duplicate element */
+ if ((t_pStart == t_currStart) && (t_pStop == t_currStop))
+ t_duplicateElementExists = kStarchTrue;
+
+ /* test for nested element */
+ if ((t_pStart < t_currStart) && (t_pStop > t_currStop))
+ t_nestedElementExists = kStarchTrue;
+
+ /* set pElement values */
+ t_pStart = t_currStart;
+ t_pStop = t_currStop;
+
+ /* shuffle data into retransformation buffer if we're not yet ready to compress */
+#ifdef __cplusplus
+ if (nRetransformBuf + nRetransformLineBufPos < static_cast<int64_t>( sizeof(retransformBuf) )) {
+ memcpy(retransformBuf + nRetransformBuf, retransformLineBuf, static_cast<size_t>( nRetransformLineBufPos ));
+#else
+ if (nRetransformBuf + nRetransformLineBufPos < (int64_t) sizeof(retransformBuf)) {
+ memcpy(retransformBuf + nRetransformBuf, retransformLineBuf, (size_t) nRetransformLineBufPos);
+#endif
+ nRetransformBuf += nRetransformLineBufPos;
+ retransformLineBuf[nRetransformLineBufPos] = '\0';
+ nRetransformLineBufPos = 0;
+ nRetransformLineBuf = 0;
+ }
+ else {
+ /*
+ Compress whatever is already in retransformBuf given the specified
+ outbound compression type, add retransformLineBuf to the start of
+ retransformBuf, and set nRetransformBuf.
+ */
+ switch (outType) {
+ /* compress with bzip2 */
+ case kBzip2: {
+#ifdef __cplusplus
+ BZ2_bzWrite(&bzOutError, bzOutFp, retransformBuf, static_cast<int>( nRetransformBuf ));
+#else
+ BZ2_bzWrite(&bzOutError, bzOutFp, retransformBuf, (int) nRetransformBuf);
+#endif
+ if (bzOutError != BZ_OK) {
+ switch (bzOutError) {
+ case BZ_PARAM_ERROR: {
+ fprintf(stderr, "ERROR: Stream is NULL, transformedBuffer is NULL, or currentTransformedBufferLength is negative\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ case BZ_SEQUENCE_ERROR: {
+ fprintf(stderr, "ERROR: Bzip2 streams are out of sequence\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ case BZ_IO_ERROR: {
+ fprintf(stderr, "ERROR: There is an error writing the compressed data to the bz stream\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ default: {
+ fprintf(stderr, "ERROR: Unknown error with BZ2_bzWrite() (err: %d)\n", bzOutError);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ }
+ }
+ break;
+ }
+ /* compress with gzip */
+ case kGzip: {
+#ifdef __cplusplus
+ zOutStream.next_in = reinterpret_cast<unsigned char *>( retransformBuf );
+ zOutStream.avail_in = static_cast<unsigned int>( nRetransformBuf );
+#else
+ zOutStream.next_in = (unsigned char *) retransformBuf;
+ zOutStream.avail_in = (unsigned int) nRetransformBuf;
+#endif
+ do {
+ zOutStream.avail_out = STARCH_Z_BUFFER_MAX_LENGTH;
+#ifdef __cplusplus
+ zOutStream.next_out = reinterpret_cast<unsigned char *>( zOutBuffer );
+#else
+ zOutStream.next_out = (unsigned char *) zOutBuffer;
+#endif
+ /* zOutError = deflate (&zOutStream, feof(inFp) ? Z_FINISH : Z_NO_FLUSH); */
+ zOutError = deflate (&zOutStream, Z_NO_FLUSH);
+ switch (zOutError) {
+ case Z_MEM_ERROR: {
+ fprintf(stderr, "ERROR: Not enough memory to compress data\n");
+ return STARCHCAT_FATAL_ERROR;
+ }
+ case Z_BUF_ERROR:
+ default:
+ break;
+ }
+ zOutHave = STARCH_Z_BUFFER_MAX_LENGTH - zOutStream.avail_out;
+ t_fileSize += zOutHave;
+ *cumulativeOutputSize += zOutHave;
+ fwrite(zOutBuffer, 1, zOutHave, outFp);
+ fflush(outFp);
+ } while (zOutStream.avail_out == 0);
+ break;
+ }
+ case kUndefined: {
+ fprintf(stderr, "ERROR: Outbound compression type is unknown. Are the parameters corrupt?\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ }
+#ifdef __cplusplus
+ memcpy(retransformBuf, retransformLineBuf, static_cast<size_t>( nRetransformLineBufPos ));
+#else
+ memcpy(retransformBuf, retransformLineBuf, (size_t) nRetransformLineBufPos);
+#endif
+ nRetransformBuf = nRetransformLineBufPos;
+ retransformBuf[nRetransformBuf] = '\0';
+ nRetransformLineBuf = 0;
+ nRetransformLineBufPos = 0;
+ }
+ }
+
+ lastNewlineOffset = zBufIndex;
+
+ t_firstInputToken[0] = '\0';
+ t_secondInputToken[0] = '\0';
+ bufCharIndex = 0;
+
+#ifdef DEBUG
+ if ((zBufIndex + 1) == zInHave) {
+ fprintf(stderr, "\tNEWLINE FOUND AT END OF Z-STREAM BUFFER! zLineBuf: [%s]\n", zLineBuf);
+ }
+#endif
+ }
+
+ else if ((zBufIndex + 1) == zInHave) {
+ /* add to remainder if we're at the end of zInHave */
+ memset(zRemainderBuf, 0, nZRemainderBuf);
+#ifdef __cplusplus
+ nZRemainderBuf = static_cast<size_t>( zInHave ) - lastNewlineOffset - 1;
+#else
+ nZRemainderBuf = (size_t) zInHave - lastNewlineOffset - 1;
+#endif
+ /* ugly hack until I rewrite this from the ground up -- my sincere apologies, seriously */
+ if (*(zOutBuf + lastNewlineOffset) == '\n')
+ memcpy(zRemainderBuf, zOutBuf + lastNewlineOffset + 1, nZRemainderBuf);
+ else
+ memcpy(zRemainderBuf, zOutBuf + lastNewlineOffset, nZRemainderBuf);
+ zRemainderBuf[nZRemainderBuf] = '\0';
+ }
+ zBufIndex++;
+ }
+ } while (zInStream.avail_out == 0);
+ } while (zInError != Z_STREAM_END);
+
+ /* process any remainder */
+ switch (outType) {
+ case kBzip2: {
+#ifdef __cplusplus
+ BZ2_bzWrite(&bzOutError, bzOutFp, retransformBuf, static_cast<int>( nRetransformBuf ));
+#else
+ BZ2_bzWrite(&bzOutError, bzOutFp, retransformBuf, (int) nRetransformBuf);
+#endif
+ if (bzOutError != BZ_OK) {
+ switch (bzOutError) {
+ case BZ_PARAM_ERROR: {
+ fprintf(stderr, "ERROR: Stream is NULL, transformedBuffer is NULL, or currentTransformedBufferLength is negative\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ case BZ_SEQUENCE_ERROR: {
+ fprintf(stderr, "ERROR: Bzip2 streams are out of sequence\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ case BZ_IO_ERROR: {
+ fprintf(stderr, "ERROR: There is an error writing the compressed data to the bz stream\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ default: {
+ fprintf(stderr, "ERROR: Unknown error with BZ2_bzWrite() (err: %d)\n", bzOutError);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ }
+ }
+ break;
+ }
+ case kGzip: {
+#ifdef __cplusplus
+ zOutStream.next_in = reinterpret_cast<unsigned char *>( retransformBuf );
+ zOutStream.avail_in = static_cast<unsigned int>( nRetransformBuf );
+#else
+ zOutStream.next_in = (unsigned char *) retransformBuf;
+ zOutStream.avail_in = (unsigned int) nRetransformBuf;
+#endif
+ do {
+ zOutStream.avail_out = STARCH_Z_BUFFER_MAX_LENGTH;
+#ifdef __cplusplus
+ zOutStream.next_out = reinterpret_cast<unsigned char *>( zOutBuffer );
+#else
+ zOutStream.next_out = (unsigned char *) zOutBuffer;
+#endif
+ zOutError = deflate (&zOutStream, Z_FINISH);
+ switch (zOutError) {
+ case Z_MEM_ERROR: {
+ fprintf(stderr, "ERROR: Not enough memory to compress data\n");
+ return STARCHCAT_FATAL_ERROR;
+ }
+ case Z_BUF_ERROR:
+ default:
+ break;
+ }
+ zOutHave = STARCH_Z_BUFFER_MAX_LENGTH - zOutStream.avail_out;
+ t_fileSize += zOutHave;
+ *cumulativeOutputSize += zOutHave;
+ fwrite(zOutBuffer, 1, zOutHave, outFp);
+ fflush(outFp);
+ } while (zOutStream.avail_out == 0);
+ break;
+ }
+ case kUndefined: {
+ break;
+ }
+ }
+
+ /* cleanup */
+ inflateEnd(&zInStream);
+
+ break;
+ }
+
+ /*
+ Unknown compression type (error)
+ */
+ case kUndefined: {
+ fprintf(stderr, "ERROR: Unknown compression type in stream (is the archive or metadata corrupt?)\n");
+ break;
+ }
+ }
+
+ /* clean up outbound compression stream */
+ switch (outType) {
+ case kBzip2: {
+ BZ2_bzWriteClose(&bzOutError, bzOutFp, STARCH_BZ_ABANDON, &bzOutBytesConsumed, &bzOutBytesWritten);
+ if (bzOutError != BZ_OK) {
+ fprintf(stderr, "ERROR: Bzip2 error after closing write stream: %d\n", bzOutError);
+ switch (bzOutError) {
+ case BZ_SEQUENCE_ERROR: {
+ fprintf(stderr, "ERROR: Bzip2 streams are out of sequence\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ case BZ_IO_ERROR: {
+ fprintf(stderr, "ERROR: There is an error writing the compressed data to the bz stream\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ default: {
+ fprintf(stderr, "ERROR: Unknown error with BZ2_bzWriteClose() (err: %d)\n", bzOutError);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ }
+ }
+ t_fileSize += bzOutBytesWritten;
+ *cumulativeOutputSize += bzOutBytesWritten;
+ bzOutBytesWritten = 0U;
+ break;
+ }
+ case kGzip: {
+ zOutError = deflateEnd(&zOutStream);
+ if (zOutError != Z_OK) {
+ switch (zOutError) {
+ case Z_STREAM_ERROR: {
+ fprintf(stderr, "ERROR: Z-stream state is inconsistent\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ case Z_DATA_ERROR: {
+ fprintf(stderr, "ERROR: Stream was freed prematurely\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ default: {
+ fprintf(stderr, "ERROR: Unknown error with deflateEnd() (err: %d)\n", zOutError);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ }
+ }
+ zOutStream.zalloc = Z_NULL;
+ zOutStream.zfree = Z_NULL;
+ zOutStream.opaque = Z_NULL;
+ break;
+ }
+ case kUndefined: {
+ fprintf(stderr, "ERROR: Undefined compression stream type specified. You shouldn't see this unless there is a catastrophic failure in recompression.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ }
+
+#ifdef DEBUG
+ if ((t_currStart > 5238450) && (t_currStart < 5238520)) {
+ fprintf(stderr, "\n---\nmetadata\n---\n");
+ fprintf(stderr, "\tinChr -> %s\n", inChr);
+ fprintf(stderr, "\toutTagFn -> %s\n", outTagFn);
+ fprintf(stderr, "\tt_fileSize -> %zu\n", t_fileSize);
+#ifdef __cplusplus
+ fprintf(stderr, "\tt_lineIdx -> %" PRIu64 "\n", static_cast<uint64_t>( t_lineIdx ));
+ fprintf(stderr, "\tt_totalNonUniqueBases -> %" PRIu64 "\n", static_cast<uint64_t>( t_totalNonUniqueBases ));
+ fprintf(stderr, "\tt_totalUniqueBases -> %" PRIu64 "\n", static_cast<uint64_t>( t_totalUniqueBases ));
+#else
+ fprintf(stderr, "\tt_lineIdx -> %" PRIu64 "\n", (uint64_t) t_lineIdx);
+ fprintf(stderr, "\tt_totalNonUniqueBases -> %" PRIu64 "\n", (uint64_t) t_totalNonUniqueBases);
+ fprintf(stderr, "\tt_totalUniqueBases -> %" PRIu64 "\n", (uint64_t) t_totalUniqueBases);
+#endif
+ }
+#endif
+
+ /* update the metadata */
+ if (!*outMd)
+#ifdef __cplusplus
+ *outMd = STARCH_createMetadata( const_cast<char *>( inChr ),
+#else
+ *outMd = STARCH_createMetadata( (char *) inChr,
+#endif
+ outTagFn,
+ t_fileSize,
+ t_lineIdx,
+ t_totalNonUniqueBases,
+ t_totalUniqueBases,
+ t_duplicateElementExists,
+ t_nestedElementExists );
+ else
+ *outMd = STARCH_addMetadata( *outMd,
+#ifdef __cplusplus
+ const_cast<char *>( inChr ),
+#else
+ (char *) inChr,
+#endif
+ outTagFn,
+ t_fileSize,
+ t_lineIdx,
+ t_totalNonUniqueBases,
+ t_totalUniqueBases,
+ t_duplicateElementExists,
+ t_nestedElementExists );
+
+ /* cleanup */
+ if (outTagFn)
+ free(outTagFn), outTagFn = NULL;
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT_rewriteInputRecordToOutput (Metadata **outMd, const char *outTag, const CompressionType outType, const char *inChr, const MetadataRecord *inRec)
+{
+ /*
+ This function extracts a single record (chromosome) of
+ data to a temporary file. The temporary file is compressed
+ with the new output type and added to the output metadata.
+ */
+
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCHCAT_rewriteInputRecordToOutput() ---\n");
+#endif
+ FILE *inFp = inRec->fp;
+ Metadata *inMd = inRec->metadata;
+ CompressionType inType = inRec->type;
+ char *uncomprOutFn = NULL;
+ char *comprOutFn = NULL;
+ FILE *uncomprOutFnPtr = NULL;
+ FILE *transformFnPtr = NULL;
+ char *note = NULL;
+
+ /* extract input record to uncompressed file */
+#ifdef __cplusplus
+ uncomprOutFn = static_cast<char *>( malloc(strlen(inChr) + strlen(outTag) + 16) );
+#else
+ uncomprOutFn = malloc(strlen(inChr) + strlen(outTag) + 16);
+#endif
+ if (!uncomprOutFn) {
+ fprintf(stderr, "ERROR: Could not allocate space for uncompressed output filename in input rewrite routine.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ sprintf(uncomprOutFn, "%s.%s.uncompressed", inChr, outTag);
+#ifdef DEBUG
+ fprintf(stderr, "\t\t\t%s\n", uncomprOutFn);
+#endif
+ uncomprOutFnPtr = STARCH_fopen(uncomprOutFn, "wb");
+ if (!uncomprOutFnPtr) {
+ fprintf(stderr, "ERROR: Could not open an uncompressed output file handle to %s\n", uncomprOutFn);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+ switch (inType) {
+ case kBzip2: {
+#ifdef __cplusplus
+ if ( UNSTARCH_extractDataWithBzip2( &inFp,
+ uncomprOutFnPtr,
+ reinterpret_cast<const char *>( inChr ),
+ reinterpret_cast<const Metadata *>( inMd ),
+ static_cast<const uint64_t>( inRec->mdOffset ),
+ static_cast<const Boolean>( inRec->hFlag )) != 0 ) {
+#else
+ if ( UNSTARCH_extractDataWithBzip2( &inFp,
+ uncomprOutFnPtr,
+ (const char *) inChr,
+ (const Metadata *) inMd,
+ (const uint64_t) inRec->mdOffset,
+ (const Boolean) inRec->hFlag) != 0 ) {
+#endif
+ fprintf(stderr, "ERROR: Could not extract to uncompressed output file (bzip2).\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ break;
+ }
+ case kGzip: {
+#ifdef __cplusplus
+ if ( UNSTARCH_extractDataWithGzip( &inFp,
+ uncomprOutFnPtr,
+ reinterpret_cast<const char *>( inChr ),
+ reinterpret_cast<const Metadata *>( inMd ),
+ static_cast<const uint64_t>( inRec->mdOffset ),
+ static_cast<const Boolean>( inRec->hFlag )) != 0 ) {
+#else
+ if ( UNSTARCH_extractDataWithGzip( &inFp,
+ uncomprOutFnPtr,
+ (const char *) inChr,
+ (const Metadata *) inMd,
+ (const uint64_t) inRec->mdOffset,
+ (const Boolean) inRec->hFlag) != 0 ) {
+#endif
+ fprintf(stderr, "ERROR: Could not extract to uncompressed output file (gzip).\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ break;
+ }
+ case kUndefined: {
+ fprintf(stderr, "ERROR: Cannot extract to uncompressed output file with unsupported compression type.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ }
+
+ /* cleanup */
+ fclose(uncomprOutFnPtr);
+ uncomprOutFnPtr = NULL;
+
+ /* transform and recompress extracted, headerless data with new output type */
+ transformFnPtr = STARCH_fopen(uncomprOutFn, "rb");
+ if (!transformFnPtr) {
+ fprintf(stderr, "ERROR: Could not open a transformation output file handle to %s\n", uncomprOutFn);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+#ifdef __cplusplus
+ if ( STARCH_transformHeaderlessInput( &(*outMd),
+ reinterpret_cast<const FILE *>( transformFnPtr ),
+ static_cast<const CompressionType>( outType ),
+ reinterpret_cast<const char *>( outTag ),
+ static_cast<const Boolean>( kStarchFinalizeTransformFalse ),
+ reinterpret_cast<const char *>( note ) ) != 0 ) {
+ fprintf(stderr, "ERROR: Could not transform output file\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+#else
+ if ( STARCH_transformHeaderlessInput( &(*outMd),
+ (const FILE *) transformFnPtr,
+ (const CompressionType) outType,
+ (const char *) outTag,
+ (const Boolean) kStarchFinalizeTransformFalse,
+ (const char *) note ) != 0 ) {
+ fprintf(stderr, "ERROR: Could not transform output file\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+#endif
+
+ /* cleanup */
+ fclose(transformFnPtr);
+ transformFnPtr = NULL;
+
+ /* delete uncompressed/untransformed file */
+ if ( remove(uncomprOutFn) != 0 ) {
+ fprintf(stderr, "ERROR: Cannot remove uncompressed output file %s\n", uncomprOutFn);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+ /*
+ Because we used the STARCH helper routines to transform the BED
+ data, those routines updated the metadata for us. So we don't need
+ to do any extra work at this step.
+ */
+
+ /* cleanup */
+ if (uncomprOutFn)
+ free(uncomprOutFn);
+ if (comprOutFn)
+ free(comprOutFn);
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT2_parseCoordinatesFromBedLine(const char *lineBuf, const size_t inRecIdx, SignedCoordType *starts, SignedCoordType *stops)
+{
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCHCAT2_parseCoordinatesFromBedLine() ---\n");
+ fprintf (stderr, "\tlineBuf -> %s\n", lineBuf);
+ fprintf (stderr, "\tinRecIdx -> %zu\n", inRecIdx);
+ fprintf (stderr, "\tstarts[inRecIdx] -> %" PRId64 "\n", starts[inRecIdx]);
+ fprintf (stderr, "\tstops[inRecIdx] -> %" PRId64 "\n", stops[inRecIdx]);
+#endif
+ static const char tab = '\t';
+ static const char newline = '\n';
+ char lineBufChar;
+ size_t lineBufIdx;
+ unsigned int fieldIdx = 0U;
+ char fieldBuf[MAX_DEC_INTEGERS + 1];
+ unsigned int fieldBufIdx = 0U;
+
+ for (lineBufIdx = 0; lineBufIdx < strlen(lineBuf); lineBufIdx++) {
+ lineBufChar = lineBuf[lineBufIdx];
+ if ((lineBufChar != tab) && (lineBufChar != newline))
+ fieldBuf[fieldBufIdx++] = lineBufChar;
+ else {
+ fieldBuf[fieldBufIdx] = '\0';
+#ifdef __cplusplus
+ switch (fieldIdx) {
+ case TOKEN_START_FIELD_INDEX: {
+ starts[inRecIdx] = static_cast<SignedCoordType>( strtoll(reinterpret_cast<const char *>( fieldBuf ), NULL, STARCH_RADIX) );
+ break;
+ }
+ case TOKEN_STOP_FIELD_INDEX: {
+ stops[inRecIdx] = static_cast<SignedCoordType>( strtoll(reinterpret_cast<const char *>( fieldBuf ), NULL, STARCH_RADIX) );
+ break;
+ }
+ default:
+ break;
+ }
+#else
+ switch (fieldIdx) {
+ case TOKEN_START_FIELD_INDEX: {
+ starts[inRecIdx] = (SignedCoordType) strtoll((const char *)fieldBuf, NULL, STARCH_RADIX);
+ break;
+ }
+ case TOKEN_STOP_FIELD_INDEX: {
+ stops[inRecIdx] = (SignedCoordType) strtoll((const char *)fieldBuf, NULL, STARCH_RADIX);
+ break;
+ }
+ default:
+ break;
+ }
+#endif
+ fieldBufIdx = 0U;
+ fieldIdx++;
+ }
+ if (fieldIdx == 4)
+ break;
+ }
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT2_identifyLowestBedElement (const Boolean *eobFlags, const SignedCoordType *starts, const SignedCoordType *stops, const size_t numRecords, size_t *lowestIdx)
+{
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCHCAT2_identifyLowestBedElement() ---\n");
+#endif
+ size_t recIdx;
+
+#ifdef __cplusplus
+ SignedCoordType currentStart = std::numeric_limits<int64_t>::min();
+ SignedCoordType currentStop = std::numeric_limits<int64_t>::min();
+ SignedCoordType lowestStart = std::numeric_limits<int64_t>::max();
+ SignedCoordType lowestStop = std::numeric_limits<int64_t>::max();
+#else
+ SignedCoordType currentStart = INT64_MIN;
+ SignedCoordType currentStop = INT64_MIN;
+ SignedCoordType lowestStart = INT64_MAX;
+ SignedCoordType lowestStop = INT64_MAX;
+#endif
+ Boolean checkStopFlag = kStarchFalse;
+
+#ifdef __cplusplus
+ *lowestIdx = static_cast<size_t>( -1 );
+#else
+ *lowestIdx = (size_t) -1;
+#endif
+
+ for (recIdx = 0U; recIdx < numRecords; recIdx++) {
+ if (eobFlags[recIdx] == kStarchFalse) {
+ currentStart = starts[recIdx];
+ currentStop = stops[recIdx];
+#ifdef DEBUG
+ fprintf(stderr, "\trecIdx -> %zu \n", recIdx);
+ fprintf(stderr, "\tstarts[recIdx] -> %" PRId64 " \n", currentStart);
+ fprintf(stderr, "\tstops[recIdx] -> %" PRId64 " \n", currentStop);
+ fprintf(stderr, "\tlowestStart -> %" PRId64 "\n", lowestStart);
+#endif
+ if (currentStart < lowestStart) {
+ lowestStart = currentStart;
+ *lowestIdx = recIdx;
+ }
+ else if (currentStart == lowestStart) {
+ checkStopFlag = kStarchTrue;
+ }
+ }
+ }
+
+ /* if the start coordinates match, we decide upon comparison of the stop coordinates */
+ if (checkStopFlag == kStarchTrue) {
+ for (recIdx = 0U; recIdx < numRecords; recIdx++) {
+ currentStart = starts[recIdx];
+ currentStop = stops[recIdx];
+ if (eobFlags[recIdx] == kStarchFalse) {
+ if ((currentStart == lowestStart) && (currentStop < lowestStop)) {
+ lowestStop = currentStop;
+ *lowestIdx = recIdx;
+ }
+ }
+ }
+ }
+
+#ifdef DEBUG
+ fprintf(stderr, "\tLE STATE *lowestIdx -> %zu\n", *lowestIdx);
+#endif
+
+#ifdef __cplusplus
+ if (*lowestIdx == static_cast<size_t>( -1 ))
+ return STARCHCAT_EXIT_FAILURE;
+#else
+ if (*lowestIdx == (size_t) -1)
+ return STARCHCAT_EXIT_FAILURE;
+#endif
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT2_pullNextBedElement (const size_t recIdx, const char **inLinesBuf, const LineCountType *nInLinesBuf, char **outLineBuf, uint64_t **inBufNewlineOffsets)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCHCAT2_pullNextBedElement() ---\n");
+ fprintf(stderr, "\trecIdx -> %zu\n", recIdx);
+#endif
+ const char *inLinesBufPtr;
+ uint64_t inLinesBufIdx;
+ char charBuf;
+ size_t charBufIdx;
+ static const char newline = '\n';
+ char bedLineBuf[TOKENS_MAX_LENGTH + 1] = {0}; /* zeroing the stack array ensures we don't copy extra junk between iterations */
+
+ if (!inLinesBuf) {
+ fprintf(stderr, "ERROR: no inLinesBuf in STARCHCAT2_pullNextBedElement()\n");
+ exit(-1);
+ }
+ inLinesBufPtr = inLinesBuf[recIdx];
+
+ if (!inBufNewlineOffsets) {
+ fprintf(stderr, "ERROR: no inBufNewlineOffsets in STARCHCAT2_pullNextBedElement()\n");
+ exit(-1);
+ }
+ inLinesBufIdx = (*inBufNewlineOffsets)[recIdx];
+
+ if (inLinesBufIdx >= nInLinesBuf[recIdx])
+ return STARCHCAT_EXIT_FAILURE;
+
+ charBuf = inLinesBufPtr[inLinesBufIdx];
+ charBufIdx = 0U;
+
+ while (charBuf != newline) {
+ bedLineBuf[charBufIdx++] = inLinesBufPtr[inLinesBufIdx];
+ charBuf = inLinesBufPtr[inLinesBufIdx++];
+ }
+ bedLineBuf[inLinesBufIdx] = '\0';
+
+#ifdef DEBUG
+ fprintf(stderr, "\tCOPIED %zu characters from inLinesBufPtr: [%s] to bedLineBuf: [%s]\n", charBufIdx, inLinesBufPtr, bedLineBuf);
+#endif
+
+ (*inBufNewlineOffsets)[recIdx] = inLinesBufIdx;
+ memcpy(outLineBuf[recIdx], bedLineBuf, charBufIdx + 1);
+
+#ifdef DEBUG
+ fprintf(stderr, "\toutput from STARCHCAT2_pullNextBedElement() is:\n[%s]\n---\n", bedLineBuf);
+#endif
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT2_mergeInputRecordsToOutput (const char *inChr, Metadata **outMd, const char *outTag, const CompressionType outType, const ChromosomeSummary *summary, size_t *cumulativeOutputSize)
+{
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCHCAT2_mergeInputRecordsToOutput() ---\n");
+#endif
+
+ /*
+ 1. Fill extractionBuffers for starch files 1..N
+ 2. Extract one BED line from each extractionBuffer
+ 3. Test which is lowest and put that into compressionBuffer
+ 4. Re-extract BED line from extractionBuffer with lowest element
+ a. If the extractionBuffer is empty, attempt to refill it from starch file X
+ b. If starch file X has no more data, mark the starch file as off-line
+ 5. Repeat steps 3 and 4 until the compressionBuffer is full or all starch files 1..N are off-line
+ a. If the compressionBuffer is full: transform, compress, empty. Go to steps 3 and 4.
+ b. If all starch files are off-line, do the same, but quit afterwards -- we're done.
+ */
+
+ size_t inRecIdx = 0U;
+ char **extractionBuffers = NULL;
+ size_t *nExtractionBuffers = NULL;
+ int *extractionBufferOffsets = NULL;
+ char **extractionRemainderBufs = NULL;
+ size_t *nExtractionRemainderBufs = NULL;
+ char *compressionBuffer = NULL;
+ LineCountType compressionLineCount = 0;
+ LineCountType *extractedLineCounts = NULL;
+ char **extractedElements = NULL;
+ SignedCoordType *starts = NULL;
+ SignedCoordType *stops = NULL;
+ size_t lowestStartElementIdx = 0U;
+ Boolean *eobFlags = NULL;
+ Boolean *eofFlags = NULL;
+ Boolean allEOF = kStarchFalse;
+ FILE *inFp = NULL;
+ FILE *outFp = stdout;
+ BZFILE *bzOutFp = NULL;
+ FILE **zInFps = NULL;
+ z_stream zOutStream;
+ BZFILE **bzInFps = NULL;
+ z_stream *zInStreams = NULL;
+ CompressionType inType = kUndefined;
+ uint64_t bzOutBytesConsumed = 0;
+ uint64_t bzOutBytesWritten = 0;
+ uint64_t finalStreamSize = 0;
+ LineCountType finalLineCount = 0;
+ BaseCountType finalTotalNonUniqueBases = 0;
+ BaseCountType finalTotalUniqueBases = 0;
+ Boolean finalDuplicateElementExists = STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE;
+ Boolean finalNestedElementExists = STARCH_DEFAULT_NESTED_ELEMENT_FLAG_VALUE;
+ char *finalOutTagFn = NULL;
+ MetadataRecord *inRecord = NULL;
+ size_t *nBzReads = NULL;
+ size_t *nZReads = NULL;
+ TransformState **transformStates = NULL;
+ char *retransformedOutputBuffer = NULL;
+ TransformState *outputRetransformState = NULL;
+ Boolean flushZStreamFlag = kStarchFalse;
+ size_t nCompressionBuffer = STARCHCAT_RETRANSFORM_LINE_COUNT_MAX * TOKENS_MAX_LENGTH + 1;
+ int lowestElementRes = STARCHCAT_EXIT_SUCCESS;
+
+ /* setup */
+#ifdef __cplusplus
+ extractionBuffers = static_cast<char **>( malloc(sizeof(char *) * summary->numRecords) );
+ nExtractionBuffers = static_cast<size_t *>( malloc(sizeof(size_t) * summary->numRecords) );
+ extractionBufferOffsets = static_cast<int *>( malloc(sizeof(int) * summary->numRecords) );
+ compressionBuffer = static_cast<char *>( malloc(sizeof(char) * nCompressionBuffer) );
+ extractedLineCounts = static_cast<LineCountType *>( malloc(sizeof(LineCountType) * summary->numRecords) );
+ extractedElements = static_cast<char **>( malloc(sizeof(char *) * summary->numRecords) );
+ eobFlags = static_cast<Boolean *>( malloc(sizeof(Boolean) * summary->numRecords) );
+ eofFlags = static_cast<Boolean *>( malloc(sizeof(Boolean) * summary->numRecords) );
+ starts = static_cast<SignedCoordType *>( malloc(sizeof(SignedCoordType) * summary->numRecords) );
+ stops = static_cast<SignedCoordType *>( malloc(sizeof(SignedCoordType) * summary->numRecords) );
+ transformStates = static_cast<TransformState **>( malloc(sizeof(TransformState *) * summary->numRecords) );
+ extractionRemainderBufs = static_cast<char **>( malloc(sizeof(char *) * summary->numRecords) );
+ nExtractionRemainderBufs = static_cast<size_t *>( malloc(sizeof(size_t) * summary->numRecords) );
+ bzInFps = static_cast<BZFILE **>( malloc(sizeof(BZFILE *) * summary->numRecords) );
+ nBzReads = static_cast<size_t *>( malloc(sizeof(size_t) * summary->numRecords) );
+ zInFps = static_cast<FILE **>( malloc(sizeof(FILE *) * summary->numRecords) );
+ zInStreams = static_cast<z_stream *>( malloc(sizeof(z_stream) * summary->numRecords) );
+ nZReads = static_cast<size_t *>( malloc(sizeof(size_t) * summary->numRecords) );
+ retransformedOutputBuffer = static_cast<char *>( malloc(sizeof(char) * STARCHCAT_RETRANSFORM_BUFFER_SIZE + 1) );
+ outputRetransformState = static_cast<TransformState *>( malloc(sizeof(TransformState)) );
+#else
+ extractionBuffers = malloc(sizeof(char *) * summary->numRecords);
+ nExtractionBuffers = malloc(sizeof(size_t) * summary->numRecords);
+ extractionBufferOffsets = malloc(sizeof(int) * summary->numRecords);
+ compressionBuffer = malloc(sizeof(char) * nCompressionBuffer);
+ extractedLineCounts = malloc(sizeof(LineCountType) * summary->numRecords);
+ extractedElements = malloc(sizeof(char *) * summary->numRecords);
+ eobFlags = malloc(sizeof(Boolean) * summary->numRecords);
+ eofFlags = malloc(sizeof(Boolean) * summary->numRecords);
+ starts = malloc(sizeof(SignedCoordType) * summary->numRecords);
+ stops = malloc(sizeof(SignedCoordType) * summary->numRecords);
+ transformStates = malloc(sizeof(TransformState *) * summary->numRecords);
+ extractionRemainderBufs = malloc(sizeof(char *) * summary->numRecords);
+ nExtractionRemainderBufs = malloc(sizeof(size_t) * summary->numRecords);
+ bzInFps = malloc(sizeof(BZFILE *) * summary->numRecords);
+ nBzReads = malloc(sizeof(size_t) * summary->numRecords);
+ zInFps = malloc(sizeof(FILE *) * summary->numRecords);
+ zInStreams = malloc(sizeof(z_stream) * summary->numRecords);
+ nZReads = malloc(sizeof(size_t) * summary->numRecords);
+ retransformedOutputBuffer = malloc(sizeof(char) * STARCHCAT_RETRANSFORM_BUFFER_SIZE + 1);
+ outputRetransformState = malloc(sizeof(TransformState));
+#endif
+
+ memset(outputRetransformState->r_chromosome, 0, TOKEN_CHR_MAX_LENGTH);
+
+ /* test if we allocated memory - TO-DO */
+ if (!compressionBuffer) {
+ fprintf(stderr, "ERROR: Could not allocate space for compression buffer!\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+ /* initialize output stream (stdout) */
+ switch (outType) {
+ case kBzip2: {
+ if (STARCHCAT2_setupBzip2OutputStream(&bzOutFp, outFp) != STARCHCAT_EXIT_SUCCESS) {
+ fprintf(stderr, "ERROR: Could not set up bzip2 output stream!\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ break;
+ }
+ case kGzip: {
+ if (STARCHCAT2_setupGzipOutputStream(&zOutStream) != STARCHCAT_EXIT_SUCCESS) {
+ fprintf(stderr, "ERROR: Could not set up gzip output stream!\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ break;
+ }
+ case kUndefined: {
+ fprintf(stderr, "ERROR: Unknown compression type specified!\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ }
+
+ /* 1 -- initialize and fill input (extraction) buffers on first pass */
+ for (inRecIdx = 0U; inRecIdx < summary->numRecords; inRecIdx++)
+ {
+ eofFlags[inRecIdx] = kStarchFalse;
+ eobFlags[inRecIdx] = kStarchFalse;
+
+ if (STARCHCAT2_testSummaryForChromosomeExistence(inChr, summary, inRecIdx) == STARCHCAT_EXIT_FAILURE) {
+ eobFlags[inRecIdx] = kStarchTrue;
+ eofFlags[inRecIdx] = kStarchTrue;
+ continue;
+ }
+
+ if (STARCHCAT2_setupInitialFileOffsets(inChr, summary, inRecIdx) != STARCHCAT_EXIT_SUCCESS) {
+ fprintf(stderr, "ERROR: Could not set up file offsets at chromosome [%s]!\n", inChr);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+ inRecord = *(summary->records) + inRecIdx;
+ inType = inRecord->type; /* get record type */
+ inFp = inRecord->fp;
+
+ if (inType == kGzip)
+ zInFps[inRecIdx] = inFp;
+
+ nExtractionBuffers[inRecIdx] = STARCHCAT_RETRANSFORM_LINE_COUNT_MAX * TOKENS_MAX_LENGTH;
+ extractedLineCounts[inRecIdx] = 0;
+#ifdef __cplusplus
+ extractionBuffers[inRecIdx] = static_cast<char *>( malloc(nExtractionBuffers[inRecIdx] + 1) ); /* max lines per record, essentially */
+#else
+ extractionBuffers[inRecIdx] = malloc(nExtractionBuffers[inRecIdx] + 1); /* max lines per record, essentially */
+#endif
+ if (!extractionBuffers[inRecIdx]) {
+ fprintf(stderr, "ERROR: Could not allocate space for extraction buffer at index [%zu]!\n", inRecIdx);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+#ifdef __cplusplus
+ transformStates[inRecIdx] = static_cast<TransformState *>( malloc(sizeof(TransformState)) );
+#else
+ transformStates[inRecIdx] = malloc(sizeof(TransformState));
+#endif
+ if (!transformStates[inRecIdx]) {
+ fprintf(stderr, "ERROR: Could not allocate space for transform state instance at index [%zu]!\n", inRecIdx);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ transformStates[inRecIdx]->t_lineIdx = 0;
+ transformStates[inRecIdx]->t_start = 0;
+ transformStates[inRecIdx]->t_pLength = 0;
+ transformStates[inRecIdx]->t_lastEnd = 0;
+ transformStates[inRecIdx]->t_lcDiff = 0;
+ transformStates[inRecIdx]->t_lastPosition = 0;
+ strncpy(transformStates[inRecIdx]->t_currentChromosome, inChr, strlen(inChr) + 1);
+ transformStates[inRecIdx]->t_currentChromosomeLength = TOKEN_CHR_MAX_LENGTH + 1;
+ memset(transformStates[inRecIdx]->t_firstInputToken, 0, UNSTARCH_FIRST_TOKEN_MAX_LENGTH);
+ memset(transformStates[inRecIdx]->t_secondInputToken, 0, UNSTARCH_SECOND_TOKEN_MAX_LENGTH);
+ memset(transformStates[inRecIdx]->t_currentRemainder, 0, UNSTARCH_SECOND_TOKEN_MAX_LENGTH);
+ transformStates[inRecIdx]->t_currentRemainderLength = UNSTARCH_SECOND_TOKEN_MAX_LENGTH + 1;
+ transformStates[inRecIdx]->t_nExtractionBuffer = 0;
+ transformStates[inRecIdx]->t_nExtractionBufferPos = 0;
+#ifdef __cplusplus
+ extractionRemainderBufs[inRecIdx] = static_cast<char *>( malloc(TOKENS_MAX_LENGTH + 1) );
+#else
+ extractionRemainderBufs[inRecIdx] = malloc(TOKENS_MAX_LENGTH + 1);
+#endif
+ if (!extractionRemainderBufs[inRecIdx]) {
+ fprintf(stderr, "ERROR: Could not allocate space for extraction buffer remainder at index [%zu]!\n", inRecIdx);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ nExtractionRemainderBufs[inRecIdx] = 0;
+
+ switch (inType) {
+ case kBzip2: {
+ nBzReads[inRecIdx] = 0;
+#ifdef __cplusplus
+ if (STARCHCAT2_setupBzip2InputStream(static_cast<const size_t>( inRecIdx ),
+ summary,
+ &bzInFps[inRecIdx]) != STARCHCAT_EXIT_SUCCESS) {
+#else
+ if (STARCHCAT2_setupBzip2InputStream((const size_t) inRecIdx,
+ summary,
+ &bzInFps[inRecIdx]) != STARCHCAT_EXIT_SUCCESS) {
+#endif
+ fprintf(stderr, "ERROR: Could not set up bzip2 input stream at index [%zu]!\n", inRecIdx);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ if (STARCHCAT2_fillExtractionBufferFromBzip2Stream(&eofFlags[inRecIdx],
+#ifdef __cplusplus
+ const_cast<char *>( inChr ),
+#else
+ (char *) inChr,
+#endif
+ extractionBuffers[inRecIdx],
+ &nExtractionBuffers[inRecIdx],
+ &bzInFps[inRecIdx],
+ &nBzReads[inRecIdx],
+ extractionRemainderBufs[inRecIdx],
+ &nExtractionRemainderBufs[inRecIdx],
+ transformStates[inRecIdx]) != STARCHCAT_EXIT_SUCCESS) {
+ fprintf(stderr, "ERROR: Could not extract data from bzip2 input stream at index [%zu]!\n", inRecIdx);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ break;
+ }
+ case kGzip: {
+ nZReads[inRecIdx] = 0;
+ if (STARCHCAT2_setupGzipInputStream(&zInStreams[inRecIdx]) != STARCHCAT_EXIT_SUCCESS) {
+ fprintf(stderr, "ERROR: Could not set up gzip input stream at index [%zu]!\n", inRecIdx);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ if (STARCHCAT2_fillExtractionBufferFromGzipStream(&eofFlags[inRecIdx],
+ &zInFps[inRecIdx],
+#ifdef __cplusplus
+ const_cast<char *>( inChr ),
+#else
+ (char *) inChr,
+#endif
+ extractionBuffers[inRecIdx],
+ &nExtractionBuffers[inRecIdx],
+ &zInStreams[inRecIdx],
+ &nZReads[inRecIdx],
+ &extractionRemainderBufs[inRecIdx],
+ &nExtractionRemainderBufs[inRecIdx],
+ transformStates[inRecIdx]) != STARCHCAT_EXIT_SUCCESS) {
+ fprintf(stderr, "ERROR: Could not extract data from gzip input stream at index [%zu]!\n", inRecIdx);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ break;
+ }
+ case kUndefined: {
+ fprintf(stderr, "ERROR: Unknown compression type specified in input stream at index [%zu]!\n", inRecIdx);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ }
+ extractionBufferOffsets[inRecIdx] = 0; /* point these guys to the first element */
+ extractedLineCounts[inRecIdx] = transformStates[inRecIdx]->t_lineIdx;
+#ifdef __cplusplus
+ extractedElements[inRecIdx] = static_cast<char *>( malloc(TOKENS_MAX_LENGTH + 1) );
+#else
+ extractedElements[inRecIdx] = malloc(TOKENS_MAX_LENGTH + 1);
+#endif
+ if (!extractedElements[inRecIdx]) {
+ fprintf(stderr, "ERROR: Could not allocate memory for extracted element buffer!\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+ /* eobFlags[inRecIdx] = kStarchFalse; */
+ STARCHCAT2_extractBedLine(&eobFlags[inRecIdx],
+ extractionBuffers[inRecIdx],
+ &extractionBufferOffsets[inRecIdx],
+ &extractedElements[inRecIdx]);
+ extractedLineCounts[inRecIdx]--;
+
+ /* memset(outputRetransformState->r_chromosome, 0, TOKEN_CHR_MAX_LENGTH); */
+
+ memset(outputRetransformState->r_remainder, 0, UNSTARCH_SECOND_TOKEN_MAX_LENGTH);
+ outputRetransformState->r_start = 0;
+ outputRetransformState->r_stop = 0;
+ outputRetransformState->r_pStart = 0;
+ outputRetransformState->r_pStop = 0;
+ outputRetransformState->r_coordDiff = 0;
+ outputRetransformState->r_lcDiff = 0;
+ outputRetransformState->r_lastPosition = 0;
+ outputRetransformState->r_totalNonUniqueBases = 0;
+ outputRetransformState->r_totalUniqueBases = 0;
+ outputRetransformState->r_duplicateElementExists = STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE;
+ outputRetransformState->r_nestedElementExists = STARCH_DEFAULT_NESTED_ELEMENT_FLAG_VALUE;
+ outputRetransformState->r_previousStop = 0;
+#ifdef __cplusplus
+ outputRetransformState->r_nRetransBuf = static_cast<size_t>( 0 );
+#else
+ outputRetransformState->r_nRetransBuf = (size_t) 0;
+#endif
+
+ compressionBuffer[0] = '\0';
+
+ starts[inRecIdx] = 0;
+ stops[inRecIdx] = 0;
+ }
+
+ /* merge */
+ do {
+ /* first, check if all extraction buffers are marked EOB or EOF */
+ allEOF = kStarchTrue;
+ for (inRecIdx = 0U; inRecIdx < summary->numRecords; inRecIdx++) {
+ if ((eobFlags[inRecIdx] == kStarchFalse) || (eofFlags[inRecIdx] == kStarchFalse)) {
+ allEOF = kStarchFalse;
+ continue;
+ }
+ }
+
+ /* 2, 3 -- parse coordinates for each record's current bed element (this gets us the start and stop coords) */
+ for (inRecIdx = 0U; inRecIdx < summary->numRecords; inRecIdx++) {
+#ifdef DEBUG
+ fprintf(stderr, "inRecIdx -> %zu\teobFlags[inRecIdx] -> %d\teofFlags[inRecIdx] -> %d\n", inRecIdx, eobFlags[inRecIdx], eofFlags[inRecIdx]);
+#endif
+ //if ((eobFlags[inRecIdx] == kStarchFalse) && (eofFlags[inRecIdx] == kStarchFalse))
+ if (eobFlags[inRecIdx] == kStarchFalse)
+#ifdef __cplusplus
+ STARCHCAT2_parseCoordinatesFromBedLineV2( &eobFlags[inRecIdx],
+ reinterpret_cast<const char *>( extractedElements[inRecIdx] ),
+ &starts[inRecIdx],
+ &stops[inRecIdx]);
+#else
+ STARCHCAT2_parseCoordinatesFromBedLineV2( &eobFlags[inRecIdx],
+ (const char *) extractedElements[inRecIdx],
+ &starts[inRecIdx],
+ &stops[inRecIdx]);
+#endif
+ }
+
+ /* identify the lowest element, put it into the compression buffer for later processing, and refill from the input stream, if needed */
+#ifdef __cplusplus
+ lowestElementRes = STARCHCAT2_identifyLowestBedElement( reinterpret_cast<const Boolean *>( eobFlags ),
+ reinterpret_cast<const SignedCoordType *>( starts ),
+ reinterpret_cast<const SignedCoordType *>( stops ),
+ static_cast<const size_t>( summary->numRecords ),
+ &lowestStartElementIdx);
+#else
+ lowestElementRes = STARCHCAT2_identifyLowestBedElement( (const Boolean *) eobFlags,
+ (const SignedCoordType *) starts,
+ (const SignedCoordType *) stops,
+ (const size_t) summary->numRecords,
+ &lowestStartElementIdx);
+#endif
+ if ((eobFlags) && (starts) && (stops) && (lowestElementRes == STARCHCAT_EXIT_SUCCESS)) {
+#ifdef __cplusplus
+ STARCHCAT2_addLowestBedElementToCompressionBuffer( compressionBuffer,
+ static_cast<const char *>( extractedElements[lowestStartElementIdx] ),
+ &compressionLineCount);
+#else
+ STARCHCAT2_addLowestBedElementToCompressionBuffer( compressionBuffer,
+ (const char *) extractedElements[lowestStartElementIdx],
+ &compressionLineCount);
+#endif
+
+ /* 4 -- extract lowest element to extracted elements buffer */
+ STARCHCAT2_extractBedLine( &eobFlags[lowestStartElementIdx],
+ extractionBuffers[lowestStartElementIdx],
+ &extractionBufferOffsets[lowestStartElementIdx],
+ &extractedElements[lowestStartElementIdx]);
+ extractedLineCounts[lowestStartElementIdx]--;
+
+ /*
+ if we extract a bed line and end up at the end of the extraction
+ buffer, we try to read in a fresh extraction buffer
+ */
+ if ((eobFlags[lowestStartElementIdx] == kStarchTrue) && (eofFlags[lowestStartElementIdx] == kStarchFalse))
+ {
+ eobFlags[lowestStartElementIdx] = kStarchFalse;
+ inRecord = *(summary->records) + lowestStartElementIdx;
+ inType = inRecord->type;
+ inFp = inRecord->fp;
+
+ nExtractionBuffers[lowestStartElementIdx] = STARCHCAT_RETRANSFORM_LINE_COUNT_MAX * TOKENS_MAX_LENGTH;
+ memset(extractionBuffers[lowestStartElementIdx], 0, nExtractionBuffers[lowestStartElementIdx]);
+ memset(transformStates[lowestStartElementIdx]->t_firstInputToken, 0, UNSTARCH_FIRST_TOKEN_MAX_LENGTH);
+ memset(transformStates[lowestStartElementIdx]->t_secondInputToken, 0, UNSTARCH_SECOND_TOKEN_MAX_LENGTH);
+ memset(transformStates[lowestStartElementIdx]->t_currentRemainder, 0, UNSTARCH_SECOND_TOKEN_MAX_LENGTH);
+
+ switch (inType) {
+ case kBzip2: {
+ if (STARCHCAT2_fillExtractionBufferFromBzip2Stream(&eofFlags[lowestStartElementIdx],
+#ifdef __cplusplus
+ const_cast<char *>( inChr ),
+#else
+ (char *) inChr,
+#endif
+ extractionBuffers[lowestStartElementIdx],
+ &nExtractionBuffers[lowestStartElementIdx],
+ &bzInFps[lowestStartElementIdx],
+ &nBzReads[lowestStartElementIdx],
+ extractionRemainderBufs[lowestStartElementIdx],
+ &nExtractionRemainderBufs[lowestStartElementIdx],
+ transformStates[lowestStartElementIdx]) != STARCHCAT_EXIT_SUCCESS) {
+ fprintf(stderr, "ERROR: Could not extract data from bzip2 input stream at index [%zu]!\n", lowestStartElementIdx);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ break;
+ }
+ case kGzip: {
+ if (STARCHCAT2_fillExtractionBufferFromGzipStream(&eofFlags[lowestStartElementIdx],
+ &zInFps[lowestStartElementIdx],
+#ifdef __cplusplus
+ const_cast<char *>( inChr ),
+#else
+ (char *) inChr,
+#endif
+ extractionBuffers[lowestStartElementIdx],
+ &nExtractionBuffers[lowestStartElementIdx],
+ &zInStreams[lowestStartElementIdx],
+ &nZReads[lowestStartElementIdx],
+ &extractionRemainderBufs[lowestStartElementIdx],
+ &nExtractionRemainderBufs[lowestStartElementIdx],
+ transformStates[lowestStartElementIdx]) != STARCHCAT_EXIT_SUCCESS) {
+ fprintf(stderr, "ERROR: Could not extract data from gzip input stream at index [%zu]!\n", lowestStartElementIdx);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ break;
+ }
+ case kUndefined: {
+ fprintf(stderr, "ERROR: Unknown compression type specified in input stream at index [%zu]!\n", lowestStartElementIdx);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ }
+
+ extractedLineCounts[lowestStartElementIdx] = transformStates[lowestStartElementIdx]->t_lineIdx;
+
+ /*
+ reset the extraction buffer offset and try to pull something from
+ the extraction buffer into the extracted elements buffer
+ */
+ extractionBufferOffsets[lowestStartElementIdx] = 0;
+ STARCHCAT2_extractBedLine(&eobFlags[lowestStartElementIdx],
+ extractionBuffers[lowestStartElementIdx],
+ &extractionBufferOffsets[lowestStartElementIdx],
+ &extractedElements[lowestStartElementIdx]);
+ extractedLineCounts[lowestStartElementIdx]--;
+ }
+ }
+ else {
+ allEOF = kStarchTrue;
+ }
+
+ /* 5 -- compress transformation buffer if it is full or if allEOF is true */
+ if ((compressionLineCount == STARCHCAT_RETRANSFORM_LINE_COUNT_MAX) || (allEOF == kStarchTrue))
+ {
+ memcpy(outputRetransformState->r_chromosome, inChr, strlen(inChr) + 1);
+ memset(retransformedOutputBuffer, 0, STARCHCAT_RETRANSFORM_BUFFER_SIZE);
+ STARCHCAT2_transformCompressionBuffer(compressionBuffer, retransformedOutputBuffer, outputRetransformState);
+ finalLineCount += compressionLineCount;
+#ifdef DEBUG
+ fprintf(stderr, "STEP 5 - COMP BUFFER [%s] -->\nCOMPRESS RETRANSFORMATION BUFFER (FULL)\n[%s]\n", compressionBuffer, retransformedOutputBuffer);
+#endif
+ STARCHCAT2_resetCompressionBuffer(compressionBuffer, &compressionLineCount);
+ switch (outType) {
+ case kBzip2: {
+ STARCHCAT2_squeezeRetransformedOutputBufferToBzip2Stream(&bzOutFp,
+ retransformedOutputBuffer);
+ break;
+ }
+ case kGzip: {
+ flushZStreamFlag = allEOF;
+ STARCHCAT2_squeezeRetransformedOutputBufferToGzipStream(&zOutStream,
+#ifdef __cplusplus
+ static_cast<const Boolean>( flushZStreamFlag ),
+#else
+ (const Boolean) flushZStreamFlag,
+#endif
+ retransformedOutputBuffer,
+ &finalStreamSize,
+ cumulativeOutputSize);
+ break;
+ }
+ case kUndefined: {
+ fprintf(stderr, "ERROR: Unknown compression type specified in output stream!\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ }
+ }
+
+ } while (allEOF == kStarchFalse);
+
+ /* breakdown output stream */
+ switch (outType) {
+ case kBzip2: {
+ STARCHCAT2_breakdownBzip2OutputStream(&bzOutFp, &bzOutBytesConsumed, &bzOutBytesWritten);
+ finalStreamSize = bzOutBytesWritten;
+ *cumulativeOutputSize += bzOutBytesWritten;
+ break;
+ }
+ case kGzip: {
+ STARCHCAT2_breakdownGzipOutputStream(&zOutStream);
+ break;
+ }
+ case kUndefined: {
+ fprintf(stderr, "ERROR: Unknown output compression type specified!\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ }
+
+ /* finalize metadata */
+ switch (outType) {
+ case kBzip2: {
+#ifdef __cplusplus
+ finalOutTagFn = static_cast<char *>( malloc(strlen(inChr) + strlen(outTag) + 3 + strlen(".bz2")) );
+#else
+ finalOutTagFn = malloc(strlen(inChr) + strlen(outTag) + 3 + strlen(".bz2"));
+#endif
+ sprintf(finalOutTagFn, "%s.%s.bz2", inChr, outTag);
+ break;
+ }
+ case kGzip: {
+#ifdef __cplusplus
+ finalOutTagFn = static_cast<char *>( malloc(strlen(inChr) + strlen(outTag) + 3 + strlen(".gz")) );
+#else
+ finalOutTagFn = malloc(strlen(inChr) + strlen(outTag) + 3 + strlen(".gz"));
+#endif
+ sprintf(finalOutTagFn, "%s.%s.gz", inChr, outTag);
+ break;
+ }
+ case kUndefined: {
+ fprintf(stderr, "ERROR: Undefined outbound compression type!\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ }
+ finalTotalNonUniqueBases = outputRetransformState->r_totalNonUniqueBases;
+ finalTotalUniqueBases = outputRetransformState->r_totalUniqueBases;
+ finalDuplicateElementExists = outputRetransformState->r_duplicateElementExists;
+ finalNestedElementExists = outputRetransformState->r_nestedElementExists;
+
+ STARCHCAT2_finalizeMetadata( outMd,
+#ifdef __cplusplus
+ const_cast<char *>( inChr ),
+#else
+ (char *) inChr,
+#endif
+ finalOutTagFn,
+ finalStreamSize,
+ finalLineCount,
+ finalTotalNonUniqueBases,
+ finalTotalUniqueBases,
+ finalDuplicateElementExists,
+ finalNestedElementExists );
+
+ /* breakdown */
+ for (inRecIdx = 0U; inRecIdx < summary->numRecords; inRecIdx++) {
+ if (STARCHCAT2_testSummaryForChromosomeExistence(inChr, summary, inRecIdx) == STARCHCAT_EXIT_SUCCESS) {
+ if (extractionBuffers[inRecIdx])
+ free(extractionBuffers[inRecIdx]), extractionBuffers[inRecIdx] = NULL;
+ if (extractedElements[inRecIdx])
+ free(extractedElements[inRecIdx]), extractedElements[inRecIdx] = NULL;
+ if (extractionRemainderBufs[inRecIdx])
+ free(extractionRemainderBufs[inRecIdx]), extractionRemainderBufs[inRecIdx] = NULL;
+ inRecord = *(summary->records) + inRecIdx;
+ inType = inRecord->type; /* get record type of input stream */
+ switch (inType) {
+ case kBzip2: {
+ if (STARCHCAT2_breakdownBzip2InputStream(&bzInFps[inRecIdx]) != STARCHCAT_EXIT_SUCCESS) {
+ fprintf(stderr, "ERROR: Could not break down bzip2 input stream at index [%zu]!\n", inRecIdx);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ break;
+ }
+ case kGzip: {
+ if (STARCHCAT2_breakdownGzipInputStream(&zInStreams[inRecIdx]) != STARCHCAT_EXIT_SUCCESS) {
+ fprintf(stderr, "ERROR: Could not break down gzip input stream at index [%zu]!\n", inRecIdx);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ break;
+ }
+ case kUndefined: {
+ fprintf(stderr, "ERROR: Unknown compression type specified in input stream at index [%zu]!\n", inRecIdx);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ }
+ }
+ }
+ if (extractionBuffers)
+ free(extractionBuffers), extractionBuffers = NULL;
+ if (nExtractionBuffers)
+ free(nExtractionBuffers), nExtractionBuffers = NULL;
+ if (extractionBufferOffsets)
+ free(extractionBufferOffsets), extractionBufferOffsets = NULL;
+ if (compressionBuffer)
+ free(compressionBuffer), compressionBuffer = NULL;
+ if (zInFps)
+ free(zInFps), zInFps = NULL;
+ if (extractedLineCounts)
+ free(extractedLineCounts), extractedLineCounts = NULL;
+ if (extractedElements)
+ free(extractedElements), extractedElements = NULL;
+ if (eobFlags)
+ free(eobFlags), eobFlags = NULL;
+ if (eofFlags)
+ free(eofFlags), eofFlags = NULL;
+ if (starts)
+ free(starts), starts = NULL;
+ if (stops)
+ free(stops), stops = NULL;
+ if (transformStates)
+ free(transformStates), transformStates = NULL;
+ if (extractionRemainderBufs)
+ free(extractionRemainderBufs), extractionRemainderBufs = NULL;
+ if (nExtractionRemainderBufs)
+ free(nExtractionRemainderBufs), nExtractionRemainderBufs = NULL;
+ if (bzInFps)
+ free(bzInFps), bzInFps = NULL;
+ if (nBzReads)
+ free(nBzReads), nBzReads = NULL;
+ if (zInStreams)
+ free(zInStreams), zInStreams = NULL;
+ if (nZReads)
+ free(nZReads), nZReads = NULL;
+ if (retransformedOutputBuffer)
+ free(retransformedOutputBuffer), retransformedOutputBuffer = NULL;
+ if (outputRetransformState)
+ free(outputRetransformState), outputRetransformState = NULL;
+ if (finalOutTagFn)
+ free(finalOutTagFn), finalOutTagFn = NULL;
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT_mergeInputRecordsToOutput (Metadata **outMd, const char *outTag, const CompressionType outType, const ChromosomeSummary *summary)
+{
+ /*
+ This function will grab a buffer-ful of each file's chromosomal data, read
+ through each buffer until the 'lowest' item is found, and print that item
+ to a temporary file buffer. Once all the buffers are read through, we
+ compress the temp buffer and update the output metadata with the newly-
+ minted, newly-compressed chromosome.
+ */
+
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCHCAT_mergeInputRecordsToOutput() ---\n");
+#endif
+ MetadataRecord *inRec = NULL;
+ char *tempOutFn = NULL;
+ char **tempOutFns = NULL;
+ FILE *tempOutFp = NULL;
+ FILE **tempOutFps = NULL;
+ unsigned int inRecIdx;
+ unsigned int allEOFFlag = 0U;
+ char **lineBuffers = NULL;
+ unsigned int bufferIdx;
+ int c;
+ SignedCoordType *starts = NULL;
+ SignedCoordType *stops = NULL;
+ int *lowestStartIdxs = NULL;
+ unsigned int lsiIdx, lsiTestIdx;
+ SignedCoordType lowestStart;
+ SignedCoordType lowestStop;
+ unsigned int lowestStopIdx = 0U;
+ unsigned long fieldIdx;
+ char fieldBuffer[STARCHCAT_FIELD_BUFFER_MAX_LENGTH];
+ unsigned int fieldBufferIdx;
+ char *uncomprOutFn = NULL;
+ FILE *uncomprOutFnPtr = NULL;
+ FILE *transformFnPtr = NULL;
+ char *note = NULL;
+
+ /*
+ Set up temporary output streams, which will contain uncompressed,
+ per-record and per-chromosome data. We will ultimately walk through
+ these streams a line at a time...
+ */
+#ifdef __cplusplus
+ tempOutFns = static_cast<char **>( malloc(sizeof(char *) * summary->numRecords) );
+ tempOutFps = static_cast<FILE **>( malloc(sizeof(FILE *) * summary->numRecords) );
+#else
+ tempOutFns = malloc(sizeof(char *) * summary->numRecords);
+ tempOutFps = malloc(sizeof(FILE *) * summary->numRecords);
+#endif
+ if ((! tempOutFns) || (! tempOutFps)) {
+ fprintf(stderr, "ERROR: Could not allocate space for temporary output buffers. Could not merge.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ for (inRecIdx = 0U; inRecIdx < summary->numRecords; inRecIdx++) {
+#ifdef __cplusplus
+ tempOutFn = static_cast<char *>( malloc(strlen(summary->chromosome) + strlen(outTag) + 20) );
+#else
+ tempOutFn = malloc(strlen(summary->chromosome) + strlen(outTag) + 20);
+#endif
+ if (! tempOutFn) {
+ fprintf(stderr, "ERROR: Could not allocate space for temporary output filename. Could not merge.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ sprintf(tempOutFn, "%s.%s.uncompressed.%04u", summary->chromosome, outTag, inRecIdx);
+ tempOutFns[inRecIdx] = STARCH_strdup(tempOutFn);
+ /*
+ Set up the out-bound file streams to allow reading and writing
+ modes, which will allow extraction, rewinding and subsequent
+ parsing/reading.
+
+ cf. http://pubs.opengroup.org/onlinepubs/007904975/functions/fopen.html
+ */
+ tempOutFps[inRecIdx] = STARCH_fopen(tempOutFn, "a+b");
+
+ /* cleanup */
+ free(tempOutFn);
+ }
+
+ /*
+ Extract records to per-record pointers.
+ */
+ for (inRecIdx = 0U; inRecIdx < summary->numRecords; inRecIdx++) {
+ inRec = *(summary->records) + inRecIdx; /* records[inRecIdx] */
+ tempOutFp = tempOutFps[inRecIdx];
+#ifdef DEBUG
+ fprintf(stderr, "\t\textracting %s from record %u (of %u) to temporary output file %s\n", summary->chromosome, (inRecIdx + 1), summary->numRecords, tempOutFns[inRecIdx]);
+#endif
+ switch (inRec->type) {
+ case kBzip2: {
+ UNSTARCH_extractDataWithBzip2( &(inRec->fp),
+ tempOutFp,
+ summary->chromosome,
+ inRec->metadata,
+ inRec->mdOffset,
+ inRec->hFlag );
+ break;
+ }
+ case kGzip: {
+ UNSTARCH_extractDataWithGzip( &(inRec->fp),
+ tempOutFp,
+ summary->chromosome,
+ inRec->metadata,
+ inRec->mdOffset,
+ inRec->hFlag );
+ break;
+ }
+ case kUndefined: {
+ fprintf(stderr, "ERROR: Input file uses undefined compression method. Could not merge.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ };
+ }
+
+ /*
+ Set up merged output stream. Sorted results will be
+ directed here and then ultimately compressed.
+ */
+#ifdef __cplusplus
+ uncomprOutFn = static_cast<char *>( malloc(strlen(summary->chromosome) + strlen(outTag) + 16) );
+#else
+ uncomprOutFn = malloc(strlen(summary->chromosome) + strlen(outTag) + 16);
+#endif
+ if (!uncomprOutFn) {
+ fprintf(stderr, "ERROR: Could not allocate space for uncompressed output filename for final merge.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ sprintf(uncomprOutFn, "%s.%s.uncompressed", summary->chromosome, outTag);
+ uncomprOutFnPtr = STARCH_fopen(uncomprOutFn, "wb");
+ if (!uncomprOutFnPtr) {
+ fprintf(stderr, "ERROR: Could not open an uncompressed output file handle to %s\n", uncomprOutFn);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+ /*
+ Read through records line by line, finding the 'lowest'
+ start position (or any ties). If no ties are found, that
+ element if printed to the merged output stream. If ties are
+ found, then we search for the element from among these ties
+ which has the lowest stop position, which is then printed
+ to the merged output stream.
+ */
+
+#ifdef DEBUG
+ fprintf(stderr, "\t\tparsing temporary per-record output files...\n");
+#endif
+
+#ifdef __cplusplus
+ starts = static_cast<SignedCoordType *>( malloc(sizeof(SignedCoordType) * summary->numRecords) );
+ stops = static_cast<SignedCoordType *>( malloc(sizeof(SignedCoordType) * summary->numRecords) );
+ lowestStartIdxs = static_cast<int *>( malloc(sizeof(int) * summary->numRecords) );
+ lineBuffers = static_cast<char **>( malloc(sizeof(char *) * summary->numRecords) );
+#else
+ starts = malloc(sizeof(SignedCoordType) * summary->numRecords);
+ stops = malloc(sizeof(SignedCoordType) * summary->numRecords);
+ lowestStartIdxs = malloc(sizeof(int) * summary->numRecords);
+ lineBuffers = malloc(sizeof(char *) * summary->numRecords);
+#endif
+
+ if ((!starts) || (!stops) || (!lowestStartIdxs) || (!lineBuffers)) {
+ fprintf(stderr, "ERROR: Could not allocate space for line buffer data. Could not merge.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ for (inRecIdx = 0U; inRecIdx < summary->numRecords; inRecIdx++) {
+ /*
+ We re-use the file pointers we set up earlier. No sense
+ in closing and reopening them.
+ */
+ rewind( tempOutFps[inRecIdx] );
+ /*
+ We "prime" the line buffers in order to get an initial
+ comparison going in the first pass through the parse/sort
+ loop.
+ */
+#ifdef __cplusplus
+ lineBuffers[inRecIdx] = static_cast<char *>( malloc (STARCH_BUFFER_MAX_LENGTH) );
+#else
+ lineBuffers[inRecIdx] = malloc (STARCH_BUFFER_MAX_LENGTH);
+#endif
+ bufferIdx = 0U;
+ while ( (c = fgetc(tempOutFps[inRecIdx])) ) {
+ if (c == EOF) {
+ fprintf(stderr, "ERROR: Could not retrieve data from archive (is it empty or corrupt?). Could not merge.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+#ifdef __cplusplus
+ lineBuffers[inRecIdx][bufferIdx++] = static_cast<char>( c );
+#else
+ lineBuffers[inRecIdx][bufferIdx++] = (char) c;
+#endif
+ if (c == '\n') {
+ lineBuffers[inRecIdx][(bufferIdx-1)] = '\0';
+ break;
+ }
+ }
+ }
+
+ /*
+ Do the final parsing and sorting of per-record data until all
+ the line buffers are empty (i.e., EOF is reached).
+ */
+ do {
+ /*
+ Reset bounds of lowest start and stop values. We are mostly assured
+ that BED data inputs will have smaller start and stop coordinates,
+ unless the inputs are corrupt or otherwise very, very unusual.
+ */
+#ifdef __cplusplus
+ lowestStart = std::numeric_limits<int64_t>::max();
+ lowestStop = std::numeric_limits<int64_t>::max();
+#else
+ lowestStart = INT64_MAX;
+ lowestStop = INT64_MAX;
+#endif
+ /*
+ We parse the start and stop fields out of a buffered line
+ to retrieve their coordinates as sortable numerical values.
+ */
+ for (inRecIdx = 0U; inRecIdx < summary->numRecords; inRecIdx++) {
+ fieldIdx = 0U;
+ if (lineBuffers[inRecIdx] == NULL)
+ continue;
+ for (bufferIdx = 0U, fieldBufferIdx = 0U; bufferIdx < strlen(lineBuffers[inRecIdx]); bufferIdx++, fieldBufferIdx++) {
+ fieldBuffer[fieldBufferIdx] = lineBuffers[inRecIdx][bufferIdx];
+ if (fieldBuffer[fieldBufferIdx] == '\t') {
+ fieldBuffer[fieldBufferIdx] = '\0';
+#ifdef __cplusplus
+ fieldBufferIdx = static_cast<unsigned int>( -1 );
+ fieldIdx++;
+ if (fieldIdx == 2)
+ starts[inRecIdx] = static_cast<SignedCoordType>( strtoll(fieldBuffer, NULL, 10) );
+ else if (fieldIdx == 3)
+ stops[inRecIdx] = static_cast<SignedCoordType>( strtoll(fieldBuffer, NULL, 10) );
+ else if (fieldIdx > 3)
+ break;
+#else
+ fieldBufferIdx = (unsigned int) -1;
+ fieldIdx++;
+ if (fieldIdx == 2)
+ starts[inRecIdx] = (SignedCoordType) strtoll(fieldBuffer, NULL, 10);
+ else if (fieldIdx == 3)
+ stops[inRecIdx] = (SignedCoordType) strtoll(fieldBuffer, NULL, 10);
+ else if (fieldIdx > 3)
+ break;
+#endif
+ }
+ }
+ }
+ /*
+ Find the lowest start index or indices (when ties occur) for
+ line buffers which exist. If NULL, we skip over testing it.
+ */
+ lsiIdx = 0U;
+ for (inRecIdx = 0U; inRecIdx < summary->numRecords; inRecIdx++) {
+ if (lineBuffers[inRecIdx] == NULL)
+ continue;
+ if (starts[inRecIdx] < lowestStart) {
+ lowestStart = starts[inRecIdx];
+ lsiIdx = 0U;
+#ifdef __cplusplus
+ lowestStartIdxs[lsiIdx++] = static_cast<int>( inRecIdx );
+#else
+ lowestStartIdxs[lsiIdx++] = (int) inRecIdx;
+#endif
+ if (lsiIdx < summary->numRecords)
+ lowestStartIdxs[lsiIdx] = -1;
+ }
+ else if (starts[inRecIdx] == lowestStart) {
+#ifdef __cplusplus
+ lowestStartIdxs[lsiIdx++] = static_cast<int>( inRecIdx );
+#else
+ lowestStartIdxs[lsiIdx++] = (int) inRecIdx;
+#endif
+ if (lsiIdx < summary->numRecords)
+ lowestStartIdxs[lsiIdx] = -1;
+ }
+ }
+ /*
+ There is either one or multiple lowest-start indices. In the
+ case of one lowest-start index, we simply print that element to
+ the (still-uncompressed) merged output.
+
+ In the second case, where there are ties for the lowest start,
+ we must examine lowestStartIdxs[], looking for the index of
+ the lowest stop value. Once we find that, we have satisfied the
+ BEDOPS lexicographical sort criteria and can print out that
+ element to the merged output.
+
+ In either case, once we print the contents of the line buffer,
+ we try to read characters into the line buffer from the
+ temporary file pointer until we hit a newline. We then repeat
+ the parsing process. If there are no more characters (EOF),
+ we then mark the line buffer as NULL.
+
+ Once all line buffers are NULL, we know there is nothing more
+ to sort and so move on to compression and updating the metadata,
+ along with finishing up any remaining cleanup duties.
+ */
+ if (lsiIdx == 1) {
+#ifdef __cplusplus
+ lsiIdx = static_cast<unsigned int>( lowestStartIdxs[(lsiIdx - 1)] );
+#else
+ lsiIdx = (unsigned int) lowestStartIdxs[(lsiIdx - 1)];
+#endif
+ fprintf(uncomprOutFnPtr, "%s\n", lineBuffers[lsiIdx]);
+ /*
+ Retrieve another line or set lineBuffers element to NULL
+ */
+ bufferIdx = 0U;
+ while ( (c = fgetc(tempOutFps[lsiIdx])) ) {
+ if (c == EOF) {
+ free(lineBuffers[lsiIdx]);
+ lineBuffers[lsiIdx] = NULL;
+ break;
+ }
+#ifdef __cplusplus
+ lineBuffers[lsiIdx][bufferIdx++] = static_cast<char>( c );
+#else
+ lineBuffers[lsiIdx][bufferIdx++] = (char) c;
+#endif
+ if (c == '\n') {
+ lineBuffers[lsiIdx][(bufferIdx-1)] = '\0';
+ break;
+ }
+ }
+ }
+ else {
+ for (lsiTestIdx = 0; lsiTestIdx < lsiIdx; lsiTestIdx++) {
+ if (stops[lowestStartIdxs[lsiTestIdx]] < lowestStop) {
+ lowestStop = stops[lowestStartIdxs[lsiTestIdx]];
+#ifdef __cplusplus
+ lowestStopIdx = static_cast<unsigned int>( lowestStartIdxs[lsiTestIdx] );
+#else
+ lowestStopIdx = (unsigned int) lowestStartIdxs[lsiTestIdx];
+#endif
+ }
+ }
+ fprintf(uncomprOutFnPtr, "%s\n", lineBuffers[lowestStopIdx]);
+ /*
+ Retrieve another line or set lineBuffers element to NULL
+ */
+ bufferIdx = 0U;
+ while ( (c = fgetc(tempOutFps[lowestStopIdx])) ) {
+ if (c == EOF) {
+ free(lineBuffers[lowestStopIdx]);
+ lineBuffers[lowestStopIdx] = NULL;
+ break;
+ }
+#ifdef __cplusplus
+ lineBuffers[lowestStopIdx][bufferIdx++] = static_cast<char>( c );
+#else
+ lineBuffers[lowestStopIdx][bufferIdx++] = (char) c;
+#endif
+ if (c == '\n') {
+ lineBuffers[lowestStopIdx][(bufferIdx-1)] = '\0';
+ break;
+ }
+ }
+ }
+ /*
+ Unless all buffers are empty, we keep sorting...
+ */
+ allEOFFlag = 1;
+ for (inRecIdx = 0U; inRecIdx < summary->numRecords; inRecIdx++) {
+ if (lineBuffers[inRecIdx] != NULL) {
+ allEOFFlag = 0;
+ break;
+ }
+ }
+ } while (allEOFFlag != 1);
+
+ /* cleanup */
+
+#ifdef DEBUG
+ fprintf(stderr, "\t\tdeleting temporary per-record output files...\n");
+#endif
+
+ for (inRecIdx = 0U; inRecIdx < summary->numRecords; inRecIdx++) {
+ fclose(tempOutFps[inRecIdx]);
+ if (remove(tempOutFns[inRecIdx]) != 0) {
+ fprintf(stderr, "ERROR: Could not delete temporary output file. Could not merge.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ free(tempOutFns[inRecIdx]);
+ }
+ if (tempOutFns)
+ free(tempOutFns);
+ if (tempOutFps)
+ free(tempOutFps);
+ if (uncomprOutFnPtr)
+ fclose(uncomprOutFnPtr);
+ if (starts)
+ free(starts);
+ if (stops)
+ free(stops);
+ if (lowestStartIdxs)
+ free(lowestStartIdxs);
+ if (lineBuffers)
+ free(lineBuffers);
+
+ /*
+ We now transform and recompress extracted, headerless data with
+ whatever specified output compression type, and we then update the
+ output metadata.
+ */
+#ifdef DEBUG
+ fprintf(stderr, "\t\ttransforming temporary merged output file...\n");
+#endif
+
+ transformFnPtr = STARCH_fopen(uncomprOutFn, "rb");
+ if (!transformFnPtr) {
+ fprintf(stderr, "ERROR: Could not open a transformation output file handle to %s . Could not merge.\n", uncomprOutFn);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+#ifdef DEBUG
+ (! *outMd) ? fprintf(stderr, "\t\tmaking new output metadata structure...\n") : fprintf(stderr, "\t\tappending to existing output metadata structure...\n");
+#endif
+
+#ifdef __cplusplus
+ if ( STARCH_transformHeaderlessInput( &(*outMd),
+ reinterpret_cast<const FILE *>( transformFnPtr ),
+ static_cast<const CompressionType>( outType ),
+ reinterpret_cast<const char *>( outTag ),
+ static_cast<const Boolean>( kStarchFinalizeTransformFalse ),
+ reinterpret_cast<const char *>( note ) ) != 0 ) {
+ fprintf(stderr, "ERROR: Could not transform output file. Could not merge.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+#else
+ if ( STARCH_transformHeaderlessInput( &(*outMd),
+ (const FILE *) transformFnPtr,
+ (const CompressionType) outType,
+ (const char *) outTag,
+ (const Boolean) kStarchFinalizeTransformFalse,
+ (const char *) note ) != 0 ) {
+ fprintf(stderr, "ERROR: Could not transform output file. Could not merge.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+#endif
+
+#ifdef DEBUG
+ fprintf(stderr, "\t\tchr: %s, outFn: %s, size: %" PRIu64 "\n", (*outMd)->chromosome, (*outMd)->filename, (*outMd)->size);
+#endif
+
+ fclose(transformFnPtr);
+ transformFnPtr = NULL;
+
+ /*
+ Delete uncompressed (untransformed) file as we no longer need it.
+ */
+
+#ifdef DEBUG
+ fprintf(stderr, "\t\tdeleting temporary merged output file...\n");
+#endif
+
+ if ( remove(uncomprOutFn) != 0 ) {
+ fprintf(stderr, "ERROR: Cannot remove uncompressed output file %s. Could not merge.\n", uncomprOutFn);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+ /* cleanup */
+ if (uncomprOutFn)
+ free(uncomprOutFn);
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT_mergeChromosomeStreams (const ChromosomeSummaries *chrSums, const CompressionType outputType, const char *note)
+{
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCHCAT_mergeChromosomeStreams() ---\n");
+#endif
+ unsigned int chrIdx = 0U;
+ ChromosomeSummary *summary = NULL;
+ CompressionType inputType;
+ MetadataRecord *inputRecord = NULL;
+ Metadata *headOutputMd = NULL;
+ Metadata *outputMd = NULL;
+ char *outputTag = NULL;
+ char *inputChr = NULL;
+ char *dynamicMdBuffer = NULL;
+ Boolean firstOutputMd = kStarchTrue;
+ Boolean hFlag = kStarchFalse; /* starchcat does not currently support headers */
+
+ if (!chrSums) {
+ fprintf(stderr, "ERROR: Chromosome summary is empty. Could not merge.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+ /*
+ When we initially built the chromosome list, we applied a
+ lexicographical sort, so that we can process and export
+ streams in that order.
+
+ We now loop through each chromosome of the summary
+ records, in order to determine how many files need
+ to be extracted to build the merged output stream.
+
+ If there is only one source file associated with a given
+ chromosome, then we can simply copy the byte range over
+ (after calculating the relevant file offsets) but **only**
+ if the source compression type matches the output type **and**
+ if the starch archive version is concurrent or newer than
+ the version of starchcat.
+
+ Otherwise, we must extract to the output stream and recompress
+ it into the new output type.
+
+ If there are two or more files associated with a chromosome,
+ then we need to extract a BED line from each file pointer,
+ compare BED coordinates from all source streams, and print the
+ next closest coordinate to the output stream.
+ */
+
+ STARCH_buildProcessIDTag( &outputTag );
+
+ for (chrIdx = 0U; chrIdx < chrSums->numChromosomes; chrIdx++)
+ {
+ summary = chrSums->summary + chrIdx;
+
+ if (summary->numRecords < 1) {
+ /* If we get here, something went wrong with a data structure. */
+ fprintf(stderr, "ERROR: Summaries pointer corrupt? Could not locate records in summaries.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+ /*
+ If there is only one record (and archive versions are concurrent),
+ compare output and input types and either copy bytes over directly,
+ or retransform data with new output type and/or newer version.
+ */
+
+ else if (summary->numRecords == 1) {
+ inputRecord = *(summary->records);
+ inputChr = summary->chromosome;
+ inputType = inputRecord->type;
+ if ((inputType == outputType) && (STARCHCAT_isArchiveConcurrent(inputRecord->av) == kStarchTrue)) {
+#ifdef DEBUG
+ fprintf(stderr, "\t[%s] copying bytes straight over...\n", summary->chromosome);
+#endif
+#ifdef __cplusplus
+ assert( STARCHCAT_copyInputRecordToOutput( &outputMd,
+ reinterpret_cast<const char *>( outputTag ),
+ static_cast<const CompressionType>( outputType ),
+ reinterpret_cast<const char *>( inputChr ),
+ reinterpret_cast<const MetadataRecord *>( inputRecord )) );
+#else
+ assert( STARCHCAT_copyInputRecordToOutput( &outputMd,
+ (const char *) outputTag,
+ (const CompressionType) outputType,
+ (const char *) inputChr,
+ (const MetadataRecord *) inputRecord) );
+#endif
+ }
+ else {
+#ifdef DEBUG
+ fprintf(stderr, "\t[%s] extracting bytes to recompressed stream...\n", summary->chromosome);
+#endif
+#ifdef __cplusplus
+ assert( STARCHCAT_rewriteInputRecordToOutput( &outputMd,
+ reinterpret_cast<const char *>( outputTag ),
+ static_cast<const CompressionType>( outputType ),
+ reinterpret_cast<const char *>( inputChr ),
+ reinterpret_cast<const MetadataRecord *>( inputRecord )) );
+#else
+ assert( STARCHCAT_rewriteInputRecordToOutput( &outputMd,
+ (const char *) outputTag,
+ (const CompressionType) outputType,
+ (const char *) inputChr,
+ (const MetadataRecord *) inputRecord) );
+#endif
+ }
+ }
+
+ /*
+ In this case, we have a mix of records for a given chromosome. We walk through
+ input records line by line, returning the next lexicographically ordered BED
+ element from the set of records. The final result is transformed and compressed,
+ and a new record added to the output metadata.
+ */
+
+ else {
+#ifdef DEBUG
+ fprintf(stderr, "\t[%s] unpacking/repacking mixed data...\n", summary->chromosome);
+#endif
+#ifdef __cplusplus
+ assert( STARCHCAT_mergeInputRecordsToOutput(&outputMd,
+ reinterpret_cast<const char *>( outputTag ),
+ static_cast<const CompressionType>( outputType ),
+ reinterpret_cast<const ChromosomeSummary *>( summary )) );
+#else
+ assert( STARCHCAT_mergeInputRecordsToOutput(&outputMd,
+ (const char *) outputTag,
+ (const CompressionType) outputType,
+ (const ChromosomeSummary *) summary) );
+#endif
+ }
+
+ if (!outputMd) {
+ fprintf(stderr, "ERROR: Output metadata structure is empty after adding data. Something went wrong in mid-stream.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+ /*
+ Grab a pointer to the head element of the output metadata. When we
+ export the metadata to the final archive, we need to walk through the
+ metadata from the first record.
+ */
+
+ if (firstOutputMd == kStarchTrue) {
+ headOutputMd = outputMd;
+ firstOutputMd = kStarchFalse;
+ }
+ }
+
+ /* stitch up compressed files into one archive, along with metadata header */
+#ifdef __cplusplus
+ assert( STARCH_writeJSONMetadata( reinterpret_cast<const Metadata *>( headOutputMd ),
+ &dynamicMdBuffer,
+ const_cast<CompressionType *>( &outputType ),
+ static_cast<const Boolean>( hFlag ),
+ reinterpret_cast<const char *>( note )) );
+ assert( STARCH_mergeMetadataWithCompressedFiles( reinterpret_cast<const Metadata *>( headOutputMd ),
+ dynamicMdBuffer) );
+ assert( STARCH_deleteCompressedFiles( reinterpret_cast<const Metadata *>( headOutputMd )) );
+#else
+ assert( STARCH_writeJSONMetadata( (const Metadata *) headOutputMd,
+ &dynamicMdBuffer,
+ (CompressionType *) &outputType,
+ (const Boolean) hFlag,
+ (const char *) note) );
+ assert( STARCH_mergeMetadataWithCompressedFiles( (const Metadata *) headOutputMd,
+ dynamicMdBuffer) );
+ assert( STARCH_deleteCompressedFiles( (const Metadata *) headOutputMd) );
+#endif
+
+ /* cleanup */
+ if (dynamicMdBuffer)
+ free(dynamicMdBuffer);
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT_freeChromosomeNames (char ***chrs, unsigned int numChromosomes)
+{
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCHCAT_freeChromosomeNames() ---\n");
+#endif
+ unsigned int chrIdx = 0U;
+
+ if (! *chrs)
+ return STARCHCAT_EXIT_FAILURE;
+
+ for (chrIdx = 0U; chrIdx < numChromosomes; chrIdx++) {
+#ifdef DEBUG
+ fprintf(stderr, "\tfreeing chromosome name [%s]\n", *(*chrs + chrIdx));
+#endif
+ free( *(*chrs + chrIdx) );
+ }
+
+ free(*chrs);
+ *chrs = NULL;
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT_freeChromosomeSummaries (ChromosomeSummaries **chrSums)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCHCAT_freeChromosomeSummaries() ---\n");
+#endif
+
+ if (! *chrSums)
+ return STARCHCAT_EXIT_SUCCESS;
+
+#ifdef __cplusplus
+ STARCHCAT_freeChromosomeSummary( &((*chrSums)->summary), static_cast<const unsigned int>( (*chrSums)->numChromosomes ));
+#else
+ STARCHCAT_freeChromosomeSummary( &((*chrSums)->summary), (const unsigned int) (*chrSums)->numChromosomes );
+#endif
+ free(*chrSums);
+ *chrSums = NULL;
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT_allocChromosomeSummaries (ChromosomeSummaries **chrSums, const unsigned int numChromosomes)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCHCAT_allocChromosomeSummaries() ---\n");
+#endif
+
+ if (numChromosomes == 0)
+ return STARCHCAT_EXIT_SUCCESS;
+
+#ifdef __cplusplus
+ *chrSums = static_cast<ChromosomeSummaries *>( malloc( sizeof(ChromosomeSummaries) * numChromosomes ) );
+#else
+ *chrSums = malloc( sizeof(ChromosomeSummaries) * numChromosomes );
+#endif
+
+ if (*chrSums == NULL) {
+ fprintf(stderr, "ERROR: Could not allocate space for chromosome summaries.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+ (*chrSums)->summary = NULL;
+ (*chrSums)->numChromosomes = 0U;
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT_buildChromosomeSummaries (ChromosomeSummaries **chrSums, const ChromosomeSummary *summary, const unsigned int numChromosomes)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCHCAT_buildChromosomeSummaries() ---\n");
+#endif
+
+ if ((! *chrSums) || (!summary) || (numChromosomes == 0)) {
+ fprintf(stderr, "ERROR: Could not build chromosome summaries.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+#ifdef __cplusplus
+ (*chrSums)->summary = const_cast<ChromosomeSummary *>( summary );
+#else
+ (*chrSums)->summary = (ChromosomeSummary *) summary;
+#endif
+ (*chrSums)->numChromosomes = numChromosomes;
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT_printChromosomeSummaries (const ChromosomeSummaries *chrSums)
+{
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCHCAT_printChromosomeSummaries() ---\n");
+#endif
+ unsigned int chrIdx = 0U;
+ unsigned int recIdx = 0U;
+ ChromosomeSummary *summary = NULL;
+ MetadataRecord **recs = NULL;
+ MetadataRecord *mdRecord = NULL;
+ Metadata *iter, *md = NULL;
+
+ if (!chrSums)
+ return STARCHCAT_EXIT_FAILURE;
+
+ for (chrIdx = 0U; chrIdx < chrSums->numChromosomes; chrIdx++) {
+ summary = chrSums->summary + chrIdx;
+ recs = summary->records;
+#ifdef DEBUG
+ fprintf(stderr, "\t[chrIdx: %02u]\n\t\tchromosome: %s\n\t\tnumRecords: %u\n", chrIdx, summary->chromosome, summary->numRecords);
+#endif
+ for (recIdx = 0U; recIdx < summary->numRecords; recIdx++) {
+ mdRecord = recs[recIdx];
+#ifdef __cplusplus
+ md = static_cast<Metadata *>( mdRecord->metadata );
+#else
+ md = (Metadata *) mdRecord->metadata;
+#endif
+ /* loop through Metadata * to look for matching chromosome */
+ for (iter = md; iter != NULL; iter = iter->next) {
+#ifdef DEBUG
+ fprintf(stderr, "COMPARING [%s] chromosome iter [%s] vs summary [%s]\n", mdRecord->filename, iter->chromosome, summary->chromosome);
+#endif
+ if (strcmp(iter->chromosome, summary->chromosome) == 0) {
+#ifdef DEBUG
+#ifdef __cplusplus
+ fprintf(stderr, "\t\t\t[recIdx: %02u]\n" \
+ "\t\t\t\tfilename: %s\n" \
+ "\t\t\t\theaderFlag: %u\n" \
+ "\t\t\t\tmdOffset: %" PRIu64 "\n" \
+ "\t\t\t\ttype: %u\n" \
+ "\t\t\t\tintChr: %s\n" \
+ "\t\t\t\tintFn: %s\n" \
+ "\t\t\t\tintSize: %" PRIu64 "\n" \
+ "\t\t\t\tintLineCount: %" PRId64 "\n", \
+ recIdx,
+ mdRecord->filename,
+ mdRecord->hFlag,
+ static_cast<uint64_t>( mdRecord->mdOffset ),
+ mdRecord->type,
+ iter->chromosome,
+ iter->filename,
+ static_cast<uint64_t>( iter->size ),
+ static_cast<uint64_t>( iter->lineCount ));
+#else
+ fprintf(stderr, "\t\t\t[recIdx: %02u]\n" \
+ "\t\t\t\tfilename: %s\n" \
+ "\t\t\t\theaderFlag: %u\n" \
+ "\t\t\t\tmdOffset: %" PRIu64 "\n" \
+ "\t\t\t\ttype: %u\n" \
+ "\t\t\t\tintChr: %s\n" \
+ "\t\t\t\tintFn: %s\n" \
+ "\t\t\t\tintSize: %" PRIu64 "\n" \
+ "\t\t\t\tintLineCount: %" PRId64 "\n", \
+ recIdx,
+ mdRecord->filename,
+ mdRecord->hFlag,
+ (uint64_t) mdRecord->mdOffset,
+ mdRecord->type,
+ iter->chromosome,
+ iter->filename,
+ (uint64_t) iter->size,
+ (uint64_t) iter->lineCount);
+#endif
+#endif
+ break;
+ }
+ }
+ }
+ }
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT_freeChromosomeSummary (ChromosomeSummary **summary, const unsigned int numChromosomes)
+{
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCHCAT_freeChromosomeSummary() ---\n");
+#endif
+ unsigned int chrIdx = 0U;
+ ChromosomeSummary *summaryInstance = NULL;
+
+ if (*summary == NULL)
+ return STARCHCAT_EXIT_SUCCESS;
+
+ for (chrIdx = 0U; chrIdx < numChromosomes; chrIdx++) {
+ summaryInstance = *summary + chrIdx;
+#ifdef DEBUG
+ fprintf(stderr, "\tfreeing chromosome [%s] %u (of %u)...\n", summaryInstance->chromosome, (chrIdx + 1), numChromosomes);
+#endif
+ if (summaryInstance->chromosome) {
+ free( summaryInstance->chromosome );
+ summaryInstance->chromosome = NULL;
+ }
+ if (summaryInstance->records)
+ if ( STARCHCAT_freeMetadataRecords(summaryInstance->records, summaryInstance->numRecords) != STARCHCAT_EXIT_SUCCESS )
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT_allocChromosomeSummary (ChromosomeSummary **summary, const unsigned int numChromosomes)
+{
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCHCAT_allocChromosomeSummary() ---\n");
+#endif
+ unsigned int chrIdx = 0U;
+ ChromosomeSummary *instance = NULL;
+
+ if (*summary != NULL) {
+ fprintf(stderr, "ERROR: Chromosome summary is not empty.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+#ifdef DEBUG
+ fprintf(stderr, "\tallocating space for %u chromosomes...\n", numChromosomes);
+#endif
+
+#ifdef __cplusplus
+ *summary = static_cast<ChromosomeSummary *>( malloc( sizeof(ChromosomeSummary) * numChromosomes ) );
+#else
+ *summary = malloc( sizeof(ChromosomeSummary) * numChromosomes );
+#endif
+
+ if (*summary == NULL) {
+ fprintf(stderr, "ERROR: Could not allocate space for chromosome summary.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ for (chrIdx = 0U; chrIdx < numChromosomes; chrIdx++) {
+ instance = *summary + chrIdx;
+ instance->chromosome = NULL;
+ instance->records = NULL;
+ instance->numRecords = 0U;
+ }
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT_buildChromosomeSummary (ChromosomeSummary **summary, const MetadataRecord *mdRecords, const unsigned int numRecords, const char **chromosomes, const unsigned int numChromosomes)
+{
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCHCAT_buildChromosomeSummary() ---\n");
+#endif
+ unsigned int numHits;
+ unsigned int chrIdx;
+ unsigned int recIdx;
+ unsigned int hitIdx;
+ Metadata *iter, *md = NULL;
+ ChromosomeSummary *instance;
+
+ for (chrIdx = 0U; chrIdx < numChromosomes; chrIdx++) {
+ numHits = 0U;
+ instance = *summary + chrIdx;
+#ifdef DEBUG
+ fprintf(stderr, "\tworking on chr %u (of %u) [%s]...\n", (chrIdx + 1), numChromosomes, *(chromosomes + chrIdx));
+#endif
+ instance->chromosome = STARCH_strdup( *(chromosomes + chrIdx) );
+ for (recIdx = 0U; recIdx < numRecords; recIdx++) {
+ md = (mdRecords + recIdx)->metadata;
+ for (iter = md; iter != NULL; iter = iter->next) {
+#ifdef DEBUG
+ fprintf(stderr, "\tcomparing [%s] against [record %u | %s]...\n", instance->chromosome, recIdx, iter->chromosome);
+#endif
+ if (strcmp((*summary + chrIdx)->chromosome, iter->chromosome) == 0) {
+ numHits++;
+ break;
+ }
+ }
+ }
+
+#ifdef DEBUG
+ fprintf(stderr, "\t---\n\tfor [%s], we find %u hits\n", (*summary + chrIdx)->chromosome, numHits);
+ fprintf(stderr, "\tallocating %u records for instance %u...\n", numHits, chrIdx);
+#endif
+
+#ifdef __cplusplus
+ instance->records = static_cast<MetadataRecord **>( malloc(sizeof(MetadataRecord *) * numHits) );
+#else
+ instance->records = malloc(sizeof(MetadataRecord *) * numHits);
+#endif
+ instance->numRecords = numHits;
+
+ if (instance->records != NULL) {
+ for (recIdx = 0U, hitIdx = 0U; recIdx < numRecords; recIdx++) {
+ md = (mdRecords + recIdx)->metadata;
+ for (iter = md; iter != NULL; iter = iter->next)
+ if (strcmp(instance->chromosome, iter->chromosome) == 0) {
+#ifdef DEBUG
+ fprintf(stderr, "\treferencing metadata record idx %u -> hit idx %u\n", recIdx, hitIdx);
+#endif
+#ifdef __cplusplus
+ *(instance->records + hitIdx) = const_cast<MetadataRecord *>( mdRecords + recIdx );
+#else
+ *(instance->records + hitIdx) = (MetadataRecord *) (mdRecords + recIdx);
+#endif
+#ifdef DEBUG
+ fprintf(stderr, "\tfilename in ref is: %s\n", (*(instance->records + hitIdx))->filename);
+#endif
+ hitIdx++;
+ }
+ }
+ }
+ else {
+ fprintf(stderr, "ERROR: Could not allocate space for chromosome summary records.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ }
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+MetadataRecord *
+STARCHCAT_copyMetadataRecord (const MetadataRecord *mdRec)
+{
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCHCAT_copyMetadataRecord() ---\n");
+#endif
+ MetadataRecord *copy = NULL;
+
+#ifdef __cplusplus
+ copy = static_cast<MetadataRecord *>( malloc(sizeof(MetadataRecord)) );
+#else
+ copy = malloc(sizeof(MetadataRecord));
+#endif
+
+ copy->metadata = STARCH_copyMetadata(mdRec->metadata);
+#ifdef DEBUG
+ fprintf(stderr, "\tcopying filename from mdRec to copy: %s\n", mdRec->filename);
+#endif
+ copy->filename = STARCH_strdup(mdRec->filename);
+ copy->fp = mdRec->fp;
+ copy->type = mdRec->type;
+ copy->hFlag = mdRec->hFlag;
+
+ return copy;
+}
+
+int
+STARCHCAT_buildUniqueChromosomeList (char ***chromosomes, unsigned int *numChr, const MetadataRecord *mdRecords, const unsigned int numRecords)
+{
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCHCAT_buildUniqueChromosomeList() ---\n");
+#endif
+ unsigned int idx = 0U;
+ size_t uninitIdx = 0U;
+ Metadata *iter, *md = NULL;
+ char **chr = NULL;
+ char **chrCopy = NULL;
+ char **sortedChr = NULL;
+ char **sortedUniqChr = NULL;
+ size_t totalChr = 1;
+ size_t currChr = 1;
+ unsigned int allSortedChr = 0;
+
+#ifdef DEBUG
+ fprintf (stderr, "\tbuild temporary chromosome list\n");
+#endif
+ for (idx = 0U; idx < numRecords; idx++) {
+ md = (mdRecords + idx)->metadata;
+#ifdef DEBUG
+ fprintf(stderr, "\t%s\n", (mdRecords + idx)->filename);
+#endif
+ for (iter = md; iter != NULL; iter = iter->next, currChr++) {
+ if (currChr == totalChr) {
+ totalChr *= 2;
+#ifdef __cplusplus
+ chrCopy = static_cast<char **>( realloc ( chr, totalChr * sizeof(*chrCopy) + 1 ) );
+#else
+ chrCopy = realloc ( chr, totalChr * sizeof(*chrCopy) + 1 );
+#endif
+ if (! chrCopy) {
+ fprintf(stderr, "ERROR: Could not allocate space for chromosome list.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ chr = chrCopy;
+ for (uninitIdx = totalChr - 1; uninitIdx >= currChr; uninitIdx--)
+ *(chr + uninitIdx) = NULL;
+ }
+#ifdef DEBUG
+ fprintf(stderr, "\t\t(%zu | %zu) %-25s\n", totalChr, currChr, iter->chromosome);
+#endif
+ *(chr + currChr - 1) = STARCH_strdup(iter->chromosome);
+ }
+ }
+
+ /* copy references to items over to resized array */
+ currChr--;
+#ifdef __cplusplus
+ sortedChr = static_cast<char **>( malloc (currChr * sizeof(char *)) );
+#else
+ sortedChr = malloc (currChr * sizeof(char *));
+#endif
+ if (! sortedChr) {
+ fprintf(stderr, "ERROR: Could not allocate space for sorted chromosome list.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ for (idx = 0U; idx < currChr; idx++)
+ *(sortedChr + idx) = *(chr + idx);
+
+ /* lexicographically-sort chr array */
+ qsort(sortedChr, currChr, sizeof(char *), STARCHCAT_compareCStrings);
+
+ /* find count of sorted-chr uniques */
+ for (idx = 0U; idx < currChr - 1; idx++)
+ if ( strcmp(*(sortedChr + idx), *(sortedChr + idx + 1)) != 0 )
+ allSortedChr++;
+ allSortedChr++; /* take into account last element, which is unique */
+
+ /* duplicate unique elements to sorted, unique string array */
+#ifdef __cplusplus
+ sortedUniqChr = static_cast<char **>( malloc (sizeof(char *) * allSortedChr) );
+#else
+ sortedUniqChr = malloc (sizeof(char *) * allSortedChr);
+#endif
+ if (! sortedUniqChr) {
+ fprintf(stderr, "ERROR: Could not allocate space for sorted, unique chromosome list.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ for (idx = 0U, uninitIdx = 0U; idx < currChr - 1; idx++) {
+ if ( strcmp(*(sortedChr + idx), *(sortedChr + idx + 1)) != 0 )
+ *(sortedUniqChr + uninitIdx++) = STARCH_strdup(*(sortedChr + idx));
+ }
+ *(sortedUniqChr + uninitIdx) = STARCH_strdup(*(sortedChr + idx)); /* copy last remaining element in sorted array */
+
+ *chromosomes = sortedUniqChr;
+ *numChr = allSortedChr;
+
+ /* delete temporary chromosome list */
+ if (chr != NULL) {
+ for (idx = 0U; idx < currChr; idx++) {
+ if (*(chr + idx)) {
+#ifdef DEBUG
+ fprintf(stderr, "\tfreeing temporary chromosome... %s\n", *(chr + idx));
+#endif
+ free( *(chr + idx) );
+ *(chr + idx) = NULL;
+ }
+ }
+ free(chr);
+ chr = NULL;
+ }
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT_compareCStrings (const void *a, const void *b)
+{
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCHCAT_compareCStrings() ---\n");
+#endif
+#ifdef __cplusplus
+ char *ca = reinterpret_cast<char *>(const_cast<void *>(a));
+ char *cb = reinterpret_cast<char *>(const_cast<void *>(b));
+
+ return strcmp(*(reinterpret_cast<const char **>(ca)), *(reinterpret_cast<const char **>(cb)));
+#else
+ return strcmp(*(const char **)a, *(const char **)b);
+#endif
+}
+
+int
+STARCHCAT_allocMetadataRecords (MetadataRecord **mdRecords, const unsigned int numRecords)
+{
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCHCAT_allocMetadataRecords() ---\n");
+#endif
+ unsigned int recIdx = 0U;
+ MetadataRecord *instance = NULL;
+
+ if (*mdRecords != NULL) {
+ fprintf(stderr, "ERROR: Metadata records are not empty.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+#ifdef DEBUG
+ fprintf(stderr, "\tallocating space for %u records...\n", numRecords);
+#endif
+
+#ifdef __cplusplus
+ *mdRecords = static_cast<MetadataRecord *>( malloc( sizeof(MetadataRecord) * numRecords ) );
+#else
+ *mdRecords = malloc( sizeof(MetadataRecord) * numRecords );
+#endif
+
+ if (*mdRecords == NULL) {
+ fprintf(stderr, "ERROR: Could not allocate space for metadata records.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ for (recIdx = 0U; recIdx < numRecords; recIdx++) {
+ instance = *mdRecords + recIdx;
+ instance->metadata = NULL;
+ instance->filename = NULL;
+ instance->fp = NULL;
+ instance->type = STARCH_DEFAULT_COMPRESSION_TYPE;
+ instance->hFlag = kStarchFalse;
+ instance->av = NULL;
+ }
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT_freeMetadataRecords (MetadataRecord **mdRecords, const unsigned int numRecords)
+{
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCHCAT_freeMetadataRecords() ---\n");
+#endif
+ unsigned int recIdx = 0U;
+ MetadataRecord *instance = NULL;
+
+ if (! *mdRecords)
+ return STARCHCAT_EXIT_SUCCESS;
+
+ for (recIdx = 0U; recIdx < numRecords; recIdx++) {
+#ifdef DEBUG
+ fprintf(stderr, "\tattempting to free record %u (of %u)...\n", (recIdx + 1), numRecords);
+#endif
+ if (mdRecords[recIdx]) {
+ instance = *mdRecords + recIdx;
+ if (instance->filename)
+ free(instance->filename), instance->filename = NULL;
+ if (instance->metadata)
+ STARCH_freeMetadata( &(instance->metadata) ), instance->metadata = NULL;
+ if (instance->fp)
+ fclose(instance->fp), instance->fp = NULL;
+ if (instance->av)
+ free(instance->av), instance->av = NULL;
+ if (instance->cTime)
+ free(instance->cTime), instance->cTime = NULL;
+ }
+ }
+
+#ifdef DEBUG
+ fprintf(stderr, "\t...returning...\n");
+#endif
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT_buildMetadataRecords (json_t ***metadataJSONs, MetadataRecord **mdRecords, const unsigned int firstArgc, const int argc, const char **argv)
+{
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCHCAT_buildMetadataRecords() ---\n");
+#endif
+ unsigned int idx = 0U;
+ unsigned int realIdx = 0U;
+ FILE *inFilePtr = NULL;
+ char *inFile = NULL;
+ Metadata *md = NULL;
+ CompressionType inType = STARCH_DEFAULT_COMPRESSION_TYPE;
+ ArchiveVersion *version = NULL;
+ char *creationTimestamp = NULL;
+ char *cTime = NULL;
+ char *note = NULL;
+ uint64_t mdOffset = 0;
+ Boolean hFlag = kStarchFalse;
+ MetadataRecord *mdRecord = NULL;
+ const Boolean suppressErrorMsgs = kStarchFalse; /* i.e., we want to see error messages */
+ const Boolean preserveJSONRef = kStarchTrue;
+ json_t *mdJSON = NULL;
+ time_t creationTime;
+ struct tm *creationTimeInformation = NULL;
+ size_t creationTimestampLength = STARCH_CREATION_TIMESTAMP_LENGTH;
+ unsigned int numGzipRecs = 0U;
+
+#ifdef __cplusplus
+ for (idx = firstArgc, realIdx = 0U; idx < static_cast<unsigned int>( argc ); idx++, realIdx++)
+#else
+ for (idx = firstArgc, realIdx = 0U; idx < (unsigned int) argc; idx++, realIdx++)
+#endif
+ {
+ mdRecord = (*mdRecords + realIdx);
+
+ /* reset */
+ inFilePtr = NULL;
+#ifdef __cplusplus
+ inFile = const_cast<char *>( argv[idx] );
+#else
+ inFile = (char *) argv[idx];
+#endif
+ md = NULL;
+ inType = STARCH_DEFAULT_COMPRESSION_TYPE;
+ version = NULL;
+ hFlag = kStarchFalse;
+
+ /* debug */
+#ifdef DEBUG
+ fprintf(stderr, "\tidx/realIdx: %d/%d\n", idx, realIdx);
+ fprintf(stderr, "\topening file: %s\n", inFile);
+#endif
+
+ /* parse the archive file's metadata */
+ if ( STARCH_readJSONMetadata( &mdJSON,
+ &inFilePtr,
+#ifdef __cplusplus
+ reinterpret_cast<const char *>( inFile ),
+#else
+ (const char *) inFile,
+#endif
+ &md,
+ &inType,
+ &version,
+ &cTime,
+ ¬e,
+ &mdOffset,
+ &hFlag,
+ suppressErrorMsgs,
+ preserveJSONRef) != STARCH_EXIT_SUCCESS ) {
+ fprintf(stderr, "ERROR: Could not read metadata from archive: %s (is this a starch file?)\n", inFile);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+ /* set metadata JSON object reference */
+ if (!mdJSON) {
+ fprintf(stderr, "ERROR: JSON object is empty -- something went wrong with extraction\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ *(*metadataJSONs + realIdx) = mdJSON;
+
+ /* debug */
+
+#ifdef DEBUG
+ switch (inType) {
+ case kBzip2: {
+ fprintf(stderr, "\ttype: bzip2\n");
+ break;
+ }
+ case kGzip: {
+ fprintf(stderr, "\ttype: gzip\n");
+ break;
+ }
+ case kUndefined: {
+ fprintf(stderr, "ERROR: Undefined compression type in archive header.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ }
+#endif
+
+ if (hFlag == kStarchTrue) {
+ fprintf(stderr, "ERROR: This application does not currently support starch archives with header information.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+ /* assignment */
+ mdRecord->filename = STARCH_strdup(inFile);
+#ifdef __cplusplus
+ mdRecord->metadata = STARCH_copyMetadata(reinterpret_cast<const Metadata *>( md ));
+#else
+ mdRecord->metadata = STARCH_copyMetadata((const Metadata *) md);
+#endif
+ mdRecord->fp = inFilePtr;
+ mdRecord->type = inType;
+ mdRecord->hFlag = hFlag;
+ mdRecord->mdOffset = mdOffset;
+#ifdef __cplusplus
+ mdRecord->av = STARCH_copyArchiveVersion(reinterpret_cast<const ArchiveVersion *>( version ));
+#else
+ mdRecord->av = STARCH_copyArchiveVersion((const ArchiveVersion *) version);
+#endif
+
+ if (!cTime) {
+ time(&creationTime);
+ creationTimeInformation = localtime(&creationTime);
+
+#ifdef __cplusplus
+ creationTimestamp = static_cast<char *>( malloc(creationTimestampLength) );
+#else
+ creationTimestamp = (char *) malloc(creationTimestampLength);
+#endif
+
+ if (!creationTimestamp) {
+ fprintf(stderr, "[unstarch] - Error: Could not instantiate temporary creation timestamp string\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ strftime(creationTimestamp, creationTimestampLength, "%Y-%m-%dT%H:%M:%S%z", creationTimeInformation);
+
+#ifdef __cplusplus
+ cTime = static_cast<char *>( malloc(strlen(creationTimestamp) + 1) );
+#else
+ cTime = malloc(strlen(creationTimestamp) + 1);
+#endif
+
+ if (!cTime) {
+ fprintf(stderr, "[unstarch] - Error: Could not instantiate creation timestamp string\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ strncpy(cTime, creationTimestamp, strlen(creationTimestamp) + 1);
+ free(creationTimestamp);
+ creationTimestamp = NULL;
+ }
+ mdRecord->cTime = cTime;
+
+ if (inType == kGzip) {
+ if (mdRecord->av->major == 1)
+ numGzipRecs++;
+ /*
+ if (numGzipRecs >= 2) {
+ fprintf(stderr, "ERROR: At this time, starchcat cannot stitch two or more gzip-backed v1.x archives.\n\tPlease use starchcat to upgrade each gzip-backed v1.x archive individually,\n\tand then restitch the resulting updated archives. This feature will be\n\tadded in a later update.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ */
+ }
+
+#ifdef DEBUG
+ fprintf(stderr, "\t---\n");
+#endif
+
+ /* check archive version concurrency */
+#ifdef __cplusplus
+ if (STARCHCAT_isArchiveNewer(reinterpret_cast<const ArchiveVersion *>( mdRecord->av )) == kStarchTrue) {
+#else
+ if (STARCHCAT_isArchiveNewer((const ArchiveVersion *) mdRecord->av) == kStarchTrue) {
+#endif
+ fprintf(stderr, "ERROR: Archive [%s] is newer than this binary [archive: %d.%d.%d; binary: %d.%d.%d]. Please update your toolkit to add support for this archive.\n",
+ mdRecord->filename,
+ mdRecord->av->major,
+ mdRecord->av->minor,
+ mdRecord->av->revision,
+ STARCH_MAJOR_VERSION,
+ STARCH_MINOR_VERSION,
+ STARCH_REVISION_VERSION);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+ /* cleanup */
+ if (md) {
+ STARCH_freeMetadata(&md);
+ md = NULL;
+ }
+ if (version) {
+ free(version);
+ version = NULL;
+ }
+ }
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+Boolean
+STARCHCAT_fileExists (const char *fn)
+{
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCHCAT_fileExists() ---\n");
+#endif
+ struct stat buf;
+ int i = stat (fn, &buf);
+
+ /*
+ Regarding 64-bit support
+ cf. http://www.gnu.org/s/libc/manual/html_node/Reading-Attributes.html
+
+ When the sources are compiled with _FILE_OFFSET_BITS == 64 this function is
+ available under the name stat and so transparently replaces the interface for
+ small files on 32-bit machines.
+ */
+
+ if (i == 0)
+ return kStarchTrue;
+
+ return kStarchFalse;
+}
+
+void
+STARCHCAT_printUsage (int errorType)
+{
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCHCAT_printUsage() ---\n");
+#endif
+ char *avStr = NULL;
+
+#ifdef __cplusplus
+ avStr = static_cast<char *>( malloc (STARCH_ARCHIVE_VERSION_STRING_LENGTH) );
+#else
+ avStr = malloc (STARCH_ARCHIVE_VERSION_STRING_LENGTH);
+#endif
+
+ if (avStr) {
+ int result = sprintf (avStr, "%d.%d.%d", STARCH_MAJOR_VERSION, STARCH_MINOR_VERSION, STARCH_REVISION_VERSION);
+ if (result != -1) {
+ switch (errorType) {
+ case STARCHCAT_VERSION_ERROR:
+ fprintf(stdout, "%s\n binary version: %s (creates archive version: %s)\n", name, BEDOPS::revision(), avStr);
+ break;
+ case STARCHCAT_FATAL_ERROR:
+ case STARCHCAT_HELP_ERROR:
+ default:
+ fprintf(stderr, "%s\n citation: %s\n version: %s\n authors: %s\n%s\n", name, BEDOPS::citation(), BEDOPS::revision(), authors, usage);
+ break;
+ }
+ }
+ free(avStr);
+ }
+}
+
+void
+STARCHCAT_printRevision ()
+{
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCHCAT_printRevision() ---\n");
+#endif
+ char *avStr = NULL;
+
+#ifdef __cplusplus
+ avStr = static_cast<char *>( malloc (STARCH_ARCHIVE_VERSION_STRING_LENGTH) );
+#else
+ avStr = malloc (STARCH_ARCHIVE_VERSION_STRING_LENGTH);
+#endif
+
+ if (avStr != NULL) {
+ int result = sprintf (avStr, "%d.%d.%d", STARCH_MAJOR_VERSION, STARCH_MINOR_VERSION, STARCH_REVISION_VERSION);
+ if (result != -1) {
+ fprintf(stderr, "%s\n binary version: %s (creates archive version: %s)\n", name, BEDOPS::revision(), avStr);
+ free(avStr);
+ }
+ }
+}
+
+Boolean
+STARCHCAT_isArchiveConcurrent (const ArchiveVersion *av)
+{
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCHCAT_isArchiveConcurrent() ---\n");
+#endif
+
+ if ((av->major == STARCH_MAJOR_VERSION) &&
+ (av->minor == STARCH_MINOR_VERSION) &&
+ (av->revision == STARCH_REVISION_VERSION))
+ return kStarchTrue;
+
+ return kStarchFalse;
+}
+
+Boolean
+STARCHCAT_isArchiveNewerThan (const ArchiveVersion *av, const ArchiveVersion *comp)
+{
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCHCAT_isArchiveNewerThan() ---\n");
+#endif
+
+ if ( (av->major > comp->major)
+ ||
+ ( (av->major == comp->major) &&
+ (av->minor > comp->minor) )
+ ||
+ ((av->major == comp->major) &&
+ (av->minor == comp->minor) &&
+ (av->revision > comp->revision) )
+ )
+ return kStarchTrue;
+
+ return kStarchFalse;
+}
+
+Boolean
+STARCHCAT_isArchiveConcurrentOrOlder (const ArchiveVersion *av)
+{
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCHCAT_isArchiveConcurrentOrOlder() ---\n");
+#endif
+
+ if ( ( (av->major < STARCH_MAJOR_VERSION) ) ||
+ ( (av->major == STARCH_MAJOR_VERSION) &&
+ (av->minor <= STARCH_MINOR_VERSION) &&
+ (av->revision <= STARCH_REVISION_VERSION) )
+ )
+ return kStarchTrue;
+
+ return kStarchFalse;
+}
+
+Boolean
+STARCHCAT_isArchiveNewer (const ArchiveVersion *av)
+{
+#ifdef DEBUG
+ fprintf (stderr, "\n--- STARCHCAT_isArchiveNewer() ---\n");
+ fprintf (stderr, "\tcurrent archive version: %d.%d.%d\n", av->major, av->minor, av->revision);
+#endif
+
+ if (((av->major == STARCH_MAJOR_VERSION) && (av->minor > STARCH_MINOR_VERSION) && (av->revision >= STARCH_REVISION_VERSION)) ||
+ (av->major > STARCH_MAJOR_VERSION))
+ return kStarchTrue;
+
+ return kStarchFalse;
+}
+
+Boolean
+STARCHCAT_allocMetadataJSONObjects (json_t ***mdJSONs, const unsigned int numRecs)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCHCAT_allocMetadataJSONObjects() ---\n");
+ fprintf(stderr, "\tallocating space for %u records...\n", numRecs);
+#endif
+
+#ifdef __cplusplus
+ *mdJSONs = static_cast<json_t **>( malloc(sizeof(json_t *) * numRecs) );
+#else
+ *mdJSONs = malloc(sizeof(json_t *) * numRecs);
+#endif
+
+ if (!*mdJSONs)
+ return kStarchFalse;
+
+#ifdef DEBUG
+ fprintf(stderr, "\tallocated %u records...\n", numRecs);
+#endif
+
+ return kStarchTrue;
+}
+
+Boolean
+STARCHCAT_freeMetadataJSONObjects (json_t ***mdJSONs, const unsigned int numRecs)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCHCAT_freeMetadataJSONObjects() ---\n");
+#endif
+ unsigned int idx;
+
+ for (idx = 0U; idx < numRecs; idx++)
+ json_decref(*(*mdJSONs + idx));
+
+ return kStarchTrue;
+}
+
+Boolean
+STARCHCAT_checkMetadataJSONVersions (json_t ***mdJSONs, const unsigned int numRecs)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCHCAT_checkMetadataJSONVersions() ---\n");
+#endif
+ unsigned int idx;
+ json_t *mdJSON;
+ json_t *streamArchive = NULL;
+ json_t *streamArchiveVersion = NULL;
+ const char *jsonObjKey = NULL;
+ json_t *jsonObjValue = NULL;
+ const char *jsonObjAvKey = NULL;
+ json_t *jsonObjAvValue = NULL;
+ ArchiveVersion *av = NULL;
+
+#ifdef __cplusplus
+ av = static_cast<ArchiveVersion *>( malloc (sizeof(ArchiveVersion)) );
+#else
+ av = malloc (sizeof(ArchiveVersion));
+#endif
+
+ if (!av) {
+ fprintf(stderr, "ERROR: Could not allocate space for archive version object\n");
+ return kStarchFalse;
+ }
+
+ for (idx = 0U; idx < numRecs; idx++) {
+ mdJSON = *(*mdJSONs + idx);
+ if (!mdJSON) {
+ fprintf(stderr, "ERROR: Could not find metadata JSON object reference\n");
+ return kStarchFalse;
+ }
+
+ streamArchive = json_object_get(mdJSON, STARCH_METADATA_STREAM_ARCHIVE_KEY);
+ if (streamArchive) {
+ json_object_foreach(streamArchive, jsonObjKey, jsonObjValue)
+ {
+ if (strcmp(jsonObjKey, STARCH_METADATA_STREAM_ARCHIVE_VERSION_KEY) == 0) {
+ streamArchiveVersion = json_object_get(streamArchive, STARCH_METADATA_STREAM_ARCHIVE_VERSION_KEY);
+ json_object_foreach(streamArchiveVersion, jsonObjAvKey, jsonObjAvValue)
+ {
+#ifdef __cplusplus
+ if ( strcmp(jsonObjAvKey, STARCH_METADATA_STREAM_ARCHIVE_VERSION_MAJOR_KEY) == 0)
+ av->major = static_cast<int>( json_integer_value(jsonObjAvValue) );
+ else if ( strcmp(jsonObjAvKey, STARCH_METADATA_STREAM_ARCHIVE_VERSION_MINOR_KEY) == 0)
+ av->minor = static_cast<int>( json_integer_value(jsonObjAvValue) );
+ else if ( strcmp(jsonObjAvKey, STARCH_METADATA_STREAM_ARCHIVE_VERSION_REVISION_KEY) == 0)
+ av->revision = static_cast<int>( json_integer_value(jsonObjAvValue) );
+#else
+ if ( strcmp(jsonObjAvKey, STARCH_METADATA_STREAM_ARCHIVE_VERSION_MAJOR_KEY) == 0)
+ av->major = (int) json_integer_value(jsonObjAvValue);
+ else if ( strcmp(jsonObjAvKey, STARCH_METADATA_STREAM_ARCHIVE_VERSION_MINOR_KEY) == 0)
+ av->minor = (int) json_integer_value(jsonObjAvValue);
+ else if ( strcmp(jsonObjAvKey, STARCH_METADATA_STREAM_ARCHIVE_VERSION_REVISION_KEY) == 0)
+ av->revision = (int) json_integer_value(jsonObjAvValue);
+#endif
+ }
+ streamArchiveVersion = NULL;
+ }
+ }
+ streamArchive = NULL;
+ }
+ else {
+ fprintf(stderr, "ERROR: Could not retrieve stream archive object from metadata JSON string\n");
+ return kStarchFalse;
+ }
+
+#ifdef __cplusplus
+ if (STARCHCAT_isArchiveNewer(reinterpret_cast<const ArchiveVersion *>( av )) == kStarchTrue) {
+#else
+ if (STARCHCAT_isArchiveNewer((const ArchiveVersion *) av) == kStarchTrue) {
+#endif
+ fprintf(stderr, "ERROR: Cannot process newer archive (v%d.%d.%d) with older version of tools (v%d.%d.%d). Please update your toolkit.\n", av->major, av->minor, av->revision, STARCH_MAJOR_VERSION, STARCH_MINOR_VERSION, STARCH_REVISION_VERSION);
+ return kStarchFalse;
+ }
+ json_decref(mdJSON);
+ mdJSON = NULL;
+ }
+
+ return kStarchTrue;
+}
+
+int
+STARCHCAT2_mergeChromosomeStreams (const ChromosomeSummaries *chrSums, const CompressionType outputType, const char *note, size_t *cumulativeOutputSize)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCHCAT2_mergeChromosomeStreams() ---\n");
+#endif
+ char *outputTag = NULL;
+ unsigned int chrIdx = 0U;
+ ChromosomeSummary *summary = NULL;
+ CompressionType inputType;
+ MetadataRecord *inputRecord = NULL;
+ char *inputChr = NULL;
+ Metadata *outputMd = NULL;
+ Metadata *headOutputMd = NULL;
+ Boolean firstOutputMdFlag = kStarchTrue;
+ Boolean hFlag = kStarchFalse; /* starchcat does not currently support headers */
+ char *dynamicMdBuffer = NULL;
+ char *dynamicMdBufferCopy = NULL;
+ unsigned char sha1Digest[STARCH2_MD_FOOTER_SHA1_LENGTH];
+ char *base64EncodedSha1Digest = NULL;
+ char footerCumulativeRecordSizeBuffer[STARCH2_MD_FOOTER_CUMULATIVE_RECORD_SIZE_LENGTH + 1] = {0};
+ char footerRemainderBuffer[STARCH2_MD_FOOTER_REMAINDER_LENGTH + 1] = {0};
+ char footerBuffer[STARCH2_MD_FOOTER_LENGTH + 1] = {0};
+ ArchiveVersion *av120 = NULL;
+ int footerCumulativeRecordSizeBufferCharsCopied = -1;
+
+ if (!chrSums) {
+ fprintf(stderr, "ERROR: Chromosome summary is empty. Could not merge.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+#ifdef __cplusplus
+ av120 = static_cast<ArchiveVersion *>( malloc (sizeof(ArchiveVersion)) );
+#else
+ av120 = malloc (sizeof(ArchiveVersion));
+#endif
+
+ if (!av120) {
+ fprintf(stderr, "ERROR: Could not allocate space to archive version test struct.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ av120->major = 1, av120->minor = 2, av120->revision = 0;
+
+ /*
+ When we initially built the chromosome list, we applied a
+ lexicographical sort, so that we can process and export
+ streams in that order.
+
+ We now loop through each chromosome of the summary
+ records, in order to determine how many files need
+ to be extracted to build the merged output stream.
+
+ If there is only one source file associated with a given
+ chromosome, then we can simply copy the byte range over
+ (after calculating the relevant file offsets) but **only**
+ if the source compression type matches the output type **and**
+ if the starch archive version is concurrent or newer than
+ the version of starchcat.
+
+ Otherwise, we must extract to the output stream and recompress
+ it into the new output type.
+
+ If there are two or more files associated with a chromosome,
+ then we need to extract a BED line from each file pointer,
+ compare BED coordinates from all source streams, and print the
+ next closest coordinate to the output stream.
+ */
+
+ STARCH_buildProcessIDTag( &outputTag );
+
+ for (chrIdx = 0U; chrIdx < chrSums->numChromosomes; chrIdx++)
+ {
+ summary = chrSums->summary + chrIdx;
+
+ if (summary->numRecords < 1) {
+ /* If we get here, something went wrong with a data structure. */
+ fprintf(stderr, "ERROR: Summaries pointer corrupt? Could not locate records in summaries.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+ /*
+ If there is only one record (and archive versions are concurrent),
+ compare output and input types and either copy bytes over directly,
+ or retransform data with new output type and/or newer version.
+
+ Note that we do not transform data if:
+
+ 1) data are newer than v1.2 (inclusive)
+ 2) data are older than the current build's archive version support
+ 3) we are staying with original bzip2 or gzip stream compression type
+
+ Otherwise, we need to rewrite to obtain features lacking in pre-v1.2
+ archives, or extract/recompress to change stream compression type.
+ */
+
+ else if (summary->numRecords == 1) {
+ inputRecord = *(summary->records);
+ inputChr = summary->chromosome;
+ inputType = inputRecord->type;
+ if (!inputRecord->av) {
+ fprintf(stderr, "ERROR: Input record has no archive version data\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ if (!av120) {
+ fprintf(stderr, "ERROR: The av120 variable has no archive version data\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+#ifdef __cplusplus
+ if ( (inputType == outputType) &&
+ (STARCHCAT_isArchiveConcurrentOrOlder(reinterpret_cast<const ArchiveVersion *>( inputRecord->av )) == kStarchTrue) &&
+ (STARCHCAT_isArchiveNewerThan(reinterpret_cast<const ArchiveVersion *>( inputRecord->av ), av120)) ) {
+#else
+ if ( (inputType == outputType) &&
+ (STARCHCAT_isArchiveConcurrentOrOlder((const ArchiveVersion *) inputRecord->av) == kStarchTrue) &&
+ (STARCHCAT_isArchiveNewerThan((const ArchiveVersion *) inputRecord->av, av120)) ) {
+#endif
+
+#ifdef __cplusplus
+ assert( STARCHCAT2_copyInputRecordToOutput( &outputMd,
+ reinterpret_cast<const char *>( outputTag ),
+ static_cast<const CompressionType>( outputType ),
+ reinterpret_cast<const char *>( inputChr ),
+ reinterpret_cast<const MetadataRecord *>( inputRecord ),
+ cumulativeOutputSize) );
+#else
+ assert( STARCHCAT2_copyInputRecordToOutput( &outputMd,
+ (const char *) outputTag,
+ (const CompressionType) outputType,
+ (const char *) inputChr,
+ (const MetadataRecord *) inputRecord,
+ cumulativeOutputSize) );
+#endif
+ }
+ else {
+#ifdef __cplusplus
+ assert( STARCHCAT2_rewriteInputRecordToOutput( &outputMd,
+ reinterpret_cast<const char *>( outputTag ),
+ static_cast<const CompressionType>( outputType ),
+ reinterpret_cast<const char *>( inputChr ),
+ reinterpret_cast<const MetadataRecord *>( inputRecord ),
+ cumulativeOutputSize) );
+#else
+ assert( STARCHCAT2_rewriteInputRecordToOutput( &outputMd,
+ (const char *) outputTag,
+ (const CompressionType) outputType,
+ (const char *) inputChr,
+ (const MetadataRecord *) inputRecord,
+ cumulativeOutputSize) );
+#endif
+ }
+ if (!outputMd) {
+ fprintf(stderr, "ERROR: Output metadata structure is empty after adding data. Something went wrong in mid-stream.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ /* *cumulativeOutputSize += outputMd->size; */
+ }
+
+ /*
+ In this case, we have a mix of records for a given chromosome. We walk through
+ input records line by line, returning the next lexicographically ordered BED
+ element from the set of records. The final result is transformed and compressed,
+ and a new record added to the output metadata.
+ */
+
+ else {
+#ifdef __cplusplus
+ assert( STARCHCAT2_mergeInputRecordsToOutput( reinterpret_cast<const char *>( summary->chromosome ),
+ &outputMd,
+ reinterpret_cast<const char *>( outputTag ),
+ static_cast<const CompressionType>( outputType ),
+ reinterpret_cast<const ChromosomeSummary *>( summary ),
+ cumulativeOutputSize) );
+#else
+ assert( STARCHCAT2_mergeInputRecordsToOutput((const char *) summary->chromosome,
+ &outputMd,
+ (const char *) outputTag,
+ (const CompressionType) outputType,
+ (const ChromosomeSummary *) summary,
+ cumulativeOutputSize) );
+#endif
+ }
+
+ if (!outputMd) {
+ fprintf(stderr, "ERROR: Output metadata structure is empty after adding data. Something went wrong in mid-stream.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+ /*
+ Grab a pointer to the head element of the output metadata. When we
+ export the metadata to the final archive, we need to walk through the
+ metadata from the first record.
+ */
+
+ if (firstOutputMdFlag == kStarchTrue) {
+ headOutputMd = outputMd;
+ firstOutputMdFlag = kStarchFalse;
+ }
+ }
+
+ /* stitch up compressed files into one archive, along with metadata header */
+#ifdef __cplusplus
+ assert(STARCH_writeJSONMetadata(reinterpret_cast<const Metadata *>( headOutputMd ),
+ &dynamicMdBuffer,
+ const_cast<CompressionType *>( &outputType ),
+ static_cast<const Boolean>( hFlag ),
+ static_cast<const char *>( note )));
+#else
+ assert(STARCH_writeJSONMetadata((const Metadata *) headOutputMd,
+ &dynamicMdBuffer,
+ (CompressionType *) &outputType,
+ (const Boolean) hFlag,
+ (const char *) note));
+#endif
+ fwrite(dynamicMdBuffer, 1, strlen(dynamicMdBuffer), stdout);
+ fflush(stdout);
+
+ /* write metadata signature */
+ dynamicMdBufferCopy = STARCH_strdup(dynamicMdBuffer);
+#ifdef __cplusplus
+ STARCH_SHA1_All(reinterpret_cast<const unsigned char *>( dynamicMdBuffer ),
+ strlen(dynamicMdBuffer),
+ sha1Digest);
+#else
+ STARCH_SHA1_All((const unsigned char *) dynamicMdBuffer,
+ strlen(dynamicMdBuffer),
+ sha1Digest);
+#endif
+ free(dynamicMdBufferCopy);
+
+ /* encode signature in base64 encoding */
+#ifdef __cplusplus
+ STARCH_encodeBase64(&base64EncodedSha1Digest,
+ static_cast<const size_t>( STARCH2_MD_FOOTER_BASE64_ENCODED_SHA1_LENGTH ),
+ reinterpret_cast<const unsigned char *>( sha1Digest ),
+ static_cast<const size_t>( STARCH2_MD_FOOTER_SHA1_LENGTH ));
+#else
+ STARCH_encodeBase64(&base64EncodedSha1Digest,
+ (const size_t) STARCH2_MD_FOOTER_BASE64_ENCODED_SHA1_LENGTH,
+ (const unsigned char *) sha1Digest,
+ (const size_t) STARCH2_MD_FOOTER_SHA1_LENGTH);
+#endif
+
+ /* build footer */
+#ifdef __cplusplus
+ /* we cast this size_t to an unsigned long long in order to allow warning-free compilation with an ISO C++ compiler like g++ */
+ footerCumulativeRecordSizeBufferCharsCopied = sprintf(footerCumulativeRecordSizeBuffer, "%020llu", static_cast<unsigned long long>( *cumulativeOutputSize ));
+#else
+ footerCumulativeRecordSizeBufferCharsCopied = sprintf(footerCumulativeRecordSizeBuffer, "%020llu", (unsigned long long) *cumulativeOutputSize);
+#endif
+
+ /* ensure that we built a correct footer with the right record size */
+ assert(footerCumulativeRecordSizeBufferCharsCopied == STARCH2_MD_FOOTER_CUMULATIVE_RECORD_SIZE_LENGTH);
+
+ memcpy(footerBuffer, footerCumulativeRecordSizeBuffer, strlen(footerCumulativeRecordSizeBuffer));
+ memcpy(footerBuffer + STARCH2_MD_FOOTER_CUMULATIVE_RECORD_SIZE_LENGTH, base64EncodedSha1Digest, STARCH2_MD_FOOTER_BASE64_ENCODED_SHA1_LENGTH - 1); /* strip trailing null */
+#ifdef __cplusplus
+ memset(footerRemainderBuffer, STARCH2_MD_FOOTER_REMAINDER_UNUSED_CHAR, static_cast<size_t>( STARCH2_MD_FOOTER_REMAINDER_LENGTH ));
+#else
+ memset(footerRemainderBuffer, STARCH2_MD_FOOTER_REMAINDER_UNUSED_CHAR, (size_t) STARCH2_MD_FOOTER_REMAINDER_LENGTH);
+#endif
+
+ memcpy(footerBuffer + STARCH2_MD_FOOTER_CUMULATIVE_RECORD_SIZE_LENGTH + STARCH2_MD_FOOTER_BASE64_ENCODED_SHA1_LENGTH - 1, footerRemainderBuffer, STARCH2_MD_FOOTER_REMAINDER_LENGTH); /* don't forget to offset pointer index by -1 for base64-sha1's null */
+ footerBuffer[STARCH2_MD_FOOTER_CUMULATIVE_RECORD_SIZE_LENGTH + STARCH2_MD_FOOTER_BASE64_ENCODED_SHA1_LENGTH - 1 + STARCH2_MD_FOOTER_REMAINDER_LENGTH - 1] = '\0';
+ footerBuffer[STARCH2_MD_FOOTER_CUMULATIVE_RECORD_SIZE_LENGTH + STARCH2_MD_FOOTER_BASE64_ENCODED_SHA1_LENGTH - 1 + STARCH2_MD_FOOTER_REMAINDER_LENGTH - 2] = '\n';
+ fprintf(stdout, "%s", footerBuffer);
+ fflush(stdout);
+
+ /* cleanup */
+ if (dynamicMdBuffer)
+ free(dynamicMdBuffer), dynamicMdBuffer = NULL;
+ if (base64EncodedSha1Digest)
+ free(base64EncodedSha1Digest), base64EncodedSha1Digest = NULL;
+ if (av120)
+ free(av120), av120 = NULL;
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT2_setupBzip2OutputStream (BZFILE **bzStream, FILE *outStream)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCHCAT2_setupBzip2OutputStream() ---\n");
+#endif
+ int bzError;
+
+ *bzStream = BZ2_bzWriteOpen(&bzError, outStream, STARCH_BZ_COMPRESSION_LEVEL, STARCH_BZ_VERBOSITY, STARCH_BZ_WORKFACTOR);
+
+ if (!*bzStream) {
+ fprintf(stderr, "ERROR: Could not instantiate BZFILE pointer\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ else if (bzError != BZ_OK) {
+ switch (bzError) {
+ case BZ_CONFIG_ERROR: {
+ fprintf(stderr, "ERROR: Bzip2 library has been miscompiled\n");
+ break;
+ }
+ case BZ_PARAM_ERROR: {
+ fprintf(stderr, "ERROR: Stream is null, or block size, verbosity and work factor parameters are invalid\n");
+ break;
+ }
+ case BZ_IO_ERROR: {
+ fprintf(stderr, "ERROR: The value of ferror(outStream) is nonzero -- check outStream\n");
+ break;
+ }
+ case BZ_MEM_ERROR: {
+ fprintf(stderr, "ERROR: Not enough memory is available\n");
+ break;
+ }
+ default: {
+ fprintf(stderr, "ERROR: Unknown error with BZ2_bzWriteOpen() (err: %d)\n", bzError);
+ break;
+ }
+ }
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT2_setupGzipOutputStream (z_stream *zStream)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCHCAT2_setupGzipOutputStream() ---\n");
+#endif
+ int zError;
+ z_stream *zStreamPtr = zStream;
+
+ zStreamPtr->zalloc = Z_NULL;
+ zStreamPtr->zfree = Z_NULL;
+ zStreamPtr->opaque = Z_NULL;
+
+ /* cf. http://www.zlib.net/manual.html for level information */
+#ifdef __cplusplus
+ zError = deflateInit2cpp(zStreamPtr, STARCH_Z_COMPRESSION_LEVEL, Z_DEFLATED, STARCH_Z_WINDOW_BITS, STARCH_Z_MEMORY_LEVEL, Z_DEFAULT_STRATEGY);
+#else
+ zError = deflateInit2(zStreamPtr, STARCH_Z_COMPRESSION_LEVEL, Z_DEFLATED, STARCH_Z_WINDOW_BITS, STARCH_Z_MEMORY_LEVEL, Z_DEFAULT_STRATEGY);
+#endif
+ /* zError = deflateInit(zStreamPtr, STARCH_Z_COMPRESSION_LEVEL); */
+
+ if (zError != Z_OK) {
+ switch (zError) {
+ case Z_MEM_ERROR: {
+ fprintf(stderr, "ERROR: Not enough memory is available\n");
+ break;
+ }
+ case Z_STREAM_ERROR: {
+ fprintf(stderr, "ERROR: Gzip initialization parameter is invalid (e.g., invalid method)\n");
+ break;
+ }
+ case Z_VERSION_ERROR: {
+ fprintf(stderr, "ERROR: the zlib library version is incompatible with the version assumed by the caller (ZLIB_VERSION)\n");
+ break;
+ }
+ default: {
+ fprintf(stderr, "ERROR: Unknown error with deflateInit() (err: %d)\n", zError);
+ break;
+ }
+ }
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT2_testSummaryForChromosomeExistence (const char *chrName, const ChromosomeSummary *chrSummary, const size_t recIndex)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCHCAT2_testSummaryForChromosomeExistence() ---\n");
+#endif
+
+ MetadataRecord *rec = NULL;
+ MetadataRecord **recs = NULL;
+ Metadata *md = NULL;
+ Metadata *iter = NULL;
+
+ recs = chrSummary->records;
+ rec = recs[recIndex];
+
+ md = rec->metadata;
+ for (iter = md; iter != NULL; iter = iter->next) {
+ if (strcmp(iter->chromosome, chrName) == 0)
+ return STARCHCAT_EXIT_SUCCESS;
+ }
+
+ return STARCHCAT_EXIT_FAILURE;
+}
+
+int
+STARCHCAT2_setupInitialFileOffsets (const char *chrName, const ChromosomeSummary *chrSummary, const size_t recIndex)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCHCAT2_setupInitialFileOffsets() ---\n");
+#endif
+
+ uint64_t offset = 0;
+ MetadataRecord *rec = NULL;
+ MetadataRecord **recs = NULL;
+ Metadata *md = NULL;
+ Metadata *iter = NULL;
+
+ recs = chrSummary->records;
+ rec = recs[recIndex];
+
+ if (rec->av->major == 2)
+ offset = STARCH2_MD_HEADER_BYTE_LENGTH;
+ else if (rec->av->major == 1)
+ offset = rec->mdOffset;
+ md = rec->metadata;
+ for (iter = md; iter != NULL; iter = iter->next) {
+ if (strcmp(iter->chromosome, chrName) == 0)
+ break;
+ else
+ offset += iter->size;
+ }
+
+#ifdef __cplusplus
+ fseeko(rec->fp, static_cast<off_t>( offset ), SEEK_SET);
+#else
+ fseeko(rec->fp, (off_t) offset, SEEK_SET);
+#endif
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT2_setupBzip2InputStream (const size_t recIdx, const ChromosomeSummary *chrSummary, BZFILE **bzStream)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCHCAT2_setupBzip2InputStream() ---\n");
+#endif
+
+ MetadataRecord **inRecs = NULL;
+ MetadataRecord *inRec = NULL;
+ FILE *inFp = NULL;
+ int bzError = BZ_OK;
+
+ inRecs = chrSummary->records;
+ inRec = inRecs[recIdx];
+ inFp = inRec->fp;
+
+ *bzStream = BZ2_bzReadOpen(&bzError, inFp, STARCH_BZ_VERBOSITY, STARCH_BZ_SMALL, NULL, 0);
+
+ if (!*bzStream) {
+ fprintf(stderr, "ERROR: Could not instantiate BZFILE pointer\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ else if (bzError != BZ_OK) {
+ switch (bzError) {
+ case BZ_CONFIG_ERROR: {
+ fprintf(stderr, "ERROR: Bzip2 library was miscompiled. Contact your system administrator.\n");
+ break;
+ }
+ case BZ_PARAM_ERROR: {
+ fprintf(stderr, "ERROR: Input file stream is NULL, small value is invalid, or unused parameters are invalid.\n");
+ break;
+ }
+ case BZ_IO_ERROR: {
+ fprintf(stderr, "ERROR: Error reading the underlying compressed file.\n");
+ break;
+ }
+ case BZ_MEM_ERROR: {
+ fprintf(stderr, "ERROR: Insufficient memory is available for bzip2 setup.\n");
+ break;
+ }
+ default: {
+ fprintf(stderr, "ERROR: Unknown bzip2 error (%d)\n", bzError);
+ break;
+ }
+ }
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT2_setupGzipInputStream (z_stream *zStream)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCHCAT2_setupGzipInputStream() ---\n");
+#endif
+
+ int zError = Z_OK;
+
+ zStream->zalloc = Z_NULL;
+ zStream->zfree = Z_NULL;
+ zStream->opaque = Z_NULL;
+ zStream->avail_in = 0;
+ zStream->next_in = Z_NULL;
+
+ /* cf. http://www.zlib.net/manual.html for level information */
+ zError = inflateInit2(zStream, (15+32));
+ if (zError != Z_OK) {
+ fprintf(stderr, "ERROR: Could not initialize z-stream (%d)\n", zError);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT2_breakdownBzip2InputStream (BZFILE **bzStream)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCHCAT2_breakdownBzip2InputStream() ---\n");
+#endif
+
+ int bzError = BZ_OK;
+
+ BZ2_bzReadClose(&bzError, *bzStream);
+
+ if (bzError != BZ_OK) {
+ fprintf(stderr, "ERROR: Bzip2 error after closing read stream: %d\n", bzError);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT2_breakdownGzipInputStream (z_stream *zStream)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCHCAT2_breakdownGzipInputStream() ---\n");
+#endif
+
+ int zError = Z_OK;
+
+ zError = inflateEnd(zStream);
+
+ if (zError != Z_OK) {
+ fprintf(stderr, "ERROR: Gzip error after closing read stream: %d\n", zError);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT2_breakdownBzip2OutputStream (BZFILE **bzStream, uint64_t *bzOutBytesConsumed, uint64_t *bzOutBytesWritten)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCHCAT2_breakdownBzip2OutputStream() ---\n");
+#endif
+
+ int bzError = BZ_OK;
+ unsigned int nbytes_in_lo32 = 0U;
+ unsigned int nbytes_in_hi32 = 0U;
+ unsigned int nbytes_out_lo32 = 0U;
+ unsigned int nbytes_out_hi32 = 0U;
+
+ BZ2_bzWriteClose64(&bzError, *bzStream, STARCH_BZ_ABANDON, &nbytes_in_lo32, &nbytes_in_hi32, &nbytes_out_lo32, &nbytes_out_hi32);
+
+ if (bzError != BZ_OK) {
+ switch (bzError) {
+ case BZ_SEQUENCE_ERROR: {
+ fprintf(stderr, "ERROR: Bzip2 streams are out of sequence\n");
+ break;
+ }
+ case BZ_IO_ERROR: {
+ fprintf(stderr, "ERROR: There is an error writing the compressed data to the bz stream\n");
+ break;
+ }
+ default: {
+ fprintf(stderr, "ERROR: Unknown error with BZ2_bzWriteClose() (err: %d)\n", bzError);
+ break;
+ }
+ }
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+#ifdef __cplusplus
+ *bzOutBytesConsumed = nbytes_in_lo32 + (static_cast<uint64_t>( nbytes_in_hi32 ) << 32 );
+ *bzOutBytesWritten = nbytes_out_lo32 + (static_cast<uint64_t>( nbytes_out_hi32 ) << 32 );
+#else
+ *bzOutBytesConsumed = nbytes_in_lo32 + ((uint64_t) nbytes_in_hi32 << 32);
+ *bzOutBytesWritten = nbytes_out_lo32 + ((uint64_t) nbytes_out_hi32 << 32);
+#endif
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT2_breakdownGzipOutputStream (z_stream *zStream)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCHCAT2_breakdownGzipOutputStream() ---\n");
+#endif
+
+ z_stream *zStreamPtr = zStream;
+ int zError = Z_OK;
+
+ zError = deflateEnd(zStreamPtr);
+
+ if (zError != Z_OK) {
+ switch (zError) {
+ case Z_STREAM_ERROR: {
+ fprintf(stderr, "ERROR: Z-stream state is inconsistent\n");
+ break;
+ }
+ case Z_DATA_ERROR: {
+ fprintf(stderr, "ERROR: Stream was freed prematurely\n");
+ break;
+ }
+ default: {
+ fprintf(stderr, "ERROR: Unknown error with deflateEnd() (err: %d)\n", zError);
+ break;
+ }
+ }
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+ zStreamPtr->zalloc = Z_NULL;
+ zStreamPtr->zfree = Z_NULL;
+ zStreamPtr->opaque = Z_NULL;
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT2_fillExtractionBufferFromBzip2Stream (Boolean *eofFlag, char *recordChromosome, char *extractionBuffer, size_t *nExtractionBuffer, BZFILE **bzStream, size_t *nBzRead, char *bzRemainderBuf, size_t *nBzRemainderBuf, TransformState *t_state)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCHCAT2_fillExtractionBufferFromBzip2Stream() (%s) ---\n", recordChromosome);
+#endif
+
+ if (*eofFlag == kStarchTrue)
+ return STARCHCAT_EXIT_SUCCESS;
+
+ char *finalBuffer = extractionBuffer;
+ unsigned char *bzReadBuf = NULL;
+ size_t nBzReadBuf = 1024*1024/8;
+ size_t bzBufIndex = 0;
+ int bzError = BZ_OK;
+ unsigned char *bzLineBuf = NULL;
+ size_t bzCharIndex = 0;
+ static const char tab = '\t';
+
+ LineCountType *t_lineIdxPtr = &t_state->t_lineIdx;
+ SignedCoordType *t_startPtr = &t_state->t_start;
+ SignedCoordType *t_pLengthPtr = &t_state->t_pLength;
+ SignedCoordType *t_lastEndPtr = &t_state->t_lastEnd;
+ char *t_firstInputToken = t_state->t_firstInputToken;
+ char *t_secondInputToken = t_state->t_secondInputToken;
+ char *t_currentChromosome = t_state->t_currentChromosome;
+ size_t *t_currentChromosomeLengthPtr = &t_state->t_currentChromosomeLength;
+ SignedCoordType *t_currentStartPtr = &t_state->t_currentStart;
+ SignedCoordType *t_currentStopPtr = &t_state->t_currentStop;
+ char *t_currentRemainder = t_state->t_currentRemainder;
+ size_t *t_currentRemainderLengthPtr = &t_state->t_currentRemainderLength;
+ SignedCoordType *t_lastPositionPtr = &t_state->t_lastPosition;
+ SignedCoordType *t_lcDiffPtr = &t_state->t_lcDiff;
+ size_t *t_nExtractionBuffer = &t_state->t_nExtractionBuffer;
+ size_t *t_nExtractionBufferPos = &t_state->t_nExtractionBufferPos;
+
+ unsigned char *retransformedLineBuffer = NULL;
+ int64_t nRetransformedLineBuffer = 0;
+ int64_t nRetransformedLineBufferPosition = 0;
+ size_t nResizedExtractionBuffer = 0U;
+ char *resizedExtractionBuffer = NULL;
+
+ if (!*bzStream) {
+ fprintf(stderr, "ERROR: Bzip2 stream is NULL. Something went wrong setting up extraction!\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+ if (!finalBuffer) {
+ fprintf(stderr, "ERROR: Extraction buffer is NULL. Something went wrong setting up extraction!\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+#ifdef __cplusplus
+ bzReadBuf = static_cast<unsigned char *>( malloc(STARCH_BZ_BUFFER_MAX_LENGTH) );
+#else
+ bzReadBuf = malloc(STARCH_BZ_BUFFER_MAX_LENGTH);
+#endif
+
+ if (!bzReadBuf) {
+ fprintf(stderr, "ERROR: Could not allocate space for bzip2 transform buffer data. Could not merge.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+#ifdef __cplusplus
+ bzLineBuf = static_cast<unsigned char *>( malloc(TOKENS_MAX_LENGTH) );
+#else
+ bzLineBuf = malloc(TOKENS_MAX_LENGTH);
+#endif
+
+ if (!bzLineBuf) {
+ fprintf(stderr, "ERROR: Could not allocate space for bzip2 line buffer data.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+#ifdef __cplusplus
+ retransformedLineBuffer = static_cast<unsigned char *>( malloc(sizeof(unsigned char) * STARCH_STREAM_METADATA_MAX_LENGTH) );
+#else
+ retransformedLineBuffer = malloc(sizeof(unsigned char) * STARCH_STREAM_METADATA_MAX_LENGTH);
+#endif
+
+ if (!retransformedLineBuffer) {
+ fprintf(stderr, "ERROR: Could not allocate space for bzip2 retransformation buffer data.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+ if (!*bzStream) {
+ fprintf(stderr, "ERROR: *bzStream is not available.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+#ifdef __cplusplus
+ *nBzRead = static_cast<size_t>( BZ2_bzRead(&bzError, *bzStream, bzReadBuf, static_cast<int>( nBzReadBuf )) );
+#else
+ *nBzRead = (size_t) BZ2_bzRead(&bzError, *bzStream, bzReadBuf, (int) nBzReadBuf);
+#endif
+
+ if (bzError == BZ_STREAM_END)
+ *eofFlag = kStarchTrue;
+
+ else if (bzError != BZ_OK) {
+ switch (bzError) {
+ case BZ_PARAM_ERROR: {
+ fprintf(stderr, "ERROR: Input bzip2 file stream is NULL, bzip read buffer is NULL, or nBzReadBuf is less than zero\n");
+ break;
+ }
+ case BZ_SEQUENCE_ERROR: {
+ fprintf(stderr, "ERROR: Input bzip2 file stream was opened with BZ2_bzWriteOpen()\n");
+ break;
+ }
+ case BZ_IO_ERROR: {
+ fprintf(stderr, "ERROR: Could not read from input bzip2 file stream\n");
+ break;
+ }
+ case BZ_UNEXPECTED_EOF: {
+ fprintf(stderr, "ERROR: Input bzip2 file stream ended before expected EOF\n");
+ break;
+ }
+ case BZ_DATA_ERROR: {
+ fprintf(stderr, "ERROR: Data integrity error detected in input bzip2 file stream\n");
+ break;
+ }
+ case BZ_DATA_ERROR_MAGIC: {
+ fprintf(stderr, "ERROR: Input data stream does not begin with bzip2 magic bytes. Possible offset error\n");
+ break;
+ }
+ case BZ_MEM_ERROR: {
+ fprintf(stderr, "ERROR: Insufficient memory was available to extract data from input bzip2 file stream\n");
+ break;
+ }
+ default: {
+ fprintf(stderr, "ERROR: Unknown error extracting data from input bzip2 file stream\n");
+ break;
+ }
+ }
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+ /* process bz buffer */
+ /* put any remainder of bz-stream output into the line buffer */
+
+#ifdef DEBUG
+ if (*eofFlag == kStarchTrue)
+ fprintf(stderr, "BZ_STREAM_END - setting EOF flag\n");
+#endif
+
+ bzCharIndex = 0;
+ if (*nBzRemainderBuf > 0) {
+#ifdef __cplusplus
+ memcpy(reinterpret_cast<char *>( bzLineBuf ), const_cast<const char *>( bzRemainderBuf ), *nBzRemainderBuf);
+#else
+ memcpy((char *) bzLineBuf, (const char *) bzRemainderBuf, *nBzRemainderBuf);
+#endif
+ bzCharIndex = *nBzRemainderBuf;
+ }
+
+ *t_nExtractionBuffer = 0;
+ *t_nExtractionBufferPos = 0;
+
+ bzBufIndex = 0;
+ while (bzBufIndex < *nBzRead) {
+ bzLineBuf[bzCharIndex++] = bzReadBuf[bzBufIndex++];
+ if (bzLineBuf[bzCharIndex - 1] == '\n') {
+ bzLineBuf[bzCharIndex - 1] = '\0';
+
+ UNSTARCH_extractRawLine(recordChromosome,
+ bzLineBuf,
+ tab,
+ t_startPtr,
+ t_pLengthPtr,
+ t_lastEndPtr,
+ t_firstInputToken,
+ t_secondInputToken,
+ &t_currentChromosome,
+ t_currentChromosomeLengthPtr,
+ t_currentStartPtr,
+ t_currentStopPtr,
+ &t_currentRemainder,
+ t_currentRemainderLengthPtr);
+
+ if (bzLineBuf[0] != 'p') {
+ (*t_lineIdxPtr)++;
+#ifdef __cplusplus
+ UNSTARCH_reverseTransformCoordinates( static_cast<const LineCountType>( *t_lineIdxPtr ),
+#else
+ UNSTARCH_reverseTransformCoordinates( (const LineCountType) *t_lineIdxPtr,
+#endif
+ t_lastPositionPtr,
+ t_lcDiffPtr,
+ t_currentStartPtr,
+ t_currentStopPtr,
+ &t_currentRemainder,
+ retransformedLineBuffer,
+ &nRetransformedLineBuffer,
+ &nRetransformedLineBufferPosition );
+
+ /* resize the extraction buffer, if we're getting too close to the maximum size of a line */
+#ifdef __cplusplus
+ if (static_cast<unsigned int>( *nExtractionBuffer - *t_nExtractionBufferPos ) < TOKENS_MAX_LENGTH) {
+#else
+ if ((unsigned int) (*nExtractionBuffer - *t_nExtractionBufferPos) < TOKENS_MAX_LENGTH) {
+#endif
+ nResizedExtractionBuffer = *nExtractionBuffer * 2;
+#ifdef __cplusplus
+ resizedExtractionBuffer = static_cast<char *>( realloc(extractionBuffer, nResizedExtractionBuffer) );
+#else
+ resizedExtractionBuffer = realloc(extractionBuffer, nResizedExtractionBuffer);
+#endif
+ if (!resizedExtractionBuffer) {
+ fprintf(stderr, "ERROR: Could not allocate space for resized bzip2 extraction buffer!\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ extractionBuffer = resizedExtractionBuffer;
+ *nExtractionBuffer = nResizedExtractionBuffer;
+ }
+
+#ifdef __cplusplus
+ *t_nExtractionBuffer = (strlen(t_currentRemainder) > 0) ?
+ static_cast<size_t>( sprintf(extractionBuffer + *t_nExtractionBufferPos,
+ "%s\t%" PRId64 "\t%" PRId64 "\t%s\n",
+ t_currentChromosome,
+ *t_currentStartPtr,
+ *t_currentStopPtr,
+ t_currentRemainder) )
+ :
+ static_cast<size_t>( sprintf(extractionBuffer + *t_nExtractionBufferPos,
+ "%s\t%" PRId64 "\t%" PRId64 "\n",
+ t_currentChromosome,
+ *t_currentStartPtr,
+ *t_currentStopPtr) );
+#else
+ *t_nExtractionBuffer = (strlen(t_currentRemainder) > 0) ?
+ (size_t) sprintf(extractionBuffer + *t_nExtractionBufferPos,
+ "%s\t%" PRId64 "\t%" PRId64 "\t%s\n",
+ t_currentChromosome,
+ *t_currentStartPtr,
+ *t_currentStopPtr,
+ t_currentRemainder) :
+ (size_t) sprintf(extractionBuffer + *t_nExtractionBufferPos,
+ "%s\t%" PRId64 "\t%" PRId64 "\n",
+ t_currentChromosome,
+ *t_currentStartPtr,
+ *t_currentStopPtr);
+#endif
+ *t_nExtractionBufferPos += *t_nExtractionBuffer;
+ *(extractionBuffer + *t_nExtractionBufferPos) = '\0';
+ }
+ t_firstInputToken[0] = '\0';
+ t_secondInputToken[0] = '\0';
+ bzCharIndex = 0;
+ }
+ }
+ bzLineBuf[bzCharIndex] = '\0';
+#ifdef __cplusplus
+ strncpy(static_cast<char *>( bzRemainderBuf ), reinterpret_cast<const char *>(reinterpret_cast<char *>( bzLineBuf )), bzCharIndex);
+#else
+ strncpy((char *) bzRemainderBuf, (const char *) bzLineBuf, bzCharIndex);
+#endif
+ *nBzRemainderBuf = bzCharIndex;
+
+ /* cleanup */
+ if (bzReadBuf)
+ free(bzReadBuf), bzReadBuf = NULL;
+
+ if (bzLineBuf)
+ free(bzLineBuf), bzLineBuf = NULL;
+
+ if (retransformedLineBuffer)
+ free(retransformedLineBuffer), retransformedLineBuffer = NULL;
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT2_fillExtractionBufferFromGzipStream (Boolean *eofFlag, FILE **inputFp, char *recordChromosome, char *extractionBuffer, size_t *nExtractionBuffer, z_stream *zStream, size_t *nZRead, char **zRemainderBuf, size_t *nZRemainderBuf, TransformState *t_state)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCHCAT2_fillExtractionBufferFromGzipStream() ---\n");
+#endif
+
+ unsigned char *zInBuf = NULL;
+ unsigned char *zReadBuf = NULL;
+ int zError = Z_OK;
+ size_t zCharIndex = 0;
+ size_t zBufIndex = 0;
+ unsigned char *zLineBuf = NULL;
+ static const char tab = '\t';
+
+ LineCountType *t_lineIdxPtr = &t_state->t_lineIdx;
+ SignedCoordType *t_startPtr = &t_state->t_start;
+ SignedCoordType *t_pLengthPtr = &t_state->t_pLength;
+ SignedCoordType *t_lastEndPtr = &t_state->t_lastEnd;
+ char *t_firstInputToken = t_state->t_firstInputToken;
+ char *t_secondInputToken = t_state->t_secondInputToken;
+ char *t_currentChromosome = t_state->t_currentChromosome;
+ size_t *t_currentChromosomeLengthPtr = &t_state->t_currentChromosomeLength;
+ SignedCoordType *t_currentStartPtr = &t_state->t_currentStart;
+ SignedCoordType *t_currentStopPtr = &t_state->t_currentStop;
+ char *t_currentRemainder = t_state->t_currentRemainder;
+ size_t *t_currentRemainderLengthPtr = &t_state->t_currentRemainderLength;
+ SignedCoordType *t_lastPositionPtr = &t_state->t_lastPosition;
+ SignedCoordType *t_lcDiffPtr = &t_state->t_lcDiff;
+ size_t *t_nExtractionBuffer = &t_state->t_nExtractionBuffer;
+ size_t *t_nExtractionBufferPos = &t_state->t_nExtractionBufferPos;
+
+ char *extractionBufferStart = extractionBuffer;
+ unsigned char *retransformedLineBuffer = NULL;
+ int64_t nRetransformedLineBuffer = 0;
+ int64_t nRetransformedLineBufferPosition = 0;
+ size_t nResizedExtractionBuffer = 0U;
+ char *resizedExtractionBuffer = NULL;
+
+#ifdef DEBUG
+ fprintf(stderr, "ALLOC in STARCHCAT2_fillExtractionBufferFromGzipStream()\n");
+#endif
+
+#ifdef __cplusplus
+ zInBuf = static_cast<unsigned char *>( malloc(STARCH_Z_CHUNK) );
+#else
+ zInBuf = malloc(STARCH_Z_CHUNK);
+#endif
+
+ if (!zInBuf) {
+ fprintf(stderr, "ERROR: Could not allocate space for z-input buffer!\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+#ifdef DEBUG
+ fprintf(stderr, "ALLOC'ed zInBuf\n");
+#endif
+
+#ifdef __cplusplus
+ zReadBuf = static_cast<unsigned char *>( malloc(STARCH_Z_CHUNK*5) );
+#else
+ zReadBuf = malloc(STARCH_Z_CHUNK*5);
+#endif
+
+ if (!zReadBuf) {
+ fprintf(stderr, "ERROR: Could not allocate space for z-output buffer!\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+#ifdef DEBUG
+ fprintf(stderr, "ALLOC'ed zReadBuf\n");
+#endif
+
+#ifdef __cplusplus
+ zLineBuf = static_cast<unsigned char *>( malloc(TOKENS_MAX_LENGTH) );
+#else
+ zLineBuf = malloc(TOKENS_MAX_LENGTH);
+#endif
+
+ if (!zLineBuf) {
+ fprintf(stderr, "ERROR: Could not allocate space for z-output line buffer!\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+#ifdef DEBUG
+ fprintf(stderr, "ALLOC'ed zLineBuf\n");
+#endif
+
+#ifdef __cplusplus
+ retransformedLineBuffer = static_cast<unsigned char *>( malloc(sizeof(unsigned char) * (STARCHCAT_RETRANSFORM_LINE_COUNT_MAX * TOKENS_MAX_LENGTH)) );
+#else
+ retransformedLineBuffer = malloc(sizeof(unsigned char) * (STARCHCAT_RETRANSFORM_LINE_COUNT_MAX * TOKENS_MAX_LENGTH));
+#endif
+
+ if (!retransformedLineBuffer) {
+ fprintf(stderr, "ERROR: Could not allocate space for gzip retransformation buffer data.\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+
+#ifdef DEBUG
+ fprintf(stderr, "ALLOC'ed retransformedLineBuffer\n");
+#endif
+
+ zStream->next_in = zInBuf;
+
+#ifdef __cplusplus
+ zStream->avail_in = static_cast<unsigned int>( fread(zInBuf, sizeof(unsigned char), STARCH_Z_IN_BUFFER_MAX_LENGTH, *inputFp) );
+#else
+ zStream->avail_in = (unsigned int) fread(zInBuf, sizeof(unsigned char), STARCH_Z_IN_BUFFER_MAX_LENGTH, *inputFp);
+#endif
+
+#ifdef DEBUG
+ fprintf(stderr, "READ bytes into zStream\n");
+#endif
+
+ if (zStream->avail_in == 0) {
+ free(zInBuf), zInBuf = NULL;
+ free(zReadBuf), zReadBuf = NULL;
+ *eofFlag = kStarchTrue;
+ return STARCHCAT_EXIT_SUCCESS;
+ }
+
+#ifdef DEBUG
+ if (feof(*inputFp))
+ fprintf(stderr, "EOF\n");
+#endif
+
+ do {
+#ifdef DEBUG
+ fprintf(stderr, "Z-LOOP\n");
+#endif
+ zStream->avail_out = STARCH_Z_CHUNK;
+ zStream->next_out = zReadBuf;
+ zError = inflate(zStream, feof(*inputFp) ? Z_FINISH : Z_NO_FLUSH);
+
+ if ((zError != Z_OK) && (zError != Z_STREAM_END)) {
+ switch (zError) {
+ case Z_STREAM_ERROR: {
+ fprintf(stderr, "ERROR: Z-stream clobbered!\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ case Z_NEED_DICT: {
+ zError = Z_DATA_ERROR;
+ inflateEnd(zStream);
+ fprintf(stderr, "ERROR: Could not complete extraction of input stream! (Z_NEED_DICT)\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ case Z_DATA_ERROR: {
+ inflateEnd(zStream);
+ fprintf(stderr, "ERROR: Could not complete extraction of input stream! (Z_DATA_ERROR)\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ case Z_MEM_ERROR: {
+ inflateEnd(zStream);
+ fprintf(stderr, "ERROR: Could not complete extraction of input stream! (Z_MEM_ERROR)\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ default: {
+ fprintf(stderr, "ERROR: Unknown z-inflate error (%d)!\n", zError);
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ }
+ }
+
+ *nZRead = STARCH_Z_CHUNK - zStream->avail_out;
+
+ if (zError == Z_STREAM_END)
+ *eofFlag = kStarchTrue;
+
+ zCharIndex = 0;
+
+ if (*nZRemainderBuf > 0) {
+#ifdef DEBUG
+ fprintf(stderr,"\tadding remainder [%zd | %s] to zLineBuf\n", *nZRemainderBuf, *zRemainderBuf);
+#endif
+ memcpy(zLineBuf, *zRemainderBuf, *nZRemainderBuf);
+ zCharIndex = *nZRemainderBuf;
+ memset(*zRemainderBuf, 0, *nZRemainderBuf);
+ *nZRemainderBuf = 0;
+ }
+
+ *t_nExtractionBuffer = 0;
+ *t_nExtractionBufferPos = 0;
+
+ zBufIndex = 0;
+
+ while (zBufIndex < *nZRead) {
+ zLineBuf[zCharIndex++] = zReadBuf[zBufIndex++];
+ if (zLineBuf[zCharIndex - 1] == '\n') {
+ zLineBuf[zCharIndex - 1] = '\0';
+#ifdef DEBUG
+ fprintf(stderr, "\tzLineBuf -> [%s]\n", zLineBuf);
+#endif
+ UNSTARCH_extractRawLine( recordChromosome,
+ zLineBuf,
+ tab,
+ t_startPtr,
+ t_pLengthPtr,
+ t_lastEndPtr,
+ t_firstInputToken,
+ t_secondInputToken,
+ &t_currentChromosome,
+ t_currentChromosomeLengthPtr,
+ t_currentStartPtr,
+ t_currentStopPtr,
+ &t_currentRemainder,
+ t_currentRemainderLengthPtr);
+ if (zLineBuf[0] != 'p') {
+ (*t_lineIdxPtr)++;
+#ifdef __cplusplus
+ UNSTARCH_reverseTransformCoordinates( static_cast<const LineCountType>( *t_lineIdxPtr ),
+#else
+ UNSTARCH_reverseTransformCoordinates( (const LineCountType) *t_lineIdxPtr,
+#endif
+ t_lastPositionPtr,
+ t_lcDiffPtr,
+ t_currentStartPtr,
+ t_currentStopPtr,
+ &t_currentRemainder,
+ retransformedLineBuffer,
+ &nRetransformedLineBuffer,
+ &nRetransformedLineBufferPosition);
+
+ /* resize the extraction buffer, if we're getting too close to the maximum size of a line */
+ if ((*nExtractionBuffer - *t_nExtractionBufferPos) < TOKENS_MAX_LENGTH) {
+#ifdef __cplusplus
+ nResizedExtractionBuffer = static_cast<size_t>( *nExtractionBuffer ) * 2;
+ resizedExtractionBuffer = static_cast<char *>( realloc(extractionBuffer, nResizedExtractionBuffer) );
+#else
+ nResizedExtractionBuffer = (size_t) *nExtractionBuffer * 2;
+ resizedExtractionBuffer = realloc(extractionBuffer, nResizedExtractionBuffer);
+#endif
+ if (!resizedExtractionBuffer) {
+ fprintf(stderr, "ERROR: Could not allocate space for resized gzip extraction buffer!\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ extractionBuffer = resizedExtractionBuffer;
+ // to reduce the possibility of overflow, we first test before casting
+ if (nResizedExtractionBuffer >= INT_MAX) {
+ fprintf(stderr, "ERROR: nResizedExtractionBuffer is a larger value than nExtractionBuffer can hold!\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ *nExtractionBuffer = nResizedExtractionBuffer;
+ }
+
+#ifdef __cplusplus
+ *t_nExtractionBuffer = (t_currentRemainder) ?
+ static_cast<size_t>( sprintf(extractionBuffer + *t_nExtractionBufferPos,
+ "%s\t%" PRId64 "\t%" PRId64 "\t%s\n",
+ t_currentChromosome,
+ *t_currentStartPtr,
+ *t_currentStopPtr,
+ t_currentRemainder) )
+ :
+ static_cast<size_t>( sprintf(extractionBuffer + *t_nExtractionBufferPos,
+ "%s\t%" PRId64 "\t%" PRId64 "\n",
+ t_currentChromosome,
+ *t_currentStartPtr,
+ *t_currentStopPtr) );
+#else
+ *t_nExtractionBuffer = (t_currentRemainder) ?
+ (size_t) sprintf(extractionBuffer + *t_nExtractionBufferPos,
+ "%s\t%" PRId64 "\t%" PRId64 "\t%s\n",
+ t_currentChromosome,
+ *t_currentStartPtr,
+ *t_currentStopPtr,
+ t_currentRemainder)
+ :
+ (size_t) sprintf(extractionBuffer + *t_nExtractionBufferPos,
+ "%s\t%" PRId64 "\t%" PRId64 "\n",
+ t_currentChromosome,
+ *t_currentStartPtr,
+ *t_currentStopPtr);
+#endif
+ *t_nExtractionBufferPos += *t_nExtractionBuffer;
+ *(extractionBufferStart + *t_nExtractionBufferPos) = '\0';
+ }
+ t_firstInputToken[0] = '\0';
+ t_secondInputToken[0] = '\0';
+ zCharIndex = 0;
+ }
+ }
+ zLineBuf[zCharIndex] = '\0';
+ } while (zStream->avail_out == 0);
+
+#ifdef __cplusplus
+ strncpy(static_cast<char *>( *zRemainderBuf ), const_cast<const char *>( reinterpret_cast<char *>( zLineBuf ) ), static_cast<size_t>( zCharIndex ) + 1);
+#else
+ strncpy((char *) *zRemainderBuf, (const char *) zLineBuf, (size_t) zCharIndex + 1);
+#endif
+
+ *nZRemainderBuf = zCharIndex;
+
+#ifdef DEBUG
+ fprintf(stderr, "zRemainderBuf -> %s | length -> %zd\n", *zRemainderBuf, *nZRemainderBuf);
+#endif
+
+ /* cleanup */
+ if (zInBuf)
+ free(zInBuf), zInBuf = NULL;
+
+ if (zReadBuf)
+ free(zReadBuf), zReadBuf = NULL;
+
+ if (retransformedLineBuffer)
+ free(retransformedLineBuffer), retransformedLineBuffer = NULL;
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT2_extractBedLine (Boolean *eobFlag, char *extractionBuffer, int *extractionBufferOffset, char **extractedElement)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCHCAT2_extractBedLine() ---\n");
+#endif
+
+#ifdef __cplusplus
+ size_t previousOffset = static_cast<size_t>( *extractionBufferOffset );
+#else
+ size_t previousOffset = (size_t) *extractionBufferOffset;
+#endif
+ size_t size = 0U;
+
+ if (*eobFlag == kStarchTrue)
+ return STARCHCAT_EXIT_SUCCESS;
+
+ if (extractionBuffer[*extractionBufferOffset] == '\0') {
+ *eobFlag = kStarchTrue;
+ memset(*extractedElement, 0, strlen(*extractedElement));
+ return STARCHCAT_EXIT_SUCCESS;
+ }
+
+ while (extractionBuffer[*extractionBufferOffset] != '\n') {
+ size++;
+ (*extractionBufferOffset)++;
+ }
+ size++;
+ (*extractionBufferOffset)++;
+
+ memcpy(*extractedElement, extractionBuffer + previousOffset, size);
+ (*extractedElement)[size] = '\0';
+
+ return STARCHCAT_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT2_parseCoordinatesFromBedLineV2 (Boolean *eobFlag, const char *extractedElement, SignedCoordType *start, SignedCoordType *stop)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCHCAT2_parseCoordinatesFromBedLineV2() ---\n");
+#endif
+
+ if (strlen(extractedElement) == 0) {
+#ifdef DEBUG
+ fprintf(stderr, "LEAVING EARLY\n");
+#endif
+ *eobFlag = kStarchTrue;
+ return STARCHCAT_EXIT_SUCCESS;
+ }
+
+ errno = 0;
+ int fieldIdx = 0;
+ int charIdx = 0;
+ int withinFieldIdx = 0;
+ static const char tab = '\t';
+ char startStr[MAX_DEC_INTEGERS + 1] = {0};
+ char stopStr[MAX_DEC_INTEGERS + 1] = {0};
+ SignedCoordType result = 0;
+
+ while (extractedElement[charIdx] != '\0') {
+ if (extractedElement[charIdx] == tab) {
+ withinFieldIdx = 0;
+ fieldIdx++, charIdx++;
+ continue;
+ }
+ switch (fieldIdx) {
+ case 1: {
+ startStr[withinFieldIdx++] = extractedElement[charIdx];
+ startStr[withinFieldIdx] = '\0';
+ break;
+ }
+ case 2: {
+ stopStr[withinFieldIdx++] = extractedElement[charIdx];
+ stopStr[withinFieldIdx] = '\0';
+ break;
+ }
+ default:
+ break;
+ }
+ charIdx++;
+ }
+
+#ifdef __cplusplus
+ result = static_cast<SignedCoordType>( strtoll(startStr, NULL, STARCH_RADIX) );
+#else
+ result = (SignedCoordType) strtoll(startStr, NULL, STARCH_RADIX);
+#endif
+
+ switch (errno) {
+ case EINVAL: {
+ fprintf(stderr, "ERROR: Result from parsing start coordinate is not a valid number!\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case ERANGE: {
+ fprintf(stderr, "ERROR: Result from parsing start coordinate is not within range of SignedCoordType (int64_t)!\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ }
+ *start = result;
+
+#ifdef __cplusplus
+ result = static_cast<SignedCoordType>( strtoll(stopStr, NULL, STARCH_RADIX) );
+#else
+ result = (SignedCoordType) strtoll(stopStr, NULL, STARCH_RADIX);
+#endif
+
+ switch (errno) {
+ case EINVAL: {
+ fprintf(stderr, "ERROR: Result from parsing start coordinate is not a valid number!\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case ERANGE: {
+ fprintf(stderr, "ERROR: Result from parsing start coordinate is not within range of SignedCoordType (uint64_t)!\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ }
+ *stop = result;
+
+ return STARCH_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT2_addLowestBedElementToCompressionBuffer (char *compressionBuffer, const char *extractedElement, LineCountType *compressionLineCount)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCHCAT2_addLowestBedElementToCompressionBuffer() ---\n");
+#endif
+
+ size_t compressionBufferLength = strlen(compressionBuffer);
+ size_t extractedElementLength = strlen(extractedElement);
+
+ memcpy(compressionBuffer + compressionBufferLength, extractedElement, extractedElementLength);
+ compressionBuffer[compressionBufferLength + extractedElementLength] = '\0';
+ (*compressionLineCount)++;
+
+ return STARCH_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT2_transformCompressionBuffer (const char *compBuf, char *retransBuf, TransformState *retransState)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCHCAT2_transformCompressionBuffer() ---\n");
+#endif
+
+ if ((!retransState->r_chromosome) || (strlen(retransState->r_chromosome) == 0))
+ return STARCH_EXIT_FAILURE;
+
+ static const char tab = '\t';
+ size_t nCompBuf = strlen(compBuf);
+ size_t compBufIdx = 0U;
+ /* size_t *nRetransBuf = 0U; */
+ size_t *nRetransBuf = &retransState->r_nRetransBuf;
+#ifdef DEBUG
+ int nChar = 0;
+#endif
+
+ char retransLineBuf[TOKENS_MAX_LENGTH + 1] = {0};
+ size_t retransLineBufIdx = 0U;
+ LineCountType retransLineIdx = 0;
+
+ /* retransform parameters */
+ char *retransChromosome = STARCH_strdup(retransState->r_chromosome);
+ char *retransRemainder = STARCH_strdup(retransState->r_remainder);
+ SignedCoordType *retransStart = &retransState->r_start;
+ SignedCoordType *retransStop = &retransState->r_stop;
+ SignedCoordType *retransPStart = &retransState->r_pStart;
+ SignedCoordType *retransPStop = &retransState->r_pStop;
+ SignedCoordType *retransCoordDiff = &retransState->r_coordDiff;
+ SignedCoordType *retransLcDiff = &retransState->r_lcDiff;
+ SignedCoordType *retransLastPosition = &retransState->r_lastPosition;
+ SignedCoordType *retransPreviousStop = &retransState->r_previousStop;
+ BaseCountType *retransTotalNonUniqueBases = &retransState->r_totalNonUniqueBases;
+ BaseCountType *retransTotalUniqueBases = &retransState->r_totalUniqueBases;
+ Boolean *retransDuplicateElementExists = &retransState->r_duplicateElementExists;
+ Boolean *retransNestedElementExists = &retransState->r_nestedElementExists;
+
+#ifdef DEBUG
+ fprintf(stderr, "retransform parameters ->\nretransChromosome - [%s]\nretransRemainder - [%s]\nretransStart - [%" PRId64 "]\nretransStop - [%" PRId64 "]\nretransCoordDiff - [%" PRId64 "]\nretransLcDiff - [%" PRId64 "]\nretransLastPosition - [%" PRId64 "]\nretransPreviousStop - [%" PRId64 "]\nretransTotalNonUniqueBases - [%" PRIu64 "]\nretransTotalUniqueBases - [%" PRIu64 "]\n", retransChromosome, retransRemainder, *retransStart, *retransStop, *retransCoordDiff, *retransLcDiff, *retra [...]
+ fprintf(stderr, "COMPRESSION BUFFER -> [%s]\n", compBuf);
+#endif
+
+ *nRetransBuf = strlen(retransBuf);
+
+ for (compBufIdx = 0U; compBufIdx < nCompBuf; compBufIdx++) {
+ retransLineBuf[retransLineBufIdx++] = compBuf[compBufIdx];
+ if (compBuf[compBufIdx] == '\n') {
+ retransLineIdx++;
+ retransLineBuf[retransLineBufIdx - 1] = '\0';
+ retransLineBufIdx = 0U;
+#ifdef DEBUG
+ fprintf(stderr, "compressing -> [%s]\n", retransLineBuf);
+#endif
+ if (STARCH_createTransformTokensForHeaderlessInput(retransLineBuf,
+ tab,
+ &retransChromosome,
+ retransStart,
+ retransStop,
+ &retransRemainder) == 0)
+ {
+ if (*retransStop > *retransStart)
+ *retransCoordDiff = *retransStop - *retransStart;
+ else {
+ fprintf(stderr, "ERROR: BED data is corrupt (stop: %" PRId64 " should be greater than start: %" PRId64 ")\n", *retransStop, *retransStart);
+ exit(-1);
+ //return STARCHCAT_EXIT_FAILURE;
+ }
+ if (*retransCoordDiff != *retransLcDiff) {
+ *retransLcDiff = *retransCoordDiff;
+#ifdef DEBUG
+ fprintf(stderr, "\told *nRetransBuf -> %zu\n", *nRetransBuf);
+ fprintf(stderr, "\told retransBuf -> [%s]\n", retransBuf);
+#endif
+#ifndef DEBUG
+ sprintf(retransBuf + *nRetransBuf, "p%" PRId64 "\n", *retransCoordDiff);
+#else
+ nChar = sprintf(retransBuf + *nRetransBuf, "p%" PRId64 "\n", *retransCoordDiff);
+ fprintf(stderr, "\twrote %d characters to retransBuf\n", nChar);
+ fprintf(stderr, "\tsprintf'ing - [p%" PRId64 "]\n", *retransCoordDiff);
+ fprintf(stderr, "\tpost-p retransBuf -> [%s]\n", retransBuf);
+#endif
+ *nRetransBuf = strlen(retransBuf);
+#ifdef DEBUG
+ fprintf(stderr, "\tnew *nRetransBuf -> %zu\n", *nRetransBuf);
+ fprintf(stderr, "\tnew retransBuf -> [%s]\n", retransBuf);
+#endif
+ }
+ if (*retransLastPosition != 0) {
+ if (retransRemainder) {
+ sprintf(retransBuf + *nRetransBuf, "%" PRId64 "\t%s\n", (*retransStart - *retransLastPosition), retransRemainder);
+#ifdef DEBUG
+ fprintf(stderr, "\tsprintf'ing - [%" PRId64 "]-tab-[%s]\n", (*retransStart - *retransLastPosition), retransRemainder);
+#endif
+ }
+ else {
+ sprintf(retransBuf + *nRetransBuf, "%" PRId64 "\n", (*retransStart - *retransLastPosition));
+#ifdef DEBUG
+ fprintf(stderr, "\tsprintf'ing - [%" PRId64 "]\n", *retransStart - *retransLastPosition);
+#endif
+ }
+ }
+ else {
+ if (retransRemainder) {
+ sprintf(retransBuf + *nRetransBuf, "%" PRId64 "\t%s\n", *retransStart, retransRemainder);
+#ifdef DEBUG
+ fprintf(stderr, "\tsprintf'ing - [%" PRId64 "]-tab-[%s]\n", *retransStart, retransRemainder);
+#endif
+ }
+ else {
+ sprintf(retransBuf + *nRetransBuf, "%" PRId64 "\n", *retransStart);
+#ifdef DEBUG
+ fprintf(stderr, "\tsprintf'ing - [%" PRId64 "]\n", *retransStart);
+#endif
+ }
+ }
+ *nRetransBuf = strlen(retransBuf);
+
+ /* statistics */
+ *retransLastPosition = *retransStop;
+#ifdef __cplusplus
+ *retransTotalNonUniqueBases += static_cast<BaseCountType>( *retransStop - *retransStart );
+ if (*retransPreviousStop <= *retransStart)
+ *retransTotalUniqueBases += static_cast<BaseCountType>( *retransStop - *retransStart );
+ else if (*retransPreviousStop < *retransStop)
+ *retransTotalUniqueBases += static_cast<BaseCountType>( *retransStop - *retransPreviousStop );
+#else
+ *retransTotalNonUniqueBases += (BaseCountType) (*retransStop - *retransStart);
+ if (*retransPreviousStop <= *retransStart)
+ *retransTotalUniqueBases += (BaseCountType) (*retransStop - *retransStart);
+ else if (*retransPreviousStop < *retransStop)
+ *retransTotalUniqueBases += (BaseCountType) (*retransStop - *retransPreviousStop);
+#endif
+ *retransPreviousStop = (*retransStop > *retransPreviousStop) ? *retransStop : *retransPreviousStop;
+
+ /* test for duplicate element */
+ if ((*retransPStart == *retransStart) && (*retransPStop == *retransStop))
+ *retransDuplicateElementExists = kStarchTrue;
+
+ /* test for nested element */
+ if ((*retransPStart < *retransStart) && (*retransPStop > *retransStop))
+ *retransNestedElementExists = kStarchTrue;
+
+ /* set pElement values */
+ *retransPStart = *retransStart;
+ *retransPStop = *retransStop;
+#ifdef DEBUG
+ fprintf(stderr, "\tretransLineBuf - [%s]\n", retransLineBuf);
+#endif
+ }
+ }
+ }
+
+ if (retransChromosome)
+ free(retransChromosome), retransChromosome = NULL;
+ if (retransRemainder)
+ free(retransRemainder), retransRemainder = NULL;
+
+ return STARCH_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT2_squeezeRetransformedOutputBufferToBzip2Stream (BZFILE **bzStream, char *transformedBuffer)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCHCAT2_squeezeRetransformedOutputBufferToBzip2Stream() ---\n");
+#endif
+
+ int bzError = BZ_OK;
+ size_t nTransformedBuffer = 0;
+
+ if (transformedBuffer)
+ nTransformedBuffer = strlen(transformedBuffer);
+
+ if ((transformedBuffer) && (*bzStream) && (nTransformedBuffer > 0)) {
+#ifdef __cplusplus
+ BZ2_bzWrite(&bzError, *bzStream, transformedBuffer, static_cast<int>( nTransformedBuffer ));
+#else
+ BZ2_bzWrite(&bzError, *bzStream, transformedBuffer, (int) nTransformedBuffer);
+#endif
+
+ if (bzError != BZ_OK) {
+ switch (bzError) {
+ case BZ_PARAM_ERROR: {
+ fprintf(stderr, "ERROR: Stream is NULL, transformedBuffer is NULL, or transformedBuffer length is negative\n");
+ break;
+ }
+ case BZ_SEQUENCE_ERROR: {
+ fprintf(stderr, "ERROR: Bzip2 streams are out of sequence\n");
+ break;
+ }
+ case BZ_IO_ERROR: {
+ fprintf(stderr, "ERROR: There is an error writing the compressed data to the bz stream\n");
+ break;
+ }
+ default: {
+ fprintf(stderr, "ERROR: Unknown error with BZ2_bzWrite() (err: %d)\n", bzError);
+ break;
+ }
+ }
+ return STARCH_EXIT_FAILURE;
+ }
+ }
+
+ return STARCH_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT2_squeezeRetransformedOutputBufferToGzipStream (z_stream *zStream, const Boolean flushZStreamFlag, char *transformedBuffer, uint64_t *finalStreamSize, size_t *cumulativeOutputSize)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCHCAT2_squeezeRetransformedOutputBufferToGzipStream() ---\n");
+#endif
+
+ z_stream *zStreamPtr = zStream;
+ int zError = Z_OK;
+ size_t zOutHave;
+ FILE *outFp = stdout;
+ unsigned char zBuffer[STARCH_Z_BUFFER_MAX_LENGTH] = {0};
+
+#ifdef DEBUG
+ fprintf(stderr, "transformedBuffer: [%s]\n", transformedBuffer);
+#endif
+
+#ifdef __cplusplus
+ zStreamPtr->next_in = reinterpret_cast<unsigned char *>( transformedBuffer );
+ zStreamPtr->avail_in = static_cast<unsigned int>( strlen(transformedBuffer) );
+#else
+ zStreamPtr->next_in = (unsigned char *) transformedBuffer;
+ zStreamPtr->avail_in = (unsigned int) strlen(transformedBuffer);
+#endif
+ do {
+ zStreamPtr->avail_out = STARCH_Z_BUFFER_MAX_LENGTH;
+ zStreamPtr->next_out = zBuffer;
+ zError = deflate(zStreamPtr, (flushZStreamFlag == kStarchFalse) ? Z_NO_FLUSH : Z_FINISH);
+ switch (zError) {
+ case Z_MEM_ERROR: {
+ fprintf(stderr, "ERROR: Not enough memory to compress data\n");
+ return STARCHCAT_EXIT_FAILURE;
+ }
+ case Z_BUF_ERROR:
+ default:
+ break;
+ }
+#ifdef __cplusplus
+ zOutHave = static_cast<size_t>( STARCH_Z_BUFFER_MAX_LENGTH - zStreamPtr->avail_out );
+#else
+ zOutHave = (size_t) (STARCH_Z_BUFFER_MAX_LENGTH - zStreamPtr->avail_out);
+#endif
+ *finalStreamSize += zOutHave;
+ *cumulativeOutputSize += zOutHave;
+ fwrite(zBuffer, sizeof(unsigned char), zOutHave, outFp);
+ fflush(outFp);
+#ifdef DEBUG
+ fprintf(stderr, "POST zStream->avail_out -> %d\n", zStreamPtr->avail_out);
+#endif
+ } while (zStreamPtr->avail_out == 0);
+
+ return STARCH_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT2_resetCompressionBuffer (char *compressionBuffer, LineCountType *compressionLineCount)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCHCAT2_resetCompressionBuffer() ---\n");
+#endif
+
+ compressionBuffer[0] = '\0';
+ *compressionLineCount = 0;
+
+ return STARCH_EXIT_SUCCESS;
+}
+
+int
+STARCHCAT2_finalizeMetadata (Metadata **outMd, char *finalChromosome, char *finalOutTagFn, uint64_t finalStreamSize, LineCountType finalLineCount, uint64_t finalTotalNonUniqueBases, uint64_t finalTotalUniqueBases, Boolean finalDuplicateElementExists, Boolean finalNestedElementExists)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCHCAT2_finalizeMetadata() ---\n");
+#endif
+
+ if (!*outMd)
+ *outMd = STARCH_createMetadata( finalChromosome,
+ finalOutTagFn,
+ finalStreamSize,
+ finalLineCount,
+ finalTotalNonUniqueBases,
+ finalTotalUniqueBases,
+ finalDuplicateElementExists,
+ finalNestedElementExists );
+ else
+ *outMd = STARCH_addMetadata( *outMd,
+ finalChromosome,
+ finalOutTagFn,
+ finalStreamSize,
+ finalLineCount,
+ finalTotalNonUniqueBases,
+ finalTotalUniqueBases,
+ finalDuplicateElementExists,
+ finalNestedElementExists );
+
+ return STARCH_EXIT_SUCCESS;
+}
+
+#ifdef __cplusplus
+} // namespace starch
+#endif
diff --git a/applications/bed/starch/src/starchcat.h b/applications/bed/starch/src/starchcat.h
new file mode 100644
index 0000000..6fedd38
--- /dev/null
+++ b/applications/bed/starch/src/starchcat.h
@@ -0,0 +1,348 @@
+//=========
+// Author: Alex Reynolds & Shane Neph
+// Project: starch
+// File: starchcat.h
+//=========
+
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef STARCHCAT_H
+#define STARCHCAT_H
+
+#ifdef __cplusplus
+#include <cinttypes>
+#else
+#include <inttypes.h>
+#endif
+
+#include <getopt.h>
+#include <bzlib.h>
+#include <zlib.h>
+
+#include "data/starch/unstarchHelpers.h"
+#include "data/starch/starchMetadataHelpers.h"
+#include "data/starch/starchConstants.h"
+#include "suite/BEDOPS.Constants.hpp"
+
+#ifdef __cplusplus
+namespace starch {
+ using namespace Bed;
+#endif
+
+#define STARCHCAT_EXIT_FAILURE 0
+#define STARCHCAT_EXIT_SUCCESS 1
+#define STARCHCAT_FATAL_ERROR -1
+#define STARCHCAT_HELP_ERROR -2
+#define STARCHCAT_VERSION_ERROR -3
+#define STARCHCAT_COPY_BUFFER_MAXSIZE 65536
+#define STARCHCAT_RETRANSFORM_LINE_COUNT_MAX 100
+#define STARCHCAT_RETRANSFORM_BUFFER_SIZE 1024*1024
+#define STARCHCAT_FIELD_BUFFER_MAX_LENGTH 16
+
+/*
+ This is simply a struct containing a starch file's
+ metadata, pathname and other data useful for our
+ purposes. We'll parse each metadata to find the
+ chromosomes within.
+*/
+
+typedef struct metadataRecord {
+ Metadata *metadata;
+ char *filename;
+ FILE *fp;
+ CompressionType type;
+ Boolean hFlag; /* header flag */
+ uint64_t mdOffset;
+ ArchiveVersion *av;
+ char *cTime;
+} MetadataRecord;
+
+/*
+ This struct manages the parse data for the
+ recompression stage. An array of these is
+ created, one for each input stream.
+*/
+
+typedef struct transformState {
+ LineCountType t_lineIdx;
+ SignedCoordType t_start;
+ SignedCoordType t_pLength;
+ SignedCoordType t_lastEnd;
+ char t_firstInputToken[UNSTARCH_FIRST_TOKEN_MAX_LENGTH + 1];
+ char t_secondInputToken[UNSTARCH_SECOND_TOKEN_MAX_LENGTH + 1];
+ char t_currentChromosome[TOKEN_CHR_MAX_LENGTH + 1];
+ size_t t_currentChromosomeLength;
+ SignedCoordType t_currentStart;
+ SignedCoordType t_currentStop;
+ char t_currentRemainder[UNSTARCH_SECOND_TOKEN_MAX_LENGTH + 1];
+ size_t t_currentRemainderLength;
+ SignedCoordType t_lastPosition;
+ SignedCoordType t_lcDiff;
+ size_t t_nExtractionBuffer;
+ size_t t_nExtractionBufferPos;
+ char r_chromosome[TOKEN_CHR_MAX_LENGTH + 1];
+ char r_remainder[UNSTARCH_SECOND_TOKEN_MAX_LENGTH + 1];
+ SignedCoordType r_start;
+ SignedCoordType r_stop;
+ SignedCoordType r_pStart;
+ SignedCoordType r_pStop;
+ SignedCoordType r_coordDiff;
+ SignedCoordType r_lcDiff;
+ SignedCoordType r_lastPosition;
+ SignedCoordType r_previousStop;
+ uint64_t r_totalNonUniqueBases;
+ uint64_t r_totalUniqueBases;
+ Boolean r_duplicateElementExists;
+ Boolean r_nestedElementExists;
+ size_t r_nRetransBuf;
+} TransformState;
+
+/*
+ An array of MetadataRecords gets compressed down
+ to a uniquified, sorted list of chromosomes, which
+ in turn is summarized as an array of chromosomes
+ and records (an instance of ChromosomeSummaries*).
+*/
+
+typedef struct chromosomeSummary {
+ char *chromosome;
+ MetadataRecord **records;
+ unsigned int numRecords;
+} ChromosomeSummary;
+
+typedef struct chromosomeSummaries {
+ ChromosomeSummary *summary;
+ unsigned int numChromosomes;
+} ChromosomeSummaries;
+
+static const char *name = "starchcat";
+static const char *authors = "Alex Reynolds and Shane Neph";
+static const char *usage = "\n" \
+ "USAGE: starchcat [ --note=\"...\" ] [ --bzip2 | --gzip ] <starch-file-1> [<starch-file-2> ...]\n" \
+ "\n" \
+ " * At least one lexicographically-sorted, headerless starch archive is required.\n" \
+ " While two or more inputs make sense for a multiset union operation, you can starchcat \n" \
+ " one file in order to update its metadata, recompress it with a different backend method,\n" \
+ " or add a note annotation.\n" \
+ "\n" \
+ " * Compressed data are sent to standard output. Use the '>' operator to redirect\n" \
+ " to a file.\n" \
+ "\n" \
+ " Process Flags:\n\n" \
+ " --note=\"foo bar...\" Append note to output archive metadata (optional)\n" \
+ " --bzip2 | --gzip Specify backend compression type (optional, default is bzip2)\n" \
+ " --version Show binary version\n" \
+ " --help Show this usage message\n";
+
+static struct starchcat_client_global_args_t {
+ CompressionType compressionType;
+ char *note;
+ char **inputFiles;
+ size_t numberInputFiles;
+} starchcat_client_global_args;
+
+static struct option starchcat_client_long_options[] = {
+ {"note", required_argument, NULL, 'n'},
+ {"bzip2", no_argument, NULL, 'b'},
+ {"gzip", no_argument, NULL, 'g'},
+ {"version", no_argument, NULL, 'v'},
+ {"help", no_argument, NULL, 'h'},
+ {NULL, no_argument, NULL, 0}
+};
+
+static const char *starchcat_client_opt_string = "n:bgvh?";
+
+void STARCHCAT_initializeGlobals();
+
+int STARCHCAT_parseCommandLineOptions(int argc,
+ char **argv);
+
+int STARCHCAT2_copyInputRecordToOutput (Metadata **outMd,
+ const char *outTag,
+ const CompressionType outType,
+ const char *inChr,
+ const MetadataRecord *inRec,
+ size_t *cumulativeOutputSize);
+
+int STARCHCAT_copyInputRecordToOutput (Metadata **outMd,
+ const char *outTag,
+ const CompressionType outType,
+ const char *inChr,
+ const MetadataRecord *inRec);
+
+int STARCHCAT2_rewriteInputRecordToOutput (Metadata **outMd,
+ const char *outTag,
+ const CompressionType outType,
+ const char *inChr,
+ const MetadataRecord *inRec,
+ size_t *cumulativeOutputSize);
+
+int STARCHCAT_rewriteInputRecordToOutput (Metadata **outMd,
+ const char *outTag,
+ const CompressionType outType,
+ const char *inChr,
+ const MetadataRecord *inRec);
+
+int STARCHCAT2_parseCoordinatesFromBedLine(const char *lineBuf,
+ const size_t inRecIdx,
+ SignedCoordType *starts,
+ SignedCoordType *stops);
+
+int STARCHCAT2_identifyLowestBedElement(const Boolean *eobFlags,
+ const SignedCoordType *starts,
+ const SignedCoordType *stops,
+ const size_t numRecords,
+ size_t *lowestIdx);
+
+int STARCHCAT2_pullNextBedElement (const size_t recIdx,
+ const char **inLinesBuf,
+ const LineCountType *nInLinesBuf,
+ char **outLineBuf,
+ uint64_t **inBufNewlineOffsets);
+
+int STARCHCAT_mergeInputRecordsToOutput (Metadata **outMd,
+ const char *outTag,
+ const CompressionType outType,
+ const ChromosomeSummary *summary);
+
+int STARCHCAT_mergeChromosomeStreams (const ChromosomeSummaries *chrSums,
+ const CompressionType outputType,
+ const char *note);
+
+int STARCHCAT2_mergeChromosomeStreams (const ChromosomeSummaries *chrSums,
+ const CompressionType outputType,
+ const char *note,
+ size_t *cumulativeOutputSize);
+
+int STARCHCAT_freeChromosomeNames (char ***chrs,
+ unsigned int numChromosomes);
+
+int STARCHCAT_freeChromosomeSummaries (ChromosomeSummaries **chrSums);
+
+int STARCHCAT_allocChromosomeSummaries (ChromosomeSummaries **chrSums,
+ const unsigned int numChromosomes);
+
+int STARCHCAT_buildChromosomeSummaries (ChromosomeSummaries **chrSums,
+ const ChromosomeSummary *summary,
+ const unsigned int numChromosomes);
+
+int STARCHCAT_printChromosomeSummaries (const ChromosomeSummaries *chrSums);
+
+int STARCHCAT_freeChromosomeSummary (ChromosomeSummary **summary,
+ const unsigned int numChromosomes);
+
+int STARCHCAT_allocChromosomeSummary (ChromosomeSummary **summary,
+ const unsigned int numChromosomes);
+
+int STARCHCAT_buildChromosomeSummary (ChromosomeSummary **summary,
+ const MetadataRecord *mdRecords,
+ const unsigned int numRecords,
+ const char **chromosomes,
+ const unsigned int numChromosomes);
+
+MetadataRecord *
+ STARCHCAT_copyMetadataRecord (const MetadataRecord *mdRec);
+
+int STARCHCAT_buildUniqueChromosomeList (char ***chromosomes,
+ unsigned int *numChr,
+ const MetadataRecord *mdRecords,
+ const unsigned int numRecords);
+
+int STARCHCAT_compareCStrings (const void *a,
+ const void *b);
+
+int STARCHCAT_allocMetadataRecords (MetadataRecord **mdRecords,
+ const unsigned int numRecords);
+
+int STARCHCAT_freeMetadataRecords (MetadataRecord **mdRecords,
+ const unsigned int numRecords);
+
+int STARCHCAT_buildMetadataRecords (json_t ***metadataJSONs,
+ MetadataRecord **mdRecords,
+ const unsigned int firstArgc,
+ const int argc,
+ const char **argv);
+
+Boolean STARCHCAT_fileExists (const char *fn);
+
+void STARCHCAT_printUsage (int t);
+
+void STARCHCAT_printRevision ();
+
+Boolean STARCHCAT_isArchiveConcurrent (const ArchiveVersion *av);
+
+Boolean STARCHCAT_isArchiveConcurrentOrOlder (const ArchiveVersion *av);
+
+Boolean STARCHCAT_isArchiveNewer (const ArchiveVersion *av);
+
+Boolean STARCHCAT_isArchiveNewerThan (const ArchiveVersion *av,
+ const ArchiveVersion *comp);
+
+Boolean STARCHCAT_allocMetadataJSONObjects (json_t ***mdJSONs,
+ const unsigned int numRecs);
+
+Boolean STARCHCAT_freeMetadataJSONObjects (json_t ***mdJSONs,
+ const unsigned int numRecs);
+
+Boolean STARCHCAT_checkMetadataJSONVersions (json_t ***mdJSONs,
+ const unsigned int numRecs);
+
+int STARCHCAT2_mergeInputRecordsToOutput (const char *inChr,
+ Metadata **outMd,
+ const char *outTag,
+ const CompressionType outType,
+ const ChromosomeSummary *summary,
+ size_t *cumulativeOutputSize);
+
+int STARCHCAT2_setupBzip2OutputStream (BZFILE **bzStream, FILE *outStream);
+int STARCHCAT2_setupGzipOutputStream (z_stream *zStream);
+int STARCHCAT2_testSummaryForChromosomeExistence (const char *chrName, const ChromosomeSummary *chrSummary, const size_t recIndex);
+int STARCHCAT2_setupInitialFileOffsets (const char *chrName, const ChromosomeSummary *chrSummary, const size_t recIndex);
+int STARCHCAT2_setupBzip2InputStream (const size_t recIdx, const ChromosomeSummary *chrSummary, BZFILE **bzStream);
+int STARCHCAT2_setupGzipInputStream (z_stream *zStream);
+int STARCHCAT2_breakdownBzip2InputStream (BZFILE **bzStream);
+int STARCHCAT2_breakdownGzipInputStream (z_stream *zStream);
+int STARCHCAT2_breakdownBzip2OutputStream (BZFILE **bzStream, uint64_t *bzOutBytesConsumed, uint64_t *bzOutBytesWritten);
+int STARCHCAT2_breakdownGzipOutputStream (z_stream *zStream);
+int STARCHCAT2_fillExtractionBufferFromBzip2Stream (Boolean *eofFlag, char *recordChromosome, char *extractionBuffer, size_t *nExtractionBuffer, BZFILE **bzStream, size_t *nBzRead, char *bzRemainderBuf, size_t *nBzRemainderBuf, TransformState *t_state);
+int STARCHCAT2_fillExtractionBufferFromGzipStream (Boolean *eofFlag, FILE **inputFp, char *recordChromosome, char *extractionBuffer, size_t *nExtractionBuffer, z_stream *zStream, size_t *nZRead, char **zRemainderBuf, size_t *nZRemainderBuf, TransformState *t_state);
+int STARCHCAT2_extractBedLine (Boolean *eobFlag, char *extractionBuffer, int *extractionBufferOffset, char **extractedElement);
+int STARCHCAT2_parseCoordinatesFromBedLineV2 (Boolean *eobFlag, const char *extractedElement, SignedCoordType *start, SignedCoordType *stop);
+int STARCHCAT2_addLowestBedElementToCompressionBuffer (char *compressionBuffer, const char *extractedElement, LineCountType *compressionLineCount);
+int STARCHCAT2_transformCompressionBuffer (const char *compressionBuffer, char *retransformedOutputBuffer, TransformState *retransState);
+int STARCHCAT2_squeezeRetransformedOutputBufferToBzip2Stream (BZFILE **bzStream, char *transformedBuffer);
+int STARCHCAT2_squeezeRetransformedOutputBufferToGzipStream (z_stream *zStream, const Boolean flushZStreamFlag, char *transformedBuffer, uint64_t *finalStreamSize, size_t *cumulativeOutputSize);
+int STARCHCAT2_resetCompressionBuffer (char *compressionBuffer, LineCountType *compressionLineCount);
+
+int STARCHCAT2_finalizeMetadata (Metadata **outMd,
+ char *finalChromosome,
+ char *finalOutTagFn,
+ uint64_t finalStreamSize,
+ uint64_t finalLineCount,
+ uint64_t finalTotalNonUniqueBases,
+ uint64_t finalTotalUniqueBases,
+ Boolean finalDuplicateElementExists,
+ Boolean finalNestedElementExists);
+
+#ifdef __cplusplus
+} // namespace starch
+#endif
+
+#endif
diff --git a/applications/bed/starch/src/starchcluster_gnuParallel.tcsh b/applications/bed/starch/src/starchcluster_gnuParallel.tcsh
new file mode 100755
index 0000000..6aae739
--- /dev/null
+++ b/applications/bed/starch/src/starchcluster_gnuParallel.tcsh
@@ -0,0 +1,134 @@
+#!/bin/tcsh -ef
+
+# author : sjn and apr
+# date : Feb 2012
+# version : v2.5.0
+
+#
+# BEDOPS
+# Copyright (C) 2011-2015 Shane Neph, Scott Kuehn and Alex Reynolds
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+############################
+# some input error checking
+############################
+
+set help = "\nUsage: starchcluster_gnuParallel [--help] [--clean] <input-bed-file> [output-starch-file]\n\n"
+set help = "$help Pass in the name of a BED file to create a Starch archive using GNU Parallel.\n\n"
+set help = "$help (stdin isn't supported through this wrapper script, but starch supports it natively.)\n\n"
+set help = "$help Add --clean to remove <input-bed-file> after starching it up.\n\n"
+set help = "$help You can pass in the name of the output starch archive to be created.\n"
+set help = "$help Otherwise, the output will have the same name as the input file, with an additional\n"
+set help = "$help '.starch' ending. If the input file ends with '.bed', that will be stripped off.\n"
+
+if ( $#argv == 0 ) then
+ printf "$help"
+ exit -1
+endif
+
+@ inputset = 0
+@ clean = 0
+foreach argc (`seq 1 $#argv`)
+ if ( "$argv[$argc]" == "--help" ) then
+ printf "$help"
+ exit 0
+ else if ( "$argv[$argc]" == "--clean" ) then
+ @ clean = 1
+ else if ( $argc == $#argv ) then
+ if ( $inputset > 0 ) then
+ set output = "$argv[$argc]"
+ else
+ set originput = "$argv[$argc]"
+ set output = $originput:t.starch
+ endif
+ @ inputset = 1
+ else if ( $inputset > 0 ) then
+ printf "$help"
+ printf "Multiple input files cannot be specified\n"
+ exit -1
+ else
+ set originput = "$argv[$argc]"
+ set output = $originput:t.starch
+ @ inputset = 1
+ endif
+end
+
+if ( $inputset == 0 ) then
+ printf "No input file specified\n"
+ exit -1
+else if ( ! -s $originput ) then
+ printf "Unable to find file: %s\n" $originput
+ exit -1
+else if ( "$output" == "$originput:t.starch" && "$originput:e" == "bed" ) then
+ set output = "$originput:t:r.starch"
+endif
+
+###############################################################
+# new working directory to keep file pileups local to this job
+###############################################################
+
+set nm = scg.`uname -a | cut -f2 -d' '`.$$
+if ( -d $nm ) then
+ rm -rf $nm
+endif
+mkdir -p $nm
+
+set here = `pwd`
+cd $nm
+if ( -s ../$originput ) then
+ set input = $here/$originput
+else
+ # $originput includes absolute path
+ set input = $originput
+endif
+
+# $output:h gives back $output if there is no directory information
+if ( -d ../$output:h || "$output:h" == "$output" ) then
+ set output = $here/$output
+else if ( `echo $output | awk '{ print substr($0, 1, 1); }'` == "/" ) then
+ # $output includes absolute path
+else
+ # $output includes non-absolute path
+ set output = $here/$output
+endif
+
+#####################################################
+# extract information by chromosome and starch it up
+#####################################################
+
+@ chrom_count = `bedextract --list-chr $input | awk 'END { print NR }'`
+
+bedextract --list-chr $input | parallel "bedextract {} $input | starch - > $here/$nm/{}.starch"
+
+@ extracted_file_count = `find $here/$nm -name '*.starch' | wc -l`
+if ( $chrom_count != $extracted_file_count ) then
+ printf "Error: Only some or no files were submitted to GNU Parallel successfully\n"
+ exit -1
+endif
+
+##################################################
+# create final starch archive and clean things up
+##################################################
+
+starchcat $here/$nm/*.starch > $output
+cd $here
+rm -rf $nm
+if ( $clean > 0 ) then
+ rm -f $originput
+endif
+
+exit 0
diff --git a/applications/bed/starch/src/starchcluster_sge.tcsh b/applications/bed/starch/src/starchcluster_sge.tcsh
new file mode 100755
index 0000000..e8321f5
--- /dev/null
+++ b/applications/bed/starch/src/starchcluster_sge.tcsh
@@ -0,0 +1,158 @@
+#!/bin/tcsh -ef
+
+# author : sjn and apr
+# date : Feb 2012
+# version : v2.5.0
+
+#
+# BEDOPS
+# Copyright (C) 2011-2015 Shane Neph, Scott Kuehn and Alex Reynolds
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+####################################################
+# cluster variables:
+# change to match your environment
+# may also require changes to 2 'qsub' calls below
+####################################################
+
+set shell = "-S /bin/tcsh"
+set queue = "-q all.q"
+set misc_opts = "-V -cwd -w e -r yes -now no"
+set soundoff = "-j n -e /dev/null -o /dev/null"
+set sge_opts = "$queue $shell $misc_opts $soundoff"
+
+############################
+# some input error checking
+############################
+
+set help = "\nUsage: starchcluster_sge [--help] [--clean] <input-bed-file> [output-starch-file]\n\n"
+set help = "$help Pass in the name of a BED file to create a starch archive using the cluster.\n\n"
+set help = "$help (stdin isn't supported through this wrapper script, but starch supports it natively.)\n\n"
+set help = "$help Add --clean to remove <input-bed-file> after starching it up.\n\n"
+set help = "$help You can pass in the name of the output starch archive to be created.\n"
+set help = "$help Otherwise, the output will have the same name as the input file, with an additional\n"
+set help = "$help '.starch' ending. If the input file ends with '.bed', that will be stripped off.\n"
+
+if ( $#argv == 0 ) then
+ printf "$help"
+ exit -1
+endif
+
+@ inputset = 0
+@ clean = 0
+foreach argc (`seq 1 $#argv`)
+ if ( "$argv[$argc]" == "--help" ) then
+ printf "$help"
+ exit 0
+ else if ( "$argv[$argc]" == "--clean" ) then
+ @ clean = 1
+ else if ( $argc == $#argv ) then
+ if ( $inputset > 0 ) then
+ set output = "$argv[$argc]"
+ else
+ set originput = "$argv[$argc]"
+ set output = $originput:t.starch
+ endif
+ @ inputset = 1
+ else if ( $inputset > 0 ) then
+ printf "$help"
+ printf "Multiple input files cannot be specified\n"
+ exit -1
+ else
+ set originput = "$argv[$argc]"
+ set output = $originput:t.starch
+ @ inputset = 1
+ endif
+end
+
+if ( $inputset == 0 ) then
+ printf "No input file specified\n"
+ exit -1
+else if ( ! -s $originput ) then
+ printf "Unable to find file: %s\n" $originput
+ exit -1
+else if ( "$output" == "$originput:t.starch" && "$originput:e" == "bed" ) then
+ set output = "$originput:t:r.starch"
+endif
+
+###############################################################
+# new working directory to keep file pileups local to this job
+###############################################################
+
+set nm = scs.`uname -a | cut -f2 -d' '`.$$
+if ( -d $nm ) then
+ rm -rf $nm
+endif
+mkdir -p $nm
+
+set here = `pwd`
+cd $nm
+if ( -s ../$originput ) then
+ set input = ../$originput
+else
+ # $originput includes absolute path
+ set input = $originput
+endif
+
+# $output:h gives back $output if there is no directory information
+if ( -d ../$output:h || "$output:h" == "$output" ) then
+ set output = $here/$output
+else if ( `echo $output | awk '{ print substr($0, 1, 1); }'` == "/" ) then
+ # $output includes absolute path
+else
+ # $output includes non-absolute path
+ set output = $here/$output
+endif
+
+#####################################################
+# extract information by chromosome and starch it up
+#####################################################
+
+set files = ()
+set jids = ()
+@ cntr = 0
+foreach chrom (`bedextract --list-chr $input`)
+
+qsub $sge_opts -N $nm.$cntr > /dev/stderr << __EXTRACTION__
+ bedextract $chrom $input | starch - > $cntr
+__EXTRACTION__
+
+ set jids = ($jids $nm.$cntr)
+ set files = ($files $cntr)
+ @ cntr++
+end
+
+if ( $cntr == 0 ) then
+ printf "Program problem: no files were submitted to the cluster?\n"
+ exit -1
+endif
+
+##################################################
+# create final starch archive and clean things up
+##################################################
+
+qsub $sge_opts -N $nm.union -hold_jid `echo $jids | tr ' ' ','` > /dev/stderr << __CATTED__
+ starchcat $files > $output
+ cd $here
+ rm -rf $nm
+
+ if ( $clean > 0 ) then
+ rm -f $originput
+ endif
+__CATTED__
+
+exit 0
diff --git a/applications/bed/starch/src/unstarch.c b/applications/bed/starch/src/unstarch.c
new file mode 100644
index 0000000..5a77f95
--- /dev/null
+++ b/applications/bed/starch/src/unstarch.c
@@ -0,0 +1,1195 @@
+//=========
+// Author: Alex Reynolds & Shane Neph
+// Project: starch
+// File: unstarch.c
+//=========
+
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifdef __cplusplus
+#include <cstdint>
+#include <cinttypes>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <clocale>
+#else
+#include <stdint.h>
+#include <inttypes.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <locale.h>
+#endif
+
+#include "unstarch.h"
+
+#include "data/starch/starchBase64Coding.h"
+#include "data/starch/starchSha1Digest.h"
+#include "data/starch/unstarchHelpers.h"
+#include "data/starch/starchFileHelpers.h"
+#include "data/starch/starchHelpers.h"
+#include "suite/BEDOPS.Version.hpp"
+
+#ifdef __cplusplus
+namespace {
+ using namespace starch;
+} // unnamed
+#endif
+
+int
+main(int argc, char **argv)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- unstarch main() enter ---\n");
+#endif
+ int resultValue = 0;
+ int parseValue = 0;
+ CompressionType type = STARCH_DEFAULT_COMPRESSION_TYPE;
+ char *archiveTimestamp = NULL;
+ char *note = NULL;
+ char *whichChromosome = NULL;
+ char *inFile = NULL;
+ char *option = NULL;
+ FILE *inFilePtr = NULL;
+ Metadata *records = NULL;
+ ArchiveVersion *archiveVersion = NULL;
+ uint64_t metadataOffset = UINT64_C(0);
+ Boolean headerFlag = kStarchFalse;
+ Boolean showNewlineFlag = kStarchTrue;
+ json_t *metadataJSON = NULL;
+ const Boolean suppressErrorMsgs = kStarchFalse; /* we want to see error messages */
+ const Boolean preserveJSONRef = kStarchFalse; /* we generally do not want to preserve JSON reference */
+ char *jsonString = NULL;
+ unsigned char mdHashBuffer[STARCH2_MD_FOOTER_SHA1_LENGTH + 1] = {0};
+
+ /*
+ unstarch overview
+
+ -- check command-line inputs
+ -- extract and parse metadata
+ -- print list of chromosomes if --list/--listJSON/--list-chromosomes
+ option is set; else, extract data to stdout
+
+ */
+
+ setlocale(LC_ALL, "POSIX");
+ if (UNSTARCH_parseCommandLineInputs( argc, argv, &whichChromosome, &inFile, &option, &parseValue ) != 0) {
+ switch (parseValue) {
+ case 0: {
+ resultValue = EXIT_FAILURE;
+ break;
+ }
+ case UNSTARCH_HELP_ERROR: {
+ resultValue = UNSTARCH_HELP_ERROR;
+ break;
+ }
+ case UNSTARCH_VERSION_ERROR: {
+ resultValue = UNSTARCH_VERSION_ERROR;
+ break;
+ }
+ case UNSTARCH_IS_STARCH_ARCHIVE_ERROR: {
+ resultValue = UNSTARCH_IS_STARCH_ARCHIVE_ERROR;
+ break;
+ }
+ case UNSTARCH_ARCHIVE_VERSION_ERROR: {
+ resultValue = UNSTARCH_ARCHIVE_VERSION_ERROR;
+ break;
+ }
+ case UNSTARCH_ARCHIVE_CREATION_TIMESTAMP_ERROR: {
+ resultValue = UNSTARCH_ARCHIVE_CREATION_TIMESTAMP_ERROR;
+ break;
+ }
+ case UNSTARCH_ARCHIVE_NOTE_ERROR: {
+ resultValue = UNSTARCH_ARCHIVE_NOTE_ERROR;
+ break;
+ }
+ case UNSTARCH_ARCHIVE_COMPRESSION_TYPE_ERROR: {
+ resultValue = UNSTARCH_ARCHIVE_COMPRESSION_TYPE_ERROR;
+ break;
+ }
+ case UNSTARCH_ELEMENT_COUNT_ALL_ERROR: {
+ resultValue = UNSTARCH_ELEMENT_COUNT_ALL_ERROR;
+ break;
+ }
+ case UNSTARCH_ELEMENT_COUNT_CHR_ERROR: {
+ resultValue = UNSTARCH_ELEMENT_COUNT_CHR_ERROR;
+ break;
+ }
+ case UNSTARCH_METADATA_SHA1_SIGNATURE_ERROR: {
+ resultValue = UNSTARCH_METADATA_SHA1_SIGNATURE_ERROR;
+ break;
+ }
+ case UNSTARCH_BASES_COUNT_ALL_ERROR: {
+ resultValue = UNSTARCH_BASES_COUNT_ALL_ERROR;
+ break;
+ }
+ case UNSTARCH_BASES_COUNT_CHR_ERROR: {
+ resultValue = UNSTARCH_BASES_COUNT_CHR_ERROR;
+ break;
+ }
+ case UNSTARCH_BASES_UNIQUE_COUNT_ALL_ERROR: {
+ resultValue = UNSTARCH_BASES_UNIQUE_COUNT_ALL_ERROR;
+ break;
+ }
+ case UNSTARCH_BASES_UNIQUE_COUNT_CHR_ERROR: {
+ resultValue = UNSTARCH_BASES_UNIQUE_COUNT_CHR_ERROR;
+ break;
+ }
+ case UNSTARCH_LIST_CHROMOSOMES_ERROR: {
+ resultValue = UNSTARCH_LIST_CHROMOSOMES_ERROR;
+ break;
+ }
+ case UNSTARCH_ELEMENT_DUPLICATE_CHR_INT_ERROR: {
+ resultValue = UNSTARCH_ELEMENT_DUPLICATE_CHR_INT_ERROR;
+ break;
+ }
+ case UNSTARCH_ELEMENT_DUPLICATE_ALL_INT_ERROR: {
+ resultValue = UNSTARCH_ELEMENT_DUPLICATE_ALL_INT_ERROR;
+ break;
+ }
+ case UNSTARCH_ELEMENT_DUPLICATE_CHR_STR_ERROR: {
+ resultValue = UNSTARCH_ELEMENT_DUPLICATE_CHR_STR_ERROR;
+ break;
+ }
+ case UNSTARCH_ELEMENT_DUPLICATE_ALL_STR_ERROR: {
+ resultValue = UNSTARCH_ELEMENT_DUPLICATE_ALL_STR_ERROR;
+ break;
+ }
+ case UNSTARCH_ELEMENT_NESTED_CHR_INT_ERROR: {
+ resultValue = UNSTARCH_ELEMENT_NESTED_CHR_INT_ERROR;
+ break;
+ }
+ case UNSTARCH_ELEMENT_NESTED_ALL_INT_ERROR: {
+ resultValue = UNSTARCH_ELEMENT_NESTED_ALL_INT_ERROR;
+ break;
+ }
+ case UNSTARCH_ELEMENT_NESTED_CHR_STR_ERROR: {
+ resultValue = UNSTARCH_ELEMENT_NESTED_CHR_STR_ERROR;
+ break;
+ }
+ case UNSTARCH_ELEMENT_NESTED_ALL_STR_ERROR: {
+ resultValue = UNSTARCH_ELEMENT_NESTED_ALL_STR_ERROR;
+ break;
+ }
+ }
+ }
+
+ if ((resultValue == 0) ||
+ (resultValue == UNSTARCH_ARCHIVE_VERSION_ERROR) ||
+ (resultValue == UNSTARCH_ARCHIVE_CREATION_TIMESTAMP_ERROR) ||
+ (resultValue == UNSTARCH_ELEMENT_COUNT_ALL_ERROR) ||
+ (resultValue == UNSTARCH_ELEMENT_COUNT_CHR_ERROR) ||
+ (resultValue == UNSTARCH_BASES_COUNT_ALL_ERROR) ||
+ (resultValue == UNSTARCH_BASES_COUNT_CHR_ERROR) ||
+ (resultValue == UNSTARCH_BASES_UNIQUE_COUNT_ALL_ERROR) ||
+ (resultValue == UNSTARCH_BASES_UNIQUE_COUNT_CHR_ERROR) ||
+ (resultValue == UNSTARCH_LIST_CHROMOSOMES_ERROR) ||
+ (resultValue == UNSTARCH_ARCHIVE_NOTE_ERROR) ||
+ (resultValue == UNSTARCH_ARCHIVE_COMPRESSION_TYPE_ERROR) ||
+ (resultValue == UNSTARCH_ELEMENT_DUPLICATE_CHR_INT_ERROR) ||
+ (resultValue == UNSTARCH_ELEMENT_DUPLICATE_ALL_INT_ERROR) ||
+ (resultValue == UNSTARCH_ELEMENT_DUPLICATE_CHR_STR_ERROR) ||
+ (resultValue == UNSTARCH_ELEMENT_DUPLICATE_ALL_STR_ERROR) ||
+ (resultValue == UNSTARCH_ELEMENT_NESTED_CHR_INT_ERROR) ||
+ (resultValue == UNSTARCH_ELEMENT_NESTED_ALL_INT_ERROR) ||
+ (resultValue == UNSTARCH_ELEMENT_NESTED_CHR_STR_ERROR) ||
+ (resultValue == UNSTARCH_ELEMENT_NESTED_ALL_STR_ERROR) )
+ {
+ if (STARCH_readJSONMetadata( &metadataJSON,
+ &inFilePtr,
+#ifdef __cplusplus
+ reinterpret_cast<const char *>( inFile ),
+#else
+ (const char *) inFile,
+#endif
+ &records,
+ &type,
+ &archiveVersion,
+ &archiveTimestamp,
+ ¬e,
+ &metadataOffset,
+ &headerFlag,
+ suppressErrorMsgs,
+ preserveJSONRef) != STARCH_EXIT_SUCCESS) {
+ fprintf(stderr, "ERROR: Could not read metadata\n");
+ resultValue = EXIT_FAILURE;
+ }
+ }
+ else if (resultValue == UNSTARCH_IS_STARCH_ARCHIVE_ERROR)
+ {
+ /* we suppress warnings from STARCH_readJSONMetadata() */
+ if (STARCH_readJSONMetadata( &metadataJSON,
+ &inFilePtr,
+#ifdef __cplusplus
+ reinterpret_cast<const char *>( inFile ),
+#else
+ (const char *) inFile,
+#endif
+ &records,
+ &type,
+ &archiveVersion,
+ &archiveTimestamp,
+ ¬e,
+ &metadataOffset,
+ &headerFlag,
+ kStarchTrue,
+ kStarchTrue) != STARCH_EXIT_SUCCESS)
+ fprintf(stdout, "0\n"); /* false -- no valid metadata, therefore not a starch archive */
+ else
+ fprintf(stdout, "1\n"); /* true -- valid metadata, therefore a starch archive */
+ return EXIT_SUCCESS;
+ }
+ else if (resultValue == UNSTARCH_METADATA_SHA1_SIGNATURE_ERROR)
+ {
+ if (STARCH_readJSONMetadata( &metadataJSON,
+ &inFilePtr,
+#ifdef __cplusplus
+ reinterpret_cast<const char *>( inFile ),
+#else
+ (const char *) inFile,
+#endif
+ &records,
+ &type,
+ &archiveVersion,
+ &archiveTimestamp,
+ ¬e,
+ &metadataOffset,
+ &headerFlag,
+ suppressErrorMsgs,
+ kStarchTrue) != STARCH_EXIT_SUCCESS) {
+ fprintf(stderr, "ERROR: Could not read metadata\n");
+ resultValue = EXIT_FAILURE;
+ }
+
+#ifdef __cplusplus
+ jsonString = static_cast<char *>( json_dumps(metadataJSON, JSON_INDENT(2)|JSON_PRESERVE_ORDER) );
+#else
+ jsonString = (char *) json_dumps(metadataJSON, JSON_INDENT(2)|JSON_PRESERVE_ORDER);
+#endif
+
+#ifdef DEBUG
+ fprintf(stderr, "%s\n", jsonString);
+#endif
+ if (jsonString) {
+#ifdef __cplusplus
+ STARCH_SHA1_All(reinterpret_cast<const unsigned char *>( reinterpret_cast<unsigned char *>( jsonString ) ),
+ strlen(jsonString),
+ mdHashBuffer);
+#else
+ STARCH_SHA1_All((const unsigned char *) jsonString,
+ strlen(jsonString),
+ mdHashBuffer);
+#endif
+ free(jsonString), jsonString = NULL;
+ json_decref(metadataJSON), metadataJSON = NULL;
+ }
+ else {
+ fprintf(stderr, "ERROR: Could not encode JSON structure into string representation\n");
+ resultValue = EXIT_FAILURE;
+ }
+ }
+
+ if (resultValue == 0) {
+
+ if (option && (strcmp(option, "list-json-no-trailing-newline") == 0))
+ showNewlineFlag = kStarchFalse;
+
+ if (option && (strcmp(option, "list") == 0)) {
+ if (STARCH_listMetadata(records, whichChromosome) != STARCH_EXIT_SUCCESS) {
+ fprintf(stderr, "ERROR: Metadata extraction failed\n");
+ UNSTARCH_printUsage(EXIT_FAILURE);
+ return EXIT_FAILURE;
+ }
+ }
+ else if (option && ((strcmp(option, "listJSON") == 0) || (strcmp(option, "list-json") == 0) || (strcmp(option, "list-json-no-trailing-newline") == 0))) {
+ if (strcmp(whichChromosome, "all") != 0) {
+ fprintf(stderr, "ERROR: JSON listing cannot be limited to one chromosome; please remove chromosome name from options.\n");
+ UNSTARCH_printUsage(EXIT_FAILURE);
+ return EXIT_FAILURE;
+ }
+ if (STARCH_listJSONMetadata(NULL, NULL, records, type, archiveVersion, archiveTimestamp, note, headerFlag, showNewlineFlag) != STARCH_EXIT_SUCCESS) {
+ fprintf(stderr, "ERROR: Metadata extraction failed\n");
+ resultValue = EXIT_FAILURE;
+ UNSTARCH_printUsage(EXIT_FAILURE);
+ }
+ }
+ else if (option && (strcmp(option, "help") == 0))
+ resultValue = UNSTARCH_HELP_ERROR;
+ else if (option && (strcmp(option, "version") == 0))
+ resultValue = UNSTARCH_VERSION_ERROR;
+ else if (option && ((strcmp(option, "archiveVersion") == 0) || (strcmp(option, "archive-version") == 0)))
+ resultValue = UNSTARCH_ARCHIVE_VERSION_ERROR;
+ else {
+ if ((STARCH_MAJOR_VERSION == 1) || (archiveVersion->major == 1)) {
+ switch (type) {
+ case kBzip2: {
+#ifdef __cplusplus
+ if (UNSTARCH_extractDataWithBzip2(&inFilePtr,
+ NULL,
+ whichChromosome,
+ reinterpret_cast<const Metadata *>( records ),
+ static_cast<const unsigned long long>( metadataOffset ),
+ static_cast<const Boolean>( headerFlag )) != 0) {
+#else
+ if (UNSTARCH_extractDataWithBzip2(&inFilePtr,
+ NULL,
+ whichChromosome,
+ (const Metadata *) records,
+ (const unsigned long long) metadataOffset,
+ (const Boolean) headerFlag) != 0) {
+#endif
+ fprintf(stderr, "ERROR: Backend extraction failed (bzip2)\n");
+ resultValue = EXIT_FAILURE;
+ }
+ break;
+ }
+ case kGzip: {
+#ifdef __cplusplus
+ if (UNSTARCH_extractDataWithGzip(&inFilePtr,
+ NULL,
+ whichChromosome,
+ reinterpret_cast<const Metadata *>( records ),
+ static_cast<const unsigned long long>( metadataOffset ),
+ static_cast<const Boolean>( headerFlag )) != 0) {
+#else
+ if (UNSTARCH_extractDataWithGzip(&inFilePtr,
+ NULL,
+ whichChromosome,
+ (const Metadata *) records,
+ (const unsigned long long) metadataOffset,
+ (const Boolean) headerFlag) != 0) {
+#endif
+ fprintf(stderr, "ERROR: Backend extraction failed (gzip)\n");
+ resultValue = EXIT_FAILURE;
+ }
+ break;
+ }
+ case kUndefined: {
+ fprintf(stderr, "ERROR: Backend compression type is undefined\n");
+ resultValue = EXIT_FAILURE;
+ break;
+ }
+ }
+ }
+ else if ((STARCH_MAJOR_VERSION == 2) || (archiveVersion->major == 2)) { // warning is false-positive
+ switch (type) {
+ case kBzip2: {
+#ifdef __cplusplus
+ if (UNSTARCH_extractDataWithBzip2(&inFilePtr,
+ NULL,
+ whichChromosome,
+ reinterpret_cast<const Metadata *>( records ),
+ static_cast<const unsigned long long>( sizeof(starchRevision2HeaderBytes) ),
+ static_cast<const Boolean>( headerFlag )) != 0) {
+#else
+ if (UNSTARCH_extractDataWithBzip2(&inFilePtr,
+ NULL,
+ whichChromosome,
+ (const Metadata *) records,
+ (const unsigned long long) sizeof(starchRevision2HeaderBytes),
+ (const Boolean) headerFlag) != 0) {
+#endif
+ fprintf(stderr, "ERROR: Backend extraction failed (bzip2)\n");
+ resultValue = EXIT_FAILURE;
+ }
+ break;
+ }
+ case kGzip: {
+#ifdef __cplusplus
+ if (UNSTARCH_extractDataWithGzip(&inFilePtr,
+ NULL,
+ whichChromosome,
+ reinterpret_cast<const Metadata *>( records ),
+ static_cast<const unsigned long long>( sizeof(starchRevision2HeaderBytes) ),
+ static_cast<const Boolean>( headerFlag )) != 0) {
+#else
+ if (UNSTARCH_extractDataWithGzip(&inFilePtr,
+ NULL,
+ whichChromosome,
+ (const Metadata *) records,
+ (const unsigned long long) sizeof(starchRevision2HeaderBytes),
+ (const Boolean) headerFlag) != 0) {
+#endif
+ fprintf(stderr, "ERROR: Backend extraction failed (gzip)\n");
+ resultValue = EXIT_FAILURE;
+ }
+ break;
+ }
+ case kUndefined: {
+ fprintf(stderr, "ERROR: Backend compression type is undefined\n");
+ resultValue = EXIT_FAILURE;
+ break;
+ }
+ }
+ }
+ else if (STARCH_MAJOR_VERSION > 2) {
+ fprintf(stderr, "ERROR: Unstarch does not support extracting archives in this major version release (built as: %d.%d.%d)\n", STARCH_MAJOR_VERSION, STARCH_MINOR_VERSION, STARCH_REVISION_VERSION); // this is preserved for future-proofing test builds of Starch binaries
+ exit(EXIT_FAILURE);
+ }
+ }
+ }
+
+ else if (resultValue == EXIT_FAILURE)
+ UNSTARCH_printUsage(EXIT_FAILURE);
+
+ else if (resultValue == UNSTARCH_HELP_ERROR) {
+ if (strcmp(whichChromosome, "all") != 0) {
+ fprintf(stderr, "ERROR: Please remove chromosome from options\n");
+ UNSTARCH_printUsage(EXIT_FAILURE);
+ return EXIT_FAILURE;
+ }
+ if (inFile) {
+ fprintf(stderr, "ERROR: Please remove filename from options\n");
+ UNSTARCH_printUsage(EXIT_FAILURE);
+ return EXIT_FAILURE;
+ }
+ UNSTARCH_printUsage(UNSTARCH_HELP_ERROR);
+ }
+
+ else if (resultValue == UNSTARCH_VERSION_ERROR) {
+ if (strcmp(whichChromosome, "all") != 0) {
+ fprintf(stderr, "ERROR: Please remove chromosome from options\n");
+ UNSTARCH_printUsage(EXIT_FAILURE);
+ return EXIT_FAILURE;
+ }
+ if (inFile) {
+ fprintf(stderr, "ERROR: Please remove filename from options\n");
+ UNSTARCH_printUsage(EXIT_FAILURE);
+ return EXIT_FAILURE;
+ }
+ UNSTARCH_printRevision();
+ }
+
+ else if (resultValue == UNSTARCH_ARCHIVE_VERSION_ERROR) {
+ if (strcmp(whichChromosome, "all") != 0) {
+ fprintf(stderr, "ERROR: Please remove chromosome from options\n");
+ UNSTARCH_printUsage(EXIT_FAILURE);
+ return EXIT_FAILURE;
+ }
+#ifdef __cplusplus
+ UNSTARCH_printArchiveVersion(const_cast<const ArchiveVersion *>( archiveVersion ));
+#else
+ UNSTARCH_printArchiveVersion((const ArchiveVersion *) archiveVersion);
+#endif
+ }
+
+ else if (resultValue == UNSTARCH_LIST_CHROMOSOMES_ERROR) {
+ if (strcmp(whichChromosome, "all") != 0) {
+ if (STARCH_listChromosome(records, whichChromosome) != STARCH_EXIT_SUCCESS) {
+ fprintf(stderr, "ERROR: Metadata extraction failed\n");
+ UNSTARCH_printUsage(EXIT_FAILURE);
+ return EXIT_FAILURE;
+ }
+ }
+ else if (STARCH_listAllChromosomes(records) != STARCH_EXIT_SUCCESS) {
+ fprintf(stderr, "ERROR: Metadata extraction failed\n");
+ resultValue = EXIT_FAILURE;
+ }
+ }
+
+ else if (resultValue == UNSTARCH_ARCHIVE_COMPRESSION_TYPE_ERROR) {
+ if (strcmp(whichChromosome, "all") != 0) {
+ fprintf(stderr, "ERROR: Please remove chromosome from options\n");
+ UNSTARCH_printUsage(EXIT_FAILURE);
+ return EXIT_FAILURE;
+ }
+#ifdef __cplusplus
+ UNSTARCH_printCompressionType(static_cast<const CompressionType>( type ));
+#else
+ UNSTARCH_printCompressionType((const CompressionType) type);
+#endif
+ }
+
+ /* test version numbering against toolkit */
+ else {
+ switch (resultValue) {
+ case UNSTARCH_ELEMENT_COUNT_CHR_ERROR: {
+ if (((archiveVersion->major == 1) && (archiveVersion->minor >= 3)) ||
+ ((archiveVersion->major == 2) && (archiveVersion->minor >= 0)))
+ UNSTARCH_printLineCountForChromosome(records, whichChromosome);
+ else {
+ fprintf(stderr, "ERROR: Archive version (%d.%d.%d) does not support element counting (starchcat the archive to bring its version to v1.3.0 or greater)\n", archiveVersion->major, archiveVersion->minor, archiveVersion->revision);
+ resultValue = EXIT_FAILURE;
+ }
+ break;
+ }
+ case UNSTARCH_ELEMENT_COUNT_ALL_ERROR: {
+ if (((archiveVersion->major == 1) && (archiveVersion->minor >= 3)) ||
+ ((archiveVersion->major == 2) && (archiveVersion->minor >= 0)))
+ UNSTARCH_printLineCountForAllChromosomes(records);
+ else {
+ fprintf(stderr, "ERROR: Archive version (%d.%d.%d) does not support element counting (starchcat the archive to bring its version to v1.3.0 or greater)\n", archiveVersion->major, archiveVersion->minor, archiveVersion->revision);
+ resultValue = EXIT_FAILURE;
+ }
+ break;
+ }
+ case UNSTARCH_BASES_COUNT_CHR_ERROR: {
+ if (((archiveVersion->major == 1) && (archiveVersion->minor >= 4)) ||
+ ((archiveVersion->major == 2) && (archiveVersion->minor >= 0)))
+ UNSTARCH_printNonUniqueBaseCountForChromosome(records, whichChromosome);
+ else {
+ fprintf(stderr, "ERROR: Archive version (%d.%d.%d) does not support base counting (starchcat the archive to bring its version to v1.4.0 or greater)\n", archiveVersion->major, archiveVersion->minor, archiveVersion->revision);
+ resultValue = EXIT_FAILURE;
+ }
+ break;
+ }
+ case UNSTARCH_BASES_COUNT_ALL_ERROR: {
+ if (((archiveVersion->major == 1) && (archiveVersion->minor >= 4)) ||
+ ((archiveVersion->major == 2) && (archiveVersion->minor >= 0)))
+ UNSTARCH_printNonUniqueBaseCountForAllChromosomes(records);
+ else {
+ fprintf(stderr, "ERROR: Archive version (%d.%d.%d) does not support base counting (starchcat the archive to bring its version to v1.4.0 or greater)\n", archiveVersion->major, archiveVersion->minor, archiveVersion->revision);
+ resultValue = EXIT_FAILURE;
+ }
+ break;
+ }
+ case UNSTARCH_BASES_UNIQUE_COUNT_CHR_ERROR: {
+ if (((archiveVersion->major == 1) && (archiveVersion->minor >= 4)) ||
+ ((archiveVersion->major == 2) && (archiveVersion->minor >= 0)))
+ UNSTARCH_printUniqueBaseCountForChromosome(records, whichChromosome);
+ else {
+ fprintf(stderr, "ERROR: Archive version (%d.%d.%d) does not support base counting (starchcat the archive to bring its version to v1.4.0 or greater)\n", archiveVersion->major, archiveVersion->minor, archiveVersion->revision);
+ resultValue = EXIT_FAILURE;
+ }
+ break;
+ }
+ case UNSTARCH_BASES_UNIQUE_COUNT_ALL_ERROR: {
+ if (((archiveVersion->major == 1) && (archiveVersion->minor >= 4)) ||
+ ((archiveVersion->major == 2) && (archiveVersion->minor >= 0)))
+ UNSTARCH_printUniqueBaseCountForAllChromosomes(records);
+ else {
+ fprintf(stderr, "ERROR: Archive version (%d.%d.%d) does not support base counting (starchcat the archive to bring its version to v1.4.0 or greater)\n", archiveVersion->major, archiveVersion->minor, archiveVersion->revision);
+ resultValue = EXIT_FAILURE;
+ }
+ break;
+ }
+ case UNSTARCH_ARCHIVE_CREATION_TIMESTAMP_ERROR: {
+ if (((archiveVersion->major == 1) && (archiveVersion->minor >= 5)) ||
+ ((archiveVersion->major == 2) && (archiveVersion->minor >= 0))) {
+ if (strcmp(whichChromosome, "all") != 0) {
+ fprintf(stderr, "ERROR: Please remove chromosome from options\n");
+ UNSTARCH_printUsage(EXIT_FAILURE);
+ return EXIT_FAILURE;
+ }
+#ifdef __cplusplus
+ UNSTARCH_printArchiveTimestamp(const_cast<const char *>( archiveTimestamp ));
+#else
+ UNSTARCH_printArchiveTimestamp((const char *)archiveTimestamp);
+#endif
+ }
+ else {
+ fprintf(stderr, "ERROR: Archive version (%d.%d.%d) does not support archive creation timestamping (starchcat the archive to bring its version to v1.5.0 or greater)\n", archiveVersion->major, archiveVersion->minor, archiveVersion->revision);
+ resultValue = EXIT_FAILURE;
+ }
+ break;
+ }
+ case UNSTARCH_ARCHIVE_NOTE_ERROR: {
+ if (((archiveVersion->major == 1) && (archiveVersion->minor >= 5)) ||
+ ((archiveVersion->major == 2) && (archiveVersion->minor >= 0))) {
+ if (note) {
+ if (strcmp(whichChromosome, "all") != 0) {
+ fprintf(stderr, "ERROR: Please remove chromosome from options\n");
+ UNSTARCH_printUsage(EXIT_FAILURE);
+ return EXIT_FAILURE;
+ }
+#ifdef __cplusplus
+ UNSTARCH_printNote(const_cast<const char *>( note ));
+#else
+ UNSTARCH_printNote((const char *)note);
+#endif
+ }
+ else {
+ fprintf(stderr, "ERROR: Archive does not contain a note annotation (use --list-json to view attributes)\n");
+ resultValue = EXIT_FAILURE;
+ }
+ }
+ else {
+ fprintf(stderr, "ERROR: Archive version (%d.%d.%d) does not support note annotations (starchcat the archive to bring its version to v1.5.0 or greater)\n", archiveVersion->major, archiveVersion->minor, archiveVersion->revision);
+ resultValue = EXIT_FAILURE;
+ }
+ break;
+ }
+ case UNSTARCH_METADATA_SHA1_SIGNATURE_ERROR: {
+ if ((archiveVersion->major == 2) && (archiveVersion->minor >= 0)) {
+ if (strcmp(whichChromosome, "all") != 0) {
+ fprintf(stderr, "ERROR: Please remove chromosome from options\n");
+ UNSTARCH_printUsage(EXIT_FAILURE);
+ return EXIT_FAILURE;
+ }
+ UNSTARCH_printMetadataSha1Signature(mdHashBuffer);
+ }
+ else {
+ fprintf(stderr, "ERROR: Archive version (%d.%d.%d) does not support metadata signing (starchcat the archive to bring its version to v2.0.0 or greater)\n", archiveVersion->major, archiveVersion->minor, archiveVersion->revision);
+ resultValue = EXIT_FAILURE;
+ }
+ break;
+ }
+ case UNSTARCH_ELEMENT_DUPLICATE_CHR_INT_ERROR: {
+ if ((archiveVersion->major == 2) && (archiveVersion->minor >= 1)) {
+ UNSTARCH_printDuplicateElementExistsIntegerForChromosome(records, whichChromosome);
+ }
+ else {
+ fprintf(stderr, "ERROR: Archive version (%d.%d.%d) does not support duplicate element flag (starchcat the archive to bring its version to v2.1.0 or greater)\n", archiveVersion->major, archiveVersion->minor, archiveVersion->revision);
+ resultValue = EXIT_FAILURE;
+ }
+ break;
+ }
+ case UNSTARCH_ELEMENT_DUPLICATE_ALL_INT_ERROR: {
+ if ((archiveVersion->major == 2) && (archiveVersion->minor >= 1)) {
+ UNSTARCH_printDuplicateElementExistsIntegersForAllChromosomes(records);
+ }
+ else {
+ fprintf(stderr, "ERROR: Archive version (%d.%d.%d) does not support duplicate element flag (starchcat the archive to bring its version to v2.1.0 or greater)\n", archiveVersion->major, archiveVersion->minor, archiveVersion->revision);
+ resultValue = EXIT_FAILURE;
+ }
+ break;
+ }
+ case UNSTARCH_ELEMENT_DUPLICATE_CHR_STR_ERROR: {
+ if ((archiveVersion->major == 2) && (archiveVersion->minor >= 1)) {
+ UNSTARCH_printDuplicateElementExistsStringForChromosome(records, whichChromosome);
+ }
+ else {
+ fprintf(stderr, "ERROR: Archive version (%d.%d.%d) does not support duplicate element flag (starchcat the archive to bring its version to v2.1.0 or greater)\n", archiveVersion->major, archiveVersion->minor, archiveVersion->revision);
+ resultValue = EXIT_FAILURE;
+ }
+ break;
+ }
+ case UNSTARCH_ELEMENT_DUPLICATE_ALL_STR_ERROR: {
+ if ((archiveVersion->major == 2) && (archiveVersion->minor >= 1)) {
+ UNSTARCH_printDuplicateElementExistsStringsForAllChromosomes(records);
+ }
+ else {
+ fprintf(stderr, "ERROR: Archive version (%d.%d.%d) does not support duplicate element flag (starchcat the archive to bring its version to v2.1.0 or greater)\n", archiveVersion->major, archiveVersion->minor, archiveVersion->revision);
+ resultValue = EXIT_FAILURE;
+ }
+ break;
+ }
+ case UNSTARCH_ELEMENT_NESTED_CHR_INT_ERROR: {
+ if ((archiveVersion->major == 2) && (archiveVersion->minor >= 1)) {
+ UNSTARCH_printNestedElementExistsIntegerForChromosome(records, whichChromosome);
+ }
+ else {
+ fprintf(stderr, "ERROR: Archive version (%d.%d.%d) does not support nested element flag (starchcat the archive to bring its version to v2.1.0 or greater)\n", archiveVersion->major, archiveVersion->minor, archiveVersion->revision);
+ resultValue = EXIT_FAILURE;
+ }
+ break;
+ }
+ case UNSTARCH_ELEMENT_NESTED_ALL_INT_ERROR: {
+ if ((archiveVersion->major == 2) && (archiveVersion->minor >= 1)) {
+ UNSTARCH_printNestedElementExistsIntegersForAllChromosomes(records);
+ }
+ else {
+ fprintf(stderr, "ERROR: Archive version (%d.%d.%d) does not support nested element flag (starchcat the archive to bring its version to v2.1.0 or greater)\n", archiveVersion->major, archiveVersion->minor, archiveVersion->revision);
+ resultValue = EXIT_FAILURE;
+ }
+ break;
+ }
+ case UNSTARCH_ELEMENT_NESTED_CHR_STR_ERROR: {
+ if ((archiveVersion->major == 2) && (archiveVersion->minor >= 1)) {
+ UNSTARCH_printNestedElementExistsStringForChromosome(records, whichChromosome);
+ }
+ else {
+ fprintf(stderr, "ERROR: Archive version (%d.%d.%d) does not support nested element flag (starchcat the archive to bring its version to v2.1.0 or greater)\n", archiveVersion->major, archiveVersion->minor, archiveVersion->revision);
+ resultValue = EXIT_FAILURE;
+ }
+ break;
+ }
+ case UNSTARCH_ELEMENT_NESTED_ALL_STR_ERROR: {
+ if ((archiveVersion->major == 2) && (archiveVersion->minor >= 1)) {
+ UNSTARCH_printNestedElementExistsStringsForAllChromosomes(records);
+ }
+ else {
+ fprintf(stderr, "ERROR: Archive version (%d.%d.%d) does not support nested element flag (starchcat the archive to bring its version to v2.1.0 or greater)\n", archiveVersion->major, archiveVersion->minor, archiveVersion->revision);
+ resultValue = EXIT_FAILURE;
+ }
+ break;
+ }
+ }
+ }
+
+ if ((resultValue == UNSTARCH_HELP_ERROR) ||
+ (resultValue == UNSTARCH_VERSION_ERROR) ||
+ (resultValue == UNSTARCH_ARCHIVE_VERSION_ERROR) ||
+ (resultValue == UNSTARCH_ARCHIVE_CREATION_TIMESTAMP_ERROR) ||
+ (resultValue == UNSTARCH_ELEMENT_COUNT_CHR_ERROR) ||
+ (resultValue == UNSTARCH_ELEMENT_COUNT_ALL_ERROR) ||
+ (resultValue == UNSTARCH_BASES_COUNT_CHR_ERROR) ||
+ (resultValue == UNSTARCH_BASES_COUNT_ALL_ERROR) ||
+ (resultValue == UNSTARCH_BASES_UNIQUE_COUNT_CHR_ERROR) ||
+ (resultValue == UNSTARCH_BASES_UNIQUE_COUNT_ALL_ERROR) ||
+ (resultValue == UNSTARCH_LIST_CHROMOSOMES_ERROR) ||
+ (resultValue == UNSTARCH_ARCHIVE_NOTE_ERROR) ||
+ (resultValue == UNSTARCH_METADATA_SHA1_SIGNATURE_ERROR) ||
+ (resultValue == UNSTARCH_ELEMENT_DUPLICATE_CHR_INT_ERROR) ||
+ (resultValue == UNSTARCH_ELEMENT_DUPLICATE_ALL_INT_ERROR) ||
+ (resultValue == UNSTARCH_ELEMENT_DUPLICATE_CHR_STR_ERROR) ||
+ (resultValue == UNSTARCH_ELEMENT_DUPLICATE_ALL_STR_ERROR) ||
+ (resultValue == UNSTARCH_ELEMENT_NESTED_CHR_INT_ERROR) ||
+ (resultValue == UNSTARCH_ELEMENT_NESTED_ALL_INT_ERROR) ||
+ (resultValue == UNSTARCH_ELEMENT_NESTED_CHR_STR_ERROR) ||
+ (resultValue == UNSTARCH_ELEMENT_NESTED_ALL_STR_ERROR) )
+ resultValue = EXIT_SUCCESS;
+
+ /* cleanup */
+ if (option)
+ free(option);
+ if (whichChromosome)
+ free(whichChromosome);
+ if (inFile)
+ free(inFile);
+ if (inFilePtr)
+ fclose(inFilePtr);
+ if (records)
+ STARCH_freeMetadata(&records);
+ if (archiveVersion)
+ free(archiveVersion);
+ if (archiveTimestamp)
+ free(archiveTimestamp);
+
+#ifdef DEBUG
+ fprintf(stderr, "\n--- unstarch main() exit ---\n");
+#endif
+
+ fclose(stdin);
+ fclose(stdout);
+ fclose(stderr);
+
+ return resultValue;
+}
+
+#ifdef __cplusplus
+namespace starch {
+#endif
+
+int
+UNSTARCH_parseCommandLineInputs(int argc, char **argv, char **chr, char **fn, char **optn, int *pval)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_parseCommandLineInputs() ---\n");
+#endif
+
+ char *hdr1 = NULL;
+ char *ftr1 = NULL;
+ char *hdr2 = NULL;
+ char *ftr2 = NULL;
+
+#ifdef DEBUG
+ fprintf(stderr, "\targc: %d\n", argc);
+ for (int i = 0; i < argc; i++)
+ fprintf(stderr, "\targv[%d]: %s\n", i, argv[i]);
+#endif
+
+ if ((argc <= 1) || (argc > 4)) {
+ fprintf(stderr, "ERROR: Wrong number of arguments\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+
+ else if (argc == 2) {
+ if (strlen(argv[1]) == 1) {
+ if (strcmp(argv[1], "-") == 0) {
+ fprintf(stderr, "ERROR: Unstarch does not take standard input at this time\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ }
+ hdr1 = UNSTARCH_strndup(argv[1], 2);
+ if (strcmp(hdr1, "--") == 0) {
+ free(hdr1);
+ ftr1 = UNSTARCH_strndup(argv[1] + 2, strlen(argv[1]) - 2);
+ if (strcmp(ftr1, "help") == 0) {
+ *optn = STARCH_strdup(ftr1);
+ *chr = STARCH_strdup("all");
+ free(ftr1);
+ *pval = UNSTARCH_HELP_ERROR;
+ return UNSTARCH_HELP_ERROR;
+ }
+ else if (strcmp(ftr1, "version") == 0) {
+ *optn = STARCH_strdup(ftr1);
+ *chr = STARCH_strdup("all");
+ free(ftr1);
+ *pval = UNSTARCH_VERSION_ERROR;
+ return UNSTARCH_VERSION_ERROR;
+ }
+ else {
+ fprintf(stderr, "ERROR: Please specify a filename or the --help or --version options\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ }
+ else {
+ free(hdr1);
+ *chr = STARCH_strdup("all");
+ *fn = STARCH_strdup(argv[1]);
+ }
+ }
+
+ else if (argc == 3) {
+ if (strlen(argv[1]) == 1) {
+ if (strcmp(argv[1], "-") == 0) {
+ fprintf(stderr, "ERROR: Unstarch does not take standard input at this time\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ }
+ if (strlen(argv[2]) == 1) {
+ if (strcmp(argv[2], "-") == 0) {
+ fprintf(stderr, "ERROR: Unstarch does not take standard input at this time\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ }
+ hdr1 = UNSTARCH_strndup(argv[1], 2);
+ if (strcmp(hdr1, "--") == 0) {
+ hdr2 = UNSTARCH_strndup(argv[2], 2);
+ if (strcmp(hdr2, "--") == 0) {
+ free(hdr2);
+ fprintf(stderr, "ERROR: Cannot mix arguments\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ ftr1 = UNSTARCH_strndup(argv[1] + 2, strlen(argv[1]) - 2);
+ *chr = STARCH_strdup("all");
+ *fn = STARCH_strdup(argv[2]);
+ }
+ else {
+ if ((hdr1[0] == '-') && (hdr1[1] != '-')) {
+ free(hdr1);
+ fprintf(stderr, "ERROR: Malformed argument\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ if (strlen(argv[2]) > 1) {
+ hdr2 = UNSTARCH_strndup(argv[2], 2);
+ if (strcmp(hdr2, "--") == 0) {
+ free(hdr2);
+ fprintf(stderr, "ERROR: Please specify a filename\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ free(hdr2);
+ }
+ *chr = STARCH_strdup(argv[1]);
+ *fn = STARCH_strdup(argv[2]);
+ }
+ free(hdr1);
+ }
+
+ else if (argc == 4) {
+ if (strlen(argv[1]) == 1) {
+ if (strcmp(argv[1], "-") == 0) {
+ fprintf(stderr, "ERROR: Unstarch does not take standard input at this time\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ }
+ if (strlen(argv[2]) == 1) {
+ if (strcmp(argv[2], "-") == 0) {
+ fprintf(stderr, "ERROR: Unstarch does not take standard input at this time\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ }
+ if (strlen(argv[3]) == 1) {
+ if (strcmp(argv[3], "-") == 0) {
+ fprintf(stderr, "ERROR: Unstarch does not take standard input at this time\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ }
+ hdr1 = UNSTARCH_strndup(argv[1], 2);
+ if (strcmp(hdr1, "--") == 0) {
+ free(hdr1);
+ fprintf(stderr, "ERROR: Cannot place option before chromosome name\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ else if ((hdr1[0] == '-') && (hdr1[1] != '-')) {
+ free(hdr1);
+ fprintf(stderr, "ERROR: Malformed argument\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ free(hdr1);
+ hdr2 = UNSTARCH_strndup(argv[2], 2);
+ if (strcmp(hdr2, "--") == 0) {
+ free(hdr2);
+ ftr2 = UNSTARCH_strndup(argv[2] + 2, strlen(argv[2]) - 2);
+ }
+ else {
+ free(hdr2);
+ fprintf(stderr, "ERROR: Must place option after chromosome name\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ *chr = STARCH_strdup(argv[1]);
+ *fn = STARCH_strdup(argv[3]);
+ }
+
+#ifdef DEBUG
+ fprintf(stderr, "chr -> %s \t ftr1 -> %s \t ftr2 -> %s \t fn -> %s \n", *chr, ftr1, ftr2, *fn);
+#endif
+
+
+ if ((! *fn) ||
+ (! *chr) ||
+ (strcmp(*fn, "-") == 0) ||
+ (strcmp(*fn, "--list") == 0) ||
+ (strcmp(*fn, "--listJSON") == 0) ||
+ (strcmp(*fn, "--list-json") == 0) ||
+ (strcmp(*fn, "--list-json-no-trailing-newline") == 0) ||
+ (strcmp(*fn, "--note") == 0) ||
+ (strcmp(*fn, "--archive-type") == 0) ||
+ (strcmp(*fn, "--archive-version") == 0) ||
+ (strcmp(*fn, "--archive-timestamp") == 0) ||
+ (strcmp(*fn, "--sha1-signature") == 0) ||
+ (strcmp(*fn, "--is-starch") == 0) )
+ {
+ if (ftr1)
+ free(ftr1);
+ if (ftr2)
+ free(ftr2);
+ return UNSTARCH_FATAL_ERROR;
+ }
+
+ if (ftr1 && ftr2) {
+ fprintf(stderr, "ERROR: Something went wrong with parsing command-line arguments. Please contact BEDOPS developers!\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+
+ *optn = (ftr1) ? STARCH_strdup(ftr1) : ((ftr2) ? STARCH_strdup(ftr2) : NULL);
+
+ if (*optn) {
+ if (strcmp(*optn, "help") == 0) {
+ *pval = UNSTARCH_HELP_ERROR;
+ return *pval;
+ }
+ else if (strcmp(*optn, "version") == 0) {
+ *pval = UNSTARCH_VERSION_ERROR;
+ return *pval;
+ }
+ else if (strcmp(*optn, "is-starch") == 0) {
+ *pval = UNSTARCH_IS_STARCH_ARCHIVE_ERROR;
+ return *pval;
+ }
+ else if ((strcmp(*optn, "archiveVersion") == 0) || (strcmp(*optn, "archive-version") == 0)) {
+ *pval = UNSTARCH_ARCHIVE_VERSION_ERROR;
+ return *pval;
+ }
+ else if (strcmp(*optn, "archive-timestamp") == 0) {
+ *pval = UNSTARCH_ARCHIVE_CREATION_TIMESTAMP_ERROR;
+ return *pval;
+ }
+ else if (strcmp(*optn, "sha1-signature") == 0) {
+ *pval = UNSTARCH_METADATA_SHA1_SIGNATURE_ERROR;
+ return *pval;
+ }
+ else if (strcmp(*optn, "note") == 0) {
+ *pval = UNSTARCH_ARCHIVE_NOTE_ERROR;
+ return *pval;
+ }
+ else if (strcmp(*optn, "archive-type") == 0) {
+ *pval = UNSTARCH_ARCHIVE_COMPRESSION_TYPE_ERROR;
+ return *pval;
+ }
+ else if ((strcmp(*optn, "listchr") == 0) || (strcmp(*optn, "list-chr") == 0) || (strcmp(*optn, "list-chromosomes") == 0)) {
+ *pval = UNSTARCH_LIST_CHROMOSOMES_ERROR;
+ return *pval;
+ }
+ else if (strcmp(*optn, "elements") == 0) {
+ *pval = (strcmp(*chr, "--elements") == 0) ? UNSTARCH_ELEMENT_COUNT_ALL_ERROR : UNSTARCH_ELEMENT_COUNT_CHR_ERROR;
+ return *pval;
+ }
+ else if (strcmp(*optn, "bases") == 0) {
+ *pval = (strcmp(*chr, "--bases") == 0) ? UNSTARCH_BASES_COUNT_ALL_ERROR : UNSTARCH_BASES_COUNT_CHR_ERROR;
+ return *pval;
+ }
+ else if (strcmp(*optn, "bases-uniq") == 0) {
+ *pval = (strcmp(*chr, "--bases-uniq") == 0) ? UNSTARCH_BASES_UNIQUE_COUNT_ALL_ERROR : UNSTARCH_BASES_UNIQUE_COUNT_CHR_ERROR;
+ return *pval;
+ }
+ else if (strcmp(*optn, "has-duplicate-as-string") == 0) {
+ *pval = (strcmp(*chr, "--has-duplicate-as-string") == 0) ? UNSTARCH_ELEMENT_DUPLICATE_ALL_STR_ERROR : UNSTARCH_ELEMENT_DUPLICATE_CHR_STR_ERROR;
+ return *pval;
+ }
+ else if (strcmp(*optn, "has-duplicate") == 0) {
+ *pval = (strcmp(*chr, "--has-duplicate") == 0) ? UNSTARCH_ELEMENT_DUPLICATE_ALL_INT_ERROR : UNSTARCH_ELEMENT_DUPLICATE_CHR_INT_ERROR;
+ return *pval;
+ }
+ else if (strcmp(*optn, "has-nested-as-string") == 0) {
+ *pval = (strcmp(*chr, "--has-nested-as-string") == 0) ? UNSTARCH_ELEMENT_NESTED_ALL_STR_ERROR : UNSTARCH_ELEMENT_NESTED_CHR_STR_ERROR;
+ return *pval;
+ }
+ else if (strcmp(*optn, "has-nested") == 0) {
+ *pval = (strcmp(*chr, "--has-nested") == 0) ? UNSTARCH_ELEMENT_NESTED_ALL_INT_ERROR : UNSTARCH_ELEMENT_NESTED_CHR_INT_ERROR;
+ return *pval;
+ }
+ else if ((strcmp(*optn, "list") != 0) &&
+ (strcmp(*optn, "listJSON") != 0) &&
+ (strcmp(*optn, "list-json") != 0) &&
+ (strcmp(*optn, "list-json-no-trailing-newline") != 0) ) {
+ fprintf(stderr, "ERROR: Wrong option specified\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ }
+
+ return EXIT_SUCCESS;
+}
+
+void
+UNSTARCH_printUsage(int errorType)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_printUsage() ---\n");
+#endif
+ char *avStr = NULL;
+#ifdef __cplusplus
+ avStr = static_cast<char *>( malloc(STARCH_ARCHIVE_VERSION_STRING_LENGTH) );
+#else
+ avStr = malloc(STARCH_ARCHIVE_VERSION_STRING_LENGTH);
+#endif
+ if (avStr != NULL) {
+ int result = sprintf(avStr, "%d.%d.%d", STARCH_MAJOR_VERSION, STARCH_MINOR_VERSION, STARCH_REVISION_VERSION);
+ if (result != -1) {
+ switch (errorType) {
+ case EXIT_FAILURE:
+ case UNSTARCH_HELP_ERROR:
+ default:
+ fprintf(stderr,
+ "%s\n citation: %s\n binary version: %s (extracts archive version: %s or older)\n authors: %s\n%s\n",
+ name,
+ BEDOPS::citation(),
+ BEDOPS::revision(),
+ avStr,
+ authors,
+ usage);
+ break;
+ }
+ }
+ free(avStr);
+ }
+}
+
+void
+UNSTARCH_printRevision()
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_printRevision() ---\n");
+#endif
+ char *avStr = NULL;
+#ifdef __cplusplus
+ avStr = static_cast<char *>( malloc(STARCH_ARCHIVE_VERSION_STRING_LENGTH) );
+#else
+ avStr = malloc(STARCH_ARCHIVE_VERSION_STRING_LENGTH);
+#endif
+ if (avStr != NULL) {
+ int result = sprintf(avStr, "%d.%d.%d", STARCH_MAJOR_VERSION, STARCH_MINOR_VERSION, STARCH_REVISION_VERSION);
+ if (result != -1)
+ fprintf(stdout,
+ "%s\n binary version: %s (extracts archive version: %s or older)\n",
+ name,
+ BEDOPS::revision(),
+ avStr);
+ free(avStr);
+ }
+}
+
+void
+UNSTARCH_printArchiveVersion(const ArchiveVersion *av)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_printArchiveVersion() ---\n");
+#endif
+ if (av)
+ fprintf(stdout,
+ "%s\n archive version: %d.%d.%d\n",
+ name,
+ av->major,
+ av->minor,
+ av->revision);
+}
+
+void
+UNSTARCH_printArchiveTimestamp(const char *at)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_printArchiveTimestamp() ---\n");
+#endif
+ if (at)
+ fprintf(stdout,
+ "%s\n",
+ at);
+}
+
+void
+UNSTARCH_printNote(const char *note)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_printNote() ---\n");
+#endif
+ if (note)
+ fprintf(stdout,
+ "%s\n",
+ note);
+}
+
+void
+UNSTARCH_printCompressionType(const CompressionType t)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_printCompressionType() ---\n");
+#endif
+ switch (t) {
+ case kBzip2:
+ fprintf(stdout, "%s\n archive compression type: bzip2\n", name);
+ break;
+ case kGzip:
+ fprintf(stdout, "%s\n archive compression type: gzip\n", name);
+ break;
+ case kUndefined:
+ fprintf(stdout, "ERROR: compression type is undefined\n");
+ break;
+ }
+}
+
+void
+UNSTARCH_printMetadataSha1Signature(unsigned char *sha1Buffer)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_printMetadataSha1Signature() ---\n");
+#endif
+ size_t sha1BufferLength = STARCH2_MD_FOOTER_SHA1_LENGTH;
+ char *jsonBase64String = NULL;
+
+#ifdef DEBUG
+ fwrite(sha1Buffer, sizeof(unsigned char), STARCH2_MD_FOOTER_SHA1_LENGTH, stderr);
+ fprintf(stderr, "\n\tsha1BufferLength: %zu\n", sha1BufferLength);
+#endif
+
+#ifdef __cplusplus
+ STARCH_encodeBase64(&jsonBase64String,
+ static_cast<const size_t>( STARCH2_MD_FOOTER_BASE64_ENCODED_SHA1_LENGTH ),
+ const_cast<const unsigned char *>( sha1Buffer ),
+ static_cast<const size_t>( sha1BufferLength ));
+#else
+ STARCH_encodeBase64(&jsonBase64String,
+ (const size_t) STARCH2_MD_FOOTER_BASE64_ENCODED_SHA1_LENGTH,
+ (const unsigned char *) sha1Buffer,
+ (const size_t) sha1BufferLength);
+#endif
+
+ if (!jsonBase64String) {
+ fprintf(stderr, "ERROR: Could not allocate space for base64-encoded metadata string representation\n");
+ exit(-1);
+ }
+ fprintf(stdout, "%s\n", jsonBase64String);
+ free(jsonBase64String), jsonBase64String = NULL;
+}
+
+#ifdef __cplusplus
+} // namespace starch
+#endif
diff --git a/applications/bed/starch/src/unstarch.h b/applications/bed/starch/src/unstarch.h
new file mode 100644
index 0000000..f8a7d92
--- /dev/null
+++ b/applications/bed/starch/src/unstarch.h
@@ -0,0 +1,97 @@
+//=========
+// Author: Alex Reynolds & Shane Neph
+// Date: Wed Nov 3 17:22:50 PDT 2010
+// Project: starch
+// File: unstarch.h
+//=========
+
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef UNSTARCH_H
+#define UNSTARCH_H
+
+#include "data/starch/starchMetadataHelpers.h"
+
+static const char *name = "unstarch";
+static const char *authors = "Alex Reynolds and Shane Neph";
+static const char *usage = "\n" \
+ "USAGE: unstarch [ <chromosome> ] [ --elements | --bases | --bases-uniq | --has-duplicates | --has-nested | --list | --list-json | --list-chromosomes | --archive-timestamp | --note | --archive-version | --is-starch ] <starch-file>\n" \
+ "\n" \
+ " Process Flags:\n\n" \
+ " <chromosome> Optional. Either unarchives chromosome-specific records from the starch archive file or restricts action of operator to chromosome (e.g., chr1, chrY, etc.).\n" \
+ " --elements Show total element count for archive. If <chromosome> is specified, the result shows the element count for the chromosome.\n" \
+ " --bases,\n" \
+ " --bases-uniq Show total and unique base counts, respectively, for archive. If <chromosome> is specified, the count is specific to the chromosome, if available.\n" \
+ " --has-duplicate, Show whether there is one or more duplicate elements in the specified chromosome, either as a numerical (1/0) or string (true/false) value. If no <chromosome> is specified, the value given indicates if there is one or more duplicate elements across all chromosome records.\n" \
+ " --has-duplicate-as-string \n" \
+ " --has-nested, Show whether there is one ore more nested elements in the specified chromosome, either as a numerical (1/0) or string (true/false) value. If no <chromosome> is specified, the value given indicates if there is one or more nested elements across all chromosome records.\n" \
+ " --has-nested-as-string \n" \
+ " --list List archive metadata (output is in text format). If chromosome is specified, the attributes of the given chromosome are shown.\n" \
+ " --list-json, List archive metadata (output is in JSON format)\n" \
+ " --list-json-no-trailing-newline \n" \
+ " --list-chr, List all or specified chromosome in starch archive (similar to \"bedextract --list-chr\"). If <chromosome> is specified but is not in the output list, nothing is returned.\n" \
+ " --list-chromosomes \n" \
+ " --note Show descriptive note, if available.\n" \
+ " --sha1-signature Show SHA1 signature of JSON-formatted metadata (Base64-encoded).\n" \
+ " --archive-timestamp Show archive creation timestamp (ISO 8601 format).\n" \
+ " --archive-type Show archive compression type.\n" \
+ " --archive-version Show archive version.\n" \
+ " --is-starch Test if <starch-file> is a valid archive and print 0/1 (false/true) to standard output.\n" \
+ " --version Show binary version.\n" \
+ " --help Show this usage message.\n";
+
+/*
+ On Darwin, file I/O is 64-bit by default (OS X 10.5 at least) so we use standard
+ types and calls
+*/
+
+#ifdef __APPLE__
+#define off64_t off_t
+#endif
+
+#ifdef __cplusplus
+namespace starch {
+#endif
+
+int UNSTARCH_parseCommandLineInputs(int argc,
+ char **argv,
+ char **chr,
+ char **fn,
+ char **optn,
+ int *pval);
+void UNSTARCH_printUsage(int t);
+
+void UNSTARCH_printRevision();
+
+void UNSTARCH_printArchiveVersion(const ArchiveVersion *av);
+
+void UNSTARCH_printArchiveTimestamp(const char *ct);
+
+void UNSTARCH_printNote(const char *note);
+
+void UNSTARCH_printCompressionType(const CompressionType t);
+
+void UNSTARCH_printMetadataSha1Signature(unsigned char *sha1Buffer);
+
+#ifdef __cplusplus
+} // namespace starch
+#endif
+
+#endif
diff --git a/applications/bed/starch/test/README b/applications/bed/starch/test/README
new file mode 100644
index 0000000..8790bd1
--- /dev/null
+++ b/applications/bed/starch/test/README
@@ -0,0 +1,208 @@
+//=========
+// Author: Alex Reynolds & Shane Neph
+// Project: starch
+// File: README (test)
+//=========
+
+
+
+Running Tests
+====================================================================================
+To run all tests, type:
+
+ $ make all
+
+Names of individual tests refer to specific test categories and are described below.
+
+NOTE! The /tmp folder is used to store intermediate results. If you are running all
+the tests, please have ~1.7 GB of free space available in your /tmp folder (there
+are several tests performed here, with variations on version and compression formats
+that will result in many copies of the same data -- further, some tests are
+dependent on intermediate results of other tests).
+
+
+
+Clean-up
+====================================================================================
+To clean the results of all tests, type:
+
+ $ make clean
+
+This calls each individual test's clean-up process and removes the parent folder
+that stores test results.
+
+
+
+Overview
+====================================================================================
+This directory contains the following subdirectories:
+
+. / binaries
+ / compression_and_extraction
+ / concatenation
+ / metadata_integrity
+ / nesteds_and_duplicates
+ / original_data
+ / timing
+ / updating
+
+
+
+Binaries
+====================================================================================
+To explain the version numbering applied to starch/starchcat/unstarch binaries, we make the
+distinction between "archive version" and "binary version".
+
+The "binary version" value will always be concurrent with the rest of the BEDOPS toolkit.
+As of April 30 2014, this is v2.5.0.
+
+The "archive version" value refers to the version of metadata contained within a Starch archive
+file. Different archive versions provide access to different metadata. As of April 30 2014, the
+current archive version is v2.1.0.
+
+Starch binaries that can open archives containing v2.1 and older metadata are also called
+"v2.1-metadata" binaries. Similarly, binaries that can open and access v2.0 and older metadata
+properties are called "v2.0-metadata" binaries, and so on.
+
+The "binaries" folder in this test suite contains platform-specific starch binaries. The
+v1.2-metadata binaries are sourced from our old Google Code site. The v1.5-metadata binaries
+were compiled from a private source repository through version edits to starchMetadataHelpers.h.
+The archive-v2.0 binaries were sourced from our Github site (generally the latest version
+that creates a v2.0 Starch archive; on April 30 2014 this would be a v2.4.2 binary release).
+As of April 30, 2014 we support v2.1-metadata archives with v2.5.0 binaries.
+
+For architecture, we currently offer tests of 64-bit binaries for Linux and universal ("fat")
+binaries on the OS X platforms. We do not offer Cygwin tests at this time.
+
+
+
+Original Data
+====================================================================================
+The "original_data" folder contains the "original" BED data that goes into testing the
+functionality of starch, unstarch and starchcat. This consists of a 1M-element BED file
+created from randomly-selected hg19 chromosomes from data obtained via the UCSC Genome
+Browser MySQL service.
+
+This file is roughly 45 Mb in size and should do a decent job in testing how we handle
+streaming input on a typical workstation, because that file size will easily cut across
+the size of the buffers used when handling input, compressing, and extracting data (the
+intermediate buffers used in starch, unstarch and starchcat are "delicate" areas where
+compression, extraction and concatenation can easily go wrong -- having input data go
+over the size of these buffers is a good stress test).
+
+To create a sorted, random BED input file only, without running tests, run:
+
+ $ make random_bed_file
+
+Results are in "/tmp/${username}/starch_regression_test/data/random.bed". See the
+"./original_data/src/make_unsorted_random_bed_file.sh" script for more details.
+
+The remaining folders are described below and represent test categories.
+
+
+
+Compression and Extraction
+====================================================================================
+To ensure backwards compatibility, this tests whether data compressed with (at this
+time, April 30 2014, archive version v1.2, v1.5, v2.0 and v2.1) starch binaries can
+each be extracted with the versions of unstarch: the version that created the archive,
+and the current version of unstarch (binary v2.5). Finally, we use 'diff' to ensure
+that the BED input and extracted output are identical.
+
+To run these tests directly:
+
+ $ make compression_and_extraction_tests
+
+
+
+Concatenation
+====================================================================================
+To ensure that starchcat can concatenate Starch archives, we test the following
+use cases:
+
+ * joining two or more Starch files of different versions
+ * joining two or more Starch files with disjoint chromosome streams
+ * joining two or more Starch files with mixed chromosome streams
+
+For the first test, we start with the different versions of archives created in the
+"compression-and-extraction" test category. The original BED file has 1M elements, so
+we take, say, 250K elements from the first v1.2 archive and recompress them. We take
+the next 250K elements from the next v1.5 archive and recompress those. We take the
+remaining 500K elements from the third and fourth v2.0 and v2.1 archives, resp. and
+recompress them.
+
+If we concatenate these smaller archives, we expect that the final archive will
+contain all 1M original elements and in the same sort order. (If there are more, fewer
+or different elements, or if elements are out of order, then this test fails.)
+
+For the second test, we take the random bed file and split it by chromosome into
+separate BED files. We then compress these disjoint BED files into Starch archives
+and concatenate the disjoint archives into one result. We then diff-test the final
+result with the random bed file.
+
+The third test is similar to the first, except that we work within one version of an
+archive. We split the original file into 100K-element subfiles, compress them, and
+attempt to concatenate them. We expect that the final archive will have all 1M original
+elements in preserved order. This test shows that a set of starch files that contain
+records that span multiple chromosomes can be reconstructed correctly.
+
+To run these tests directly:
+
+ $ make concatenation_tests
+
+
+
+Metadata Integrity
+====================================================================================
+We extract the JSON-formatted metadata (with --list-json-no-trailing-newline) from a
+v2.1 archive and create a Base64-encoded SHA-1 hash of that data, using OpenSSL, xxd,
+and base64 command-line utilities. This is compared with the result stored in the
+archive via --sha1-signature. If the hashes are identical, this provides assurance of
+the integrity of the metadata.
+
+Secondly, we review the metadata contents, specifically the per-chromosome element
+count and the overall and unique base counts. We grab a chromosome at random and
+use awk statements to generate "expected" results, which are compared to values
+obtained through per-chromosome <chr> --elements, <chr> --bases and <chr> --bases-uniq
+calls to the Starch archive. We also test all-chromosome results.
+
+To run these tests directly:
+
+ $ make metadata_integrity_tests
+
+
+
+Nested and Duplicate Elements
+====================================================================================
+Starch v2.1 metadata (written by starch/starchcat v2.5 or greater, and read by unstarch
+v2.5 or greater) include flags that indicate if a nested or duplicate element is located
+in a specified chromosome (or if the chromosome is omitted, if the condition is present
+in any chromosome contained within the archive). Here, we test if a given BED file
+compressed and extracted with v2.5 or greater tools display condition flags with
+expected values.
+
+To run these tests directly:
+
+ $ make nested_and_duplicate_element_tests
+
+
+
+
+Updating
+====================================================================================
+Starchcat can also update older archives to current archive version, writing fresh
+metadata in the process. We test whether v1.2, v1.5 and v2.0 archives can be updated
+to v2.1 Starch archives. Additionally, we compare extracted BED streams.
+
+To run these tests directly:
+
+ $ make updating_tests
+
+
+
+Timing (TBD)
+====================================================================================
+Here we will provide tests for the amount of time it takes to compress and extract
+archives using the three versions of starch and unstarch. This should give us an idea
+of relative performance improvements (or areas where improvements are needed). The details
+of this test will be available when written.
diff --git a/applications/bed/starch/test/binaries/linux/v1.2/bin/starch b/applications/bed/starch/test/binaries/linux/v1.2/bin/starch
new file mode 100755
index 0000000..515d76b
Binary files /dev/null and b/applications/bed/starch/test/binaries/linux/v1.2/bin/starch differ
diff --git a/applications/bed/starch/test/binaries/linux/v1.2/bin/starchcat b/applications/bed/starch/test/binaries/linux/v1.2/bin/starchcat
new file mode 100755
index 0000000..1da93cf
Binary files /dev/null and b/applications/bed/starch/test/binaries/linux/v1.2/bin/starchcat differ
diff --git a/applications/bed/starch/test/binaries/linux/v1.2/bin/unstarch b/applications/bed/starch/test/binaries/linux/v1.2/bin/unstarch
new file mode 100755
index 0000000..c8ed754
Binary files /dev/null and b/applications/bed/starch/test/binaries/linux/v1.2/bin/unstarch differ
diff --git a/applications/bed/starch/test/binaries/linux/v1.5/bin/starch b/applications/bed/starch/test/binaries/linux/v1.5/bin/starch
new file mode 100755
index 0000000..02f37c1
Binary files /dev/null and b/applications/bed/starch/test/binaries/linux/v1.5/bin/starch differ
diff --git a/applications/bed/starch/test/binaries/linux/v1.5/bin/starchcat b/applications/bed/starch/test/binaries/linux/v1.5/bin/starchcat
new file mode 100755
index 0000000..438f75b
Binary files /dev/null and b/applications/bed/starch/test/binaries/linux/v1.5/bin/starchcat differ
diff --git a/applications/bed/starch/test/binaries/linux/v1.5/bin/unstarch b/applications/bed/starch/test/binaries/linux/v1.5/bin/unstarch
new file mode 100755
index 0000000..ed590b8
Binary files /dev/null and b/applications/bed/starch/test/binaries/linux/v1.5/bin/unstarch differ
diff --git a/applications/bed/starch/test/binaries/linux/v2.0/bin/starch b/applications/bed/starch/test/binaries/linux/v2.0/bin/starch
new file mode 100755
index 0000000..325c962
Binary files /dev/null and b/applications/bed/starch/test/binaries/linux/v2.0/bin/starch differ
diff --git a/applications/bed/starch/test/binaries/linux/v2.0/bin/starchcat b/applications/bed/starch/test/binaries/linux/v2.0/bin/starchcat
new file mode 100755
index 0000000..109175c
Binary files /dev/null and b/applications/bed/starch/test/binaries/linux/v2.0/bin/starchcat differ
diff --git a/applications/bed/starch/test/binaries/linux/v2.0/bin/unstarch b/applications/bed/starch/test/binaries/linux/v2.0/bin/unstarch
new file mode 100755
index 0000000..15736f6
Binary files /dev/null and b/applications/bed/starch/test/binaries/linux/v2.0/bin/unstarch differ
diff --git a/applications/bed/starch/test/binaries/linux/v2.1/bin/starch b/applications/bed/starch/test/binaries/linux/v2.1/bin/starch
new file mode 100755
index 0000000..810417e
Binary files /dev/null and b/applications/bed/starch/test/binaries/linux/v2.1/bin/starch differ
diff --git a/applications/bed/starch/test/binaries/linux/v2.1/bin/starchcat b/applications/bed/starch/test/binaries/linux/v2.1/bin/starchcat
new file mode 100755
index 0000000..9d1399a
Binary files /dev/null and b/applications/bed/starch/test/binaries/linux/v2.1/bin/starchcat differ
diff --git a/applications/bed/starch/test/binaries/linux/v2.1/bin/unstarch b/applications/bed/starch/test/binaries/linux/v2.1/bin/unstarch
new file mode 100755
index 0000000..7c11ad7
Binary files /dev/null and b/applications/bed/starch/test/binaries/linux/v2.1/bin/unstarch differ
diff --git a/applications/bed/starch/test/binaries/osx/v1.2/bin/starch b/applications/bed/starch/test/binaries/osx/v1.2/bin/starch
new file mode 100755
index 0000000..5b0e6b1
Binary files /dev/null and b/applications/bed/starch/test/binaries/osx/v1.2/bin/starch differ
diff --git a/applications/bed/starch/test/binaries/osx/v1.2/bin/starchcat b/applications/bed/starch/test/binaries/osx/v1.2/bin/starchcat
new file mode 100755
index 0000000..5974569
Binary files /dev/null and b/applications/bed/starch/test/binaries/osx/v1.2/bin/starchcat differ
diff --git a/applications/bed/starch/test/binaries/osx/v1.2/bin/unstarch b/applications/bed/starch/test/binaries/osx/v1.2/bin/unstarch
new file mode 100755
index 0000000..2fb5602
Binary files /dev/null and b/applications/bed/starch/test/binaries/osx/v1.2/bin/unstarch differ
diff --git a/applications/bed/starch/test/binaries/osx/v1.5/bin/starch b/applications/bed/starch/test/binaries/osx/v1.5/bin/starch
new file mode 100755
index 0000000..efdfa23
Binary files /dev/null and b/applications/bed/starch/test/binaries/osx/v1.5/bin/starch differ
diff --git a/applications/bed/starch/test/binaries/osx/v1.5/bin/starchcat b/applications/bed/starch/test/binaries/osx/v1.5/bin/starchcat
new file mode 100755
index 0000000..143b5ef
Binary files /dev/null and b/applications/bed/starch/test/binaries/osx/v1.5/bin/starchcat differ
diff --git a/applications/bed/starch/test/binaries/osx/v1.5/bin/unstarch b/applications/bed/starch/test/binaries/osx/v1.5/bin/unstarch
new file mode 100755
index 0000000..5b58c84
Binary files /dev/null and b/applications/bed/starch/test/binaries/osx/v1.5/bin/unstarch differ
diff --git a/applications/bed/starch/test/binaries/osx/v2.0/bin/starch b/applications/bed/starch/test/binaries/osx/v2.0/bin/starch
new file mode 100755
index 0000000..a74d1e0
Binary files /dev/null and b/applications/bed/starch/test/binaries/osx/v2.0/bin/starch differ
diff --git a/applications/bed/starch/test/binaries/osx/v2.0/bin/starchcat b/applications/bed/starch/test/binaries/osx/v2.0/bin/starchcat
new file mode 100755
index 0000000..8745e51
Binary files /dev/null and b/applications/bed/starch/test/binaries/osx/v2.0/bin/starchcat differ
diff --git a/applications/bed/starch/test/binaries/osx/v2.0/bin/unstarch b/applications/bed/starch/test/binaries/osx/v2.0/bin/unstarch
new file mode 100755
index 0000000..9d02cf6
Binary files /dev/null and b/applications/bed/starch/test/binaries/osx/v2.0/bin/unstarch differ
diff --git a/applications/bed/starch/test/binaries/osx/v2.1/bin/starch b/applications/bed/starch/test/binaries/osx/v2.1/bin/starch
new file mode 100755
index 0000000..92bdbfb
Binary files /dev/null and b/applications/bed/starch/test/binaries/osx/v2.1/bin/starch differ
diff --git a/applications/bed/starch/test/binaries/osx/v2.1/bin/starchcat b/applications/bed/starch/test/binaries/osx/v2.1/bin/starchcat
new file mode 100755
index 0000000..aef053d
Binary files /dev/null and b/applications/bed/starch/test/binaries/osx/v2.1/bin/starchcat differ
diff --git a/applications/bed/starch/test/binaries/osx/v2.1/bin/unstarch b/applications/bed/starch/test/binaries/osx/v2.1/bin/unstarch
new file mode 100755
index 0000000..9e4ffed
Binary files /dev/null and b/applications/bed/starch/test/binaries/osx/v2.1/bin/unstarch differ
diff --git a/applications/bed/starch/test/compression_and_extraction/makefile b/applications/bed/starch/test/compression_and_extraction/makefile
new file mode 100644
index 0000000..dd7c4a6
--- /dev/null
+++ b/applications/bed/starch/test/compression_and_extraction/makefile
@@ -0,0 +1,271 @@
+#
+# makefile
+#
+
+TMP = /tmp
+USER := $(shell whoami)
+THIS_DIR := $(shell pwd)
+RESULTS = ${TMP}/${USER}/starch_regression_test/results/compression_and_extraction
+ORIGINAL_DIR = ${THIS_DIR}/../original_data
+ORIGINAL_DATA = ${TMP}/${USER}/starch_regression_test
+BED_INPUT = ${ORIGINAL_DATA}/data/random.bed
+PLATFORM := $(shell uname)
+LINUX_BINDIR = ${THIS_DIR}/../binaries/linux
+OSX_BINDIR = ${THIS_DIR}/../binaries/osx
+
+all: results_dir archives tests
+
+results_dir:
+ @echo "[STARCH] making results directory..."
+ @mkdir -p ${RESULTS}
+
+current_archives: random_2p1p0_bzip2.starch random_2p1p0_gzip.starch
+ @echo "[STARCH] finished making current archives!"
+
+archives: random_1p2p0_bzip2.starch random_1p2p0_gzip.starch random_1p5p0_bzip2.starch random_1p5p0_gzip.starch random_2p0p0_bzip2.starch random_2p0p0_gzip.starch current_archives
+ @echo "[STARCH] finished making archives!"
+
+tests: concurrent_tests current_tests
+ @echo "[STARCH] finished testing diffs of archives and original input!"
+
+concurrent_tests: diff_random_1p2p0_bzip2_concurrent diff_random_1p2p0_gzip_concurrent diff_random_1p5p0_bzip2_concurrent diff_random_1p5p0_gzip_concurrent diff_random_2p0p0_bzip2_concurrent diff_random_2p0p0_gzip_concurrent
+
+current_tests: diff_random_1p2p0_bzip2_current diff_random_1p2p0_gzip_current diff_random_1p5p0_bzip2_current diff_random_1p5p0_gzip_current diff_random_2p0p0_bzip2_current diff_random_2p0p0_gzip_current diff_random_2p1p0_bzip2_current diff_random_2p1p0_gzip_current
+
+bed_input:
+ @test -s ${BED_INPUT} || make -C ${ORIGINAL_DIR} -f makefile random.bed
+
+# ---------------------------------------------
+
+random_1p2p0_bzip2.starch: results_dir bed_input
+ @echo "[STARCH] creating v1.2 bzip2-based starch file from random BED input..."
+ifeq (${PLATFORM},Linux)
+ test -s ${RESULTS}/$@ || ${LINUX_BINDIR}/v1.2/bin/starch --bzip2 ${BED_INPUT} > ${RESULTS}/$@
+endif
+ifeq (${PLATFORM},Darwin)
+ test -s ${RESULTS}/$@ || ${OSX_BINDIR}/v1.2/bin/starch --bzip2 ${BED_INPUT} > ${RESULTS}/$@
+endif
+
+diff_random_1p2p0_bzip2_concurrent: random_1p2p0_bzip2.starch
+ @echo "[STARCH] testing difference between v1.2 bzip2-based starch file and random BED input using concurrent (v1.2) binary..."
+ifeq (${PLATFORM},Linux)
+ ${LINUX_BINDIR}/v1.2/bin/unstarch ${RESULTS}/$^ | diff --brief - ${BED_INPUT}
+endif
+ifeq (${PLATFORM},Darwin)
+ ${OSX_BINDIR}/v1.2/bin/unstarch ${RESULTS}/$^ | diff --brief - ${BED_INPUT}
+endif
+ @echo "[STARCH] no differences found!"
+
+diff_random_1p2p0_bzip2_current: random_1p2p0_bzip2.starch
+ @echo "[STARCH] testing difference between v1.2 bzip2-based starch file and random BED input using current (v2.1) binary..."
+ifeq (${PLATFORM},Linux)
+ ${LINUX_BINDIR}/v2.1/bin/unstarch ${RESULTS}/$^ | diff --brief - ${BED_INPUT}
+endif
+ifeq (${PLATFORM},Darwin)
+ ${OSX_BINDIR}/v2.1/bin/unstarch ${RESULTS}/$^ | diff --brief - ${BED_INPUT}
+endif
+ @echo "[STARCH] no differences found!"
+
+# ---------------------------------------------
+
+random_1p2p0_gzip.starch: results_dir bed_input
+ @echo "[STARCH] creating v1.2 gzip-based starch file from random BED input..."
+ifeq (${PLATFORM},Linux)
+ test -s ${RESULTS}/$@ || ${LINUX_BINDIR}/v1.2/bin/starch --gzip ${BED_INPUT} > ${RESULTS}/$@
+endif
+ifeq (${PLATFORM},Darwin)
+ test -s ${RESULTS}/$@ || ${OSX_BINDIR}/v1.2/bin/starch --gzip ${BED_INPUT} > ${RESULTS}/$@
+endif
+
+diff_random_1p2p0_gzip_concurrent: random_1p2p0_gzip.starch
+ @echo "[STARCH] testing difference between v1.2 gzip-based starch file and random BED input using concurrent (v1.2) binary..."
+ifeq (${PLATFORM},Linux)
+ ${LINUX_BINDIR}/v1.2/bin/unstarch ${RESULTS}/$^ | diff --brief - ${BED_INPUT}
+endif
+ifeq (${PLATFORM},Darwin)
+ ${OSX_BINDIR}/v1.2/bin/unstarch ${RESULTS}/$^ | diff --brief - ${BED_INPUT}
+endif
+ @echo "[STARCH] no differences found!"
+
+diff_random_1p2p0_gzip_current: random_1p2p0_gzip.starch
+ @echo "[STARCH] testing difference between v1.2 gzip-based starch file and random BED input using current (v2.1) binary..."
+ifeq (${PLATFORM},Linux)
+ ${LINUX_BINDIR}/v2.1/bin/unstarch ${RESULTS}/$^ | diff --brief - ${BED_INPUT}
+endif
+ifeq (${PLATFORM},Darwin)
+ ${OSX_BINDIR}/v2.1/bin/unstarch ${RESULTS}/$^ | diff --brief - ${BED_INPUT}
+endif
+ @echo "[STARCH] no differences found!"
+
+# ---------------------------------------------
+
+random_1p5p0_bzip2.starch: results_dir bed_input
+ @echo "[STARCH] creating v1.5 bzip2-based starch file from random BED input..."
+ifeq (${PLATFORM},Linux)
+ test -s ${RESULTS}/$@ || ${LINUX_BINDIR}/v1.5/bin/starch --bzip2 ${BED_INPUT} > ${RESULTS}/$@
+endif
+ifeq (${PLATFORM},Darwin)
+ test -s ${RESULTS}/$@ || ${OSX_BINDIR}/v1.5/bin/starch --bzip2 ${BED_INPUT} > ${RESULTS}/$@
+endif
+
+diff_random_1p5p0_bzip2_concurrent: random_1p5p0_bzip2.starch
+ @echo "[STARCH] testing difference between v1.5 bzip2-based starch file and random BED input using concurrent (v1.5) binary..."
+ifeq (${PLATFORM},Linux)
+ ${LINUX_BINDIR}/v1.5/bin/unstarch ${RESULTS}/$^ | diff --brief - ${BED_INPUT}
+endif
+ifeq (${PLATFORM},Darwin)
+ ${OSX_BINDIR}/v1.5/bin/unstarch ${RESULTS}/$^ | diff --brief - ${BED_INPUT}
+endif
+ @echo "[STARCH] no differences found!"
+
+diff_random_1p5p0_bzip2_current: random_1p5p0_bzip2.starch
+ @echo "[STARCH] testing difference between v1.5 bzip2-based starch file and random BED input using current (v2.1) binary..."
+ifeq (${PLATFORM},Linux)
+ ${LINUX_BINDIR}/v2.1/bin/unstarch ${RESULTS}/$^ | diff --brief - ${BED_INPUT}
+endif
+ifeq (${PLATFORM},Darwin)
+ ${OSX_BINDIR}/v2.1/bin/unstarch ${RESULTS}/$^ | diff --brief - ${BED_INPUT}
+endif
+ @echo "[STARCH] no differences found!"
+
+# ---------------------------------------------
+
+random_1p5p0_gzip.starch: results_dir bed_input
+ @echo "[STARCH] creating v1.5 gzip-based starch file from random BED input..."
+ifeq (${PLATFORM},Linux)
+ test -s ${RESULTS}/$@ || ${LINUX_BINDIR}/v1.5/bin/starch --gzip ${BED_INPUT} > ${RESULTS}/$@
+endif
+ifeq (${PLATFORM},Darwin)
+ test -s ${RESULTS}/$@ || ${OSX_BINDIR}/v1.5/bin/starch --gzip ${BED_INPUT} > ${RESULTS}/$@
+endif
+
+diff_random_1p5p0_gzip_concurrent: random_1p5p0_gzip.starch
+ @echo "[STARCH] testing difference between v1.5 gzip-based starch file and random BED input using concurrent (v1.5) binary..."
+ifeq (${PLATFORM},Linux)
+ ${LINUX_BINDIR}/v1.5/bin/unstarch ${RESULTS}/$^ | diff --brief - ${BED_INPUT}
+endif
+ifeq (${PLATFORM},Darwin)
+ ${OSX_BINDIR}/v1.5/bin/unstarch ${RESULTS}/$^ | diff --brief - ${BED_INPUT}
+endif
+ @echo "[STARCH] no differences found!"
+
+diff_random_1p5p0_gzip_current: random_1p5p0_gzip.starch
+ @echo "[STARCH] testing difference between v1.5 gzip-based starch file and random BED input using current (v2.1) binary..."
+ifeq (${PLATFORM},Linux)
+ ${LINUX_BINDIR}/v2.1/bin/unstarch ${RESULTS}/$^ | diff --brief - ${BED_INPUT}
+endif
+ifeq (${PLATFORM},Darwin)
+ ${OSX_BINDIR}/v2.1/bin/unstarch ${RESULTS}/$^ | diff --brief - ${BED_INPUT}
+endif
+ @echo "[STARCH] no differences found!"
+
+# ---------------------------------------------
+
+random_2p0p0_bzip2.starch: results_dir bed_input
+ @echo "[STARCH] creating v2.0 bzip2-based starch file from random BED input..."
+ifeq (${PLATFORM},Linux)
+ test -s ${RESULTS}/$@ || ${LINUX_BINDIR}/v2.0/bin/starch --bzip2 ${BED_INPUT} > ${RESULTS}/$@
+endif
+ifeq (${PLATFORM},Darwin)
+ test -s ${RESULTS}/$@ || ${OSX_BINDIR}/v2.0/bin/starch --bzip2 ${BED_INPUT} > ${RESULTS}/$@
+endif
+
+diff_random_2p0p0_bzip2_concurrent: random_2p0p0_bzip2.starch
+ @echo "[STARCH] testing difference between v2.0 bzip2-based starch file and random BED input using concurrent (v2.0) binary..."
+ifeq (${PLATFORM},Linux)
+ ${LINUX_BINDIR}/v2.0/bin/unstarch ${RESULTS}/$^ | diff --brief - ${BED_INPUT}
+endif
+ifeq (${PLATFORM},Darwin)
+ ${OSX_BINDIR}/v2.0/bin/unstarch ${RESULTS}/$^ | diff --brief - ${BED_INPUT}
+endif
+ @echo "[STARCH] no differences found!"
+
+diff_random_2p0p0_bzip2_current: random_2p0p0_bzip2.starch
+ @echo "[STARCH] testing difference between v2.0 bzip2-based starch file and random BED input using current (v2.1) binary..."
+ifeq (${PLATFORM},Linux)
+ ${LINUX_BINDIR}/v2.1/bin/unstarch ${RESULTS}/$^ | diff --brief - ${BED_INPUT}
+endif
+ifeq (${PLATFORM},Darwin)
+ ${OSX_BINDIR}/v2.1/bin/unstarch ${RESULTS}/$^ | diff --brief - ${BED_INPUT}
+endif
+ @echo "[STARCH] no differences found!"
+
+# ---------------------------------------------
+
+random_2p0p0_gzip.starch: results_dir bed_input
+ @echo "[STARCH] creating v2.0 gzip-based starch file from random BED input..."
+ifeq (${PLATFORM},Linux)
+ test -s ${RESULTS}/$@ || ${LINUX_BINDIR}/v2.0/bin/starch --gzip ${BED_INPUT} > ${RESULTS}/$@
+endif
+ifeq (${PLATFORM},Darwin)
+ test -s ${RESULTS}/$@ || ${OSX_BINDIR}/v2.0/bin/starch --gzip ${BED_INPUT} > ${RESULTS}/$@
+endif
+
+diff_random_2p0p0_gzip_concurrent: random_2p0p0_gzip.starch
+ @echo "[STARCH] testing difference between v2.0 gzip-based starch file and random BED input using concurrent (v2.0) binary..."
+ifeq (${PLATFORM},Linux)
+ ${LINUX_BINDIR}/v2.0/bin/unstarch ${RESULTS}/$^ | diff --brief - ${BED_INPUT}
+endif
+ifeq (${PLATFORM},Darwin)
+ ${OSX_BINDIR}/v2.0/bin/unstarch ${RESULTS}/$^ | diff --brief - ${BED_INPUT}
+endif
+ @echo "[STARCH] no differences found!"
+
+diff_random_2p0p0_gzip_current: random_2p0p0_gzip.starch
+ @echo "[STARCH] testing difference between v2.0 gzip-based starch file and random BED input using current (v2.1) binary..."
+ifeq (${PLATFORM},Linux)
+ ${LINUX_BINDIR}/v2.1/bin/unstarch ${RESULTS}/$^ | diff --brief - ${BED_INPUT}
+endif
+ifeq (${PLATFORM},Darwin)
+ ${OSX_BINDIR}/v2.1/bin/unstarch ${RESULTS}/$^ | diff --brief - ${BED_INPUT}
+endif
+ @echo "[STARCH] no differences found!"
+
+# ---------------------------------------------
+
+random_2p1p0_bzip2.starch: results_dir bed_input
+ @echo "[STARCH] creating v2.1 bzip2-based starch file from random BED input..."
+ifeq (${PLATFORM},Linux)
+ test -s ${RESULTS}/$@ || ${LINUX_BINDIR}/v2.1/bin/starch --bzip2 ${BED_INPUT} > ${RESULTS}/$@
+endif
+ifeq (${PLATFORM},Darwin)
+ test -s ${RESULTS}/$@ || ${OSX_BINDIR}/v2.1/bin/starch --bzip2 ${BED_INPUT} > ${RESULTS}/$@
+endif
+
+diff_random_2p1p0_bzip2_current: random_2p1p0_bzip2.starch
+ @echo "[STARCH] testing difference between v2.1 bzip2-based starch file and random BED input using current (v2.1) binary..."
+ifeq (${PLATFORM},Linux)
+ ${LINUX_BINDIR}/v2.1/bin/unstarch ${RESULTS}/$^ | diff --brief - ${BED_INPUT}
+endif
+ifeq (${PLATFORM},Darwin)
+ ${OSX_BINDIR}/v2.1/bin/unstarch ${RESULTS}/$^ | diff --brief - ${BED_INPUT}
+endif
+ @echo "[STARCH] no differences found!"
+
+# ---------------------------------------------
+
+random_2p1p0_gzip.starch: results_dir bed_input
+ @echo "[STARCH] creating v2.1 gzip-based starch file from random BED input..."
+ifeq (${PLATFORM},Linux)
+ test -s ${RESULTS}/$@ || ${LINUX_BINDIR}/v2.1/bin/starch --gzip ${BED_INPUT} > ${RESULTS}/$@
+endif
+ifeq (${PLATFORM},Darwin)
+ test -s ${RESULTS}/$@ || ${OSX_BINDIR}/v2.1/bin/starch --gzip ${BED_INPUT} > ${RESULTS}/$@
+endif
+
+diff_random_2p1p0_gzip_current: random_2p1p0_gzip.starch
+ @echo "[STARCH] testing difference between v2.1 gzip-based starch file and random BED input using current (v2.1) binary..."
+ifeq (${PLATFORM},Linux)
+ ${LINUX_BINDIR}/v2.1/bin/unstarch ${RESULTS}/$^ | diff --brief - ${BED_INPUT}
+endif
+ifeq (${PLATFORM},Darwin)
+ ${OSX_BINDIR}/v2.1/bin/unstarch ${RESULTS}/$^ | diff --brief - ${BED_INPUT}
+endif
+ @echo "[STARCH] no differences found!"
+
+# ---------------------------------------------
+
+clean:
+ @echo "[STARCH] cleaning up intermediate starch archives..."
+ @rm -rf ${RESULTS}
+ @echo "[STARCH] all clean!"
diff --git a/applications/bed/starch/test/concatenation/makefile b/applications/bed/starch/test/concatenation/makefile
new file mode 100644
index 0000000..6b898fd
--- /dev/null
+++ b/applications/bed/starch/test/concatenation/makefile
@@ -0,0 +1,180 @@
+#
+# makefile
+#
+
+TMP = /tmp
+USER := $(shell whoami)
+THIS_DIR := $(shell pwd)
+RESULTS = ${TMP}/${USER}/starch_regression_test/results/concatenation
+SRC = $(THIS_DIR)/src
+COMPEXT_DIR = $(THIS_DIR)/../compression_and_extraction
+COMPEXTRES_DIR = ${TMP}/${USER}/starch_regression_test/results/compression_and_extraction
+ORIGINAL_DIR = $(THIS_DIR)/../original_data
+ORIGINAL_DATA = ${TMP}/${USER}/starch_regression_test/data
+BED_INPUT = $(ORIGINAL_DATA)/random.bed
+PLATFORM := $(shell uname)
+BIN_DIR = $(THIS_DIR)/../binaries
+LINUX_BINDIR = $(BIN_DIR)/linux
+OSX_BINDIR = $(BIN_DIR)/osx
+
+all: archives tests
+
+archives: compext_archives
+
+tests: disjoint_by_variable_size_compext_tests disjoint_by_chromosome_compext_tests disjoint_by_fixed_size_compext_tests
+
+compext_archives:
+ @echo "[STARCH] making compression/extraction archives..."
+ @test -s $(COMPEXTRES_DIR) || make -C $(COMPEXT_DIR) -f makefile archives
+ @echo "[STARCH] archives are ready!"
+
+bed_input:
+ @test -s $(BED_INPUT) || make -C $(ORIGINAL_DIR) -f makefile random.bed
+
+results_dir:
+ @echo "[STARCH] making results directory..."
+ @mkdir -p $(RESULTS)
+
+# ---------------------------------------------
+
+disjoint_by_variable_size_compext_tests: compext_archives results_dir
+ @echo "[STARCH] splitting input into disjoint split-by-variable-size versions..."
+ifeq ($(PLATFORM),Linux)
+ @$(SRC)/split_random_inputs_into_disjoint_archives.pl $(COMPEXTRES_DIR) $(RESULTS) $(LINUX_BINDIR)
+endif
+ifeq ($(PLATFORM),Darwin)
+ @$(SRC)/split_random_inputs_into_disjoint_archives.pl $(COMPEXTRES_DIR) $(RESULTS) $(OSX_BINDIR)
+endif
+ @echo "[STARCH] merging disjoint versions into one archive..."
+ifeq ($(PLATFORM),Linux)
+ $(LINUX_BINDIR)/v2.1/bin/starchcat --bzip2 $(RESULTS)/version_test_bzip2_*.starch > $(RESULTS)/version_test_bzip2.starch
+ $(LINUX_BINDIR)/v2.1/bin/starchcat --gzip $(RESULTS)/version_test_gzip_*.starch > $(RESULTS)/version_test_gzip.starch
+endif
+ifeq ($(PLATFORM),Darwin)
+ @$(OSX_BINDIR)/v2.1/bin/starchcat --bzip2 $(RESULTS)/version_test_bzip2_*.starch > $(RESULTS)/version_test_bzip2.starch
+ @$(OSX_BINDIR)/v2.1/bin/starchcat --gzip $(RESULTS)/version_test_gzip_*.starch > $(RESULTS)/version_test_gzip.starch
+endif
+ @echo "[STARCH] comparing element counts of disjoint archives with merged archive..."
+ifeq ($(PLATFORM),Linux)
+ @$(SRC)/compare_disjoint_element_counts_with_merged_archive.pl $(LINUX_BINDIR)/v2.1/bin/unstarch $(RESULTS)/version_test_bzip2.starch $(RESULTS)/version_test_bzip2_*.starch
+endif
+ifeq ($(PLATFORM),Darwin)
+ @$(SRC)/compare_disjoint_element_counts_with_merged_archive.pl $(OSX_BINDIR)/v2.1/bin/unstarch $(RESULTS)/version_test_bzip2.starch $(RESULTS)/version_test_bzip2_*.starch
+endif
+ @echo "[STARCH] comparing diffs of manually concatenated disjoint archives with merged archive..."
+ifeq ($(PLATFORM),Linux)
+ @$(SRC)/diff_disjoint_archives_with_merged_archive.pl $(LINUX_BINDIR)/v2.1/bin/unstarch $(RESULTS)/version_test_bzip2.starch $(RESULTS)/version_test_bzip2_*.starch
+endif
+ifeq ($(PLATFORM),Darwin)
+ @$(SRC)/diff_disjoint_archives_with_merged_archive.pl $(OSX_BINDIR)/v2.1/bin/unstarch $(RESULTS)/version_test_bzip2.starch $(RESULTS)/version_test_bzip2_*.starch
+endif
+
+# ---------------------------------------------
+
+disjoint_by_chromosome_compext_tests: compext_archives results_dir
+ @echo "[STARCH] splitting input into disjoint split-by-chromosome versions..."
+ifeq ($(PLATFORM),Linux)
+ @$(SRC)/split_random_inputs_into_disjoint_archives_by_chromosome.pl $(COMPEXTRES_DIR) $(RESULTS) $(LINUX_BINDIR)
+endif
+ifeq ($(PLATFORM),Darwin)
+ @$(SRC)/split_random_inputs_into_disjoint_archives_by_chromosome.pl $(COMPEXTRES_DIR) $(RESULTS) $(OSX_BINDIR)
+endif
+ifeq ($(PLATFORM),Linux)
+ @echo "[STARCH] comparing diffs of manually concatenated per-chromosome disjoint archives with merged bzip2 archive..."
+ @echo "[STARCH] v1.2 disjoint <-> v2.1"
+ @$(SRC)/diff_disjoint_by_chromosome_archives_with_merged_archive.pl $(LINUX_BINDIR)/v2.1/bin/unstarch $(RESULTS)/random_1p2p0_bzip2.starch.merge_test $(RESULTS)/disjoint_by_chr.random_1p2p0_bzip2.starch.chr*
+ @echo "[STARCH] v1.5 <-> v2.1"
+ @$(SRC)/diff_disjoint_by_chromosome_archives_with_merged_archive.pl $(LINUX_BINDIR)/v2.1/bin/unstarch $(RESULTS)/random_1p5p0_bzip2.starch.merge_test $(RESULTS)/disjoint_by_chr.random_1p5p0_bzip2.starch.chr*
+ @echo "[STARCH] v2.0 <-> v2.1"
+ @$(SRC)/diff_disjoint_by_chromosome_archives_with_merged_archive.pl $(LINUX_BINDIR)/v2.1/bin/unstarch $(RESULTS)/random_2p0p0_bzip2.starch.merge_test $(RESULTS)/disjoint_by_chr.random_2p0p0_bzip2.starch.chr*
+ @echo "[STARCH] v2.1 <-> v2.1"
+ @$(SRC)/diff_disjoint_by_chromosome_archives_with_merged_archive.pl $(LINUX_BINDIR)/v2.1/bin/unstarch $(RESULTS)/random_2p1p0_bzip2.starch.merge_test $(RESULTS)/disjoint_by_chr.random_2p1p0_bzip2.starch.chr*
+ @echo "[STARCH] comparing diffs of manually concatenated per-chromosome disjoint archives with merged gzip archive..."
+ @echo "[STARCH] v1.2 disjoint <-> v2.1"
+ @$(SRC)/diff_disjoint_by_chromosome_archives_with_merged_archive.pl $(LINUX_BINDIR)/v2.1/bin/unstarch $(RESULTS)/random_1p2p0_gzip.starch.merge_test $(RESULTS)/disjoint_by_chr.random_1p2p0_gzip.starch.chr*
+ @echo "[STARCH] v1.5 <-> v2.1"
+ @$(SRC)/diff_disjoint_by_chromosome_archives_with_merged_archive.pl $(LINUX_BINDIR)/v2.1/bin/unstarch $(RESULTS)/random_1p5p0_gzip.starch.merge_test $(RESULTS)/disjoint_by_chr.random_1p5p0_gzip.starch.chr*
+ @echo "[STARCH] v2.0 <-> v2.1"
+ @$(SRC)/diff_disjoint_by_chromosome_archives_with_merged_archive.pl $(LINUX_BINDIR)/v2.1/bin/unstarch $(RESULTS)/random_2p0p0_gzip.starch.merge_test $(RESULTS)/disjoint_by_chr.random_2p0p0_gzip.starch.chr*
+ @echo "[STARCH] v2.1 <-> v2.1"
+ @$(SRC)/diff_disjoint_by_chromosome_archives_with_merged_archive.pl $(LINUX_BINDIR)/v2.1/bin/unstarch $(RESULTS)/random_2p1p0_gzip.starch.merge_test $(RESULTS)/disjoint_by_chr.random_2p1p0_gzip.starch.chr*
+endif
+ifeq ($(PLATFORM),Darwin)
+ @echo "[STARCH] comparing diffs of manually concatenated per-chromosome disjoint archives with merged bzip2 archive..."
+ @echo "[STARCH] v1.2 disjoint <-> v2.1"
+ @$(SRC)/diff_disjoint_by_chromosome_archives_with_merged_archive.pl $(OSX_BINDIR)/v2.1/bin/unstarch $(RESULTS)/random_1p2p0_bzip2.starch.merge_test $(RESULTS)/disjoint_by_chr.random_1p2p0_bzip2.starch.chr*
+ @echo "[STARCH] v1.5 <-> v2.1"
+ @$(SRC)/diff_disjoint_by_chromosome_archives_with_merged_archive.pl $(OSX_BINDIR)/v2.1/bin/unstarch $(RESULTS)/random_1p5p0_bzip2.starch.merge_test $(RESULTS)/disjoint_by_chr.random_1p5p0_bzip2.starch.chr*
+ @echo "[STARCH] v2.0 <-> v2.1"
+ @$(SRC)/diff_disjoint_by_chromosome_archives_with_merged_archive.pl $(OSX_BINDIR)/v2.1/bin/unstarch $(RESULTS)/random_2p0p0_bzip2.starch.merge_test $(RESULTS)/disjoint_by_chr.random_2p0p0_bzip2.starch.chr*
+ @echo "[STARCH] v2.1 <-> v2.1"
+ @$(SRC)/diff_disjoint_by_chromosome_archives_with_merged_archive.pl $(OSX_BINDIR)/v2.1/bin/unstarch $(RESULTS)/random_2p1p0_bzip2.starch.merge_test $(RESULTS)/disjoint_by_chr.random_2p1p0_bzip2.starch.chr*
+ @echo "[STARCH] comparing diffs of manually concatenated per-chromosome disjoint archives with merged gzip archive..."
+ @echo "[STARCH] v1.2 disjoint <-> v2.1"
+ @$(SRC)/diff_disjoint_by_chromosome_archives_with_merged_archive.pl $(OSX_BINDIR)/v2.1/bin/unstarch $(RESULTS)/random_1p2p0_gzip.starch.merge_test $(RESULTS)/disjoint_by_chr.random_1p2p0_gzip.starch.chr*
+ @echo "[STARCH] v1.5 <-> v2.1"
+ @$(SRC)/diff_disjoint_by_chromosome_archives_with_merged_archive.pl $(OSX_BINDIR)/v2.1/bin/unstarch $(RESULTS)/random_1p5p0_gzip.starch.merge_test $(RESULTS)/disjoint_by_chr.random_1p5p0_gzip.starch.chr*
+ @echo "[STARCH] v2.0 <-> v2.1"
+ @$(SRC)/diff_disjoint_by_chromosome_archives_with_merged_archive.pl $(OSX_BINDIR)/v2.1/bin/unstarch $(RESULTS)/random_2p0p0_gzip.starch.merge_test $(RESULTS)/disjoint_by_chr.random_2p0p0_gzip.starch.chr*
+ @echo "[STARCH] v2.1 <-> v2.1"
+ @$(SRC)/diff_disjoint_by_chromosome_archives_with_merged_archive.pl $(OSX_BINDIR)/v2.1/bin/unstarch $(RESULTS)/random_2p1p0_gzip.starch.merge_test $(RESULTS)/disjoint_by_chr.random_2p1p0_gzip.starch.chr*
+endif
+
+# ---------------------------------------------
+
+disjoint_by_fixed_size_compext_tests: compext_archives results_dir
+ @echo "[STARCH] splitting input into disjoint split-by-fixed-size versions..."
+ifeq ($(PLATFORM),Linux)
+ @$(SRC)/split_random_inputs_into_disjoint_archives_by_fixed_size.pl $(COMPEXTRES_DIR) $(RESULTS) $(LINUX_BINDIR)
+endif
+ifeq ($(PLATFORM),Darwin)
+ @$(SRC)/split_random_inputs_into_disjoint_archives_by_fixed_size.pl $(COMPEXTRES_DIR) $(RESULTS) $(OSX_BINDIR)
+endif
+ @echo "[STARCH] comparing diffs of manually concatenated fixed-size disjoint archives with merged bzip2 archive"
+ifeq ($(PLATFORM),Linux)
+ @echo "[STARCH] v1.2 disjoint <-> v2.1"
+ @$(SRC)/diff_disjoint_by_fixed_size_archives_with_merged_archive.pl $(LINUX_BINDIR)/v2.1/bin/unstarch $(COMPEXTRES_DIR)/random_1p2p0_bzip2.starch $(RESULTS)/fixed_merged_merged_fixed_size_random_1p2p0_bzip2.starch
+ @echo "[STARCH] v1.5 <-> v2.1"
+ @$(SRC)/diff_disjoint_by_fixed_size_archives_with_merged_archive.pl $(LINUX_BINDIR)/v2.1/bin/unstarch $(COMPEXTRES_DIR)/random_1p5p0_bzip2.starch $(RESULTS)/fixed_merged_merged_fixed_size_random_1p5p0_bzip2.starch
+ @echo "[STARCH] v2.0 <-> v2.1"
+ @$(SRC)/diff_disjoint_by_fixed_size_archives_with_merged_archive.pl $(LINUX_BINDIR)/v2.1/bin/unstarch $(COMPEXTRES_DIR)/random_2p0p0_bzip2.starch $(RESULTS)/fixed_merged_merged_fixed_size_random_2p0p0_bzip2.starch
+ @echo "[STARCH] v2.1 <-> v2.1"
+ @$(SRC)/diff_disjoint_by_fixed_size_archives_with_merged_archive.pl $(LINUX_BINDIR)/v2.1/bin/unstarch $(COMPEXTRES_DIR)/random_2p1p0_bzip2.starch $(RESULTS)/fixed_merged_merged_fixed_size_random_2p1p0_bzip2.starch
+endif
+ifeq ($(PLATFORM),Darwin)
+ @echo "[STARCH] v1.2 disjoint <-> v2.1"
+ @$(SRC)/diff_disjoint_by_fixed_size_archives_with_merged_archive.pl $(OSX_BINDIR)/v2.1/bin/unstarch $(COMPEXTRES_DIR)/random_1p2p0_bzip2.starch $(RESULTS)/fixed_merged_merged_fixed_size_random_1p2p0_bzip2.starch
+ @echo "[STARCH] v1.5 <-> v2.1"
+ @$(SRC)/diff_disjoint_by_fixed_size_archives_with_merged_archive.pl $(OSX_BINDIR)/v2.1/bin/unstarch $(COMPEXTRES_DIR)/random_1p5p0_bzip2.starch $(RESULTS)/fixed_merged_merged_fixed_size_random_1p5p0_bzip2.starch
+ @echo "[STARCH] v2.0 <-> v2.1"
+ @$(SRC)/diff_disjoint_by_fixed_size_archives_with_merged_archive.pl $(OSX_BINDIR)/v2.1/bin/unstarch $(COMPEXTRES_DIR)/random_2p0p0_bzip2.starch $(RESULTS)/fixed_merged_merged_fixed_size_random_2p0p0_bzip2.starch
+ @echo "[STARCH] v2.1 <-> v2.1"
+ @$(SRC)/diff_disjoint_by_fixed_size_archives_with_merged_archive.pl $(OSX_BINDIR)/v2.1/bin/unstarch $(COMPEXTRES_DIR)/random_2p1p0_bzip2.starch $(RESULTS)/fixed_merged_merged_fixed_size_random_2p1p0_bzip2.starch
+endif
+ @echo "[STARCH] comparing diffs of manually concatenated fixed-size disjoint archives with merged gzip archive"
+ifeq ($(PLATFORM),Linux)
+ @echo "[STARCH] v1.2 disjoint <-> v2.1"
+ @$(SRC)/diff_disjoint_by_fixed_size_archives_with_merged_archive.pl $(LINUX_BINDIR)/v2.1/bin/unstarch $(COMPEXTRES_DIR)/random_1p2p0_gzip.starch $(RESULTS)/fixed_merged_merged_fixed_size_random_1p2p0_gzip.starch
+ @echo "[STARCH] v1.5 <-> v2.1"
+ @$(SRC)/diff_disjoint_by_fixed_size_archives_with_merged_archive.pl $(LINUX_BINDIR)/v2.1/bin/unstarch $(COMPEXTRES_DIR)/random_1p5p0_gzip.starch $(RESULTS)/fixed_merged_merged_fixed_size_random_1p5p0_gzip.starch
+ @echo "[STARCH] v2.0 <-> v2.1"
+ @$(SRC)/diff_disjoint_by_fixed_size_archives_with_merged_archive.pl $(LINUX_BINDIR)/v2.1/bin/unstarch $(COMPEXTRES_DIR)/random_2p0p0_gzip.starch $(RESULTS)/fixed_merged_merged_fixed_size_random_2p0p0_gzip.starch
+ @echo "[STARCH] v2.1 <-> v2.1"
+ @$(SRC)/diff_disjoint_by_fixed_size_archives_with_merged_archive.pl $(LINUX_BINDIR)/v2.1/bin/unstarch $(COMPEXTRES_DIR)/random_2p1p0_gzip.starch $(RESULTS)/fixed_merged_merged_fixed_size_random_2p1p0_gzip.starch
+endif
+ifeq ($(PLATFORM),Darwin)
+ @echo "[STARCH] v1.2 disjoint <-> v2.1"
+ @$(SRC)/diff_disjoint_by_fixed_size_archives_with_merged_archive.pl $(OSX_BINDIR)/v2.1/bin/unstarch $(COMPEXTRES_DIR)/random_1p2p0_gzip.starch $(RESULTS)/fixed_merged_merged_fixed_size_random_1p2p0_gzip.starch
+ @echo "[STARCH] v1.5 <-> v2.1"
+ @$(SRC)/diff_disjoint_by_fixed_size_archives_with_merged_archive.pl $(OSX_BINDIR)/v2.1/bin/unstarch $(COMPEXTRES_DIR)/random_1p5p0_gzip.starch $(RESULTS)/fixed_merged_merged_fixed_size_random_1p5p0_gzip.starch
+ @echo "[STARCH] v2.0 <-> v2.1"
+ @$(SRC)/diff_disjoint_by_fixed_size_archives_with_merged_archive.pl $(OSX_BINDIR)/v2.1/bin/unstarch $(COMPEXTRES_DIR)/random_2p0p0_gzip.starch $(RESULTS)/fixed_merged_merged_fixed_size_random_2p0p0_gzip.starch
+ @echo "[STARCH] v2.1 <-> v2.1"
+ @$(SRC)/diff_disjoint_by_fixed_size_archives_with_merged_archive.pl $(OSX_BINDIR)/v2.1/bin/unstarch $(COMPEXTRES_DIR)/random_2p1p0_gzip.starch $(RESULTS)/fixed_merged_merged_fixed_size_random_2p1p0_gzip.starch
+endif
+# ---------------------------------------------
+
+clean:
+ @echo "[STARCH] cleaning up intermediate starch archives..."
+ @rm -rf $(RESULTS)
+ @echo "[STARCH] all clean!"
diff --git a/applications/bed/starch/test/concatenation/src/compare_disjoint_element_counts_with_merged_archive.pl b/applications/bed/starch/test/concatenation/src/compare_disjoint_element_counts_with_merged_archive.pl
new file mode 100755
index 0000000..1f7e8f2
--- /dev/null
+++ b/applications/bed/starch/test/concatenation/src/compare_disjoint_element_counts_with_merged_archive.pl
@@ -0,0 +1,23 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+
+my $argc = @ARGV;
+my $unstarchBin = $ARGV[0];
+my $mergedFn = $ARGV[1];
+my @disjointFns = @ARGV[2..($argc - 1)];
+
+my $mergedElementCount = `$unstarchBin --elements $mergedFn`; chomp $mergedElementCount;
+my $disjointElementCount = 0;
+foreach my $disjointFn (@disjointFns) {
+ # we do not assume that the disjoint archives are starch v2 (i.e. that they support --elements operator)
+ my $disjointFnElementCount = `$unstarchBin $disjointFn | wc -l`; chomp $disjointFnElementCount;
+ $disjointElementCount += $disjointFnElementCount;
+}
+
+if ($mergedElementCount != $disjointElementCount) {
+ die "ERROR: Merged and summed disjoint element counts do not match!";
+}
+
+print STDOUT "[STARCH] no differences found between element counts!\n";
diff --git a/applications/bed/starch/test/concatenation/src/diff_disjoint_archives_with_merged_archive.pl b/applications/bed/starch/test/concatenation/src/diff_disjoint_archives_with_merged_archive.pl
new file mode 100755
index 0000000..58686b8
--- /dev/null
+++ b/applications/bed/starch/test/concatenation/src/diff_disjoint_archives_with_merged_archive.pl
@@ -0,0 +1,31 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+use File::Basename;
+
+my $argc = @ARGV;
+my $unstarchBin = $ARGV[0];
+my $mergedFn = $ARGV[1];
+my @disjointFns = @ARGV[2..($argc - 1)];
+my $username = (getpwuid($<))[0];
+my $tempDir = "/tmp/$username/starch_regression_test/results/concatenation";
+my $observedElementsFn = "$tempDir/observedElements.bed";
+
+my $observedElementsCmd = "$unstarchBin $mergedFn > $observedElementsFn";
+#print STDERR "CMD -> $observedElementsCmd\n";
+system("$unstarchBin $mergedFn > $observedElementsFn") == 0 or die "ERROR: could not extract merged archive data\n";
+foreach my $disjointFn (@disjointFns) {
+ my $tempDisjointFn = "$tempDir/disjoint.".basename($disjointFn).".bed";
+ my $tempDisjointCmd = "$unstarchBin $disjointFn > $tempDisjointFn";
+ #print STDERR "CMD -> $tempDisjointCmd\n";
+ system("$tempDisjointCmd") == 0 or die "ERROR: could not extract disjoint archive data\n";
+}
+my $expectedElementsFn = "$tempDir/expectedElements.bed";
+my $expectedElementsCmd = "sort-bed $tempDir/disjoint.*.bed > $expectedElementsFn";
+#print STDERR "CMD -> $expectedElementsCmd\n";
+system("sort-bed $tempDir/disjoint.*.bed > $expectedElementsFn") == 0 or die "ERROR: could not sort extracted disjoint data\n";
+
+system("diff --brief $observedElementsFn $expectedElementsFn") == 0 or die "ERROR: could not diff observed and expected archive data\n";
+
+print STDOUT "[STARCH] no differences found!\n";
diff --git a/applications/bed/starch/test/concatenation/src/diff_disjoint_by_chromosome_archives_with_merged_archive.pl b/applications/bed/starch/test/concatenation/src/diff_disjoint_by_chromosome_archives_with_merged_archive.pl
new file mode 100755
index 0000000..8ca82b2
--- /dev/null
+++ b/applications/bed/starch/test/concatenation/src/diff_disjoint_by_chromosome_archives_with_merged_archive.pl
@@ -0,0 +1,28 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+use File::Basename;
+
+my $argc = @ARGV;
+my $unstarchBin = $ARGV[0];
+my $mergedFn = $ARGV[1];
+my @disjointFns = @ARGV[2..($argc - 1)];
+my $username = (getpwuid($<))[0];
+my $tempDir = "/tmp/$username/starch_regression_test/results/concatenation";
+my $observedElementsFn = "$tempDir/observedSplitByChromosomeElements.bed";
+
+system("$unstarchBin $mergedFn > $observedElementsFn") == 0 or die "ERROR: could not extract merged archive data\n";
+my @fns = ();
+foreach my $disjointFn (@disjointFns) {
+ my $tempDisjointFn = "$tempDir/disjoint.".basename($disjointFn).".bed";
+ system("$unstarchBin $disjointFn > $tempDisjointFn") == 0 or die "ERROR: could not extract disjoint archive data\n";
+ push @fns, $tempDisjointFn;
+}
+my $expectedElementsFn = "$tempDir/expectedSplitByChromosomeElements.bed";
+my $bedToSort = join(" ", @fns);
+system("sort-bed $bedToSort > $expectedElementsFn") == 0 or die "ERROR: could not sort extracted disjoint data\n";
+
+system("diff --brief $observedElementsFn $expectedElementsFn") == 0 or die "ERROR: could not diff observed and expected archive data\n";
+
+print STDOUT "[STARCH] no differences found!\n";
diff --git a/applications/bed/starch/test/concatenation/src/diff_disjoint_by_fixed_size_archives_with_merged_archive.pl b/applications/bed/starch/test/concatenation/src/diff_disjoint_by_fixed_size_archives_with_merged_archive.pl
new file mode 100755
index 0000000..abc2ad8
--- /dev/null
+++ b/applications/bed/starch/test/concatenation/src/diff_disjoint_by_fixed_size_archives_with_merged_archive.pl
@@ -0,0 +1,38 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+use File::Basename;
+use Data::Dumper;
+
+my $argc = @ARGV;
+my $unstarchBin = $ARGV[0];
+my $mergedFn = $ARGV[1];
+my @disjointFns = ($ARGV[2]);
+my $username = (getpwuid($<))[0];
+my $tempDir = "/tmp/$username/starch_regression_test/results/concatenation";
+my $observedElementsFn = "$tempDir/observedSplitByFixedSizeElements.bed";
+
+my $observedCmd = "$unstarchBin $mergedFn > $observedElementsFn";
+#print STDERR "CMD -> $observedCmd\n";
+system("$observedCmd") == 0 or die "ERROR: could not extract merged archive data\n";
+my @fns = ();
+foreach my $disjointFn (@disjointFns) {
+ my $tempDisjointFn = "$tempDir/temp_fixed_size_test.".basename($disjointFn).".bed";
+ my $tempDisjointCmd = "$unstarchBin $disjointFn > $tempDisjointFn";
+ #print STDERR "CMD -> $tempDisjointCmd\n";
+ system("$tempDisjointCmd") == 0 or die "ERROR: could not extract disjoint archive data\n";
+ push @fns, $tempDisjointFn;
+}
+
+my $expectedElementsFn = "$tempDir/expectedSplitByFixedSizeElements.bed";
+my $bedToSort = join(" ", @fns);
+my $expectedCmd = "sort-bed $bedToSort > $expectedElementsFn";
+#print STDERR "CMD -> $expectedCmd\n";
+system("$expectedCmd") == 0 or die "ERROR: could not sort extracted disjoint data\n";
+
+my $diffCmd = "diff --brief $observedElementsFn $expectedElementsFn";
+#print STDERR "CMD -> $diffCmd\n";
+system("$diffCmd") == 0 or die "ERROR: could not diff observed and expected archive data\n";
+
+print STDOUT "[STARCH] no differences found!\n";
diff --git a/applications/bed/starch/test/concatenation/src/split_random_inputs_into_disjoint_archives.pl b/applications/bed/starch/test/concatenation/src/split_random_inputs_into_disjoint_archives.pl
new file mode 100755
index 0000000..7852a5f
--- /dev/null
+++ b/applications/bed/starch/test/concatenation/src/split_random_inputs_into_disjoint_archives.pl
@@ -0,0 +1,93 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+use Data::Dumper;
+use File::Basename;
+use File::Path;
+use List::Util qw(shuffle);
+
+my $compr_extr_results_dir = $ARGV[0];
+my $concat_results_dir = $ARGV[1];
+my $binaries_dir = $ARGV[2];
+
+my @archive_types = qw(bzip2
+ gzip);
+
+my @version_dirs = qw(v1.2
+ v1.5
+ v2.0
+ v2.1);
+
+my @bzip2_fns = qw(random_1p2p0_bzip2.starch
+ random_1p5p0_bzip2.starch
+ random_2p0p0_bzip2.starch
+ random_2p1p0_bzip2.starch);
+
+my @gzip_fns = qw(random_1p2p0_gzip.starch
+ random_1p5p0_gzip.starch
+ random_2p0p0_gzip.starch
+ random_2p1p0_gzip.starch);
+
+my @elem_counts = qw(250000
+ 250000
+ 250000
+ 250000);
+
+my $version_str = "v2.1";
+
+# this script will randomly pick four archives from the bzip2- and gzip-based starch archive pool
+# and pull disjoint sets of 250K, 250K, 250K, and 250K elements from these files, respectively. the
+# resulting elements are then starch'ed into four archives.
+
+foreach my $archive_type (@archive_types) {
+ #print STDERR "making $archive_type archive...\n";
+ # total of eight files
+ my @fn_indices = (0..7);
+ my @shuffled_indices = shuffle (@fn_indices);
+ # we grab the first four indices
+ my @inds = @shuffled_indices[0..3];
+ my @fns = ();
+ undef @fns;
+ # grab either a bzip2 or gzip archive at random
+ foreach my $ind (@inds) {
+ if ($ind < 4) {
+ push (@fns, $bzip2_fns[$ind]);
+ }
+ else {
+ push (@fns, $gzip_fns[$ind - 4]);
+ }
+ }
+ my @select_inds = (0..3);
+ my $total_line_count = 0;
+ foreach my $ind (@select_inds) {
+ my $real_line_count = 0;
+ my $current_line_count = $total_line_count;
+ my $elem_count = $elem_counts[$ind];
+ $total_line_count += $elem_count;
+ # extract
+ #print STDERR "extracting $elem_count elements from $fns[$ind] | $real_line_count | $current_line_count | $elem_count | $total_line_count\n";
+ my $unstarch_binary = "$binaries_dir/$version_str/bin/unstarch";
+ open ARCH, "$unstarch_binary $compr_extr_results_dir/$fns[$ind] |" or die "could not unstarch: $compr_extr_results_dir/$fns[$ind]\n";
+ my $intermediate_out_fn = "$concat_results_dir/version_test_"."$archive_type"."_"."$current_line_count-$total_line_count.bed";
+ open OUT, "> $intermediate_out_fn" or die "could not open handle to intermediate output: $intermediate_out_fn\n";
+ while (<ARCH>) {
+ if ($real_line_count == $total_line_count) {
+ next;
+ }
+ if (($real_line_count >= $current_line_count) && ($real_line_count < $total_line_count)) {
+ print OUT $_;
+ }
+ $real_line_count++;
+ }
+ close OUT;
+ close ARCH;
+ # compress
+ my $starch_binary = "$binaries_dir/$version_dirs[$ind]/bin/starch";
+ #print STDERR "starch binary: $starch_binary\n";
+ my $final_out_fn = "$intermediate_out_fn.starch";
+ system ("$starch_binary --$archive_type $intermediate_out_fn > $final_out_fn") == 0 or die "could not create final starch output!\n$?\n";
+ # cleanup
+ system ("rm $intermediate_out_fn") == 0 or die "could not delete intermediate file: $intermediate_out_fn\n$?\n";
+ }
+}
diff --git a/applications/bed/starch/test/concatenation/src/split_random_inputs_into_disjoint_archives_by_chromosome.pl b/applications/bed/starch/test/concatenation/src/split_random_inputs_into_disjoint_archives_by_chromosome.pl
new file mode 100755
index 0000000..0c6b5fd
--- /dev/null
+++ b/applications/bed/starch/test/concatenation/src/split_random_inputs_into_disjoint_archives_by_chromosome.pl
@@ -0,0 +1,71 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+use Data::Dumper;
+use File::Basename;
+use File::Path;
+use List::Util qw(shuffle);
+
+my $compr_extr_results_dir = $ARGV[0];
+my $concat_results_dir = $ARGV[1];
+my $binaries_dir = $ARGV[2];
+
+my $version = "v2.1";
+
+my @archive_types = qw(bzip2
+ gzip);
+
+my @version_dirs = qw(v1.2
+ v1.5
+ v2.0
+ v2.1);
+
+my @bzip2_fns = qw(random_1p2p0_bzip2.starch
+ random_1p5p0_bzip2.starch
+ random_2p0p0_bzip2.starch
+ random_2p1p0_bzip2.starch);
+
+my @gzip_fns = qw(random_1p2p0_gzip.starch
+ random_1p5p0_gzip.starch
+ random_2p0p0_gzip.starch
+ random_2p1p0_gzip.starch);
+
+# this script will randomly pick three archives from the bzip2- and gzip-based starch archive pool
+# and pull disjoint sets of per-chromosome elements from these files, respectively. the resulting
+# elements are then starch'ed into three archives.
+
+foreach my $archive_type (@archive_types) {
+ #print STDERR "making $archive_type archives...\n";
+ if ($archive_type eq "bzip2") {
+ foreach my $bzip2_fn (@bzip2_fns) {
+ my $chr_list = `$binaries_dir/$version/bin/unstarch --list-chr $compr_extr_results_dir/$bzip2_fn`; chomp $chr_list;
+ my @chrs = split("\n", $chr_list);
+ my @result_fns = ();
+ foreach my $chr (@chrs) {
+ my $result_fn = "$concat_results_dir/disjoint_by_chr.$bzip2_fn.$chr.starch";
+ my $cmd = "$binaries_dir/$version/bin/unstarch $chr $compr_extr_results_dir/$bzip2_fn | $binaries_dir/$version/bin/starch --bzip2 - > $result_fn";
+ system ("$cmd") == 0 or die "could not extract $chr from $bzip2_fn\nCMD: $cmd\n";
+ push (@result_fns, $result_fn);
+ }
+
+ my $fn_list = join(" ", @result_fns);
+ system ("$binaries_dir/$version/bin/starchcat $fn_list > $concat_results_dir/$bzip2_fn.merge_test") == 0 or die "could not merge chr's from split $bzip2_fn\n";
+ }
+ }
+ if ($archive_type eq "gzip") {
+ foreach my $gzip_fn (@gzip_fns) {
+ my $chr_list = `$binaries_dir/$version/bin/unstarch --list-chr $compr_extr_results_dir/$gzip_fn`; chomp $chr_list;
+ my @chrs = split("\n", $chr_list);
+ my @result_fns = ();
+ foreach my $chr (@chrs) {
+ my $result_fn = "$concat_results_dir/disjoint_by_chr.$gzip_fn.$chr.starch";
+ my $cmd = "$binaries_dir/$version/bin/unstarch $chr $compr_extr_results_dir/$gzip_fn | $binaries_dir/$version/bin/starch --gzip - > $result_fn";
+ system ("$cmd") == 0 or die "could not extract $chr from $gzip_fn\nCMD: $cmd\n";
+ push (@result_fns, $result_fn);
+ }
+ my $fn_list = join(" ", @result_fns);
+ system ("$binaries_dir/$version/bin/starchcat $fn_list > $concat_results_dir/$gzip_fn.merge_test") == 0 or die "could not merge chr's from split $gzip_fn\n";
+ }
+ }
+}
diff --git a/applications/bed/starch/test/concatenation/src/split_random_inputs_into_disjoint_archives_by_fixed_size.pl b/applications/bed/starch/test/concatenation/src/split_random_inputs_into_disjoint_archives_by_fixed_size.pl
new file mode 100755
index 0000000..b33b5ab
--- /dev/null
+++ b/applications/bed/starch/test/concatenation/src/split_random_inputs_into_disjoint_archives_by_fixed_size.pl
@@ -0,0 +1,89 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+use Data::Dumper;
+use File::Basename;
+use File::Path;
+use List::Util qw(shuffle);
+
+my $compr_extr_results_dir = $ARGV[0];
+my $concat_results_dir = $ARGV[1];
+my $binaries_dir = $ARGV[2];
+
+my @archive_types = qw(bzip2
+ gzip);
+
+my @version_dirs = qw(v1.2
+ v1.5
+ v2.0
+ v2.1);
+
+my @bzip2_fns = qw(random_1p2p0_bzip2.starch
+ random_1p5p0_bzip2.starch
+ random_2p0p0_bzip2.starch
+ random_2p1p0_bzip2.starch);
+
+my @gzip_fns = qw(random_1p2p0_gzip.starch
+ random_1p5p0_gzip.starch
+ random_2p0p0_gzip.starch
+ random_2p1p0_gzip.starch);
+
+my $version_str = "v2.1";
+
+my $fragment_size = 100000;
+my $max_size = 1000000;
+my $username = (getpwuid($<))[0];
+my $tempDir = "/tmp/$username/starch_regression_test/results/concatenation";
+
+# this script will randomly pick three archives from the bzip2- and gzip-based starch archive pool
+# and pull disjoint sets of 100K elements from each, spanning across the 1M element set
+
+foreach my $archive_type (@archive_types) {
+ #print STDERR "making $archive_type archive...\n";
+ if ($archive_type eq "bzip2") {
+ foreach my $bzip2_fn (@bzip2_fns) {
+ my $set_count = $max_size / $fragment_size;
+ my @out_fns = ();
+ foreach my $index (0..($set_count - 1)) {
+ my $start = ($index * $fragment_size) + 1;
+ my $stop = (($index + 1) * $fragment_size);
+ my $out_fn = "$tempDir/fixed_".$bzip2_fn."_".$start."_".$stop.".starch";
+ #print Dumper $out_fn;
+ my $cmd = "$binaries_dir/$version_str/bin/unstarch $compr_extr_results_dir/$bzip2_fn | sed -n ".$start.",".$stop."p | $binaries_dir/$version_str/bin/starch - > $out_fn";
+ #print STDERR "CMD -> $cmd\n";
+ system ("$cmd") == 0 or die "could not split $bzip2_fn at boundaries [$start, $stop]\n";
+ push @out_fns, $out_fn;
+ }
+ my $out_str = join(" ", @out_fns);
+ #print STDERR "CAT - $out_str\n";
+ my $out_final_fn = "$tempDir/merged_fixed_size_".$bzip2_fn;
+ my $concat_cmd = "$binaries_dir/$version_str/bin/starchcat $out_str > $out_final_fn";
+ `$concat_cmd`;
+ system ("mv $out_final_fn $concat_results_dir/fixed_merged_".basename($out_final_fn));
+ #print STDERR "BZIP - $concat_results_dir/fixed_merged_".basename($out_final_fn)."\n";
+ }
+ }
+ if ($archive_type eq "gzip") {
+ foreach my $gzip_fn (@gzip_fns) {
+ my $set_count = $max_size / $fragment_size;
+ my @out_fns = ();
+ foreach my $index (0..($set_count - 1)) {
+ my $start = ($index * $fragment_size) + 1;
+ my $stop = (($index + 1) * $fragment_size);
+ my $out_fn = "$tempDir/fixed_".$gzip_fn."_".$start."_".$stop.".starch";
+ #print Dumper $out_fn;
+ my $cmd = "$binaries_dir/$version_str/bin/unstarch $compr_extr_results_dir/$gzip_fn | sed -n ".$start.",".$stop."p | $binaries_dir/$version_str/bin/starch - > $out_fn";
+ #print STDERR "CMD -> $cmd\n";
+ system ("$cmd") == 0 or die "could not split $gzip_fn at boundaries [$start, $stop]\n";
+ push @out_fns, $out_fn;
+ }
+ my $out_str = join(" ", @out_fns);
+ my $out_final_fn = "$tempDir/merged_fixed_size_".$gzip_fn;
+ my $concat_cmd = "$binaries_dir/$version_str/bin/starchcat $out_str > $out_final_fn";
+ `$concat_cmd`;
+ system ("mv $out_final_fn $concat_results_dir/fixed_merged_".basename($out_final_fn));
+ #print STDERR "GZIP - $concat_results_dir/fixed_merged_".basename($out_final_fn)."\n";
+ }
+ }
+}
diff --git a/applications/bed/starch/test/makefile b/applications/bed/starch/test/makefile
new file mode 100644
index 0000000..155c131
--- /dev/null
+++ b/applications/bed/starch/test/makefile
@@ -0,0 +1,102 @@
+TMP = /tmp
+USER := $(shell whoami)
+ORIGINAL_DATA := ${TMP}/${USER}/starch_regression_test
+THIS_DIR := ${shell pwd}
+
+all: input_data tests
+ @echo "Congratulations, all Starch tests passed!"
+
+input_data: random.bed
+
+tests: compression_and_extraction_tests concatenation_tests metadata_integrity_tests nested_and_duplicate_element_tests unsortable_element_tests updating_tests
+
+#
+# setup of original (random) BED data
+#
+
+ORIGINAL_DIR = ${THIS_DIR}/original_data
+RANDOM_BED = ${ORIGINAL_DATA}/data/random.bed
+
+random.bed:
+ @if [ -f ${RANDOM_BED} ]; then make -C ${ORIGINAL_DIR} -f makefile clean; fi;
+ @make -C ${ORIGINAL_DIR} -f makefile random.bed
+
+#
+# compression and extraction
+#
+
+COMPEXT_DIR = ${THIS_DIR}/compression_and_extraction
+COMPEXTRES_DIR = ${TMP}/${USER}/starch_regression_test/results/compression_and_extraction
+
+compression_and_extraction_tests: random.bed
+ @if [ -d ${COMPEXTRES_DIR} ]; then make -C ${COMPEXT_DIR} -f makefile clean; fi;
+ @make -C ${COMPEXT_DIR} -f makefile all
+
+#
+# concatenation
+#
+
+CONCAT_DIR = ${THIS_DIR}/concatenation
+CONCATRES_DIR = ${TMP}/${USER}/starch_regression_test/results/concatenation
+
+concatenation_tests: random.bed compression_and_extraction_tests
+ @if [ -d ${CONCATRES_DIR} ]; then make -C ${CONCAT_DIR} -f makefile clean; fi;
+ @make -C ${CONCAT_DIR} -f makefile all
+
+#
+# updating
+#
+
+UPDATING_DIR = ${THIS_DIR}/updating
+UPDATINGRES_DIR = ${TMP}/${USER}/starch_regression_test/results/updating
+
+updating_tests: random.bed compression_and_extraction_tests
+ @if [ -d ${UPDATINGRES_DIR} ]; then make -C ${UPDATING_DIR} -f makefile clean; fi;
+ @make -C ${UPDATING_DIR} -f makefile all
+
+#
+# metadata integrity
+#
+
+MD_INTEG_DIR = ${THIS_DIR}/metadata_integrity
+MD_INTEG_RES_DIR = ${TMP}/${USER}/starch_regression_test/results/metadata_integrity
+
+metadata_integrity_tests: random.bed compression_and_extraction_tests
+ @if [ -d ${MD_INTEG_RES_DIR} ]; then make -C ${MD_INTEG_DIR} -f makefile clean; fi;
+ @make -C ${MD_INTEG_DIR} -f makefile all
+
+#
+# nested and duplicate element tests
+#
+
+ND_ELEM_DIR = ${THIS_DIR}/nested_and_duplicate_elements
+ND_ELEM_RES_DIR = ${TMP}/${USER}/starch_regression_test/results/nested_and_duplicate_elements
+
+nested_and_duplicate_element_tests:
+ @if [ -d ${ND_ELEM_RES_DIR} ]; then make -C ${ND_ELEM_DIR} -f makefile clean; fi;
+ @make -C ${ND_ELEM_DIR} -f makefile all
+
+#
+# unsortable element tests
+#
+
+US_ELEM_DIR = ${THIS_DIR}/unsortable_elements
+US_ELEM_RES_DIR = ${TMP}/${USER}/starch_regression_test/results/unsortable_elements
+
+unsortable_element_tests:
+ @if [ -d ${US_ELEM_RES_DIR} ]; then make -C ${US_ELEM_DIR} -f makefile clean; fi;
+ @make -C ${US_ELEM_DIR} -f makefile all
+
+#
+# clean-up
+#
+
+clean:
+ @echo "[STARCH] cleaning up files..."
+ @make -C ${ORIGINAL_DIR} -f makefile clean
+ @make -C ${COMPEXT_DIR} -f makefile clean
+ @make -C ${CONCAT_DIR} -f makefile clean
+ @make -C ${UPDATING_DIR} -f makefile clean
+ @make -C ${MD_INTEG_DIR} -f makefile clean
+ @make -C ${ND_ELEM_DIR} -f makefile clean
+ @rm -rf ${ORIGINAL_DATA}
diff --git a/applications/bed/starch/test/metadata_integrity/makefile b/applications/bed/starch/test/metadata_integrity/makefile
new file mode 100755
index 0000000..1cf389e
--- /dev/null
+++ b/applications/bed/starch/test/metadata_integrity/makefile
@@ -0,0 +1,334 @@
+#
+# makefile
+#
+
+TMP = /tmp
+USER := $(shell whoami)
+THIS_DIR := $(shell pwd)
+RESULTS = ${TMP}/${USER}/starch_regression_test/results/metadata_integrity
+SRC = $(THIS_DIR)/src
+COMPEXT_DIR = $(THIS_DIR)/../compression_and_extraction
+COMPEXTRES_DIR = ${TMP}/${USER}/starch_regression_test/results/compression_and_extraction
+ORIGINAL_DIR = $(THIS_DIR)/../original_data
+ORIGINAL_DATA = ${TMP}/${USER}/starch_regression_test
+BED_INPUT = $(ORIGINAL_DATA)/data/random.bed
+PLATFORM = $(shell uname)
+BIN_DIR = $(THIS_DIR)/../binaries
+LINUX_BINDIR = $(BIN_DIR)/linux
+OSX_BINDIR = $(BIN_DIR)/osx
+USR_BINDIR = /usr/bin
+OPT_BINDIR = /opt/local/bin
+LOCAL_BINDIR = /usr/local/bin
+BINDIR = /bin
+VERSION = v2.1
+VERSIONP = 2p1p0
+
+all: dependent_binaries archives tests
+
+dependent_binaries: gnu_sort gnu_awk gnu_sha1sum
+
+gnu_sort:
+ifeq ($(PLATFORM),Darwin)
+ @test -s $(LOCAL_BINDIR)/gsort || { echo "[STARCH] could not find GNU sort -- consider using Homebrew to install GNU Coreutils!"; exit 1; }
+endif
+
+gnu_awk:
+ifeq ($(PLATFORM),Darwin)
+ @test -s $(LOCAL_BINDIR)/gawk || { echo "[STARCH] could not find GNU awk -- consider using Homebrew to install gawk package!"; exit 1; }
+endif
+
+gnu_sha1sum:
+ifeq ($(PLATFORM),Linux)
+ @test -s $(USR_BINDIR)/sha1sum || { echo "[STARCH] could not find GNU sha1sum -- consider installing GNU Coreutils!"; exit 1; }
+endif
+ifeq ($(PLATFORM),Darwin)
+ @test -s $(LOCAL_BINDIR)/sha1sum || { echo "[STARCH] could not find sha1sum -- consider using Homebrew to install md5sha1sum package!"; exit 1; }
+endif
+
+archives: compext_archives
+
+tests: hash_integrity_test element_count_tests base_count_tests
+
+hash_integrity_test: dependent_binaries metadata_hash_integrity_test
+ @echo "[STARCH] hash integrity validated!"
+
+element_count_tests: dependent_binaries metadata_element_count_all_chromosomes_integrity_test metadata_element_count_random_chromosome_integrity_test
+ @echo "[STARCH] element count integrity validated (all and random chromosomes)!"
+
+base_count_tests: dependent_binaries metadata_base_count_all_chromosomes_integrity_test metadata_base_count_random_chromosome_integrity_test metadata_unique_base_count_all_chromosomes_integrity_test metadata_unique_base_count_random_chromosome_integrity_test
+ @echo "[STARCH] base count integrity validated (all and random chromosomes)!"
+
+compext_archives:
+ @echo "[STARCH] making compression/extraction archives..."
+ @test -s $(COMPEXTRES_DIR) || make -C $(COMPEXT_DIR) -f makefile archives
+ @echo "[STARCH] archives are ready!"
+
+results_dir:
+ @echo "[STARCH] making results directory..."
+ @mkdir -p $(RESULTS)
+
+# ---------------------------------------------
+
+metadata_hash_integrity_test: results_dir
+ @echo "[STARCH] checking metadata hash integrity..."
+ifeq ($(PLATFORM),Linux)
+ @echo "[STARCH] signing bzip2-backed archive..."
+ @$(LINUX_BINDIR)/$(VERSION)/bin/unstarch --list-json-no-trailing-newline $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch | $(USR_BINDIR)/sha1sum | sed 's/ .*//' | $(USR_BINDIR)/xxd -r -p | $(USR_BINDIR)/base64 > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.sha1.observed
+ @echo "[STARCH] extracting signature of bzip2-backed archive..."
+ @$(LINUX_BINDIR)/$(VERSION)/bin/unstarch --sha1-signature $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.sha1.expected
+ @echo "[STARCH] signing gzip-backed archive..."
+ @$(LINUX_BINDIR)/$(VERSION)/bin/unstarch --list-json-no-trailing-newline $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch | $(USR_BINDIR)/sha1sum | sed 's/ .*//' | $(USR_BINDIR)/xxd -r -p | $(USR_BINDIR)/base64 > $(RESULTS)/random_$(VERSIONP)_gzip.starch.sha1.observed
+ @echo "[STARCH] extracting signature of gzip-backed archive..."
+ @$(LINUX_BINDIR)/$(VERSION)/bin/unstarch --sha1-signature $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch > $(RESULTS)/random_$(VERSIONP)_gzip.starch.sha1.expected
+endif
+ifeq ($(PLATFORM),Darwin)
+ @echo "[STARCH] signing bzip2 archive..."
+ @$(OSX_BINDIR)/$(VERSION)/bin/unstarch --list-json-no-trailing-newline $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch | $(LOCAL_BINDIR)/sha1sum | sed 's/ .*//' | $(USR_BINDIR)/xxd -r -p | $(USR_BINDIR)/base64 > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.sha1.observed
+ @echo "[STARCH] extracting signature of bzip2-backed archive..."
+ @$(OSX_BINDIR)/$(VERSION)/bin/unstarch --sha1-signature $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.sha1.expected
+ @echo "[STARCH] signing gzip-backed archive..."
+ @$(OSX_BINDIR)/$(VERSION)/bin/unstarch --list-json-no-trailing-newline $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch | $(LOCAL_BINDIR)/sha1sum | sed 's/ .*//' | $(USR_BINDIR)/xxd -r -p | $(USR_BINDIR)/base64 > $(RESULTS)/random_$(VERSIONP)_gzip.starch.sha1.observed
+ @echo "[STARCH] extracting signature of gzip-backed archive..."
+ @$(OSX_BINDIR)/$(VERSION)/bin/unstarch --sha1-signature $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch > $(RESULTS)/random_$(VERSIONP)_gzip.starch.sha1.expected
+endif
+ @echo "[STARCH] comparing bzip2 signatures..."
+ @diff --brief $(RESULTS)/random_$(VERSIONP)_bzip2.starch.sha1.expected $(RESULTS)/random_$(VERSIONP)_bzip2.starch.sha1.observed
+ @echo "[STARCH] no differences!"
+ @echo "[STARCH] comparing gzip signatures..."
+ @diff --brief $(RESULTS)/random_$(VERSIONP)_gzip.starch.sha1.expected $(RESULTS)/random_$(VERSIONP)_gzip.starch.sha1.observed
+ @echo "[STARCH] no differences!"
+ @echo "[STARCH] all done!"
+
+metadata_element_count_all_chromosomes_integrity_test: results_dir
+ @echo "[STARCH] checking metadata element count (all chromosomes) integrity..."
+ifeq ($(PLATFORM),Linux)
+ @echo "[STARCH] extracting all-chromosome element count of bzip2-backed archive..."
+ @$(LINUX_BINDIR)/$(VERSION)/bin/unstarch --elements $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.elements.all.observed
+ @echo "[STARCH] computing all-chromosome element count of bzip2-backed archive..."
+ @$(LINUX_BINDIR)/$(VERSION)/bin/unstarch $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch | wc -l | awk '{sub(/^[ \t]+/, ""); print}' - > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.elements.all.expected
+ @echo "[STARCH] comparing all-chromosome element counts of bzip2-backed archive..."
+ @diff --brief $(RESULTS)/random_$(VERSIONP)_bzip2.starch.elements.all.expected $(RESULTS)/random_$(VERSIONP)_bzip2.starch.elements.all.observed
+ @echo "[STARCH] extracting all-chromosome element count of gzip-backed archive..."
+ @$(LINUX_BINDIR)/$(VERSION)/bin/unstarch --elements $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch > $(RESULTS)/random_$(VERSIONP)_gzip.starch.elements.all.observed
+ @echo "[STARCH] computing all-chromosome element count of gzip-backed archive..."
+ @$(LINUX_BINDIR)/$(VERSION)/bin/unstarch $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch | wc -l | awk '{sub(/^[ \t]+/, ""); print}' - > $(RESULTS)/random_$(VERSIONP)_gzip.starch.elements.all.expected
+ @echo "[STARCH] comparing all-chromosome element counts of gzip-backed archive..."
+ @diff --brief $(RESULTS)/random_$(VERSIONP)_gzip.starch.elements.all.expected $(RESULTS)/random_$(VERSIONP)_gzip.starch.elements.all.observed
+ @echo "[STARCH] no differences!"
+endif
+ifeq ($(PLATFORM),Darwin)
+ @echo "[STARCH] extracting all-chromosome element count of bzip2-backed archive..."
+ @$(OSX_BINDIR)/$(VERSION)/bin/unstarch --elements $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.elements.all.observed
+ @echo "[STARCH] computing all-chromosome element count of bzip2-backed archive..."
+ @$(OSX_BINDIR)/$(VERSION)/bin/unstarch $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch | wc -l | gawk '{sub(/^[ \t]+/, ""); print}' - > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.elements.all.expected
+ @echo "[STARCH] comparing all-chromosome element counts of bzip2-backed archive..."
+ @diff --brief $(RESULTS)/random_$(VERSIONP)_bzip2.starch.elements.all.expected $(RESULTS)/random_$(VERSIONP)_bzip2.starch.elements.all.observed
+ @echo "[STARCH] extracting all-chromosome element count of gzip-backed archive..."
+ @$(OSX_BINDIR)/$(VERSION)/bin/unstarch --elements $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch > $(RESULTS)/random_$(VERSIONP)_gzip.starch.elements.all.observed
+ @echo "[STARCH] computing all-chromosome element count of gzip-backed archive..."
+ @$(OSX_BINDIR)/$(VERSION)/bin/unstarch $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch | wc -l | gawk '{sub(/^[ \t]+/, ""); print}' - > $(RESULTS)/random_$(VERSIONP)_gzip.starch.elements.all.expected
+ @echo "[STARCH] comparing all-chromosome element counts of gzip-backed archive..."
+ @diff --brief $(RESULTS)/random_$(VERSIONP)_gzip.starch.elements.all.expected $(RESULTS)/random_$(VERSIONP)_gzip.starch.elements.all.observed
+ @echo "[STARCH] no differences!"
+endif
+ @echo "[STARCH] all done!"
+
+metadata_element_count_random_chromosome_integrity_test: results_dir
+ @echo "[STARCH] checking metadata element count (random chromosome) integrity..."
+ifeq ($(PLATFORM),Linux)
+ @echo "[STARCH] picking random chromosome..."
+ @$(shell $(LINUX_BINDIR)/$(VERSION)/bin/unstarch --list-chr $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch | sort -R | head -n1 > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.elements.random_chromosome)
+ @echo "[STARCH] extracting random-chromosome element count of bzip2-backed archive..."
+ @$(LINUX_BINDIR)/$(VERSION)/bin/unstarch $(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.elements.random_chromosome) --elements $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.elements.$(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.elements.random_chromosome).observed
+ @echo "[STARCH] computing random-chromosome element count of bzip2-backed archive..."
+ @$(LINUX_BINDIR)/$(VERSION)/bin/unstarch $(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.elements.random_chromosome) $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch | wc -l | awk '{sub(/^[ \t]+/, ""); print}' - > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.elements.$(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.elements.random_chromosome).expected
+ @echo "[STARCH] comparing random-chromosome element counts of bzip2-backed archive..."
+ @diff --brief $(RESULTS)/random_$(VERSIONP)_bzip2.starch.elements.$(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.elements.random_chromosome).expected $(RESULTS)/random_$(VERSIONP)_bzip2.starch.elements.$(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.elements.random_chromosome).observed
+ @echo "[STARCH] picking random chromosome..."
+ @$(shell $(LINUX_BINDIR)/$(VERSION)/bin/unstarch --list-chr $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch | sort -R | head -n1 > $(RESULTS)/random_$(VERSIONP)_gzip.starch.elements.random_chromosome)
+ @echo "[STARCH] extracting random-chromosome element count of gzip-backed archive..."
+ @$(LINUX_BINDIR)/$(VERSION)/bin/unstarch $(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.elements.random_chromosome) --elements $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch > $(RESULTS)/random_$(VERSIONP)_gzip.starch.elements.$(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.elements.random_chromosome).observed
+ @echo "[STARCH] computing random-chromosome element count of gzip-backed archive..."
+ @$(LINUX_BINDIR)/$(VERSION)/bin/unstarch $(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.elements.random_chromosome) $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch | wc -l | awk '{sub(/^[ \t]+/, ""); print}' - > $(RESULTS)/random_$(VERSIONP)_gzip.starch.elements.$(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.elements.random_chromosome).expected
+ @echo "[STARCH] comparing random-chromosome element counts of gzip-backed archive..."
+ @diff --brief $(RESULTS)/random_$(VERSIONP)_gzip.starch.elements.$(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.elements.random_chromosome).expected $(RESULTS)/random_$(VERSIONP)_gzip.starch.elements.$(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.elements.random_chromosome).observed
+ @echo "[STARCH] no differences!"
+endif
+ifeq ($(PLATFORM),Darwin)
+ @echo "[STARCH] picking random chromosome..."
+ @$(shell $(OSX_BINDIR)/$(VERSION)/bin/unstarch --list-chr $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch | gsort -R | head -n1 > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.elements.random_chromosome)
+ @echo "[STARCH] extracting random-chromosome element count of bzip2-backed archive..."
+ @$(OSX_BINDIR)/$(VERSION)/bin/unstarch $(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.elements.random_chromosome) --elements $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.elements.$(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.elements.random_chromosome).observed
+ @echo "[STARCH] computing random-chromosome element count of bzip2-backed archive..."
+ @$(OSX_BINDIR)/$(VERSION)/bin/unstarch $(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.elements.random_chromosome) $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch | wc -l | gawk '{sub(/^[ \t]+/, ""); print}' - > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.elements.$(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.elements.random_chromosome).expected
+ @echo "[STARCH] comparing random-chromosome element counts of bzip2-backed archive..."
+ @diff --brief $(RESULTS)/random_$(VERSIONP)_bzip2.starch.elements.$(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.elements.random_chromosome).expected $(RESULTS)/random_$(VERSIONP)_bzip2.starch.elements.$(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.elements.random_chromosome).observed
+ @echo "[STARCH] picking random chromosome..."
+ @$(shell $(OSX_BINDIR)/$(VERSION)/bin/unstarch --list-chr $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch | gsort -R | head -n1 > $(RESULTS)/random_$(VERSIONP)_gzip.starch.elements.random_chromosome)
+ @echo "[STARCH] extracting random-chromosome element count of gzip-backed archive..."
+ @$(OSX_BINDIR)/$(VERSION)/bin/unstarch $(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.elements.random_chromosome) --elements $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch > $(RESULTS)/random_$(VERSIONP)_gzip.starch.elements.$(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.elements.random_chromosome).observed
+ @echo "[STARCH] computing random-chromosome element count of gzip-backed archive..."
+ @$(OSX_BINDIR)/$(VERSION)/bin/unstarch $(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.elements.random_chromosome) $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch | wc -l | gawk '{sub(/^[ \t]+/, ""); print}' - > $(RESULTS)/random_$(VERSIONP)_gzip.starch.elements.$(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.elements.random_chromosome).expected
+ @echo "[STARCH] comparing random-chromosome element counts of gzip-backed archive..."
+ @diff --brief $(RESULTS)/random_$(VERSIONP)_gzip.starch.elements.$(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.elements.random_chromosome).expected $(RESULTS)/random_$(VERSIONP)_gzip.starch.elements.$(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.elements.random_chromosome).observed
+ @echo "[STARCH] no differences!"
+endif
+
+# ---------------------------------------------
+
+metadata_base_count_all_chromosomes_integrity_test: results_dir
+ @echo "[STARCH] checking metadata base count (all chromosome) integrity..."
+ifeq ($(PLATFORM),Linux)
+ @echo "[STARCH] extracting all-chromosome bases count of bzip2-backed archive..."
+ @$(LINUX_BINDIR)/$(VERSION)/bin/unstarch --bases $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.bases.all.observed
+ @echo "[STARCH] computing all-chromosome bases count of bzip2-backed archive..."
+ @$(LINUX_BINDIR)/$(VERSION)/bin/unstarch $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch | $(SRC)/count_bases.pl > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.bases.all.expected
+ @echo "[STARCH] comparing all-chromosome bases counts of bzip2-backed archive..."
+ @diff --brief $(RESULTS)/random_$(VERSIONP)_bzip2.starch.bases.all.expected $(RESULTS)/random_$(VERSIONP)_bzip2.starch.bases.all.observed
+ @echo "[STARCH] extracting all-chromosome bases count of gzip-backed archive..."
+ @$(LINUX_BINDIR)/$(VERSION)/bin/unstarch --bases $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch > $(RESULTS)/random_$(VERSIONP)_gzip.starch.bases.all.observed
+ @echo "[STARCH] computing all-chromosome bases count of gzip-backed archive..."
+ @$(LINUX_BINDIR)/$(VERSION)/bin/unstarch $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch | $(SRC)/count_bases.pl > $(RESULTS)/random_$(VERSIONP)_gzip.starch.bases.all.expected
+ @echo "[STARCH] comparing all-chromosome bases counts of gzip-backed archive..."
+ @diff --brief $(RESULTS)/random_$(VERSIONP)_gzip.starch.bases.all.expected $(RESULTS)/random_$(VERSIONP)_gzip.starch.bases.all.observed
+ @echo "[STARCH] no differences!"
+endif
+ifeq ($(PLATFORM),Darwin)
+ @echo "[STARCH] extracting all-chromosome bases count of bzip2-backed archive..."
+ @$(OSX_BINDIR)/$(VERSION)/bin/unstarch --bases $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.bases.all.observed
+ @echo "[STARCH] computing all-chromosome bases count of bzip2-backed archive..."
+ @$(OSX_BINDIR)/$(VERSION)/bin/unstarch $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch | $(SRC)/count_bases.pl > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.bases.all.expected
+ @echo "[STARCH] comparing all-chromosome bases counts of bzip2-backed archive..."
+ @diff --brief $(RESULTS)/random_$(VERSIONP)_bzip2.starch.bases.all.expected $(RESULTS)/random_$(VERSIONP)_bzip2.starch.bases.all.observed
+ @echo "[STARCH] extracting all-chromosome bases count of gzip-backed archive..."
+ @$(OSX_BINDIR)/$(VERSION)/bin/unstarch --bases $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch > $(RESULTS)/random_$(VERSIONP)_gzip.starch.bases.all.observed
+ @echo "[STARCH] computing all-chromosome bases count of gzip-backed archive..."
+ @$(OSX_BINDIR)/$(VERSION)/bin/unstarch $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch | $(SRC)/count_bases.pl > $(RESULTS)/random_$(VERSIONP)_gzip.starch.bases.all.expected
+ @echo "[STARCH] comparing all-chromosome bases counts of gzip-backed archive..."
+ @diff --brief $(RESULTS)/random_$(VERSIONP)_gzip.starch.bases.all.expected $(RESULTS)/random_$(VERSIONP)_gzip.starch.bases.all.observed
+ @echo "[STARCH] no differences!"
+endif
+
+metadata_base_count_random_chromosome_integrity_test: results_dir
+ @echo "[STARCH] checking metadata base count (random chromosome) integrity..."
+ifeq ($(PLATFORM),Linux)
+ @echo "[STARCH] picking random chromosome..."
+ @$(shell $(LINUX_BINDIR)/$(VERSION)/bin/unstarch --list-chr $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch | sort -R | head -n1 > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.bases.random_chromosome)
+ @echo "[STARCH] extracting random-chromosome base count of bzip2-backed archive..."
+ @$(LINUX_BINDIR)/$(VERSION)/bin/unstarch $(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.bases.random_chromosome) --bases $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.bases.random_chromosome).observed
+ @echo "[STARCH] computing random-chromosome base count of bzip2-backed archive..."
+ @$(LINUX_BINDIR)/$(VERSION)/bin/unstarch $(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.bases.random_chromosome) $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch | $(SRC)/count_bases.pl > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.bases.random_chromosome).expected
+ @echo "[STARCH] comparing random-chromosome base counts of bzip2-backed archive..."
+ @diff --brief $(RESULTS)/random_$(VERSIONP)_bzip2.starch.bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.bases.random_chromosome).expected $(RESULTS)/random_$(VERSIONP)_bzip2.starch.bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.bases.random_chromosome).observed
+ @echo "[STARCH] picking random chromosome..."
+ @$(shell $(LINUX_BINDIR)/$(VERSION)/bin/unstarch --list-chr $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch | sort -R | head -n1 > $(RESULTS)/random_$(VERSIONP)_gzip.starch.bases.random_chromosome)
+ @echo "[STARCH] extracting random-chromosome base count of gzip-backed archive..."
+ @$(LINUX_BINDIR)/$(VERSION)/bin/unstarch $(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.bases.random_chromosome) --bases $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch > $(RESULTS)/random_$(VERSIONP)_gzip.starch.bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.bases.random_chromosome).observed
+ @echo "[STARCH] computing random-chromosome base count of gzip-backed archive..."
+ @$(LINUX_BINDIR)/$(VERSION)/bin/unstarch $(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.bases.random_chromosome) $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch | $(SRC)/count_bases.pl > $(RESULTS)/random_$(VERSIONP)_gzip.starch.bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.bases.random_chromosome).expected
+ @echo "[STARCH] comparing random-chromosome base counts of gzip-backed archive..."
+ @diff --brief $(RESULTS)/random_$(VERSIONP)_gzip.starch.bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.bases.random_chromosome).expected $(RESULTS)/random_$(VERSIONP)_gzip.starch.bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.bases.random_chromosome).observed
+ @echo "[STARCH] no differences!"
+endif
+ifeq ($(PLATFORM),Darwin)
+ @echo "[STARCH] picking random chromosome..."
+ @$(shell $(OSX_BINDIR)/$(VERSION)/bin/unstarch --list-chr $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch | gsort -R | head -n1 > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.bases.random_chromosome)
+ @echo "[STARCH] extracting random-chromosome base count of bzip2-backed archive..."
+ @$(OSX_BINDIR)/$(VERSION)/bin/unstarch $(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.bases.random_chromosome) --bases $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.bases.random_chromosome).observed
+ @echo "[STARCH] computing random-chromosome base count of bzip2-backed archive..."
+ @$(OSX_BINDIR)/$(VERSION)/bin/unstarch $(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.bases.random_chromosome) $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch | $(SRC)/count_bases.pl > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.bases.random_chromosome).expected
+ @echo "[STARCH] comparing random-chromosome base counts of bzip2-backed archive..."
+ @diff --brief $(RESULTS)/random_$(VERSIONP)_bzip2.starch.bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.bases.random_chromosome).expected $(RESULTS)/random_$(VERSIONP)_bzip2.starch.bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.bases.random_chromosome).observed
+ @echo "[STARCH] picking random chromosome..."
+ @$(shell $(OSX_BINDIR)/$(VERSION)/bin/unstarch --list-chr $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch | gsort -R | head -n1 > $(RESULTS)/random_$(VERSIONP)_gzip.starch.bases.random_chromosome)
+ @echo "[STARCH] extracting random-chromosome base count of gzip-backed archive..."
+ @$(OSX_BINDIR)/$(VERSION)/bin/unstarch $(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.bases.random_chromosome) --bases $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch > $(RESULTS)/random_$(VERSIONP)_gzip.starch.bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.bases.random_chromosome).observed
+ @echo "[STARCH] computing random-chromosome base count of gzip-backed archive..."
+ @$(OSX_BINDIR)/$(VERSION)/bin/unstarch $(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.bases.random_chromosome) $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch | $(SRC)/count_bases.pl > $(RESULTS)/random_$(VERSIONP)_gzip.starch.bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.bases.random_chromosome).expected
+ @echo "[STARCH] comparing random-chromosome base counts of gzip-backed archive..."
+ @diff --brief $(RESULTS)/random_$(VERSIONP)_gzip.starch.bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.bases.random_chromosome).expected $(RESULTS)/random_$(VERSIONP)_gzip.starch.bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.bases.random_chromosome).observed
+ @echo "[STARCH] no differences!"
+endif
+
+# ---------------------------------------------
+
+metadata_unique_base_count_all_chromosomes_integrity_test: results_dir
+ @echo "[STARCH] checking metadata unique base count (all chromosome) integrity..."
+ifeq ($(PLATFORM),Linux)
+ @echo "[STARCH] extracting all-chromosome unique bases count of bzip2-backed archive..."
+ @$(LINUX_BINDIR)/$(VERSION)/bin/unstarch --bases-uniq $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.unique_bases.all.observed
+ @echo "[STARCH] computing all-chromosome unique bases count of bzip2-backed archive..."
+ @$(LINUX_BINDIR)/$(VERSION)/bin/unstarch $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch | $(SRC)/count_unique_bases.pl > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.unique_bases.all.expected
+ @echo "[STARCH] comparing all-chromosome unique bases counts of bzip2-backed archive..."
+ @diff --brief $(RESULTS)/random_$(VERSIONP)_bzip2.starch.unique_bases.all.expected $(RESULTS)/random_$(VERSIONP)_bzip2.starch.unique_bases.all.observed
+ @echo "[STARCH] extracting all-chromosome unique bases count of gzip-backed archive..."
+ @$(LINUX_BINDIR)/$(VERSION)/bin/unstarch --bases-uniq $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch > $(RESULTS)/random_$(VERSIONP)_gzip.starch.unique_bases.all.observed
+ @echo "[STARCH] computing all-chromosome unique bases count of gzip-backed archive..."
+ @$(LINUX_BINDIR)/$(VERSION)/bin/unstarch $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch | $(SRC)/count_unique_bases.pl > $(RESULTS)/random_$(VERSIONP)_gzip.starch.unique_bases.all.expected
+ @echo "[STARCH] comparing all-chromosome unique bases counts of gzip-backed archive..."
+ @diff --brief $(RESULTS)/random_$(VERSIONP)_gzip.starch.unique_bases.all.expected $(RESULTS)/random_$(VERSIONP)_gzip.starch.unique_bases.all.observed
+ @echo "[STARCH] no differences!"
+endif
+ifeq ($(PLATFORM),Darwin)
+ @echo "[STARCH] extracting all-chromosome unique bases count of bzip2-backed archive..."
+ @$(OSX_BINDIR)/$(VERSION)/bin/unstarch --bases-uniq $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.unique_bases.all.observed
+ @echo "[STARCH] computing all-chromosome unique bases count of bzip2-backed archive..."
+ @$(OSX_BINDIR)/$(VERSION)/bin/unstarch $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch | $(SRC)/count_unique_bases.pl > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.unique_bases.all.expected
+ @echo "[STARCH] comparing all-chromosome unique bases counts of bzip2-backed archive..."
+ @diff --brief $(RESULTS)/random_$(VERSIONP)_bzip2.starch.unique_bases.all.expected $(RESULTS)/random_$(VERSIONP)_bzip2.starch.unique_bases.all.observed
+ @echo "[STARCH] extracting all-chromosome unique bases count of gzip-backed archive..."
+ @$(OSX_BINDIR)/$(VERSION)/bin/unstarch --bases-uniq $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch > $(RESULTS)/random_$(VERSIONP)_gzip.starch.unique_bases.all.observed
+ @echo "[STARCH] computing all-chromosome unique bases count of gzip-backed archive..."
+ @$(OSX_BINDIR)/$(VERSION)/bin/unstarch $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch | $(SRC)/count_unique_bases.pl > $(RESULTS)/random_$(VERSIONP)_gzip.starch.unique_bases.all.expected
+ @echo "[STARCH] comparing all-chromosome unique bases counts of gzip-backed archive..."
+ @diff --brief $(RESULTS)/random_$(VERSIONP)_gzip.starch.unique_bases.all.expected $(RESULTS)/random_$(VERSIONP)_gzip.starch.unique_bases.all.observed
+ @echo "[STARCH] no differences!"
+endif
+
+metadata_unique_base_count_random_chromosome_integrity_test: results_dir
+ @echo "[STARCH] checking metadata unique base count (random chromosome) integrity..."
+ifeq ($(PLATFORM),Linux)
+ @echo "[STARCH] picking random chromosome..."
+ @$(shell $(LINUX_BINDIR)/$(VERSION)/bin/unstarch --list-chr $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch | sort -R | head -n1 > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.unique_bases.random_chromosome)
+ @echo "[STARCH] extracting random-chromosome unique base count of bzip2-backed archive..."
+ @$(LINUX_BINDIR)/$(VERSION)/bin/unstarch $(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.unique_bases.random_chromosome) --bases-uniq $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.unique_bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.unique_bases.random_chromosome).observed
+ @echo "[STARCH] computing random-chromosome unique base count of bzip2-backed archive..."
+ @$(LINUX_BINDIR)/$(VERSION)/bin/unstarch $(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.unique_bases.random_chromosome) $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch | $(SRC)/count_unique_bases.pl > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.unique_bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.unique_bases.random_chromosome).expected
+ @echo "[STARCH] comparing random-chromosome unique base counts of bzip2-backed archive..."
+ @diff --brief $(RESULTS)/random_$(VERSIONP)_bzip2.starch.unique_bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.unique_bases.random_chromosome).expected $(RESULTS)/random_$(VERSIONP)_bzip2.starch.unique_bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.unique_bases.random_chromosome).observed
+ @echo "[STARCH] picking random chromosome..."
+ @$(shell $(LINUX_BINDIR)/$(VERSION)/bin/unstarch --list-chr $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch | sort -R | head -n1 > $(RESULTS)/random_$(VERSIONP)_gzip.starch.unique_bases.random_chromosome)
+ @echo "[STARCH] extracting random-chromosome unique base count of gzip-backed archive..."
+ @$(LINUX_BINDIR)/$(VERSION)/bin/unstarch $(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.unique_bases.random_chromosome) --bases-uniq $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch > $(RESULTS)/random_$(VERSIONP)_gzip.starch.unique_bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.unique_bases.random_chromosome).observed
+ @echo "[STARCH] computing random-chromosome unique base count of gzip-backed archive..."
+ @$(LINUX_BINDIR)/$(VERSION)/bin/unstarch $(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.unique_bases.random_chromosome) $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch | $(SRC)/count_unique_bases.pl > $(RESULTS)/random_$(VERSIONP)_gzip.starch.unique_bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.unique_bases.random_chromosome).expected
+ @echo "[STARCH] comparing random-chromosome unique base counts of gzip-backed archive..."
+ @diff --brief $(RESULTS)/random_$(VERSIONP)_gzip.starch.unique_bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.unique_bases.random_chromosome).expected $(RESULTS)/random_$(VERSIONP)_gzip.starch.unique_bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.unique_bases.random_chromosome).observed
+ @echo "[STARCH] no differences!"
+endif
+ifeq ($(PLATFORM),Darwin)
+ @echo "[STARCH] picking random chromosome..."
+ @$(shell $(OSX_BINDIR)/$(VERSION)/bin/unstarch --list-chr $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch | gsort -R | head -n1 > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.unique_bases.random_chromosome)
+ @echo "[STARCH] extracting random-chromosome base count of bzip2-backed archive..."
+ @$(OSX_BINDIR)/$(VERSION)/bin/unstarch $(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.unique_bases.random_chromosome) --bases-uniq $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.unique_bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.unique_bases.random_chromosome).observed
+ @echo "[STARCH] computing random-chromosome base count of bzip2-backed archive..."
+ @$(OSX_BINDIR)/$(VERSION)/bin/unstarch $(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.unique_bases.random_chromosome) $(COMPEXTRES_DIR)/random_$(VERSIONP)_bzip2.starch | $(SRC)/count_unique_bases.pl > $(RESULTS)/random_$(VERSIONP)_bzip2.starch.unique_bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.unique_bases.random_chromosome).expected
+ @echo "[STARCH] comparing random-chromosome base counts of bzip2-backed archive..."
+ @diff --brief $(RESULTS)/random_$(VERSIONP)_bzip2.starch.unique_bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.unique_bases.random_chromosome).expected $(RESULTS)/random_$(VERSIONP)_bzip2.starch.unique_bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_bzip2.starch.unique_bases.random_chromosome).observed
+ @echo "[STARCH] picking random chromosome..."
+ @$(shell $(OSX_BINDIR)/$(VERSION)/bin/unstarch --list-chr $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch | gsort -R | head -n1 > $(RESULTS)/random_$(VERSIONP)_gzip.starch.unique_bases.random_chromosome)
+ @echo "[STARCH] extracting random-chromosome base count of gzip-backed archive..."
+ @$(OSX_BINDIR)/$(VERSION)/bin/unstarch $(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.unique_bases.random_chromosome) --bases-uniq $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch > $(RESULTS)/random_$(VERSIONP)_gzip.starch.unique_bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.unique_bases.random_chromosome).observed
+ @echo "[STARCH] computing random-chromosome base count of gzip-backed archive..."
+ @$(OSX_BINDIR)/$(VERSION)/bin/unstarch $(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.unique_bases.random_chromosome) $(COMPEXTRES_DIR)/random_$(VERSIONP)_gzip.starch | $(SRC)/count_unique_bases.pl > $(RESULTS)/random_$(VERSIONP)_gzip.starch.unique_bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.unique_bases.random_chromosome).expected
+ @echo "[STARCH] comparing random-chromosome base counts of gzip-backed archive..."
+ @diff --brief $(RESULTS)/random_$(VERSIONP)_gzip.starch.unique_bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.unique_bases.random_chromosome).expected $(RESULTS)/random_$(VERSIONP)_gzip.starch.unique_bases.$(shell cat $(RESULTS)/random_$(VERSIONP)_gzip.starch.unique_bases.random_chromosome).observed
+ @echo "[STARCH] no differences!"
+endif
+
+# ---------------------------------------------
+
+clean:
+ @echo "[STARCH] cleaning up intermediate starch archives..."
+ @rm -rf $(RESULTS)
+ @echo "[STARCH] all clean!"
diff --git a/applications/bed/starch/test/metadata_integrity/src/count_bases.pl b/applications/bed/starch/test/metadata_integrity/src/count_bases.pl
new file mode 100755
index 0000000..0a82a72
--- /dev/null
+++ b/applications/bed/starch/test/metadata_integrity/src/count_bases.pl
@@ -0,0 +1,13 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+
+my $cnt = 0;
+while (<>) {
+ chomp;
+ my ($chr, $start, $stop, $remainder) = split("\t", $_);
+ $cnt += ($stop - $start);
+}
+
+print STDOUT "$cnt\n";
diff --git a/applications/bed/starch/test/metadata_integrity/src/count_unique_bases.pl b/applications/bed/starch/test/metadata_integrity/src/count_unique_bases.pl
new file mode 100755
index 0000000..1effe91
--- /dev/null
+++ b/applications/bed/starch/test/metadata_integrity/src/count_unique_bases.pl
@@ -0,0 +1,40 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+use Data::Dumper;
+
+my $cnt = 0;
+my $line = -1;
+my ($currChr, $currStart, $currStop, $currRemainder, $prevChr, $prevStart, $prevStop, $prevRemainder);
+while (<>) {
+ chomp;
+ ($currChr, $currStart, $currStop, $currRemainder) = split("\t", $_);
+ $line++;
+ if ($line == 0) {
+ $prevChr = $currChr;
+ $prevStop = $currStop;
+ $cnt = $currStop - $currStart;
+ next;
+ }
+ else {
+ if ($currChr eq $prevChr) {
+ if ($prevStop <= $currStart) {
+ $cnt += ($currStop - $currStart);
+ }
+ elsif ($prevStop < $currStop) {
+ $cnt += ($currStop - $prevStop);
+ }
+ if ($currStop > $prevStop) {
+ $prevStop = $currStop;
+ }
+ }
+ else {
+ $cnt += ($currStop - $currStart);
+ $prevChr = $currChr;
+ $prevStop = $currStop;
+ }
+ }
+}
+
+print STDOUT "$cnt\n";
diff --git a/applications/bed/starch/test/nested_and_duplicate_elements/data/test_input.bed b/applications/bed/starch/test/nested_and_duplicate_elements/data/test_input.bed
new file mode 100644
index 0000000..19353a0
--- /dev/null
+++ b/applications/bed/starch/test/nested_and_duplicate_elements/data/test_input.bed
@@ -0,0 +1,13 @@
+chr1 1 2
+chr1 2 10
+chr1 2 12
+chr1 4 12
+chr1 4 12
+chr1 10 30
+chr2 30 40
+chr2 30 50
+chr2 35 40
+chr2 500 600
+chr3 40 120
+chr3 45 100
+chr3 45 120
diff --git a/applications/bed/starch/test/nested_and_duplicate_elements/makefile b/applications/bed/starch/test/nested_and_duplicate_elements/makefile
new file mode 100644
index 0000000..6248225
--- /dev/null
+++ b/applications/bed/starch/test/nested_and_duplicate_elements/makefile
@@ -0,0 +1,92 @@
+#
+# makefile
+#
+
+TMP = /tmp
+USER := $(shell whoami)
+THIS_DIR := ${shell pwd}
+RESULTS = ${TMP}/${USER}/starch_regression_test/results/nested_and_duplicate_elements
+SRC = ${THIS_DIR}/src
+BED_INPUT = ${THIS_DIR}/data/test_input.bed
+STARCH_BZIP2 = ${RESULTS}/test_output.bz2starch
+STARCH_GZIP = ${RESULTS}/test_output.gzstarch
+PLATFORM := ${shell uname}
+BIN_DIR = ${THIS_DIR}/../binaries
+LINUX_BINDIR = ${BIN_DIR}/linux
+OSX_BINDIR = ${BIN_DIR}/osx
+VERSION = v2.1
+VERSIONP = 2p1p0
+
+all: archives tests
+
+archives:
+ if [ ! -d ${RESULTS} ]; then mkdir -p ${RESULTS}; fi
+ @echo "[STARCH] making bzip2-starch archive with v2.1 or greater metadata..."
+ifeq (${PLATFORM},Linux)
+ if [ ! -s ${STARCH_BZIP2} ]; then ${LINUX_BINDIR}/${VERSION}/bin/starch --bzip2 ${BED_INPUT} > ${STARCH_BZIP2}; fi
+endif
+ifeq (${PLATFORM},Darwin)
+ if [ ! -s ${STARCH_BZIP2} ]; then ${OSX_BINDIR}/${VERSION}/bin/starch --bzip2 ${BED_INPUT} > ${STARCH_BZIP2}; fi
+endif
+ @echo "[STARCH] making gzip-starch archive with v2.1 or greater metadata..."
+ifeq (${PLATFORM},Linux)
+ if [ ! -s ${STARCH_GZIP} ]; then ${LINUX_BINDIR}/${VERSION}/bin/starch --gzip ${BED_INPUT} > ${STARCH_GZIP}; fi
+endif
+ifeq (${PLATFORM},Darwin)
+ if [ ! -s ${STARCH_GZIP} ]; then ${OSX_BINDIR}/${VERSION}/bin/starch --gzip ${BED_INPUT} > ${STARCH_GZIP}; fi
+endif
+ @echo "[STARCH] made archives!"
+
+tests: nested_tests duplicate_tests
+ @echo "[STARCH] nested- and duplicate-element tests passed!"
+
+nested_tests: nested_tests_bzip2 nested_tests_gzip
+ @echo "[STARCH] nested element tests passed!"
+
+nested_tests_bzip2:
+ @echo "[STARCH] testing (bzip2-starch) nested elements..."
+ifeq (${PLATFORM},Linux)
+ @${SRC}/hasNestedElements.py ${LINUX_BINDIR}/${VERSION}/bin/unstarch ${STARCH_BZIP2}
+endif
+ifeq (${PLATFORM},Darwin)
+ @${SRC}/hasNestedElements.py ${OSX_BINDIR}/${VERSION}/bin/unstarch ${STARCH_BZIP2}
+endif
+ @echo "[STARCH] (bzip2-starch) nested element tests passed!"
+
+nested_tests_gzip:
+ @echo "[STARCH] testing (gzip-starch) nested elements..."
+ifeq (${PLATFORM},Linux)
+ @${SRC}/hasNestedElements.py ${LINUX_BINDIR}/${VERSION}/bin/unstarch ${STARCH_GZIP}
+endif
+ifeq (${PLATFORM},Darwin)
+ @${SRC}/hasNestedElements.py ${OSX_BINDIR}/${VERSION}/bin/unstarch ${STARCH_GZIP}
+endif
+ @echo "[STARCH] (gzip-starch) nested element tests passed!"
+
+duplicate_tests: duplicate_tests_bzip2 duplicate_tests_gzip
+ @echo "[STARCH] duplicate element tests passed!"
+
+duplicate_tests_bzip2:
+ @echo "[STARCH] testing (bzip2-starch) duplicate elements..."
+ifeq (${PLATFORM},Linux)
+ @${SRC}/hasDuplicateElements.py ${LINUX_BINDIR}/${VERSION}/bin/unstarch ${STARCH_BZIP2}
+endif
+ifeq (${PLATFORM},Darwin)
+ @${SRC}/hasDuplicateElements.py ${OSX_BINDIR}/${VERSION}/bin/unstarch ${STARCH_BZIP2}
+endif
+ @echo "[STARCH] (bzip2-starch) duplicate element tests passed!"
+
+duplicate_tests_gzip:
+ @echo "[STARCH] testing (gzip-starch) duplicate elements..."
+ifeq (${PLATFORM},Linux)
+ @${SRC}/hasDuplicateElements.py ${LINUX_BINDIR}/${VERSION}/bin/unstarch ${STARCH_GZIP}
+endif
+ifeq (${PLATFORM},Darwin)
+ @${SRC}/hasDuplicateElements.py ${OSX_BINDIR}/${VERSION}/bin/unstarch ${STARCH_GZIP}
+endif
+ @echo "[STARCH] (gzip-starch) duplicate element tests passed!"
+
+clean:
+ @echo "[STARCH] cleaning up intermediate starch archives..."
+ @rm -rf ${RESULTS}
+ @echo "[STARCH] all clean!"
diff --git a/applications/bed/starch/test/nested_and_duplicate_elements/src/hasDuplicateElements.py b/applications/bed/starch/test/nested_and_duplicate_elements/src/hasDuplicateElements.py
new file mode 100755
index 0000000..a89262d
--- /dev/null
+++ b/applications/bed/starch/test/nested_and_duplicate_elements/src/hasDuplicateElements.py
@@ -0,0 +1,44 @@
+#!/usr/bin/env python
+
+import os, sys, subprocess
+
+unstarch = sys.argv[1]
+archive = sys.argv[2]
+flag = "--has-duplicate"
+
+chr1_proc = subprocess.Popen([unstarch, 'chr1', flag, archive], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+chr1_proc_out, chr1_proc_err = chr1_proc.communicate()
+chr1_proc_out.strip('\n')
+if int(chr1_proc_out) == 0:
+ print "[STARCH] ERROR: chr1 is reporting it doesn't have a duplicate element, but it does!"
+ sys.exit(os.EX_USAGE)
+
+chr2_proc = subprocess.Popen([unstarch, 'chr2', flag, archive], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+chr2_proc_out, chr2_proc_err = chr2_proc.communicate()
+chr2_proc_out.strip('\n')
+if int(chr2_proc_out) == 1:
+ print "[STARCH] ERROR: chr2 is reporting it has a duplicate element, but it doesn't!"
+ sys.exit(os.EX_USAGE)
+
+chr3_proc = subprocess.Popen([unstarch, 'chr3', flag, archive], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+chr3_proc_out, chr3_proc_err = chr3_proc.communicate()
+chr3_proc_out.strip('\n')
+if int(chr3_proc_out) == 1:
+ print "[STARCH] ERROR: chr3 is reporting it has a duplicate element, but it doesn't!"
+ sys.exit(os.EX_USAGE)
+
+chrAll_proc = subprocess.Popen([unstarch, 'all', flag, archive], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+chrAll_proc_out, chrAll_proc_err = chrAll_proc.communicate()
+chrAll_proc_out.strip('\n')
+if int(chrAll_proc_out) == 0:
+ print "[STARCH] ERROR: 'all' chromosome usage is reporting the archive doesn't have a duplicate element, but there is a duplicate element in chr1!"
+ sys.exit(os.EX_USAGE)
+
+chrOmit_proc = subprocess.Popen([unstarch, flag, archive], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+chrOmit_proc_out, chrOmit_proc_err = chrOmit_proc.communicate()
+chrOmit_proc_out.strip('\n')
+if int(chrOmit_proc_out) == 0:
+ print "[STARCH] ERROR: omitted chromosome usage is reporting the archive doesn't have a duplicate element, but there is a duplicate element in chr1!"
+ sys.exit(os.EX_USAGE)
+
+sys.exit(os.EX_OK)
diff --git a/applications/bed/starch/test/nested_and_duplicate_elements/src/hasNestedElements.py b/applications/bed/starch/test/nested_and_duplicate_elements/src/hasNestedElements.py
new file mode 100755
index 0000000..ece307b
--- /dev/null
+++ b/applications/bed/starch/test/nested_and_duplicate_elements/src/hasNestedElements.py
@@ -0,0 +1,44 @@
+#!/usr/bin/env python
+
+import os, sys, subprocess
+
+unstarch = sys.argv[1]
+archive = sys.argv[2]
+flag = "--has-nested"
+
+chr1_proc = subprocess.Popen([unstarch, 'chr1', flag, archive], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+chr1_proc_out, chr1_proc_err = chr1_proc.communicate()
+chr1_proc_out.strip('\n')
+if int(chr1_proc_out) == 1:
+ print "[STARCH] ERROR: chr1 is reporting it has a nested element, but it doesn't have one!"
+ sys.exit(os.EX_USAGE)
+
+chr2_proc = subprocess.Popen([unstarch, 'chr2', flag, archive], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+chr2_proc_out, chr2_proc_err = chr2_proc.communicate()
+chr2_proc_out.strip('\n')
+if int(chr2_proc_out) == 0:
+ print "[STARCH] ERROR: chr2 is reporting it doesn't have a nested element, but it does!"
+ sys.exit(os.EX_USAGE)
+
+chr3_proc = subprocess.Popen([unstarch, 'chr3', flag, archive], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+chr3_proc_out, chr3_proc_err = chr3_proc.communicate()
+chr3_proc_out.strip('\n')
+if int(chr3_proc_out) == 0:
+ print "[STARCH] ERROR: chr3 is reporting it doesn't have a nested element, but it does!"
+ sys.exit(os.EX_USAGE)
+
+chrAll_proc = subprocess.Popen([unstarch, 'all', flag, archive], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+chrAll_proc_out, chrAll_proc_err = chrAll_proc.communicate()
+chrAll_proc_out.strip('\n')
+if int(chrAll_proc_out) == 0:
+ print "[STARCH] ERROR: 'all' chromosome usage is reporting the archive doesn't have a nested element, but there are nested elements in chr2 and chr3!"
+ sys.exit(os.EX_USAGE)
+
+chrOmit_proc = subprocess.Popen([unstarch, flag, archive], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+chrOmit_proc_out, chrOmit_proc_err = chrOmit_proc.communicate()
+chrOmit_proc_out.strip('\n')
+if int(chrOmit_proc_out) == 0:
+ print "[STARCH] ERROR: omitted chromosome usage is reporting the archive doesn't have a nested element, but there are nested elements in chr2 and chr3!"
+ sys.exit(os.EX_USAGE)
+
+sys.exit(os.EX_OK)
diff --git a/applications/bed/starch/test/original_data/data/fimo.combined.xfac.1e-5.parsed.1M.starch b/applications/bed/starch/test/original_data/data/fimo.combined.xfac.1e-5.parsed.1M.starch
new file mode 100644
index 0000000..f68c1c3
Binary files /dev/null and b/applications/bed/starch/test/original_data/data/fimo.combined.xfac.1e-5.parsed.1M.starch differ
diff --git a/applications/bed/starch/test/original_data/makefile b/applications/bed/starch/test/original_data/makefile
new file mode 100644
index 0000000..230be14
--- /dev/null
+++ b/applications/bed/starch/test/original_data/makefile
@@ -0,0 +1,30 @@
+#
+# makefile
+#
+
+TMP = /tmp
+USER := $(shell whoami)
+SRC = src
+DATADIR := ${TMP}/${USER}/starch_regression_test/data
+
+# 1M element file
+ELEMENTS = 1000000
+
+all: random.bed
+
+random.bed:
+ @echo "[STARCH] making ${ELEMENTS}-element, randomly-generated BED file..."
+ @mkdir -p ${DATADIR}
+ @test -s ${DATADIR}/$@ || ${SRC}/make_unsorted_random_bed_file.sh --elements=${ELEMENTS} | ${SRC}/jumble_duplicate_coords.pl | sort-bed - > ${DATADIR}/$@
+
+#
+# tip: one can use
+#
+# $ awk '{key=$1":"$2":"$3; if (a[key]) { print "dup"; }}' ${DATADIR}/random.bed
+#
+# to verify there are no duplicates
+#
+
+clean:
+ @echo "[STARCH] removing randomly-generated BED data (if present)..."
+ @rm -rf ${DATADIR}/random.bed
diff --git a/applications/bed/starch/test/original_data/src/jumble_duplicate_coords.pl b/applications/bed/starch/test/original_data/src/jumble_duplicate_coords.pl
new file mode 100755
index 0000000..6c54e96
--- /dev/null
+++ b/applications/bed/starch/test/original_data/src/jumble_duplicate_coords.pl
@@ -0,0 +1,39 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+use Data::Dumper;
+
+#
+# input: sorted BED with possible duplicate coordinates
+# output: possibly modified BED with nonredundant coordinates
+#
+
+my $max_coord = 100000000;
+
+my $input;
+while(<>) {
+ chomp;
+ my ($chr, $start, $stop, $id, $score, $strand) = split("\t", $_);
+ my $key = "$chr:$start:$stop";
+ my $value = "$_\n";
+ if (defined $input->{$key}) {
+ my $randomStart = 0;
+ my $randomStop = 1;
+ my $test_key = $key;
+ while (defined $input->{$test_key}) {
+ $randomStart = int(rand($max_coord));
+ $randomStop = $randomStart + int(rand($max_coord));
+ $test_key = "$chr:$randomStart:$randomStop";
+ }
+ my $new_value = join("\t", ($chr, $randomStart, $randomStop, $id, $score, $strand))."\n";
+ $input->{$test_key} = $new_value;
+ }
+ else {
+ $input->{$key} = $value;
+ }
+}
+
+foreach my $posKey (keys %{$input}) {
+ print $input->{$posKey};
+}
diff --git a/applications/bed/starch/test/original_data/src/make_unsorted_random_bed_file.sh b/applications/bed/starch/test/original_data/src/make_unsorted_random_bed_file.sh
new file mode 100755
index 0000000..4feee92
--- /dev/null
+++ b/applications/bed/starch/test/original_data/src/make_unsorted_random_bed_file.sh
@@ -0,0 +1,30 @@
+#!/usr/bin/env bash
+
+for i in $*
+do
+case $i in
+ -e=*|--elements=*)
+ ELEMENTS=`echo $i | sed 's/[-a-zA-Z0-9]*=//'`
+ ;;
+ *)
+ # unknown option
+ ;;
+esac
+done
+
+set -e
+if [ -z "${ELEMENTS}" ]; then echo "ERROR: Set the --elements=n variable"; exit; fi
+
+mysql -N --user=genome --host=genome-mysql.cse.ucsc.edu -A -D hg19 << EOF
+ SET @rank:=0;
+ SELECT DISTINCT chrom as chromcol,
+ @start:=ROUND(RAND()*(size-100)) as startcol,
+ @start+ROUND(RAND()*100)+1 as stopcol,
+ CONCAT("id-", at rank:=@rank+1) as idcol,
+ ROUND(RAND()*1000) as scorecol,
+ IF(RAND()<0.5,"+","-") asstrandcol
+ FROM
+ chromInfo, kgXref
+ LIMIT ${ELEMENTS}
+
+EOF
diff --git a/applications/bed/starch/test/unsortable_elements/data/test_start.bed b/applications/bed/starch/test/unsortable_elements/data/test_start.bed
new file mode 100644
index 0000000..513fecf
--- /dev/null
+++ b/applications/bed/starch/test/unsortable_elements/data/test_start.bed
@@ -0,0 +1,13 @@
+chr1 1 2
+chr1 2 10
+chr1 2 12
+chr1 4 12
+chr1 4 12
+chr1 10 30
+chr2 35 40
+chr2 30 40
+chr2 30 50
+chr2 500 600
+chr3 40 120
+chr3 45 100
+chr3 45 120
diff --git a/applications/bed/starch/test/unsortable_elements/data/test_stop.bed b/applications/bed/starch/test/unsortable_elements/data/test_stop.bed
new file mode 100644
index 0000000..f132061
--- /dev/null
+++ b/applications/bed/starch/test/unsortable_elements/data/test_stop.bed
@@ -0,0 +1,13 @@
+chr1 1 2
+chr1 2 10
+chr1 2 12
+chr1 4 12
+chr1 4 12
+chr1 10 30
+chr2 30 50
+chr2 30 40
+chr2 35 40
+chr2 500 600
+chr3 40 120
+chr3 45 100
+chr3 45 120
diff --git a/applications/bed/starch/test/unsortable_elements/makefile b/applications/bed/starch/test/unsortable_elements/makefile
new file mode 100644
index 0000000..af9671a
--- /dev/null
+++ b/applications/bed/starch/test/unsortable_elements/makefile
@@ -0,0 +1,76 @@
+#
+# makefile
+#
+
+TMP = /tmp
+USER := $(shell whoami)
+THIS_DIR := ${shell pwd}
+RESULTS = ${TMP}/${USER}/starch_regression_test/results/unsortable_elements
+SRC = ${THIS_DIR}/src
+START_INPUT = ${THIS_DIR}/data/test_start.bed
+STOP_INPUT = ${THIS_DIR}/data/test_stop.bed
+STARCH_BZIP2 = ${RESULTS}/test_output.bz2starch
+STARCH_GZIP = ${RESULTS}/test_output.gzstarch
+PLATFORM := ${shell uname}
+BIN_DIR = ${THIS_DIR}/../binaries
+LINUX_BINDIR = ${BIN_DIR}/linux
+OSX_BINDIR = ${BIN_DIR}/osx
+VERSION = v2.1
+VERSIONP = 2p1p0
+
+all: tests
+
+tests: tests_bzip2 tests_gzip
+
+tests_bzip2: tests_start_bzip2 tests_stop_bzip2
+
+tests_start_bzip2:
+ @echo "[STARCH] testing (bzip2-starch) start elements..."
+ if [ ! -d ${RESULTS} ]; then mkdir -p ${RESULTS}; fi
+ifeq (${PLATFORM},Linux)
+ @${SRC}/isUnsortable.py ${LINUX_BINDIR}/${VERSION}/bin/starch ${STARCH_BZIP2} ${START_INPUT} > ${RESULTS}/start_bz2.starch
+endif
+ifeq (${PLATFORM},Darwin)
+ @${SRC}/isUnsortable.py ${OSX_BINDIR}/${VERSION}/bin/starch ${STARCH_BZIP2} ${START_INPUT} > ${RESULTS}/start_bz2.starch
+endif
+ @echo "[STARCH] (bzip2-starch) element start test passed!"
+
+tests_stop_bzip2:
+ @echo "[STARCH] testing (bzip2-starch) stop elements..."
+ if [ ! -d ${RESULTS} ]; then mkdir -p ${RESULTS}; fi
+ifeq (${PLATFORM},Linux)
+ @${SRC}/isUnsortable.py ${LINUX_BINDIR}/${VERSION}/bin/starch ${STARCH_BZIP2} ${STOP_INPUT} > ${RESULTS}/stop_bz2.starch
+endif
+ifeq (${PLATFORM},Darwin)
+ @${SRC}/isUnsortable.py ${OSX_BINDIR}/${VERSION}/bin/starch ${STARCH_BZIP2} ${STOP_INPUT} > ${RESULTS}/stop_bz2.starch
+endif
+ @echo "[STARCH] (bzip2-starch) element stop test passed!"
+
+tests_gzip: tests_start_gzip tests_stop_gzip
+
+tests_start_gzip:
+ @echo "[STARCH] testing (gzip-starch) start elements..."
+ if [ ! -d ${RESULTS} ]; then mkdir -p ${RESULTS}; fi
+ifeq (${PLATFORM},Linux)
+ @${SRC}/isUnsortable.py ${LINUX_BINDIR}/${VERSION}/bin/starch ${STARCH_GZIP} ${START_INPUT} > ${RESULTS}/start_gz.starch
+endif
+ifeq (${PLATFORM},Darwin)
+ @${SRC}/isUnsortable.py ${OSX_BINDIR}/${VERSION}/bin/starch ${STARCH_GZIP} ${START_INPUT} > ${RESULTS}/start_gz.starch
+endif
+ @echo "[STARCH] (gzip-starch) element start test passed!"
+
+tests_stop_gzip:
+ @echo "[STARCH] testing (gzip-starch) stop elements..."
+ if [ ! -d ${RESULTS} ]; then mkdir -p ${RESULTS}; fi
+ifeq (${PLATFORM},Linux)
+ @${SRC}/isUnsortable.py ${LINUX_BINDIR}/${VERSION}/bin/starch ${STARCH_GZIP} ${STOP_INPUT} > ${RESULTS}/stop_gz.starch
+endif
+ifeq (${PLATFORM},Darwin)
+ @${SRC}/isUnsortable.py ${OSX_BINDIR}/${VERSION}/bin/starch ${STARCH_GZIP} ${STOP_INPUT} > ${RESULTS}/stop_gz.starch
+endif
+ @echo "[STARCH] (gzip-starch) element stop test passed!"
+
+clean:
+ @echo "[STARCH] cleaning up intermediate stuff..."
+ @rm -rf ${RESULTS}
+ @echo "[STARCH] all clean!"
diff --git a/applications/bed/starch/test/unsortable_elements/src/isUnsortable.py b/applications/bed/starch/test/unsortable_elements/src/isUnsortable.py
new file mode 100755
index 0000000..f176746
--- /dev/null
+++ b/applications/bed/starch/test/unsortable_elements/src/isUnsortable.py
@@ -0,0 +1,18 @@
+#!/usr/bin/env python
+
+import os, sys, subprocess
+
+starch = sys.argv[1]
+flag = sys.argv[2]
+bed = sys.argv[3]
+
+chrAll_proc = subprocess.Popen([starch, flag, bed], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+chrAll_proc_out, chrAll_proc_err = chrAll_proc.communicate()
+chrAll_proc_out.strip('\n')
+if int(chrAll_proc.returncode) == 0:
+ sys.stderr.write("[STARCH] ERROR: Was able to make an archive, but this process should have exited with an error: " + str(chrAll_proc.returncode) + "\n")
+ sys.exit(os.EX_USAGE)
+else:
+ sys.stderr.write("[STARCH] Successful test (i.e., starch exited with an error): " + str(chrAll_proc.returncode) + "\n")
+
+sys.exit(os.EX_OK)
diff --git a/applications/bed/starch/test/updating/makefile b/applications/bed/starch/test/updating/makefile
new file mode 100644
index 0000000..efd92df
--- /dev/null
+++ b/applications/bed/starch/test/updating/makefile
@@ -0,0 +1,211 @@
+#
+# makefile
+#
+
+TMP = /tmp
+USER := $(shell whoami)
+THIS_DIR := ${shell pwd}
+RESULTS = ${TMP}/${USER}/starch_regression_test/results/updating
+SRC = ${THIS_DIR}/src
+COMPEXT_DIR = ${THIS_DIR}/../compression_and_extraction
+COMPEXTRES_DIR = ${TMP}/${USER}/starch_regression_test/results/compression_and_extraction
+ORIGINAL_DIR = ${THIS_DIR}/../original_data
+ORIGINAL_DATA = ${TMP}/${USER}/starch_regression_test/data
+BED_INPUT = ${ORIGINAL_DATA}/data/random.bed
+FIMO_INPUT = ${ORIGINAL_DIR}/data/fimo.combined.xfac.1e-5.parsed.1M.starch
+PLATFORM := ${shell uname}
+BIN_DIR = ${THIS_DIR}/../binaries
+LINUX_BINDIR = ${BIN_DIR}/linux
+OSX_BINDIR = ${BIN_DIR}/osx
+VERSION = v2.1
+VERSIONP = 2p1p0
+
+all: archives tests
+
+archives: compext_archives
+
+tests: random_updating_tests fimo_updating_tests
+ @echo "[STARCH] random- and FIMO-based archive update tests passed!"
+
+compext_archives:
+ @echo "[STARCH] making compression/extraction archives..."
+ @test -s ${COMPEXTRES_DIR} || make -C ${COMPEXT_DIR} -f makefile archives
+ @echo "[STARCH] archives are ready!"
+
+bed_input:
+ @test -s ${BED_INPUT} || make -C ${ORIGINAL_DIR} -f makefile random.bed
+
+results_dir:
+ @echo "[STARCH] making results directory..."
+ @mkdir -p ${RESULTS}
+
+# ---------------------------------------------
+
+fimo_updating_tests: results_dir
+ @echo "[STARCH] extracting v1.2 (bzip2-ed) FIMO archive..."
+ifeq (${PLATFORM},Linux)
+ if [ ! -s ${RESULTS}/fimo.bzip2.expected ]; then ${LINUX_BINDIR}/${VERSION}/bin/unstarch ${FIMO_INPUT} > ${RESULTS}/fimo.bzip2.expected; fi
+endif
+ifeq (${PLATFORM},Darwin)
+ if [ ! -s ${RESULTS}/fimo.bzip2.expected ]; then ${OSX_BINDIR}/${VERSION}/bin/unstarch ${FIMO_INPUT} > ${RESULTS}/fimo.bzip2.expected; fi
+endif
+ @echo "[STARCH] making v1.2 (gzip) FIMO archive from bzip2-ed data..."
+ifeq (${PLATFORM},Linux)
+ if [ ! -s ${RESULTS}/fimo.gzip.starch ]; then ${LINUX_BINDIR}/v1.2/bin/starch --gzip ${RESULTS}/fimo.bzip2.expected > ${RESULTS}/fimo.gzip.starch; fi
+endif
+ifeq (${PLATFORM},Darwin)
+ if [ ! -s ${RESULTS}/fimo.gzip.starch ]; then ${OSX_BINDIR}/v1.2/bin/starch --gzip ${RESULTS}/fimo.bzip2.expected > ${RESULTS}/fimo.gzip.starch; fi
+endif
+ @echo "[STARCH] extracting v1.2 (gzip-ed) FIMO archive..."
+ifeq (${PLATFORM},Linux)
+ if [ ! -s ${RESULTS}/fimo.gzip.expected ]; then ${LINUX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/fimo.gzip.starch > ${RESULTS}/fimo.gzip.expected; fi
+endif
+ifeq (${PLATFORM},Darwin)
+ if [ ! -s ${RESULTS}/fimo.gzip.expected ]; then ${OSX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/fimo.gzip.starch > ${RESULTS}/fimo.gzip.expected; fi
+endif
+ @echo "[STARCH] taking v1.2 (gzip) FIMO archive and starchcat-ing it to new v2.1 bzip2 and gzip archives..."
+ifeq (${PLATFORM},Linux)
+ if [ ! -s ${RESULTS}/fimo_1p2p0_gzip_to_${VERSIONP}_bzip2.starch ]; then ${LINUX_BINDIR}/${VERSION}/bin/starchcat --bzip2 ${RESULTS}/fimo.gzip.starch > ${RESULTS}/fimo_1p2p0_gzip_to_${VERSIONP}_bzip2.starch; fi
+ if [ ! -s ${RESULTS}/fimo_1p2p0_gzip_to_${VERSIONP}_gzip.starch ]; then ${LINUX_BINDIR}/${VERSION}/bin/starchcat --gzip ${RESULTS}/fimo.gzip.starch > ${RESULTS}/fimo_1p2p0_gzip_to_${VERSIONP}_gzip.starch; fi
+endif
+ifeq (${PLATFORM},Darwin)
+ if [ ! -s ${RESULTS}/fimo_1p2p0_gzip_to_${VERSIONP}_bzip2.starch ]; then ${OSX_BINDIR}/${VERSION}/bin/starchcat --bzip2 ${RESULTS}/fimo.gzip.starch > ${RESULTS}/fimo_1p2p0_gzip_to_${VERSIONP}_bzip2.starch; fi
+ if [ ! -s ${RESULTS}/fimo_1p2p0_gzip_to_${VERSIONP}_gzip.starch ]; then ${OSX_BINDIR}/${VERSION}/bin/starchcat --gzip ${RESULTS}/fimo.gzip.starch > ${RESULTS}/fimo_1p2p0_gzip_to_${VERSIONP}_gzip.starch; fi
+endif
+ @echo "[STARCH] extracting (gzip) v1.2-to-v2.1 bzip2 and gzip FIMO archive..."
+ifeq (${PLATFORM},Linux)
+ if [ ! -s ${RESULTS}/fimo.gzip_to_bzip2.observed ]; then ${LINUX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/fimo_1p2p0_gzip_to_${VERSIONP}_bzip2.starch > ${RESULTS}/fimo.gzip_to_bzip2.observed; fi
+ if [ ! -s ${RESULTS}/fimo.gzip_to_gzip.observed ]; then ${LINUX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/fimo_1p2p0_gzip_to_${VERSIONP}_gzip.starch > ${RESULTS}/fimo.gzip_to_gzip.observed; fi
+endif
+ifeq (${PLATFORM},Darwin)
+ if [ ! -s ${RESULTS}/fimo.gzip_to_bzip2.observed ]; then ${OSX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/fimo_1p2p0_gzip_to_${VERSIONP}_bzip2.starch > ${RESULTS}/fimo.gzip_to_bzip2.observed; fi
+ if [ ! -s ${RESULTS}/fimo.gzip_to_gzip.observed ]; then ${OSX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/fimo_1p2p0_gzip_to_${VERSIONP}_gzip.starch > ${RESULTS}/fimo.gzip_to_gzip.observed; fi
+endif
+ @echo "[STARCH] diff-ing v1.2 (gzip, extracted) and v1.2-to-v2.1 (bzip2, observed)..."
+ diff --brief ${RESULTS}/fimo.gzip.expected ${RESULTS}/fimo.gzip_to_bzip2.observed
+ @echo "[STARCH] diff-ing v1.2 (gzip, extracted) and v1.2-to-v2.1 (gzip, observed)..."
+ diff --brief ${RESULTS}/fimo.gzip.expected ${RESULTS}/fimo.gzip_to_gzip.observed
+ @echo "[STARCH] taking v1.2 (bzip2) FIMO archive and starchcat-ing it to new v2.1 bzip2 and gzip archives..."
+ifeq (${PLATFORM},Linux)
+ if [ ! -s ${RESULTS}/fimo_1p2p0_bzip2_to_${VERSIONP}_bzip2.starch ]; then ${LINUX_BINDIR}/${VERSION}/bin/starchcat --bzip2 ${FIMO_INPUT} > ${RESULTS}/fimo_1p2p0_bzip2_to_${VERSIONP}_bzip2.starch; fi
+ if [ ! -s ${RESULTS}/fimo_1p2p0_bzip2_to_${VERSIONP}_gzip.starch ]; then ${LINUX_BINDIR}/${VERSION}/bin/starchcat --gzip ${FIMO_INPUT} > ${RESULTS}/fimo_1p2p0_bzip2_to_${VERSIONP}_gzip.starch; fi
+endif
+ifeq (${PLATFORM},Darwin)
+ if [ ! -s ${RESULTS}/fimo_1p2p0_bzip2_to_${VERSIONP}_bzip2.starch ]; then ${OSX_BINDIR}/${VERSION}/bin/starchcat --bzip2 ${FIMO_INPUT} > ${RESULTS}/fimo_1p2p0_bzip2_to_${VERSIONP}_bzip2.starch; fi
+ if [ ! -s ${RESULTS}/fimo_1p2p0_bzip2_to_${VERSIONP}_gzip.starch ]; then ${OSX_BINDIR}/${VERSION}/bin/starchcat --gzip ${FIMO_INPUT} > ${RESULTS}/fimo_1p2p0_bzip2_to_${VERSIONP}_gzip.starch; fi
+endif
+ @echo "[STARCH] extracting (bzip2) v1.2-to-v2.1 bzip2 and gzip FIMO archive..."
+ifeq (${PLATFORM},Linux)
+ if [ ! -s ${RESULTS}/fimo.bzip2_to_bzip2.observed ]; then ${LINUX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/fimo_1p2p0_bzip2_to_${VERSIONP}_bzip2.starch > ${RESULTS}/fimo.bzip2_to_bzip2.observed; fi
+ if [ ! -s ${RESULTS}/fimo.bzip2_to_gzip.observed ]; then ${LINUX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/fimo_1p2p0_bzip2_to_${VERSIONP}_gzip.starch > ${RESULTS}/fimo.bzip2_to_gzip.observed; fi
+endif
+ifeq (${PLATFORM},Darwin)
+ if [ ! -s ${RESULTS}/fimo.bzip2_to_bzip2.observed ]; then ${OSX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/fimo_1p2p0_bzip2_to_${VERSIONP}_bzip2.starch > ${RESULTS}/fimo.bzip2_to_bzip2.observed; fi
+ if [ ! -s ${RESULTS}/fimo.bzip2_to_gzip.observed ]; then ${OSX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/fimo_1p2p0_bzip2_to_${VERSIONP}_gzip.starch > ${RESULTS}/fimo.bzip2_to_gzip.observed; fi
+endif
+ @echo "[STARCH] diff-ing v1.2 (bzip2, extracted) and v1.2-to-v2.1 (bzip2, observed)..."
+ diff --brief ${RESULTS}/fimo.bzip2.expected ${RESULTS}/fimo.bzip2_to_bzip2.observed
+ diff --brief ${RESULTS}/fimo.bzip2.expected ${RESULTS}/fimo.bzip2_to_gzip.observed
+ @echo "[STARCH] no differences found!"
+
+random_updating_tests: compext_archives results_dir
+ @echo "[STARCH] taking v1.2 archive and starchcat-ing it to a new v2.1 archive..."
+ifeq (${PLATFORM},Linux)
+ ${LINUX_BINDIR}/${VERSION}/bin/starchcat --bzip2 ${COMPEXTRES_DIR}/random_1p2p0_bzip2.starch > ${RESULTS}/random_1p2p0_bzip2_to_${VERSIONP}_bzip2.starch
+ ${LINUX_BINDIR}/${VERSION}/bin/starchcat --gzip ${COMPEXTRES_DIR}/random_1p2p0_bzip2.starch > ${RESULTS}/random_1p2p0_bzip2_to_${VERSIONP}_gzip.starch
+ ${LINUX_BINDIR}/${VERSION}/bin/starchcat --bzip2 ${COMPEXTRES_DIR}/random_1p2p0_gzip.starch > ${RESULTS}/random_1p2p0_gzip_to_${VERSIONP}_bzip2.starch
+ ${LINUX_BINDIR}/${VERSION}/bin/starchcat --gzip ${COMPEXTRES_DIR}/random_1p2p0_gzip.starch > ${RESULTS}/random_1p2p0_gzip_to_${VERSIONP}_gzip.starch
+endif
+ifeq (${PLATFORM},Darwin)
+ ${OSX_BINDIR}/${VERSION}/bin/starchcat --bzip2 ${COMPEXTRES_DIR}/random_1p2p0_bzip2.starch > ${RESULTS}/random_1p2p0_bzip2_to_${VERSIONP}_bzip2.starch
+ ${OSX_BINDIR}/${VERSION}/bin/starchcat --gzip ${COMPEXTRES_DIR}/random_1p2p0_bzip2.starch > ${RESULTS}/random_1p2p0_bzip2_to_${VERSIONP}_gzip.starch
+ ${OSX_BINDIR}/${VERSION}/bin/starchcat --bzip2 ${COMPEXTRES_DIR}/random_1p2p0_gzip.starch > ${RESULTS}/random_1p2p0_gzip_to_${VERSIONP}_bzip2.starch
+ ${OSX_BINDIR}/${VERSION}/bin/starchcat --gzip ${COMPEXTRES_DIR}/random_1p2p0_gzip.starch > ${RESULTS}/random_1p2p0_gzip_to_${VERSIONP}_gzip.starch
+endif
+ @echo "[STARCH] taking v1.5 archive and starchcat-ing it to a new v2.1 archive"
+ifeq (${PLATFORM},Linux)
+ ${LINUX_BINDIR}/${VERSION}/bin/starchcat --bzip2 ${COMPEXTRES_DIR}/random_1p5p0_bzip2.starch > ${RESULTS}/random_1p5p0_bzip2_to_${VERSIONP}_bzip2.starch
+ ${LINUX_BINDIR}/${VERSION}/bin/starchcat --gzip ${COMPEXTRES_DIR}/random_1p5p0_bzip2.starch > ${RESULTS}/random_1p5p0_bzip2_to_${VERSIONP}_gzip.starch
+ ${LINUX_BINDIR}/${VERSION}/bin/starchcat --bzip2 ${COMPEXTRES_DIR}/random_1p5p0_gzip.starch > ${RESULTS}/random_1p5p0_gzip_to_${VERSIONP}_bzip2.starch
+ ${LINUX_BINDIR}/${VERSION}/bin/starchcat --gzip ${COMPEXTRES_DIR}/random_1p5p0_gzip.starch > ${RESULTS}/random_1p5p0_gzip_to_${VERSIONP}_gzip.starch
+endif
+ifeq (${PLATFORM},Darwin)
+ ${OSX_BINDIR}/${VERSION}/bin/starchcat --bzip2 ${COMPEXTRES_DIR}/random_1p5p0_bzip2.starch > ${RESULTS}/random_1p5p0_bzip2_to_${VERSIONP}_bzip2.starch
+ ${OSX_BINDIR}/${VERSION}/bin/starchcat --gzip ${COMPEXTRES_DIR}/random_1p5p0_bzip2.starch > ${RESULTS}/random_1p5p0_bzip2_to_${VERSIONP}_gzip.starch
+ ${OSX_BINDIR}/${VERSION}/bin/starchcat --bzip2 ${COMPEXTRES_DIR}/random_1p5p0_gzip.starch > ${RESULTS}/random_1p5p0_gzip_to_${VERSIONP}_bzip2.starch
+ ${OSX_BINDIR}/${VERSION}/bin/starchcat --gzip ${COMPEXTRES_DIR}/random_1p5p0_gzip.starch > ${RESULTS}/random_1p5p0_gzip_to_${VERSIONP}_gzip.starch
+endif
+ @echo "[STARCH] taking v2.0 archive and starchcat-ing it to a new v2.1 archive"
+ifeq (${PLATFORM},Linux)
+ ${LINUX_BINDIR}/${VERSION}/bin/starchcat --bzip2 ${COMPEXTRES_DIR}/random_2p0p0_bzip2.starch > ${RESULTS}/random_2p0p0_bzip2_to_${VERSIONP}_bzip2.starch
+ ${LINUX_BINDIR}/${VERSION}/bin/starchcat --gzip ${COMPEXTRES_DIR}/random_2p0p0_bzip2.starch > ${RESULTS}/random_2p0p0_bzip2_to_${VERSIONP}_gzip.starch
+ ${LINUX_BINDIR}/${VERSION}/bin/starchcat --bzip2 ${COMPEXTRES_DIR}/random_2p0p0_gzip.starch > ${RESULTS}/random_2p0p0_gzip_to_${VERSIONP}_bzip2.starch
+ ${LINUX_BINDIR}/${VERSION}/bin/starchcat --gzip ${COMPEXTRES_DIR}/random_2p0p0_gzip.starch > ${RESULTS}/random_2p0p0_gzip_to_${VERSIONP}_gzip.starch
+endif
+ifeq (${PLATFORM},Darwin)
+ ${OSX_BINDIR}/${VERSION}/bin/starchcat --bzip2 ${COMPEXTRES_DIR}/random_2p0p0_bzip2.starch > ${RESULTS}/random_2p0p0_bzip2_to_${VERSIONP}_bzip2.starch
+ ${OSX_BINDIR}/${VERSION}/bin/starchcat --gzip ${COMPEXTRES_DIR}/random_2p0p0_bzip2.starch > ${RESULTS}/random_2p0p0_bzip2_to_${VERSIONP}_gzip.starch
+ ${OSX_BINDIR}/${VERSION}/bin/starchcat --bzip2 ${COMPEXTRES_DIR}/random_2p0p0_gzip.starch > ${RESULTS}/random_2p0p0_gzip_to_${VERSIONP}_bzip2.starch
+ ${OSX_BINDIR}/${VERSION}/bin/starchcat --gzip ${COMPEXTRES_DIR}/random_2p0p0_gzip.starch > ${RESULTS}/random_2p0p0_gzip_to_${VERSIONP}_gzip.starch
+endif
+ @echo "[STARCH] diff-comparing elements from v1.2 and v2.1 archives"
+ifeq (${PLATFORM},Linux)
+ ${LINUX_BINDIR}/${VERSION}/bin/unstarch ${COMPEXTRES_DIR}/random_1p2p0_bzip2.starch > ${RESULTS}/random_1p2p0_bzip2.bed
+ ${LINUX_BINDIR}/${VERSION}/bin/unstarch ${COMPEXTRES_DIR}/random_1p2p0_gzip.starch > ${RESULTS}/random_1p2p0_gzip.bed
+ ${LINUX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/random_1p2p0_bzip2_to_${VERSIONP}_bzip2.starch | diff --brief - ${RESULTS}/random_1p2p0_bzip2.bed
+ ${LINUX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/random_1p2p0_gzip_to_${VERSIONP}_bzip2.starch | diff --brief - ${RESULTS}/random_1p2p0_gzip.bed
+ ${LINUX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/random_1p2p0_bzip2_to_${VERSIONP}_gzip.starch | diff --brief - ${RESULTS}/random_1p2p0_bzip2.bed
+ ${LINUX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/random_1p2p0_gzip_to_${VERSIONP}_gzip.starch | diff --brief - ${RESULTS}/random_1p2p0_gzip.bed
+endif
+ifeq (${PLATFORM},Darwin)
+ ${OSX_BINDIR}/${VERSION}/bin/unstarch ${COMPEXTRES_DIR}/random_1p2p0_bzip2.starch > ${RESULTS}/random_1p2p0_bzip2.bed
+ ${OSX_BINDIR}/${VERSION}/bin/unstarch ${COMPEXTRES_DIR}/random_1p2p0_gzip.starch > ${RESULTS}/random_1p2p0_gzip.bed
+ ${OSX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/random_1p2p0_bzip2_to_${VERSIONP}_bzip2.starch | diff --brief - ${RESULTS}/random_1p2p0_bzip2.bed
+ ${OSX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/random_1p2p0_gzip_to_${VERSIONP}_bzip2.starch | diff --brief - ${RESULTS}/random_1p2p0_gzip.bed
+ ${OSX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/random_1p2p0_bzip2_to_${VERSIONP}_gzip.starch | diff --brief - ${RESULTS}/random_1p2p0_bzip2.bed
+ ${OSX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/random_1p2p0_gzip_to_${VERSIONP}_gzip.starch | diff --brief - ${RESULTS}/random_1p2p0_gzip.bed
+endif
+ @echo "[STARCH] no differences found!"
+ @echo "[STARCH] diff-comparing elements from v1.5 and v2.1 archives"
+ifeq (${PLATFORM},Linux)
+ ${LINUX_BINDIR}/${VERSION}/bin/unstarch ${COMPEXTRES_DIR}/random_1p5p0_bzip2.starch > ${RESULTS}/random_1p5p0_bzip2.bed
+ ${LINUX_BINDIR}/${VERSION}/bin/unstarch ${COMPEXTRES_DIR}/random_1p5p0_gzip.starch > ${RESULTS}/random_1p5p0_gzip.bed
+ ${LINUX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/random_1p5p0_bzip2_to_${VERSIONP}_bzip2.starch | diff --brief - ${RESULTS}/random_1p5p0_bzip2.bed
+ ${LINUX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/random_1p5p0_gzip_to_${VERSIONP}_bzip2.starch | diff --brief - ${RESULTS}/random_1p5p0_gzip.bed
+ ${LINUX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/random_1p5p0_bzip2_to_${VERSIONP}_gzip.starch | diff --brief - ${RESULTS}/random_1p5p0_bzip2.bed
+ ${LINUX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/random_1p5p0_gzip_to_${VERSIONP}_gzip.starch | diff --brief - ${RESULTS}/random_1p5p0_gzip.bed
+endif
+ifeq (${PLATFORM},Darwin)
+ ${OSX_BINDIR}/${VERSION}/bin/unstarch ${COMPEXTRES_DIR}/random_1p5p0_bzip2.starch > ${RESULTS}/random_1p5p0_bzip2.bed
+ ${OSX_BINDIR}/${VERSION}/bin/unstarch ${COMPEXTRES_DIR}/random_1p5p0_gzip.starch > ${RESULTS}/random_1p5p0_gzip.bed
+ ${OSX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/random_1p5p0_bzip2_to_${VERSIONP}_bzip2.starch | diff --brief - ${RESULTS}/random_1p5p0_bzip2.bed
+ ${OSX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/random_1p5p0_gzip_to_${VERSIONP}_bzip2.starch | diff --brief - ${RESULTS}/random_1p5p0_gzip.bed
+ ${OSX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/random_1p5p0_bzip2_to_${VERSIONP}_gzip.starch | diff --brief - ${RESULTS}/random_1p5p0_bzip2.bed
+ ${OSX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/random_1p5p0_gzip_to_${VERSIONP}_gzip.starch | diff --brief - ${RESULTS}/random_1p5p0_gzip.bed
+endif
+ @echo "[STARCH] no differences found!"
+ @echo "[STARCH] diff-comparing elements from v2.0 and v2.1 archives"
+ifeq (${PLATFORM},Linux)
+ ${LINUX_BINDIR}/${VERSION}/bin/unstarch ${COMPEXTRES_DIR}/random_2p0p0_bzip2.starch > ${RESULTS}/random_2p0p0_bzip2.bed
+ ${LINUX_BINDIR}/${VERSION}/bin/unstarch ${COMPEXTRES_DIR}/random_2p0p0_gzip.starch > ${RESULTS}/random_2p0p0_gzip.bed
+ ${LINUX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/random_2p0p0_bzip2_to_${VERSIONP}_bzip2.starch | diff --brief - ${RESULTS}/random_2p0p0_bzip2.bed
+ ${LINUX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/random_2p0p0_gzip_to_${VERSIONP}_bzip2.starch | diff --brief - ${RESULTS}/random_2p0p0_gzip.bed
+ ${LINUX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/random_2p0p0_bzip2_to_${VERSIONP}_gzip.starch | diff --brief - ${RESULTS}/random_2p0p0_bzip2.bed
+ ${LINUX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/random_2p0p0_gzip_to_${VERSIONP}_gzip.starch | diff --brief - ${RESULTS}/random_2p0p0_gzip.bed
+endif
+ifeq (${PLATFORM},Darwin)
+ ${OSX_BINDIR}/${VERSION}/bin/unstarch ${COMPEXTRES_DIR}/random_2p0p0_bzip2.starch > ${RESULTS}/random_2p0p0_bzip2.bed
+ ${OSX_BINDIR}/${VERSION}/bin/unstarch ${COMPEXTRES_DIR}/random_2p0p0_gzip.starch > ${RESULTS}/random_2p0p0_gzip.bed
+ ${OSX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/random_2p0p0_bzip2_to_${VERSIONP}_bzip2.starch | diff --brief - ${RESULTS}/random_2p0p0_bzip2.bed
+ ${OSX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/random_2p0p0_gzip_to_${VERSIONP}_bzip2.starch | diff --brief - ${RESULTS}/random_2p0p0_gzip.bed
+ ${OSX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/random_2p0p0_bzip2_to_${VERSIONP}_gzip.starch | diff --brief - ${RESULTS}/random_2p0p0_bzip2.bed
+ ${OSX_BINDIR}/${VERSION}/bin/unstarch ${RESULTS}/random_2p0p0_gzip_to_${VERSIONP}_gzip.starch | diff --brief - ${RESULTS}/random_2p0p0_gzip.bed
+endif
+ @echo "[STARCH] no differences found!"
+
+# ---------------------------------------------
+
+clean:
+ @echo "[STARCH] cleaning up intermediate starch archives..."
+ @rm -rf ${RESULTS}
+ @echo "[STARCH] all clean!"
diff --git a/docs/Makefile b/docs/Makefile
new file mode 100644
index 0000000..372e028
--- /dev/null
+++ b/docs/Makefile
@@ -0,0 +1,177 @@
+# Makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS =
+SPHINXBUILD = sphinx-build
+PAPER =
+BUILDDIR = _build
+
+# User-friendly check for sphinx-build
+ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
+$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
+endif
+
+# Internal variables.
+PAPEROPT_a4 = -D latex_paper_size=a4
+PAPEROPT_letter = -D latex_paper_size=letter
+ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
+# the i18n builder cannot share the environment and doctrees with the others
+I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
+
+.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
+
+help:
+ @echo "Please use \`make <target>' where <target> is one of"
+ @echo " html to make standalone HTML files"
+ @echo " dirhtml to make HTML files named index.html in directories"
+ @echo " singlehtml to make a single large HTML file"
+ @echo " pickle to make pickle files"
+ @echo " json to make JSON files"
+ @echo " htmlhelp to make HTML files and a HTML help project"
+ @echo " qthelp to make HTML files and a qthelp project"
+ @echo " devhelp to make HTML files and a Devhelp project"
+ @echo " epub to make an epub"
+ @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
+ @echo " latexpdf to make LaTeX files and run them through pdflatex"
+ @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
+ @echo " text to make text files"
+ @echo " man to make manual pages"
+ @echo " texinfo to make Texinfo files"
+ @echo " info to make Texinfo files and run them through makeinfo"
+ @echo " gettext to make PO message catalogs"
+ @echo " changes to make an overview of all changed/added/deprecated items"
+ @echo " xml to make Docutils-native XML files"
+ @echo " pseudoxml to make pseudoxml-XML files for display purposes"
+ @echo " linkcheck to check all external links for integrity"
+ @echo " doctest to run all doctests embedded in the documentation (if enabled)"
+
+clean:
+ rm -rf $(BUILDDIR)/*
+
+html:
+ $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
+ @echo
+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
+
+dirhtml:
+ $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
+ @echo
+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
+
+singlehtml:
+ $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
+ @echo
+ @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
+
+pickle:
+ $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
+ @echo
+ @echo "Build finished; now you can process the pickle files."
+
+json:
+ $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
+ @echo
+ @echo "Build finished; now you can process the JSON files."
+
+htmlhelp:
+ $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
+ @echo
+ @echo "Build finished; now you can run HTML Help Workshop with the" \
+ ".hhp project file in $(BUILDDIR)/htmlhelp."
+
+qthelp:
+ $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
+ @echo
+ @echo "Build finished; now you can run "qcollectiongenerator" with the" \
+ ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
+ @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/BEDOPS.qhcp"
+ @echo "To view the help file:"
+ @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/BEDOPS.qhc"
+
+devhelp:
+ $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
+ @echo
+ @echo "Build finished."
+ @echo "To view the help file:"
+ @echo "# mkdir -p $$HOME/.local/share/devhelp/BEDOPS"
+ @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/BEDOPS"
+ @echo "# devhelp"
+
+epub:
+ $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
+ @echo
+ @echo "Build finished. The epub file is in $(BUILDDIR)/epub."
+
+latex:
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+ @echo
+ @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
+ @echo "Run \`make' in that directory to run these through (pdf)latex" \
+ "(use \`make latexpdf' here to do that automatically)."
+
+latexpdf:
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+ @echo "Running LaTeX files through pdflatex..."
+ $(MAKE) -C $(BUILDDIR)/latex all-pdf
+ @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
+
+latexpdfja:
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+ @echo "Running LaTeX files through platex and dvipdfmx..."
+ $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
+ @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
+
+text:
+ $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
+ @echo
+ @echo "Build finished. The text files are in $(BUILDDIR)/text."
+
+man:
+ $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
+ @echo
+ @echo "Build finished. The manual pages are in $(BUILDDIR)/man."
+
+texinfo:
+ $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
+ @echo
+ @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
+ @echo "Run \`make' in that directory to run these through makeinfo" \
+ "(use \`make info' here to do that automatically)."
+
+info:
+ $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
+ @echo "Running Texinfo files through makeinfo..."
+ make -C $(BUILDDIR)/texinfo info
+ @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
+
+gettext:
+ $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
+ @echo
+ @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
+
+changes:
+ $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
+ @echo
+ @echo "The overview file is in $(BUILDDIR)/changes."
+
+linkcheck:
+ $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
+ @echo
+ @echo "Link check complete; look for any errors in the above output " \
+ "or in $(BUILDDIR)/linkcheck/output.txt."
+
+doctest:
+ $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
+ @echo "Testing of doctests in the sources finished, look at the " \
+ "results in $(BUILDDIR)/doctest/output.txt."
+
+xml:
+ $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
+ @echo
+ @echo "Build finished. The XML files are in $(BUILDDIR)/xml."
+
+pseudoxml:
+ $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
+ @echo
+ @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
diff --git a/docs/_static/custom.css b/docs/_static/custom.css
new file mode 100644
index 0000000..3d60d63
--- /dev/null
+++ b/docs/_static/custom.css
@@ -0,0 +1,89 @@
+img.logo {
+ max-width: 100%;
+}
+
+span.pre {
+ font-size: 1.0em;
+}
+
+a {
+ color: #00f !important;
+}
+
+a:visited {
+ color: #20e !important;
+}
+
+a span.pre, a tt {
+ color: #00f !important;
+}
+
+h2 {
+ border-top: 1px grey dotted !important;
+}
+
+tt {
+ font-size: 0.9em;
+}
+
+.index_cols {
+ -webkit-column-count: 3; /* Chrome, Safari, Opera */
+ -moz-column-count: 3; /* Firefox */
+ column-count: 3;
+ -webkit-column-rule: 1px dotted #e0e0e0;
+ -moz-column-rule: 1px dotted #e0e0e0;
+ column-rule: 1px dotted #e0e0e0;
+}
+
+.col_element {
+ display: inline-block;
+}
+
+ at media only screen and (min-device-width : 320px) and (max-device-width : 568px) and (orientation : landscape) {
+ .index_cols {
+ -webkit-column-count: 1;
+ -moz-column-count: 1;
+ column-count: 1;
+ -webkit-column-rule: none;
+ -moz-column-rule: none;
+ column-rule: none;
+ }
+
+ .col_element {
+ margin-bottom:15px;
+ display: block;
+ }
+}
+
+ at media only screen and (max-device-width: 640px) {
+ .index_cols {
+ -webkit-column-count: 1;
+ -moz-column-count: 1;
+ column-count: 1;
+ -webkit-column-rule: none;
+ -moz-column-rule: none;
+ column-rule: none;
+ }
+
+ .col_element {
+ margin-bottom:15px;
+ display: block;
+ }
+}
+
+ul {
+ break-inside: avoid-column;
+ -webkit-padding-start: 25px;
+ -webkit-margin-before:0em;
+ -webkit-margin-after:0em;
+}
+
+.tip {
+ background-color: #deeec1;
+ border: 1px solid #b3ce67;
+}
+
+.note {
+ background-color: #d0e8ff;
+ border: 1px solid #97bee6;
+}
diff --git a/docs/assets/favicon.ico b/docs/assets/favicon.ico
new file mode 100644
index 0000000..d803e69
Binary files /dev/null and b/docs/assets/favicon.ico differ
diff --git a/docs/assets/index/downloads_v2.png b/docs/assets/index/downloads_v2.png
new file mode 100644
index 0000000..57cf078
Binary files /dev/null and b/docs/assets/index/downloads_v2.png differ
diff --git a/docs/assets/index/downloads_v3.png b/docs/assets/index/downloads_v3.png
new file mode 100644
index 0000000..eccc1a9
Binary files /dev/null and b/docs/assets/index/downloads_v3.png differ
diff --git a/docs/assets/index/file_management.png b/docs/assets/index/file_management.png
new file mode 100644
index 0000000..ed120f8
Binary files /dev/null and b/docs/assets/index/file_management.png differ
diff --git a/docs/assets/index/file_management_v2.png b/docs/assets/index/file_management_v2.png
new file mode 100644
index 0000000..e8a87c1
Binary files /dev/null and b/docs/assets/index/file_management_v2.png differ
diff --git a/docs/assets/index/linux.png b/docs/assets/index/linux.png
new file mode 100644
index 0000000..3e99706
Binary files /dev/null and b/docs/assets/index/linux.png differ
diff --git a/docs/assets/index/linux_v2.png b/docs/assets/index/linux_v2.png
new file mode 100644
index 0000000..7cdcb20
Binary files /dev/null and b/docs/assets/index/linux_v2.png differ
diff --git a/docs/assets/index/macosx.png b/docs/assets/index/macosx.png
new file mode 100644
index 0000000..bcf33c5
Binary files /dev/null and b/docs/assets/index/macosx.png differ
diff --git a/docs/assets/index/macosx_v2.png b/docs/assets/index/macosx_v2.png
new file mode 100644
index 0000000..28ae02a
Binary files /dev/null and b/docs/assets/index/macosx_v2.png differ
diff --git a/docs/assets/index/other.png b/docs/assets/index/other.png
new file mode 100644
index 0000000..f5cee30
Binary files /dev/null and b/docs/assets/index/other.png differ
diff --git a/docs/assets/index/performance.png b/docs/assets/index/performance.png
new file mode 100644
index 0000000..68042e4
Binary files /dev/null and b/docs/assets/index/performance.png differ
diff --git a/docs/assets/index/performance_v2.png b/docs/assets/index/performance_v2.png
new file mode 100644
index 0000000..741fad4
Binary files /dev/null and b/docs/assets/index/performance_v2.png differ
diff --git a/docs/assets/index/quick_start.png b/docs/assets/index/quick_start.png
new file mode 100644
index 0000000..14b2c88
Binary files /dev/null and b/docs/assets/index/quick_start.png differ
diff --git a/docs/assets/index/reference_v2.png b/docs/assets/index/reference_v2.png
new file mode 100644
index 0000000..4f7d1b1
Binary files /dev/null and b/docs/assets/index/reference_v2.png differ
diff --git a/docs/assets/index/set_operations.png b/docs/assets/index/set_operations.png
new file mode 100644
index 0000000..3385ef4
Binary files /dev/null and b/docs/assets/index/set_operations.png differ
diff --git a/docs/assets/index/set_operations_v2.png b/docs/assets/index/set_operations_v2.png
new file mode 100644
index 0000000..6ad12f1
Binary files /dev/null and b/docs/assets/index/set_operations_v2.png differ
diff --git a/docs/assets/index/source.png b/docs/assets/index/source.png
new file mode 100644
index 0000000..3a19e45
Binary files /dev/null and b/docs/assets/index/source.png differ
diff --git a/docs/assets/index/source_v2.png b/docs/assets/index/source_v2.png
new file mode 100644
index 0000000..862a880
Binary files /dev/null and b/docs/assets/index/source_v2.png differ
diff --git a/docs/assets/index/statistics.png b/docs/assets/index/statistics.png
new file mode 100644
index 0000000..0cc91e1
Binary files /dev/null and b/docs/assets/index/statistics.png differ
diff --git a/docs/assets/index/statistics_v2.png b/docs/assets/index/statistics_v2.png
new file mode 100644
index 0000000..9a45918
Binary files /dev/null and b/docs/assets/index/statistics_v2.png differ
diff --git a/docs/assets/index/support.png b/docs/assets/index/support.png
new file mode 100644
index 0000000..9dd0a16
Binary files /dev/null and b/docs/assets/index/support.png differ
diff --git a/docs/assets/index/support_v2.png b/docs/assets/index/support_v2.png
new file mode 100644
index 0000000..4c5b71f
Binary files /dev/null and b/docs/assets/index/support_v2.png differ
diff --git a/docs/assets/index/toc_v2.png b/docs/assets/index/toc_v2.png
new file mode 100644
index 0000000..e98dcf1
Binary files /dev/null and b/docs/assets/index/toc_v2.png differ
diff --git a/docs/assets/installation/bedops_cygwin_installer_gcc_screen.png b/docs/assets/installation/bedops_cygwin_installer_gcc_screen.png
new file mode 100644
index 0000000..a6735de
Binary files /dev/null and b/docs/assets/installation/bedops_cygwin_installer_gcc_screen.png differ
diff --git a/docs/assets/installation/bedops_cygwin_installer_git_screen.png b/docs/assets/installation/bedops_cygwin_installer_git_screen.png
new file mode 100644
index 0000000..bb352de
Binary files /dev/null and b/docs/assets/installation/bedops_cygwin_installer_git_screen.png differ
diff --git a/docs/assets/installation/bedops_cygwin_installer_screen.png b/docs/assets/installation/bedops_cygwin_installer_screen.png
new file mode 100644
index 0000000..3d0c010
Binary files /dev/null and b/docs/assets/installation/bedops_cygwin_installer_screen.png differ
diff --git a/docs/assets/installation/bedops_macosx_installer_icon.png b/docs/assets/installation/bedops_macosx_installer_icon.png
new file mode 100644
index 0000000..b5879fd
Binary files /dev/null and b/docs/assets/installation/bedops_macosx_installer_icon.png differ
diff --git a/docs/assets/installation/bedops_macosx_installer_screen.png b/docs/assets/installation/bedops_macosx_installer_screen.png
new file mode 100644
index 0000000..087bf1c
Binary files /dev/null and b/docs/assets/installation/bedops_macosx_installer_screen.png differ
diff --git a/docs/assets/installation/bedops_macosx_installer_screen_v2.png b/docs/assets/installation/bedops_macosx_installer_screen_v2.png
new file mode 100644
index 0000000..0ec2234
Binary files /dev/null and b/docs/assets/installation/bedops_macosx_installer_screen_v2.png differ
diff --git a/docs/assets/logo_with_label_v3.png b/docs/assets/logo_with_label_v3.png
new file mode 100644
index 0000000..f73fee6
Binary files /dev/null and b/docs/assets/logo_with_label_v3.png differ
diff --git a/docs/assets/note.png b/docs/assets/note.png
new file mode 100644
index 0000000..1d50ca0
Binary files /dev/null and b/docs/assets/note.png differ
diff --git a/docs/assets/overview/BEDOPS_Presentation_bedmap_ops.png b/docs/assets/overview/BEDOPS_Presentation_bedmap_ops.png
new file mode 100644
index 0000000..c960392
Binary files /dev/null and b/docs/assets/overview/BEDOPS_Presentation_bedmap_ops.png differ
diff --git a/docs/assets/overview/BEDOPS_Presentation_bedops_ops.png b/docs/assets/overview/BEDOPS_Presentation_bedops_ops.png
new file mode 100644
index 0000000..5a3f64b
Binary files /dev/null and b/docs/assets/overview/BEDOPS_Presentation_bedops_ops.png differ
diff --git a/docs/assets/overview/BEDOPS_Presentation_grok_tests.png b/docs/assets/overview/BEDOPS_Presentation_grok_tests.png
new file mode 100644
index 0000000..9ac8e16
Binary files /dev/null and b/docs/assets/overview/BEDOPS_Presentation_grok_tests.png differ
diff --git a/docs/assets/overview/BEDOPS_Presentation_starch_efficiency.png b/docs/assets/overview/BEDOPS_Presentation_starch_efficiency.png
new file mode 100644
index 0000000..a8f9048
Binary files /dev/null and b/docs/assets/overview/BEDOPS_Presentation_starch_efficiency.png differ
diff --git a/docs/assets/performance/performance_bedops_complement_sorted.png b/docs/assets/performance/performance_bedops_complement_sorted.png
new file mode 100644
index 0000000..4e8fb0d
Binary files /dev/null and b/docs/assets/performance/performance_bedops_complement_sorted.png differ
diff --git a/docs/assets/performance/performance_bedops_intersect_sorted.png b/docs/assets/performance/performance_bedops_intersect_sorted.png
new file mode 100644
index 0000000..69cdb4d
Binary files /dev/null and b/docs/assets/performance/performance_bedops_intersect_sorted.png differ
diff --git a/docs/assets/performance/performance_bedops_merge_sorted.png b/docs/assets/performance/performance_bedops_merge_sorted.png
new file mode 100644
index 0000000..8f6e6be
Binary files /dev/null and b/docs/assets/performance/performance_bedops_merge_sorted.png differ
diff --git a/docs/assets/performance/performance_bedops_merge_unsorted.png b/docs/assets/performance/performance_bedops_merge_unsorted.png
new file mode 100644
index 0000000..c1ea208
Binary files /dev/null and b/docs/assets/performance/performance_bedops_merge_unsorted.png differ
diff --git a/docs/assets/performance/performance_independent_grok.png b/docs/assets/performance/performance_independent_grok.png
new file mode 100644
index 0000000..e0e68f8
Binary files /dev/null and b/docs/assets/performance/performance_independent_grok.png differ
diff --git a/docs/assets/performance/performance_starch_efficiency.png b/docs/assets/performance/performance_starch_efficiency.png
new file mode 100644
index 0000000..90871f7
Binary files /dev/null and b/docs/assets/performance/performance_starch_efficiency.png differ
diff --git a/docs/assets/performance/performance_unstarch_extractiontime.png b/docs/assets/performance/performance_unstarch_extractiontime.png
new file mode 100644
index 0000000..64a6444
Binary files /dev/null and b/docs/assets/performance/performance_unstarch_extractiontime.png differ
diff --git a/docs/assets/readme/bioinformatics.png b/docs/assets/readme/bioinformatics.png
new file mode 100644
index 0000000..e96f691
Binary files /dev/null and b/docs/assets/readme/bioinformatics.png differ
diff --git a/docs/assets/readme/documentation.png b/docs/assets/readme/documentation.png
new file mode 100644
index 0000000..8bc93bb
Binary files /dev/null and b/docs/assets/readme/documentation.png differ
diff --git a/docs/assets/readme/overview.png b/docs/assets/readme/overview.png
new file mode 100644
index 0000000..aafaa8c
Binary files /dev/null and b/docs/assets/readme/overview.png differ
diff --git a/docs/assets/reference/file-management/compression/starch_specification.png b/docs/assets/reference/file-management/compression/starch_specification.png
new file mode 100644
index 0000000..3dee40a
Binary files /dev/null and b/docs/assets/reference/file-management/compression/starch_specification.png differ
diff --git a/docs/assets/reference/file-management/compression/starch_specification_chromosomestreams.png b/docs/assets/reference/file-management/compression/starch_specification_chromosomestreams.png
new file mode 100644
index 0000000..0eb1e16
Binary files /dev/null and b/docs/assets/reference/file-management/compression/starch_specification_chromosomestreams.png differ
diff --git a/docs/assets/reference/file-management/compression/starch_specification_magicbytes.png b/docs/assets/reference/file-management/compression/starch_specification_magicbytes.png
new file mode 100644
index 0000000..60a3aac
Binary files /dev/null and b/docs/assets/reference/file-management/compression/starch_specification_magicbytes.png differ
diff --git a/docs/assets/reference/file-management/compression/starch_specification_metadata.png b/docs/assets/reference/file-management/compression/starch_specification_metadata.png
new file mode 100644
index 0000000..d118280
Binary files /dev/null and b/docs/assets/reference/file-management/compression/starch_specification_metadata.png differ
diff --git a/docs/assets/reference/file-management/compression/starch_specification_metadatachecksum.png b/docs/assets/reference/file-management/compression/starch_specification_metadatachecksum.png
new file mode 100644
index 0000000..03281c9
Binary files /dev/null and b/docs/assets/reference/file-management/compression/starch_specification_metadatachecksum.png differ
diff --git a/docs/assets/reference/file-management/compression/starch_specification_metadataoffset.png b/docs/assets/reference/file-management/compression/starch_specification_metadataoffset.png
new file mode 100644
index 0000000..f8a056d
Binary files /dev/null and b/docs/assets/reference/file-management/compression/starch_specification_metadataoffset.png differ
diff --git a/docs/assets/reference/file-management/compression/starch_specification_padding.png b/docs/assets/reference/file-management/compression/starch_specification_padding.png
new file mode 100644
index 0000000..d306f19
Binary files /dev/null and b/docs/assets/reference/file-management/compression/starch_specification_padding.png differ
diff --git a/docs/assets/reference/file-management/compression/starchcluster_mechanism.png b/docs/assets/reference/file-management/compression/starchcluster_mechanism.png
new file mode 100644
index 0000000..0cd4be1
Binary files /dev/null and b/docs/assets/reference/file-management/compression/starchcluster_mechanism.png differ
diff --git a/docs/assets/reference/file-management/conversion/reference_bam2bed_foo.bam b/docs/assets/reference/file-management/conversion/reference_bam2bed_foo.bam
new file mode 100644
index 0000000..985a0cf
Binary files /dev/null and b/docs/assets/reference/file-management/conversion/reference_bam2bed_foo.bam differ
diff --git a/docs/assets/reference/file-management/conversion/reference_gff2bed_foo.gff b/docs/assets/reference/file-management/conversion/reference_gff2bed_foo.gff
new file mode 100644
index 0000000..a2ce9ba
--- /dev/null
+++ b/docs/assets/reference/file-management/conversion/reference_gff2bed_foo.gff
@@ -0,0 +1,6 @@
+##gff-version 3
+chr1 Canada exon 1300 1300 . + . ID=exon00001;score=1
+chr1 USA exon 1050 1500 . - 0 ID=exon00002;Ontology_term="GO:0046703";Ontology_term="GO:0046704"
+chr1 Canada exon 3000 3902 . ? 2 ID=exon00003;score=4;Name=foo
+chr1 . exon 5000 5500 . . . ID=exon00004;Gap=M8 D3 M6 I1 M6
+chr1 . exon 7000 9000 10 + 1 ID=exon00005;Dbxref="NCBI_gi:10727410"
diff --git a/docs/assets/reference/file-management/conversion/reference_gtf2bed_foo.gtf b/docs/assets/reference/file-management/conversion/reference_gtf2bed_foo.gtf
new file mode 100644
index 0000000..28722e3
--- /dev/null
+++ b/docs/assets/reference/file-management/conversion/reference_gtf2bed_foo.gtf
@@ -0,0 +1,3 @@
+chr20 protein_coding exon 9874841 9874841 . + . gene_id "ENSBTAG00000020601"; transcript_id "ENSBTAT00000027448"; gene_name "ZNF366";
+chr20 protein_coding CDS 9873504 9874841 . + 0 gene_id "ENSBTAG00000020601"; transcript_id "ENSBTAT00000027448"; gene_name "ZNF366";
+chr20 protein_coding exon 9877488 9877679 . + . gene_id "ENSBTAG00000020601"; transcript_id "ENSBTAT00000027448";
diff --git a/docs/assets/reference/file-management/conversion/reference_gvf2bed_foo.gvf b/docs/assets/reference/file-management/conversion/reference_gvf2bed_foo.gvf
new file mode 100644
index 0000000..cd382f7
--- /dev/null
+++ b/docs/assets/reference/file-management/conversion/reference_gvf2bed_foo.gvf
@@ -0,0 +1,13 @@
+##gvf-version 1.07
+##feature-ontology http://www.sequenceontology.org/resources/obo_files/current_release.obo
+##multi-individual NA19240,NA18507,NA12878,NA19238
+##genome-build NCBI B36.3
+##sequence-region chr16 1 88827254
+
+chr16 dbSNP SNV 49291360 49291360 . + . ID=ID_2;Variant_seq=C,G;Individual=0,1,2,3;Genotype=0:1,0:0,1:1,0:1;
+chr16 dbSNP SNV 49302125 49302125 . + . ID=ID_3;Variant_seq=C,T;Individual=0,1,3;Genotype=0:1,2:2,0:2;
+chr16 dbSNP SNV 49302365 49302365 . + . ID=ID_4;Variant_seq=G;Individual=0,1;Genotype=0:0,0:0;
+chr16 dbSNP SNV 49302700 49302700 . + . ID=ID_5;Variant_seq=C,T;Individual=2,3;Genotype=0:1,0:0;
+chr16 dbSNP SNV 49303084 49303084 . + . ID=ID_6;Variant_seq=T,G,A;Individual=3;Genotype=1,2:;
+chr16 dbSNP SNV 49303427 49303427 . + . ID=ID_8;Variant_seq=T;Individual=0;Genotype=0:0;
+chr16 dbSNP SNV 49303596 49303596 . + . ID=ID_9;Variant_seq=A,G,T;Individual=0,1,3;Genotype=1:2,3:3,1:3;
diff --git a/docs/assets/reference/file-management/conversion/reference_psl2bed_foo.psl b/docs/assets/reference/file-management/conversion/reference_psl2bed_foo.psl
new file mode 100644
index 0000000..ee7f542
--- /dev/null
+++ b/docs/assets/reference/file-management/conversion/reference_psl2bed_foo.psl
@@ -0,0 +1,39 @@
+psLayout version 3
+
+match mis- rep. N's Q gap Q gap T gap T gap strand Q Q Q Q T T T T block blockSizes qStarts tStarts
+ match match count bases count bases name size start end name size start end count
+---------------------------------------------------------------------------------------------------------------------------------------------------------------
+35 0 0 0 0 0 0 0 + foo 50 15 50 chrX 155270560 40535836 40535871 1 35, 15, 40535836,
+34 2 0 0 0 0 0 0 + foo 50 14 50 chrX 155270560 68019028 68019064 1 36, 14, 68019028,
+33 2 0 0 0 0 0 0 + foo 50 14 49 chrX 155270560 43068135 43068170 1 35, 14, 43068135,
+35 2 0 0 0 0 0 0 + foo 50 13 50 chr8 146364022 131572122 131572159 1 37, 13, 131572122,
+30 0 0 0 0 0 0 0 + foo 50 14 44 chr6 171115067 127685756 127685786 1 30, 14, 127685756,
+30 0 0 0 0 0 0 0 + foo 50 14 44 chr6 171115067 93161871 93161901 1 30, 14, 93161871,
+31 0 0 0 0 0 0 0 + foo 50 13 44 chr5 180915260 119897315 119897346 1 31, 13, 119897315,
+30 0 0 0 0 0 0 0 + foo 50 14 44 chr5 180915260 123254725 123254755 1 30, 14, 123254725,
+35 1 0 0 0 0 0 0 + foo 50 14 50 chr4 191154276 82259023 82259059 1 36, 14, 82259023,
+35 1 0 0 0 0 0 0 + foo 50 14 50 chr3 198022430 150940163 150940199 1 36, 14, 150940163,
+34 2 0 0 0 0 0 0 + foo 50 14 50 chr3 198022430 42509214 42509250 1 36, 14, 42509214,
+30 0 0 0 0 0 0 0 + foo 50 20 50 chr3 198022430 192870971 192871001 1 30, 20, 192870971,
+37 1 0 0 0 0 0 0 + foo 50 12 50 chr21 48129895 16689364 16689402 1 38, 12, 16689364,
+35 0 0 0 0 0 0 0 + foo 50 15 50 chr2 243199373 225564373 225564408 1 35, 15, 225564373,
+35 1 0 0 0 0 0 0 + foo 50 14 50 chr2 243199373 213333021 213333057 1 36, 14, 213333021,
+31 1 0 0 0 0 0 0 + foo 50 18 50 chr2 243199373 138092330 138092362 1 32, 18, 138092330,
+30 0 0 0 0 0 0 0 + foo 50 14 44 chr2 243199373 159266272 159266302 1 30, 14, 159266272,
+36 1 0 0 0 0 0 0 + foo 50 13 50 chr16 90354753 8149657 8149694 1 37, 13, 8149657,
+39 2 0 0 0 0 0 0 + foo 50 8 49 chr13 115169878 99729482 99729523 1 41, 8, 99729482,
+34 2 0 0 0 0 0 0 + foo 50 14 50 chr13 115169878 111391852 111391888 1 36, 14, 111391852,
+39 3 0 0 0 0 0 0 + foo 50 8 50 chr11 135006516 12618347 12618389 1 42, 8, 12618347,
+35 1 0 0 0 0 0 0 + foo 50 14 50 chr11 135006516 80116421 80116457 1 36, 14, 80116421,
+34 2 0 0 0 0 0 0 + foo 50 14 50 chr11 135006516 133952291 133952327 1 36, 14, 133952291,
+35 0 0 0 1 1 0 0 + foo 50 8 44 chr11 135006516 32933028 32933063 2 4,31, 8,13, 32933028,32933032,
+50 0 0 0 0 0 0 0 + foo 50 0 50 chr1 249250621 107200050 107200100 1 50, 0, 107200050,
+36 1 0 0 0 0 0 0 - foo 50 13 50 chrX 155270560 101602211 101602248 1 37, 0, 101602211,
+36 1 0 0 0 0 0 0 - foo 50 13 50 chr8 146364022 102334624 102334661 1 37, 0, 102334624,
+34 0 0 0 0 0 0 0 - foo 50 7 41 chr6 171115067 9392527 9392561 1 34, 9, 9392527,
+33 3 0 0 0 0 0 0 - foo 50 14 50 chr4 191154276 21041798 21041834 1 36, 0, 21041798,
+37 1 0 0 0 0 0 0 - foo 50 11 49 chr3 198022430 151443333 151443371 1 38, 1, 151443333,
+35 0 0 0 0 0 0 0 - foo 50 15 50 chr2 243199373 44076681 44076716 1 35, 0, 44076681,
+34 2 0 0 0 0 0 0 - foo 50 14 50 chr19 59128983 28603245 28603281 1 36, 0, 28603245,
+35 0 0 0 0 0 0 0 - foo 50 15 50 chr1 249250621 30571100 30571135 1 35, 0, 30571100,
+34 1 0 0 0 0 0 0 - foo 50 15 50 chr1 249250621 69592160 69592195 1 35, 0, 69592160,
diff --git a/docs/assets/reference/file-management/conversion/reference_sam2bed_foo.sam b/docs/assets/reference/file-management/conversion/reference_sam2bed_foo.sam
new file mode 100644
index 0000000..7e07c08
--- /dev/null
+++ b/docs/assets/reference/file-management/conversion/reference_sam2bed_foo.sam
@@ -0,0 +1,3311 @@
+ at HD VN:1.0 SO:coordinate
+ at SQ SN:seq1 LN:5000
+ at SQ SN:seq2 LN:5000
+ at CO Example of SAM/BAM file format.
+B7_591:4:96:693:509 73 seq1 1 99 36M * 0 0 CACTAGTGGCTCATTGTAAATGTGTGGTTTAACTCG <<<<<<<<<<<<<<<;<<<<<<<<<5<<<<<;:<;7 MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:7:152:368:113 73 seq1 3 99 35M * 0 0 CTAGTGGCTCATTGTAAATGTGTGGTTTAACTCGT <<<<<<<<<<0<<<<655<<7<<<:9<<3/:<6): MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:8:5:734:57 137 seq1 5 99 35M * 0 0 AGTGGCTCATTGTAAATGTGTGGTTTAACTCGTCC <<<<<<<<<<<7;71<<;<;;<7;<<3;);3*8/5 MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:1:289:587:906 137 seq1 6 63 36M * 0 0 GTGGCTCATTGTAATTTTTTGTTTTAACTCTTCTCT (-&----,----)-)-),'--)---',+-,),''*, MF:i:130 Aq:i:63 NM:i:5 UQ:i:38 H0:i:0 H1:i:0
+EAS56_59:8:38:671:758 137 seq1 9 99 35M * 0 0 GCTCATTGTAAATGTGTGGTTTAACTCGTCCATGG <<<<<<<<<<<<<<<;<;7<<<<<<<<7<<;:<5% MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:6:18:467:281 73 seq1 13 99 35M * 0 0 ATTGTAAATGTGTGGTTTAACTCGTCCCTGGCCCA <<<<<<<<;<<<8<<<<<;8:;6/686&;(16666 MF:i:18 Aq:i:39 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+EAS114_28:5:296:340:699 137 seq1 13 99 36M * 0 0 ATTGTAAATGTGTGGTTTAACTCGTCCATGGCCCAG <<<<<;<<<;<;<<<<<<<<<<<8<8<3<8;<;<0; MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:6:194:894:408 73 seq1 15 99 35M * 0 0 TGTAAATGTGTGGTTTAACTCGTCCATTGCCCAGC <<<<<<<<<7<<;<<<<;<<<7;;<<<*,;;572< MF:i:18 Aq:i:43 NM:i:1 UQ:i:9 H0:i:0 H1:i:1
+EAS188_4:8:12:628:973 89 seq1 18 75 35M * 0 0 AAATGTGTGGTTTAACTCGTCCATGGCCCAGCATT ==;=:;:;;:====;=;===:=======;==;=== MF:i:64 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:7:68:402:50 137 seq1 22 99 35M * 0 0 GTGTGGTTTAACTCGTCCATGGCCCAGCATTTGGG <<<<<<<<<<<<<<:<<<9<6;9;;&697;7&<55 MF:i:18 Aq:i:66 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS114_30:6:298:115:564 137 seq1 22 99 35M * 0 0 GTGTGGTTTAACTCGTCCATGGCCCAGCATTAGGG <<<<<<<<<<<<<;<<<;<<<;<<<;<:<<;;5;; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:3:188:662:155 73 seq1 24 99 36M * 0 0 GTGGTTTAACTCGTCCATGGCCCAGCATTAGGGAGC <<<<<<<<<<<<<<<<<<:;<<<4<<+<<14991;4 MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:2:225:608:291 73 seq1 28 99 35M * 0 0 TTTAACTCGTCCATGGCCCAGCATTAGGGATCTGT <<<<<<<<<<<<<<8&<<<;6<9;;+2++(%59(< MF:i:18 Aq:i:58 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+EAS51_66:7:328:397:316 73 seq1 29 99 35M * 0 0 TTAACTCGTCCATGGCCCAGCATTAGGGAGCTGTG <<<<<<<<<<<<<6=<<<;<<5<<<+<15:'<;;4 MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:5:257:960:682 73 seq1 31 75 35M * 0 0 AACTCGTCCATGGCCCAGCATTAGGGAGCTGTGGA <<<<<<<<<<<;<<<<<<<<<<<<<<<<<<9;;9< MF:i:64 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_61:4:143:69:578 99 seq1 36 98 35M = 185 184 GTACATGGCCCAGCATTAGGGAGCTGTGGACCCCG ===;=====48=844;=;+=5==*57,2+5&,5+5 MF:i:18 Aq:i:35 NM:i:2 UQ:i:38 H0:i:0 H1:i:1
+EAS114_32:5:78:583:499 163 seq1 37 74 35M = 229 227 TCCATGGCCCAGCATTAGGGCGCTGTGGACCCTGC <<8;<<<<<<1<<-1<+8<<&;:555;5-*77/51 MF:i:18 Aq:i:37 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+EAS1_93:7:252:171:323 163 seq1 43 99 35M = 234 226 GCCCAGCATTAGGGAGCTGTGGACCCTGCAGCCTG <<<):<<<<<<<<<:<<<&5<<2<562<<<<-7-- MF:i:18 Aq:i:62 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:4:106:316:452 99 seq1 49 99 36M = 224 211 CATTAGGGAGCTGTGGACCCTGCAGCCTGGCTGTTG ;<<;<<<<;<;;;;7;<;<<<;<<;<<;4:<<;+&+ MF:i:18 Aq:i:71 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+B7_589:8:113:968:19 163 seq1 50 99 35M = 219 204 ATTAGGGAGCTGTGGACCCTGCAGCCTGGCTGGGG <<<<;<;<<<<<<:;;;.;;<75;);;;<.2+(;5 MF:i:18 Aq:i:63 NM:i:1 UQ:i:7 H0:i:1 H1:i:0
+EAS54_65:3:321:311:983 99 seq1 51 99 35M = 228 212 TTAGGGAGCTGTGGACCCTGCAGCCTGGCTGTGGG <<<;<<<<<<<<+;;<47;<9;94430499<88+6 MF:i:18 Aq:i:62 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:6:155:12:674 163 seq1 52 99 36M = 224 208 TAGGGAGCTGTGGACCCTGCAGCCTGGCTGTGGGGG <<<<<<<<<<<<<<<<<<<<<<<<<<<;<<+:9-<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:7:51:1429:1043 163 seq1 59 99 35M = 209 185 CTGTGGACCCTGCAGCCTGGCTGTGGGGGGCGCCG <<<<<<<<<<<<<:<<<;<<<<:):;<;;-15)+1 MF:i:18 Aq:i:68 NM:i:2 UQ:i:22 H0:i:1 H1:i:0
+B7_591:5:42:540:501 99 seq1 60 99 36M = 224 200 TGTGGACCCTGCAGCCTGGCTGTGGGGGCCGCAGTG <<<<<<<<<<<<<<<<<<<<<<.;<<<<,804,858 MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:5:223:142:410 99 seq1 60 99 35M = 235 210 TGTGGACCCTGCAGCCTGGCTGGGGGGGGCGCAGT <<<<<<<<<<<<<<:<5<<2<<(<:<<<:5,((7( MF:i:18 Aq:i:39 NM:i:2 UQ:i:32 H0:i:0 H1:i:1
+EAS1_108:1:65:787:74 163 seq1 61 88 35M = 213 187 GTGGACCCTGCAGCCTGGCTGGGGGGGGCACGGGG <<<<<8-82<2823;-<;822222888,*(2%2-2 MF:i:18 Aq:i:21 NM:i:5 UQ:i:51 H0:i:0 H1:i:0
+EAS56_61:6:227:259:597 99 seq1 61 99 35M = 248 222 GTGGACCCTGCAGCCTGGCTGTGGGGGCCGCAGTG <<<<<<<<<<;;<<<6;8:68333;<8(8,1,$$+ MF:i:18 Aq:i:61 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:1:243:10:911 163 seq1 63 99 35M = 236 208 GGACCCTGCAGCCTGGCTGTGGGGGCCGCTGTGGG <<;<<<<<<<<<<7<<<<<7<<<<<:4<((<%;<+ MF:i:18 Aq:i:64 NM:i:2 UQ:i:22 H0:i:1 H1:i:0
+EAS221_1:2:90:986:1224 163 seq1 67 99 35M = 267 235 CCTGCAGCCTGGCTGTGGGGGCCGCAGCGGGTGGG <<:<<<<<<<<<<<<0<<<<<)<<63<+<<2'<-< MF:i:18 Aq:i:41 NM:i:3 UQ:i:39 H0:i:0 H1:i:1
+EAS54_67:3:175:730:949 163 seq1 70 99 35M = 230 195 GCAGCCTGGCTGTGGGGGCCGCAGTGGCTGAGGGG <<<<<<<<<<8<;<<<<<0(<<;;,<<7<4%7626 MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:8:76:493:708 99 seq1 73 44 35M = 229 191 GCCTGGCTGTGGGGGCACCAGCCGCTGCGGGGGGT <<<<1<<1<;626<;<''+;-'';+2'+;;)6--+ MF:i:130 Aq:i:44 NM:i:5 UQ:i:34 H0:i:0 H1:i:0
+EAS1_97:7:20:979:96 163 seq1 79 99 35M = 254 210 CTGTGGGGGCCGCAGTGGCTGAGGGGGGGAGGGGC <<<<<<;<<<<<7<<,<<,:;,<<<<17)++':.' MF:i:18 Aq:i:37 NM:i:4 UQ:i:43 H0:i:0 H1:i:1
+EAS114_26:3:284:261:124 163 seq1 79 99 35M = 263 219 CTGTGGGGGCCGCAGTGGGTGAGGGGTGGAGGGGG ============'8====':=+====,=8,8'=++ MF:i:18 Aq:i:39 NM:i:5 UQ:i:64 H0:i:0 H1:i:1
+EAS221_1:2:29:1486:672 99 seq1 79 99 35M = 256 212 CTGTGGGGGCCGCAGTGGCTGAGGGGTGCAGAGCC <<<<<<<<<<<<<;<;<<<<<;<<<<8;;;<8;-; MF:i:18 Aq:i:29 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:2:218:877:489 163 seq1 80 10 35M = 250 205 TGTGGGGGCCGCAGTGGCTGGGGGGGGGCGGGCGG <<<<<<<;<<<07640<2<9(<9<<&9%(<(6%%3 MF:i:18 Aq:i:10 NM:i:6 UQ:i:34 H0:i:0 H1:i:0
+EAS51_64:7:242:862:732 73 seq1 95 66 35M = 95 0 GGCTGAGGGGTGCAGAGCCGAGTCACGGGGTTGCC <<<<<<<<<<<<<<<;<<<:<;+<3<::3<';:'; MF:i:64 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:7:242:862:732 133 seq1 95 0 * = 95 0 GGGTCTATGTGAACAAAGGCACTAAACACAGCTGT <<<<<<<<<<8<<<<<78<<<378<<<77755++2 MF:i:192
+EAS56_57:6:190:289:82 69 seq1 100 0 * = 100 0 CTCAAGGTTGTTGCAAGGGGGTCTATGTGAACAAA <<<7<<<;<<<<<<<<8;;<7;4<;<;;;;;94<; MF:i:192
+EAS56_57:6:190:289:82 137 seq1 100 73 35M = 100 0 AGGGGTGCAGAGCCGAGTCACGGGGTTGCCAGCAC <<<<<<;<<<<<<<<<<;<<;<<<<;8<6;9;;2; MF:i:64 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:3:190:727:308 99 seq1 103 99 35M = 263 195 GGTGCAGAGCCGAGTCACGGGGTTGCCAGCACAGG <<<<<<<<<<<<<<<<<<<<<<<<<<<::<<<844 MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:7:141:80:875 99 seq1 110 99 35M = 265 190 AGCCGAGTCACGGGGTTGCCAGCACAGGGGCTTAA <<<<<<<<<<<<<<<<<<<<<<:<<8;<<8+7;-7 MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:3:40:1128:1940 163 seq1 112 99 35M = 291 214 CCGAGTCACGGGGTTGCCAGCACAGGGGCTTAACC <<<<<<<<<<<<<<<<<<<;<<5;;<<<9;;;;7: MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:5:290:319:736 69 seq1 113 0 * = 113 0 GTTCTCAAGGTTGTTGCAAGGGGGTCTATGTGAAC <<<<<<:7:<.<<<<7<<.<.<<.9*<4<:<4%74 MF:i:192
+EAS51_62:5:290:319:736 137 seq1 113 73 35M = 113 0 CGAGTCACGGGGTTGCCAGCACAGGGGCTTAACCT ==;=======7====6=;==:;;====66=::27: MF:i:64 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:2:132:493:921 69 seq1 119 0 * = 119 0 GTTCTCAAGGTTGTTGCAAGGGGGTCTATGTGAAC <<<<<<<<<<<<<<<<<<<;<<<<77;0<;;6777 MF:i:192
+B7_597:2:132:493:921 137 seq1 119 75 35M = 119 0 ACGGGGTTGCCAGCACAGGGGCTTAACCTCTGGTG <<<<<<<<<<<<<<<<;<<<<<<<<;<<<<;;88: MF:i:64 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:7:283:799:560 163 seq1 121 66 35M = 283 197 GGGGTTGCCAGCACAGGGGCTTAACCTCTGGTGAC <<<<+<<<<8<<<+<<<<<;<<:07;8;7402447 MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:1:225:195:543 99 seq1 123 99 35M = 299 211 GGTTGCCAGCACAGGGGCTTAACCTCTGGTGACTG <<<<<<<<<<<<<<<<<<<<<<<9<<;::388998 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:6:114:714:317 99 seq1 126 99 35M = 311 220 TGCCAGCACAGGGGCTTAACCTCTGGTGACTGCCA <<<<<<<<<<<<<<<<<<<<<<<<<<<;<<<5;<; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:1:70:147:84 163 seq1 128 73 35M = 285 192 CCAGCACAGGGGCTTAACCTCTGGTGACTGCCAGA <<<<<<<<<<<<<<<<<<<<;<<<<<<<<<;(5<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:2:187:227:818 163 seq1 129 99 35M = 290 196 CAGCACAGGGGCTTAACCTCTGGTGACTGCCAGAG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<3<;<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:4:77:29:126 99 seq1 131 99 35M = 315 219 GCACAGGGGCTTAACCTCTGGTGACTGCCAGAGCT <<<<<<<<<<3<<<<<<<;;;7<;<<449<-:977 MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:4:327:795:103 99 seq1 133 99 35M = 302 204 ACAGGGGCTTAACCTCTGGTGACTGCCAGAGCTGC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:3:139:117:262 69 seq1 135 0 * = 135 0 GTTCTCAAGGTTGTTGCAAGGGGGTCTATGTGAAC <<<7<<<<<<<<<<<<<<<<<<<;<;<<<<<37;3 MF:i:192
+EAS114_30:3:139:117:262 137 seq1 135 76 35M = 135 0 AGGGGCTTAACCTCTGGTGACTGCCAGAGCTGCTG <<<<;<<<<<<<<<<<<<:<<<<<:<<8<<<<:<: MF:i:64 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:5:29:817:854 73 seq1 135 77 35M = 135 0 AGGGGCTTAACCTCTGGTGACTGCCAGAGCTGCTG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:64 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:5:29:817:854 133 seq1 135 0 * = 135 0 GTTCTCAAGGTTGTTGCAAGGGGGTTTATGTGAAC <<<<<<<<<<<<<<<1..;:;;;;1%407)07&7. MF:i:192
+EAS192_3:6:170:169:57 163 seq1 138 99 35M = 296 193 GGCTTGACCTCTGGTGACTGCCAGAGCTGCTGGCC <<<<<;<<<<<<;<<<<<<<<<<<<:<<<<<;;+% MF:i:18 Aq:i:45 NM:i:2 UQ:i:30 H0:i:0 H1:i:1
+B7_595:4:84:802:737 99 seq1 140 68 35M = 284 179 CTTAACCTCTGGTGACTGCCAGAGCTGCTGGCAAG <<<<<<<<<<;9<9<<<;<<;73;<<<<<37;1+. MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_4:7:78:583:670 163 seq1 142 99 35M = 316 209 TAACCTCTGGTGACTGCCAGAGCTGCTGGCAAGCT <<<<<<<<<<;;;<;;<<<:7;5;<5;;<2--8-; MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:3:90:435:691 99 seq1 147 99 35M = 318 206 TCTGGTGACTGCCAGAGCTGCTGGCAAGCTAGAGT <<<<<<<<<<;<<<;<<<<:<<<;<81;<<1;784 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:3:13:122:187 163 seq1 153 99 35M = 343 225 GACTGCCAGAGCTGCTGGCAAGCTAGAGTCCCCTT <<<<<<<;<;<<<;<<<<:;6<<<<;;;;:<<%%< MF:i:18 Aq:i:69 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+EAS221_1:6:69:735:1915 99 seq1 154 99 35M = 321 202 ACTGCCAGAGCTGCTGGCAAGCTAGAGTCCCATTT <<<<<<<<;<<<<<<<<<;<<<<;<8<<<<;1:<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:5:66:959:1311 163 seq1 159 95 35M = 336 212 CAGAGCTGCTGGCAAGCTAGAGGCCCATCTGGAGC ;;4;;;+;;;-01;;&-;;4;;&;;73)(&**274 MF:i:18 Aq:i:31 NM:i:2 UQ:i:12 H0:i:0 H1:i:1
+EAS56_57:6:325:759:288 99 seq1 163 99 35M = 341 213 GCTGCTGGCAAGCTAGAGTCCCATTTGGAGCCCCT 8<;<<<<81<<<<<;<<;<<<;9</;6;;809034 MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:7:82:926:112 99 seq1 164 99 35M = 328 199 CTGCTGGCAAGCTAGAGTCCCATTTGGAGCCCCTC <;<<<<<<<<<5<<<<<<<<<<<<<<<;<<1:<4< MF:i:18 Aq:i:41 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:5:324:728:956 99 seq1 165 99 35M = 322 192 TGCTGGCAAGCTAGAGTCCCATTTGGAGCCCCTCT <<<<<<<<<<<<<<<<<<<<8<<<:<::;;;;<:< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:4:294:525:849 163 seq1 167 99 35M = 340 208 CTGGCAAGCTAGAGTCCCATTTGGAGCCCCTCTAA <<<<<<<<<<<<<<<<<<<<<<9+<:<<<<9;;15 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:7:159:125:297 163 seq1 170 99 35M = 337 202 GCAAGCTAGAGTCCCATTTGGAGCCACTCTAAGAC <<<<<<<<<<<<<<;<<<;<;<<6;)<:9;26;39 MF:i:18 Aq:i:43 NM:i:2 UQ:i:26 H0:i:0 H1:i:1
+EAS54_65:6:164:797:930 99 seq1 173 99 35M = 332 194 AGCTAGAGACCCATTTGGAGCCCCTCTAAGCCGTT <<<<<<<<<<<<<<<;;;:<<<<<;<;<<<<<,:: MF:i:18 Aq:i:45 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS54_81:7:293:355:321 163 seq1 174 99 35M = 356 217 GCTAGAGTCCCATTTGGAGCCCCTCTAAGCCGTTC <<<:<;<<<<<<<;<<<<<<<<<;<<;4<<<:+:< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:1:209:653:400 163 seq1 175 99 35M = 340 200 CTAGAGTCCCATTTGGAGCCCCTCTAAGCCGTTCT <;<9<<+<2<9<,;;64;<<<<;8<00*1<48:+8 MF:i:18 Aq:i:59 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:2:62:1109:804 163 seq1 176 99 35M = 350 209 TAGAGTCCCATTTGGAGCCCCTCTAAGCCGTTCTA <<<<<<<<<<<<<:<<:<<<<<<:<:<<<<;;;;; MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_78:7:303:402:142 163 seq1 181 99 35M = 343 197 TCCCATTTGGAGCCCCTCTAAGCCGTTCTATTTGT <8<<<<<<<<<<<<<<<<<<<<<<<46<648;;'; MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:8:321:642:388 163 seq1 181 99 35M = 357 209 TCCCATTTGGAGCCCCTCTAAGCCGTTCTATTTGT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<6<<<8; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:2:1:1140:1206 163 seq1 181 99 35M = 368 222 TCCCATTTGGAGCCCCTCTAAGCCGTTCTATTTGT ;;;;;;;;;;;;;:9;;7;;:;:;97;:;:88888 MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:6:155:68:326 99 seq1 182 99 36M = 332 186 CCCATTTGGAGCCCCTCTAAGCCGTTCTATTTGTAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<:<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:7:19:886:279 99 seq1 182 99 35M = 337 190 CCCATTTGGAGCCCCTCTAAGCCGTTCTATTTGTA <9<<<<<<<<<<<<6<28:<<85<<<<<2<;<9<< MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_61:4:143:69:578 147 seq1 185 98 35M = 36 -184 ATTGGGAGCCCCTCTAAGCCGTTCTATTTGTAATG 222&<21<<<<12<7<01<<<<<0<<<<<<<20<< MF:i:18 Aq:i:35 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS54_71:4:13:981:659 181 seq1 187 0 * = 188 0 CGGGACAATGGACGAGGTAAACCGCACATTGACAA +)---3&&3&--+0)&+3:7777).333:<06<<< MF:i:192
+EAS54_71:4:13:981:659 121 seq1 188 37 34M = 187 0 TGTAGCCCCTCTAAGGCGTTCTATTTGTAATGAA ()&)06636;;<664*6;<<<<<<<<<<<<<<<1 MF:i:64 Aq:i:0 NM:i:2 UQ:i:14 H0:i:0 H1:i:1
+B7_610:1:37:652:403 163 seq1 193 99 35M = 347 189 CCCCTCTAAGCCGTTCTATTTGTAATGAAAACTAT <<<<<<<;<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:1:282:274:50 163 seq1 193 99 35M = 371 213 CCCCTCTAAGCCGTTCTATTTGTAATGAAAACTAT <<<<<<<<<<<<<<<<<;<<<<<99<9<5909;5; MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:2:133:460:542 99 seq1 195 99 36M = 356 197 CCTATAAGCCGTTCTATTTGTAATGAAAACTATATT <<<<<<<<<<<;<<<<<<<<<<<<;<<<<<<<<<<; MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS54_73:5:44:498:945 99 seq1 195 82 35M = 377 217 CCTATAAGCCGTTCTATTTGTAATGAAAACTATAT ;<;<<<<<<<<<<9<;<:<<<<<<:<<<<;:;<3< MF:i:18 Aq:i:37 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+B7_610:1:139:152:856 99 seq1 198 99 35M = 392 229 CTAAGCCGTTCTATTTGTAATGAAAACTATATTTA <<<<<<<<;<<<<<<<<<<;<;<<<;<<<<;<;;; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:2:323:639:311 163 seq1 200 99 36M = 357 193 AAGCCGTTCTATTTGTAATGAAAACTATATTTAGGC <<<<<<<<<<<<<<<<<<<2<<<<<<;<<<<<<81< MF:i:18 Aq:i:70 NM:i:1 UQ:i:23 H0:i:1 H1:i:0
+EAS114_39:2:18:967:582 163 seq1 200 99 35M = 398 233 AAGCCGTTCTATTTGTAATGAAAACTATATTTATG <<<<<<<<<<<<<<<<<<<<<9<<<<<<;<<<<<8 MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:8:186:850:838 99 seq1 205 99 35M = 389 219 GTTCTATTTGTAATGAAAACTATATTTATGCTATT <<<<<;<<<<<<<<<<<:<<<<<;<<<;</<<;<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_53:3:126:558:408 163 seq1 206 99 35M = 368 197 TTCTATTTGTAATGAAAACTATATTTATGCTATTC <<<<<<<<<<<<<:<<<<<<<<<<<<<<7<;<<;; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:6:157:643:175 163 seq1 206 99 35M = 380 209 TTCTATTTGTAATGAAAACTATATTTATGCTATTC <<<<<<<<;<<<<<<<<<<<<<<<<<<<)<<<<;< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:5:141:711:813 99 seq1 209 99 35M = 370 196 TATTTGTAATGAAAACTATATTTATGCTATTCAGT <<<<<<<<<<;<<<<<<<<<<<<<<;<<<<<<:+< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:6:115:538:276 163 seq1 209 99 35M = 360 186 TATTTGTAATGAAAACTATATTTATGCTATTCAGT <<<<<<<<;<<<;;<<<;<:<<<:<<<<<<;;;7; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:7:51:1429:1043 83 seq1 209 99 35M = 59 -185 TATTTGTAATGAAAACTATATTTATGCTATTCAGT 9<5<<<<<<<<<<<<<9<<<9<<<<<<<<<<<<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:1:176:168:513 163 seq1 210 99 35M = 410 235 ATTTGTAATGAAAACTATATTTATGCTATTCAGTT <<<<;<<<<<<<<<<<<<<<<<<<:&<<<<:;0;; MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:7:282:817:710 99 seq1 211 99 35M = 384 208 TTTGTAATGAAAACTATATTTATGCTATTCAGTTC <<<<<<<<<<<<<<<<<<<<<<<;:<<<<:8,<<8 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:1:65:787:74 83 seq1 213 88 35M = 61 -187 TGTAATGAAAACTATATTTATGCTATTCAGTTCTA 44848=:1661/66==?:<=:?6><<<<1>><<<< MF:i:18 Aq:i:21 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:4:240:264:231 121 seq1 213 66 35M = 213 0 TGTAATGAAAACTATATTTATGCTATTCAGTTCTA 9;,;;62<9<)29<<<;96<<<;<<7<<<<<<;<< MF:i:64 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:4:240:264:231 181 seq1 213 0 * = 213 0 CAACAGATCAAGAAGGAGGGGCAATGGACGAGTTA %15+5022))0&<<)0)+7:4+&<0<<:0<<<7<< MF:i:192
+EAS1_93:7:14:426:613 99 seq1 214 99 35M = 379 200 GTAATGAAAACTATATTTATGCTATTCAGTTCTAA ======;=;==========;;==3=;==-=<;<;< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:2:173:995:93 163 seq1 215 99 35M = 382 202 TAATGAAAACTATATTTATGCTATTCAGTTCTAAA <<<<<<<<<<<<<<<<<<<7:<<<<;:<:<<<<:7 MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:6:195:348:703 163 seq1 215 99 35M = 353 173 TAATGAAAACTATATTTATGCTATTCAGTTCTAAA <<<<<<<;<<<<<;:<<<<<<<<<<<<:<1:<:7< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:2:62:879:264 163 seq1 216 99 35M = 396 215 AATGAAAACTATATTTATGCTATTCAGTTCTAAAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<2<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_61:4:83:452:970 99 seq1 216 99 35M = 379 198 AATGAAAACTATATTTATGCTATTCAGTTCTAAAT ==========================;======== MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:2:64:1318:1711 99 seq1 218 99 35M = 389 206 TGAAAACTATATTTATGCTATTCAGTTCTAAATAT <<<<<<<<<<<<<<<<7<<<<<<<:<<<<<2<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:8:113:968:19 83 seq1 219 99 35M = 50 -204 GAAAACTATATTTATGCTATTCAGTTCTAAATATA 8;<;8;9<<<<<<<9<:<<<<<<<<<;<<<<<<<< MF:i:18 Aq:i:63 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:4:160:896:275 163 seq1 220 99 35M = 387 202 AAAACTATATTTATGCTATTCAGTTCTAAATATAG ============<====<==<====<==<==;=:6 MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:6:181:191:418 163 seq1 221 99 36M = 387 202 AAACTATATTTATGCTATTCAGTTCTAAATATAGAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<988 MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:7:242:354:637 99 seq1 222 99 36M = 417 231 AACTATATTTATGCTATTCAGTTCTAAATATAGAAA <<<<<<<<<<<<<<<<<<<<<<<<<<;<<<<<6<;; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:1:122:77:789 163 seq1 223 99 35M = 396 208 ACTATATTTATGCTATTCAGTTCTAAATATAGAAA <<<:<4<<9<:7<<<:<<<7<<<<<<<<<<9<9<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:5:42:540:501 147 seq1 224 99 36M = 60 -200 CTATATTTATGCTATTCAGTTCTAAATATAGAAATT ;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:6:155:12:674 83 seq1 224 99 36M = 52 -208 CTATATTTATGCTATTCAGTTCTAAATATAGAAATT ;<<<<<<<<<<;<<<<;<<<<8<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:4:106:316:452 147 seq1 224 99 36M = 49 -211 CTATATTTATGCTATTCAGTTCTAAATATAGAAATT :<<<<<;<<<<:<<:<<<<<<7<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:5:89:525:113 163 seq1 227 78 40M = 397 210 TATTTATGCTATTCAGTTATAAATATAGAAATTGAAACAG <1<7<6;+0;7;7'<70;-<7<:<:<<5<<:9<5:7:%:7 MF:i:18 Aq:i:39 NM:i:1 UQ:i:12 H0:i:0 H1:i:1
+EAS54_65:3:321:311:983 147 seq1 228 99 35M = 51 -212 ATTTATGCTATTCAGTTCTAAATATAGAAATTGAA ;;4;;<7<<<<<<77<<<<<<<<<<17<<<<<<<< MF:i:18 Aq:i:62 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:8:76:493:708 147 seq1 229 44 35M = 73 -191 TTTATGCTATTCAGTTCTAAATATAGAAATTGAAA 5/)63.&1517(544(055(0454&7706566679 MF:i:18 Aq:i:44 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:2:125:628:79 163 seq1 229 99 35M = 400 205 TTTATGCTATTCAGTTCTAAATATAGAAATTGAAA ==================<6<====<<:<==7;:: MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:5:78:583:499 83 seq1 229 74 35M = 37 -227 TTTACGCTATTCAGTACTAAATATAGAAATTGAAA &6&9774&<;67<44&-4<;<9<7<<<<<;<<<<< MF:i:18 Aq:i:37 NM:i:2 UQ:i:27 H0:i:0 H1:i:1
+EAS54_67:3:175:730:949 83 seq1 230 99 35M = 70 -195 TTATGCTATTCAGTTCTAAATATAGAAATTGAAAC <<<<;+<<<<7<;<<;<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:1:84:275:1572 163 seq1 230 99 35M = 394 199 TTATGCTATTCAGTTCTAAATATAGAAATTGAAAC /6;;;4;;;;;;;;7;;4;.4;;;;;6;;;77077 MF:i:18 Aq:i:62 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:4:248:753:731 99 seq1 231 99 35M = 402 206 TATGCTATTCAGTTCTAAATATAGAAATTGAAACA <<<<<<<<<<<8<<<<<<<<<<<<:<<<<&<:<.: MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:1:9:1289:215 99 seq1 231 99 35M = 394 198 TATGCTATTCAGTTCTAAATATAGAAATTGAAACA ;;;;;;9;;;67;;;;;99;9;;;;;;;;977747 MF:i:18 Aq:i:59 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:7:188:802:71 163 seq1 232 99 35M = 415 218 ATGCTATTCAGTTCTAAATATAGAAATTGAAACAG <<<<<<<<<;<<<<<9<<<:<<<:<<<<<<:<<<; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:7:252:171:323 83 seq1 234 99 35M = 43 -226 GCTATTCAGTTCTAAATATAGAAATTGAAACAGCT ;8<;<=3=6==:====;;======;========== MF:i:18 Aq:i:62 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:5:223:142:410 147 seq1 235 99 35M = 60 -210 CTATTCAGTTCTAAATATAGAAATTGAAACAGCTG 8;<<<;<<<<;<<<<<<;<;<<<<<<<<<<<<;<< MF:i:18 Aq:i:39 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:1:243:10:911 83 seq1 236 99 35M = 63 -208 TATTCAGTTCTAAATATAGAAATTGAAACAGCTGT ;<;;;<4;9:<<<;<<;<<<<<;;<<<<<<<<<<< MF:i:18 Aq:i:64 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:6:5:730:1436 163 seq1 236 99 35M = 403 202 TATTCAGTTCTAAATATAGAAATTGAAACAGCTGT ;;;;;;;;;;;;;;;;;;8;;;;;8;;;;;67777 MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:2:57:1672:1890 121 seq1 236 75 40M = 236 0 TATTCAGTTCTAAATATAGAAATTGAAACAGCTGTGTTTA :;;;9<8;;*<<<<<<:<<<<<<<<1:<<<<<<<<<<<7< MF:i:64 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:2:57:1672:1890 181 seq1 236 0 * = 236 0 CCCCCCCCCCCCCCCCCAGCCACTGCGGCCCCCCCAGCCA -+)%)'-'+,,<066,))090+:&486083:5&&:<<5<0 MF:i:192
+EAS1_105:2:299:360:220 99 seq1 237 99 35M = 403 201 ATTCAGTTCTAAATATAGAAATTGAAACAGCTGTG <<<<<<<9<9<<<<<<<<<<<<<<<<<5<;<0<<< MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:2:24:1037:84 163 seq1 238 99 35M = 415 212 TTCAGTTCTAAATATAGAAATTGAAACAGCTGTGT <<<<<<<<<<<<<<<<<<<<<<;<<<<<<;:<57< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:3:86:823:683 163 seq1 240 99 35M = 408 203 CAGTTCTAAATATAGAAATTGAAACAGCTGTGTTT <<<<<<<<;<<<<<<<<<<<<<<<<<<<<;;9<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_53:4:130:568:978 99 seq1 246 88 35M = 434 223 TAAATATAGAAATTGAAACAGCTGTGTTTAGTGAC 7<<;<<;<7<:;<7<<<<<<<<);4;+<7+3+%;< MF:i:18 Aq:i:24 NM:i:1 UQ:i:26 H0:i:1 H1:i:0
+EAS114_45:4:73:1208:495 163 seq1 246 99 35M = 431 220 TAAATATAGAAATTGAAACAGCTGTGTTTAGTGCC ;;;;;;;;;;;;;;;;;;;;;;;;5;;;;;37377 MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:7:264:642:506 99 seq1 247 99 35M = 420 208 AAATATAGAAATTGAAACAGCTGTGTTTATTGTAT <<;<<<<<<;<<<;:;;:;;<<;<<<<;*+;*&.4 MF:i:18 Aq:i:56 NM:i:3 UQ:i:28 H0:i:1 H1:i:0
+EAS114_28:5:104:350:749 163 seq1 247 99 36M = 415 204 AAATATAGAAATTGAAACAGCTGTGTTTAGTGCCTT <<8<<<<<<<<<<<;<<<<<<<<0;<<<9;<85;;; MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:6:227:259:597 147 seq1 248 99 35M = 61 -222 AATATAGAAATTGAAACAGCTGTGTTTAGTGCCTT <8<;2;9;<;;-92<;;;<;<<<<<<<<<<<<<<< MF:i:18 Aq:i:61 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_32:7:113:809:364 99 seq1 250 99 35M = 413 198 TATAGAAATTGAAACAGCTGTGTTTAGTGCCTTTG <<<<<<<<<<<<<<<<<<<<<<<<<<7<;<;<<<4 MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:2:218:877:489 83 seq1 250 86 35M = 80 -205 TATAGAAATTGAAACAGCTGTGTTTAGTGCCTTTG 9<<<8<<<;<9<<<<<<<<<<;<<<<<<<<<<<<< MF:i:18 Aq:i:10 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:7:20:979:96 83 seq1 254 99 35M = 79 -210 GAAATTGAAACAGCTGTGTTTAGTGCCTTTGTTCA '9996;(:;-<;1<<<<=<<<<=<<<<<<<<<<<< MF:i:18 Aq:i:37 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:2:259:219:114 99 seq1 254 99 35M = 411 192 GAAATTGAAACAGCTGTGTTTAGTGCCTTTGTTCA <<<<<<<<<<<<<<<;<<<<<<7<7<<<<<0<<9< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:6:13:1034:1144 99 seq1 256 99 35M = 429 208 AATTGAAACAGCTGTGTTTAGTGCCTTTGTTCACA <<<<<<<<<<<<<<<<<<<<<<<<3<<<;<<;<++ MF:i:18 Aq:i:69 NM:i:2 UQ:i:48 H0:i:1 H1:i:0
+EAS221_1:2:29:1486:672 147 seq1 256 99 35M = 79 -212 AATTGAAACAGCTGTGTTTAGTGCCTTTGTTCACA <<:<<<<;<<<<<<<<<<<<<<<<<<<<<<<<<++ MF:i:18 Aq:i:29 NM:i:2 UQ:i:54 H0:i:0 H1:i:0
+EAS139_11:7:46:695:738 163 seq1 259 74 35M = 428 204 TGAAACAGCTGAGTTTAGCGCCTGTGTTCACATAG <;<<<<;<<),&4<3<<7&7<0;)).3;79;7<;0 MF:i:130 Aq:i:74 NM:i:3 UQ:i:18 H0:i:0 H1:i:0
+EAS139_11:8:26:1221:222 163 seq1 261 99 35M = 446 220 AAACAGCTGTGTTTAGTGCCTTTGTTCAACCCCCT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:78 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:3:190:727:308 147 seq1 263 99 35M = 103 -195 ACAGCTGTGTTTAGTGCCTTTGTTCAACCCCCTTG ;;<;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:3:284:261:124 83 seq1 263 99 35M = 79 -219 ACAGCTGTGTTTAGTGCCTTTGTTCAACCCCCTTG ===27===.====&===========;;======== MF:i:18 Aq:i:39 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:7:141:80:875 147 seq1 265 99 35M = 110 -190 AGCTGTGTTTAGTGCCTTTGTTCAACCCCCTTGCA 6/<;84<;<;<<<<<<5<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:3:24:1135:563 163 seq1 266 99 40M = 446 220 GCTGTGTTTAGTGCCTTTGTTCAACCCCCTTGCAACAACC <<<<:<<<<:1:<<<<<<.<<<<<<<<;<;;;43+:30:: MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:2:90:986:1224 83 seq1 267 99 35M = 67 -235 CTGTGTTTAGTGCCTTTGTTCAACCCCCTTGCAAC <7*37;;;;;;;9<<;<7<<<<<<<<<<<;;<<<< MF:i:18 Aq:i:41 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:7:287:492:169 99 seq1 269 99 36M = 449 216 GTGTTTAGTGCCTTTGTTCAACCCCCTTGCAACAAC <<<7<<<<<<<<<<<<<<<<<<<<<<<8;;<;6<<; MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_4:1:48:9:409 99 seq1 271 75 18M5I12M = 464 228 GTTTAGTGCCTTTGTTCACATAGACCCCCTTGCAA <<<<<<<<<<<<<:<<<<<<<<<<<<<<<<<<<<< MF:i:130 Aq:i:75 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS139_19:1:87:1222:878 163 seq1 272 10 40M = 435 203 TATAGGGCCTTTGTTCAAACCCCTTGCAACAACCTTGAGA &+6<6&<:<<9<1112<<;)9227</);;;2-79;)/769 MF:i:18 Aq:i:10 NM:i:3 UQ:i:41 H0:i:0 H1:i:0
+B7_591:7:200:192:373 163 seq1 275 75 14M5I17M = 451 212 AGTGCCTTTGTTCACATAGACCCCCTTGCAACAACC <<<<<<<<<<<<<<<<<<<<<<<<<:<:<;5<<;<< MF:i:130 Aq:i:75 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS56_65:1:163:846:223 163 seq1 278 74 11M5I19M = 463 220 GCCTTTGTTCACATAGACCCCCTTGCAACAACCTT <<<<;<<;4<<<;;9<<<<<+<<;<</27;;47;. MF:i:130 Aq:i:74 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS114_30:7:283:799:560 83 seq1 283 66 35M = 121 -197 ACATAGACCCCCTTGCAACAACCTTGAGAACCCCA <4<6<8;;6<<<+;<:<<;<<<<<<<<<<<<<<<< MF:i:130 Aq:i:66 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+B7_595:4:84:802:737 147 seq1 284 68 35M = 140 -179 CATAGACCCCCTTGCAACAACCTTGAGAACCCCAG +<1<-;69;;;;8;:<<6<;<<<<<<<<<<<<<<< MF:i:130 Aq:i:68 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS51_66:5:308:400:602 163 seq1 285 71 35M = 470 220 ATAGACCCCCTTGCAACAACCTTGAGAACCCCAGG ;<<<<<<<<<<<<<<<<<<<<<<<<;;;<<;<;76 MF:i:130 Aq:i:71 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS54_81:2:285:367:932 163 seq1 285 74 35M = 440 190 ATAGACCCCCTTGCAACAACCTTGAGAACCCCAGG ===========;======;=====;=======5== MF:i:130 Aq:i:74 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS114_39:1:70:147:84 83 seq1 285 73 35M = 128 -192 ATAGACCCCCTTGCAACAACCTTGAGAACCCCAGG <<<:<;<<<<<<;<<<<<<<<<<<<<<<<<<<<<; MF:i:130 Aq:i:73 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS51_62:3:314:386:190 99 seq1 287 98 35M = 459 207 AGACCCCCTTGCAACAACCTTGAGAACCCCAGGGA ++<<<<<<<<<<<<<<<<<<<<<<<<<<<<8<<<< MF:i:18 Aq:i:29 NM:i:2 UQ:i:54 H0:i:0 H1:i:0
+EAS56_65:1:53:272:944 99 seq1 287 99 35M = 447 195 CAACCCCCTTGCAACAACCTTGCGAACCCCAGGGA <<<<<<<<<<<<.7<.<<<<<<-<-<<<<<&<222 MF:i:18 Aq:i:41 NM:i:1 UQ:i:12 H0:i:0 H1:i:1
+EAS188_7:5:112:51:128 163 seq1 287 99 35M = 477 225 AGACCCCCTTGCAACAACCTTGAGAACCCCAGGGA ++<<<<<<<<<<<<<5<<<<<<<<<<<<<<;<;<6 MF:i:18 Aq:i:29 NM:i:2 UQ:i:54 H0:i:0 H1:i:0
+EAS56_57:6:44:280:641 163 seq1 288 99 35M = 454 201 AACCCCCTTGCAACAACCTTGAGAACCCCAGGGAA ;<<<<<<<<<<66<;<<<<<;<<2;;;<<;;;;,; MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:6:75:946:1035 99 seq1 288 99 35M = 480 227 AACCCCCTTGCAACAACCTTGAGAACCCCAGGGAA <<<<<<<<<<;<<<;<<<<<<<8;<6<<<<44<:4 MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:2:187:227:818 83 seq1 290 99 35M = 129 -196 CCCCCTTGCAACAACCTTGAGAACCCCAGGGAATT <<9<<;<<;<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:3:40:1128:1940 83 seq1 291 99 35M = 112 -214 CCCCTTACAACAACCTTGAGAACCCCAGGGAATTT <<<:///77:<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:70 NM:i:1 UQ:i:14 H0:i:1 H1:i:0
+EAS54_71:4:72:63:435 99 seq1 293 99 34M = 490 232 CCTTGCAACAACCTTGAGAACCCCAGGGAATTTG <<<<<<<<<<<<<<<<<<<<;<<<;<;;39:7:7 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:6:271:244:568 99 seq1 294 99 35M = 481 222 CTTGCAACAACCTTGAGAACCCCAGGGAATTTGTC <<<<<<<<<<<<<<<<<<<<<<<<<<<<.<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:7:82:902:868 99 seq1 295 99 35M = 471 211 TTGCAACAACCTTGAGAACCCCAGGGAATTTGTCA <<<<<<;<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:7:313:83:546 163 seq1 296 99 35M = 454 193 TGCAACAACCTTGAGAACCCCAGGGAATTTGTCAA <<<<<<<<<<;<<<<<<<<<<<<<<4<<<:<;<<9 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:4:57:786:414 163 seq1 296 99 35M = 453 192 TGCAACAACCTTGAGAACCCCAGGGAATTTGTCAA <<<<<<<<<<<<<<<<<<<<<<<:<<:<<:;;7<7 MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:7:260:985:520 163 seq1 296 99 35M = 468 207 TGCAACAACCTTGAGAACCCCAGGGAATTTGTCAA <<<<<<<<<<<<<<<<<;:;<<;<:<<<,:1;)<; MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:6:170:169:57 83 seq1 296 99 35M = 138 -193 TGCAACAACCTTGAGAACCCCAGGGAATTTGTCAA 778<:<<<9<<<<<;<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:6:199:327:965 163 seq1 297 91 35M = 494 232 NCAACAACCTTGAGAACCCCAGGGAATTTGTCAAT !,+*+++++++++++*+++++++**)+*+**+(** MF:i:18 Aq:i:19 NM:i:1 UQ:i:0 H0:i:0 H1:i:1
+B7_610:5:147:68:353 163 seq1 299 99 35M = 486 222 AACAACCTTGAGAACCCCAGGGAATTTGTCAATGT <;<;<<7<<<<<<<7<<;;<7<4<8<<<8.;4;;; MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:1:225:195:543 147 seq1 299 99 35M = 123 -211 AACAACCTTGAGAACCCCAGGGAATTTGTCAATGT ;;8;;+;(<<<<<<<<7;<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:1:303:184:14 163 seq1 301 99 35M = 479 213 CAACCTTGAGAACCCCAGGGAATTTGTCAATGTCA <<<<<<8<0<<<<-<-98<<--<<<6;076;75+& MF:i:18 Aq:i:61 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:6:326:309:149 163 seq1 301 99 35M = 467 201 CAACCTTGAGAACCCCAGGGAATTTGTCAATGTCA <<<<<<<<<<<<<<<<<<<<:<<<<<<<<<;;;;: MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:4:327:795:103 147 seq1 302 99 35M = 133 -204 AACCTTGAGAACCCCAGGGAATTTGTCAATGTCAG ;::;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:7:110:355:323 99 seq1 303 99 35M = 477 209 ACCTTGAGAACCCCAGGGAATTTGTCAATGTCAGG <<<<<<<<<<<<<<<<<<<<<<<<;<<<<;;<<8; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:1:18:1418:237 99 seq1 304 99 35M = 503 234 CCTTGAGAACCCCAGGGAATTTGTCAATGTCAGGG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<9<7< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:7:112:203:90 163 seq1 305 99 35M = 470 200 CTTGAGAACCCCAGGGAATTTGTCAATGTCAGGGA <<:<<<<<<<<.<<<<<<<<<<<<6<:867<8884 MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:7:319:246:304 99 seq1 305 99 35M = 472 202 CTTGAGAACCCCAGGGAATTTGTCAATGTCAGGGA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;;: MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:6:114:714:317 147 seq1 311 99 35M = 126 -220 AACCCCAGGGAATTTGTCAATGTCAGGGAAGGAGC ;8<;:<<;<;<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:5:327:991:508 99 seq1 312 99 35M = 495 218 ACCCCAGGGAATTTGTCAATGTCAGGGAAGGAGCA <<<<<<<<<<<<<<<<<<<<<;<;:<7:47;:75; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:4:77:29:126 147 seq1 315 99 35M = 131 -219 ACAGGGAATTTGTCAATGTCAGGGAAGGAGCATTT ()9;;<<<<<<<<<<5<<<7<<<<<<;<<<;7<<< MF:i:18 Aq:i:69 NM:i:1 UQ:i:7 H0:i:1 H1:i:0
+EAS219_1:1:37:1004:1136 99 seq1 315 99 35M = 473 193 CCAGGGAATTTGTCAATGTCAGGGAAGGAGCATTT <<<<<<<<<<<<<<;<<<;<<<<<:<<;;369<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_4:7:78:583:670 83 seq1 316 99 35M = 142 -209 CAGGGAATTTGTCAATGTCAGGGAAGGAGCATTTT 8<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:3:90:435:691 147 seq1 318 99 35M = 147 -206 GGGAATTTGTCAATGTCAGGGAAGGAGCATTTTGT ;;<;;;+<<:<<<:<;;<<<<<<<<<<<<<<<<<; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:6:69:735:1915 147 seq1 321 99 35M = 154 -202 AATTTGTCAATGTCAGGGAAGGAGCATTTTGTCAG <<::<<<7<<<<7<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:5:324:728:956 147 seq1 322 99 35M = 165 -192 ATTTGTCAATGTCAGGGAAGGAGCATTTTGTCAGT <;;;;5;<<0<<<<<<<<<<<<<<<;<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:5:269:280:716 99 seq1 323 99 35M = 490 202 TTTGTCAATGTCAGGGAAGGAGCATTTTTTCAGTT <<<<<<<<<2<<:2:1<<7/2/:3<<<<*<3($<< MF:i:18 Aq:i:58 NM:i:1 UQ:i:9 H0:i:1 H1:i:0
+EAS54_73:3:88:24:744 163 seq1 325 84 35M = 484 194 TGTCAATGTCAGGGAAGGAGCATTTTTGAAGTTTA <7*:<<::.'<<<<:<<:<<'<63'6+'303*%%+ MF:i:18 Aq:i:21 NM:i:5 UQ:i:53 H0:i:0 H1:i:0
+EAS1_108:7:82:926:112 147 seq1 328 99 35M = 164 -199 CAATGTCAGGGAAGGAGCATTTTGTCAGTTGCCAA <1:/<*6<<6<<<<<6<<<<<<4<<<<82<+<<<< MF:i:18 Aq:i:41 NM:i:1 UQ:i:10 H0:i:0 H1:i:1
+EAS56_63:7:185:213:330 163 seq1 328 99 35M = 502 209 CAATGTCAGGGAAGGAGCATTTTGTCAGTTACCAA <<<<<<<<<;<<;<<<<<;<<<<;;;<<;<<;<38 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:3:277:458:330 163 seq1 329 99 36M = 490 197 AATGTCAGGGAAGGAGCCTTTTGTCAGTTACCAAAT <<7<<<<<<<<<2<<<%,<6<&<<,<<<<:<<<<(7 MF:i:18 Aq:i:41 NM:i:1 UQ:i:11 H0:i:0 H1:i:1
+B7_595:1:81:1000:375 163 seq1 329 90 35M = 524 230 NATGTCAGGGAAGGAGCATTTTGTCAGTTACCAAA !.............................+.(+. MF:i:18 Aq:i:19 NM:i:1 UQ:i:0 H0:i:0 H1:i:1
+EAS220_1:8:33:672:473 99 seq1 330 99 35M = 515 220 ATGTCAGGGAAGGAGCATTTTGTCAGTTACCAAAT <<<<<<<<7<7<7<<62<<<<66<15*/99*5241 MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:6:164:797:930 147 seq1 332 99 35M = 173 -194 GTCAGGGAAGGAGCATTTTGTCAGTTACCAAATGT ;;:;8<;<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:6:155:68:326 147 seq1 332 99 36M = 182 -186 GTCAGGGAAGGAGCATTTTGTCAGTTACCAAATGTG ;<<<:6<<<<<<6<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:5:202:39:380 99 seq1 334 99 35M = 513 214 CAGGGAAGGAGCATTTTGTCAGTTACCAAATGTGT <<<<<<<<<<<<<<<<<;<<:;<<18<84:<&<+< MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:7:42:1091:1726 99 seq1 334 99 35M = 502 203 CAGGGAAGGAGCATTTTGTCAGTTACCAAATGTGT <<<<<<<<<<<<<<<<<<<<<<8<<<<<<8:<.<: MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:5:66:959:1311 83 seq1 336 95 35M = 159 -212 GGGAAGGAGCATTTTGTCAGTTACCAAATGTGTTT 67.68:4::6;;;7:6:;:5;8;;<<:;;<;;;;< MF:i:18 Aq:i:31 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:1:200:559:765 99 seq1 337 99 36M = 521 220 GGAAGGAGCATTTTGTCAGTTACCAAATGTGTTTAT <<<<<<<<<<<<<<7<<<<<<;<<;;4<7<9;<<-; MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:4:328:669:662 99 seq1 337 99 34M = 512 210 GGAAGGAGCATTTTGTCAGTTACCAAATGTGTTT <<<<<<<<<<<<<<<<<<<<<<<<+9;<;;.<<< MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:7:159:125:297 83 seq1 337 99 35M = 170 -202 GGAAGGAGCATTTTGTCAGTTACCAAATGTGTTTA 89<;;8<<;<;<4<;<8<<<<;;8<<<<<<<<<<< MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:7:19:886:279 147 seq1 337 99 35M = 182 -190 GAAAGGAGCATTTTGTCAGTTACCAAATGTGTTTA 9%<2)2.2::<;<<<2<<<<<<<<<<<<<<<<<;< MF:i:18 Aq:i:67 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+B7_595:1:209:653:400 83 seq1 340 99 35M = 175 -200 AGGAGCATTTTGTCAGTTACCAAATGTGTTTATTA <69<98<+<<6<<4<<<<</4<<:<4<<<<<<<<< MF:i:18 Aq:i:59 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:4:294:525:849 83 seq1 340 99 35M = 167 -208 AGGAGCATTTTGTCAGTTACCAAATGTGTTTATTA ;<;:;:<;<;<<<3<<<;<;<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:4:87:1375:1303 163 seq1 340 99 35M = 529 224 AGGAGCATTTTGTCAGTTACCAAATGTGTTTATTA <<<<<<<<<<<<9<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:6:325:759:288 147 seq1 341 99 35M = 163 -213 GGAGCATTTTGTCAGTTACCAAATGTGTTTATTAC 9;<9<;<;;<;<;<;<<<:<;<<<;<<<<<;<<<< MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:7:76:786:458 163 seq1 341 99 35M = 502 196 GGAGCATTTTGTCAGTTACCAAATGTGTTTATTAC <<.<<<<2<<:84<:<<<:<8<<)<)429<2<<8< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:1:210:880:606 163 seq1 341 99 35M = 518 212 GGAGCATTTTGTCAGTTACCAAATGTGTTTATTAT <<<<<<<<<<<<<<<<<<;<<<<<<:<<<<3<<8& MF:i:18 Aq:i:72 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS192_3:3:257:611:440 99 seq1 341 99 35M = 524 218 GGAGCATTTTGTCAGTTACCAAATGTGTTTATTAC <<<<<<<<<<<<<<<<<<<<8<<<<;<<<<8<<+5 MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_78:7:303:402:142 83 seq1 343 99 35M = 181 -197 AGCATTTTGTCAGTTACCAAATGTGTTTATTACCA ;;;;;<9<<8;<<<<7<<;<<<<;<<<<<<<<<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:3:13:122:187 83 seq1 343 99 35M = 153 -225 AGCATTTTGTCAGTTACCAAATGTGTTTATTACCA <<&<;;<<<;7<<<<;<;<<<<<<<<<<<<;<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:3:80:885:513 163 seq1 344 99 35M = 507 198 GCATTTTGTCAGTTACCAAATGTGTTTATTACCAG <<<<<<<<<<<<<<<<<<<:<<<<2:<;<<75<7; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_4:7:90:1873:89 99 seq1 344 99 35M = 531 222 GCATTTTGTCAGTTACCAAATGTGTTTATTACCAG <<<<<<<<<<<<<<<<<<<<<<<<<<<;<<7<<<7 MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:1:37:652:403 83 seq1 347 99 35M = 193 -189 TTTTGTCAGTTACCAAATGTGTTTATTACCAGAGG <;<<<<:<<;<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_53:8:28:701:724 163 seq1 347 99 35M = 521 209 TTTTGTCAGTTACCAAATGTGTTTATTACCAGAGG <<<<<<7<<<<<<7::<:<<-<<::::::<747:: MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:8:66:655:769 99 seq1 348 99 35M = 515 202 TTTGTCAGTTACCAAATGTGTTTATTACCAGAGGG 8;<<<<<8<<<<<;<<<7<;<<<<<;<7<27<;;7 MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:5:231:339:551 163 seq1 350 99 35M = 527 212 TGTCAGTTACCAAATGTGTTTATTACCAGAGGGAT <<<<<<;<<<<<<;<<<<<<<<<<;5<<46;<;:1 MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:6:129:694:359 163 seq1 350 88 35M = 525 210 TGTCAGTTACCAAATGTGTTTATTACCCGAGGGAT ============+7=======:==;;;'=;==7;= MF:i:18 Aq:i:43 NM:i:1 UQ:i:6 H0:i:0 H1:i:1
+EAS220_1:2:62:1109:804 83 seq1 350 99 35M = 176 -209 TGTCAGTTACCAAATGTGTTTATTACCAGAGGGAT <<<<<:<<<::<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:8:157:935:374 99 seq1 353 99 35M = 512 194 CAGTTACCAAATGTGTTTATTACCAGAGGGATGGA <<<<<<<<<<;<<;;<<<<<<<<<::8'5++;+11 MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:4:103:111:720 99 seq1 353 99 36M = 512 195 CAGTTACCAAATGTGTTTATTACCAGAGGGATGGAG <<<<<<<<<<<<<<<<<<<<<<<<<5<<<5;<5<:; MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:7:311:100:539 163 seq1 353 99 35M = 508 190 CAGTTACCAAATGTGTTTATTACCAGAGGGATGGA <<<<;<<<<;<<<<<;<<<<<<<<<:<::;7;<0; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:6:195:348:703 83 seq1 353 99 35M = 215 -173 CAGTTACCAAATGTGTTTATTACCAGAGGGATGGA <9<<9</<<<<<<<<<<<<<<2<8<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:6:72:308:839 163 seq1 354 99 40M = 517 203 AGTTACCAAATGTGTTTATTACCAGAGGGATGGAGGGAAG <<<<<<<<<<<<<<<<<<<<<<<<9<<<<;<99494416: MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:2:133:460:542 147 seq1 356 99 36M = 195 -197 TTACCAAATGTGTTTATTACCAGAGGGATGGAGGGA ;:;7;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:7:293:355:321 83 seq1 356 99 35M = 174 -217 TTACCAAATGTGTTTATTACCAGAGGGATGGAGGG <<4<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:2:323:639:311 83 seq1 357 99 36M = 200 -193 TACCAAATGTGTTTATTACCAGAGGGATGGAGGGAA -94<<<<<<<4<<<<<<<<2<<<<<7<<<-<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:8:321:642:388 83 seq1 357 99 33M = 181 -209 TACCAAATGTGTTTATTACCAGAGGGATGGAGG 19<<<<<8<<<<<<<<;<<<<<<<<<<7<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:4:262:456:74 99 seq1 357 99 35M = 504 182 TACCAAATGTGTTTATTACCAGAGGGATGGAGGGA <<<<<<<<<<<<<<<<<<<<:;;:;7:<::7<7:3 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:8:95:426:791 99 seq1 359 99 35M = 547 223 CCAAATGTGTTTATTACCAGAGGGATGGAGGGAAG <<<<;<<<<<<<<<<<<<<<<<<<<<<<<<<<,<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:6:115:538:276 83 seq1 360 99 35M = 209 -186 CAAATGTGTTTATTACCAGAGGGATGGAGGGAAGA :<<<<<<<<;;<5<<;<<<<<<<<;<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:1:196:533:921 99 seq1 361 99 35M = 526 200 AAATGTGTTTATTACCAGAGGGATGGAGGGAAGAG =====1========8===:===7======971=3= MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:5:121:380:656 99 seq1 362 99 35M = 542 215 AATGTGTTTATTACCAGAGGGATGGAGGGAAGAGG <<<<<<<<<<<<<<<<<<<<<<<<:<:<<83<:<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:3:34:970:1374 99 seq1 363 99 35M = 520 192 ATGTGTTTATTACCAGAGGGATGGAGGGAAGAGGG <<<<<<<<<<<<<<;7<77;<<;<;;9;;:86::: MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:4:29:1061:574 163 seq1 363 99 35M = 563 235 ATGTGTTTATTACCAGAGGGATGGAGGGAAGAGGG <<<<<<<<<<<<<<<<<<;<<<<<<;<<8<:<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_53:1:124:243:35 99 seq1 364 60 35M = 544 215 TGTGTTTATTACCAGAGGGATGGAGGGAAGAGCGA <<<<<;;<<<<<<:<<<.<<<:++5+:1(;1;$<( MF:i:18 Aq:i:60 NM:i:1 UQ:i:3 H0:i:1 H1:i:0
+EAS114_30:2:272:750:698 163 seq1 365 80 35M = 538 208 GTGTTTATTACCAGAGGGATGGAGGGATGACGGAC <)<<<<<7;<<<4<;7<<<<78068:(%<3*861, MF:i:18 Aq:i:37 NM:i:2 UQ:i:13 H0:i:0 H1:i:1
+EAS56_53:3:126:558:408 83 seq1 368 99 35M = 206 -197 TTTATTACCAGAGGGATGGAGGGAAGAGGGACGCT <:<<:;;<<<<<<<<8<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:2:1:1140:1206 83 seq1 368 99 35M = 181 -222 TTTATTACCAGAGGGATGGAGGGAAGAGGGACGCT 77977::99;;;:;;<;;;:;;;<<;<;;;;<;;; MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:5:141:711:813 147 seq1 370 99 35M = 209 -196 TATTACCAGAGGGATGGAGGGAAGAGGGACGCTGA =<5<5<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:1:282:274:50 83 seq1 371 99 35M = 193 -213 ATTACCAGAGGGATGGAGGGAAGAGGGACGCTGAA </7;/:<<<<<<<:<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:8:46:485:482 99 seq1 371 94 35M = 530 194 ATTACCAGAGGGATGAAGGGAAGAGGGACGCTGAA <<<<<<<<<<<<<<<<<<<<<<<6<<<<<:<:89< MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS56_63:1:119:446:185 163 seq1 372 99 35M = 562 225 TTACCAGAGGGATGGAGGGAAGAGGGACGCTGAAG <<<<<<<7<<<4<<<<9<<54<:<7<5:<::7-5; MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:3:168:69:605 163 seq1 373 67 36M = 565 228 TACCCGAGGGATGGAGGGTAGAGGGACGCTGAAGTG <<<4(<<<<<<<<<<<<<(1<6<-<2<<7<<6<<++ MF:i:18 Aq:i:26 NM:i:4 UQ:i:59 H0:i:0 H1:i:0
+EAS114_32:6:78:909:394 163 seq1 373 81 35M = 554 216 TACCAGAGGGATGGAGGGAAGAGGGACGCTGAAGA <<<<<<8<<<&<<<-<<<14,4;<<-0<2+<)/82 MF:i:18 Aq:i:21 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_4:5:41:118:1246 99 seq1 374 99 35M = 548 209 ACCAGAGGGATGGAGGGAAGAGGGACGCTGAAGAA <<<<<<<<<<<<<<<<<<<<<<<</<<<<<<1<<( MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:5:44:498:945 147 seq1 377 82 35M = 195 -217 ATAGGGATGGAGGGAAGAGGGCCGCTGAAGAACTT <%*50<7<4<<<7<,<<.<8/,9<:</<<<;<;<< MF:i:18 Aq:i:37 NM:i:2 UQ:i:15 H0:i:0 H1:i:1
+EAS114_39:5:50:972:1286 163 seq1 377 99 35M = 559 217 AGAGGGATGGAGGGAAGAGGGACGCTGAAGAACTT <<<<<<<<<<<<<<<<<;<<<<<<<<<6<<7:7:; MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:6:82:164:1924 163 seq1 378 99 35M = 542 199 GAGGGATGGAGGGAAGAGGGACGCTGAAGAACTTT <<<<<<<<<<<<<<<<<<<<8<<<<<<3<<'<7<8 MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:7:14:426:613 147 seq1 379 99 35M = 214 -200 AGGGAGGGAGGGAAGAGGGACGCTGAAGAACTTTG :<<<<&<<<<<<<<<<<<<<6<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS54_61:4:83:452:970 147 seq1 379 99 35M = 216 -198 AGGGATGGAGGGAAGAGGGACGCTGAAGAACTTTG <<<39<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:6:157:643:175 83 seq1 380 99 35M = 206 -209 GGGATGGAGGGAAGAGGGACGCTGAAGAACTTTGA ;<<<;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:8:61:1797:113 99 seq1 380 99 35M = 551 206 GGGATGGAGGGAAGAGGGACGCTGAAGAACTTTGA <<<<<<;<<<<;:<3<<<<;;<<<8<<;:<<;3<. MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:5:90:828:633 163 seq1 381 99 36M = 537 192 GGATGGAGGGAAGAGGGACGCTGAAGAACTTTGATG <<<<<<<<<<<8<;96<;<<<<<99<2<<;<96<8; MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:4:61:433:385 163 seq1 381 99 35M = 579 233 GGATGGAGGGAAGAGGGACGCTGAAGCACTTTGAT <<<<<<<<<<<<<<<<<;<<;<<6<<)91<<;;,; MF:i:18 Aq:i:43 NM:i:1 UQ:i:8 H0:i:0 H1:i:1
+EAS1_93:2:173:995:93 83 seq1 382 99 35M = 215 -202 GCTGGAGGGAAGAGGGACGCTGAAGAACTTTGATG <(0<<9<<<7<<<<<<7<<<<<<<<<7<<<<<<<< MF:i:18 Aq:i:73 NM:i:1 UQ:i:7 H0:i:1 H1:i:0
+EAS54_71:3:254:32:275 99 seq1 382 99 34M = 575 228 GATGGAGGGAAGAGGGACGCTGAAGAACTTTGAT <<<<<<<<<<<<<<<<<<<<<<;;<:<::<:2*< MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:7:282:817:710 147 seq1 384 99 35M = 211 -208 TGGAGGGAAGAGGGACGCTGAAGAACTTTGATGCC 366=6;======8====:========;======== MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:3:75:217:337 163 seq1 386 99 35M = 568 217 GAGGGAAGAGGGACGCTGAAGAACTTTGATGCCCT ;;;;;;;;;;;;;;;;;;8;;;;;;;;;;;88787 MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:6:181:191:418 83 seq1 387 99 36M = 221 -202 AGGGAAGAGGGACGCTGAAGAACTTTGATGCCCTCT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:4:160:896:275 83 seq1 387 99 35M = 220 -202 AGGGAAGAGGGACGCTGAAGAACTTTGATGCCCTC ;;;9;<<<<<<;<;;<<<<<<<<<<<<<<;<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:3:88:1656:896 99 seq1 387 99 40M = 538 191 AGGGAAGAGGGATGCTGAAGAACTTTGATGCCCTCTTCTT <<<9<<<<<<<9<<<;<<<<<<<<<;6<<;7<<<<::9:; MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+B7_597:8:186:850:838 147 seq1 389 99 35M = 205 -219 GGAAGAGGGACGCTGAAGAACTTTGATGCCCTCTT <;<;<;<<<<;<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:2:64:1318:1711 147 seq1 389 99 35M = 218 -206 GGAAGAGGGACGCTGAAGAACTTTGATGCCCTCTT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:8:78:1478:1446 99 seq1 389 99 35M = 560 206 GGAAGAGGGACGCTGAAGAACTTTGATGCCCTCTT <<<<<<<<<<<<<<<<<<<<;<<<<<<<<<:<<<; MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:2:82:879:246 163 seq1 391 99 35M = 576 220 AAGAGGGACGCTGAAGAATTTTGATGCCCTCTTCT <<<<<<<<<<<<<<<<<<&<<<77<<-<<<6<62< MF:i:18 Aq:i:43 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+B7_610:1:139:152:856 147 seq1 392 99 35M = 198 -229 AGAGGGACGCTGAAGAACTTTGATGCCCTCTTCTT <<<<<;<<<<<<<<<<;<;<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:2:162:503:769 99 seq1 392 99 35M = 571 214 AGAGGGACGCTGAAGAACTTTGATGCCCTCTTCTT ========================:========== MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:3:216:988:883 163 seq1 392 99 35M = 584 227 AGAGGGACGCTGAAGAACTTTGATGCCCTCTTCTT <<<<<<<<<<<<8;<;88<;8;;;;828;8;8;;; MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:7:118:523:591 163 seq1 393 99 35M = 563 205 GAGGGACGCTGAAGAACTTTGATGCCCTCTTCTTC <<<<<<<<<<<<<<<<<<<<<<<:<<<<<<<;;<; MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:3:168:741:680 163 seq1 394 99 35M = 562 203 AGGGACGCTGAAGAACTTTGATGCCCTCTTCTTCC <<<<<<<<<<<<<<<<<<<<<<<<<1<<<<<<<<< MF:i:18 Aq:i:79 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:1:9:1289:215 147 seq1 394 99 35M = 231 -198 AGGGACGCTGAAGAACTTTGATGCCCTCTTCTTCC 7747*7;;;;+;;:2;7;:1;;9:;:;:;;:;::; MF:i:18 Aq:i:59 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:1:84:275:1572 83 seq1 394 99 35M = 230 -199 AGGGACGCTGAAGAACTTTGATGCCCTCTTCTTCC 777777::7:;74;:;:7;:::;;;;:;;8;;;<; MF:i:18 Aq:i:62 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:1:122:77:789 83 seq1 396 99 35M = 223 -208 GGACGCTGAAGAACTTTGATGCCCTCTTCTTCCAA 9<;<:<<<<<<:<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:2:62:879:264 83 seq1 396 99 35M = 216 -215 GGACGCTGAAGAACTTTGATGCCCTCTTCTTCCAA ====:=<============================ MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:5:89:525:113 83 seq1 397 78 40M = 227 -210 GACGCTGAAGAACTTTGATTCCCTCTTCTTCCAAAGATGA );:+4-&<<+<<:<+<)<<<7<8<8:<:<<:<82::<<2< MF:i:18 Aq:i:39 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS114_39:2:18:967:582 83 seq1 398 99 35M = 200 -233 ACGCTGAAGAACTTTGATGCCCTCTTCTTCCAAAG <:<<<<<<<<<<<<<<;<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:3:140:522:212 163 seq1 399 99 35M = 568 204 CGCTGAAGAACTTTGATGCCCTCTTCTTCCAAAGA <<<<<<<<<<<<<<<<<;<<<<<<<<<<<;<;95; MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:2:125:628:79 83 seq1 400 99 34M = 229 -205 GCTGAAGAACTTTGATGCCCTCTTCTTCCAAAGA 95&<<<<<<<63<<<6<<<<8<;<<8<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:6:185:312:167 163 seq1 401 99 35M = 562 196 CTGAAGAACTTTGATGCCCTCTTCTTCCAAAGATG ===========================;855;=== MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:4:248:753:731 147 seq1 402 99 35M = 231 -206 TGAAGAACTTTGATGCCCTCTTCTTCCAAAGATGA 7;55;=,=89=====3===9=======9======= MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:2:299:360:220 147 seq1 403 99 35M = 237 -201 GAAGAACTTAGATGCCCTCTTCTTCCAAAGATGAA 66<;;4;<<()<<4<<<<<<;<<;<<<<<<<<<<< MF:i:18 Aq:i:43 NM:i:1 UQ:i:7 H0:i:0 H1:i:1
+EAS114_45:6:5:730:1436 83 seq1 403 99 35M = 236 -202 GAAGAACTTTGATGCCCTCTTCTTCCAAAGATGAA 7977979;;;;;;;;;7;3<;2<;26;<;<<;;<< MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:2:134:868:252 99 seq1 404 99 36M = 595 227 AAGAACTTTGATGCCCTCTTCTTCCAAAGATGAAAC <<<<<<<<<<<<<<<<<<<<<<<<<<<;:<<<:<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:2:165:431:857 99 seq1 406 99 35M = 559 188 GAACTTTGATGCCCTCTTCTTCCAAAGATGAAACG <<<<<<<<<<<<<<<<<<<<<<<6&:<7<:76,;; MF:i:18 Aq:i:53 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:3:86:823:683 83 seq1 408 99 35M = 240 -203 ACTTTGATGCCCTCTTCTTCCAAAGATGAAACGCG <4<<<<<<<<:<<6<<7<<<8<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:1:176:168:513 83 seq1 410 99 35M = 210 -235 TTTGATGCCCTCTTCTTCCAAAGATGAAACGCGTA ;0;;;7:<<<<<<<;<<:<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:2:259:219:114 147 seq1 411 99 35M = 254 -192 TTGATGCCCTCTTCTTCCAAAGATGAAACGCGTAA 666<:6/:6::6::<:::<<<;<<<<<<<<;<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:8:84:1013:1074 121 seq1 411 71 35M = 411 0 TTGATGCCCTCTTCTTCCAAAGATGAAACGCGTAA 8;;<;8744<7<<4<<47<<<<<<7<<<<<<<<<< MF:i:64 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:8:84:1013:1074 181 seq1 411 0 * = 411 0 GCAAGGGGGTCTATGTGAACAAAGGCACTAAACAC <7<<<<<<<<9<<<<<<<<<<<<<<<<<<<<<<<< MF:i:192
+EAS54_81:7:325:150:465 99 seq1 412 99 35M = 598 221 TGATGCCCTCTTCTTCCAAAGATGAAACGCGTAAC <<<<<<<<<<<<<<<<<<<<<<<<<<<:<<<3;;: MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:8:179:13:782 163 seq1 412 99 35M = 568 191 TGATGCCCTCTTCTTCCAAAGATGAAACGCGTAAC <<<<<<<<<<<<<<<<<:<<:7<<<<::<7<:-:1 MF:i:18 Aq:i:39 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_32:7:113:809:364 147 seq1 413 99 35M = 250 -198 GATGCCCTCTTCTTCCAAAGATGAAACGCGTAACT ;<;;;<<<:<6<<<::<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:7:188:802:71 83 seq1 415 99 35M = 232 -218 TGCCCTCTTCTTCCAAAGATGAAACGCGTAACTGC ;;;;<:::<<<<<7<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:2:204:264:413 99 seq1 415 96 34M = 593 213 TGCCCTCTTCTTCCAAAGATGAAACGCGTAACTG <<<<<<<<<<<<<;:59<+<<:<<<9<<;:62<) MF:i:18 Aq:i:27 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:5:104:350:749 83 seq1 415 99 36M = 247 -204 TGCCCTCTTCTTCCAAAGATGAAACGCGTAACTGCG ;<93;9;<3;<<<;<<<<<;<<<<<<;<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:2:24:1037:84 83 seq1 415 99 35M = 238 -212 TGCCCTCTTCTTCCAAAGATGAAACGCGTAACTGC <;<<;<<<7<<7&<<<<<<;<<<;<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:7:242:354:637 147 seq1 417 99 36M = 222 -231 CCCTCTTCTTCCAAAGATGAAACGCGTAACTGCGCT 8<;;;;;<<<8;<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:3:37:761:635 99 seq1 418 99 35M = 581 198 CCTCTTCTTCCAAAGATGAAACGCGTAACTGCGCT <6<<<<<<6<<<<<<<<<<<<<<<<<8<8<<4<4< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:3:44:1578:1674 99 seq1 418 99 35M = 573 190 CCTCTTCTTCCAAAGATGAAACGCGTAACTGCGCT ;<<;<<;<<;;;;;9<;9;;<9:;;<:;9;76669 MF:i:18 Aq:i:64 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:3:120:63:653 99 seq1 420 99 35M = 598 213 TCTTCTTCCAAAGATGAAACGCGTAACTGCGCTCT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<9<9<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:7:264:642:506 147 seq1 420 99 35M = 247 -208 ACTTCATCCAAAGATGAAACGCGTAACTGCGCTCT &;(-/)-1&:<<9<25<<<<2<1<';8<<<:888< MF:i:18 Aq:i:56 NM:i:2 UQ:i:13 H0:i:1 H1:i:0
+EAS188_7:3:101:572:491 99 seq1 425 99 35M = 600 210 TTCCAAAGATGAAACGCGTAACTGCGCTCTCATTC <<<<<<<<<<<<<<<<<<<<<<<<:<<<<<<1<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:3:27:1881:486 163 seq1 427 99 35M = 607 215 CCAAAGATGAAACGCGTAACTGCGCTCTCATTCAC ;;;;;;;;;;;;;;1;;;;;;;;78;8;8;8878/ MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:6:120:14:944 163 seq1 428 99 35M = 621 228 CAAAGATGAAACGCGTAACTGCGCTCTCATTCACT <<<<<<<<<<<<<<<;<<<<<;<<<<<<<:;8;;7 MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:7:46:695:738 83 seq1 428 74 35M = 259 -204 CAAAGATGAAACGCGTAACTGCGCTCTCATTCACT <<<<2<5<<-<<<<<<<4<<<<<<<<<<<<<<3<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:6:13:1034:1144 147 seq1 429 99 35M = 256 -208 AAAGATGAAACGCGTAACTGCGCTCTCATTCACTC <<:%<9)<<<<<<8<<<<9<<<<<<<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:6:91:360:585 99 seq1 430 99 35M = 586 191 AAGATGAAACGCGTAACTGCGCTCTCATTCACTCC <<<<9<<<<<;<<<;<<77<<<;<;;<;;<;<;;< MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:4:73:1208:495 83 seq1 431 99 35M = 246 -220 AGATGAAACGCGTAACTGCGCTCTCATTCACTCCA 8-889<<;<;;:<;<;;;;;;<<;;<;;;;<<;;; MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:8:16:1081:1894 163 seq1 431 99 35M = 624 228 AGATGAAACGCGTAACTGGGCTCTCATTCACTCCA <<<<<<<<<<<<<<<<<<8<<<<;<<;<<<<<<<+ MF:i:18 Aq:i:45 NM:i:1 UQ:i:23 H0:i:0 H1:i:1
+EAS188_4:7:35:408:348 117 seq1 433 0 * = 433 0 GGTTCTCAAGGTTGTTGCAATGGGGTCTATGTGAA .73<;<<:77<<<<<<<<<<-<<;<<<<<<<<<<< MF:i:192
+EAS188_4:7:35:408:348 185 seq1 433 35 35M = 433 0 AAGAAACGCGTAACTGCGCTCTCATACACTCCAGC 4,'3<6;)2);<3<-6<;<;7+7<5+<<<7<<<<< MF:i:64 Aq:i:0 NM:i:2 UQ:i:21 H0:i:0 H1:i:1
+EAS56_53:4:130:568:978 147 seq1 434 88 35M = 246 -223 TGAAACGCGAAACTGCACTCTCATTCACTCCAGCT --;066;;62<<<2&<+<+<2;<<2<<<;<<<7<< MF:i:18 Aq:i:24 NM:i:2 UQ:i:27 H0:i:0 H1:i:0
+EAS139_19:1:87:1222:878 83 seq1 435 34 40M = 272 -203 TCAGCGCGTCACTCCGCTCTCATTCACCCCAGCTCCCTGT !!;*:885<&<<<)8&<:<<<8<8<::*<4<88<<<8<<< MF:i:18 Aq:i:10 NM:i:6 UQ:i:42 H0:i:0 H1:i:0
+EAS51_64:6:143:763:480 117 seq1 436 0 * = 436 0 CTGAAGGTTGTTGCAAGGGGGTCTATGTGAACAAA ;<&-<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:192
+EAS51_64:6:143:763:480 185 seq1 436 70 35M = 436 0 AAACGCGTAACTGCGCTCTCATTCACTCCAGCTCC ::3<:6<<<:<<<<7<<<<<<<<)6<<<1<<<<;< MF:i:64 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:4:145:607:216 163 seq1 437 99 35M = 596 194 AACGCGTAACTGCGCTCTCATTCACTCCAGCTCCC <<<<<<<<8<<<<<<<<<<4<<<7<:<<1<<;;99 MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:6:46:285:790 121 seq1 437 72 35M = 437 0 AACGCGTAACTGCGCTCTCATTCACTCCAGCTCCC ;;<8<;<<<<88<8<<;;<;<<;<<<<<<<<;<<< MF:i:64 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:6:46:285:790 181 seq1 437 0 * = 437 0 TCAAGGTTGTTGCAAGGGGGTCTATGTGAACAAAG !!<<3<<<;;<<<<<<<<<;<;7<<7<<<<<<;<< MF:i:192
+EAS56_59:4:329:577:757 117 seq1 437 0 * = 437 0 TCAAGGTTGTTGCAAGGGGGTCTATGTGAACAAAG !!<<<<9;<:<<;<<<<<<<<;<<<<<<<<<<<<< MF:i:192
+EAS56_59:4:329:577:757 185 seq1 437 72 35M = 437 0 AACGCGTAACTGCGCTCTCATTCACTCCAGCTCCC ;;;888;<<<<<<6<<<2;<<<<<<;<<<<<<<<< MF:i:64 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:7:57:722:347 163 seq1 439 99 35M = 599 195 CGCGTAACTGCGCTCTCATTCACTCCAGCTCCCTG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;; MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:2:285:367:932 83 seq1 440 74 35M = 285 -190 GCGTAACTGCGCTCTCATTCACTCCAGCTCCCTGT 9=5==;=;7===;==;=================== MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:8:38:842:395 73 seq1 442 77 35M * 0 0 GTAACTGCGCTCTCATTCACTCCAGCTCCCTGTCA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<93<;9 MF:i:32 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:8:14:601:624 163 seq1 446 99 35M = 622 211 CTGCGCTCTCATTCACTCCAGCTCCCTGTCAACCC <<1<<<<<<<<<<<<<<<<<3<<::<<7<<1,<:( MF:i:18 Aq:i:69 NM:i:2 UQ:i:18 H0:i:1 H1:i:0
+EAS114_45:3:3:1377:1663 99 seq1 446 99 35M = 626 215 CTGCGCTCTCATTCACTCCAGCTCCCTGTCACCCA <<;;;;<:;;:<;;<;;<;:;;<;9;;::977676 MF:i:18 Aq:i:61 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:8:26:1221:222 83 seq1 446 99 35M = 261 -220 CTGCGCTCTCATTCACTCCAGCTCCCTGTCACCCA <<<<<<<:<:<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:78 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:8:82:566:1096 99 seq1 446 99 35M = 621 210 CTGCGCTCTCATTCACTCCAGCTCCCTGTCACCCA <<<<<<<<<<<<<<<<<<<<:<<<<<<<<<<<;<; MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:3:24:1135:563 83 seq1 446 99 40M = 266 -220 CTGCGCTCTCATTCACTCCAGCTCCCTGTCACCCAATGGA 6+96:87<&8<<79:<;<<<<:<<;<<<<<<;;<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:1:53:272:944 147 seq1 447 99 35M = 287 -195 TGCGCTCTCATTCACTCCAGCTCCCTGTCACCCAA &94<4&8.6<6&;<:0:8;;:6;<;:<*<<<<<<< MF:i:18 Aq:i:41 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:7:287:492:169 147 seq1 449 99 36M = 269 -216 CGCTCTCATTCACTCCAGCTCCCTGTCACCCAATGG ;/;6<<<<4(<(<<<<6<<<<<<<<<<;<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:2:49:163:904 163 seq1 450 99 35M = 616 201 GCTCTCATTCACTCCAGCTCCCTGTCACCCAATGG ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;78958 MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:7:200:192:373 83 seq1 451 75 36M = 275 -212 CTCTCATTCACTCCAGCTCCCTGTCACCCAATGGAC <<<8<<<4<4<<<<<:<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:4:253:285:104 163 seq1 451 99 35M = 627 211 CTCTCATTCACTCCAGCTCCCTGTCACCCAATGGA ======================:========7==; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:1:151:159:43 99 seq1 452 99 35M = 645 228 TCTCATTCACTCCAGCTCCCTGTCACCCAATGGAC <<<<<<<;<<<8<<<;<;8<<<<7<77;;79<09+ MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_61:1:115:868:887 163 seq1 452 99 35M = 650 233 TCTCATTCACTCCAGCTCCCTGTCACCCAATGGAC >>>>>>>>>>>>>>;<>>>>><<>>>;<+<</;;1 MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:4:57:786:414 83 seq1 453 99 35M = 296 -192 CTCATTCACTCCAGCTCCCTGTCACCCAATGGACC ;;;8;1;:<<<<;<::;;<<<<;<;;<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:2:197:170:559 121 seq1 453 71 35M = 453 0 CTCATTCACTCCAGCTCCCTGTCACCCAATGGACC <:<;;:<5<5<<<;<<<<<<<<<<<<<<<<<<<<< MF:i:64 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:2:197:170:559 181 seq1 453 0 * = 453 0 TTCTCAAGGTTGTTGCAAGGGGGTCTATGTGAACA :;;;;<<<<<<8<<<<<<<<<<<<<<<<<<<<<<< MF:i:192
+EAS1_103:7:313:83:546 83 seq1 454 99 35M = 296 -193 TCATTCACTCCAGCTCCCTGTCACCCAATGGACCT ;)<994<;<<<<<<<;<<<<<<<<<<<<<<5<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:6:44:280:641 83 seq1 454 99 35M = 288 -201 TCATTCACTCCAGCTCCCTGTCACCCAATGGACCT 9;<<9;9;;<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:1:60:837:923 163 seq1 457 61 36M = 641 220 TTCACGCCAGCTCCCTGTCACCCAATGGACCTCTGA <<<<<4<<+<<*<<<<88<<<<<'*<4-+<<4&<40 MF:i:18 Aq:i:24 NM:i:2 UQ:i:24 H0:i:0 H1:i:1
+EAS114_45:5:85:401:1190 163 seq1 458 99 35M = 652 229 TCACTCCAGCTCCCTGTCACCCAATGGACCTGTGA 4;;;1;;;;;;.6;;;(;;/;/;3;;;7;(3&063 MF:i:18 Aq:i:55 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:3:314:386:190 147 seq1 459 98 35M = 287 -207 CACTCCAGCTCCCTGTCACCCAATGGACCTGTGAT 76;%;<<3<9;<69<<<7;;;<<<<<<<<<<<<<< MF:i:18 Aq:i:29 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:1:2:831:692 99 seq1 462 99 35M = 634 207 TCCAGCTCCCTGTCACCCAATGGACCTGTGATATC <<<<<<<<;<<<<<<<<<<9<<:9<<<;;96<796 MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:1:163:846:223 83 seq1 463 74 35M = 278 -220 CCAGCTCCCTGTCACCCAATGGACCTGTGATATCT <7<5<*<<<<0<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_4:1:48:9:409 147 seq1 464 75 35M = 271 -228 CAGCTCCCTGTCACCCAATGGACCTGTGATATCTG <<<<+<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:5:134:751:831 99 seq1 465 99 36M = 651 222 AGCTCCCTGTCACCCAATGGACCTGTGATATCTGGA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<948 MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:6:326:309:149 83 seq1 467 99 35M = 301 -201 CTCCCTGTCACCCAATGGACCTGTGATATCTGGAT ;;<<;<:<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:7:260:985:520 83 seq1 468 99 35M = 296 -207 TCCCTGTCACCCAATGGACCTGTGATATCTGGATT ;9;7<<<<<<<<<<<<<<<<<:<<<<<<<<<<<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:7:112:203:90 83 seq1 470 99 35M = 305 -200 CCTGTCACCCAATGGACCTGTGATATCTGGATTCT ;<;:;<;;;<<<<<<<<<:<<<7<<<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:5:308:400:602 83 seq1 470 71 35M = 285 -220 CCTGTCACCCAATGGACCTGTGATATCTGGATTCT ;77;2<<;<7<<;<<<;<;<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:7:82:902:868 147 seq1 471 99 35M = 295 -211 CTGTCACCCAATGGACCTGTGATATCTGGATTCTG <<;;<<<<<<<<;<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_53:4:153:977:200 163 seq1 472 99 35M = 640 203 TGTCACCCAATGGACCTGTGATATCTGGATTCTGG ;<<;<<<<7<<;;;;;<<6<<<<<86;;8<;8;6; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:7:319:246:304 147 seq1 472 99 35M = 305 -202 TGTCACCCAATGGACCTGTGATATCTGGATTCTGG ;;<;;;<<<<8;<<<<;<<<<<<<<<<<<<<<;<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:1:37:1004:1136 147 seq1 473 99 35M = 315 -193 GTCACCCAATGGACCTGTGATATCTGGATTCTGGG </8<<<<7<+<<<<<<<,<<<<<<<<<6<<<<1<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:2:59:396:359 99 seq1 474 99 35M = 670 231 TCACCCAATGGACCTGTGATATCTGGATTCTGGGA <<9;;<;<;;;;<;;9;;;;;<;;;;;<;;77677 MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:6:45:1769:1130 163 seq1 476 99 35M = 635 194 ACCCAATGGACCTGTGATATCTGGATTCTGGGAAA ;;;;;;;;;;;;9;;;;;;19;;;9;;;;176777 MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:7:110:355:323 147 seq1 477 99 35M = 303 -209 CCCAATGGACCTGTGATATCTGGATTCTGGGAAAT 6069;1<<;4<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:1:28:708:463 99 seq1 477 99 36M = 672 231 CCCAATGGACCTGTGATATCTGGATTCTGGGAAATT <<<<<<<<<<<<<<<<<<<<<<<<<<<<;<9;<:<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:5:112:51:128 83 seq1 477 99 35M = 287 -225 CCCAATGGACCTGTGATATCTGGATTCTGGGAAAT ;9<;;:<<:<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:29 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:1:303:184:14 83 seq1 479 99 35M = 301 -213 CAATGGACCTGTGATATCTGGATTCTGGGAAATTC :<<.<;;7<:<<<<<<7<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:61 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:3:84:101:328 163 seq1 480 99 35M = 673 228 AATGGACCTGTGATATCTGGATTCTGGGAAATTCT <<<;<<<<<<<<;<<<<<<<<<<:<;;<44;;<;< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:6:228:354:203 99 seq1 480 99 34M = 643 198 AATGGACCTGTGATATCTGGATTCTGGGAAATTC 88<<<8<<<<<<<<<8<<<<<<<<<4<<<4/9/; MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:8:38:856:336 99 seq1 480 99 33M = 656 211 AATGGACCTGTGATATCTGGATTCTGGGAAATT <<<<<<<<<<<;;<;<;<:69<<;<5-500373 MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:6:75:946:1035 147 seq1 480 99 35M = 288 -227 AATGGACCTGTGATATCTGGATTCTGGGAAATTCT <<)4</<5<<<<<<<<<<<<<<<<<<<<<66<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:6:271:244:568 147 seq1 481 99 35M = 294 -222 ATGGACCTGTGATATCTGGATTCTGGGAAATTCTT ;<<<<<<;<;<<<<<<<<<<;;<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:8:129:477:427 99 seq1 481 99 35M = 652 206 ATGGACCTGTGATATCTGGATTCTGGGAAATTCTT <<<<<<<<<<<<<<<<<<;;<<<<::<9<;<<;<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:2:262:297:601 163 seq1 482 99 35M = 635 188 TGGACCTGTGATATCTGGATTCTGGGAAATTCTTC <<<<;<<9<<57<<7<<<;<<;77-;;53<<;;<7 MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:3:88:24:744 83 seq1 484 84 35M = 325 -194 GTCCTGTGATATCTGGATTCTGGGAAATTCTTCAT 4%++88;-9<;<<<+8<<<:<;8:<<<<<<<<<<< MF:i:18 Aq:i:21 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+B7_610:5:147:68:353 83 seq1 486 99 35M = 299 -222 CCTTTGATATCTGGATTCTGGGAAATTCTTCATCC <<;;<<<<<<<<+;<<;<<0;<<<<;<<<<<<<<< MF:i:18 Aq:i:70 NM:i:1 UQ:i:26 H0:i:1 H1:i:0
+EAS51_78:7:316:961:576 99 seq1 488 65 35M = 666 213 TGTGATATCTGGATTCTGGGAAATTCTTCATCCCG <<<<<<<;<<<<;<<:<<;<;<<:;<9+34;;6%/ MF:i:18 Aq:i:65 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+EAS56_61:8:7:171:402 99 seq1 489 99 35M = 682 228 GTGATATCTGGATTCTGGGAAATTCTTCATCCTGG <<<<<<<<<<<<<<<;/<<<<;<<<<<;<<1<<<4 MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:3:277:458:330 83 seq1 490 99 36M = 329 -197 TGATATCTGGATTCTGGGAAATTCTTCATCCTGGAC <<<<<8;<<<1<;7<<<;<<<<<<<<7<<7<<<<;7 MF:i:18 Aq:i:41 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:5:269:280:716 147 seq1 490 99 35M = 323 -202 TGATATCTGGATTCTGGGAAATTCTTCATCCTGGA 6;<;;6:;<<<;64;<<<<<<<<;<<;<<;<<<<< MF:i:18 Aq:i:58 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:4:72:63:435 147 seq1 490 99 35M = 293 -232 TGATATCTGGATTCTGGGAAATTCTTCATCCTGGA ::<;<<<<;;;<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:8:46:900:610 99 seq1 491 99 35M = 684 228 GATATCTGGATTCTGGGAAATTCTTCATCCTGGAC <<<<<<<<<<<<;<<<<<<<<<<<<<<<<<;;4;< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:4:189:467:475 99 seq1 493 99 35M = 683 225 TATCTGGATTCTGGGAAATTCTTCATCCTGGACCC <<<<<<<<<<<<;;;<<<<<<<<<:<<<<:+<<;; MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:7:201:959:19 99 seq1 493 99 35M = 681 223 TATCTGGATTCTGGGAAATTCTTCATCCTGGACCC <<<<<<<<<<<<<<;<<<:<;<<;<<;+;+<3494 MF:i:18 Aq:i:41 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:2:240:593:842 99 seq1 494 99 35M = 660 201 ATCTGGATTCTGGGAAATTCTTCATCCTGGACCCT ============<================9===:= MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:3:29:381:169 163 seq1 494 99 35M = 641 182 ATCTGGATTCTGGGAAATTCTTCATCCTGGACCCT <<<<<<<<<<<2<288;<<;<<:4<:<<;&92929 MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:6:199:327:965 83 seq1 494 91 35M = 297 -232 ATCTGGATTCTGGGAAATTCTTCATCCTGGACCCT <5<:<<<58<:<<<<<<8<<<<<<<<<;<<<<<<< MF:i:18 Aq:i:19 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:4:87:323:895 99 seq1 494 99 35M = 671 212 ATCTGGATTCTGGGAAATTCTTCATCCTGGACCCT ;<<;;;;<<;<959;;;<;:<<;9<;;;4377788 MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:5:327:991:508 147 seq1 495 99 35M = 312 -218 TCTGGATTCTGGGAAATTCTTCATCCTGGACCCTG 0:;::<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:5:6:882:784 163 seq1 496 99 35M = 686 225 CTGGATTCTGGGAAATTCTTCATCCTGGACCCTGA <<<<<<<<<<<<<:<<<<<<<<<<<<:6::::<,2 MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:6:175:705:982 99 seq1 496 89 36M = 660 200 CTGGATTCTGGGAAATTCTTCATCCTGGACCCTGAG <<<<;<<;<<<<<<<<<<<<<;<<+<:;39;+<40< MF:i:18 Aq:i:19 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:5:30:92:753 99 seq1 497 99 35M = 673 211 TGGATTCTGGGAAATTCTTCATCCTGGACCCTGAG <<<<<<<<<<<<<<<<<<<<<<:<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:7:245:323:744 163 seq1 499 99 35M = 679 215 GATTCTGGGAAATTCTTCATCCTGGACCCTGAGAG <;<<<<<<<<<<<<<<<<<<<<<;<+<<<<<<<4< MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:7:76:786:458 83 seq1 502 99 35M = 341 -196 TCTGGGAAATTCTTCATCCTGGACCCTGAGAGATT ;<;:7<.<<<<<8;<<<<<<<6<;8<<<<<<<<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:7:185:213:330 83 seq1 502 99 35M = 328 -209 TCTGGGAAATTCTTCATCCTGGACCCTGAGAGATT ;4<<<;<<<<<<<<;<<;;;<<<<9<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:7:42:1091:1726 147 seq1 502 99 35M = 334 -203 TCTGGGAAATTCTTCATCCTGGACCCTGAGAGATT 4443838<4<8<87<<3</8<<<<<<<<<<<<<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:1:12:158:458 99 seq1 503 84 36M = 675 208 CTGGGAAATTCTTCATCCTGGACCCTGAGAGATTCT <77<<<7<<<<<<<<<<<<5<4;<<;5<;;+2<+;; MF:i:18 Aq:i:15 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:6:277:590:364 163 seq1 503 99 35M = 681 213 CTGGGAAATTCTTCATCCTGGACCCTGAGAGATTC <<<<<8<<<<<<<<;<<<<<;;<7<<;;7858;;8 MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:1:18:1418:237 147 seq1 503 99 35M = 304 -234 CTGGGAAATTCTTCATCCTGGACCCTGAGAGATTC <<:<<<<<<<<:<<<<<<<<<:<<<<<<<<<<<<: MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:4:262:456:74 147 seq1 504 99 35M = 357 -182 TGGGAAATTCTTCATCCTGGACCCTGAGAGATTCT 862;<<<:;<;<<<;;;<<<<;;<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:3:186:989:869 99 seq1 505 99 34M = 655 185 GGGAAATTCTTCATCCTGGACCCTGAGAGATTCT <<<<<<<<<<<<<<<<<<<<7;:<<<<<<<<<$< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:3:80:885:513 83 seq1 507 99 35M = 344 -198 GAAATTCTTCATCCTGGACCCTGAGAGATTCTGCA <7<<<;<<;<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:7:311:100:539 83 seq1 508 99 35M = 353 -190 AAATTCTTCATCCTGGACCCTGAGAGATTCTGCAG ;<;<<;;<;<<;<<<<<;9<<<;<<<<<<<<9<<; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:6:199:511:426 163 seq1 509 99 35M = 669 195 AATTCTTCATCCTGGACCCTGAGAGATTCTGCAGC <<<<<<<<<<<<<<;<<<<<<:<<<<<<<<<;:<; MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:6:26:227:1053 99 seq1 510 99 35M = 663 188 ATTCTTCATCCTGGACCCTGAGAGATTCTGCAGCC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:2:172:622:707 99 seq1 511 99 35M = 685 209 TTCTTCATCCTGGACCCTGAGAGATTCTGCAGCCC <<<<<<<<<<<<<<<<<<<<<<;<<<<<<:<5:<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:8:157:935:374 147 seq1 512 99 35M = 353 -194 TCTTCATCCTGGACCCTGAGAGATTCTGCAGCCCA 94988994.<:<+42::<<<<<:<:<4<<<<;<1< MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:4:103:111:720 147 seq1 512 99 36M = 353 -195 TCTTCATCCTGGACCCTGAGAGATTCTGCAGCCCAG ;4<<<;)<<-<9<;<<7<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:4:328:669:662 147 seq1 512 99 35M = 337 -210 TCTTCATCCTGTACCCTGAGAGATTCTGCAGCCCA 4<<;<<8<.<88.<<;4<<<<<<<4<.<<<<7<<< MF:i:18 Aq:i:43 NM:i:1 UQ:i:23 H0:i:0 H1:i:1
+EAS51_64:5:202:39:380 147 seq1 513 99 35M = 334 -214 CTTCATCCTGGACCCTGAGAGATTCTGCAGCCCAG /92/;2<+2<<<<64<<<<<<<<<<<<<<<<7<<< MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:8:66:655:769 147 seq1 515 99 35M = 348 -202 TCATCCTGGACCCTGAGAGATTCTGCAGCCCAGCT 8<<;:69<;:;9<2<*9<;6<<<<<17<;<3+<;< MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:4:7:526:343 99 seq1 515 99 35M = 698 218 TCATCCTGGACCCTGAGAGATTCTGCAGCCCAGCT <<<<<<<<<<<<<<<:<<<5<<<<<<5;<<<+8<; MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:8:33:672:473 147 seq1 515 99 35M = 330 -220 TCATCCTGGACCCTGAGAGATTCTGCAGCCCAGCT 5<70<<55<4<24.5<<<<<<<<<6<<<<<<2<<< MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:6:72:308:839 83 seq1 517 99 40M = 354 -203 ATCGTGGACCCTGAGAGATTCTGCAGCCCAGATCCAGATT :8:.:<;<<5<<<<<<<<<<<<<<<<;:<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:2 UQ:i:40 H0:i:0 H1:i:1
+EAS56_61:1:210:880:606 83 seq1 518 99 35M = 341 -212 TCCTGGACCCTGAGAGATTCTGCAGCCCAGCTCCA .<<:<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:7:80:760:490 99 seq1 520 99 34M = 686 201 CTGGACCCTGAGAGATTCTGCAGCCCAGCTCCAG <<<<<<<<<<8<;<7<<<<<<;<;;<2<;<<<1, MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:3:34:970:1374 147 seq1 520 99 35M = 363 -192 CTGGACCCTGAGAGATTCTGCAGCCCAGATCCAGA <6<<<7<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+B7_593:1:200:559:765 147 seq1 521 99 36M = 337 -220 TGGACCCTGAGAGATTCTGCAGCCCAGATCCAGATT 8<;;4<3;<;<<<<<<5<<;;<<98;;<<<<;<<<< MF:i:18 Aq:i:45 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS56_53:8:28:701:724 83 seq1 521 99 35M = 347 -209 TGGACCCTGAGAGATTCTGCAGCCCAGCTCCAGAT .;..3;8.8<8;<<;9<9<<<7;<<<<<<<<7<<7 MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:4:318:345:156 163 seq1 522 99 35M = 695 208 GGACCCTGAGAGATTCTGCAGCCCAGATCCAGATT <<<<<<<<:<<<<<<<<5<:5<<<3:'<72')*;9 MF:i:18 Aq:i:39 NM:i:1 UQ:i:6 H0:i:0 H1:i:1
+B7_595:1:81:1000:375 83 seq1 524 90 35M = 329 -230 ACCCTGAGAGATTCTGCAGCCCAGCTCCAGATTGC ;8<;+<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:19 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:4:13:1155:631 163 seq1 524 99 40M = 668 184 ACCCTGAGAGATTCTGCAGCCCAGCTCCAGATTGCTTGTG <<<<<<;<<;<<<<<<;<<<<<9<;<;94<<%<<<7:777 MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:3:257:611:440 147 seq1 524 99 35M = 341 -218 ACCCTGAGAGATTCTGCAGCCCAGATCCAGATTGC 2<;;8<;;<<<<;<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS114_26:6:129:694:359 83 seq1 525 88 35M = 350 -210 CCCTGAGAGATTCTGCAGCCCAGATCCAGATTGCT 7777<7<7;77+<3<<;<<;<<<<;<<<<<<<<<< MF:i:18 Aq:i:43 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS139_11:6:11:285:1567 163 seq1 525 99 35M = 685 195 CCCTGAGAGATTCTGCAGCCCAGATCCAGATTGCT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS1_95:1:196:533:921 147 seq1 526 99 35M = 361 -200 CCTGAGAGATTCTGCAGCCCAGATCCAGATTGCTT 7<<<<7<<9<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS139_11:2:6:251:1557 163 seq1 526 99 35M = 700 209 CCTGAGAGATTCTGCAGCCCAGCTCCAGATTGCTT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:78 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:6:20:492:850 99 seq1 526 78 35M = 694 203 CCTGAGAGATTCTGCAGCCCAGCTCCAGATTGCTT <7<<<<<<<<<<<.<54<7&<<<7<74<2<<<2<< MF:i:18 Aq:i:10 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:5:231:339:551 83 seq1 527 99 35M = 350 -212 CTGAGAGATTCTGCAGCCCAGATCCAGATTGCTTG <;<<;<<<<<<<<<<;:<<<<<<<<<<<<<;<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS139_19:4:68:1122:79 99 seq1 528 99 40M = 687 199 TGAGAGATTCTGCAGCCCAGCTCCAGATTGCTTGTGGTCT <<<<<<<<<<<<<;<<<<;<<<<<<;<<<4;<<4;99::; MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:4:87:1375:1303 83 seq1 529 99 35M = 340 -224 GAGAGATTCTGCAGCCCAGATCCAGATTGCTTGTG :<;<(<<<<<<<<<<<<<<<<<<<<<;<<<<<<<< MF:i:18 Aq:i:45 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS220_1:8:46:485:482 147 seq1 530 94 35M = 371 -194 AGAGATTCTGCAGCCCAGATCCAGATTGCTTGTGG <<<<<::<<<<<<<<6<<<<<<<<<6<<<<<<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS218_4:7:90:1873:89 147 seq1 531 99 35M = 344 -222 GAGATTCTGCAGCCCAGATCCAGATTGCTTGTGGT <<<<;49<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS114_26:5:238:31:968 99 seq1 534 99 35M = 717 218 ATTCTGCAGCCCAGCTCCAGATTGCTTGTGGTCTG 9======8====*=====,=1=======<=7:::, MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:3:78:773:660 163 seq1 534 99 36M = 711 213 ATTCTGCAGCCCAGCTCCAGATTGCTTGTGGTCTGA <<<<<<<<;<<<<<<<<<8<8<<;<<<;<<;7<<4: MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:5:90:828:633 83 seq1 537 99 36M = 381 -192 CTGCAGCCCAGATCCAGATTGCTTGTGGTCTGACAG <<<;<;<:<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS114_30:2:272:750:698 83 seq1 538 80 35M = 365 -208 TGCAGCCCAGATCCAGATTGCTTGTGGTCTGACAG 0<;8;64;<<<;<;.<+;:<4;4<;<<<<<<<<<< MF:i:18 Aq:i:37 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS139_19:3:88:1656:896 147 seq1 538 99 40M = 387 -191 TGCAGCCCAGATCCAGATTGCTTGTGGTCTGACAGGCTGC 6/8::*9/*3*'<88<:9*<<<8<<<;<<<<<<<<;<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:9 H0:i:1 H1:i:0
+EAS54_61:6:126:541:194 163 seq1 540 97 35M = 730 225 CAGCCCAGATCCAGATTGCTTGTGGTCTGACAGGC <<<<<<<<8<<<<<8<<<<<<<<<8<<<428+<80 MF:i:18 Aq:i:43 NM:i:1 UQ:i:23 H0:i:0 H1:i:1
+EAS114_28:4:9:55:730 163 seq1 540 99 36M = 722 218 CAGCCCAGCTCCAGATTGCTTGTGGTCTGACAGGCT >>=>>+==>>==<==<=8=><:;8/;7</5724-2; MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:2:278:918:892 99 seq1 541 99 35M = 720 214 AGCCCAGCTCCAGATTGCTTGTGGTCTGACAGGCT =============:====================8 MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:7:243:876:758 99 seq1 541 99 35M = 712 206 AGCCCAGATCCAGATTGCTTGTGGTCTGACAGGCT <<<<<<<<<<<<<<<<<<<<<<<<<<<;;<;78<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS56_65:5:121:380:656 147 seq1 542 99 35M = 362 -215 GCCCAGCTCCAGATTGCTTGTGGTCTGACAGGCTG :;<<;<<1<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:6:82:164:1924 83 seq1 542 99 35M = 378 -199 GCCCAGCACCAGATTGCTTGTGGTCTGACAGGCTG 6<<<<<<-<<<<<<<<<2<<06<9<<<<<1<<<<< MF:i:18 Aq:i:43 NM:i:1 UQ:i:12 H0:i:0 H1:i:1
+EAS114_30:6:163:312:891 99 seq1 543 99 35M = 709 201 CCCAGCTCCAGATTGCTTGTGGTCTGACAGGCTGC <<<<<<<<<;<<<<<<<<<<<<<<<<:;;<;;<;0 MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_53:1:124:243:35 147 seq1 544 60 35M = 364 -215 GCATATCCAGATTGCTGGTGGTCTGACAGGCAGCA &+<+;<694;+&99<<2<;423<26<-<<<<,<3< MF:i:130 Aq:i:60 NM:i:2 UQ:i:28 H0:i:0 H1:i:0
+B7_591:1:191:462:705 99 seq1 545 99 36M = 721 212 CAGATCCAGATTGCTTGTGGTCTGACAGGCTGCAAC <<<<<<<<<<<<<<<<<<<;<<<<<<<;<<<<::<6 MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+B7_610:8:95:426:791 147 seq1 547 99 35M = 359 -223 GNTCCAGATTGCTTGTGGTCTGACAGGCTGCAACT !!!!<<<<<;;<<<<;<<;<;;<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:1 UQ:i:23 H0:i:1 H1:i:0
+EAS218_4:5:41:118:1246 147 seq1 548 99 35M = 374 -209 CTCCAGATTGCTTGTGGTCTGACAGGCTGCAACTG <<<<<<<<<<<<<<<+<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:3:27:973:518 99 seq1 549 99 35M = 691 177 TCCAGATTGCTTGTGGTCTGACAGGCTGCAACTGT <<<<<<<<<<<<<<;<<<<7<<<<<<<<88;0:8; MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:8:4:679:110 99 seq1 549 99 35M = 705 191 TCCAGATTGCTTGTGGTCTGACAGGCTGCAACTGT <<<<<<<<<<<<<<<<<<<;<<<<<<<<::<;;:7 MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:1:297:283:948 163 seq1 550 99 35M = 727 212 CCAGATTGCTTGTGGTCTGACAGGCTGCAACTGTG <<<<<<<<<<<<<<<<<<<<<<<:<<9;)+1;19- MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:8:61:1797:113 147 seq1 551 99 35M = 380 -206 CAGATAGCTTGTGGTCTGACAGGCTGCAACTGTGA <<0<<&<<<<;<<4;;3<;<:<<<<<<<<<<<<<< MF:i:18 Aq:i:70 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS188_7:6:205:873:464 99 seq1 552 99 35M = 743 226 AGATTGCTTGTGGTCTGACAGGCTGCAACTGTGAG <<<<<<<<<7<<<<<<<<<<<<:<<,:<:<<<<:: MF:i:18 Aq:i:63 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:3:33:1168:1762 99 seq1 552 99 35M = 728 211 AGATTGCTTGTGGTCTGACAGGCTGCAACTGTGAG <<<<<<<<<<<<<<<<;<<;<;<<<<<<<<:;2:: MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:6:78:909:394 83 seq1 554 81 35M = 373 -216 ATTGCTTGGTGTCTGACAGGCTGCAACTGTGAGCC 6167&+&&/&//734/3<<<9*<;;3<3<;9<<3< MF:i:18 Aq:i:21 NM:i:2 UQ:i:19 H0:i:0 H1:i:0
+EAS1_103:2:226:302:758 163 seq1 556 99 35M = 751 230 TGCTTGTGGTCTGACAGGCTGCAACTTTGAGCGNT <<<<<<<;;;,<;<92;66<;))42<&2&(/1!!! MF:i:18 Aq:i:33 NM:i:2 UQ:i:9 H0:i:0 H1:i:1
+EAS114_28:5:206:671:49 163 seq1 557 99 36M = 719 198 GCTTGTGGTCTGACAGGCTGCAACTGTGAGCCATCA <<<<<<;<<<<8<<<;;<<<3<<8<8<35+,55;,3 MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:2:165:431:857 147 seq1 559 99 35M = 406 -188 TTGGGGTCTGACAGGCTGCAACTGTGAGCCATCAC ''7'/;'1%0447<<<*<6<<<*<*<<<<6<<<<< MF:i:18 Aq:i:53 NM:i:1 UQ:i:6 H0:i:1 H1:i:0
+EAS114_39:5:50:972:1286 83 seq1 559 99 35M = 377 -217 TTGTGGTCTGACAGGCTGCAACTGTGAGCCATCAC :;;7;7;;0<<<<<<<;<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:7:288:552:440 163 seq1 560 87 35M = 747 222 TGTGGTCTGACAGGCTGCAACTGTGAGCCTTCCAT <<<<71<77<<<:<<<&<4<<77<16<88&36+%% MF:i:18 Aq:i:26 NM:i:4 UQ:i:26 H0:i:1 H1:i:0
+EAS221_1:8:78:1478:1446 147 seq1 560 99 35M = 389 -206 TGTGGTCTGACAGGCTGCAACTGTGAGCCATCACA <8,8<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:8:275:851:240 99 seq1 561 99 35M = 743 217 GTGGTCTGACAGGCTGCAACTGTGAGCCATCACAA <<<<<<<<<<<<<<<<<<<<<<<:<<4<7<<<<<< MF:i:18 Aq:i:31 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:6:185:312:167 83 seq1 562 99 35M = 401 -196 TGGTCTGACAGGCTGCAACTGTGAGCCATCACAAT <<8:<8<<<<<<<<<;<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:1:119:446:185 83 seq1 562 99 35M = 372 -225 TGGTCTGACAGGCTGCAACTGTGAGCCATCACAAT +70730;<0<77;;<<<<<9<<<<<<9<<<<<<<< MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:3:168:741:680 83 seq1 562 99 35M = 394 -203 TGGTCTGACAGGCTGCAACTGTGAGCCATCACAAT <<5<<:<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:79 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:8:67:1797:1931 99 seq1 562 99 35M = 750 223 TGGTCTGACAGGCTGCAACTGTGAGCCATCACAAT <<<<<<<<<<<<<<<<<<<<<<<<<<<;<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:1:228:182:717 99 seq1 563 99 35M = 729 201 GGTCTGACAGGCTGCAACTGTGAGCCATCCCCATG <=9============5==5=<,59<=1=<&;&;;7 MF:i:18 Aq:i:66 NM:i:2 UQ:i:10 H0:i:1 H1:i:0
+EAS112_34:7:118:523:591 83 seq1 563 99 35M = 393 -205 GGTCTGACAGGCTGCAACTGTGAGCCATCACAATG 4:--&0:67<<8:<<<<<<<<<<<:4<<<<<<<<< MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:4:29:1061:574 83 seq1 563 99 35M = 363 -235 GGTCTGACAGGCTGCAACTGTGAGCCATCACAATG <87<5<<9<<<66<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:3:168:69:605 83 seq1 565 67 36M = 373 -228 TCTGACAGGCGGCAACTGTGAGCCATCACAATGAAC '<'<144<0<&<<<<<<<7<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:26 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+EAS221_3:4:90:247:212 99 seq1 567 99 35M = 733 201 TGACAGGCTGCAACTGTGAGCCATCACAATGAACA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<6<8< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:3:140:522:212 83 seq1 568 99 35M = 399 -204 GACAGGCTGCAACTGTGAGCCATCACAATGAACAA :;8;:::<<:<<<<<<<<<7<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:8:179:13:782 83 seq1 568 99 35M = 412 -191 GACAGTCTACAACTGTGAGCCATCACAATGAACAA &37.3&;3'*<3<;9<9<<5<<<<<<<<<9<<<<< MF:i:18 Aq:i:39 NM:i:2 UQ:i:11 H0:i:0 H1:i:1
+EAS114_45:3:75:217:337 83 seq1 568 99 35M = 386 -217 GACAGGCTGCAACTGTGAGCCATCACAATGAACAA 4779797;;;<;:4;;<<<77<;;;7<<;<;<;<< MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_53:4:168:528:288 163 seq1 570 99 35M = 740 205 CAGGCTGCAACTGTGAGCCATCACAATGAACAACA <<<<<<<<<<<<<<<<<<<<<<<<:<<<<<<;<<; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:2:162:503:769 147 seq1 571 99 35M = 392 -214 AGGCTGCAACTGTGAGCCATCACAATGAACAACAG ;:;1;=8=;:+=====;&==7============== MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:2:163:618:570 163 seq1 571 99 35M = 751 215 AGGCTGCAACTGTGAGCCATCACAATGAACAACAG <<<<<<<8<<<<<<<<<<<<<+<.7<<..<;&;8; MF:i:18 Aq:i:41 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:2:251:121:479 163 seq1 572 99 35M = 750 213 GGCTGCAACTGTGAGCCATCACAATGAACAACAGG <<<<<<<<<<<;:<<<<;:;:<:<;:188;7:<+( MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:3:44:1578:1674 147 seq1 573 99 35M = 418 -190 GCTGCAACTGTGAGCCATCACAATGAACAACAGGA 62631;;4;;;8;;48;;7;8;;;;;;;;;8;;;; MF:i:18 Aq:i:64 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:3:263:74:407 163 seq1 574 99 35M = 754 215 CTGCAACTGTGAGCCATCACAATGAACAACAGGAA <<<<2<<<<<<:<<<9<<4<<<<:<<<<9<999.7 MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:3:254:32:275 147 seq1 575 99 35M = 382 -228 TGCAACTGTGAGCCATCACAATGAACAACAGGAAG (6+<;+6:9<<:7:<95<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:2:82:879:246 83 seq1 576 99 35M = 391 -220 ACAACTGTGAGCCATCACAATGAACAACAGGAAGA %+=661;&===:&==1<5======1========== MF:i:18 Aq:i:43 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+EAS54_71:4:165:397:25 163 seq1 576 99 35M = 759 217 GCAACTGTGAGCCATCACAATGAACAACAGGAAGA <<7<<<<<<)97<6<:3:60:3+37-37+<:33:3 MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:6:148:776:486 163 seq1 578 99 35M = 755 212 AACTGTGAGCCATCACAATGAACAACAGGAAGAAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;; MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:2:59:1576:946 99 seq1 578 99 35M = 761 218 AACTGTGAGCCATCACAATGAACAACAGGAAGAAA <:<<<<<<<<<<<<:<:<<<<<<<8<<::1<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:4:61:433:385 83 seq1 579 99 35M = 381 -233 ACTGTGAGCCATCACAATGAACAACAGGAAGAAAA <*97<<<<&9<<;<&<<<<<<<<<;<<<<<<<<<< MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:3:37:761:635 147 seq1 581 99 35M = 418 -198 TGTGAGCCATCACAATGAACAACAGGAAGAAAAGG +37:<088<+<<;<<;<<<<<;<<;<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:2:178:192:499 163 seq1 582 99 35M = 768 221 GTGAGCCATCACAATGAACAACAGGAAGAAAAGGT <<<<<<<;<1<<<<<<;<<;6<<3666;;;;;/6/ MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:7:93:945:176 99 seq1 582 99 35M = 745 198 GTGAGCCATCACAATGAACAACAGGAAGAAAAGGT <<<<<<<<<<<<<<<<<<<<<;<<<<;;<;:7;<3 MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:3:216:988:883 83 seq1 584 99 35M = 392 -227 AAGCCAACACAATGAACAACAGGAAGAAAAGGTCT (=/1+=&:=&======<==<=============== MF:i:18 Aq:i:68 NM:i:2 UQ:i:12 H0:i:1 H1:i:0
+EAS114_39:1:12:884:219 99 seq1 584 99 35M = 756 207 GAGCCATCACAATGAACAACAGGAAGAAAAGGTCT <<<<<<<<<<<<<<<<<<<;<<<<<<<<<<<<5:< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:6:61:628:681 163 seq1 586 99 36M = 746 196 GCCATCACAATGAACAACAGGAAGAAAAGGTCTTTC <<<<<<<<<<<<<<<<<<<;<<<<<<<:<<;;;;;; MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:6:91:360:585 147 seq1 586 99 35M = 430 -191 GACATCACAATGAACAACAGGAAGAAAAGGTCTTT 5&&<<3:;<<<<<<)<<3<<<<<<<;;<<<<;<<< MF:i:18 Aq:i:67 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS139_11:6:89:1151:1878 99 seq1 587 99 35M = 757 205 CCATCACAATGAACAACAGGAAGAAAAGGTCTTTC <;;<<<<<;;;<<<<4;;::;<;8;;<;;8:<8<4 MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:1:40:1596:1433 99 seq1 587 99 40M = 756 209 CCATCACAATGAACAACAGGAAGAAAAGGTCTTTCAAAAG <<<<<<<<<<<<<<<<<<<<<<<<;<<<<1<<<<<::;:: MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:3:4:1620:413 99 seq1 588 99 35M = 768 215 CATCACAATGAACAACAGGAAGAAAAGGTCTTTCA <<<<<<<<<<6<<<6<<<;<6<9-1<;<&66<<<2 MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:8:65:1928:1125 99 seq1 588 99 35M = 784 231 CATCACAATGAACAACAGGAAGAAAAGGTCTTTCA <<;<<<7<<7<;<7<<<<<<<7<<<<;<.-;<+88 MF:i:18 Aq:i:41 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:5:123:998:248 163 seq1 589 99 35M = 776 222 ATCACAATGAACAACAGGAAGAAAAGGTCTTTCAA <<<<<<<<<<<<<<<<<<<<<<<<<<<;9<<<68< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:2:240:603:890 163 seq1 590 99 36M = 740 186 TCACAATGAACAACAGGAAGAAAAGGTCTTTCAAAA <<<<<<<<<<<<<<<<<<;<:<<:<<;<<<<<8865 MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_61:3:20:762:748 163 seq1 591 99 35M = 777 221 CACAATGAACAACAGGAAGAAAAGGTCTTTCAAAA =================================== MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:4:246:313:499 99 seq1 592 99 35M = 757 200 ACAATGAACAACAGGAAGAAAAGGTCTTTCAAAAG <<<<<<<<<<<<<;<;<<<<<<<<;<<<<<;;<<< MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:6:7:858:437 99 seq1 593 99 35M = 773 215 CAATGAACAACAGGAAGAAAAGGTCTTTCAAAAGG <<<<<<<<<<<<<<<<<<<<<;<3<<<<<<<<<33 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_61:3:150:933:810 163 seq1 593 99 35M = 755 197 CAATGAACAACAGGAAGAAAAGGTCTTTCAAAAGG =================================== MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:2:204:264:413 147 seq1 593 96 35M = 415 -213 CAATGAACAACAGAAAGAAAAGTTCTTTCAAAAGG 1==(4=::;/7::&===;====/=;===;;===== MF:i:18 Aq:i:27 NM:i:2 UQ:i:19 H0:i:0 H1:i:0
+EAS139_11:3:65:556:1505 163 seq1 593 99 35M = 790 232 CAATGAACAACAGGAAGAAAAGGTCTTTCAAAAGG <<<<<<<<<<<<<<<<<<<<<<<6<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:6:62:386:959 99 seq1 594 99 35M = 752 193 AATGAACAACAGGAAGAAAAGGTCTTTCAAAAGGT <<8<<<<;<<<<-<<87;</<;<+<;5<+;;<3;+ MF:i:18 Aq:i:57 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:2:134:868:252 147 seq1 595 99 36M = 404 -227 ATGAACAACAGGAAGAAAAGGTCTTTCAAAAGGTGA <;<<<8<<<<<<<<<<<<<<<:<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:1:252:19:955 99 seq1 596 84 35M = 771 210 TGAACAAAAGGAAGAAAAGGTCTTTCAAAAGGTGA <<<<<<<<<<4<<<<9<<+9)9<<4:9+<<0<909 MF:i:18 Aq:i:41 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS54_67:4:145:607:216 83 seq1 596 99 35M = 437 -194 TGAAAAACAGGAAGAAAAGGTCTTTCAAAAGGTGA /;<<&<<8<<<<<<<<<<<<<;872<<<<<<<<<< MF:i:18 Aq:i:68 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS54_65:8:140:924:923 163 seq1 597 99 35M = 767 205 GAACAACAGGAAGAAAAGGTCTTTCAAAAGGTGAT <<<<<<<<<<<<<<<<<:<<<<<<<<<<<<<5;<; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:3:120:63:653 147 seq1 598 99 35M = 420 -213 AACAACAGGAAGAAAAGGTCTTTCAAAAGGTGATG <<;<<;<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:6:204:779:181 163 seq1 598 99 35M = 779 216 AACAACAGGAAGAAAAGGTCTTTCAAAAGGTGATG <<<<<<5<<:<<<<<8<<,<<<<<<<<<<91<91< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:7:325:150:465 147 seq1 598 99 35M = 412 -221 AACAACAGGAAGAAAAGGTCTTTCAAAAGGTGATG <<:<<<<<<<<;<:<<<<;<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:7:57:722:347 83 seq1 599 99 35M = 439 -195 ACAACAGGAAGAAAAGGTCTTTCAAAAGGTGATGT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:2:177:266:842 163 seq1 599 99 35M = 784 220 ACAACAGGAAGAAAAGGTCTTTCAAAAGGTGATGT =====)===========8=====7882855355'5 MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:4:183:852:253 163 seq1 599 99 35M = 773 209 ACAACAGGAAGAAAAGGTCTTTCAAAAGGTGATGT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<8<;;<8 MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:2:30:887:404 163 seq1 600 99 35M = 789 224 CAACAGGAAGAAAAGGTCTTTCAAAAGGTGATGTG <<<<<<<<<<;<<<<<<<<<<<<<<<<:(<<<7;7 MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:3:101:572:491 147 seq1 600 99 35M = 425 -210 CAACAGGAAGAAAAGGTCTTTCAAAAGGTGATGTG 8<<;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:2:73:730:487 99 seq1 604 99 35M = 770 201 AGGAAGAAAAGGTCTTTCAAAAGGTGATGTGTGTT <<<<<<<<<<<<<<<<<<<9<<<<<<:<<<;<;<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:6:172:896:83 99 seq1 604 99 34M = 786 217 AGGAAGAAAAGGTCTTTCAAAAGGTGATGTGTGT <<<<<<<<<<<<<<<<<:;;+;<<<<<<<<9;;; MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_53:4:154:762:630 163 seq1 604 99 35M = 792 223 AGGAAGAAAAGGTCTTTCAAAAGGTGATGTGTGTT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:8:99:756:130 163 seq1 606 99 35M = 798 227 GAAGAAAAGGTCTTTCAAAAGGTGATGTGTGTTCT ;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<6<<;< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:6:11:360:1577 99 seq1 606 99 35M = 781 210 GAAGAAAAGGTCTTTCAAAAGGTGATGTGTGTTCT <<<<<<<<<<<<<<<<<4<;;<<;;<;<<<8<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:3:27:1881:486 83 seq1 607 99 35M = 427 -215 AAGAAAAGGTCTTTCAAAAGGTGATGTGTGTTCTC 99797;;9:<:;;;<;;;;<<<;;;;<;<;;<<<< MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:1:5:497:687 99 seq1 607 99 35M = 789 217 AAGAAAAGGTCTTTCAAAAGGTGATGTGTGTTCTC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:4:142:63:937 163 seq1 609 99 36M = 777 204 GAAAAGGTCTTTCAAAAGGTGATGTGTGTTCTCATC <<<<<<<<<<<<<<<<<:<<<<<<<<<;<<:<<:<: MF:i:18 Aq:i:78 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:1:36:485:632 163 seq1 610 99 36M = 784 210 AAAAGGTCTTTCAAAAGGTGATGTGTGTTCTCATCA <<<<<<<<<<<<<<<<<<<<<<<<<<<5<<<;<18; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:8:36:927:478 99 seq1 610 99 35M = 798 223 AAAAGGTCTTTCAAAAGGTGATGTGTGTTCTCATC <<<<<<<<<<<<<<<<;<<<<<:<:<<<<8<9;<8 MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:4:169:862:829 163 seq1 611 99 35M = 772 195 AAAGGTCTTTCAAAAGGTGATGTGTGTTCTCATCA <<<<<<<<<<<<<<<<<;<<<;<;<<<<:<;;<78 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:5:63:424:1643 163 seq1 614 99 35M = 798 219 GGTCTTTCAAAAGGTGATGTGTGTTCTCATCAACC ;;<<<<<<;<<<<<<<<<<5;9;<<<<<<<<<<;< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:4:20:41:138 99 seq1 615 99 35M = 774 194 GTCTTTCAAAAGGTGATGTGTGTTCTCATCAACCT <<<<<<<<<<<<<<<<<<<<<<<<7<;<<<<<(<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:2:49:163:904 83 seq1 616 99 35M = 450 -201 TCTTTCAAAAGGTGATGTGTGTTCTCATCAACCTC 79779<<<<<;;;;9;;<<7<;*9<<<7<<;<<;< MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:3:135:543:760 99 seq1 619 99 35M = 787 203 TTCAAAAGGTGATGTGTGTTCTCATCAACCTCATA <<<<;;<;<<<<<<<9<<<<<<<<<<<;<<<<5<: MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:5:131:742:561 163 seq1 620 99 35M = 790 205 TCAAAAGGTGATGTGTGTTCTCATCAACCTCATAC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:78 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:6:120:14:944 83 seq1 621 99 35M = 428 -228 CAAAAGGTGATGTGTGTTCTCATCAACCTCATACA :;<<;<;<;<<;<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:8:82:566:1096 147 seq1 621 99 35M = 446 -210 CAAAAGGTGATGTGTGTTCTCATCAACCTCATACA <<<<<<<<<<:<<<<<<<:<<<<<<:<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:8:14:601:624 83 seq1 622 99 35M = 446 -211 AAAAGGTGATGTGTGTTCTCATCAACCTCATACAC 1;;;;==5===.(=9=5=========8====;=== MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:3:5:538:401 99 seq1 624 99 40M = 788 204 AAGGTGATGTGTGTTCTCATCAACCTCATACACACACATG <<<<;<<<<<<<<<<<<<<<;<::7<<;<53:<98;;;;; MF:i:18 Aq:i:39 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:8:16:1081:1894 83 seq1 624 99 35M = 431 -228 AAGGTGATGTGTGTTCTCATCAACCTCATACACAC ;5;;&<;<<<<<<<<;<;<<;<<<;<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:3:3:1377:1663 147 seq1 626 99 35M = 446 -215 GGTGATGTGTGTTCTCATCAACCTCATACACACAC 6-88663;8;81;;66;8;;89939;;;67;2;;; MF:i:18 Aq:i:61 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:4:253:285:104 83 seq1 627 99 35M = 451 -211 GTGATGTGTGTTCTCATCAACCTCATACACACACA 2<;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:6:66:1282:1215 99 seq1 627 99 35M = 794 202 GTGATGTGTGTTCTCATCAACCTCATACACACACA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<;;; MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:3:2:1200:1076 163 seq1 629 99 35M = 786 192 GATGTGTGTTCTCATCAACCTCATACACACACATG ;;;;;;;;;;/;;;;;;;;6;;9;489;;;88888 MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:2:194:688:289 99 seq1 631 99 35M = 795 199 TGTGTGTTCTCATCAACCTCATACACACACATGGT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<9<<<:; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:8:19:855:491 99 seq1 631 99 35M = 783 187 TGTGTGTTCTCATCAACCTCATACACACACATGGT <<<<<<<<<<<;<<.:<<<<;;;<4<:<:<7<;;; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:6:215:133:909 99 seq1 631 99 34M = 789 193 TGTGTGTTCTCATCAACCTCATACACACACATGG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<996( MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:7:35:378:681 99 seq1 632 99 35M = 812 215 GTGTGTTCTCATCAACCTCATACACACACATGGTT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<:< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:5:40:758:116 163 seq1 632 99 40M = 814 222 GTGTGTTCTCATCAACCTCATACACACACATGGTTTAGGG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<:7262 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:1:2:831:692 147 seq1 634 99 35M = 462 -207 GTGTTCTCATCAACCTCATACACACACATGGTTTA 2749'979<9<<<6;<<<0<;<<<<<3<<<<<<<< MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:6:162:594:858 99 seq1 634 99 35M = 818 219 GTGTTCTCATCAACCTCATACACACACATGGTTTA <<<<<<<<<<<<<<<<<9<;<<<<<<<<<<3<<<; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:4:233:478:792 99 seq1 634 99 35M = 791 192 GTGTTCTCATCAACCTCATACACACACATGGTTTA <<<<<<<<<<<<<<<<<<<+<<<<<<<9<<<+;;; MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:2:262:297:601 83 seq1 635 99 35M = 482 -188 TGTTCTCATCAACCTCATACACACACATGGTTTAG ;;<26;;;<;<7;<<<<<99<<<<<<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:6:45:1769:1130 83 seq1 635 99 35M = 476 -194 TGTTCTCATCAACCTCATACACACACATGGTTTAG 88989;<;97;9<<;<;;;;9<98<<<<<<<;<<< MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_53:4:153:977:200 83 seq1 640 99 35M = 472 -203 TCATCAACCTCATACACACACATGGTTTAGGGGTA 1:<83<<9;;9<<9;;<<;<<;;;;<;;<<<<<<; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:1:60:837:923 83 seq1 641 61 36M = 457 -220 CATCAACCGCATACACTCACATGGTTTAGGGGTATA 0<4<<<02.<99+<+&!<<<<+<<<<<<<<<<<<3< MF:i:18 Aq:i:24 NM:i:2 UQ:i:13 H0:i:0 H1:i:0
+EAS51_66:3:29:381:169 83 seq1 641 99 35M = 494 -182 CATCAACCTCATACACACACATGGTTTAGGGGTAT 2<82<;66<:<;<:<;<;<8<<<<<<<<<<<<<<< MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:7:96:836:737 99 seq1 642 99 35M = 841 234 ATCAACCTCATACACACACATGGTTTAGGGGTATA <<<<<<71<<<<<<<<<<899<:5<<<96858<<. MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:6:228:354:203 147 seq1 643 99 35M = 480 -198 TCAACCTCATACACACACATGGTTTAGGGGTATAA %1<851<5<<<982<<<<<<<<::<<<<7<<<<3< MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:1:151:159:43 147 seq1 645 99 35M = 452 -228 AACCTCATACACACACATGGTTTAGGGGTATAATA ;;4;6<<;<<<<7<77<6;<6<<<<<;;<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:3:182:404:693 163 seq1 646 99 35M = 812 201 ACCTCATACACACACATGGTTTAGGGGTATAATAC <<<<<<<<<<<<<<<<<<<<<<:::<6<;<94;77 MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:8:4:841:339 163 seq1 646 99 35M = 793 182 ACCTCATACACACACATGGTTTAGGGGTATAATAC <<<<<<<<<<<<<<<<<;<7<<&;;<5<+<;7<<; MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:4:156:857:494 163 seq1 648 99 35M = 838 225 CTCATACACACACATGGTTTAGGGGTATAATACCT <<<<<<<<<<<<<<<<<6<<<<<<<<<<<<<<:<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:6:165:464:123 99 seq1 650 99 35M = 814 199 CATACACACACATGGTTTAGGGGTATAATACCTCT ===============7==============8==== MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_61:1:115:868:887 83 seq1 650 99 35M = 452 -233 CATACACACACATGGTTTAGGGGTATAATACCTCT ==;==8=;=;========================= MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:5:134:751:831 147 seq1 651 99 36M = 465 -222 ATACACACACATGGTTTAGGGGTATAATACCTCTAC ;:<4<8<<<;<;<<5<:<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:5:192:716:235 163 seq1 651 99 35M = 798 182 ATACACACACATGGTTTAGGGGTATAATACCTCTA ======================9==:<==:;;69; MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:3:40:594:752 99 seq1 651 99 35M = 831 215 ATACACACACATGGTTTAGGGGTATAATACCTCTA <<<<<<<<<<;<<<;<<<::;<:;<;:<;;;<;<: MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:4:184:17:636 121 seq1 652 76 35M = 652 0 TACACACACATGGTTTAGGGGTATAATACCTCTAC 8<89<<:<<<;;;<<<<<<<<<<<<<<<<<<<<<< MF:i:64 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:4:184:17:636 181 seq1 652 0 * = 652 0 TTTTTTTTTTTTTTTTTTTTTTTTTTTTCACAGGT !!!!!!!!!!!!!!!!!!!!!!!!!!!77777777 MF:i:192
+EAS1_108:8:129:477:427 147 seq1 652 99 35M = 481 -206 TACACACACATGGTTTAGGGGTATAATACCTCTAC <<<9;<<9<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:8:130:912:658 163 seq1 652 99 35M = 841 224 TACACACACATGGTTTAGGGGTATAATACCTCTAC <<<<<;<<<<<<;<<<<<<<<<<<<<<<<<7<;;< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:5:85:401:1190 83 seq1 652 99 35M = 458 -229 TACACACACATGGTTTAGGGGTATAATACCTCTAC 64778:;69739:;+9::7;;;<;6<;7;;;;;7< MF:i:18 Aq:i:55 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:3:4:1502:1911 163 seq1 652 99 40M = 802 190 TACACACACATGGTTTAGGGGTATAATACCTCTACATGGC <<<:4<<<<<<;<<<<;9;5<95<;<<;9+;1612:1::: MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:2:198:691:595 163 seq1 655 99 35M = 847 227 ACACACATGGTTTAGGGGTATAATACCTCTACATG ==============&===============;7;=1 MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:3:186:989:869 147 seq1 655 99 35M = 505 -185 ACACACATGGTTTAGGGGTATAATACCTCTACATG ;<<;:<<<7:<<<<<<:<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:8:38:856:336 147 seq1 656 99 35M = 480 -211 CACACATGGTTTAGGGGTATAATACCTCTACATGG 2;4;4<:;6:5:<<;:;<<;<<;<<<<<<<<<<<< MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:2:49:271:588 163 seq1 658 99 35M = 830 207 CACATGGTTTAGGGGTATAATACCTCTACATGGCT <<<<<<<<<<<<<<5:<<<<<<:<<<<<<<:7%9< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:2:240:593:842 147 seq1 660 99 35M = 494 -201 CATGGTTTAGGGGTATAATACCTCTACATGGCTGA *<<<;<<6<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:6:175:705:982 147 seq1 660 89 36M = 496 -200 CATGGTTTAGGGGTATAATACCTCTACATGGCTGAT ')'''''')'''''*')*)'*)')))+,'*)+'*,! MF:i:18 Aq:i:19 NM:i:1 UQ:i:0 H0:i:0 H1:i:1
+EAS221_3:6:26:227:1053 147 seq1 663 99 35M = 510 -188 GGTTTAGGGGTATAATACCTCTACATGGCTGATTA <<<<<<<<<<<<<<<<<<<<<<<<<;<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_78:7:316:961:576 147 seq1 666 65 35M = 488 -213 TTACGGGTGTAATCTCTCTACATGGCTAATTATGA (++%%+++),+,+*++,+,,-,**+,-&-,+-+-- MF:i:130 Aq:i:65 NM:i:5 UQ:i:36 H0:i:0 H1:i:0
+EAS56_63:5:96:788:614 163 seq1 667 99 35M = 862 230 TAGGGGTATAATACCTCTACATGGCTGATTATGAA <<<<<<<<<<<<<<<<<<<<<<;6;<<;;<;;7;9 MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:4:13:1155:631 83 seq1 668 99 40M = 524 -184 AGGGGTATAATACCTCTACATGGCTGATTATGAAAACAAT ;:398<<;<<<<<;<3<;;<<<<;;<<<<<<<<<<;<<;< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:6:199:511:426 83 seq1 669 99 35M = 509 -195 GGGGTATAATACCTCTACATGGCTGATTATGAAAA <:7:<<<<<<<<<<<<<<<<<;<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:5:124:241:608 99 seq1 670 99 35M = 856 221 GGGTATAATACCTCTACATGGCTGATTATGAAAAC <<<<<<<<<;<<<<<<<<<;;<<<;<<<<;;8;;: MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:2:59:396:359 147 seq1 670 99 35M = 474 -231 GGGTATAATACCTCTACATGGCTGATTATGAAAAC 28288;;;;;;;;;::;;;;:;;;;;;;;;;;;;; MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:4:87:323:895 147 seq1 671 99 35M = 494 -212 GGTATAATACCTCTACATGGCTGATTATGAAAACA 55777;;;939;9;;9;;;;9;;;;;;;;;;;;;; MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:1:28:708:463 147 seq1 672 99 36M = 477 -231 GTATAATACCTCTACATGGCTGATTATGAAAACAAT ;;<;<<====3=====5=================== MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:3:84:101:328 83 seq1 673 99 35M = 480 -228 TATAATACCTCTACATGGCTGATTATGAAAACAAT <<<<<<<<:<<<<<<<<<6<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:5:30:92:753 147 seq1 673 99 35M = 497 -211 TATAATACCTCTACATGGCTGATTATGAAAACAAT <<<<<<;<<<<<<:<<<<;<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_32:8:88:90:59 73 seq1 674 37 35M = 674 0 ATAATACCTCTACATGTCTGATTATGAAAACAATG <<<<<<<4;7;<<<;;47;&9..1;6&4<755;1; MF:i:64 Aq:i:0 NM:i:1 UQ:i:19 H0:i:0 H1:i:1
+EAS112_32:8:88:90:59 133 seq1 674 0 * = 674 0 TGCACCTCCCTGTTCACCTAGATGCTAGGAGGACA =7595=92=72.=+5(:4=9092((.2&(&%07%. MF:i:192
+B7_593:1:12:158:458 147 seq1 675 84 36M = 503 -208 TAATAATGCTACATGGATGATTATGAAATCAATGTT ++++++$((+*+++++++++++++&+++++++++++ MF:i:18 Aq:i:15 NM:i:5 UQ:i:40 H0:i:0 H1:i:0
+B7_593:4:28:781:723 99 seq1 676 99 36M = 855 215 AATACCTCTACATGGCTGATTATGAAAACAATGTTC <<<<<<<<<7<<<;;<<;;<<;<5<4<7<;7<+:<9 MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:2:27:856:401 163 seq1 679 99 35M = 871 227 ACCTCTACATGGCTGATTATGAAAACAATGTTCCC ======6===;2==;===;=+=92=;5+=&556:6 MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:7:245:323:744 83 seq1 679 99 35M = 499 -215 ACCTCTACATGGCTGATTATGAAAACAATGTTCCC /.848299;&;9;9;=2.=7========;;===== MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:7:31:948:254 99 seq1 680 99 35M = 849 204 CCTCTACATGGCTGATTATGAAAACAATGTTCCCC <<<<<<<<<<<<<<<<<<<;<<<<<:<<8<;;;;< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:6:277:590:364 83 seq1 681 99 35M = 503 -213 CTCTACATGGCTGATTATGAAAACAATGTTCCCCA :::<<<<;<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:7:201:959:19 147 seq1 681 99 35M = 493 -223 CTCTACATGGCTGATTATTAAAACAATGTTCCCCA ;4;.9<:0&/<5<::<<9/.<<<<<<<<<<<<;<< MF:i:18 Aq:i:41 NM:i:1 UQ:i:14 H0:i:0 H1:i:1
+EAS56_61:8:7:171:402 147 seq1 682 99 35M = 489 -228 TCTACATGGCTGATTATGAAAACAATGTTCCCCAG :086::::847:<7<<7<<<<<<;7<<;<<<<7<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:4:67:317:249 99 seq1 683 26 35M = 840 192 CTACATGGCTGATTATGAAATCTATGTTCCCCATA <<<<<<;<<<<;:;<<7;<<.<&3<;;<<(;;6.< MF:i:18 Aq:i:26 NM:i:3 UQ:i:31 H0:i:0 H1:i:0
+EAS51_64:4:189:467:475 147 seq1 683 99 35M = 493 -225 CTACATGGCTGATTATGAAAACAATGTTCCCCAGA *.;*;7<75<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:8:46:900:610 147 seq1 684 99 35M = 491 -228 TACATGGCTGATTATGAAAACAATGTTCCCCAGAT <;5<;<<<;<<<<<<;<<<<<<<<<<8<<<<<8<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:1:232:351:909 99 seq1 685 80 36M = 843 194 ACATGGCTGATTATGAAATCAATGTTCCCCAGATGC <<<<<99<<<<<<99<7<'<9<<<6<<+<;7;<<&; MF:i:18 Aq:i:39 NM:i:2 UQ:i:11 H0:i:0 H1:i:1
+EAS139_11:6:11:285:1567 83 seq1 685 99 35M = 525 -195 ACATGGCTGATTATGAAAACAATGTTCCCCAGATA <8<4<<<;<<;<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:2:172:622:707 147 seq1 685 99 35M = 511 -209 ACATGGCTGATTATGAAAACAATGTTCCCCAGATA 92<3996;<<<<<<<<<<<<<<<<<<<;<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:5:6:882:784 83 seq1 686 99 35M = 496 -225 CATGGCTGATTATGAAAACAATGTTCCCCAGATAC 4;7<;64<<:<<4<<<<<;<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:7:80:760:490 147 seq1 686 99 35M = 520 -201 CATGGCTGATTATGAAAACAATGTTCCCCAGATAC %::::+<<<;<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:4:68:1122:79 147 seq1 687 99 40M = 528 -199 ATGGCTGATTATGAAAACAATGTTCCCCAGATACCATCCC ::77*:1<<<<<<<<<<<<<<<:;<<<;<<<<<<8<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:1:264:988:663 99 seq1 688 99 35M = 875 222 TGGCTGATTATGAAAACAATGTTCCCCAGATACCA <<<<<<<<<<<1<4<<<4<<0<;<-<74*(<&51- MF:i:18 Aq:i:60 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:5:3:233:911 163 seq1 688 99 35M = 868 215 TGGCTGATTATGAAAACAATGTTCCCCAGATACCA <<<<<<<<<<<<<<<<<;<<<<<<<<<<;<;<<;< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:6:187:925:547 99 seq1 689 99 35M = 857 203 GGCTGATTATGAAAACAATGTTCCCAAGATACCAT 43<<<:9<;;;:7<<<<6<:<8<-4-/,81<(48: MF:i:18 Aq:i:37 NM:i:1 UQ:i:12 H0:i:0 H1:i:1
+EAS56_65:5:75:637:650 163 seq1 691 99 35M = 868 212 CTGATTATGAAAACAATGTTCCCCAGATACCATCC <<<<<<<<<<<<<<<<<<<<<<<<<;<<<<<<<<: MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:3:27:973:518 147 seq1 691 99 35M = 549 -177 CTGATTATGAAAACAATGTTCCCCAGATACCATCC +<<<<<<9<<<<<<<<<<<;<;<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:6:20:492:850 147 seq1 694 10 35M = 526 -203 AGTATGAAAACAATGTTCCCCAGATGCCGTCCCGG :.5:+.;;&91:;79:766:1:9+6&:1&&:+:)) MF:i:18 Aq:i:10 NM:i:4 UQ:i:31 H0:i:0 H1:i:0
+EAS51_64:4:318:345:156 83 seq1 695 99 35M = 522 -208 TTATGAAAACAATGTTCCCCAGATACCATCCCTGT ;8<8<<<<<;<<:<<;<;77<<<<<;<<;<<<<<< MF:i:18 Aq:i:39 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:3:5:863:302 99 seq1 698 99 35M = 866 203 TGAAAACAATGTTCCCCAGATACCATCCCTGTCTT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<9<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:4:7:526:343 147 seq1 698 99 35M = 515 -218 TGAAAACAGTGTTCCCCAGATACCATCCCTGTCTT (7:;;;<<;;;<1<1<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:43 NM:i:1 UQ:i:26 H0:i:0 H1:i:1
+EAS114_26:2:73:513:102 99 seq1 698 99 35M = 868 205 TGAAAACAATGTTCCCCAGATACCATCCCTGTCTT ===========================;======= MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:2:6:251:1557 83 seq1 700 99 35M = 526 -209 AAAACAATGTTCCCCAGATACCATCCCTGTCTTAC <<<<<<<<<<<<6:<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:78 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_78:7:147:64:416 99 seq1 701 99 35M = 870 204 AAACAATGTCCCCCAGATACCATCCCTGTCTTACT <<<<<<<<<<<<<<<;<<<<<;<<<<;;:<;;;;; MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+B7_595:3:297:637:86 163 seq1 704 99 35M = 869 200 CAATGTTCCCCAGATACCATCCCTGTCTTACTTCC <<<<<<<<<<<<;+<+;<;<:<<<<<9<<957<;( MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:6:160:272:398 163 seq1 705 99 35M = 891 221 AATGTTCCCCAGATACCATCCCTGTCTTACTTCCA 9<<<3<<<<<<<<<<<9<<;8<<<<;<+.;;89.. MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:8:4:679:110 147 seq1 705 99 35M = 549 -191 AATGTTCCCCAGATACCATCCCTGTCTTACTTCCA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:6:163:312:891 147 seq1 709 99 35M = 543 -201 TTCCCCAGATACCGTCCCTGTCTTACTTCCAGCTC 0.<;;8<<<0<<<<<<<<<<6<<<<<<8<<<<<<< MF:i:18 Aq:i:43 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS114_28:3:78:773:660 83 seq1 711 99 36M = 534 -213 CCCCAGATACCATCCCTGTCTTACTTCCAGCTCCCC 7<;7<<<7;9<<8;<<<<<<;<<<<<<<<<<7<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_4:5:63:875:1339 163 seq1 711 99 35M = 879 203 CCCCAGATACCATCCCTGTCTTACTTCCAGCTCCC <<<<<<<<<<<<<<<<<<<<<<9<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:7:243:876:758 147 seq1 712 99 35M = 541 -206 CCCAGATACCATCCCTGTCTTACTTCCAGCTCCCC 0%3<1;.70;3363;31;<<<<<<6<<<;<<<<<< MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:4:104:153:698 163 seq1 713 99 36M = 896 219 CCAGATACCATCCCTGTCTTACTTCCAGCTCCCCAG ;<<<<<<;6<<<<<<<<<<;<<<<;<;;;<.<::50 MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:7:86:498:373 163 seq1 716 99 35M = 894 213 GATACCATCCCTGTCTTACTTCCAGCTCACCAGAG <<<<<<<<<<<<<<<<<<<<<<<5:<<<:<;7+67 MF:i:18 Aq:i:69 NM:i:1 UQ:i:25 H0:i:1 H1:i:0
+EAS1_95:6:87:734:888 163 seq1 717 99 35M = 900 218 ATACCATCCCTGTCTTACTTCCAGCTCCCCAGAGG ===========;8=========;;=;====;;3(; MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:5:238:31:968 147 seq1 717 99 35M = 534 -218 ACACCATCCCTGTCTTACTTCCAGCTCCCCAGAGG =(.7=5%===9:7==+==77=============== MF:i:18 Aq:i:69 NM:i:1 UQ:i:7 H0:i:1 H1:i:0
+EAS54_65:3:290:558:349 99 seq1 719 99 35M = 869 185 ACCATCCCTGTCTTACTTCCAGCTCCCCAGCGGGA <<<;<<;<;<188<<<8::<686+4:<<6:&3)*& MF:i:18 Aq:i:59 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS114_28:5:206:671:49 83 seq1 719 99 36M = 557 -198 ACCATCCCTGTCTTACTTCCAGCTCCCCAGAGGGAA ;<<<<<<<;<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:2:278:918:892 147 seq1 720 99 35M = 541 -214 CCATCCCTGTCTTACTTCCAGCTCCCCAGAGGGAA =6=3=<===&========================= MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:1:191:462:705 147 seq1 721 99 36M = 545 -212 CATCCCTGTCTTACTTCCAGCTCCCCAGAGGGAAAG <<'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:4:9:55:730 83 seq1 722 99 36M = 540 -218 ATCCCTGTCTTACTTCCAGCTCCCCAGAGGGAAAGC <:<;;<6<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:7:45:462:455 163 seq1 723 99 35M = 874 186 TCCCTGTCTTACTTCCAGCTCCCCAGACGGAACGC <<<<<<8<<<;<;<<<;<<<<<<<6;8&:80;733 MF:i:18 Aq:i:43 NM:i:2 UQ:i:27 H0:i:0 H1:i:1
+EAS114_28:2:149:650:44 163 seq1 726 99 36M = 902 212 CTGTCTTACTTCCAGCTCCCCAGAGGGAAAGCTTTC <<<<<<<<<<<<<<<<<<<<<<<<<;6<<;<<7<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:1:297:283:948 83 seq1 727 99 35M = 550 -212 TGTCTTACTTCCAGCTCCCCAGAGGGAAAGCTTTC 6;;3;6<<66<<<<<;<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:3:33:1168:1762 147 seq1 728 99 35M = 552 -211 GTCTTACTTCCAGCTCCCCAGAGGGAAAGCTTTCA 79<9;3<<<4<<<97<;;<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:1:228:182:717 147 seq1 729 99 35M = 563 -201 TCTTACTTCCAGCTCCCCAGAGGGAAAGCTTTCAA 778;8;474<<<;2;;<2<<<<<<<<;<;;9<<<< MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:8:8:1351:1986 163 seq1 729 99 35M = 911 217 TCTTACTTCCAGATCCCCAGAGGGAAAGCTTTCAA <<<<<<<<<<<<-<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:12 H0:i:0 H1:i:1
+EAS51_64:4:163:31:455 163 seq1 730 99 35M = 886 191 CTTACTTCCAGCTCCCCAGAGGGACAGCTNNCAAC <+<<<<<<<;0+<<<<;06070-9(0(9<!!5)05 MF:i:18 Aq:i:31 NM:i:3 UQ:i:7 H0:i:0 H1:i:1
+EAS54_61:6:126:541:194 83 seq1 730 97 35M = 540 -225 AGTACGACCAGCTCCCCAGAGGGAAAGCTTTCAAC +%&:/+(46=47&71/2==;=;8====28212=== MF:i:18 Aq:i:43 NM:i:4 UQ:i:40 H0:i:1 H1:i:0
+EAS51_62:7:178:286:414 163 seq1 731 99 35M = 907 211 TTACTTCCAGCTCCCCAGAGGGAAAGCTTTCAACG <<<<<<<<<<<<<<<<8<<<<<<<<<1<<<1;998 MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:3:35:361:546 163 seq1 731 99 35M = 892 196 TTACTTCCAGCTCCCCAGAGGGAAAGCTTTCAACG <<<<<<<<<<<<<<<<;<5<<<<<;<2<<<:<8<4 MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:4:90:247:212 147 seq1 733 99 35M = 567 -201 ACTTCCAGCTCCCCAGAGGGAAAGCTTTCAACGCT 7655:;87;<;;;8<<<<<<<<<<<;<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:7:149:354:667 99 seq1 734 99 35M = 888 189 CTTCCAGCTCCCCAGAGGGAAAGCTTTCAACGCTT <<<<<<<<<<<<<<<<<<<><<<<<<<<;<:<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:2:240:603:890 83 seq1 740 99 36M = 590 -186 GCTCCCAAGAGGGAAAGCTTTCAACGCTTCTAGCCA ;+&+//&<<<<<<<<<<9<<<8<<<<9<<<<<<<<< MF:i:18 Aq:i:66 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+B7_591:7:129:956:115 163 seq1 740 99 36M = 927 223 GCTCCCCAGAGGGAAAGCTTTCAACGCTTCTAGCCA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;877- MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_53:4:168:528:288 83 seq1 740 99 35M = 570 -205 GCTCCCCAGAGGGAAAGCTTTCAACGCTTCTAGCC 8<%<31;<<;<;<<<<<<<;<<<<<<<<<<;<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:8:275:851:240 147 seq1 743 99 35M = 561 -217 CCCCAGAGGGAAAGCTTTCAACGTTTCTAGCCATT 66614/&3616630666&66666&66666868666 MF:i:18 Aq:i:31 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+EAS188_7:6:205:873:464 147 seq1 743 99 35M = 552 -226 CCCCAGAGGGAAAGCTTTCAACGCTTCTAGCCATT <-((+:+;289<--;<;-;<:;;<<<;;<<<<<<< MF:i:18 Aq:i:63 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:6:37:610:260 163 seq1 745 99 35M = 913 203 CCAGAGGGAAAGCTTTCAACGCTTCTAGCCATTTC <<<;<;<<7<<<<<<<<<<<<<<;6<963;;;3;1 MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:7:93:945:176 147 seq1 745 99 35M = 582 -198 CCAGAGGGAAAGCTTTCAACGCTTCTAGCCATTTC 6;;;8<<3<<8.<;6)<<<<<9<<<<<<<<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:6:61:628:681 83 seq1 746 99 36M = 586 -196 CAGAGGGAAAGCTTTCAACGCTTCTAGCCATTTCTT 95<<<<<<<<;<<<<;<<<:<<;;<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:7:288:552:440 83 seq1 747 87 35M = 560 -222 AGAGGGAACGCTTTCAACTCTTCTAGCCATTTCTT 9<<%'%<<.2<<<<<<<<5:<<<<<<<<<<<<<<< MF:i:18 Aq:i:26 NM:i:2 UQ:i:33 H0:i:0 H1:i:0
+EAS56_53:2:170:265:818 163 seq1 748 10 35M = 920 207 GAGGGGAAGCTTTCAACGCTTCTAGCACTTTCTTT <<<<<(5/959<8.<9<8<<<2<&59&&:22:8+( MF:i:18 Aq:i:10 NM:i:3 UQ:i:17 H0:i:0 H1:i:0
+B7_595:2:251:121:479 83 seq1 750 99 35M = 572 -213 GGGAAAGCTTTCAACGCTTCTAGCCATTTCTTTTG <<<<<6'..663;&<<;<<9<<<9<<<<<<<<<<< MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:8:67:1797:1931 147 seq1 750 99 35M = 562 -223 GGGAAAGCTTTCAACGCTTCTAGCCATTTCTTTTG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:2:226:302:758 83 seq1 751 99 35M = 556 -230 GGAAAGCTTTCAACGCTTCTAGCCATTTCTTTTGG ;<<<<9;<<<<<<<<<<7<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:33 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:2:163:618:570 83 seq1 751 99 35M = 571 -215 GGAAAGCTGTCAACGCTTCTAGCCATTTCTTTTGG <9774<88&:8<:8<8:8<8<<<<<;88<88<<<< MF:i:18 Aq:i:41 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+EAS1_97:3:73:292:429 99 seq1 752 99 35M = 920 203 GAAAGCTTTCAACGCTTCTAGCCATTTCTTTTTGC <<<<<<<<<<7<<;<<<<<<<2<<<5<<<<<:%)< MF:i:18 Aq:i:69 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+EAS1_108:3:82:356:253 99 seq1 752 99 35M = 927 210 GAAAGCTTTCAACGCTTCTAGCCATTTCTTTTGGC ===================<========;===39= MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:6:62:386:959 147 seq1 752 99 35M = 594 -193 AAAAGCTTTCAACGCTTCTAGCCATTTCTTTTGGC %;71131((<<6<92(+<1<<;<-3<8<<;<;;<< MF:i:18 Aq:i:57 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+EAS51_62:3:263:74:407 83 seq1 754 99 35M = 574 -215 AAGCTTTCAACGCTTCTAGCCATTTCTTTTGGCAT ;;88<::+;<)<5<<:<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:3:67:620:344 99 seq1 755 99 35M = 905 185 AGCTTTCAACGCTTCTAGCCATTTCTTTTGGCATT <<<<2<:2<<<<<<7<<<<:<<*<<<<<<***3<< MF:i:18 Aq:i:33 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:6:148:776:486 83 seq1 755 99 35M = 578 -212 AGCTTTCAACGCTTCTAGCCATTTCTTTTGGCATT ;:<<<;<<;<<<<<;<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_61:3:150:933:810 83 seq1 755 99 35M = 593 -197 AGCTTTCAACGCTTCTAGCCATTTCTTTTGGCATT :89===:=:=;;==;==================== MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:4:102:467:897 99 seq1 756 97 35M = 940 219 GCTTTCAACGCTTCTAGCCATTTCTTTTGTCTTTT <<<<9<<<<9<2<<<&,/</<<<<7<<;&&<$;*< MF:i:18 Aq:i:37 NM:i:2 UQ:i:8 H0:i:1 H1:i:0
+EAS114_39:1:12:884:219 147 seq1 756 99 35M = 584 -207 GCTTTCAACGCTTCTAGCCATTTCTTTTGGCATTT 7;::<:<<<7<<:<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:1:40:1596:1433 147 seq1 756 99 40M = 587 -209 GCTTTCAACGCTTCTAGCCATTTCTTTTGGCATTTGCCTT -:8:1841<4;<88<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:5:7:761:623 99 seq1 757 99 35M = 938 216 CTTTCAACGCTTCTAGCCATTTCTTTTGGCATTTG <<<<<<<<<<<<<8<<<<;;<0<<<<<;;<;<;;& MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:4:246:313:499 147 seq1 757 99 35M = 592 -200 CTTTAAACGCTTCTAGCCATTTCTTTTGGCATTTG +;77%;;;&:;:7;<<<<<6<:<<<<<<<<<<<<< MF:i:18 Aq:i:65 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+EAS139_11:6:89:1151:1878 147 seq1 757 99 35M = 587 -205 CTTTCAACGATTCTAGCCATTTCTTTTGGCATTTG 8<66,,<<<<<<:<<<<<9<<<:<<<<<<<<<<<< MF:i:18 Aq:i:43 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS54_71:4:165:397:25 83 seq1 759 99 34M = 576 -217 TTCAACGCTTCTAGCCATTTCTTTTGGCATTTGC &(33'60;-'+'<7;<<*3-<;;183<<<;<;<< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:2:59:1576:946 147 seq1 761 99 35M = 578 -218 CAACGCTTCTAGCCATTTCTTTTGGCATTTGCCTT 9<<<9<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:7:256:407:470 163 seq1 762 99 35M = 939 212 AACGCTTCTAGCCATTTCTTTTGGCATTTGCCTTC <<<<<<<<;<;<<<<<<<<<;;<</<<;;83;7;9 MF:i:18 Aq:i:63 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:3:148:437:481 163 seq1 764 99 36M = 949 221 CGCTTCTAGCCATTTCTTTTGGCATTTGCCTTCAGA <<<<<<<<<<<<<<<<<<<<<;<<<<<;<<<<;0;8 MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:8:140:924:923 83 seq1 767 99 35M = 597 -205 TTTTAGCCATTTCTTTTGGCATTTGCCTTCAGACC <<&<<;;<;<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS1_103:4:143:560:194 99 seq1 768 99 35M = 946 213 TCTAGCCATTTCTTTTGGCATTTGCCTTCAGACCC <<<<;;<<<<<<<<<<<6<;<<<<;;<<;9<999< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:2:178:192:499 83 seq1 768 99 35M = 582 -221 TCTAGCCATTTCTTTTGGCATTTGCCTTCAGACCC 86<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:3:4:1620:413 147 seq1 768 99 35M = 588 -215 TCTAGCCATTTCTTTTGGCATTTGCCTTCAGACCC -<<<7<<<<<<<<<;<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:2:73:730:487 147 seq1 770 99 35M = 604 -201 TAGCCATTTCTTTTGGCATTTGCCTTCAGACCCTA <;;<<2;<;<<<;0<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:4:179:389:585 163 seq1 770 24 35M = 953 218 TGGCCACTTTTTATCGCATTTCCCTTTAGAACCTA <.4<9.4+.+'&-220<+<4<6<<20*6;<0(9<% MF:i:130 Aq:i:24 NM:i:7 UQ:i:103 H0:i:0 H1:i:0
+B7_595:1:252:19:955 147 seq1 771 84 35M = 596 -210 AGCCAGTTCTTTTGGCATTTGCCTTCAGACCCTCC <8<884<<<<<<68<<<<<<<2<;<<;<+<<<;<< MF:i:18 Aq:i:41 NM:i:2 UQ:i:46 H0:i:0 H1:i:1
+EAS54_71:4:169:862:829 83 seq1 772 99 34M = 611 -195 GCCATTTCTTTTGGCATTTGCCTTCAGACCCTAC ,1<6<<<<<7<<<<<<<<<<<<<<<<<7<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:6:7:858:437 147 seq1 773 99 35M = 593 -215 CCATTTCTTTTGGCATTTGCCTTCAGACCCTACAC 7;<4;;:;80<;<;<<<<<<:<<;<<<;;<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:4:183:852:253 83 seq1 773 99 35M = 599 -209 CCATTTCTTTTGGCATTTGCCTTCAGACCCTACAC ;<9<;<<<<<<<<;<<<<<;<<<;<<<<;<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:4:20:41:138 147 seq1 774 99 35M = 615 -194 CATTTCTTTTGGCATTTGCCTTCAGACCCTACACG ;;;<;<<<::<<<<<<<;<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:5:123:998:248 83 seq1 776 99 35M = 589 -222 TTTCTTTTGGCATTTGCCTTCAGACCCTACACGAA ;:;5;<;:<9<<<<<:<;<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:4:142:63:937 83 seq1 777 99 36M = 609 -204 TTCTTTTGGCATTTGCCTTCAGACCCTACACGAATG ;;;<;<<<<;<<<<<;:<<<<<<<;<<<<<<<<<<< MF:i:18 Aq:i:78 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_61:3:20:762:748 83 seq1 777 99 35M = 591 -221 TTCTTTTGGCATTTGCCTTCAGACCCTACACGAAT =:747;7=;;==7=;==7===7==7;========= MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:3:149:953:349 99 seq1 777 99 35M = 915 173 TTCTTTTGGCATTTGCCTTCAGACCCTACACGAAT <<<<<<<<;<<<<<<<<<<<;7:<:<<:<:;;::; MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:3:46:981:766 163 seq1 778 99 35M = 933 190 TCTTTTGGCATTTGCCTTCAGACCCTACACGAATG <<<<<<<<<<<<<;<<<<<-<;<<<<-<-<;-:6; MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:6:204:779:181 83 seq1 779 99 35M = 598 -216 CTTTTGGCATTTGCCTTCAGACCCTACACGAATGC ;:;/*<:<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:6:11:360:1577 147 seq1 781 99 35M = 606 -210 TTTGGCATTTGCCTTCAGACCCTACACGAATGCGT 1<1<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:2:5:491:391 99 seq1 782 99 35M = 917 170 TTGGCATTTGCCTTCAGACCCTACACGAATGCGTC =========;===;==:4=========;3;==7;= MF:i:18 Aq:i:62 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_78:7:186:199:927 99 seq1 783 99 35M = 802 54 TGGCATTTGCCTTCAGACCCTACACGAATGCGTCT <77<<<<2<;<<<<<06<<<<<<<<60<<684/6& MF:i:18 Aq:i:57 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:8:19:855:491 147 seq1 783 99 35M = 631 -187 TGGCATTTGCCTTCAGACCCTACACGAATGCGTCT 8<<<<;:<<<<:<<<<<:<;;<<<<<<<;<<<;<; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:1:36:485:632 83 seq1 784 99 36M = 610 -210 GGCATTTGCCTTCAGACCCTACACGAATGCGTCTCT 0;;;<<;<<<;<<<<<<<<<<<<<;<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:2:177:266:842 83 seq1 784 99 35M = 599 -220 GGCATTTGCCTTCAGACCCTACACGAATGCGTCTC <9<<6;9<;9;;<<<<;;;9<<<<<<<<<<<<<<< MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:8:65:1928:1125 147 seq1 784 99 35M = 588 -231 GGCATTTGCCTTCAGACCCTACACGAATACGTCTC <+<<<2<4<<<0<<4<<<<<6<<<6<<<'<<<<0< MF:i:18 Aq:i:41 NM:i:1 UQ:i:6 H0:i:0 H1:i:1
+EAS221_3:4:66:584:407 163 seq1 785 99 35M = 954 204 GCATTTGCCTTCAGACCCTACACGAATGCGTCTCT <<<*9<9<<<1<<<<<<<<*<59<4<)<2<<<<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:6:172:896:83 147 seq1 786 99 35M = 604 -217 CATTTGCCTTCAGACCCTACACGAATGCGTCTCTA ;<.5.;;<+;<<<<<<<4<<<<<<<;<<<<<;<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:3:2:1200:1076 83 seq1 786 99 35M = 629 -192 CATTTGCCTTCAGACCCTACACGAATGCGTCTCTA 7779779;9;:;;4;;9;;:7;<<<7;;;:<;<<; MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:3:135:543:760 147 seq1 787 99 35M = 619 -203 ATTTGCCTTCAGACCCTACACGAATGCGTCTCTAC ;;.;;8;<8;<<32;<<<<<7<<<<<9<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:3:5:538:401 147 seq1 788 99 40M = 624 -204 TTTGCCTTCACACCCTACACGAATGCGTCTCTGCCACAGG 671&7::49:&0<<<(<::<&<<<:<<<<<<<&<<<<1<< MF:i:18 Aq:i:39 NM:i:2 UQ:i:10 H0:i:0 H1:i:1
+EAS54_71:6:215:133:909 147 seq1 789 99 35M = 631 -193 TTGCCTTCAGACCCTACACGAATGCGTCTCTACCA 7758;<;<;8<<<<;<;<<<<<:;<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:2:30:887:404 83 seq1 789 99 35M = 600 -224 TTGCCTTCAGACCCTGCACGAATGCGTCTCTACCA <<<<5<;::<<<;<<.<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:1 UQ:i:13 H0:i:0 H1:i:1
+EAS219_1:1:5:497:687 147 seq1 789 99 35M = 607 -217 TTGCCTTCAGACCCTACACGAATGCGTCTCTACCA <8<<8<<<;<<<<<;<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:5:131:742:561 83 seq1 790 99 35M = 620 -205 TGCCTTCAGACCCTACACGAATGCGTCTCTACCAC <:<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:78 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:3:65:556:1505 83 seq1 790 99 35M = 593 -232 TGCCTTCAGACCCTACACGAATGCGTCTCTACCAC <6<8<<4<8;;;<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:4:233:478:792 147 seq1 791 99 35M = 634 -192 GCCTTCAGACCCTACACGAATGCGTCTCTACCACA 6<;9:<<9-<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:6:66:257:524 99 seq1 791 99 35M = 959 203 GCCTTCAGACCCTACACGAATGCGTCTCTACCACC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<% MF:i:18 Aq:i:73 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+EAS56_53:4:154:762:630 83 seq1 792 99 35M = 604 -223 CCTTCAGACCCTACACGAATGCGTCTCTACCACAG <<-::<91<<<<;<;<<<<;<<<<<<<<;<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:8:4:841:339 83 seq1 793 99 35M = 646 -182 CTTCAGACCCTACACGAATGCGTCTCTACCACAGG 77-):22<<<33;<5<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:6:66:1282:1215 147 seq1 794 99 35M = 627 -202 TTCAGACCCTACACGAATGCGTCTCTACCACAGGG ::;<;<<<<:<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:2:194:688:289 147 seq1 795 99 35M = 631 -199 TCAGACCCTACACGAATGCGTCTCTACCACAGGGG ;8;%28<;<<<<<<<<;<<<<;<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:8:36:927:478 147 seq1 798 99 35M = 610 -223 GACCCTACACGAATGCGTCTCTACCACAGGGGGCT ,6;;;3;<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:8:99:756:130 83 seq1 798 99 35M = 606 -227 GACCCTACACGAATGCGTCTCTACCACAGGGGGCT ;;<<;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:5:192:716:235 83 seq1 798 99 35M = 651 -182 GACCCTACACGAATGCGTCTCTACCACAGGGGGCT <5<<<8<:<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:5:63:424:1643 83 seq1 798 99 35M = 614 -219 GACCCTACACGAATGCGTCTCTACCACAGGGGGCT 9+<<<+7<<<<<<<<<<<<<<<<<8<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:8:14:360:580 99 seq1 799 99 35M = 963 199 ACCCTACACGAATGCGTCTCTACCACAGGGGGCGG ===========3===;5<==8;====79==.=5'5 MF:i:18 Aq:i:68 NM:i:1 UQ:i:6 H0:i:1 H1:i:0
+EAS51_78:7:186:199:927 147 seq1 802 99 35M = 783 -54 CTACGCGAATGCGTCTCTACCACAGGGGGCTGCGC -;++)6<*8+;&<&/<<<<7<<71<<<<<6<<<7< MF:i:18 Aq:i:57 NM:i:1 UQ:i:8 H0:i:1 H1:i:0
+EAS139_19:3:4:1502:1911 83 seq1 802 99 40M = 652 -190 CTACACGAATGCGTCTCTACCACAGGGGGCTGCGCGGTTT :+:::5/;99<;<&<*<-9<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:3:187:791:153 99 seq1 803 99 35M = 958 190 TACACGAATGCGTCTCTACCACAGGGGGCTGCGCG <<<<<<<<<<<<<<<<<<<<<:+;;<;<88*6;68 MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:4:63:527:1923 99 seq1 803 99 35M = 981 213 TACACGAATGCGTCTCTACCACAGGGGGCTGCGCG <<<<<<<<<<<<<<<<<:<<<<3<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:2:31:98:804 99 seq1 805 99 35M = 982 212 CACGAATGCGTCTCTACCACAGGGGGCTGCGCGGC =======9===;============5=;9=;=;==& MF:i:18 Aq:i:74 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS218_4:7:89:1487:520 163 seq1 805 99 35M = 997 227 CACGAATGCGTCTCTACCACAGGGGGCTGCGCGGT 8<<<6/<<<<<<<<<:<<8<:<<3<<:668<86<3 MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:4:69:88:1154 99 seq1 805 99 35M = 992 222 CACGAATGCGTCTCTACCACAGGCGGCTGCGCGGT <<<<<<<<<<<<<<<<<<<<<<<2<<<<:<<<<<7 MF:i:18 Aq:i:47 NM:i:1 UQ:i:17 H0:i:0 H1:i:1
+EAS114_26:1:99:212:522 163 seq1 806 99 35M = 1002 231 ACGAATGCGTCTCTACCACAGGGGGCTGCGCGGTT ================8==;====;=;===1==:8 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:7:35:378:681 147 seq1 812 99 35M = 632 -215 GCGTCTCTACCACAGGGGGCTGCGCGGTTTCCCAT :<5-<);;;<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:3:182:404:693 83 seq1 812 99 35M = 646 -201 GCGTCTCTACCACAGGGGGCTGCGCGGTTTCCCAT <;7;;4<<<<<<<7<<7<<<<<<<<<8<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:3:119:761:239 99 seq1 813 99 35M = 999 221 CGTCTCTACCACAGGGGGCTGCGCGGTTTCCCATC <<<<<<<<<<<<6<<<<<<;<2<<<<;<<<<<;;< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:6:165:464:123 147 seq1 814 99 35M = 650 -199 GTCTCTACCACAGGGGGCTGCGCGGTTTCCCATCA 9;<)<<%<<9<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:5:40:758:116 83 seq1 814 99 40M = 632 -222 GTCTCTACCACAGGGGGCTGCGCGGTTTCCCATCATGAAG 25/8/:<75:2<<<<<<7<<;<<<<<<<88;<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:7:55:506:125 99 seq1 817 99 35M = 982 200 TCTACCACAGGGGGCTGCGCGGTTTCCCATCATGA <<<<<<<<<;<9<;<<;558<<<<5(5*<<<<<51 MF:i:18 Aq:i:35 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:6:162:594:858 147 seq1 818 99 35M = 634 -219 CTACCACAGGGGGCTGCGCGGTTTCCCATCATGAA 90;<99;==99==;4=:========;=====;=== MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:3:55:74:1040 99 seq1 818 99 35M = 975 192 CTACCACAGGGGGCTGCGCGGTTTCCCATCATGAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<:<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:7:100:708:1984 99 seq1 819 99 35M = 1015 231 TACCACAGGGGGCTGCGCGGTTTCCCATCATGAAG <<<<<<<<<<<<<<<<<<<<<<<<<<;<<<<<7%: MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:7:92:367:1495 163 seq1 820 99 35M = 987 202 ACCACAGGGGGCTGCGCGGTTTCCCATCATGAAGC <<<<<<<<<<<<<<<<<<<<<<<<<<<<6<<<6<< MF:i:18 Aq:i:78 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:6:49:905:27 163 seq1 821 68 35M = 1000 214 CCACAGGGGGCTGCGCGGTTTCCCATCCTGAAGCA <<;<.89<9.<2<9<:91+447.9,04&000(,+( MF:i:18 Aq:i:31 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+EAS218_4:7:87:964:826 163 seq1 822 99 35M = 999 212 CACAGGGGGCTGCGCGGTTTCCCATCATGAAGCAC <<<<<<<<<<<<<<<<<<<<<<<<<<1<<8;4;;< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:8:38:1576:1923 163 seq1 822 99 35M = 987 200 CACAGGGGGCTGCGCGGTTTCCCATCATGAAGCAC <<<<<<<<<<<<<<<<<<<<<<<<<<;<<:;<<;< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:1:122:337:968 99 seq1 823 85 35M = 981 193 ACAGGGGGCTGCGCGGTTTCCCATCATGAAGCACT <<<<<;<<<<<<<<<<<<<<<<<<<;<<;;<;;;; MF:i:18 Aq:i:10 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:3:187:294:947 99 seq1 823 99 35M = 1002 214 ACAGGGGGCTGCGCGGTTTCCCATCATGAAGCACT <<<<<<<<<<<<<<<<:<<<<<&<<%:<)7;7::4 MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:2:49:271:588 83 seq1 830 99 35M = 658 -207 GCTGCGCGGTTTCCCATCATGAAGCACTGAACTTC :0=:===:<===;;===;================= MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:3:40:594:752 147 seq1 831 99 35M = 651 -215 CTGCGCGGTTTCCCATCATGAAGCACTGAACTTCC ;7;9<;;;<;<;:<<;;<<<<<<<<<;<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:8:163:757:432 99 seq1 837 99 35M = 1013 211 GGTTTCCCATCATGAAGCACTGAACTTCCACGTCT <<<<<<<;<<<<<<<<;<;<<<<<<<<<<<<83:< MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:4:156:857:494 83 seq1 838 99 35M = 648 -225 GTTTCCCATCATGAAGCACTGAACTTCCACGTCTC <<<8<:5<<;<<8<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:5:84:91:614 163 seq1 839 99 35M = 1019 215 TTTCCCATCATGAAGCACTGATCTTCCACGTCTCA ;4<<<<<-84<<<;<<<<8<7.<4<<;77&:%<:: MF:i:18 Aq:i:39 NM:i:1 UQ:i:13 H0:i:0 H1:i:1
+EAS51_64:7:152:918:824 163 seq1 839 99 35M = 1033 229 TTTCCCATCATGAAGCACTGAACTTCCACGTCTCA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<<8 MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:4:67:317:249 147 seq1 840 26 35M = 683 -192 TTCCCATCATGACGCACCGAACTTCCACGTCTCAT .5;7;++;<8.;&:7<<.5<<<<7<<7<<<<<<;7 MF:i:130 Aq:i:26 NM:i:2 UQ:i:18 H0:i:0 H1:i:0
+EAS51_62:7:96:836:737 147 seq1 841 99 35M = 642 -234 TCCCATCATGAAGCACTGAACTTCCACGTCTCATC 1<;<7;;1;8;;8:<<1<;<<;<<<<<<<<<<;<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:8:130:912:658 83 seq1 841 99 35M = 652 -224 TCCCATCATGAAGCACTGAACTTCCACGTCTCATC ;=;;;<<<<<=55=;==<=======<========= MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:3:75:934:439 163 seq1 842 99 35M = 1001 194 CCCATCATGAAGCACTGAACTTCCACGTCTCATCT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:7:212:329:348 163 seq1 842 99 35M = 1020 212 CCCATCATGAAGCACTGAACTTCCACGTCTCATCT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<:;;;< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:6:49:183:435 163 seq1 843 99 35M = 1005 197 CCATCATGAAGCACTGAACTTCCACGTCTCATCTA <<<<<<<<<<<<<<<<<<<<<<<<<<;;<;:;8;: MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:7:280:133:495 99 seq1 843 99 35M = 1015 207 CCATCATGAAGCACTGAACTTCCACGTCTCATCTA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<; MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:1:232:351:909 147 seq1 843 80 36M = 685 -194 CCATCATGAAGCGCTGAACTTCCACGTCTCATCTAG :8%3<8====130=8==+===;=3=8===48==;3* MF:i:18 Aq:i:39 NM:i:1 UQ:i:15 H0:i:0 H1:i:1
+EAS221_1:8:77:781:676 163 seq1 846 99 35M = 1010 199 TCATGAAGCACTGAACTTCCACGTATCATCTAGGG <<<<<<<5<<5<<<<<<<<<<<<13<<2<<<<<,< MF:i:18 Aq:i:43 NM:i:1 UQ:i:18 H0:i:0 H1:i:1
+EAS1_95:2:198:691:595 83 seq1 847 99 35M = 655 -227 CATGAAGCACTGAACTTCCACGTCTCATCTAGGGG :=:;=;===========;================= MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:7:31:948:254 147 seq1 849 99 35M = 680 -204 TGAAGCACTGAACTTCCACGTCTCATCTAGGGGAA 7;;;98<<7<<<<<<<<<<<<<<<<<<8<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:1:278:440:902 99 seq1 851 99 35M = 1032 216 AAGCACTGAACTTCCACGTCTCATCTAGGGGAACA =========<==<==============:;;=;=;; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:8:74:674:124 163 seq1 854 99 35M = 1041 222 CACTGAACTTCCACGTCTCATCTAGGGGAACAGGG <<<<<<<<<<<<:<;<<<<;<<<<;9;<<;;.;;; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:4:28:781:723 147 seq1 855 99 36M = 676 -215 ACTGAACTTCCACGTCTCATCTAGGGGAACAGGGAG 8488<::;4;;<:;;;::<;7<<<<<<<<<<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:2:28:474:566 163 seq1 855 99 36M = 1018 199 ACTGAACTTCCACGTCTCATCTAGGGGAACAGGGAG <<<<<<<<<<<<<<<<<<<<<<<:<;<;;<<7;8;< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:5:124:241:608 147 seq1 856 99 35M = 670 -221 CTGAACTTCCACGTCTCATCTAGGGGAACAGGGAG 9;;<<;<<<;<<<;<:<<<<;<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:6:187:925:547 147 seq1 857 99 35M = 689 -203 TGAACTTCCACGTCTCATCTAGGGGAACAGGGAGG ((988+&8<<;<09<;<<9<<4<<-<99<<;<9<; MF:i:18 Aq:i:37 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:7:9:512:826 99 seq1 859 99 35M = 1021 197 AACTTCCACGTCTCATCTAGGGGAACAGGGAGGTG 67<<<;;;<;;<<;;<;<:;9;;;9;;;;<59777 MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:6:194:696:490 99 seq1 862 99 35M = 1026 199 TTCCACGTCTCATCTAGGGGAACAGGGAGGTGCAC <<<<<<<<<<<<<<<<<<<;5<<<<<:<1<8<<<8 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:5:96:788:614 83 seq1 862 99 35M = 667 -230 TTCCACGTCTCATCTAGGGGAACAGGGAGGTGCAC ;9;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:3:81:786:340 163 seq1 863 99 35M = 1033 205 TCCACGTCTCATCTAGGGGAACAGAGAGGTGCACT <<<<7<<<<<<<<<<<<<<7<<;<&<<;;7<7;;; MF:i:18 Aq:i:45 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+EAS192_3:7:298:644:697 163 seq1 863 99 35M = 1035 207 TCCACGTCTCATCTAGGGGAACAGGGAGGTGCACT <<<<<<<<<<<<<<<::;;;6<8:;;9;98;668; MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:1:178:305:843 163 seq1 864 99 35M = 1037 208 CCACGTCTCATCTAGGGGAACAGGGAGGTGCACTA <<<<<<<<<<<<<<<<<<<:<<<<<;<<:<<:<;: MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:3:5:863:302 147 seq1 866 99 35M = 698 -203 ACGTCTCATCTAGGGGAACAGGGAGGTGCACTAAT :4:29:<<<9;<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:5:30:788:376 99 seq1 866 99 35M = 1038 207 ACGTCTCATCTAGGGGAACAGGGAGGTGCACTAAT <<<<<<<<<<<<:<<<<<<<<:<;<<(<7;7;:(; MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:3:143:310:958 163 seq1 868 99 35M = 1048 215 GTCTCATCTAGGGGAACAGGGAGGTGCACTAATGC <<<<<<<<<<<8<8<<<<<;;7<<<;6;<<+4;;; MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:5:3:233:911 83 seq1 868 99 35M = 688 -215 GTCTCATCTAGGGGAACAGGGAGGTGCACTAATGC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:5:75:637:650 83 seq1 868 99 35M = 691 -212 GTCTCATCTAGGGGAACAGGGAGGTGCACTAATGC <<<<8<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:2:73:513:102 147 seq1 868 99 35M = 698 -205 GTCTCATCTAGGGGAACAGGGAGGTGCACTAATGC ==::===8=>=====>=>=>>>=>>==>=>>>>>> MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:3:297:637:86 83 seq1 869 99 35M = 704 -200 TCTCAGCTAGGGGAACAGGGAGGTGCACTAATGCG <:75<;<;;<<<<<<;;<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:68 NM:i:1 UQ:i:26 H0:i:1 H1:i:0
+EAS54_65:3:290:558:349 147 seq1 869 99 35M = 719 -185 TCTCAGCTAGGGGAACAGGGAGGTGCACTAATGCG 2;2;;'5&;<<5<<;5/<<<<<7<<;+;<<+1<8< MF:i:18 Aq:i:59 NM:i:1 UQ:i:6 H0:i:1 H1:i:0
+EAS1_95:3:308:956:873 99 seq1 870 99 35M = 1068 233 CTCATCTAGGGGAACAGGGAGGTGCACTAATGCGC <<<<<<<<<<<<<;<;<;1<<<<<.<9<;<<<<+; MF:i:18 Aq:i:31 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_78:7:147:64:416 147 seq1 870 99 35M = 701 -204 CTCATCTAGGGGAACAGGGAGGTGCACTAATGCGC /;49;:6<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:4:30:812:345 163 seq1 871 99 36M = 1036 201 TCATCTAGGGGAACAGGGAGGTGCACTAATGCGCTC <<<<<<<7<;<<7<;77;3<&0-;<5<;6<1'13<: MF:i:18 Aq:i:64 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:7:134:243:630 163 seq1 871 99 35M = 1052 216 TCATCTAGGGGAACAGGGAGGCGCACTAATGAGCT <<<:<<<<</<<<-<<<<6/<-<:<5+<::-2</2 MF:i:18 Aq:i:39 NM:i:2 UQ:i:29 H0:i:0 H1:i:1
+EAS54_81:2:27:856:401 83 seq1 871 99 35M = 679 -227 TCATCTAGGGGAACAGGGAGGTGCACTAATGCGCT .'=.93======;;====;======;===;=;=== MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:7:45:462:455 83 seq1 874 99 35M = 723 -186 TCTAGGGGAACAGGGAGGTGCACTAATGCGCTCCA 62*<;;;;<<;<<9;;<<<<<<<<<<<<<<<<;<< MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:1:264:988:663 147 seq1 875 99 35M = 688 -222 CGAGGGGAACAGGGAGGTGCACTAATGCGCTCCAC (%<:4<4<<7<<1-:<1766<66<<<<+<:<;8;< MF:i:18 Aq:i:60 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+EAS56_63:1:145:71:26 163 seq1 875 99 35M = 1040 200 CTAGGGGAACAGGGAGGTGCACTAATGCGCTCCAC <<<<<<<<<<<<<<<<<;<;;<<;<;<9<9;;99; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:1:101:825:28 163 seq1 879 99 35M = 1079 235 GGGAACAGGGGGGTGCACTAATGCGCTCCACGCCC <<86<<;<78<<<)<;4<67<;<;<74-7;,;8,; MF:i:18 Aq:i:39 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS218_4:5:63:875:1339 83 seq1 879 99 35M = 711 -203 GGGAACAGGGAGGTGCACTAATGCGCTCCACGCCC ;;<<<:<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:6:290:270:557 99 seq1 880 99 35M = 1052 207 GGAACAGGGAGGTGCACTAATGCGCTCCACGCCCA <<<<<<<<<<<<<;<<<<9<:;<<<<<<5<0<<;+ MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:6:134:853:558 163 seq1 880 99 35M = 1071 226 GGAACAGGGAGGTGCACTAATGCGCTCCACGCCCA ==========================9=9=;<;<5 MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_4:7:282:567:481 99 seq1 880 88 35M = 1064 219 GGAACAGGGAGGCGCACTAATGCGCTCCACGCCCA <<<<<<<<<<<<3<7<7<<<<;<<0)<<<<<<<<3 MF:i:18 Aq:i:43 NM:i:1 UQ:i:18 H0:i:0 H1:i:1
+EAS114_30:1:154:818:165 163 seq1 881 99 35M = 1041 195 GAACAGGGAGGTGCACTAATGCGCTCCACGCCCAA <<<<<<<<<<<<<<<<<<<<<<<<<;<<<<:7;:; MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:1:301:54:240 163 seq1 882 99 35M = 1061 214 AACAGGGAGGTGCACTAATGCGCTCCACGCCCAAG <<<<:<9<<<<:<<<<9<<<<<<690<<6</<(83 MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:4:12:402:843 163 seq1 885 99 35M = 1072 222 AGGGAGGTGCACTAATGCGCTCCACGCCCAAGCCC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<;;< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:4:262:965:756 99 seq1 885 99 35M = 1069 219 AGGGAGGTGCACTAATGCGCTCCACGCCCAAGCCC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<;:<9;< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:8:30:816:90 163 seq1 885 99 35M = 1057 207 AGGGAGGTGCACTAATGCGCTCCACGCCCCAGCCC <<<<<<<<<<<<<<<<<<<:<<<<<<::1&(1::7 MF:i:18 Aq:i:69 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS188_7:4:171:104:398 163 seq1 885 99 35M = 1066 216 AGGGAGGTGCACTAATGCGCTCCACGCCCAAGCCC =========)===97===3===4===4==,)=/)= MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:4:163:31:455 83 seq1 886 99 35M = 730 -191 GGGAGGTGCACTAATGCGCTCCACGCCCAAGCCCT 8;<<;<<<78+<=</<<=;23<=<<<<<<<<<<<< MF:i:18 Aq:i:31 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:7:149:354:667 147 seq1 888 99 35M = 734 -189 GAGGTGCACTAATGCGCTCCACGCCCAAGCCCTTC ;<;;;<<<<;<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:7:18:571:1110 99 seq1 888 99 35M = 1070 217 GAGGTGCACTAATGCGCTCCACGCCCAAGCCCTTC 7<<<<<<<<<<<<;<<<<<<<<<<<<788<<<;6< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:6:312:837:406 163 seq1 889 99 35M = 1048 194 AGGTGCACTAATGCGCTCCACGCCCAAGCCCTTCT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:6:160:272:398 83 seq1 891 99 35M = 705 -221 GTGCACTAATGCGCTCCACGCCCAAGCCCTTCTCA 3:,<,;;<<;<<1<<<<<<<;<;<<<<<<<<<<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:4:228:587:504 99 seq1 891 65 35M = 1050 194 GTGCACTAATGCGCTCCACGCCCAAGCCCTTCTCA <<<<7<<7;7<<3<<<<7<<<<<*3<<<<74<:<* MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:3:35:361:546 83 seq1 892 99 35M = 731 -196 TGCACTAATGCGCTCCACGCCCAAGCCCTTCTCAC :4;4;;<<;4<8<;;<;<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:6:84:438:1505 99 seq1 893 99 40M = 1068 215 GCACTAATGCGCTCCACGCCCAAGCCCTTCTCACAGTTTC 35<<:;9<;<;5<<<:<3<<7:<9/<)<<:::9<&5;;+1 MF:i:18 Aq:i:41 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:4:277:482:316 163 seq1 894 99 35M = 1098 239 CACTAATGCGCTCCACGCCCAAGCCCTTCTCACAG <<<<<<<<<<<<<<;<;<<<:<;<<<<;<<<1<1; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:7:86:498:373 83 seq1 894 99 35M = 716 -213 CACTAATGCGCTCCACGCCCAAGCCCTTCTCACAG ):)4:<5<<<<;89<<<969<<<:<<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:5:236:498:526 163 seq1 895 99 35M = 1048 188 ACTAATGCGCTCCACGCCCAAGCCCTTCTCACAGT =================================== MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:1:43:1120:878 99 seq1 895 99 35M = 1075 215 ACTAATGCGCTCCACGCCCAAGCCCTTCTCACAGT <<<<<<<<<<<<<<<<<<<<8<<<<<<<<<<=7;7 MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:4:104:153:698 83 seq1 896 99 36M = 713 -219 CTAATGCGCTCCACGCCCAAGCCCTTCTCACAGTTT 69<<)9<<:5:6<<<16:<6/<6<1<<<<<:<:<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:7:166:42:147 99 seq1 898 99 35M = 1048 185 AATGCGCTCCACGCCCAAGCCCTTCTAACAGTTTC <<;<<<<<<<<<<<<<<<<;6<<64;)<<7;7;;; MF:i:18 Aq:i:43 NM:i:1 UQ:i:8 H0:i:0 H1:i:1
+B7_595:2:178:77:424 99 seq1 900 99 35M = 1058 193 TGCGCTCCACGCCCAAGCCCTTCTCACAGTTTCTG <<<<<<<<<<<<<<<6<<;<<<<<<<<6<;<<<<6 MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:6:87:734:888 83 seq1 900 99 35M = 717 -218 TGCGCTCCACGCCCAAGCCCTTCTCACAGTTTCTG 56<<86;:<<<4;<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:2:149:650:44 83 seq1 902 99 36M = 726 -212 CGCTCCACGCCCAAGCCCTTCTCACAGTTTCTGCCC ;8<<</<<:<<595<<9<<<<<<<<<<<<<<3<9<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:2:177:552:234 99 seq1 903 99 35M = 1094 226 GCTCCACGCCCAAGCCCTTCTCACAGTTTCTGCCC <<<<<<<<<<<<<;<<<<<<<<9<969<<<<3<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:4:58:703:72 163 seq1 905 99 35M = 1088 218 TCCACGCCCAAGCCCTTCTCACAGTTTCTGCCCCC 2<7<<<<<<<<<<<8:<<<<8<(<8<:::8.::<3 MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:7:242:4:593 99 seq1 905 99 35M = 1086 216 TCCACGCCCAAGCCCTTCTCACAGTTTCTGCCCCC <<<<<<<<<<<8<<<<-<<<<<88;<;<<8<;88< MF:i:18 Aq:i:53 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:3:67:620:344 147 seq1 905 99 35M = 755 -185 CCCCCGCCCAAGCCCTTCTCACAGTTTCTGCCCCC +++*+++#++++++,++++++++,,+,&+,,,,+, MF:i:18 Aq:i:33 NM:i:2 UQ:i:19 H0:i:1 H1:i:0
+EAS51_62:7:178:286:414 83 seq1 907 99 35M = 731 -211 CACGCCCAAGCCCTTCTCACAGTTTCTGCCCCCAG 68;38::<<;<<8;<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:7:174:987:334 163 seq1 908 99 35M = 1082 209 ACACCCAAGCCCTTCTCACAGTTTCTGCCCCCAGC <<;4<<<<;;</4<4<+<<<<<;<<<<<</<93+2 MF:i:18 Aq:i:41 NM:i:1 UQ:i:26 H0:i:0 H1:i:1
+EAS219_FC30151:1:55:8:1412 163 seq1 910 99 35M = 1072 197 GCCCAAGCCCTTCTCACAGTTTCTGCCCCCAGCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:8:8:1351:1986 83 seq1 911 99 35M = 729 -217 CCCAAGCCCTTCTCACAGTTTCTGCCCCCAGCATG <8;<<<<<<<<<<<;<<;<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:6:37:610:260 83 seq1 913 99 35M = 745 -203 CAAGCCCTTCTCACAGTTTCTGCCCCCAGCATGGT /74<.<4.&<<<:<<<<::<<<<<<<<<<<<<<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:5:228:189:826 99 seq1 914 99 35M = 1112 233 AAGCCCTTCTCACAGTTTCTGCCCCCCGCATGGTT ;9=========;=1======9=====1;=<3=:6; MF:i:18 Aq:i:45 NM:i:1 UQ:i:16 H0:i:0 H1:i:1
+EAS56_59:3:149:953:349 147 seq1 915 99 35M = 777 -173 AGCCCTTCTCACAGTTTCTGCCCCCAGCATGGTTG 2;<<;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:7:24:1374:211 99 seq1 915 99 35M = 1064 184 AGCCCTTCTCACAGTTTCTGCCCCCAGCATGGTTG ;;:<<;<;:;;;;;;;;;;<::;;;6;;2+74917 MF:i:18 Aq:i:64 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:2:5:491:391 147 seq1 917 99 35M = 782 -170 CCCTGCTCACAGTTTCTGCCCCCAGCATGGTTGTA -/+5-.&&:5+:92=6===========9======= MF:i:18 Aq:i:62 NM:i:1 UQ:i:12 H0:i:1 H1:i:0
+EAS114_32:2:306:119:56 99 seq1 919 99 35M = 1083 199 CTTCTCACAGTTTCTGCCCCCAGCATGGTTGTACT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:1:216:381:608 163 seq1 920 99 35M = 1075 190 TTCTCACAGTTTCTGCCCCCAGCATGGTTGTACTG <<<<<<<<<<<<<<<<<<<<<<<<;;+<6:<;26; MF:i:18 Aq:i:41 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:3:73:292:429 147 seq1 920 99 35M = 752 -203 TTCTCACAGTTTCTGCCCCCAGCATGGTTGTACTG ;6;6;<<<<<;<<<<;<<<<<<<<7<<<<<<5<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_53:2:170:265:818 83 seq1 920 73 35M = 748 -207 TTCTCACAGTTTCTGCCCCCAGCATGGTTGTACTG 3+;%;.;;<<9+;3;;;<<<;57<1<;<<<<<<<; MF:i:18 Aq:i:10 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:1:278:906:933 99 seq1 920 99 35M = 1071 186 TTCTCACAGTTTCTGCCCCCAGCATGGTTGTACTG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<<<. MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:7:190:95:706 99 seq1 920 99 35M = 1078 193 TTCTCACAGTTTCTGCCCCCAGCATGGTTGTACTG <<<<<<<<<<<<<<9<<<<<;;<;<;;<<;<;;<, MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:5:278:848:765 99 seq1 920 99 35M = 1088 203 TTCTCACAGTTTCTGCCCCCAGCATGGTTGTACTG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<4 MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:6:29:249:878 163 seq1 921 99 35M = 1077 191 TCTCACAGTTTCTGCCCCCAGCATGGTTGTACTGG <<<<<<<<<<<<<<<<<<<<<<:<:<<=<<:<<6& MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:2:259:467:737 163 seq1 923 99 36M = 1102 215 TCACAGTTTCTGCCCCCAGCATGGTTGTACTGGGCA <<<<<<<<<<<<7<<<<<<<'<<.<<<<<<;;;<67 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:3:24:195:604 163 seq1 923 99 35M = 1098 210 TCACAGTTTCTGCCCCCAGCATGGTTGTACTGTGC <;<<<<<<<<<89<<<<<868<8;6<8;3(38&<8 MF:i:18 Aq:i:65 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS114_32:4:42:923:169 163 seq1 925 99 35M = 1099 209 ACAGTTTCTGCCCCCAGCATGGTTGTACTGGGCAA 9<<<;9<<<<<;<;<<.<<;<;6<<<<1;8<<-0; MF:i:18 Aq:i:39 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:1:29:529:379 163 seq1 926 99 35M = 1117 226 CAGTTTCTGCCCCCAGCATGGTTGTACTGGGCAAT <<<<<<<<8<<<<<<<<<<<<<<<<<;<672;<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:8:26:785:882 163 seq1 926 99 35M = 1107 216 CAGTTTCTGCCCCAAGCATGGTTGTACTGGGCAAT <<<0<<<<<<<<<6,<<)<<<<<<<&<<0<<,<'< MF:i:18 Aq:i:39 NM:i:1 UQ:i:21 H0:i:0 H1:i:1
+B7_591:7:129:956:115 83 seq1 927 99 36M = 740 -223 AGTTTCTGCCCCCAGCATGGTTGTACTGGGCAATAC <<:<9<4<<<<7<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:3:82:356:253 147 seq1 927 99 35M = 752 -210 AGTTTCTGCCCCCAGCATGGTTGTACTGGGCAATA 97;7<<;;<<<<<7;<<:<<<9<<;<<<9<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:1:134:379:893 99 seq1 927 99 35M = 1095 203 AGTTTCTGCCCCCAGCATGGTTGTACTGGGCAATA <<<<<<<<<<<<<5<<<<;<<<<<;<:5;<<4+<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:8:256:404:584 99 seq1 928 99 35M = 1096 203 GTTTCTGCCCCCAGCATGGTTGTACTGGGCAATAC <<<<<<<<<<<<<<<<<<<<<7<3;<:;;3:3:</ MF:i:18 Aq:i:60 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:3:76:333:905 163 seq1 929 99 35M = 1076 182 TTTCTGCCCCCAGCATGGTTGTACTGGGCAATACA <<<<<7;<;<<6<<6<<7<<7<)&<4+6)0+<;(0 MF:i:18 Aq:i:61 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:6:11:646:628 99 seq1 930 99 36M = 1106 212 TTCTGCCCCCAGCATGGTTGTACTGGGCAATACATG <<<<<<<<<<6<<<<<<<<<<<<</<;<<<<<<6<; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:5:136:389:320 99 seq1 930 99 35M = 1100 205 TTCTGCCCCCAGCATGGTTGTACTGGGCAATACAT 7<<<<<;<<7<6<<;;<;<;;677<6;(27;<(97 MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:6:93:334:858 99 seq1 932 99 35M = 1106 209 CTGCCCCCAGCATGGTTGTACTTGGCAATACATGA <<<<<<<<;<<<<;;<<9<<<<&;&<<9<9;/;&; MF:i:18 Aq:i:41 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+B7_597:3:46:981:766 83 seq1 933 99 35M = 778 -190 TGCCCCCAGCATGGTTGTACTGGGCAATACATGAG /<<<;/;<<316<<<3<<<<7<<<7<<<;<<<<<7 MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:4:209:159:130 99 seq1 934 99 34M = 1109 210 GCCCCCAGCATGGTTGTACTGGGCAATACATGAG <<<<<<8<<<<<<&<<+7<<4<<<22<;<<<<3< MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:1:111:796:737 99 seq1 936 99 35M = 1112 211 CCCCAGCATGGTTGTACTGGGCAATACATGTGATT <<<<<<<<<<<<<<<:<<;7;<<<<993<4%:%<< MF:i:18 Aq:i:70 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+EAS218_1:4:15:856:340 99 seq1 936 99 35M = 1093 192 CCCCAGCATGGTTGCACTGGGCAATACATGAGATT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<77<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+B7_610:5:7:761:623 147 seq1 938 99 35M = 757 -216 CCGGCATGGTTGTACTGGGCAATACATGAGATTAT ::';-8);<<<<;<1<<<<:<<<<<<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:1 UQ:i:6 H0:i:1 H1:i:0
+EAS1_97:5:84:927:843 99 seq1 938 99 35M = 1138 235 CCAGCATGGTTGTACTGGGCAATACATGAGATTAT <<<<<<<<<<<<<;9;;4;<<0<<7<<9<;<:<5< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:3:273:901:459 99 seq1 938 99 35M = 1098 195 CCAGCATGGTTGTACTGGGCAATACATGAGATTAT <<8<<<;<;8<;<;<;7+8<788<;;22<27;77; MF:i:18 Aq:i:59 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:7:256:407:470 83 seq1 939 99 35M = 762 -212 CAGCATGGTTGTACTGGGCAATACATGAGATTATT 7.47;0;;5<4033*<<<<<9,<<<<<;<<<<<3< MF:i:18 Aq:i:63 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:1:77:251:446 163 seq1 939 99 35M = 1110 206 CAGCATGGTTGTACTGGGCAATACATGAGATTATT <<9<<<<<<<<<<<<<97<<<<<<<<<96<<<+<< MF:i:18 Aq:i:41 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:4:102:467:897 147 seq1 940 97 35M = 756 -219 AGCATGGTTGTACAGGGCAATACATGAGATTATTA 83333<+02<:<.&<+<.<::7<<::<<<<:<<<< MF:i:18 Aq:i:37 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+EAS221_1:6:92:1807:1185 99 seq1 940 99 35M = 1119 214 AGCATGGTTGTACTGGGCAATACATGAGATTATTA <<<<<<<<<<<<<<<:<<<<<<:<<<<;<<<;<<; MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:8:142:858:903 99 seq1 943 99 35M = 1121 213 ATGGTTGTACTGGGCAATACATGAGATTATTAGGA ======;====5=======9======;===3=5=; MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:4:143:560:194 147 seq1 946 99 35M = 768 -213 GTTGTACTGGGCAATACATGAGATTATTAGGAAAT 9:<;7<:::<:<;<<<<<<<<<<:<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:3:148:437:481 83 seq1 949 99 36M = 764 -221 GTACTGGGCAATACATGAGATTATTAGGAAATGCTT <<<;<<<<7<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:6:75:917:886 163 seq1 951 99 35M = 1110 194 ACTGGGCAATACATGAGATTATTAGGAAATGCTTT <<<<<<<<<<<<<<:<<<<<<<<<71<<<:6<:8< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:3:118:851:285 163 seq1 953 99 35M = 1133 215 TGGGCAATACATGAGATTATTAGGAAATGCTTTAC <<<<<<<<<<<<<<<<<<<<<<<;;<;<:<<<<;; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:4:179:389:585 83 seq1 953 24 35M = 770 -218 TGTGAAATGAATGAGATTATTAGGAAATGCTTTAC ;<)<;*;9*+<;<<,,<,<4<4<<<<<;<4<9494 MF:i:18 Aq:i:24 NM:i:4 UQ:i:53 H0:i:0 H1:i:0
+EAS114_30:7:269:944:220 163 seq1 953 99 35M = 1147 229 TGGGCAATACATGAGATTATTAGGAAATGCTTTAC <<<<<<<8<<<<<<<<<<<<<<<;<<<<<;<<;81 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:3:93:1002:845 163 seq1 954 99 35M = 1129 210 GGGCAATACATGAGATTATTAGGAAATGCTTTACT <<<<<<<<<<<<<<<<<<<<<:<<;<<<;<<<</< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:4:66:584:407 83 seq1 954 99 35M = 785 -204 GGGCAATACATGAGATTATTAGGAAATGCTTTACT <<84<<<766<<<.6<<<<<<4<<7<<<<<<<7<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:6:63:48:631 163 seq1 957 99 35M = 1143 221 CAATACATGAGATTATTAGGAAATGCTTTACTGTC <<<<<<;<<7</<<<<<<;;;<<<;<;<<7;;);< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:3:187:791:153 147 seq1 958 99 35M = 803 -190 AATACATGAGATTATTAGGAAATGCTTTACTGTCA :;55&<99<<1<;<<8<<;<<<<<<<<<<<<<<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:2:72:1809:1398 99 seq1 958 99 35M = 1145 222 AATACATGAGATTATTAGGAAATGCTTTACTGTCA <<<<<<<<<<<<<<<<<<::<9<<<<<<<<<6<<: MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:6:66:257:524 147 seq1 959 99 35M = 791 -203 ATACATGAGATTATTAGGAAATGCTTTACTGTCAT <;<<<<<<<<3<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:7:247:522:670 163 seq1 960 99 35M = 1121 196 TACATGAGATTATTAGGAAATGCTTTACTGTCATA <<<<<<<<<<<<<<<;<<<<<<<<<<<<<5;<<<; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:7:37:400:627 163 seq1 961 99 35M = 1154 228 ACATGAGATTATTAGGAAATGCTTTACTGTCATAA <<<<<<7+<<<<<<2615<<6<<<<5<<1<<;:74 MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:3:329:177:267 163 seq1 962 99 35M = 1139 212 CATGAGATTATTAGGAAATGCTTTACTGTCATAAC <<<<<<<<<<<<<<<<<<<<<<<<<9<<<<<<<9; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:7:166:203:416 163 seq1 963 99 35M = 1136 208 ATGAGATTATTAGGAAATGCTTTACTGTCATAACT <<<<<<<<<<<<<<<<<<;<<<<<<<;<<<<<97< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:8:14:360:580 147 seq1 963 99 35M = 799 -199 ATGAGATTATTAGGAAATGCTTTACTGTCATAACT <,1<;<;;<<<<<1<<<;<7<<6<:;;<<<<<<;; MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:4:193:38:987 163 seq1 964 99 35M = 1158 229 TGAGATTATTAGGAAATGCTTTACTGTCATAACTA <<<<<<<<<<<<<<<<<<<<<<<<<<<;<<:;:;; MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:3:39:59:738 163 seq1 965 99 35M = 1142 212 GAGATTATTAGGAAATGCTTTACTGTCATAATTAT 3<8.<<<<<<<-<<<<3<388;;880<0<0)-722 MF:i:18 Aq:i:43 NM:i:1 UQ:i:12 H0:i:1 H1:i:0
+EAS51_66:4:209:92:210 163 seq1 965 99 35M = 1156 226 GAGATTATTAGGAAATGCTTTACTGTCATAACTAT <<<<<<<<<<<<<<<<;<<<<<<<5<7<<;;;<;< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:7:86:308:648 99 seq1 970 99 35M = 1161 226 TATTAGGAAATGCTTTACTGTCATAACTATGAAGA =8=====;=8======;=======35==;=;.;25 MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:8:206:563:262 163 seq1 971 99 35M = 1137 201 ATTAGGAAATGCTTTACTGTCATAACTATGAAGAG <<<<<<<<<;<<<<<<<<<<<<;<<<<<<<-;<4; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:6:82:822:767 99 seq1 972 99 35M = 1165 228 TTAGGAAATGCTTTACTGTCATAACTATGAAGAGA <<<<<<<<<<<<<<<<<<<<<<<<<<<<.<<.<,< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:5:207:926:427 163 seq1 973 99 35M = 1159 221 TAGGAAATGCTTTACTGTCATAACTATGAAGAGAC <<<<<<7<<<<<;<<<<<6:<;<6<&<58<<6::: MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:7:144:28:475 99 seq1 974 99 35M = 1167 228 AGGAAATGCTTTACTGTCATAACTATGAAGAGACT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<:<::8< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:3:55:74:1040 147 seq1 975 99 35M = 818 -192 GGAAATGCTTTACTGTCATAACTATGAAGAGACTA ;;;;;<<:<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:1:274:176:479 99 seq1 976 99 35M = 1144 203 GAAATGCTTTACTGTCATAACTATGAAGAGACTAT <<<<<<<<<<<<<;<<<<<<<<<<;<<9<59<<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:1:122:337:968 147 seq1 981 10 35M = 823 -193 GCTTTACTGTCTAAACTATGAAGAGACTATTGCCA %454<75!7<+!990<9<6<<<<6<</<<<<<<<< MF:i:18 Aq:i:10 NM:i:3 UQ:i:24 H0:i:0 H1:i:0
+EAS114_28:7:157:786:424 99 seq1 981 99 36M = 1171 226 GCTTTACTGTCATAACTATGAAGAGACTATTGCCAG <<<<<<<<<<<<<;<<<<<<;<<;<<;<<<<+4:70 MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:4:63:527:1923 147 seq1 981 99 35M = 803 -213 GCTTTACTGTCATAACCATGAAGAGACTATTGCCA 9<<<8<-8;;8<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS1_95:7:55:506:125 147 seq1 982 99 35M = 817 -200 CTTTACTGTCATAACTATGAAGAGACTACTGCCAG 118%67;1;8,4:187<4>::1:818;;&::<>.; MF:i:18 Aq:i:35 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+EAS54_81:2:31:98:804 147 seq1 982 99 35M = 805 -212 CTTTACTGTCATAACTATGAAGAGACTATTGCCAG ====;========7===================== MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:2:235:805:373 163 seq1 983 99 35M = 1146 198 TTTACTGTCATAACTATGAAGAGACTATTTCCAGA <<<<<<<<<<<<<<<<<<<<;<;<<<<<<;;<99; MF:i:18 Aq:i:74 NM:i:1 UQ:i:26 H0:i:1 H1:i:0
+EAS114_28:5:11:868:62 99 seq1 983 99 36M = 1154 207 TTTACTGTCATAACTATGAAGAGACTATTGCCAGAT <<<<<<<<<<<<<<<<<<<<:<<<;<<<<(7:7039 MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:2:280:512:316 163 seq1 984 99 35M = 1159 210 TTACTGTCATAACTATGAAGAGACTATTGCCAGCT ==<========6==4==6;;==:===;=2/:+8%6 MF:i:18 Aq:i:68 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+EAS1_93:5:292:122:666 99 seq1 985 99 35M = 1159 209 TACTGTCATAACTATGAAGAGACTATTGTCAGATG <<<<<<6<<<<<<<<8;<<<<<<<<<<3&9+;;(; MF:i:18 Aq:i:68 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS56_53:1:23:403:981 99 seq1 985 99 35M = 1151 201 TACTGTCATAACTATGAAGAGACTATTGCCAGATG <8<<<;<<<<<<;<<<<<<8;<<<9<9,3;,6(91 MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:7:33:1566:588 99 seq1 985 76 35M = 1166 216 TACTGTCATAACTATGAAGAGCCTATTGCCAGATG <;.;;;;6;;;;6;;29;;;<+9;;;.3;;73797 MF:i:18 Aq:i:37 NM:i:1 UQ:i:10 H0:i:0 H1:i:1
+EAS139_11:7:92:367:1495 83 seq1 987 99 35M = 820 -202 CTGTCATAACTATGAAGAGACTATTGCCAGATGAA <8<88<<<<7<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:78 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:8:38:1576:1923 83 seq1 987 99 35M = 822 -200 CTGTCATAACTATGAAGAGACTATTGCCAGATGAA 8;<98<<<<<<<;<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:7:190:481:295 163 seq1 990 99 35M = 1161 206 TCATAACTATGAAGAGACTATTGCCAGATGAACCA <<<<<<<<<<<<<<<<<<<<<<9<<<<<9<7<2:: MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_32:7:168:117:441 99 seq1 990 99 35M = 1151 196 TCATAACTATGAAGAGACTATTGCCAGATGAACCA <<3<<<<<<<<<<<<<<<<<<<+<<17;<;:<995 MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:3:239:796:221 163 seq1 992 99 35M = 1160 203 ATAACTATGAAGAGACTATTGCCAGCTGACCCCCC <<<7<<7<<7<<7<;<<<<<,;;,+'<+/+99%:' MF:i:18 Aq:i:37 NM:i:4 UQ:i:26 H0:i:0 H1:i:1
+EAS220_1:4:69:88:1154 147 seq1 992 99 35M = 805 -222 ATAACTATGAAGAGACTATTGCCAGATGAACCACA <<<<9<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:8:34:956:1309 99 seq1 994 99 35M = 1168 209 AACTATGAAGAGACTATTGCCAGATGAACCACACA <<<<<<7<<<<<<<<<<<6<<<<<<<<<<<:<8<8 MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:5:229:717:121 99 seq1 995 99 35M = 1150 190 ACTATGAAGAGACTATTGCCAGATGAACCACACAC =================<)=<4<0=.<<<71;41& MF:i:18 Aq:i:43 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS219_1:1:67:191:668 99 seq1 995 99 35M = 1134 174 ACTATGAAGAGACTATTGCCAGATGAACCACACCT <<<<<<<<<<<<<<<<<6<<;<;<;<<<<<<6;%2 MF:i:18 Aq:i:74 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+EAS51_64:3:309:303:278 163 seq1 996 99 35M = 1178 217 CTATGAAGAGACTATTGCCAGATGAACCACACATT <<<<<<<<<<<<<<<<+<<+<<7<<<<<5<<<;;; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:8:60:1020:1259 99 seq1 996 99 35M = 1157 196 CTATGAAGAGACTATTGCCAGATGAACCACACATT <;<<<<;<<<<<<<<<;<<<<<<<8<<<<<:<:<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_4:7:89:1487:520 83 seq1 997 99 35M = 805 -227 TATGAAGAGACTATTGCCAGATGAACCACACATTA 4;;/<<<<<:<;<;<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:4:15:805:420 163 seq1 998 35 35M = 1164 201 ATGAAGAGACTATTCACATGTGAACCACACATTTA ;73;;;;67.;1<<+*.;*&<4947<&474&*9*( MF:i:130 Aq:i:35 NM:i:4 UQ:i:33 H0:i:0 H1:i:0
+EAS56_57:3:119:761:239 147 seq1 999 99 35M = 813 -221 TGAAGAGACTATTGCCAGATGAACCACACATTAAT ;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:7:142:457:584 99 seq1 999 99 35M = 1160 196 TGAAGAGACTATTTCCAGATGAACCACACATTAAT <<<<<<<<<<<<</<<,6<66<<<;<;;<*4744. MF:i:18 Aq:i:41 NM:i:1 UQ:i:14 H0:i:0 H1:i:1
+EAS218_4:7:87:964:826 83 seq1 999 99 35M = 822 -212 TGAAGAGACTATTGCCAGATGAACCACACATTAAT )6<<<<<<:;<6<<::<<<;<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:6:49:905:27 83 seq1 1000 68 35M = 821 -214 GAAGAGACTATTGCCAGTTGAACCACACATTAATA 99515<<&<<6595-56%;86&<;<<<6<<<<6;< MF:i:18 Aq:i:31 NM:i:1 UQ:i:4 H0:i:0 H1:i:1
+EAS1_108:3:75:934:439 83 seq1 1001 99 35M = 842 -194 AAGAGACTATTGCCAGATGAACCACACATTAATAC ==7=:=========================<==== MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:1:99:212:522 83 seq1 1002 99 35M = 806 -231 AGAGACTATTGCCAGATGAACCACACATTAATACT <1<16<7<3<<;;<8<<<<<<<<<<<<;<<<<9<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:3:187:294:947 147 seq1 1002 99 35M = 823 -214 AGAGACTATTGCCAGATGAACCACACATTAATACT <<:<<8181;<8<<<<<<<<8<<<<<<<<<<<<<: MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:2:152:860:286 163 seq1 1004 99 35M = 1171 202 AGACTATTGCCAGATGAACCACACATTAATACTAT <;<<<;<<0:<3<:<<2<<<<<7+<7+47<9(999 MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:6:49:183:435 83 seq1 1005 99 35M = 843 -197 GACTATTGCCAGATGAACCACACATTAATACTATG 1<7<<<<;:<<<<<;<<<;<<<;<;<<<<<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:7:63:854:610 163 seq1 1005 99 35M = 1180 210 GACTATTGCCAGATGAACCACACATTAATACTATG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<;<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:4:12:276:1797 99 seq1 1006 99 35M = 1190 219 ACTATTGCCAGATGAACCACACATTAATACTATGT <<<<<<<<<<<<:</<<9<:<<<<<<<<<<<<<<< MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:6:190:42:671 163 seq1 1008 99 36M = 1192 220 TATTGCCAGATGAACCACACATTAATACTATGTTTC <<<<<<<<<<<<<<9<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:7:67:692:110 99 seq1 1009 99 35M = 1175 201 ATTGCCAGATGAACCACACATTAATACTATGTTTC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:3:61:183:767 99 seq1 1010 99 35M = 1195 220 TTGCCAGATGAACCACACCTTAATACTATGTTTCT <<<<<<<<<<;<<<9<9<+<<<8<<<<<<;8<<<< MF:i:18 Aq:i:45 NM:i:1 UQ:i:10 H0:i:0 H1:i:1
+EAS221_1:8:77:781:676 83 seq1 1010 99 35M = 846 -199 TTGCCAGATGAACCACACATTAATACTATGTTTCT :<;<2<<<<<<26<<<<6<;<<<<<<<<<<<<<<< MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:4:21:132:1423 99 seq1 1012 99 35M = 1178 201 GCCAGATGAACCACACATTAATACTATGTTTCTTA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:8:163:757:432 147 seq1 1013 99 35M = 837 -211 CCAGATGAACCACACATTAATACTATGTTTCTCAT 1+<8<<<<<<;<5<;<<<<<;5<<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS114_30:3:302:288:657 99 seq1 1013 99 35M = 1173 195 CCAGATGAACCACACATTAATACTATGTTTCTTAT <<<<<<<<<<<<<<<<<<<<<<<<<<<;<<<<;<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:7:97:1584:777 99 seq1 1013 99 35M = 1200 222 CCAGATGAACCACACATTAATACTATGTTTCTTAT <<;<;;;;<;<;<<;;;;;;;;;;;;;;:;79979 MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:7:280:133:495 147 seq1 1015 99 35M = 843 -207 AGATGAACCACACATTAATACTATGTTTCTTATCT <:<9:<<7:<6<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:7:100:708:1984 147 seq1 1015 99 35M = 819 -231 AGATGAACCACACATTAATACTATGTTTCTTATCT :8<(8<)9<;<<<<+<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:5:182:313:319 99 seq1 1016 99 35M = 1180 199 GATGAACCACACATTAATACTATGTTTCTTATCTG <<<<<<<<<<<<<<<<<<<<<<<<<<<7<<<<;<; MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:3:41:474:283 99 seq1 1018 99 35M = 1182 199 TGAACCACACATTAATACTATGTTTCTTATCTGCA <<<<<<<<<<<<<<<<<<<<<;<<<<<<<<<<+<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:2:28:474:566 83 seq1 1018 99 36M = 855 -199 TGAACCACACATTAATACTATGTTTCTTATCTGCAC ;<<<+<<<<5<<<<<<;;<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:5:84:91:614 83 seq1 1019 99 35M = 839 -215 GAACCACACATTAATACTATGTTTCTTATCTGCAC <<;;<<<7<<<<<<<;<;<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:39 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:1:159:222:274 99 seq1 1019 99 35M = 1189 205 GAACCACACATTAATACTATGTTTCTTATCTGCAC =;9====;=9==59=+==9========9===5;7= MF:i:18 Aq:i:37 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:3:62:603:1552 163 seq1 1019 99 35M = 1180 196 GAACCACACATTAATACTATGTTTCTTATCTGCAC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<9<;< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:7:212:329:348 83 seq1 1020 99 34M = 842 -212 AACCACACATTAATACTATGTTTCTTATCTGCAC 8<6:<:<<<;<<<;<<<<;<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:4:233:97:262 99 seq1 1021 99 34M = 1175 189 ACCACACATTAATACTATGTTTCTTATCTGCCCA <<<<<<<<<<<;<;<<:<<<<<<<<<<<<.<&77 MF:i:18 Aq:i:72 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS114_45:7:9:512:826 147 seq1 1021 99 35M = 859 -197 ACCACACATTAATACTATGTTTCTTATCTGCACAT 76777:;;;;;;;;;;;;;;;;;;;;;;;;;:;;; MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:4:29:794:282 163 seq1 1025 99 36M = 1196 207 CACATTAATACTATGTTTCTTATCTGCACATTACTA <<<<<<<<<<<<<<<<<<<<<;<<<&<<;:<<8<<8 MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:4:278:524:521 163 seq1 1025 99 35M = 1224 234 CACATTAATACTATGTTTCTTATCTGCACATTACT <<<;<<;<<<<<<<;<<<<<<<<<<7;5;<<<;;< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:3:39:966:551 99 seq1 1026 99 35M = 1205 214 ACATTAATACTATGTTTCTTATCTGCACATTACTA <<<<<<<<<<<<<<<<<<<<<<<<:<;<&<<&<<; MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:6:194:696:490 147 seq1 1026 99 35M = 862 -199 ACATTAATACTATGTTTCTTATCTGCACATTACTA ========;======;==========8==:===== MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:3:305:565:952 99 seq1 1030 99 36M = 1213 219 TAATACTATGTTTCTTATCTGCACATTACTACCCTG 7<<<<<<<<<7<<<<<<<<<7<<<;;<;<;<<<<<+ MF:i:18 Aq:i:62 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:7:287:258:321 99 seq1 1030 99 35M = 1194 199 TAATACTATGTTTCTTATCTGCACATTACTACCCT <<<<<<<<<<<;<<<<<<<<42:<+<<<;<<;;;; MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:1:278:440:902 147 seq1 1032 99 35M = 851 -216 ATACTATGTTTCTTATCTGCACATTACTACCCTGC <;7;4<;<;;;<<;<;;;<<<<<9<<<;<<<<;<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:5:180:905:36 99 seq1 1033 99 35M = 1212 214 TACTATGTTTCTTATCTGCACATTACTACCCTGCA ==========8===;;=========;==77%41=; MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:7:152:918:824 83 seq1 1033 99 35M = 839 -229 TACTATGTTTCTTATCTGCACATTACTACCCTGCA ;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:3:81:786:340 83 seq1 1033 99 35M = 863 -205 TACTATGTTTCTTATCTGCACATTACTACCCTGCA ;<;<<<;<<;<<<<;<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:3:196:11:27 163 seq1 1035 65 36M = 1198 199 CTATGTTTCTTATCTGCNCATTACTACCCTGCAATT <<<<<<<<;<<<<<<<8!4<<<;+<88;8<+2,8<; MF:i:18 Aq:i:24 NM:i:1 UQ:i:0 H0:i:0 H1:i:1
+EAS192_3:7:298:644:697 83 seq1 1035 99 35M = 863 -207 CTATGTTTCTTATCTGCACATTACTACCCTGCAAT 8:<8;<;:7;<<;4;:+<7<<<<;<<<<<<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:4:30:812:345 83 seq1 1036 99 36M = 871 -201 TATGTTTCTTATCTGCACATTACTACCCTGCAATTA ;<;<<<<5<<<:<;<:<;<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:64 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:1:178:305:843 83 seq1 1037 99 35M = 864 -208 ATGTTTCTTATCTGCACATTACTACCCTGCAATTA <<<<<<<4<<;<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:5:30:788:376 147 seq1 1038 99 35M = 866 -207 TGTTTCTTATCTGCACATTACTACCCTGCAATTAA :5<<4:88;9<<<<<;<<<<;<8<;<<<<1<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:1:145:71:26 83 seq1 1040 99 35M = 875 -200 TTTCTTATCTGCACATTACTACCCTGCAATTAATA 882;8;<;;887<<<;;<<<<;<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:6:157:42:763 163 seq1 1040 99 35M = 1203 198 TTTCTTATCTGCACATTACTACCCTGCAATTATTA <<;<;<<<<<;<:4<<<<<<<<<;;4<<<:;;+;+ MF:i:18 Aq:i:61 NM:i:1 UQ:i:10 H0:i:1 H1:i:0
+B7_589:8:74:674:124 83 seq1 1041 99 35M = 854 -222 TTCTTATCTGCACATTACTACCCTGCAATTAATAT ;;;;;<<:<<:<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:1:154:818:165 83 seq1 1041 99 35M = 881 -195 TTCTTATCTGCACATTACTACCCTGCAATTAATAT ;;;;<<<;<;;<;<<<<;<<;;;<<;<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:3:319:174:811 99 seq1 1044 99 35M = 1242 233 TTATCTGCACATTTCTACCCTGCAATTAATATAAT <<<<<<<<<;<<<<<<<<<;;<<<<<<<8<<;9<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS139_19:3:87:133:930 163 seq1 1044 99 40M = 1198 194 TTATCTGCACATTACTACCCTGCAATTAATATAATTGTGT <<<7<<<<;<<;7<<7<<;;<<<;<5;<;;;5;;<:/48: MF:i:18 Aq:i:39 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:1:44:1466:425 163 seq1 1044 99 35M = 1213 204 TTATCTGCACATTACTACCCTGCAATTAATATAAT <<<<<<<<<<<<<<<<<<<<<;<<<<<<;<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:5:236:498:526 83 seq1 1048 99 35M = 895 -188 CAGCACATTACTACCCTGCAATTAATATAATTGTG <%88<;<:8<<<<:<<<<:<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+EAS51_64:3:143:310:958 83 seq1 1048 99 35M = 868 -215 CTGCACATTACTACCCTGCAATTAATATAATTGTG 84<;<6<<<<;<<<;;<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:6:312:837:406 83 seq1 1048 99 35M = 889 -194 CTGCACATTACTACCCTGCAATTAATATAATTGTG ;<;<<;<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:7:166:42:147 147 seq1 1048 99 35M = 898 -185 CTGCACATTACTACCCTGCAATTAATATAATTGTG 3.7;;;;:<<<77<<3<;<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:3:279:763:945 99 seq1 1048 99 36M = 1210 198 CTGCACATTACTACCCTGCAATTAATATAATTGTGT <<<<<<<<<<<<<<<<<<<4:<<47<:<;<<</<9< MF:i:18 Aq:i:61 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:3:82:998:566 163 seq1 1050 99 35M = 1227 212 GCACATTACTACCCTGCAATTAATATAATTGTGTC <<<<<<<:<<0<<<<:<82<<::<4<<;<<4<4<; MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:4:228:587:504 147 seq1 1050 65 35M = 891 -194 GCACATTACGACCCGGCAAGGTGTATAATTGTGTC ;4;4;&&82&04+&&48;3&3&*<7<47<<;-<-8 MF:i:130 Aq:i:65 NM:i:6 UQ:i:47 H0:i:0 H1:i:0
+B7_595:6:290:270:557 147 seq1 1052 99 35M = 880 -207 ACATTACTACCCTGCAATTAATATAATTGTGTCCA 87:9;;;<851+:5.<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:7:134:243:630 83 seq1 1052 99 35M = 871 -216 ACATTACTACCCTGCAATTAATATAATTGTGTCCA 63<;37:<*&:<<<,,*<<:7<<7<<<<<<<::<< MF:i:18 Aq:i:39 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_53:1:47:303:887 163 seq1 1052 96 35M = 1240 223 ACATTACTACCCTGCCATTAATATACTTGTGTCCA <<;;<+<9<<<<<9<(6<;//</<8(<<89;6084 MF:i:18 Aq:i:25 NM:i:2 UQ:i:14 H0:i:0 H1:i:0
+EAS221_3:8:74:770:1712 163 seq1 1052 99 35M = 1208 191 ACATTACTACCCTGCAATTAATATAATTGTGTCCA <<<<<<<<<<<<<<<<<<<5<<<<<<<<<<<<7<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:6:29:575:453 163 seq1 1056 99 36M = 1228 208 TACTACCCTGCAATTAATATAATTGTGTCCATTTAC <<<<<<<<<<<<<<<<<<<<<<<<7<1<:<9<&<98 MF:i:18 Aq:i:72 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS1_97:5:318:177:383 163 seq1 1056 99 35M = 1251 230 TACTACCCTGCAATTAATATAATTGTGTCCATGTA ;<<<<<<<<;<<<<<<<<<<<<<<<<<<7<;1'<; MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_53:8:179:549:753 99 seq1 1056 99 35M = 1218 197 TACTACCCTGCAATTAATATAATTGTGTCCATGTA <<<<<<<<<<<<<<<<<<<<<<<<8<7<<<:<9<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:8:30:816:90 83 seq1 1057 99 35M = 885 -207 ACTACCCTGCAATTAATATAATTGTGTCCATGTAC :<3:%9299<<<<<<<<<5<<<<<<<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:2:178:77:424 147 seq1 1058 99 35M = 900 -193 CTACCCTGCAATTAATATAATTGTGTCCATGTACA :5:8<;<;:<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:1:301:54:240 83 seq1 1061 99 35M = 882 -214 CCCTGCAATTAATATAATTGTGTCCATGTACACAC &..*3===1=========5.5==5===4====:5= MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:4:91:521:517 99 seq1 1061 99 35M = 1239 213 CCCTGCAATTAATATAATTGTGTCCATGTACACAC <<<<<<<<<<<<<<<<9<<<<<<<<<<8<<;;;<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:7:24:1374:211 147 seq1 1064 99 35M = 915 -184 TGCAATTAATATAATTGTGTCCATGTACACACGCT 77661;;;5;;:;;:;:;;;;;;8:;;;:;;;;;: MF:i:18 Aq:i:64 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_4:7:282:567:481 147 seq1 1064 88 35M = 880 -219 TGCAATTAATATAATTGTGTCCACGTACACACGCT <9<6<;<9<<<;<<<;<5<7<5</7<<<<<<<<<< MF:i:18 Aq:i:43 NM:i:1 UQ:i:14 H0:i:0 H1:i:1
+EAS188_7:4:171:104:398 83 seq1 1066 99 35M = 885 -216 CAATTAATATAATTGTGTCCATGTACACACGCTGT 79<+<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:8:9:80:353 163 seq1 1067 99 35M = 1233 201 AATTAATATAATTGTGTCCATGTACACACGCTGTC <<<<<<<<<<<<<<<<<<<<<6<<<;;<<5<<2;2 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:6:42:920:522 163 seq1 1067 99 35M = 1244 212 AATTAATATAATTGTGTCCATGTACACACGCTGTT <<<<<<<<<<<<<:<<<<<<<:<<<<<<<:;;::& MF:i:18 Aq:i:72 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS1_95:3:308:956:873 147 seq1 1068 99 35M = 870 -233 ATAAAAATAAGTGTGTCCATGTACACACGCTGTCC 91.97&9499&-1*98*19999839999.9&9799 MF:i:18 Aq:i:31 NM:i:3 UQ:i:23 H0:i:0 H1:i:1
+EAS139_19:6:84:438:1505 147 seq1 1068 99 40M = 893 -215 ATTAATATAATTGTGTCCATGTACACACTCTGTCCTATGT :0::413::;:::0:179::3<;<:<9<&6<<<;<019<< MF:i:18 Aq:i:41 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+EAS51_62:3:55:340:837 163 seq1 1069 99 35M = 1238 204 TTAATATAATTGTGTCCATGTACACACGCTGTCCT <<;<<;<<<<<8<;<<<;<7<<<;<<<<<93+79( MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:4:262:965:756 147 seq1 1069 99 35M = 885 -219 TTAATATAATTGTGTCCATGTACACACGCTGTCCT <<:<<<<<<<<:<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:7:18:571:1110 147 seq1 1070 99 35M = 888 -217 TAATATAATTGTGTCCATGTACACACGCTGTCCTA 9<<;<;==;;=;=<;<=================== MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:2:40:918:950 163 seq1 1071 99 35M = 1247 211 AATATAATTGTGTCCATGTACACACGCTTTCCTTT =========,=9=====2=7===7=0==&=+3=-= MF:i:18 Aq:i:65 NM:i:2 UQ:i:17 H0:i:1 H1:i:0
+EAS1_97:2:59:882:980 163 seq1 1071 99 35M = 1263 227 AATATAATTGTGTCCATGTACACACGCTGTCCTAT <<<<<<<<<8<<<<<9<+<<<9<<<1<<77889+6 MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:6:134:853:558 83 seq1 1071 99 35M = 880 -226 AATATAATTGTGTCCATGTACACACGCTGTCCTAT <<<<8<<<7<<<<;;<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:1:278:906:933 147 seq1 1071 99 35M = 920 -186 AATATAATTGTGTCCATGTACACACGCTGTCCTAT <88::<<<<<<<<<;<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:4:12:402:843 83 seq1 1072 99 35M = 885 -222 ATATAATTGTGTCCATGTACACACGCTGTCCTATG <7<+<<11<9<<<<<:<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:5:160:434:853 163 seq1 1072 99 35M = 1259 222 ATATAATTGTGTCCATGTACACACGCTGTCCTATG <<<<<<<<<<<<<<<<<<<<<<,<<<<:<<<<,<: MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:1:55:8:1412 83 seq1 1072 99 35M = 910 -197 ATATAATTGTGTCCATGTACACACGCTGTCCTATG <<<<<<<<<<<<:<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:1:219:294:861 163 seq1 1073 99 35M = 1244 206 TATAATTGTGTCCATGTACACACGCTGTCCTCTGT <<<<<<<<<<<<<9<<<5<9<<<9<<544<<'<+: MF:i:18 Aq:i:69 NM:i:1 UQ:i:6 H0:i:1 H1:i:0
+EAS220_1:4:14:1665:1772 163 seq1 1073 84 35M = 1263 225 TATAATGGTGTCCATGTACACACGCTGTCCTATGT <<<<<7*<<<<<<<<<78<5<<7<<5<556<(73( MF:i:18 Aq:i:39 NM:i:1 UQ:i:9 H0:i:0 H1:i:1
+B7_591:3:45:294:380 163 seq1 1074 80 36M = 1233 195 ATAATTGTGTCCATGTACACACGATGTCATATGTAC <<<<<<<<9<<<<<<<<<70<<7<6272&:3<+</% MF:i:18 Aq:i:39 NM:i:2 UQ:i:32 H0:i:0 H1:i:1
+EAS1_108:7:222:538:267 99 seq1 1074 99 35M = 1228 189 ATAATTGTGTCCATGTACACACGCTGTCCTATTTA <<<<<<<<<<<<<<<<<<<<<;<<<<74;;39%6+ MF:i:18 Aq:i:67 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+EAS1_93:1:216:381:608 83 seq1 1075 99 35M = 920 -190 TAATTGTGTCCATGTACACTCGCTGTCCTATGTAC 55<99<<<99;<;<<(<39&7<<<<<<<<<<<<<9 MF:i:18 Aq:i:41 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+EAS54_67:1:138:186:274 99 seq1 1075 99 35M = 1231 191 TAATTGTGTCCATGTACACACGCTGTCCTATGTAC =39====9===;=;=;=9=;=====;===-=+=-7 MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:1:43:1120:878 147 seq1 1075 99 35M = 895 -215 TAATTGTGTCCATGTACACACGCTGTCCTATGTAC <<<;<<;<<;<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_4:5:166:776:590 163 seq1 1075 99 35M = 1252 212 TAATTGTGTCCATGTACACACGCTGTCCTATGTAC <<<<<</<<<<<<<<<<<<<'<=<:26.</79<:: MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:3:76:333:905 83 seq1 1076 99 35M = 929 -182 AATTGTGTCCATGTACACACGCTGTCCTATGTACT <<;<<<<;7<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:61 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:6:29:249:878 83 seq1 1077 99 35M = 921 -191 ATTGTGTCCATGTACACACGCTGTCCTATGTACTT <,;<9<;<:<<<<<<<<<<<<<<<<<<<<<<><<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:7:190:95:706 147 seq1 1078 99 35M = 920 -193 TTGTGTCCATGTACACACGCTGTCCTATGTACTTA 9;97437;<;;<<;<;<<<<<<;<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:1:101:825:28 83 seq1 1079 99 35M = 879 -235 TGTGTCCATGTACACACGCTGTCCTATGTACTTAT 0;0'0;<<<<<<8<;<<<<;;3<<;;<<<8<<<<< MF:i:18 Aq:i:39 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:4:188:460:1000 99 seq1 1080 99 35M = 1251 206 GTGTCCATGTACACACGCTGTCCTATGTACTTATC <<<<<<<<<<<<<<<<7<<;:4;44<;;:8;;9;; MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:3:268:523:511 99 seq1 1081 99 35M = 1241 195 TGTCCATGTACACACGCTGTCCTATGTACTTATCA <<<<<<<<<<<<<<<<<<<<;<<<<6<:9<<3<44 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:6:54:263:585 99 seq1 1081 99 36M = 1254 209 TGTCCATGTACACACGCTGTCCTATGTACTTATCAT <<<<<<<<<<<<<<<<<<<:;<<;<:;::<<;;:;4 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:7:174:987:334 83 seq1 1082 99 35M = 908 -209 GTCCATGTACACACGCTGTCCTATGTACTTATCAT ,;<;;<<<&<<<1<<<<<<<<<<<<<;<<<<<<<< MF:i:18 Aq:i:41 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:6:224:932:942 99 seq1 1082 99 34M = 1250 203 GTCCATGTACACACGCTGTCCTATGTACTTATCA <<<<<<<<<<<<<<<<<<<<<<;<<<<7<<(;3, MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:1:12:1296:358 99 seq1 1082 96 35M = 1252 205 GTCCATGTACACACGCTGTCCTATGTACTTATCAT ;;;6;7;7;;;;;7;9;;-*1;9;699/99/7477 MF:i:18 Aq:i:37 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:2:306:119:56 147 seq1 1083 99 35M = 919 -199 TCCATGTACACACGCTGTCCTATGTACTTATCATG ;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:4:66:179:118 163 seq1 1084 99 35M = 1262 213 CCATGTACACACGCTGTCCTATGTACTTATCATGA <<<<<<<<<<<<<<<<<<<<<<<<<<:<<;<<6<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:2:110:584:649 99 seq1 1084 99 35M = 1266 217 CCATGTACACACGCTGTCCTATGTACTTATCATGA <<<<<<<<<<<<<<<<<<<<<<<<;<<<<<::<38 MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:4:28:315:310 163 seq1 1085 99 35M = 1242 192 CATGTACACACGCTGTCCTATGTACTTATCATGAC <<<<<<<<<<<<<<<<<<<<<:<+.<<.<+7<*17 MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:7:242:4:593 147 seq1 1086 99 35M = 905 -216 ATATACACACGCTGTCCTATGTACTTATCATGACT 1.%55877+8+88808887+7;7;18:8;;;.&;8 MF:i:18 Aq:i:53 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+EAS1_93:1:131:946:353 163 seq1 1087 99 35M = 1249 197 TGTACACACGCTGTCCTATGTACTTATCATGACTC <<<<<<<<<<<<<;<<<<;;<<<<<<<;<:52;<2 MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:4:4:1732:88 99 seq1 1087 99 35M = 1265 213 TGTACACACGCTGTCCTATGTACTTATCATGACTC <<<<<<<<<<<<<<<<<2<8;8<;<8;<2;2:<:< MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:4:58:703:72 83 seq1 1088 99 35M = 905 -218 GTACACACGCTGTCCTATGTACTTATCATGACTCT 5&<<7;+95;7'6<<<<<.<<<<<;<<9<7<<<<< MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:5:113:694:725 163 seq1 1088 99 35M = 1266 213 GTACACACGCTGTCCTATGTACTTATCATGACTCT <<<<<<<<<<<<9<<<<<:<<<<<<<<<<:;;<;; MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:5:278:848:765 147 seq1 1088 99 35M = 920 -203 GTACACACGCTGTCCTATGTACTTATCATGACTCT 7;;<;5<55<<;;<;<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:6:234:787:12 163 seq1 1092 97 35M = 1257 200 ACACGCTGGCCTATGTACTTATAATGACTCTATCC <;<<<9<<&+9;3;<993;<9<+94;9&41;08%9 MF:i:18 Aq:i:24 NM:i:2 UQ:i:15 H0:i:0 H1:i:0
+EAS218_1:4:15:856:340 147 seq1 1093 99 35M = 936 -192 CACGCTGTCCTATGTACTTATCATGACTCTATCCC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:2:258:266:101 163 seq1 1094 99 35M = 1285 226 ACGCTGTCCTATGTACTTATCATGACTCTATCCCA <<<<<<<<<<<<<<<<<<5<;,<-2<<<<;68<<6 MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:2:177:552:234 147 seq1 1094 99 35M = 903 -226 ACGCTGTCCTATGTACTTATCATGACTCTATCCCA ::;:=;=99=====;;====;==========<=== MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:1:134:379:893 147 seq1 1095 99 35M = 927 -203 CGCTGTCCTATGTACTTATCATGACTCTATCCCAA 7137::;<<<<<<<;<<<<<<<<<<;<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:8:256:404:584 147 seq1 1096 99 35M = 928 -203 ACTGTCCTATGTACTTATCATGACTCTATCCCAAA &&326+23<3<<<+:<</<<8<<<:7:<<<<<<<< MF:i:18 Aq:i:60 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS114_30:4:317:378:535 163 seq1 1096 99 35M = 1258 197 GCTGTCCTATGTACTTATCATGACTCTATCCCAAA <<<<<<<<<<<<:<<<<<<<<<;<<;<8<;:7:1( MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:4:277:482:316 83 seq1 1098 99 35M = 894 -239 TGTCCTATGTACTTATCATGACTCTATCCCAAATT 9998;<<<<<;;<<<<<<<<<<<;<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:3:273:901:459 147 seq1 1098 99 35M = 938 -195 TGTCCTATGTACTTATCATGACTCTATCCCAAATT 4;+/+7,;<8+&<;;82;;<8<8<2<;<<<<<<<< MF:i:18 Aq:i:59 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:3:316:25:230 163 seq1 1098 99 35M = 1273 210 TGTCCTATGTACTTATCATGACTCTATCCCAAATT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<);2;; MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:3:24:195:604 83 seq1 1098 99 35M = 923 -210 TGTCCTATGTACTTATCATGACTCTATCCCAAATT ;6<02;<<<<59<<;<;<<<<9<3<<<<<<<<<;< MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:4:42:923:169 83 seq1 1099 99 35M = 925 -209 TTCCTATGTACTTATCATGAATCTATCCCAAATTC &;972<;&<9<,;;;<<<;<&99<<;<;;3<<3<< MF:i:18 Aq:i:39 NM:i:2 UQ:i:10 H0:i:0 H1:i:1
+EAS114_45:6:59:1548:1096 163 seq1 1099 99 35M = 1297 233 GTCCTATGTACTTATCATGACTCTATCCCAAATTC ;.;;;;;;;;6;;;;;;;;;;;;;;;73;;77777 MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:5:136:389:320 147 seq1 1100 99 35M = 930 -205 TCCTATGTACTTATCATGACTCTATCCCAAATTCC .5:,666<)<8<:<<:66<<<<<<<<<<5<<7<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:6:122:342:296 99 seq1 1100 99 35M = 1256 191 TCCTATGTACTTATCATGACTCTATCCCAAATTCC <<<<<<<<<<<<<<<<<<<<<<<<<;<<*<<<<9< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:2:259:467:737 83 seq1 1102 99 36M = 923 -215 CTATGTACTTATCATGACTCTATCCCAAATTCCCAA 8<<<<<<<:<<<<<<<<;<;<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:4:71:832:743 163 seq1 1102 99 35M = 1290 223 CTATGTACTTATCATGACTCTATCCCAAATTCCCA <<<<<<<<<<<<<<<<<<<<<<<<<<<*<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:5:105:521:563 163 seq1 1103 72 35M = 1267 199 TATGTACTTATCATGACTCTATCCCAAATTCCCAA ;<)<9995<9<<59<7<<<<7<7<35,0,544<3( MF:i:18 Aq:i:10 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:6:201:195:757 163 seq1 1103 99 35M = 1298 230 TATGTACTTATCATGACTCTATCCCAAATTCCCAA <<<<<<<<<<<<<<;<<<<<<<<<<<<<<<;;;;8 MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:7:6:585:132 163 seq1 1105 23 36M = 1276 207 TGTACTTATCATGTTTCTTTCCTAATTTTTCAATTA 6666166&6)+61))646+6&)&%&-44))1'144' MF:i:130 Aq:i:23 NM:i:7 UQ:i:59 H0:i:0 H1:i:0
+EAS1_105:2:179:532:82 99 seq1 1105 99 35M = 1285 215 TGTACTTATCATGACTCTATCCCAAATTCCCAATT <<<<<<<<<<<<<<<<<<<<3<;<;<<<<:<8<<< MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:6:11:646:628 147 seq1 1106 99 36M = 930 -212 GTACTTATCATGACTCTATCCCAAATTCCCAATTAC <<<3<<<<<<<<<<<<<<<<<<<<<7<<<<<<<<6< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:6:93:334:858 147 seq1 1106 99 35M = 932 -209 GTACTTATCATGACTCTATCCCAAATTCCCAATTA ;<;+;;<<;<<<<<;<<<<;;8<<<<8<<<<<<<< MF:i:18 Aq:i:41 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:8:26:785:882 83 seq1 1107 99 35M = 926 -216 TACTTATCATGACTCTATCCCAAATTCCCAATTAC <<&5&<<<<5.;5<'<<;.76<<<<<7<7<<<<<< MF:i:18 Aq:i:39 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:4:54:989:654 99 seq1 1108 99 35M = 1296 223 ACTTATCATGACTCTATCCCAAATTCCCAATTACG <<<<<<<<<<<<<<<9<<<<<<9<<<<<1<<<88; MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_4:5:202:326:680 163 seq1 1108 78 35M = 1268 195 ACTTATCATGACTCTATCCCAAATTCTCAATTACG <<<<<<<4<<<*<<<*<<<7..:7<3*:7.7<+.; MF:i:18 Aq:i:37 NM:i:1 UQ:i:9 H0:i:0 H1:i:1
+B7_597:3:53:616:842 163 seq1 1109 99 35M = 1288 214 CTTATCATGACTCTATCCCAAATTCCCACTTACGT <<<<<<<<<<<<<<<<<<<;07<<<<<-&<<-<4; MF:i:18 Aq:i:68 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS54_71:4:209:159:130 147 seq1 1109 99 35M = 934 -210 CTTATCATGACTCTATCCCAAATTCCCAATTACGT ;:6<:<8::;<<<;<-<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:6:75:917:886 83 seq1 1110 99 35M = 951 -194 TTATCATGACTCTATCCCAAATTCCCAATTACGTC <<<<8<<<<<<8<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:6:286:753:854 163 seq1 1110 99 35M = 1288 213 TTATCATGACTCTATCCCAAATTCCCAATTACGTC <<<<<<<<<<<<<<<<<<3<<<<<<9999<;<<9; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:6:290:146:36 99 seq1 1110 99 35M = 1280 205 TTATCATGACTCTATCCCAAATTCCCAATTACGTC <<<<<<<<<<<<<<<<<<<<<<<8<<<<<;;<;;< MF:i:18 Aq:i:25 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:6:93:1475:542 163 seq1 1110 99 35M = 1254 179 TTATCATGACTCTATCCCAAATTCCCAATTACGTC ;;;;;;;;;;;;;;;;;;;;;;9;;;9;;;77777 MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:1:77:251:446 83 seq1 1110 99 35M = 939 -206 TTATCATGACTCTATCCCAAATGCCCAATTACGTC <<24,:8<<<:1<<<:35<:<:,<<<<<<:5:<<< MF:i:18 Aq:i:41 NM:i:1 UQ:i:11 H0:i:0 H1:i:1
+EAS1_105:3:176:431:647 163 seq1 1112 99 35M = 1285 208 ATCATGACTCTATCCCAAATTCCCAATTACGTCCT <<<<<<<<<<<<<<<<2<<<<<<<<6<<<<9<<6< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:1:111:796:737 147 seq1 1112 99 35M = 936 -211 ATCATGACTCTATCCCAAATTCCCAATTACGTCCT <3<<<<<<<<<<<7<<<<<;<<<<<<<<<<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:5:228:189:826 147 seq1 1112 99 35M = 914 -233 ATCATGACTCTATCCCAAATTCCCAATTACGTCCT :74=:.==1========================== MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:1:35:631:594 163 seq1 1112 99 35M = 1271 194 ATCATGACTCTATCCCAAATTCCCAATTACGTCCT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:1:29:529:379 83 seq1 1117 99 35M = 926 -226 GACTCTATCCCAAATTCCCAATTACGTCCTATCTT ;<<<:<<<<<;<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:7:74:596:137 99 seq1 1119 91 35M = 1294 210 CTCTATCCCAAATTCCCAATTACGTCCTATCTTCT <<<<<<<<<</4<<<<<<*<:6<<<<<<<<;/3<< MF:i:18 Aq:i:22 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:6:92:1807:1185 147 seq1 1119 99 35M = 940 -214 CTCTATCCCAAATTCCCAATTACGTCCTATCTTCT <<<<<<9<<<<<<<<<<<<<<<<<<<<<<><<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:3:57:735:151 99 seq1 1121 94 35M = 1314 228 CTATCCCAAATTCCCAATTACGTCCTATCTTCTTC <<<<<<<<8<<8<:<<*<:<<<4<<<;,<<<<:<: MF:i:18 Aq:i:26 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:8:142:858:903 147 seq1 1121 99 35M = 943 -213 CTATCCCAAATTCCCAATTACGTCCTATCTTCTTC <<<<<;<<<<9<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:7:247:522:670 83 seq1 1121 99 35M = 960 -196 CTATCCCAAATTCCCAATTACGTCCTATCTTCTTC ;;;9;:<<<<<;<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:3:75:732:442 99 seq1 1121 99 40M = 1293 212 CTATCCCAAATTCCCAATTACGTCCTATCTTCTTCTTAGG <<<<<;<<<<<9<<<;<<;<<<5<<;8<<<<<<<<;:9%% MF:i:18 Aq:i:60 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:7:183:645:699 99 seq1 1122 86 35M = 1281 194 TATCCCAAATTCCCAATTACGTCCTATCTTCTTCT <<9<9<<<<<<<<<;<<;<<*175;173<;;;<-/ MF:i:18 Aq:i:21 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:6:175:437:950 163 seq1 1126 99 35M = 1298 207 CCAAATTCCCAATTACGTCCTATCTTCTTCTTAGG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<:59 MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:3:93:1002:845 83 seq1 1129 99 35M = 954 -210 AATTCCCAATTACGTCCTATCTTCTTCTTAGGGAA <<::;;;<<<<<<<<<<<<<<<<;<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:6:50:542:881 163 seq1 1132 99 35M = 1324 227 TCCCAATTACGTCCTATCTTCTTCTTAGGTAAGAA <<<<<4<09<<9<<2<<<<<<<<<<<2/.&2<%<7 MF:i:18 Aq:i:63 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS1_99:3:118:851:285 83 seq1 1133 99 35M = 953 -215 CCCAATTACGTCCTATCTTCTTCTTAGGGAAGAAC 3+7<<<;<;<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:1:67:191:668 147 seq1 1134 99 35M = 995 -174 CCAATTACGTCCTATCTTCTTCTTAGGGAAGAACA <<<<<7<<7<<<<<<<;<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:7:166:203:416 83 seq1 1136 99 35M = 963 -208 AATTACGTCCTATCTTCTTCTTAGGGAAGAACAGC <<<<<<<<::<<<<<<<<<;<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:2:15:1497:1530 99 seq1 1136 99 35M = 1314 213 AATTACGTCCTATCTTCTTCTTAGGGAAGAACAGC 0<;;;9;;86<;;;<<&<<.<<;)3;7;654-471 MF:i:18 Aq:i:57 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:8:206:563:262 83 seq1 1137 99 35M = 971 -201 ATTACGTCCTATCTTCTTCTTAGGGAAGAACAGCT <<<<7<<<<<<<<<<<<<<<<<<<<<<<<<<<<<7 MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:4:40:352:151 99 seq1 1137 99 35M = 1327 225 ATTACGTCCTATCTTCTTCTTAGGGAAGAACAGCT <<<<<<<<<<<<<<<;<<9<<<<:<<<<;<99<3< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:7:67:302:762 99 seq1 1138 99 36M = 1313 211 TTACGTCCTATCTTCTTCTTAGGGAAGAACAGCTTA <<<<<<<<<<<<<<<<<<<<;;65;<-<;<:8<<<3 MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:5:84:927:843 147 seq1 1138 99 35M = 938 -235 TTACGTCCTATCTTCTTCTTAGGGAAGAACAGCTT 588;<:<<<<<<<6<<<<;<<<:/<<3<:;<*<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:5:147:479:41 163 seq1 1139 99 35M = 1322 218 TACGTCCTATCTTCTTCTTAGGGAAGAACAGCTTA <<<<<<<<<<<<<<<<<<<<::6<<;<<<;;9;;6 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:3:329:177:267 83 seq1 1139 99 35M = 962 -212 TACGTCCTATCTTCTTCTTAGGGAAGAACAGCTTA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:7:72:916:763 163 seq1 1142 99 35M = 1340 233 GTCCTATCTTCTTCTTAGGGAAGAACAGCTTAGGT </:8<8)<<<<:<<<<<;.89<:67<.;<<7+336 MF:i:18 Aq:i:63 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:6:124:128:489 99 seq1 1142 99 35M = 1348 241 GTCCTATCTTCTTCTTAGGGAAGAACAGCTTAGGT <<<<<<<<<<<<<<<<<6:6<<-4<::;;<<:48< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:3:39:59:738 83 seq1 1142 99 35M = 965 -212 GTCCTATGTTCTTCTTAGGGAAGAACAGCTTAGGT ;.;4;<;3<<9<<9<&<<9<<<<<;<9<;<<;9<< MF:i:18 Aq:i:43 NM:i:1 UQ:i:18 H0:i:0 H1:i:1
+EAS1_99:6:63:48:631 83 seq1 1143 99 35M = 957 -221 TCCTATCTTCTTCTTAGGGAAGAACAGCTTAGGTA ;*:;;<2<<2779;:<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:1:274:176:479 147 seq1 1144 99 35M = 976 -203 CCTATCTTCTTCTTAGGGAAGAACAGCTTAGGTAT 7)<<7<626<<7<<<<<<<<<<<<<<<<<<<3<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:2:72:1809:1398 147 seq1 1145 99 35M = 958 -222 CTATCTTCTTCTTAGGGAAGAACAGCTTAGGTATC ;:;;:<7:7<:<:<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:2:235:805:373 83 seq1 1146 99 35M = 983 -198 TATCTTCTTCTTAGGGAAGAACAGCTTAGGTATCA <<;<<<<<<9<9<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:7:269:944:220 83 seq1 1147 99 35M = 953 -229 ATCTTCTTCTTAGGGAAGAACAGCTTAGGTATCAA <;<;8<<;7<<<<<;<<-<<<<<<;<<<;<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:7:174:597:66 163 seq1 1148 99 35M = 1307 194 TCTTCTTCTTAGGGAAGAACAGCTTAGGTATCAAT <<<<<<<<<<<<<<<<<<<<<<<<<;<<;<<;6;< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:5:229:717:121 147 seq1 1150 99 35M = 995 -190 TTCTTCTGAGGGAAGAACAGCTTAGGTATCAATTT 6;-;7<<(<<<<<8<18<7<<<<<<<<<;<<<<<< MF:i:18 Aq:i:43 NM:i:1 UQ:i:7 H0:i:0 H1:i:1
+EAS56_53:1:23:403:981 147 seq1 1151 99 35M = 985 -201 TCTTCATAGGGAAGAACAGCTTAGGTATCAATTTG (;3+<&3<</7<<<<<<;<<<<<<<<<<<<</<2< MF:i:18 Aq:i:65 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS112_32:7:168:117:441 147 seq1 1151 99 35M = 990 -196 TCTTCTTAGGGAAGAACAGCTTAGGTATCAATTTG ;;;;3;<<<<<<<<<<<<<;<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:6:52:1455:1212 99 seq1 1153 99 40M = 1304 191 TTCTTAGGGAAGAACAGCTTAGGTATCAATTTGGTGTTCT <9<<<99<;<<9<;<-<<<6<<75;;<*%<5<3+.8:*5; MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:7:37:400:627 83 seq1 1154 99 35M = 961 -228 TCTTAGGGAAGAACAGCTTAGGTATCAATTTGGTG 474*;<<9<;<<<;<<:<<<<<<;<<<<<<;<<;< MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:5:11:868:62 147 seq1 1154 99 36M = 983 -207 TCTTAGGGAAGAACAGCTTAGGTATCAATTTGGTGT ;;77;;7<<<<<<<<7<<<;<7<<<<<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:4:209:92:210 83 seq1 1156 99 35M = 965 -226 TTAGGGAAGAACAGCTTAGGTATCAATTTGGTGTT ;9;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:2:128:394:455 163 seq1 1156 99 35M = 1313 192 TTAGGGAAGAACAGCTTAGGTATCAATTTGGTGTT ======6==========;===9==;5===;==;== MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:1:316:949:122 99 seq1 1156 99 35M = 1321 200 TTAGGGAAGAACAGCTTAGGTATCAATTTGGTGTT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<0<:<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:8:60:1020:1259 147 seq1 1157 99 35M = 996 -196 TAGGGAAGAACAGCTTAGGTATCAATTTGGTGTTC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:4:193:38:987 83 seq1 1158 99 35M = 964 -229 AGGGAAGAACAGCTTAGGTATCAATTTTGTGTTCT <<<;<<;<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS1_93:5:292:122:666 147 seq1 1159 99 35M = 985 -209 GGGAAGAACAGCTTAGGTATCAATTTGGTGTTCTG <;<;;<<<<<:<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:2:280:512:316 83 seq1 1159 99 35M = 984 -210 GGGAAGAACAGCTTAGGTATCAATTTGGTGTTCTG ;9===;======;7==;;======;=====;==== MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:5:207:926:427 83 seq1 1159 99 35M = 973 -221 GGGAAGAACAGCTTAGGTATCAATTTGGTGTTCTG ;;7<<;4<<<2<<;<<<<<<<<<<7<;<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:3:239:796:221 83 seq1 1160 99 35M = 992 -203 GGAAGAACAGCTTAGGTATCAATTTGGTGTTCTGT ;;<<;<<;<<<+:<<<4<4<<<<<<<<<<<<<<<< MF:i:18 Aq:i:37 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:7:142:457:584 147 seq1 1160 99 35M = 999 -196 GGAAGAACAGCTTAGGTATCAATTTGGTGTTCTGT 8::<:<<9<<.<:<<<<<<<<<<<7<<<<<<<<<< MF:i:18 Aq:i:41 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:7:190:481:295 83 seq1 1161 99 35M = 990 -206 GAAGAACAGCTTAGGTATCAATTTGGTGTTCTGTG ;<<:<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:7:86:308:648 147 seq1 1161 99 35M = 970 -226 GAAGAACAGCTTAGGTATCAATTTGGTGTTCTGTG <7<<<;<<<<+;<<<2<5<<<77;<<2<;;<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:3:182:23:585 99 seq1 1163 99 35M = 1336 208 AGAACAGCTTAGGTATCAATTTGGTGTTCTGTGTA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<:<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:4:216:650:516 99 seq1 1164 99 36M = 1326 198 GAACAGCTTAGGTATCAATTTGGTGTTCTGTGTAAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:4:15:805:420 83 seq1 1164 35 35M = 998 -201 GAACAGTTTAGGTATCAATTTGGTGTTCTTTGTAA <64<59&996<(64<)7).68<0<0<<7741<1:< MF:i:18 Aq:i:35 NM:i:2 UQ:i:24 H0:i:0 H1:i:1
+EAS56_65:6:82:822:767 147 seq1 1165 99 35M = 972 -228 AACAGCTTAGGTATCAATTTGGTGTTCTGTGTAAA <<9<<<<<<<<<<;;<<<:<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:7:33:1566:588 147 seq1 1166 76 35M = 985 -216 ACAGCTTAGGCATCAATTTGGTGTTCTGTGTAAAG -6246;;97;77;;97;;;;;;9;7;79;)&;37; MF:i:18 Aq:i:37 NM:i:1 UQ:i:22 H0:i:0 H1:i:1
+EAS1_93:1:20:635:509 163 seq1 1167 99 35M = 1333 201 CAGCTTAGGTATCAATTTGGTGTTCTGTGTAAAGT <<<<<<<<<;<<<<;<<<;<;;;<<<;<<<<<<(8 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:7:144:28:475 147 seq1 1167 99 35M = 974 -228 CAGCTTAGGTATCAATTTGGTGTTCTGTGTAAAGT ;;;9;<<:<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:4:36:1402:1709 163 seq1 1168 99 35M = 1326 193 AGCTTAGGTATCAATTTGGTGTTCTGTGTAAAGTC <<<<<<<<<<<<<<<<<;<<<<<<<<<;<<<:9<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:8:34:956:1309 147 seq1 1168 99 35M = 994 -209 AGCTTAGGTATCAATTTGGTGTTCTGTGTAAAGTC 9<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:7:157:784:936 163 seq1 1169 99 35M = 1356 222 GCTTAGGTATCAATTTGGTGTTCTGTGTAAAGTCT <<<<<<<<<<<<<<<<<:<<<<<<;<<<<814<4< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:2:152:860:286 83 seq1 1171 99 35M = 1004 -202 TTAGGTATCAATTTGGTGTTCTGTGTAAAGTCTCA 2;5;8<<;5<<<;<2<8<<<<<<;8<;<<<<;<<< MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:7:157:786:424 147 seq1 1171 99 36M = 981 -226 TTAGGTATCAATTTGGTGTTCTGTGTAAAGTCTCAG ;<;2;;<<<;<;<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:1:33:1407:94 163 seq1 1172 99 35M = 1360 223 TAGGTATCAATTTGGTGTTCTGTGTAAAGTCTCAG ;;;;;;;6:;;:::7;:;;;;:::;;;;:;47771 MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:3:302:288:657 147 seq1 1173 99 35M = 1013 -195 AGGTATCAATTTGGTGTTCTGTGTAAAGTCTCAGG <:5<<;;<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:4:233:97:262 147 seq1 1175 99 35M = 1021 -189 GTATCAATTTGGTGTTCTGTGTAAAGTCTCAGGGA --;;7<;<;;:;<;<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:7:67:692:110 147 seq1 1175 99 35M = 1009 -201 GTATCAATTTGGTGTTCTGTGTAAAGTCTCAGGGA ;;<<8<<<<;<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:2:68:692:347 163 seq1 1176 99 36M = 1351 211 TATCAATTTGGTGTTCTGTGTAAAGTCTCATGGAGC <<<<<<<<<+6<;<<<<3<:<<<<6<8<<<&*/;*0 MF:i:18 Aq:i:64 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS51_64:3:309:303:278 83 seq1 1178 99 35M = 996 -217 TCAATTTGGTGTTCTGTGTAAAGTCTCAGGGAGCC <:<<<:<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:4:21:132:1423 147 seq1 1178 99 35M = 1012 -201 TCAATTTGGTGTTCTGTGTAAAGTCTCAGGGAGCC :<<<<<6<<;<<;<5<;<<<<<<;<6<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:7:63:854:610 83 seq1 1180 99 35M = 1005 -210 AATTTGGTGTTCTGTGTAAAGTCTCAGGGAGCCGT :.5;2<:88<<72:<<;<<7<8;<;/<<<<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:5:182:313:319 147 seq1 1180 99 35M = 1016 -199 AATTTGGTGTTCTGTGTAAAGTCTCAGGGAGCCGT </<;185;8<;;87<;8<<<<8<;83<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:3:62:603:1552 83 seq1 1180 99 35M = 1019 -196 AATTTGGTGTTCTGTGTAAAGTCTCAGGGAGCCGT 8::;:<<6<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:6:145:144:796 99 seq1 1181 99 35M = 1372 226 ATTTGGTGTTCTGTGTAAAGTCTCAGGGAGCCGTC <<<<<<<<<<<<<<;<<<<<<;<<<<<<4;4;<;/ MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:3:41:474:283 147 seq1 1182 99 35M = 1018 -199 TTTGGTGTTCTGTGTAAAGTCTCAGGGAGCCGTCC 6/;;;88;;<:;48<<<<<;<;<<<<<<<<<<;<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:2:329:458:365 99 seq1 1186 99 35M = 1364 213 GTGTTCTGTGTAAAGTCTCAGGGAGCCGTCCGTGT ==========================9======== MF:i:18 Aq:i:78 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:1:159:222:274 147 seq1 1189 99 35M = 1019 -205 GTCTGGGGAAAGTCTCAGGGAGCCGTCCGTGTCCT ''7*<&<'<<<<.<2<<<<<<<<<<+<<<8<8<<; MF:i:18 Aq:i:37 NM:i:3 UQ:i:17 H0:i:0 H1:i:1
+EAS114_32:6:88:162:587 99 seq1 1189 99 35M = 1372 218 TTCTGTGTAAAGTCTCAGGGAGCCGTCCGTGTCCT <;<<<<<<<<<;<5<;<;<<7<++<<2&*:322+7 MF:i:18 Aq:i:63 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:3:148:340:479 99 seq1 1190 99 35M = 1364 209 TCTGTGTAAAGTCTCAGGGAGCCGTCCGTGTCCTC <<<<<<<<<<<<<<<<:<:<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:4:12:276:1797 147 seq1 1190 99 35M = 1006 -219 TCTGTGTAAAGTCTCAGGGAGCCGTCCGTGTCCTC )9<02)<<<<<<<<<<<<<1<<<<&<<<<9<<<<< MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:6:190:42:671 83 seq1 1192 99 36M = 1008 -220 TGTGTAAAGTCTCAGGGAGCCGTCCGTGTCCTCCCA <<<<8<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:4:321:271:138 99 seq1 1193 99 35M = 1394 236 GTGTAAAGTCTCAGGGAGCCGTCCGTGTCCTCCCA <<<<<<<<<<<<<<<<<<<<<;9<<;<<;;<88;& MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:5:154:669:853 163 seq1 1193 99 35M = 1371 213 GTGTAAAGTCTCAGGGAGCCGTCCGTGTCCTCCCA ============<===.====<:=<9=<<<9;:;2 MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:7:287:258:321 147 seq1 1194 99 35M = 1030 -199 TGTAAAGTCTCAGGGAGCCGTCCGTGTCCTCCCAT :.<9<)<;<9<.<<:<:+5:<<<<<<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:3:61:183:767 147 seq1 1195 99 35M = 1010 -220 GTAAAGTCTCAGGGAGCCGTCCGTGTCCTCCCATC 6&.;;<3<363<<<<<<<<8<<<6<<<<3<<<<<< MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:4:29:794:282 83 seq1 1196 99 36M = 1025 -207 TAAAGTCTCAGGGAGCCGTCCGTGTCCTCCCATCTG 7<<<<45::-<<<<<;<<-;<<;<<<<<<<<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:3:313:827:992 99 seq1 1197 99 35M = 1379 217 AAAGTCTCAGGGAGCCGTCCGTGTCCTCCCATCTG <<<<6<<<<:<<<<<66<<<:33:<<<80<;6<8+ MF:i:18 Aq:i:57 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:3:196:11:27 83 seq1 1198 65 36M = 1035 -199 AAGACCCAGTTAGCCGTCCGTGTCCTCCCATCTGGC 96&6<'<7:!!<,:;+7<<6:<<<<<<<<<7<7;:< MF:i:18 Aq:i:24 NM:i:4 UQ:i:27 H0:i:0 H1:i:0
+EAS139_19:3:87:133:930 83 seq1 1198 99 40M = 1044 -194 CAGTCTCAGGGCGCCGTCCGTTTCCTCCCATCTGGCCTCG )8&)907)-;9&,<<9)<;<<0<;<<99<<<<<<;<<9<< MF:i:18 Aq:i:39 NM:i:3 UQ:i:28 H0:i:0 H1:i:1
+EAS114_45:7:97:1584:777 147 seq1 1200 99 35M = 1013 -222 GTCTCAGGGAGCCGTCCGTGTCCTCCCATCTGGCC 66746,9::9;;;;:;;;;;;;;;;;;;;;:;;;; MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:6:127:153:861 99 seq1 1202 99 35M = 1374 207 CTCAGGGAGCCGTCCGTGTCCTCCCATCTGGCCTC <<<<<<<<<<<<<<<<<<<<<<<=<*<<<24;;:: MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:6:157:42:763 83 seq1 1203 99 35M = 1040 -198 TCTGGGAGCCGTCCGTGTCCTCCCATCTGGCCTCG 4++;((2(5;24<./<:<<<<<<<<;<<88<<<<9 MF:i:18 Aq:i:61 NM:i:1 UQ:i:10 H0:i:1 H1:i:0
+EAS54_65:4:91:267:655 99 seq1 1204 99 35M = 1365 196 CAGGGAGCCGTCCGTGTCCTCCCATCTGGCCTCGT <<<<<<<<<<<<<<<<<<<<<;:;;7<9477<74; MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:3:39:966:551 147 seq1 1205 99 35M = 1026 -214 AGGGAGCCGTCCGTGTCCTCCCATCTGGCCTCGTC 8;;;;;<<6'<<<+8<<<1<<<<4<<<<<<<<<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:5:61:38:1182 163 seq1 1205 99 35M = 1388 218 AGGGAGCCGTCCGTGTCCTCCCATCTGGCCTCGTC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<5<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:1:47:352:1492 99 seq1 1205 99 40M = 1385 220 AGGGAGCCGTCCGTGTCCTCCCATCTGGCCTCGCCCACTA :<<<::<24<04-&<;<<2<<<&<60)&<5<<6*8:)9+* MF:i:18 Aq:i:53 NM:i:3 UQ:i:28 H0:i:1 H1:i:0
+EAS221_3:8:74:770:1712 83 seq1 1208 99 35M = 1052 -191 GAGCCGTCCGTGTCCTCCCATCTGGCCTCGTCCAC 3.&::6<<<9<6:<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:3:279:763:945 147 seq1 1210 99 36M = 1048 -198 GCCGTCCGTGTCCTCCCATCTGGCCTCGTCCACACT +9:-+<:1-44<<':<;<+<-<<<;:<<;;<<<<<0 MF:i:18 Aq:i:61 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:4:306:388:342 163 seq1 1211 99 35M = 1398 222 CCGTCCGTGTCCTCCCATCTGGCCTCGTCCACACT ================5====:=====;==1=4== MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:5:180:905:36 147 seq1 1212 99 35M = 1033 -214 CCTCCGTGTCCTCCCATCTGGCCTCGTCCACACTG 6%%<;<662<<*;<<<8<<:<<<<<<<<<<<<<<; MF:i:18 Aq:i:65 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+EAS218_1:2:19:752:816 99 seq1 1212 99 35M = 1394 217 CGTCCGTGTCCTCCCATCTGGCCTCGTCCACACTG <<<<<<<<<<<<<<<<<<<8<7;<;<<767277;6 MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:3:305:565:952 147 seq1 1213 99 36M = 1030 -219 GTCCGTGTCCTCCCATCTGGCCTCGTCCACACTGGT 5(<1<147<81<*8--8<<<7<91<<<;+<+<<<<< MF:i:18 Aq:i:62 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:1:44:1466:425 83 seq1 1213 99 35M = 1044 -204 GTCCGTGTCCTCCCATCTGGCCTCGTCCACACTGG 6-<<9<<:<<;<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:4:68:64:783 163 seq1 1214 99 35M = 1402 223 TCCGTGTCCTCCCATCTGGCCTCGTCCACACTGGT <<<<<<<<<<<<<<<<<;;<<<<<<;<<<9:<<:9 MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_61:7:64:37:257 163 seq1 1215 99 35M = 1389 209 CCGTGTCCTCCCATCTGGCCTCGTCCACACTGGTT ================<=====;===8;4====== MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:2:20:413:1334 99 seq1 1215 99 35M = 1370 190 CCGTGTCCTCCCATCTGGCCTCGTCCACACTGGTT 7<<;<<<.;<;67;7;;;:;;3;<59+...77677 MF:i:18 Aq:i:60 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_53:8:179:549:753 147 seq1 1218 99 35M = 1056 -197 TGTCCTCCCATCTGGCCTCGTCCACACTGGTTCTC :77<</<<<::<:<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:1:16:823:343 99 seq1 1223 99 35M = 1403 215 TCCCATCTGGCCTCGTCCACACTGGTTCTCTTGAA ================================4== MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:7:266:556:252 99 seq1 1224 99 35M = 1392 203 CCCATCTGGCCTCGTCCACACTGGTTCTCTTGAAA <<<<<<<<<<<<<<<<<;<<<<<<4;;<;;;<7;; MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:4:278:524:521 83 seq1 1224 99 35M = 1025 -234 CCCATCTGGCCTCGTCCACACTGGTTCTCTTGAAA 7777,<;<<7<<<<;;<<;;<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:5:72:1426:1883 99 seq1 1226 99 35M = 1405 214 CATCTGGCCTCGTCCACACTGGTTCTCTTGAAAGC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<:< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:3:82:998:566 83 seq1 1227 99 35M = 1050 -212 ATCTGGCCTCGTCCACACTGGTTCTCTTGAAAGCT <9<9<<<<2<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:6:29:575:453 83 seq1 1228 99 36M = 1056 -208 TCTGGCCTCGTCCACACTGGTTCTCTTGAAAGCTTG ;<<<;;<:<<<;<;<<<<<<<<<<<<<<;<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:7:222:538:267 147 seq1 1228 99 35M = 1074 -189 TCTGGCCTCGTCCACACTGGTTCTCTTGAAAGCTT 52/8-<<7<<;<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:1:138:186:274 147 seq1 1231 99 35M = 1075 -191 GGCCTCGTCCACACTGGTTCTCTTGAAAGCTTGGG <;<<<<<6;<<<<<3<<36;3;<9<<<<<<3;<<< MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:3:137:895:681 99 seq1 1232 99 35M = 1418 221 GCCTCGTCCACACTGGTTCTCTTGAAAGCTTGGGC <<<<<<<<<<<<<<<<<<<<<<<<<<<:<<<-8<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:1:71:636:533 99 seq1 1232 99 35M = 1398 201 GCCTCGTCCACACTGGTTCTCTTGAAAGCTTGGGC <<<<<<<<<<<<<<<<<<<<<<<7<<<5<<<-847 MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:3:45:294:380 83 seq1 1233 80 36M = 1074 -195 CCTCGTCCACACTGGTTCGCTTGAAAGCTTGGGCTG ;<+<7<<<<;7<,<7<<<+/7;<<;<<;7<<<;<<< MF:i:18 Aq:i:39 NM:i:1 UQ:i:10 H0:i:0 H1:i:1
+EAS51_66:8:9:80:353 83 seq1 1233 99 35M = 1067 -201 CCTCGTCCACACTGGTTCTCTTGAAAGCTTGGGCT ;;5;:8<:<:;:;<<<<;<:<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:1:73:302:1574 99 seq1 1233 99 35M = 1429 231 CCTCGTCCACACTGGTTCTCTTGAAAGCTTGGGCT <<<<<<<<<<;<<<<<<<<<<<<+:;<<;:8;<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:5:131:779:345 163 seq1 1237 99 35M = 1399 197 GTCCACACTGGTTCTCTTGAAAGCTTGGGCTGTAA ============================9====;= MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:8:159:71:155 99 seq1 1237 99 35M = 1428 226 GTCCACACTGGTTCTCTTGAAAGCTTGGGCTGTAA =========;=<======;=:=3;==;=6<==;=; MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:3:55:340:837 83 seq1 1238 99 35M = 1069 -204 TCCACACTGGTTCTCTTGAAAGCTTGGGCTGTAAT 61378<::<<<5:<;;:<<<<<<<<<<<<;<<<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:4:91:521:517 147 seq1 1239 99 35M = 1061 -213 CCACACTGGTTCTCTTGAAAGCTTGGGCTGTAATG 8;8<4=:===7===9=============<====== MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_53:1:47:303:887 83 seq1 1240 96 35M = 1052 -223 CACACTGGTTCTCTTGAAAGCTTGGGCTGTAATGA <;<6<;<;<8<<<8<<<<;<<<.<<<<<<<8<8;< MF:i:18 Aq:i:25 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:4:74:570:695 163 seq1 1240 99 35M = 1436 231 CACACTGGTTCTCTTGAAAGCTTGGGCTGTAATGA =========================7====;8<8; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:3:268:523:511 147 seq1 1241 99 35M = 1081 -195 ACACTGGTTCTCTTGAAAGCTTGGGCTGTAATGAT 8<7<99<<<<<<<<<:<<<<<<4<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:3:319:174:811 147 seq1 1242 99 35M = 1044 -233 CACTGGTTCTCTTGAAAGCTTGGGCTGTAATGATG ;7;3<<3.<<<<<<<<<<<4<<<<<<<<<<<<<0< MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:4:28:315:310 83 seq1 1242 99 35M = 1085 -192 AAACTGTTCTCTTGAAAGCTTGGGCTGTAATGATG +%,768<<:<:<2<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:68 NM:i:4 UQ:i:70 H0:i:1 H1:i:0
+EAS1_108:1:328:614:638 99 seq1 1243 99 35M = 1428 220 ACTGGTTCTCTTGAAAGCTTGGGCTGTAATGATGC <<<<<<<<<<<<<<<<<<<<4/;<<9<<<<7<<*: MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:8:63:930:152 163 seq1 1243 99 35M = 1410 202 ACTGGTTCTCTTGAAAGCTTGGGCTGTAATGATTC <<<<;<<<<<<<7<<;::<<)726;)<99<)&;&+ MF:i:18 Aq:i:59 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS56_59:1:219:294:861 83 seq1 1244 99 35M = 1073 -206 CTGGTTCTCTTGAAAGCTTGGGCTGTAATGATGCC ;,;<;<<<;&<<<<<<<5<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:6:42:920:522 83 seq1 1244 99 35M = 1067 -212 CTGGTTCTCTTGAAAGCTTGGGCTGTAATGATGCC ;;;;;99<;<<;<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:7:87:89:696 99 seq1 1245 99 36M = 1419 210 TGGTTCTCTTGAAAGCTTGGGCTGTAATGATGCCCC <<<<<<<<<<<<<<<<<<<<<<<<<<;<:;<<<;<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:7:166:979:531 163 seq1 1245 99 35M = 1410 200 TGGTTCTCTTGAAAGCTTGGGCTGTAATGATGCCC <<</<<<<<<<<<9<<9<<;<7<<<<9<<<9<,)6 MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:2:40:918:950 83 seq1 1247 99 35M = 1071 -211 GTTCTCTTGAAAGCTTGGGCTGTAATGATGCCCCT =0=&&33======;=====.=============== MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:1:131:946:353 83 seq1 1249 99 35M = 1087 -197 TCTCTTGAAAGCTTGGGCTGTAATGATGCCCCTTG <<:<<66<<<6<<4<<<:8<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:6:224:932:942 147 seq1 1250 99 35M = 1082 -203 CTCTTGAAAGCTTGGGCTGTAATGATGCCCCTTGG <;<<;;<<<;<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:5:318:177:383 83 seq1 1251 99 35M = 1056 -230 TCTTGAAAGCTTGGGCTGTAATGATGCCCCTTGGC 5:9;7;777<<7<<<<<<<<<<<<<<<<<<<<<<4 MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:4:188:460:1000 147 seq1 1251 99 35M = 1080 -206 TCTTGAAAGCTTGGGCTGTAATGATGCCCCTTGGC +;+077<7;<57<;;8<<<<<<<<<<8<<<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:1:12:1296:358 147 seq1 1252 96 35M = 1082 -205 CTTGAAAGCTTGGTCTGTAATGATGCCCCTTGGCC -770074;;6;&42;:2;;;:;;;;:;;/:;;;;: MF:i:18 Aq:i:37 NM:i:1 UQ:i:17 H0:i:0 H1:i:1
+EAS188_4:5:166:776:590 83 seq1 1252 99 35M = 1075 -212 CTTGAAAGCTTGGGCTGTAATGATGCCCCTTGGCC <;:;<<;<<;<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:6:54:263:585 147 seq1 1254 99 36M = 1081 -209 TGAAAGCTTGGGCTGTAATGATGCCCCTTGGCCATC 1:::6<<<<;;;<4<<<<<<<<6<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:6:93:1475:542 83 seq1 1254 99 35M = 1110 -179 TGAAAGCTTGGGCTGTAATGATGCCCCTTGGCCAT 98987:9:<:;:;;;;;<<;<;<;;;;<<<;;;<< MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:6:122:342:296 147 seq1 1256 99 35M = 1100 -191 AAAGCTTGGGCTGTAATGATGCCCCTTGGCCATCA <:;:<<<;<2<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:6:234:787:12 83 seq1 1257 97 35M = 1092 -200 AAGCTTGGGCTGTAATGATGCCCCTTGGCCATCAC ;;.<;;994<;9<<;;;<<<<<<<7<<<<<<<<<; MF:i:18 Aq:i:24 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:4:317:378:535 83 seq1 1258 99 35M = 1096 -197 AGCTTGGGCTGTAATGATGCCCCTTGGCCATCACC ;7;':<77<<;<<<;<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:5:160:434:853 83 seq1 1259 99 35M = 1072 -222 GCTTGGGCTGTAATGATGCCCCTTGGCCATCACCC ;;*4;<;<<<;<<<<<<<8<<<;<<<<<<<<8<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:2:18:1498:1475 163 seq1 1260 99 35M = 1427 202 CTTGGGCTGTAATGATGCCCCTTGGCCATCACCCG <<<<<7<<<<<<+<<-3<<3<:<2<1<<:<<<<<+ MF:i:18 Aq:i:71 NM:i:1 UQ:i:27 H0:i:1 H1:i:0
+B7_593:2:104:744:280 99 seq1 1262 64 36M = 1421 195 TGGGCTGTAATGATGCCCCTTGTCCATCACCCGGTC <<<<<<<<<<<<<<;<;<<<<:4<<4<<0<;80+;: MF:i:18 Aq:i:21 NM:i:2 UQ:i:34 H0:i:0 H1:i:1
+EAS1_95:4:66:179:118 83 seq1 1262 99 35M = 1084 -213 TGGGCTGTAATGATGCCCCTTGGCCATCACCCAGT <<99<<<<<<<<<<<<<<<<<<<9<<<:<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:1:277:194:143 99 seq1 1262 99 35M = 1444 217 TGGGCTGTAATGATGCCCCTTGGCCATCACCCGGT <<<<<<<<<<<;<<<<<<<<<<9;<<<8</<<6<: MF:i:18 Aq:i:72 NM:i:1 UQ:i:21 H0:i:1 H1:i:0
+EAS1_97:2:59:882:980 83 seq1 1263 99 35M = 1071 -227 GGGCTGTAATGATGCCCCTTGGCCATCACCCGGTC 7339%<6<<<<<;<<9<<8<<<<;<<<<<<<<<<< MF:i:18 Aq:i:43 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS220_1:4:14:1665:1772 83 seq1 1263 84 35M = 1073 -225 GGGCTGTAATGATGCCCCTTGGCCATCACCCGGTC <&7<<:<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:39 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS56_57:2:259:42:969 163 seq1 1265 99 35M = 1426 196 GCTGTAATGATGCCCCTTGGCCATCACCCGGTCCC <<<<<;<<;<<3<<<;9<36<<29;<<;;;</;<2 MF:i:18 Aq:i:69 NM:i:1 UQ:i:26 H0:i:1 H1:i:0
+EAS221_1:4:4:1732:88 147 seq1 1265 99 35M = 1087 -213 GCTGTAATGATGCCCCTTGGCCATCACCCGGTCCC :<4<:<<:<::<<<<<::<<<<<:<:<<<<<<<<< MF:i:18 Aq:i:45 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS1_105:2:110:584:649 147 seq1 1266 99 35M = 1084 -217 CTGTAATGATGCCCCTTGGCCATCACCCGGTCCCT ++:4686<<68<;<;<;<<<:<<<<<<<<<<<<<< MF:i:18 Aq:i:43 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS56_59:5:113:694:725 83 seq1 1266 99 35M = 1088 -213 CTGTAATGATGCCCCTTGGCCATCACCCGGTCCCT ;::<<:<:<<<<<<<<<<:<:<<<<<<;<<<<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS221_1:8:58:369:244 163 seq1 1266 99 35M = 1436 205 CTGTAATGATGCCCCTTGGCCATCACCCAGTCCCT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:5:105:521:563 83 seq1 1267 10 35M = 1103 -199 TGTAATGCTGCCCCTTGGCCATCCCCCGGTCCCTG /8)-8/6(98<967<3<<979<<1<<<7<<<<7<< MF:i:18 Aq:i:10 NM:i:3 UQ:i:45 H0:i:0 H1:i:0
+EAS188_4:5:202:326:680 83 seq1 1268 78 35M = 1108 -195 GTAATGATGCCCCTTGGCCATCACCCGGTCCCTGC +33<81<:*<;<;;30;<<<;<<<8<<<<<<<<<< MF:i:18 Aq:i:37 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS192_3:6:216:292:528 99 seq1 1269 99 35M = 1438 204 TAATGATGCCCCTTGGCCATCACCCAGTCCCTGCC <;<;<<<<<<<;<<<<<<<<;;;;:;;:<%<;1;: MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:2:67:1864:477 163 seq1 1270 99 35M = 1465 230 AATGATGCCCCTTGGCCATCACCCAGTCCCTGCCC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:1:35:631:594 83 seq1 1271 99 35M = 1112 -194 ATGATGCCCCTTGGCCATCACCCGGTCCCTGCCCC <<<<4<<<<<.<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS112_34:8:103:812:255 99 seq1 1272 99 35M = 1461 224 TGATGCCCCTTGGCCATCACCCAGTCCCTGCCCCC <<<<<<<<<<<<<<<9<<;<<<39;;<;32:7;7+ MF:i:18 Aq:i:69 NM:i:1 UQ:i:12 H0:i:1 H1:i:0
+EAS188_7:4:259:869:641 99 seq1 1272 99 35M = 1435 198 TGATGCCCCTTGGCCATCACCCAGTCCCTGCCCCA <<<<<<<<<<<<<<<<<<<<<,;<:<<<<<<<<<1 MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:3:316:25:230 83 seq1 1273 99 35M = 1098 -210 GATGCCCCTTGGCCATCACCCGGTCCCTGCCCCAT 8;8;<<;<;;<<<<<;<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS221_1:6:38:1071:155 99 seq1 1274 99 35M = 1465 226 ATGCCCCTTGGCCATCACCCAGTCCCTGCCCCATC <<<<<<<<<<<<<:<<<<<<<<8<<<:<<:;;8:; MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:7:6:585:132 83 seq1 1276 23 36M = 1105 -207 GCCCCTTGACCACCACCCAGTCCCTGCCCCATCTCT :<473$'<+5;7*+<7<&<37<7<<<<7;;7<<:<7 MF:i:18 Aq:i:23 NM:i:2 UQ:i:19 H0:i:0 H1:i:0
+B7_595:6:47:720:789 99 seq1 1278 90 35M = 1455 212 CCCTTGGCCATCACCCGGTCCCGGCCCCTTCTCTT <<72<<<<<<<<;;<7;,0<2;*7<2;<*;;<<64 MF:i:18 Aq:i:25 NM:i:3 UQ:i:44 H0:i:0 H1:i:0
+EAS192_3:6:185:868:496 163 seq1 1278 99 35M = 1442 199 CCCTTGGCCATCACCCAGTCCCTGCCCCATCTCTT <<<<<<<<<<<<;<<<;<<<<<<<<<<<9<<;<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:6:290:146:36 147 seq1 1280 99 35M = 1110 -205 CTTTCCCATCCCCCGGTCCCTGCCCCATCTCTTGT 7;%%%<8-4<(<<<7<<<:<:<<<<<<<<<<<<<< MF:i:18 Aq:i:25 NM:i:4 UQ:i:37 H0:i:0 H1:i:0
+B7_593:5:267:71:603 99 seq1 1281 99 36M = 1446 201 TTGGCCATCACCCAGTCCCTGCCCCATCTCTTGTAA <<<<<<<<<<<<<<<<<<<<<<;<<<<<<<<<<<9; MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:7:183:645:699 147 seq1 1281 86 35M = 1122 -194 GTGGCCCTCCCCCATTCCCTGCCCCATCTCTTGTA &)))2-&420<<<'--<6:6-<7<<<+:7<65<<< MF:i:18 Aq:i:21 NM:i:4 UQ:i:37 H0:i:0 H1:i:0
+EAS1_105:2:179:532:82 147 seq1 1285 99 35M = 1105 -215 CCATCACCCGGTCCCTGCCCCATCTCTTGTAATCT <:96<6<<<<89<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS1_105:3:176:431:647 83 seq1 1285 99 35M = 1112 -208 CCATCACCCAGTCCCTGCCCCATCTCTTGTAATCT <(9(<<<7;<<7<<<<<<<7<<<<<<7<<<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:2:258:266:101 83 seq1 1285 99 35M = 1094 -226 CCATCACCCAGTCCCTGCCCCATCTCTTGTAATCT %==/7&8=======:===6================ MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:6:179:735:569 163 seq1 1286 99 35M = 1461 210 CATCACCCGGTCCCTGCCCCATCTCTTGTAATCTC <<<<<<<<<<<<<<<<<<<<3<<<<<<<<4/<;<< MF:i:18 Aq:i:45 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS188_7:3:200:712:439 163 seq1 1286 99 35M = 1435 184 CGTCACCCGGTCCCTGCCCCATCTCTTGTAATCTC <7<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:29 NM:i:2 UQ:i:49 H0:i:0 H1:i:0
+EAS1_103:5:319:165:698 99 seq1 1287 99 35M = 1485 233 ATCACCCAGTCCCTGCCCCATATCTTGTAATCTCT <<<<<<<<<<<<<<<<<<<3<9<<<<<<<;<<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:24 H0:i:0 H1:i:1
+B7_597:3:53:616:842 83 seq1 1288 99 35M = 1109 -214 TCACCCAGTCCCTGCCCCATCTCTTGTAATCTCTC ;<;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:6:286:753:854 83 seq1 1288 99 35M = 1110 -213 TCACCCAGTCCCTGCCCCATCTCTTGTAATCTCTC ;<2<<<,57:<<9<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:7:14:1256:204 99 seq1 1288 99 35M = 1467 214 TCACCCAGTCCCTGCCCCATCTCTTGTAATCTCTC <<<<<;;;;;;<;;;;;;;<;<;;;;<:-;79697 MF:i:18 Aq:i:64 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:5:289:132:526 99 seq1 1289 99 36M = 1472 219 CACCCGGTCCCTGCCCCATCTCTTGTAATCTCTCTC <<<<<<<<<<<<<<<<<<<<<<<<<<8<<<<<<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS218_1:4:71:832:743 83 seq1 1290 99 35M = 1102 -223 ACCCAGTCCCTGCCCCATCTCTTGTAATCTCTCTC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:3:102:511:946 99 seq1 1291 26 35M = 1461 205 CCCAGTCCCTGCCCCATCTCGGGTAATCTCTCTCC <<9<<;<<<<;<<<<;<<7;%<5<<0<<<)<.<.+ MF:i:18 Aq:i:26 NM:i:2 UQ:i:31 H0:i:0 H1:i:0
+EAS114_39:5:42:1223:1087 99 seq1 1293 99 35M = 1479 221 CAGTCCCTGCCCCATCTCTTGTAATCTCTCTCCTT <<<<<<<<<<<<<5<<<<<<<<;<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:3:75:732:442 147 seq1 1293 99 40M = 1121 -212 CGGTCCCTGCCCCATCTCTTGTAATCTCTCTCCTTTTTGC 7,*&28<61:88<.7<:<<:6<1<85:<:1<5<&::<<&< MF:i:18 Aq:i:60 NM:i:1 UQ:i:11 H0:i:1 H1:i:0
+EAS54_73:3:23:502:103 163 seq1 1294 99 35M = 1486 227 AGTCCCTGCCCCATCTCTTGTAATCTCTCTCCTTT <2<<<<<<<<<<.<<<<<<<:1&:<<<7<<<<<<: MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:7:74:596:137 147 seq1 1294 91 35M = 1119 -210 GGTCCCTGCCCCATCGCTTGTAATCTCTCGCCTTT +40778449779049'+*87489498949%89948 MF:i:18 Aq:i:22 NM:i:3 UQ:i:32 H0:i:0 H1:i:0
+EAS51_66:8:36:688:722 99 seq1 1295 99 35M = 1469 209 GTCCCTGCCCCATCTCTTGTAATCTCTCTCCTTTT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:8:60:182:718 163 seq1 1295 99 35M = 1485 225 GTCCCTGCCCCATCTCTTGTAATCTCTCTCCTTTT <<<<<<<<<<<<<<<<<<<<7<<<<<<<<<;<;<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:4:54:989:654 147 seq1 1296 99 35M = 1108 -223 TCCCTGCCCCATCTCTTGTAATCTCTCTCCTTTTT ,<1<2<<<;9)9<<;<<;<<<4<<<;<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:2:9:203:653 163 seq1 1296 99 35M = 1488 227 TCCCTGCCCCATCTCTTGTAATCTCTCTCCTTTTT <<<<<<<<<<<<<<<<<<<<<<::<9<<<<<;;;< MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:4:322:631:245 163 seq1 1297 99 36M = 1474 213 CCCTGCCCCATCTCTTGTAATCTCTCTCCTTTTTGC <<<<<<<<<<<<<<<<<0<<<<<<<<<<<<<<<<5; MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:6:59:1548:1096 83 seq1 1297 99 35M = 1099 -233 CCCTGCCCCATCTCTTGTAATCTCTCTCCTTTTTG 88888;;88;;;;8;;9;;;<<<<<<<<<<<<<<; MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:2:52:1779:1664 99 seq1 1297 99 35M = 1462 200 CCCTGCCCCATCTCTTGTAATCTCTCTCCTTTTTG <<<<<<<<<<<<<<<<<<71<<<<<<<<<<<<<<% MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:8:218:173:667 99 seq1 1298 99 35M = 1448 185 CCTGCCCCATCTCTTGTAATCTCTCTCCTTTTTGC <<<<<<<<<<<<<<<6<<<<<<<<<<<<<<<<<.< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:6:175:437:950 83 seq1 1298 99 35M = 1126 -207 CCTGCCCCATCTCTTGTAATCTCTCTCCTTTTTGC ;;5:;;9<<:<;<;<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:6:201:195:757 83 seq1 1298 99 35M = 1103 -230 CCTGCCCCATCTCTTGTAATCTCTCTCCTTTTTGC :<':<:<<46<:<;:<;<;<<9<<<<<<<<;<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_4:5:8:377:655 99 seq1 1299 99 35M = 1473 209 CTGCCCCATCTCTTGTAATCTCTCTCCTTTTTGCT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:5:50:950:562 99 seq1 1301 99 35M = 1473 207 GCCCCATCTCTTGTAATCTCTCTCCTTTTTGCTGC <<<<<<<<<<<<<<<&<<8<<<<<<<5<:<+<:+; MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:5:153:543:671 99 seq1 1301 99 34M = 1465 199 GCCCCATCTCTTGTAATCTCTCTCCTTTTTGCTG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<2<<7 MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:2:33:1193:664 163 seq1 1301 99 40M = 1474 213 GCCCCATCTCTTGTAATCTCTCTCCTTTTTTCTGCATCCC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<%:<'<9:::9 MF:i:18 Aq:i:71 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+EAS1_93:1:253:59:242 99 seq1 1302 99 35M = 1478 211 CCCCATCTCTTGTAATCTCTCTCCTTTTTGCTGCA <<<<<<<<<<<<<<<<<<<<<<<<<<<<</<<9;< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:6:52:1455:1212 147 seq1 1304 99 40M = 1153 -191 CCATCTCTTGTAATCTCTCTCCTTTTTGCTGCATCCCTGT 6::4::;4%;9:<79)<:<;<<:4::7<<9<&+71<9;<< MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:2:316:176:543 99 seq1 1305 99 35M = 1469 199 CATCTCTTGTAATCTCTCTCCTTTTTGCTGCATCC ====<=9===<<<=====9====<<=3==,96==9 MF:i:18 Aq:i:62 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:7:50:1339:1154 163 seq1 1305 99 35M = 1481 211 CATCTCTTGTAATCTCTCTCCTTTTTGCTGCATCC ==========<<==============;==7<;<<; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:3:169:292:652 99 seq1 1306 99 35M = 1510 239 ATCTCTTGTAATCTCTCTCCTTTTTGCTGCATCCC <<<<<<<<<<<<<<<<<<<<<<<<<6<<-<<<<8< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:3:11:706:1030 99 seq1 1306 92 35M = 1469 198 ATCTCTTGTAATCTCTCTCATCTTTGCTGCATCCC <<<2<<2<<<<<<<<<<<<0<&<<<+<:2<4<<): MF:i:18 Aq:i:26 NM:i:2 UQ:i:20 H0:i:0 H1:i:0
+EAS221_3:6:70:843:706 99 seq1 1306 99 35M = 1449 178 ATCTCTTGTAATCTCTCTCCTTTTTGCTGCATCCC <<<<<<<<<<<<<<<<<<<<<<<<<5<<5<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:7:174:597:66 83 seq1 1307 99 35M = 1148 -194 TCTCTTGTAATCTCTCTCCTTTTTGCTGCATCCCT 9<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:6:7:1547:1933 163 seq1 1308 99 35M = 1497 224 CTCTTGTAATCTCTCTCCTTTTTGCTGCATCCCTG <<<<<<<<<<<<<<<<<<<<<<<:<<8<<<<<<<< MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:4:30:117:411 163 seq1 1309 99 36M = 1482 209 TCTTGTAATCTCTCTCCTTTTTGCTGCATCCCTGTC <<<<<<<<<<<<<<<<<<<<<<7<<:<<<<<<<<<: MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:6:53:156:845 99 seq1 1311 99 35M = 1487 211 TTGTAATCTCTCTCCTTTTTGCTGCATCCCTGTCT <<<<<<8<<<.<<<<.6<<--<-<<<<<<<6<<<< MF:i:18 Aq:i:56 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:3:90:1403:1635 99 seq1 1311 99 35M = 1480 204 TTGTAATCTCTCTCCTTTTTGCTGCATCCCTGTCT <<;<;<<<<;<;<;;<<<<<9;<.;;<:;99.979 MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:7:67:302:762 147 seq1 1313 99 36M = 1138 -211 GTAATCTCTCTCCTTTTTGCTGCATCCCTGTCTTCC :8;88<;<<<;<<8<<;<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_78:7:270:448:491 99 seq1 1313 99 35M = 1501 223 GTAATCTCTCTCCTTTTTGCTGCATCCCTGTCTTC <<<<<<<<<<<<<<<<<<&<<.<<<<<<<:;;;<; MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:6:82:932:400 99 seq1 1313 97 34M = 1486 208 GTAATCTCTCTCCTCTTCGCTGCATCCCTGTCTT <<<<<<8<1<<<<8+<<&<<<8<<<<<<<+(,/8 MF:i:18 Aq:i:25 NM:i:2 UQ:i:15 H0:i:0 H1:i:0
+EAS54_81:2:128:394:455 83 seq1 1313 99 35M = 1156 -192 GTAATCTCTCTCCTTTTTGCTGCATCCCTGTCTTC ;=;9.=5=;=9====;;================== MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:3:57:735:151 147 seq1 1314 94 35M = 1121 -228 TAAACTCTCACCTTATTGCTGCATCCCTGTCTTCC 07;+79:;<)<<9<+8<:<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:26 NM:i:3 UQ:i:28 H0:i:0 H1:i:0
+EAS114_28:6:51:506:878 163 seq1 1314 99 36M = 1501 223 TAATCTCTCTCCTTTTTGCTGCATCCCTGTCTTCCT <<<<<<<<<<<<<<<<<4<<<<<<<<<<0<<<<<:; MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:2:15:1497:1530 147 seq1 1314 99 35M = 1136 -213 TAATCTCTCTCCTTTTTGCTGCATCCCTGTCTTCC 77778:;;;:;;;;:9;:;;;;;;;;;9;:;;;;; MF:i:18 Aq:i:57 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:3:9:1595:1826 99 seq1 1316 99 35M = 1494 213 ATCTCTCTCCTTTTTGCTGCATCCCTGTCTTCCTC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:3:73:273:488 163 seq1 1318 99 35M = 1512 229 CTCTCTCCTTTTTGCTGCATCCCTGTCTTCCTCTG <<<<<2<88<88<<<8<<1<<<<<<68<<<;<;<* MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:1:199:760:42 163 seq1 1318 24 35M = 1489 206 CTCTCTAATTTTTGCTGCTTCCATGTCTTACTCTG +2&2&2&22222220222&220-222-22-22-22 MF:i:130 Aq:i:24 NM:i:5 UQ:i:51 H0:i:0 H1:i:0
+EAS1_95:7:61:702:720 163 seq1 1320 99 35M = 1500 215 CTCTCCTTTTTGCTGCATCCCTGTCTTCCTCTGTC ==============;=======&=========3:= MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:2:41:576:1016 163 seq1 1320 99 35M = 1503 218 CTCTCCTTTTTGCTGCATCCCTGTCTTCCTCTGTC <<<<<<<<<<<<<<;<<<;<<<<<<<<<<<4<::< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:1:115:683:296 99 seq1 1320 99 35M = 1514 229 CTCTCCTTTTTGCTGCATCCCTGTCTTCCTCTGTC <<<<<<<<<<<8<<<<<<<<<<6<<<<3<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:8:63:1265:820 99 seq1 1320 99 35M = 1480 195 CTCTCCTTTTTGCTGCATCCCTGTCTTCCTCTGTC <<<<<<<<<<27<<<<<<<<<<<<<<<<<<<<03< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:7:92:288:1354 163 seq1 1321 99 40M = 1480 199 TCTCCTTTTTGCTGCATCCCTGTCTTCCTCTGTCTTGATT <<<<<<:<<<<<<<<<<<8<<:<<<<;;<8<<<8<:8+:: MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:1:316:949:122 147 seq1 1321 99 35M = 1156 -200 TCTCCTTTTTGCTGCATCCCTGTCTTCCTCTGTCT 59899<<<<;;<<;<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:4:37:1626:862 163 seq1 1321 99 35M = 1489 203 TCTCCTTTTTGCTGCATCCCTGTCTTCCTCTGTCT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:5:147:479:41 83 seq1 1322 99 35M = 1139 -218 CTCCTTTTTGCTGCATCCCTGTCTTCCTCTGTCTT ;:;:;<::<:<<<<<:<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:3:73:936:1509 163 seq1 1322 99 40M = 1502 220 CTCCTTTTTGCTGCATCCCTGTCTTCCTCTGTCTTTATTT <<<<<<<<<7<<7<<<<<<<;<<<<<<<<<:<:<;%8::: MF:i:18 Aq:i:75 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+EAS51_62:6:50:542:881 83 seq1 1324 99 35M = 1132 -227 CCTTTTTGCTGCATCCCTGTCTTCCTCTGTCTTGA +2<<<;<3;29<6<5;<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:63 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:6:71:85:629 163 seq1 1324 99 35M = 1484 195 CCTTTTTGCTGCATCCCTGTCTTCCTCTGTCTTGA <<<<<<<<<<9<<<<<<<<<<<<<<<<<5<9<<+6 MF:i:18 Aq:i:63 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:6:191:948:257 163 seq1 1325 99 35M = 1493 203 CTTTTTGCTGCATCCCTGTCTTCCTCTGTCTTGAT :<<<<<<<<9<:<<<<<<:<<<<;<<<<8<<<<7< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:1:249:986:224 99 seq1 1325 99 35M = 1499 209 CTTTTTGCTGCATCCCTGTCTTCCTCTGTCTTGAT =========5======7878===98==7=9==.-= MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:5:6:1067:91 163 seq1 1325 99 35M = 1483 193 CTTTTTGCTGCATCCCTGTCTTCCTCTGTCTTGAT <<<<<<<<<<<<<<<<<<<<<<<<<<<:<<<:8<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:4:216:650:516 147 seq1 1326 99 36M = 1164 -198 TTTTTGCTGCATCCCTGTCTTCCTCTGTCTTGATTT ;9;<<<<<<;<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:6:18:376:416 163 seq1 1326 99 35M = 1510 219 TTTTTGCTGCATCCCTGTCTTCCTCTGTCTTGTTT <<<<<<<<<<<<<<<<;<<<<<<<<<<<<<;:(<< MF:i:18 Aq:i:70 NM:i:1 UQ:i:7 H0:i:1 H1:i:0
+EAS114_28:5:209:778:588 163 seq1 1326 99 36M = 1514 224 TTTTTGCTGCATCCCTGTCTTCCTCTGTCTTGATTT <<<<<<<<;<<<<<<<<<;<<<;<8<8<<<<;7;;; MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:4:36:1402:1709 83 seq1 1326 99 35M = 1168 -193 TTTTTGCTGCATCCCTGTCTTCCTCTGTCTTGATT ;;;:<<<;<<<<<<<<<<<<<<<<<<<<<<;<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:4:40:352:151 147 seq1 1327 99 35M = 1137 -225 TTTTGCTGCATCCCTGTCTTCCTCTGTCTTGATTT ;=;;5=:-=9=====;;================== MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:5:139:331:63 99 seq1 1327 99 35M = 1486 194 TTTTGCTGCATCCCTGTCTTCCTCTGTCTTGATTT ====================<<============= MF:i:18 Aq:i:79 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:2:11:1274:1230 163 seq1 1327 99 35M = 1507 215 TTTTGCTGCATCCCTGTCTTCCTCTGTCTTGATTT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<7;;;; MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:5:36:678:316 99 seq1 1328 99 35M = 1500 207 TTTGCTGCATCCCTGTCTTCCTCTGTCTTGATTTA <<<<<<<<<<<<<<;<<<<<<<<<;<<<<,2<<<) MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:3:102:825:507 163 seq1 1330 99 35M = 1501 206 TGCTGCATCCCTGTCTTCCTCTGTCTTGATTTACT <<<<<<<<<<<<<<<<<<<<<<;<<<<<<<<<;;< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:5:171:343:758 99 seq1 1331 99 36M = 1494 199 GCTGCATCCCTGTCTTCCTCTGTCTTGATTTACTTG <<<<<<<<<<<<<<<<<<<<<;<<<<59<<<9;<<3 MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:6:85:1224:625 99 seq1 1331 99 35M = 1532 236 GCTGCATCCCTGTCTTCCTCTGTCTTGATTTCCTT <<<<<<<<<;<<;<<7<<:<<7.<<<:&7<<.<;< MF:i:18 Aq:i:70 NM:i:1 UQ:i:13 H0:i:1 H1:i:0
+EAS188_7:5:308:354:124 99 seq1 1331 99 35M = 1507 211 GCTGCATCCCTGTCTTCCTCTGTCTTGATTTACTT <<<<<<<<<<<<<<<<<<<<<;<<<<;<<<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_53:7:22:22:934 163 seq1 1332 99 35M = 1500 203 CTGCATCCCTGTCTTCCTCTGTCTTGATTTACTTG <<<<<<<<<<<6<<<;<<<;84;<<48;<;6;<;) MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:4:71:707:568 163 seq1 1332 99 35M = 1518 221 CTGCATCCCTGTCTTCCTCTGTCTTGATTTACTTG <<<<<<<<<<<<<<<<<<<<<<<<<<9<<<<;<;< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:7:123:610:472 99 seq1 1333 99 35M = 1504 206 TGCATCCCTGTCTTCCTCTGTCTTGATTTACTTGT <<<<<<<<<<:<<<<<<<<<<<<<+:<<<<<<<<; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:1:20:635:509 83 seq1 1333 99 35M = 1167 -201 TGCATCCCTGTCTTCCTCTGTCTTGATTTACTTGT 50<59<<9<9<<<<<<<<<<<<<<<<<<<6<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:1:92:213:217 99 seq1 1333 99 35M = 1515 217 TGCATCCCTGTCTTCCTCTGTCTTGATTTACTTGT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<4< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:3:47:471:858 163 seq1 1335 99 35M = 1487 187 CATCCCTGTCTTCCTCTGTCTTGATTTACTTGTTG <<;<<<<<<<<9<<<4;;<<<<;<<<<<.<<4;<4 MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:7:90:406:631 163 seq1 1335 99 35M = 1525 225 CATCCCTGTCTTCCTCTGTCTTGATTTACTTGTTG <<<<<<<<<<<<<<<<<:<<<<:;<<<<;<<8;<8 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:3:81:1723:1820 99 seq1 1335 99 35M = 1524 224 CATCCCTGTCTTCCTCTGTCTTGATTTACTTGTTG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<:<<: MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:3:182:23:585 147 seq1 1336 99 35M = 1163 -208 ATCCCTGTCTTCCTCTGTCTTGATTTACTTGTTGT 9:<<<<<<<<<<<<<<<9<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:8:150:508:757 163 seq1 1336 99 35M = 1483 182 ATCCCTGTCTTCCTCTGTCTTGATTTACTTGTTGT <<<<<<<<<<<<<<<<<<<<<<:<<<<<<<8<<,< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:1:261:504:780 163 seq1 1337 99 35M = 1501 199 TCCCTGTCTTCCTCTGTCTTGATTTACTTGTTGTT <<<<<<<<<<<<<<<<<<<</2<<<9<<<5<<,<< MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:6:324:515:230 163 seq1 1339 99 35M = 1512 207 CCTGTCTTCCTCTGTCTTGATTTACTTGTTGTTGG <<;<<<<<<<<<<<<<<<:<<<<8<<<4<<4<<34 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:7:72:916:763 83 seq1 1340 99 35M = 1142 -233 CTGTCTTCCTCTGTCTTGATTTACTTGTTGTTGGT <;;:<<<<<<<;<<;;;<<<<<<<<<;;<;<<<<< MF:i:18 Aq:i:63 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:3:194:168:684 99 seq1 1340 99 36M = 1512 208 CTGTCTTCCTCTGTCTTGATTTACTTGTTGTTGGTT <<<<<<<<<<<<<<<<<<<<<<<<<<7<<.<<6-<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_78:7:113:43:634 163 seq1 1340 99 35M = 1500 195 CTGTCTTCCTCTGTCTTGATTTACTTGTTGTTTTT <<<<<<<<<<<<.<<<<<<<<<<<<</<<2;;%%; MF:i:18 Aq:i:45 NM:i:2 UQ:i:8 H0:i:1 H1:i:0
+EAS54_71:5:16:434:204 163 seq1 1340 99 35M = 1522 216 CTGTCTTCCTCTGTCTTGATTTACTTGTTGTTGGT =================;)===8===:==7;<+%; MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:7:246:205:734 73 seq1 1340 65 35M = 1340 0 CTGTCTTCCTCTGTCTTGATTTACTTGTTGTTGGT <<<4<<6666<<6<:<<<3<<<:'<<:<<<<;6<+ MF:i:64 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:7:246:205:734 133 seq1 1340 0 * = 1340 0 CTCCAGGGAAGTTATCTCTCATCTAGANNNNNTTG <<<<<<:/<<<,6'</7;<-+9<<;<7!!!!!8<, MF:i:192
+EAS54_65:3:102:884:63 163 seq1 1341 99 35M = 1481 175 TGTCTTCCTCTGTCTTGATTTCCTTGTTGTTGGTT <<<<<<<<<<<<<<<<<3<<<%<<<9<<9<<7+;< MF:i:18 Aq:i:43 NM:i:1 UQ:i:4 H0:i:0 H1:i:1
+EAS51_64:3:67:782:132 99 seq1 1343 99 35M = 1498 190 TCTTCCTCTGTCTTGATTTACTTGTTGTTGGTTTT <<<<<<<<<<<<<<<<<<<<<<<<<<:<<;4<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:5:70:348:972 163 seq1 1343 99 35M = 1528 220 TCTTCCTCTGTCTTGATTTACTTGTTGTTGGTTTT <.<<3+.7<<7<<:78:<<7<:<7:<3<<7.:::< MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_4:1:9:206:901 99 seq1 1344 99 35M = 1517 208 CTTCCTCTGTCTTGATTTACTTGTTGTTGGTTTTC <<<<<<<<<<<<<<<<<<<<<<5<<5<<%%:<<<7 MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:4:21:443:404 99 seq1 1345 99 35M = 1529 219 TTCCTCTGTCTTGATTTACTTGTTGTTGGTTTTCT <<<<<<<<<<<<<<<<<<<<<7<<;<<;+<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:1:148:286:316 163 seq1 1347 99 35M = 1531 219 CCTCTGTCTTGATTTACTTGTTGTTGGTTTTCTGT <<<<<<<<+<<7<<<<<<<6<<<6<142<<<6<2< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:6:77:48:860 99 seq1 1348 99 35M = 1521 208 CTCTGTCTTGATTTACTTGTTGTTTGTTTTCTGTT =========;===========9==*;5=;=;=,7= MF:i:18 Aq:i:45 NM:i:1 UQ:i:9 H0:i:0 H1:i:1
+EAS51_64:6:124:128:489 147 seq1 1348 99 35M = 1142 -241 CTCTGTCTTGATTTACTTGTTGTTGGTTTTCTGTT ::55<<<8<<<6<<;<<<<<<<<7<<<<<<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:6:213:54:878 137 seq1 1348 99 35M * 0 0 CTCTGTCTTGATTTACTTGTTGTTGGTTTTTTGTT <<<<<<<<<;<<<<<<<<:<<:<<++<<<<%<%<< MF:i:18 Aq:i:69 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+EAS218_1:4:73:42:1038 163 seq1 1349 99 35M = 1513 199 TCTGTCTTGATTTACTTGTTGTTGGTTTTCTGTTT <<<<<<<<<<<<<<<<<<<<<<<:<<<<<.<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:3:320:505:814 99 seq1 1350 99 35M = 1515 200 CTGTCTTGATTTACTTGTTGTTGGTTTTCTTTTTC <<<<<<<<<<<<<<<<;<<8<<76<<<<;<&<<<7 MF:i:18 Aq:i:72 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+B7_593:2:68:692:347 83 seq1 1351 99 36M = 1176 -211 TGTCTTGATTTACTTGTTGTTGGTTTTCTGTTTCTT 9<;;;;<<<:<;<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:64 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:4:252:428:683 137 seq1 1351 99 35M * 0 0 TGTCTTGATTTACTTGTTGTTGGTTTTCTGTTTCT <<<<<<;<<<<<<<<7<<7<<&+<<<<:<&<<<4< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:4:73:182:444 99 seq1 1354 99 34M = 1533 214 CTTGATTTACTTGTTGTTGGTTTTCTGTTTCTTT <<<<;;<<<<<<<<<<<<;<;<<<<<:<<<<<7< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:2:63:267:545 163 seq1 1354 99 35M = 1524 205 CTTGATTTACTTGTTGTTGGTTTTCTGTTTCTTTG <<<<<<<<<<<<:<<<<<::<<<<<<.<<<;;;;5 MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:6:177:562:806 99 seq1 1356 99 35M = 1515 194 TGATTTACTTGTTGTTGGTTTTCTGTTTCTTTTTT <;<29<99<<;<<<9<20<9<<5;;<<<<<<<+.< MF:i:18 Aq:i:35 NM:i:1 UQ:i:10 H0:i:1 H1:i:0
+EAS51_62:7:157:784:936 83 seq1 1356 99 35M = 1169 -222 TGATTTACTTGTTGTTGGTTTTCTGTTTCTTTGTT <:<<<<8<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:1:209:345:87 163 seq1 1360 99 35M = 1513 188 TTACTTGTTGTTGGTTTTCTGTTTCTTTTTTTGAT <<<<<<<<<<<<<<<<<<<<;<<<-<<<6<<<+8< MF:i:18 Aq:i:71 NM:i:1 UQ:i:21 H0:i:1 H1:i:0
+EAS114_45:1:33:1407:94 83 seq1 1360 99 35M = 1172 -223 TTACTTGTTGTTGGTTTTCTGTTTCTTTGTTTGAT 77477;4;;;;;44;;;;;;7;;;;;;;9;;;;;< MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:8:2:434:715 163 seq1 1363 99 35M = 1527 199 CTTGTTGTTGGTTTTCTGTTTCTTTGTTTGATTTT <<<<<<<<<<<<<<<<<;<<<<<<<0<<<68<<<+ MF:i:18 Aq:i:71 NM:i:1 UQ:i:10 H0:i:1 H1:i:0
+EAS54_65:4:137:319:642 137 seq1 1363 99 35M * 0 0 CTTGTTGTTGGTTTTCTGTTTCTTTTTTTGATTTT <<<<<<<<<27<<<<<<<<<<<<<<&;<<&3;;<% MF:i:18 Aq:i:41 NM:i:2 UQ:i:9 H0:i:0 H1:i:1
+B7_610:3:148:340:479 147 seq1 1364 99 35M = 1190 -209 TTGTTGTTGGTTTTCTGTTTCTTTGTTTGATTTGG <<;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:2:329:458:365 147 seq1 1364 99 35M = 1186 -213 TTGTTGTTGGTTTTCTGTTTCTTTGTTTGATTTGG ====:==9========>==7>==9>=7=>=>>=>> MF:i:18 Aq:i:78 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:4:91:267:655 147 seq1 1365 99 35M = 1204 -196 TGTTGTTGGTTTTCTGTTTCTTTGTTTGATTTGGT ;,:;5:<6:<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:2:91:856:504 99 seq1 1366 99 35M = 1520 189 GTTGTTGGTTTTCTGTTTCTTTGTTTGATTTGGTT <<<<<<<<<<<<<<7<<<<<<<7<<<&;<<<&&<& MF:i:18 Aq:i:68 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS1_108:2:170:326:433 99 seq1 1367 99 35M = 1535 203 TTGTTGGTTTTCTGTTTCTTTGTTTGATTTGGTGG =====<=9===:=<:==2=======2:===9==/5 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:6:132:717:233 99 seq1 1368 99 35M = 1529 196 TGTTGGTTTTCTGTTTCTTTGTTTGATTTGGTGGA <<<<<<<<<<<<;<<<<<<<<<<<7<<<<&-<4<1 MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:1:14:420:712 99 seq1 1368 99 40M = 1525 197 TGTTGGTTTTCTGTTTCTTTGTTTGATTTTTTTGAAGACA <<<<<<<<<<<<;<<<<<<<;<<<-;<<<&,<&*8111:6 MF:i:18 Aq:i:66 NM:i:3 UQ:i:21 H0:i:1 H1:i:0
+EAS114_39:4:43:1047:1626 163 seq1 1369 99 35M = 1523 189 GTTGGTTTTCTGTTTCTTTGTTTGATTTGGTGGAA <<<<<<<<<<<<<<<<<<<:<<<:<<<<:+;-4:( MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:2:20:413:1334 147 seq1 1370 99 35M = 1215 -190 TTGGTTTTCTGTTTCTTTGTTTGATTTGGTGGAAG 88878777;:;:1:;9;;;6;;;6;9;;;;;296; MF:i:18 Aq:i:60 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:5:154:669:853 83 seq1 1371 99 35M = 1193 -213 TGGTTTTCTGTTTCTTTGTTTGATTTGGTGGAAGA <::<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:7:117:857:942 99 seq1 1372 99 35M = 1527 190 GGTTTTCTGTTTCTTTGTTTGATTTGGTGGAAGAC <<<<<<<<<<<<<<<<<<<<<<<<<:6<;;7;9<; MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:6:145:144:796 147 seq1 1372 99 35M = 1181 -226 GGTTTTCTGTTTCTTTGTTTGATTTGGTGGAAGAC ;<<<;<<<<<<<<<;<<<;<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:6:88:162:587 147 seq1 1372 99 35M = 1189 -218 GGTTTTCTGTTTCTTTGTTTGATTTGGTGGAAGAC 386;;388-<8;<;68<<;;<;<6<<<8<<<<<<< MF:i:18 Aq:i:63 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:8:73:108:1621 99 seq1 1373 99 35M = 1532 194 GTTTTCTGTTTCTTTGTTTGATTTGGTGGAAGACA <<<<<<<<71<<<<<<<<<+<<<<70:0<9<<61< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:6:127:153:861 147 seq1 1374 99 35M = 1202 -207 TTTTCTGTTTCTTTGTTTGATTTGGTGGAAGACAT :;:6;9<<1;<<95<<<9<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:2:152:765:744 163 seq1 1374 99 35M = 1534 195 TTTTCTGTTTCTTTGTTTGATTTGGTGGAAGACAT <<<<<<<<<<<<<<<<<<:<<<<<<<<&<7293<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:3:313:827:992 147 seq1 1379 99 35M = 1197 -217 TGTTTCTTTGTTTGATTTGGTGGAAGACATAATCC '187:1'<75<.*<<:5<..<<*<<917<<7<<17 MF:i:18 Aq:i:57 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:3:7:268:263 121 seq1 1381 22 35M = 1381 0 TTGCGTTATTTGAGTTGGTGGAAGACATAATCCCA ',)*&2<$7+<<<'<-<7<<<<<<<7<<</4/;<< MF:i:64 Aq:i:0 NM:i:4 UQ:i:22 H0:i:0 H1:i:0
+EAS51_64:3:7:268:263 181 seq1 1381 0 * = 1381 0 TCGTACAGAAGTTTAATGGAGCCTTGGGACCTTAC !!66'&+/&'8+2''1+'611'&6&+/&+.&+1'& MF:i:192
+EAS139_19:1:47:352:1492 147 seq1 1385 99 40M = 1205 -220 TTTGTTTTGTATGGTGGAAGACATAATCCCACGCTTCCTA +7+/7+/%%1'6+3++1;:</<<5<)27<<9<)9<<9<7< MF:i:18 Aq:i:53 NM:i:3 UQ:i:14 H0:i:1 H1:i:0
+EAS139_11:5:61:38:1182 83 seq1 1388 99 35M = 1205 -218 GTTTGATTTGGTGGAAGACATAATCCCACGCTTCC 9:;<<<<;<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_61:7:64:37:257 83 seq1 1389 99 35M = 1215 -209 TTTGATTTGGTGGAAGACATAATCCCACGCTTCCT ;47<<47+9<4<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:7:266:556:252 147 seq1 1392 99 35M = 1224 -203 GATTTGGTGGAAGACATAATCCCACGCTTCCTATG .8558<72<(<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:4:321:271:138 147 seq1 1394 99 35M = 1193 -236 TTTGGTGGAAGACATAATCCCACGCTTCCTATGGA 261:5969==9=:=<==<================= MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:2:19:752:816 147 seq1 1394 99 35M = 1212 -217 TTTGGTGGAAGACATAATCCCACGCTTCCTATGGA +<<+<--/<<<<4<2<<<<45<<<:<<<<<<+<<< MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:4:306:388:342 83 seq1 1398 99 35M = 1211 -222 GGGGAAGACATAATCCCACGCTTCCTATGGAAAGG 9/<9;<<<;<;<<7<<<7<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:1 UQ:i:14 H0:i:1 H1:i:0
+EAS114_39:1:71:636:533 147 seq1 1398 99 35M = 1232 -201 GTGGAAGACATAATCCCACGCTTCCTATGGAAAGG ,51(<<8<:<<<<<<<;<;<<<<<<<<<<<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:5:131:779:345 83 seq1 1399 99 35M = 1237 -197 TGGAAGACATAATCCCACGCTTCCTATGGAAAGGT <<7<<<<<<<<:<<<<<<<<<<<<<;<<<<<<;<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:4:68:64:783 83 seq1 1402 99 35M = 1214 -223 AAGACATAATCCCACGCTTCCTATGGAAAGGTTGT <<9<8<6<<<<<;<<<<;<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:1:16:823:343 147 seq1 1403 99 35M = 1223 -215 AGACATAACCCCACGCTTCCTATGGAAAGGTTGTT <<<:<<<;+;<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:1 UQ:i:10 H0:i:0 H1:i:1
+EAS219_FC30151:5:72:1426:1883 147 seq1 1405 99 35M = 1226 -214 ACATAATCCCACGCTTCCTATGGAAAGGTTGTTGG ;9<;<;0<;<;<<<<;<<<;:<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:7:166:979:531 83 seq1 1410 99 35M = 1245 -200 ATCCCACGCTTCCTATGGAAAGGTTGTTGGGAGAT 81<<<3<*<<:<<<<<<<8<<<<<<<<<<<<:<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:8:63:930:152 83 seq1 1410 99 35M = 1243 -202 ATCCCACGCTTCCTATGGAAAGGTTGTTGGGAGAT ;:4:8;:::;=:8;=;========;=:======== MF:i:18 Aq:i:59 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:3:137:895:681 147 seq1 1418 99 35M = 1232 -221 CTTCCTATGGAAAGGTTGTTGGGAGATTTTTAATG 4;5+6;<<<<<<<<<9;<4<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:7:87:89:696 147 seq1 1419 99 36M = 1245 -210 TTCCTATGGAAAGGTTGTTGGGAGATTTTTAATGAT ;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:2:104:744:280 147 seq1 1421 64 36M = 1262 -195 CATATGGAAAGGTTGTTGGGATTTTTTTAATGATTC '&+74*0<'/.47:8<<<<;<7''6/1<<<.<<68< MF:i:18 Aq:i:21 NM:i:3 UQ:i:33 H0:i:0 H1:i:0
+EAS56_57:2:259:42:969 83 seq1 1426 99 35M = 1265 -196 GGAAAGGTTGTTGGGAGATTTTTAATGATTCCTCA <<<6<<<<<<-<<<<<<;<<;<6<<<<<<<;<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:2:18:1498:1475 83 seq1 1427 99 35M = 1260 -202 GAAAGGTTGTTGGGAGATTTTTAATGATTCCTCAA :<4<*7<<<<<<<:<<:<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:1:328:614:638 147 seq1 1428 99 35M = 1243 -220 AAAGGTTGTTGGGAGATTTTTAATGATTCCTCAAT <<;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:8:159:71:155 147 seq1 1428 99 35M = 1237 -226 AAAGGTTGTTGGGAGATTTTTAATGATTCCTCGAT 5;;9<<:<;:<<<<7<<7;<3<<<:<<<;<<<<<; MF:i:18 Aq:i:45 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS114_39:1:73:302:1574 147 seq1 1429 99 35M = 1233 -231 AAGGTTGTTGGGAGATTTTTAATGATTCCTCAATG 7<88;;<;;<;;<<<<<<<<<<<<<<<<<<<<<1< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:3:200:712:439 83 seq1 1435 99 35M = 1286 -184 GTTGGGAGATTTTTAATGATTCCTCAATGTTAAAA <;<<<<<<<<<<<<<<<<<<<9<<<<<<<<<<<<7 MF:i:18 Aq:i:29 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:4:259:869:641 147 seq1 1435 99 35M = 1272 -198 GTTGGGAGATTTTTAATGATTCCTCAATGTTAAAA 99=:=9=99<=========<=<<============ MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:4:74:570:695 83 seq1 1436 99 35M = 1240 -231 TTGGGAGATTTTTAATGATTCCTCAATGTTAAAAT .;:8<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:8:58:369:244 83 seq1 1436 99 35M = 1266 -205 TTGGGAGATTTTTAATGATTCCTCAATGTTAAAAT <<<<<<<<<<<<<<<<<<<<;<<;<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:6:216:292:528 147 seq1 1438 99 35M = 1269 -204 GGGAGATTTTTAATGATTCCTCAATGTTAAAATGT ;:;;8<<<<<<<<<<<<<:<<;<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:6:185:868:496 83 seq1 1442 99 35M = 1278 -199 GATTTTTAATGATTCCTCAATGTTAAAATGTCTAT :;;<;;<<<<<<<<;4<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:1:277:194:143 147 seq1 1444 99 35M = 1262 -217 TTTTTAATGATTCCTCAATGTTAAAATGTCTATTT ;<<;<<<;8;<0<7<<<<<<<<<<<<7<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:5:267:71:603 147 seq1 1446 99 36M = 1281 -201 TTTAATGATTCCTCAATGTTAAAATGTCTATTTTTG 9;;<;<<<;;<<<<<<<<<<<<<<<<<<<<<<<<;< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:8:218:173:667 147 seq1 1448 99 35M = 1298 -185 TAATGATTCCTCAATGTTAAAATGTCTATTTTTGT <<<<<<;<<;<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:6:70:843:706 147 seq1 1449 99 35M = 1306 -178 AATGATTCCTCAATGTTAAAATGTCTATTTTTGTC <<<<<<<<;<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:6:47:720:789 147 seq1 1455 90 35M = 1278 -212 TCCTCAATGTTAAAATGTCTATTTTTGTCTTGACA /)040<.878<<<<;8<;<9<9;<<<<<<<<<<93 MF:i:18 Aq:i:25 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:3:102:511:946 147 seq1 1461 26 35M = 1291 -205 ATGTAAAAGTGACTGTTATTGTCTTGACACCCAAC <%-4:6<:/&46;/*;<*84<0<'<&*<2<<<<<< MF:i:130 Aq:i:26 NM:i:5 UQ:i:78 H0:i:0 H1:i:0
+EAS112_34:8:103:812:255 147 seq1 1461 99 35M = 1272 -224 ATGTTAAAATGTCTATTTTTGTCTTGACACCCAAC 7:777:7<<::7<7<7<<:7<7<:<<<<<<<<<7< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:6:179:735:569 83 seq1 1461 99 35M = 1286 -210 ATGTTAAAATGTCTATTTTTGTCTTGACACCCAAC <5<3:<<<<5;8<<<55;<:</:<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:2:52:1779:1664 147 seq1 1462 99 35M = 1297 -200 TGTTAAAATGTCTATTTTTGTCTTGACACCCAACT 6;;:;<<<:<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:5:153:543:671 147 seq1 1465 99 35M = 1301 -199 TAAAATGTCTATTTTTGTCTTGACACCCAACTAAT ;;;;;=;==================;========= MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:6:38:1071:155 147 seq1 1465 99 35M = 1274 -226 TAAAATGTCTATTTTTGTCTTGACACCCAACTAAT <<62<<<<<<3<<<<</<<<<<<<%<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:2:67:1864:477 83 seq1 1465 99 35M = 1270 -230 TAAAATGTCTATTTTTGTCTTGACACCCAACTAAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:7:14:1256:204 147 seq1 1467 99 35M = 1288 -214 AAATGTCTATTTTTGTCTTGACACCCAACTAATAT 66777:;;37;;:;;0;:;;;;):;;:7;;;;;;; MF:i:18 Aq:i:64 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:2:316:176:543 147 seq1 1469 99 35M = 1305 -199 ATGTCTATTTTTGTCTTGACACCCAACTAATATTT <<)/3<<<&<*<<0<<8<<82</5<<<<<88<<<< MF:i:18 Aq:i:62 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:8:36:688:722 147 seq1 1469 99 35M = 1295 -209 ATGTCTATTTTTGTCTTGACACCCAACTAATATTT <;;<<<<<<<<<<<<<<<<:<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:3:11:706:1030 147 seq1 1469 92 35M = 1306 -198 ATGTCTATTTTTGTCTTGACACCCAACTAATATTT +<5069+9<<<<+<;<<<<;<<77<7<<;<<;<<< MF:i:18 Aq:i:26 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:5:289:132:526 147 seq1 1472 99 36M = 1289 -219 TCTATTTTTGTCTTGACACCCAACTAATATTTGTCT ;<<<<<<<<<<<<<<<<<<<:<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:5:50:950:562 147 seq1 1473 99 35M = 1301 -207 CTATTTTTGTCTTGACACCCTACTAATATTTGTCT <<3<<<8<;<<<<<<+<<8<&<<<<7<<<<<<<<< MF:i:18 Aq:i:43 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+EAS188_4:5:8:377:655 147 seq1 1473 99 35M = 1299 -209 CTATTTTTGTCTTGACACCCAACTAATATTTGTCT ;<8;;:<;<<:<;<<<<<<<<<<<<<<<<<<<<<; MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:4:322:631:245 83 seq1 1474 99 36M = 1297 -213 TATTTTTGTCTTGACACCCAACTAATATTTGTCTGA <<<<<<<<<<<<<<<<;<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:2:33:1193:664 83 seq1 1474 99 40M = 1301 -213 TATTTTTGTCTTGACACCCAACTAATATTTGTCTGAGCAA ;;;;;;<;;-9<<<:</+9<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:1:253:59:242 147 seq1 1478 99 35M = 1302 -211 TTTGTCTTGACACCCAACTAATATTTGTCTGAGCA <<<:<;<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:5:42:1223:1087 147 seq1 1479 99 35M = 1293 -221 TTGTCTTGACACCCAACTAATATTTGTCTGAGCAA ;:<<<:<7<<<;;<<<<<<<<<<;<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:3:90:1403:1635 147 seq1 1480 99 35M = 1311 -204 TGTCTTGACACCCAACTAATATTTGTCTGAGCAAA 86878;;;8;788;;;;;;;;;;;;;8;5;;;;;; MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:7:92:288:1354 83 seq1 1480 99 40M = 1321 -199 TGTCTTGACACCCAACTAATATTTGTCTGAGCAAAACAGT ::::;;;<<<<9;<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:8:63:1265:820 147 seq1 1480 99 35M = 1320 -195 TGTCTTGACACCCAACTAATATTTGTCTGAGCAAA <<<<<<3<<1<<<<<<<7<<<<<<<<<<<<<<<+< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:3:102:884:63 83 seq1 1481 99 35M = 1341 -175 GTCTTGACACCCAACTAATATTTGTCTGAGCAAAA <;7;;<<8<;8;<<<8<<<<<<8<<<8;<<<<<<< MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:7:50:1339:1154 83 seq1 1481 99 35M = 1305 -211 GTCTTGACACCCAACTAATATTTGTCTGAGCAAAA 7;7;8;<5<:86<<;<<<<<<<<<<;<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:4:30:117:411 83 seq1 1482 99 36M = 1309 -209 TCTTGACACCCAACTAATATTTGTCTGAGCAAAACA ;88<<<<<:<7<<;<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:8:150:508:757 83 seq1 1483 99 35M = 1336 -182 CTTGACACCCAACTAATATTTGTCTGAGCAAAACA 6;;;<8<6;8<<8<<<<<;<<<<;<<<<;<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:5:6:1067:91 83 seq1 1483 99 35M = 1325 -193 CTTGACACCCAACTAATATTTGTCTGAGCAAAACA 3<;<<:;9;<<7;;<;<<<;<<<;<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:6:71:85:629 83 seq1 1484 99 35M = 1324 -195 TTGACACCCAACTAATATTTGTCTGAGCAAAACAG ,,1<1<7&%<9+:<<9<<9<<<<<<<<5<<<<<<< MF:i:18 Aq:i:63 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:5:319:165:698 147 seq1 1485 99 35M = 1287 -233 TGACACCCAACTAATATTTGTCTGAGCAAAACAGT ;5;2;<:;<<:<<<<<<<<<;:;<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:8:60:182:718 83 seq1 1485 99 35M = 1295 -225 TGACACCCAACTAATATTTGTCTGAGCAAAACAGT <<<:<<;<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:6:82:932:400 147 seq1 1486 97 35M = 1313 -208 GACACCCAACTAATATTTGTCTGAGCAAAACAGTC <<;<<72<<7<<<<<<<<<<;<<<+7<<<<<<<<< MF:i:18 Aq:i:25 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:3:23:502:103 83 seq1 1486 99 35M = 1294 -227 GACACCCAACTAATATTTGTCTGAGCAAAACAGTC 4:386:6<:::<:<:4:+<::4<<<6<<<<<<<66 MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:5:139:331:63 147 seq1 1486 99 35M = 1327 -194 GACACCCAACTAATATTTGTCTGAGCAAAACAGTC 7===================:=:============ MF:i:18 Aq:i:79 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:6:53:156:845 147 seq1 1487 99 35M = 1311 -211 ACACCCAACTAATATTTGTCTGAGCAAAACAGTCT 171(*00,0;;&;7=77=;5;;(;1:=5======= MF:i:18 Aq:i:56 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:3:47:471:858 83 seq1 1487 99 35M = 1335 -187 ACACCCAACTAATATTTGTCTGAGCAAAACAGTCT /;9<<63<<<<3<;<<<<<<<<<<<<<<<<<<<9< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:2:9:203:653 83 seq1 1488 99 35M = 1296 -227 CACCCAACTAATATTTGTCTGAGCAAAACAGTCTA 37))&<8<<<<<7<4<;<777<<:<<<<<<<<;<< MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:1:199:760:42 83 seq1 1489 24 35M = 1318 -206 ACCCAATTAATATTTTTCTTAGCAAAACAGTCTAG 58*5.<+<<<<,4<<**<90**9<<<<<<4<<<<< MF:i:18 Aq:i:24 NM:i:3 UQ:i:34 H0:i:0 H1:i:0
+EAS218_1:4:37:1626:862 83 seq1 1489 99 35M = 1321 -203 ACCCAACTAATATTTGTCTGAGCAAAACAGTCTAG :663<<3<<<<<<<<<<:<<<<7<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:6:191:948:257 83 seq1 1493 99 35M = 1325 -203 AACTAATATTTGTCTGAGCAAAACAGTCTAGATGA :;;;;<<<<<<5<5<<<<<<<<7<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:5:171:343:758 147 seq1 1494 99 36M = 1331 -199 ACTAATATTTGTCTGAGCAAAACAGTCTAGATGAGA :+;;<<<<<;<;:<<<;;<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:3:9:1595:1826 147 seq1 1494 99 35M = 1316 -213 ACTAATATTTGTCTGAGCAAAACAGTCTAGATGAG ;76;;6:9<9<963;<<7<<<<<<<;<;<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:6:7:1547:1933 83 seq1 1497 99 35M = 1308 -224 AATATTTGACTGAGCAAAACAGTCTAGATGAGAGA <<<<<<<<-<<<<<:<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:12 H0:i:0 H1:i:1
+EAS51_64:3:67:782:132 147 seq1 1498 99 35M = 1343 -190 ATATTTGTCTGAGCAAAACAGTCTAGATGAGAGAG ;;<;;;<<;;<<<;<<<;<<<;<<<<<<<<<<<<; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:1:249:986:224 147 seq1 1499 99 35M = 1325 -209 TATTTGTCTGAGCAAAACAGTCTAGATGAGAGAGA <<<3<;<;;<<;8<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:7:61:702:720 83 seq1 1500 99 35M = 1320 -215 ATTTGTCTGAGCAAAACAGTCTAGATGAGAGAGAA <<<4<4+0;<<:<<<<<<<<-<<<<<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_78:7:113:43:634 83 seq1 1500 99 35M = 1340 -195 ATTTGTCTGAGAAAAACAGTCTAGATGAGAGAGAA ;9;1;<5:<<<%<<<<;<<<;<<<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:1 UQ:i:4 H0:i:0 H1:i:1
+EAS56_53:7:22:22:934 83 seq1 1500 99 35M = 1332 -203 ATTTGTCTGAGCAAAACAGTCTAGATGAGAGAGAA <+72::72<<60<<<<<<<96<<<<0<<<<1<<<< MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:5:36:678:316 147 seq1 1500 99 35M = 1328 -207 ATTTGTCTGAGCAAAACAGTCTAGATGAGAGAGAA <<72.2,;;<)6<<<<:<<;;<<<<<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:3:102:825:507 83 seq1 1501 99 35M = 1330 -206 TTTGTCTGAGCAAAACAGTCTAGATGAGAGAGAAC <05<<<<<<<7<<<<<<<<<<<<<7<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:1:261:504:780 83 seq1 1501 99 35M = 1337 -199 TTTGTCTGAGAAAAACAGTCTAGATGAGAGAGAAC 80;8(;0==8+====;==49=============== MF:i:18 Aq:i:43 NM:i:1 UQ:i:10 H0:i:0 H1:i:1
+EAS51_78:7:270:448:491 147 seq1 1501 99 35M = 1313 -223 TTTGTCTGAGCAAAACAGTCTAGATGAGAGAGAAC 7;;;;+2;<<+<<<<<<<<7<<<<<<<<<<<<<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:6:51:506:878 83 seq1 1501 99 36M = 1314 -223 TTTGTCTGAGCAAAACAGTCTAGATGAGAGAGAACT <970;49;<;+<<<:<<<;;<<<<<<<<<<<<<<<; MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:3:73:936:1509 83 seq1 1502 99 40M = 1322 -220 TTGTCTGAGCAAAACAGTCTAGATGAGAGAGAACTTCCCT 99;66:<<;-<<<<:<<<<;<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:2:41:576:1016 83 seq1 1503 99 35M = 1320 -218 TGTCTGAGCAAAACAGTCTAGATGAGAGAGAACTT :<;<<<<<6<<<<;<<<<:<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:7:123:610:472 147 seq1 1504 99 35M = 1333 -206 GTCTGAGCAAAACAGTCTAGATGAGAGAGAACTTC :<::+<<9<<9<<<<=<<<<<=<<<<<<<<?<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:5:308:354:124 147 seq1 1507 99 35M = 1331 -211 TGAGCAAAACAGTCTAGATGAGAGAGAACTTCCCT %+<)2<<<<<<<<8<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:2:11:1274:1230 83 seq1 1507 99 35M = 1327 -215 TGAGCAAAACAGTCTAGATGAGAGAGAACTTCCCT .<<<<<<<<<<<<<<<<5<<<<<<<<<<5<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:3:169:292:652 147 seq1 1510 99 35M = 1306 -239 GCAAAACAGTCTAGATGAGAGAGAACTTCCCTGGA 79919-<-<<<<<<<<<<<<<<<<<<<6<<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:6:18:376:416 83 seq1 1510 99 35M = 1326 -219 GCAAAACAGTCTAGATGAGAGAGAACTTCCCTGGA 70<<<<<<<7<7<<<2<<<<<<<<<<8<<<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:3:194:168:684 147 seq1 1512 99 36M = 1340 -208 AAAACAGTCTAGATGAGAGAGAACTTCCCTGGAGGT ;<<<<<;<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:3:73:273:488 83 seq1 1512 99 35M = 1318 -229 AAAACAGTCTAGATGAGAGAGAACTTCCCTGGAGG </<<:<<9;;<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:6:324:515:230 83 seq1 1512 99 34M = 1339 -207 AAAACAGTCTAGATGAGAGAGAACTTCCCTGGAG 7<<1<<<7<+<<<;<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:1:209:345:87 83 seq1 1513 99 35M = 1360 -188 AAACAGTCTAGATGAGAGAGAACTTCCCTGGAGGT <<;<<<<5<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:4:73:42:1038 83 seq1 1513 99 35M = 1349 -199 AAACAGTCTAGATGAGAGAGAACTTCCCTGGAGGT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:5:209:778:588 83 seq1 1514 99 36M = 1326 -224 AACAGTCTAGATGAGAGAGAACTTCCCTGGAGGTCT ;8;98;;;<3<<<<<<<<<;<<;<<<<<;<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:1:115:683:296 147 seq1 1514 99 35M = 1320 -229 AACAGTCTAGATGAGAGAGAACTTCCCTGGAGGTC <<<<;<;<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:1:92:213:217 147 seq1 1515 99 35M = 1333 -217 ACAGTCTAGATGAGAGAGAACTTCCCTGGAGGTCT <<<<<:<<<<<<<<<<<;<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:6:177:562:806 147 seq1 1515 99 35M = 1356 -194 ACAGTGTAGATGAGAGAGACCTTCCCTGGAGGTCT )2<9;'/:<5<<<:<<:<:&5:&<8,<<+:<&<<< MF:i:18 Aq:i:35 NM:i:2 UQ:i:11 H0:i:0 H1:i:1
+EAS1_103:3:320:505:814 147 seq1 1515 99 35M = 1350 -200 ACAGTCTAGATGAGAGAGAACTTCCCTGGAGGTCT <2<;;5<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_4:1:9:206:901 147 seq1 1517 99 35M = 1344 -208 AGTCTAGATGAGAGAGAACTTCCCTGGAGGTCTGA <<<<<<<<<<<<<.<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:4:71:707:568 83 seq1 1518 99 35M = 1332 -221 GTCTAGATGAGAGAGAACTTCCCTGGAGGTCTGAT ;9;<;<<<<<;<<<<<;<<<:<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:2:91:856:504 147 seq1 1520 99 35M = 1366 -189 CTAGATGAGAGAGAACTTCCCTGGAGGTCTGATGG :::<<:<<<<<<<<<<<<<<<<<<<<<:<:<<<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:6:77:48:860 147 seq1 1521 99 35M = 1348 -208 TAGATGAGAGAGAACTTCCCTGGAGGTCTGATGGC ;8;8;<9<9<<<<<<<<<4<<<<<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:5:16:434:204 83 seq1 1522 99 34M = 1340 -216 AGATGAGAGAGAACTTCCCTGGAGGTCTGATGGC <:7:<<<<<<<<<<<9<<<+<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:4:43:1047:1626 83 seq1 1523 99 35M = 1369 -189 GATGAGAGAGAACTTCCCTGGAGGTCTGATGGCGT <<4<<<<<<<<<<<:<<<;<<<<<:<7<<;<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:3:81:1723:1820 147 seq1 1524 99 35M = 1335 -224 ATGAGAGAGAACTTCCCTGGAGGTCTGATGGCGTT ;6;;;<<<<<<<<<<<2<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:2:63:267:545 83 seq1 1524 99 35M = 1354 -205 ATGAGAGAGAACTTCCCTGGAGGTCTGATGGCGTT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:7:90:406:631 83 seq1 1525 99 35M = 1335 -225 TGAGAGAGAACTTCCCTGGAGGTCTGATGGCGTTT <<<:<:<<<-<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:1:14:420:712 147 seq1 1525 99 40M = 1368 -197 TGAGAGAGAACTTCCCTGGAGGTCTGATGGCGTTTCTCCC 1::::<<<<<<<<<<;<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:8:2.434:715 83 seq1 1527 99 35M = 1363 -199 AGAGAGAACTTCCCTGGAGGTCTGATGGCGTTTCT <<<<<<<<<:;<<<;<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:7:117:857:942 147 seq1 1527 99 35M = 1372 -190 AGAGAGAACTTCCCTGGAGGTCTGATGGCGTTTCT <<;<<<<<<<9<<<8<<<<<<<<<<;<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:5:70:348:972 83 seq1 1528 99 35M = 1343 -220 GAGAGAACTTCCCTGGAGGTCTGATGGCGTTTCTC <99<-7<<7<<<87<<<)<<<<<<8<<<<<<<<<< MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:6:132:717:233 147 seq1 1529 99 35M = 1368 -196 AGAGAACTTCCCTGGAGGTCTGATGGAGTTTCTCC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS188_7:4:21:443:404 147 seq1 1529 99 35M = 1345 -219 AGAGAACTTCCCTGGAGGTCTGATGGCGTTTCTCC =9=9=9==:========================== MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:1:148:286:316 83 seq1 1531 99 35M = 1347 -219 AGAACTTCCCTGGAGGTCTGATGGCGTTTCTCCCT ;::::;9/:<9<<<<;<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:6:85:1224:625 147 seq1 1532 99 35M = 1331 -236 GAACTCCCCTGGAGGTCTGATGGCGTTTCTCCCTC 17;;7&-;<;<;:<6<<:;<<<<<<<;<<<<<<<< MF:i:18 Aq:i:70 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS221_1:8:73:108:1621 147 seq1 1532 99 35M = 1373 -194 GAACTTCCCTGGAGGTCTGATGGCGTTTCTCCCTC <<8<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:4:73:182:444 147 seq1 1533 99 35M = 1354 -214 AACTTCCCTGGAGGTCTGATGGCGTTTCTCCCTCG :1<4;;::<<;<<<<;<<<<<<<<<<<;<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:2:152:765:744 83 seq1 1534 99 35M = 1374 -195 ACTTCCCTGGAGGTCTGATGGCGTTTCTCCCTCGT 6<;6<<<;<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:2:170:326:433 147 seq1 1535 99 35M = 1367 -203 CTTCCCTGGAGGTCTGATGGCGTTTCTCCCTCGTC :44<<<<<<<<<<:6<<<<<<<:<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:8:4:841:340 73 seq2 1 99 36M * 0 0 TTCAAATGAACTTCTGTAATTGAAAAATTCATTTAA <<<<<<<<;<<<<<<<<;<<<<<;<;:<<<<<<<;; MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:4:142:943:582 73 seq2 1 99 35M * 0 0 TTCAAATGAACTTCTGTAATTGAAAAATTCATTTA <<<<<<;<<<<<<:<<;<<<<;<<<;<<<:;<<<5 MF:i:18 Aq:i:41 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:6:43:859:229 153 seq2 1 66 35M * 0 0 TTCAAATGAACTTCTGTAATTGAAAAATTCATTTA +37<=<.;<<7.;77<5<<0<<<;<<<27<<<<<< MF:i:32 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:2:286:923:549 73 seq2 2 99 35M * 0 0 TCAAATGAACTTCTGTAATTGAAAAATTCATTTAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:8:117:578:853 73 seq2 5 99 35M * 0 0 AATGAACTTCTGTAATTGAAAAATTCATTTAAGAA <;<9<<<<<;<<;<<<<<<<<<<<,<98;<;;&92 MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:7:289:472:86 137 seq2 6 99 35M * 0 0 ATGAACTTCTGTAATTGAAAAATTCATTTAAGAAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;;; MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_4:5:302:997:951 73 seq2 6 69 35M * 0 0 ATGAACTTCTGTAATTGAAAAATTCATTTAAGAAA <<<<<<<<<<;<<:<<52<<:;;<6<<;<:<2:9/ MF:i:64 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:8:13:1729:1844 73 seq2 6 99 35M * 0 0 ATGAACTTCTGTAATTGAAAAATTCATTTAAGAAA <<<;;<;7<<<<4<<<<762;6<<<<<<<;6;618 MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:2:43:239:977 137 seq2 7 99 36M * 0 0 TGAACTTCTGTAATTGAAAAATTCATTTAAGAAATT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<7;7;<; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:3:233:191:520 73 seq2 7 99 35M * 0 0 TGAACTTCTGTAATTGAAAAATTCATTTAAGAAAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<2<8<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:4:75:555:1591 137 seq2 7 99 35M * 0 0 TGAACTTCTGTAATTGAAAAATTCATTTAAGAAAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<6<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:2:43:656:1866 137 seq2 7 99 35M * 0 0 TGAACTTCTGTAATTGAAAAATTCATTTAAGAAAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<7;;:; MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:2:100:563:301 137 seq2 8 99 35M * 0 0 GAACTTCTGTAATTGAAAAATTCATTTAAGAAATT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<:;8;;; MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:1:126:526:276 137 seq2 8 84 35M * 0 0 GAACTTCTGTAATTGAAAAATTCATTTAAGAAATT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<:<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:3:161:366:544 137 seq2 11 99 35M * 0 0 CTTCTGTAATTGAAAAATTCATTTAAGAAATTACA <<<<<<<<<<<<<<<<<<<<<<<<<<;<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:3:326:652:890 73 seq2 12 99 35M * 0 0 TTCTGTAATTGAAAAATTCATTTAAGAAATTACAA <<<<<<<<<<2<<<<<<<<<<<<<<+<8:<<9998 MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:4:238:441:727 73 seq2 16 99 35M * 0 0 GTAATTGAAAAATTCATTTAAGAAATTACAAAATA <<<<<<<<<<<<<<<<<<<<<7<<<<<<<<<;;<< MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:8:64:507:478 137 seq2 17 99 35M * 0 0 TAATTGAAAAATTCATTTAAGAAATTACAAAATAT <<<<<;<<<<<<<<<<<<<<<;;;<<<;<<8;<;< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:8:118:440:850 137 seq2 18 99 35M * 0 0 AATTGAAAAATTCATTTAAGAAATTACAAAATATA <<<<<<<<<<<<<<<<<<<<<<<<<<<<949<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:7:270:995:918 137 seq2 24 84 35M * 0 0 AAAATTCATTTAAGAAATTACAAAATATAGTTGAA <<<<<<<<<<<<<:<<<<<<8<8<8<<<<:<;4;4 MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:8:305:819:245 73 seq2 25 98 35M * 0 0 AAATTCATTTAAGAAATTACAAAATATAGTTGAAA 8<<<<8<;<<<<<;<8<<8<8<<<<8<<<899<<+ MF:i:18 Aq:i:27 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS114_26:7:13:172:720 73 seq2 26 99 35M * 0 0 AATTCATTTAAGAAATTACAAAATATAGTTGAAAG ============:3<==:====<=9=3===;==83 MF:i:18 Aq:i:28 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS56_63:7:34:334:825 73 seq2 30 99 35M * 0 0 CATTTAAGAAATTACAAAATATAGTTGAAAGCTCT <<<<<<<<<<<<<<<<<<<<<<<<3;<<<<6<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:3:32:1379:738 137 seq2 33 99 35M * 0 0 TTAAGAAATTACAAAATATAGTTGAAAGCTCTAAC ;;;;;;;8;;;;;;;;;;;;;;;;;;;;;;88888 MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS139_19:5:70:318:1631 137 seq2 34 99 40M * 0 0 TAAGAAATTACAAAATATAGTTGAAAGCTCTAACAATAGA <<<<<<;<<<<<<<<<<<<;9:<<<<<<<<<<<<<:::78 MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:5:285:241:560 163 seq2 37 99 35M = 200 198 GAAATTACAAAATATAGTTGAAAGCTCTAACAATA <<<<<<<<<<;<<<<;<<<<<<<<<<<<;<;;;<. MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:1:168:389:889 99 seq2 37 99 36M = 205 204 GAAATTACAAAATATAGTTGAAAGCTCTAACAATAG <<<<<<<<<<<<<<<<<<<<;<<<<<<<;9;;<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:4:127:725:381 163 seq2 39 99 35M = 209 204 AATTACAAAATATAGTTGAAAGCTCTAACAATAGA <<<<<<<<<<<<<<<<<<<<<;<<<<;;;;;<<8: MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS1_93:5:66:372:343 163 seq2 40 99 35M = 228 223 ATTACAAAATATAGTTGAAAGATCTAACAATAGAC <<<<<<<<<<8<<<<<6<<<8&8<<<<<58<:<:: MF:i:18 Aq:i:43 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+EAS56_65:6:67:800:450 99 seq2 41 99 35M = 221 215 TTACAAAATATAGTTGAAAGCTCTAACAATAGACT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<5<<< MF:i:18 Aq:i:49 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:3:90:1906:1528 163 seq2 41 99 35M = 222 216 TTACAAAATATAGTTGAAAGCTCTAACAATAGACT <<<<<<<<<<<<<<<:<<<:<<<<;<<<<<;:7:; MF:i:18 Aq:i:49 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:3:117:284:589 163 seq2 43 99 35M = 210 202 ACAAAATATAGTTGAAAGCTCTAACAATAGACTAA ==================================0 MF:i:18 Aq:i:56 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:2:26:211:481 99 seq2 43 99 35M = 222 214 ACAAAATATAGTTGAAAGCTCTAACAATAGACTAA <<<<<<<<<<<<<<<<<<<<<<<7<<<<<:<7<<< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_4:7:85:923:726 99 seq2 43 99 35M = 199 191 ACAAAATATAGTTGAAAGCTCTAACAATAGACTAA <<<<<<<7<<<<<<<<<<<55<<<9<*<<<991<4 MF:i:18 Aq:i:44 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:6:107:395:312 163 seq2 44 99 35M = 224 215 CAAAATATAGTTGAAAGCTCTAACAATAGACTAAA <<<<<<<<<<<<<<<<<<<<<<<<<;<;;<:<<<< MF:i:18 Aq:i:27 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+B7_597:7:5:753:806 163 seq2 45 99 35M = 197 187 AAAATATAGTTGAAAGCTCTAACAATAGACTAAAC <<<<<<<<<<<<<<<<<<<<<<<<<<7:-<;;3;; MF:i:18 Aq:i:27 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS1_103:3:277:921:474 163 seq2 45 99 35M = 241 231 AAAATATAGTTGAAAGCTCTAACAATAGACTAAAC <<<<<<<<<<<<<<<:<<<<<<<<<<<5<<;;;;; MF:i:18 Aq:i:27 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS56_63:4:38:28:122 163 seq2 46 99 35M = 227 216 AAATATAGTTGAAAGCTCTAACAATAGACTAAACC <<<<<<;<<<<<<<;<<<<6<<<<<<:<<<<;;<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS221_3:8:50:1203:1094 163 seq2 46 99 35M = 223 212 AAATATAGTTGAAAGCTCTAACAATAGACTAAACC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+B7_591:2:223:583:968 99 seq2 47 88 36M = 215 204 AATATAGTTGAAAGCTCTAACAATAGACTAAACCAA <<<<<<<29<<<<4<<<<<<<<<<<7<<7<..<<47 MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS114_39:1:28:350:895 163 seq2 48 95 35M = 215 202 ATATAGTTGAAAGCTCTAACAATAGACTAAACCAA <<<<<<<<;<;<<<<<<<<<;;<<;<<<<<;;<;8 MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS114_45:7:69:1130:832 99 seq2 50 94 35M = 231 216 ATAGTTGAAAGCTCTAACAATAGACTAAACCAAGC ;;2<;<;;<;9;<;;;;;;;7;8;;7;;;;77437 MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS188_7:3:296:224:724 163 seq2 50 99 35M = 234 219 ATAGTTGAAAGCTCTAACAATAGACTAAACCAAGC <<<<;<<<<<<7;<<<<<6<<<06<<<<<<2(<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+B7_595:4:319:250:718 163 seq2 52 99 35M = 240 223 AGTTGAAAGCTCTAACAATAGACTAAACCAAGCAG <<<<<<<<<<<;<<5<5;<851;85;)9;;8594; MF:i:18 Aq:i:53 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS54_73:3:203:419:243 163 seq2 54 99 35M = 237 218 TTGAAAGCTCTAACAATAGACTAAACCAAGCAGAA <<<<<<<<<<<<<<<9<;<8<<<;<<<;<<<4<77 MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:6:21:1601:1666 163 seq2 56 99 40M = 228 212 GAAAGCTCTAACAATAGACTAAACCAAGCAGAAGAAAGAG 7<<<<<<<<:<<7<<<:<<<<<<4<<44<<914<;:5::: MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:7:158:943:467 163 seq2 57 99 35M = 225 203 AAAGCTCTAACAATAGACTAAACCAAGCAGAAGAA <<<<<;<<<<<<<<<<<<<<;;<<<<<<<<<;8<< MF:i:18 Aq:i:46 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:2:54:91:1232 99 seq2 57 99 35M = 246 224 AAAGCTCTAACAATAGACTAAACCAAGCAGAAGAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:3:29:833:612 163 seq2 58 99 35M = 224 201 AAGCTCTAACAATAGACTAAACCAAGCAGAAGAAA <<<<<<<<<<<<<<<<<<<<<<<<<<;<<;;<<;; MF:i:18 Aq:i:27 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS56_57:1:189:503:110 163 seq2 63 79 35M = 229 201 CTAACAATAGACTAAACCAAGCAGAAGAAAGAGTT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<:< MF:i:18 Aq:i:0 NM:i:1 UQ:i:25 H0:i:2 H1:i:0
+EAS114_28:2:114:938:216 99 seq2 63 99 36M = 218 191 CTAACAATAGACTAAACCAAGCAGAAGAAAGAGGTT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<4; MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:2 H1:i:0
+EAS1_95:5:257:654:116 99 seq2 64 99 35M = 231 202 TAACAATAGACTAAACCAAGCAGAAGAAAGAGGTT <<<<<<<<<<<<<<<<<<<<<<;:<<<<<<<<<88 MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:2 H1:i:0
+EAS1_97:3:277:144:848 163 seq2 64 99 35M = 228 199 TAACAATAGACTAAACCAAGCAGAAGAAAGAGGTT <<<<<<<<<;<<<<<<<<<<<<<<<<<3<<9;;6; MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:2 H1:i:0
+EAS1_108:4:75:166:463 99 seq2 64 99 35M = 250 221 TAACAATAGACTAAACCAAGCAGAAGAAAGAGGTT <<<<<<<<<<<<<<<<<<<<;<<<<<<<<<<<++3 MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:2 H1:i:4
+B7_610:5:102:915:87 99 seq2 65 99 35M = 222 192 AACAATAGACTAAACCAAGCAGAAGAAAGAGGTTC <<<<<<<<<<<<<<<<<<<<;<<<<<3<<;<<<<; MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:3 H1:i:0
+EAS54_71:3:78:855:352 163 seq2 65 99 35M = 240 209 AACAATAGACTAAACCAAGCAGAAGAAAGAGGTTC <<<<<<<<;<<<<<<<<<;<<<<<<<<;<;<<:<: MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:3 H1:i:0
+EAS56_57:2:206:873:186 163 seq2 66 99 35M = 227 196 ACAATAGACTAAACCAAGCAGAAGAAAGAGGTTCA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<:;53 MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:2 H1:i:0
+EAS1_93:6:238:514:194 163 seq2 68 99 35M = 265 232 AATAGACTAAACCAAGCAGAAGAAAGAGGTTCAGA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<:<;<;< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS56_57:3:285:489:327 99 seq2 68 99 35M = 233 200 AATAGACTAAACCAAGCAGAAGAAAGAGGTTCAGA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS54_67:1:15:381:715 99 seq2 72 99 35M = 237 200 GACTAAACCAAGCAGAAGAAAGAGGTTCAGAACTT ;=====;===9==;===9;;;=4;9=====;==== MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:6:199:818:124 99 seq2 73 99 35M = 266 228 ACTAAACCAAGCAGAAGAAAGAGGTTCAGAACTTG <<<<<<<<<<<<<<<<<;<<;<<;7<<<<<<9<9; MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:3:182:1002:639 163 seq2 77 99 35M = 246 204 AACCAAGCAGAAGAAAGAGGTTCAGAACTTGAAGA <<<<<<<<<<<<<<<<<<<<<9-<<<<4<;<;;<; MF:i:18 Aq:i:48 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:2:3:945:2005 163 seq2 77 99 35M = 262 220 AACCAAGCAGAAGAAAGAGGCTCAGAACTTGAAGA <<<<<<<<<<<<<<<<<<<<%<<<<<<;<<<<<<< MF:i:18 Aq:i:44 NM:i:1 UQ:i:4 H0:i:0 H1:i:1
+B7_591:5:254:542:848 99 seq2 79 99 36M = 233 190 CCAAGCAGAAGAAAGAGGTTCAGAACTTGAAGACAA <<<;<<<<<<<<<<<<<<<;4<;8<<<;;9<9;8;9 MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:4:71:517:742 99 seq2 81 99 35M = 266 220 AAGCAGAAGAAAGAGGTTCAGAACTTGAAGACAAG <<<<<<<<<<<<;<<<<<<<<<<<<<48:4<<<<3 MF:i:18 Aq:i:49 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:8:254:617:73 163 seq2 83 99 35M = 266 218 GCAGAAGAAAGAGGTTCAGAACTTGAAGACAAGTC <<<<<<<<<<<<<<<<<<<<<<<<<;<<<6;:;4% MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:2:13:1507:1146 99 seq2 84 99 35M = 278 229 CAGAAGAAAGAGGTTCAGAACTTGAAGACAAGTCT ;<9;;;;<<;;;;<<;<;;;;<;;<<;<;<99777 MF:i:18 Aq:i:49 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:5:32:686:735 99 seq2 84 78 35M = 255 206 CAGAAGAAAGAGGTTCANANNNTGANGACAAGTCT <<<<<<<<<<<<<<<<<!<!!!<<<!<<<<<<<<< MF:i:130 Aq:i:78 NM:i:5 UQ:i:0 H0:i:0 H1:i:0
+EAS56_57:3:112:729:591 99 seq2 86 99 35M = 283 232 GAAGAAAGAGGTTCAGAACTTGAAGACAAGTCTCT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:5:17:1222:783 163 seq2 87 99 35M = 251 199 AAGAAAGAGGTTCAGAACTTGAAGACAAGTCTCGT <<<<<<<)<<<16<<;<<<6<4<:<4<+://<7)< MF:i:18 Aq:i:59 NM:i:1 UQ:i:8 H0:i:1 H1:i:0
+EAS188_7:6:46:122:479 99 seq2 87 99 35M = 248 196 AAGAAAGAGGTTCAGAACTTGAAGACAAGTCTCTT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<<<< MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:2:313:531:169 163 seq2 89 99 36M = 250 197 GAAAGAGGTTCAGAACTTGAAGACAAGTCTCTTATG <<<<<<<<<<<<<;<<<<<<<<<<<:<<:<;<<;<2 MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:6:148:170:895 99 seq2 91 99 35M = 247 191 AAGAGGTTCAGAACTTGAAGACAAGTCTCTTATGA <<<<<<<<<<9<<<<<6<<<<<<<<<<<<<<<<6< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:6:34:380:815 163 seq2 91 99 35M = 283 227 AAGAGGTTCAGAACTTGAAGACAAGTCTCTTATGA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<;: MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:6:210:809:735 163 seq2 93 99 35M = 291 233 GAGGTTCAGAACTTGAAGACAAGTCTCTTATGAAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<<5<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:8:40:925:442 163 seq2 93 99 35M = 271 213 GAGGTTCAGAACTTGAAGACAAGTCTCTTATGAAT ;<;<<<<<<<<<<<3;<7;:<;;<<<;<<:<32<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:4:169:256:888 163 seq2 94 99 35M = 270 210 AGGTTCAGAACTTGAAGACAAGTCTCTTATGAATT <<<<<<<<<<<<<<<<<<<<<<;;<;<<;<<:;;< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:8:117:156:84 99 seq2 95 99 35M = 285 225 GGTTCAGAACTTGAAGACAAGTCTCTTATGAATTA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:1:35:522:294 163 seq2 95 99 35M = 272 212 GGTTCAGAACTTGAAGACAAGTCTCTTATGAATTA ===============================:=:= MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:3:41:653:1568 163 seq2 95 99 35M = 266 206 GGTTCAGAACTTGAAGACAAGTCTCTTATGAATTA ;;;;;;;8;;;;;;;;;;;;;;;;;;;;;;88888 MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:7:178:276:693 163 seq2 96 99 36M = 259 199 GTTCAGAACTTGAAGACAAGTCTCTTATGAATTAAC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;; MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:7:223:440:667 99 seq2 97 99 35M = 282 220 TTCAGAACTTGAAGACAAGTCTCTTATGAATTAAC <<<<<<<<<<<<<<<<<<<;<<<<<<<<;<<<<;; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:5:194:470:416 99 seq2 98 99 35M = 265 202 TCAGAACTTGAAGACAAGTCTCTTATGAATTAACC <<<<<<<<<<<<<<<<<<<<<<<<;<;<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:5:61:1000:1534 163 seq2 104 99 35M = 286 217 CTTGAAGACAAGTCTCTTATGAATTAACCCAGTCA <<<<4:<:<1)<<<<<<<+<:44<</7<<<)4:<) MF:i:18 Aq:i:63 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:5:145:383:182 163 seq2 105 99 35M = 291 221 TTGAAGACAAGTCTCTTATGAATTAACCCAGTCAG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<:;;;<; MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:2:63:816:921 163 seq2 106 99 35M = 291 220 TGAAGACAAGTCTCTTATGAATTAACCCAGTCAGA <<<<<<<<<<<<<<<<<<<<<<<<<<<<:<4<846 MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:4:77:1780:693 99 seq2 106 99 40M = 276 210 TGAAGACAAGTCTCTTATGAATTAACCCAGTCAGACAAAA <<<<<<<<<<<<;<<:<<;<<<<<<<<<<<<;<<<;;:69 MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:1:215:861:605 163 seq2 107 94 36M = 262 191 NAAGACAAGTCTCTTATGAATTAACCCAGTCAGACA !+++++++++++++++++++++++++++++++++++ MF:i:18 Aq:i:19 NM:i:1 UQ:i:0 H0:i:0 H1:i:1
+EAS221_3:2:22:1623:709 99 seq2 107 99 35M = 287 215 GAAGACAAGTCTCTTATGAATTAACCCAGTCAGAC <<<<<<<<<7<<<<<<<:<<<<<<<<:85:<:2<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:1:54:436:1452 163 seq2 108 99 35M = 275 202 AAGACAAGTCTCTTATGAATTAACCCAGTCAGACA <<<<<<<<<<<<<<<<<<<<<<<<<<<:<<<;<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:2:42:333:516 163 seq2 109 99 35M = 296 222 AGACAAGTCTCTTATGAATTAACCCAGTCAGACAA <<<<<5<*<2<<<<<<<<<<<<<<<<<<<<<<<</ MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:6:119:730:190 99 seq2 114 99 35M = 301 222 AGTCTCTTATGAATTAACCCAGTCAGACAAAAATA <<<9<;;<<<;<<<<<<<8<<<1<<918<;;;<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:7:63:727:203 99 seq2 114 99 35M = 278 199 AGTCTCTTATGAATTAACCCAGTCAGACAAAAATA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<;<<; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:5:27:577:849 163 seq2 114 99 35M = 316 237 AGTCTCTTATGAATTAACCCAGTCAGACAAAAATA <<<<<<<<<<<<<<<<<<<<;:<<<;<<<<<<;;; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:5:5:259:250 99 seq2 115 99 35M = 269 189 GTCTCTTATGAATTAACCCAGTCAGACAAAAATAA <<<<<<<<<<<<<<<<<<<<;<<<;5<<5<;7<:: MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:4:17:989:186 99 seq2 120 91 35M = 299 214 TTATGAATTAACCCAGTCAGACAAAAATAAAGAAA <<<<<<<<<<<<<<<<<<<<<<<<:<<;<7;:::: MF:i:18 Aq:i:20 NM:i:0 UQ:i:0 H0:i:1 H1:i:5
+EAS114_45:2:33:1445:1357 99 seq2 121 85 35M = 299 213 TATGAATTAACCCAGTCAGACAAAAATAAAGAAAA ;;<;<<<<<<;;;<9:;:;;;;;:;:;;;;99777 MF:i:18 Aq:i:18 NM:i:0 UQ:i:0 H0:i:1 H1:i:7
+EAS221_3:4:30:1452:1563 163 seq2 122 94 35M = 313 226 ATGAATTAACCAAGTCAGACAAAAATAAAGAAAAA <<<<<<<<<<<<<<:<<<<1<<<<<<<<<<<<<<< MF:i:18 Aq:i:20 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS114_45:1:77:1000:1780 163 seq2 123 66 35M = 279 191 TGAATTAACCCAGTCAGACAAAAATAAAGAAAAAA ;;;:;;;;;;;/;;;7:4;;7;;;;;;;;;77777 MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:6 H1:i:47
+EAS114_45:4:48:310:473 99 seq2 123 66 35M = 298 210 TGAATTAACCCAGTCAGACAAAAATAAAGAAAAAA <<<;<<;;;<<;;<;;;;;;;;;;;;;;;;89799 MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:6 H1:i:47
+B7_591:2:279:124:41 99 seq2 124 69 36M = 307 219 GAATTAACCCAGTCAGACAAAAANNAAGAAAAAAGA <<<<<<<7/<8<<<<<<<<<<4*!!<<7<7<<5<<3 MF:i:18 Aq:i:0 NM:i:2 UQ:i:0 H0:i:0 H1:i:0
+EAS112_32:8:89:254:332 163 seq2 124 76 35M = 291 202 GAATTAACCCAGTCAGACAAAAATAAAGAAAAAAG ==================;=========;=7;;<; MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:4 H1:i:36
+B7_597:7:103:731:697 99 seq2 125 72 35M = 304 214 AATTAACCCAGTCAGACAAAAATAAAGAAAAAAGA <<<<<<<<<<<<<<<<<<:<:<<6<<<<<<<:<;: MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:9 H1:i:55
+EAS139_11:2:71:83:58 163 seq2 148 77 9M2I24M = 349 236 AAAGAAAAAAGAATTTTAAAAATGAACAGAGCTTT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:130 Aq:i:77 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS192_3:4:63:5:870 163 seq2 148 75 9M2I24M = 330 217 AAAGAAAAAAGAATTTTAAAAATGAACAGAGCTTT <<;<<<<<<<<<<<<<<<<<;<<<<<<<<<;;<<< MF:i:130 Aq:i:75 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS139_19:2:29:1822:1881 163 seq2 150 74 7M2I31M = 328 218 AGAAAAAAGAATTTTAAAAATGAACAGAGCTTTCAAGAAG <<<<<<<<<<<<4<<<<<<<<<<<<<<:<<<:<<;::::: MF:i:130 Aq:i:74 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS221_3:2:100:1147:124 163 seq2 150 99 35M = 345 230 AAAAAAGAATTTTAAAAATGAACAGAGCTTTCAAG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<9<< MF:i:18 Aq:i:29 NM:i:2 UQ:i:54 H0:i:0 H1:i:0
+EAS192_3:8:6:104:118 163 seq2 154 99 35M = 323 204 AAGAATTTTAAAAATGAACAGAGCTTTCAAGAAGT <<<<<<<<<<<<<<<<<<<<<<<<<<<<=<<<<<< MF:i:18 Aq:i:27 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+B7_593:6:185:96:948 99 seq2 160 99 36M = 324 200 TTTAAAAATGAACAGAGCTTTCAAGAAGTATGAGAT <<<<<<<<<;6<<<<<<<<<;<<<;;<<<<<<<;<; MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:7:213:309:373 163 seq2 161 99 35M = 317 191 TTAAAAATGAACAGAGCTTTCAAGAAGTATGAGAT <;<<<<<<;<7<<<<<-<<<<<<<<<<<<<<4<7< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:2:30:466:652 99 seq2 163 98 35M = 332 204 AAAAATGAACAGAGCTTTCAAGAAGTATGAGATTA <<<<<<<<<<<<<<<<<<<<<<<<;<<<4;7<<<7 MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:4:156:21:69 163 seq2 163 99 35M = 362 234 AAAAATGAACAGAGCTTTCAAGAAGTATGAGATTA <<<<<<<<<<<<<<<<<<<<<<<:<4<<<:<;<;; MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:5:197:52:58 163 seq2 165 99 35M = 323 193 AAATGAACAGAGCTTTCAAGAAGTATGAGATTATG <<<<<<<<<<<<<<<<<<9<<<<2<<<<<<;<<<< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:3:214:946:229 163 seq2 165 99 35M = 339 209 AAATGAACAGAGCTTTCAAGAAGTATGATATTATG <<<<<<<<<<<<<<<<<::<;;;<;<;7<:<<7<2 MF:i:18 Aq:i:65 NM:i:1 UQ:i:27 H0:i:1 H1:i:0
+EAS192_3:4:293:168:240 99 seq2 167 99 35M = 340 208 ATGAACAGAGCTTTCAAGAAGTATGAGATTATGTA <<<<;<<<;;;<;<<;;;<<;;<<::::<<;;+;7 MF:i:18 Aq:i:48 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:3:208:118:673 99 seq2 169 76 35M = 332 198 GAACAGAGCTTTCAAGAAGTATGAGATTATGTAAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;<;; MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:3:71:478:175 163 seq2 171 99 35M = 317 181 ACAGAGCTTTCAAGAAGTATGAGATTATGTAAAGT <<<<<<<<<<<;<<<<<;<<<<<<<<<<;<<<<<; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:5:177:24:389 163 seq2 175 99 35M = 365 225 AGCTTTCAAGAAGTATGAGATTATGTAAAGTAACT <<<<<<<<<<<<<<<<<<<<<<<<7<;;<;9969; MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:6:14:1211:1332 163 seq2 178 99 35M = 351 208 TTTCAAGAAGTATGAGATTATGTAAAGTAACTGAA ;;.;;;;;;;3;;;;;6;;;;;;8;;;;;;63777 MF:i:18 Aq:i:64 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:1:324:238:736 163 seq2 180 99 35M = 367 222 TCAAGAAGTATGAGATTATGTAAAGTAACTGAACC =================================== MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:7:9:648:712 99 seq2 182 99 35M = 358 211 AAGAAGTATGAGATTATGTAAAGTAACTGAACCTA <9<;<<<<<<<;<<<<<8<<<<9<<;<<8)<:1<: MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:4:41:1308:619 163 seq2 184 99 35M = 360 211 GAAGTATGAGATTATGTAAAGTAACTGAACCTATG <6+<*<<<<<<<:<<<<<<<:<<&<<<<1<6<11: MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:4:328:537:640 99 seq2 185 99 35M = 352 202 AAGTATGAGATTATGTAAAGTAACTGAACCTATGA <;<<<<<<;<<<<<<<<<:;<<8<<<;:<<<;<;9 MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:5:86:697:941 163 seq2 187 99 35M = 341 189 GTATGAGATTATGTAAAGTAACTGAACCTATGAGT =====================<=<==<<====;=5 MF:i:18 Aq:i:27 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:4:224:592:744 99 seq2 188 99 35M = 383 230 TATGAGATTATGTAAAGTAACTGAACCTATGAGTC <<<<<<<<<<<<<<<<;<<<<<7<<<<<<<&<*<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:6:135:354:66 99 seq2 188 99 35M = 356 203 TATGAGATTATGTAAAGTAACTGAACCTATGAGTC <<<<<<<<<<<<<<<<;<<<<<<<<<<;<<2<;;; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:7:71:311:202 163 seq2 188 99 35M = 379 226 TATGAGATTATGTAAAGTAACTGAACCTATGAGTC <<<<<<<<<<<<<<<<:4<<<<<<<<<<<<8;4;: MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:4:50:30:15 99 seq2 192 39 35M = 358 201 AGATTATGTAAAGTAACTTAACCTATGAGTCCAAG +:79.68872.:9&:92/.299169/5+/6/3/&2 MF:i:18 Aq:i:10 NM:i:3 UQ:i:45 H0:i:0 H1:i:1
+EAS192_3:5:287:334:110 73 seq2 196 73 35M = 196 0 TATGTAAAGTAACTGAACCTATGAGTCACAGGTAT <<<<<<<<<<<<<<<<<<4;<<<<<<<::6<55:. MF:i:64 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:5:287:334:110 133 seq2 196 0 * = 196 0 GATGAATACTAAGATTGATGTAGCAGCTTTTGCAA .5+7)09<))&-&:33953<-./&&&)((;+3399 MF:i:192
+B7_597:7:5:753:806 83 seq2 197 99 35M = 45 -187 ATGTAAAGTAACTGAACCTATGAGTCACAGGTATT ;:<:<<<<:<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:27 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:4:149:572:877 163 seq2 197 99 36M = 334 173 ATGTAAAGTAACTGAACCTATGAGTCACAGGTATTC =>7><>;>+>>/;>>=>=>=:>><>=<<==;)<=8; MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_4:7:85:923:726 147 seq2 199 99 35M = 43 -191 GTAAAGTAACTGAACCTATGAGTCACAGGTATTCC <:<<<%3<<1<<86<<-<<<<<<<<<<<<6<<1<< MF:i:18 Aq:i:44 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:5:285:241:560 83 seq2 200 99 35M = 37 -198 TAAAGTAACTGAACCTATGAGTCACAGGTATTCCT :<<<<;<<,<<<<5<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:6:41:461:436 163 seq2 200 74 35M = 389 224 TAAAGTAACTGAACCTATGAGTCACAGGTATTCCT <<<<<<<<<<<<<<<<<<<:<<<<<<<<;<;;;:; MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_61:6:25:949:33 99 seq2 201 99 35M = 383 217 AAAGTAACTGAACCTATGAGTCACAGGTATTCCTG =;===/8========*==&;6=&=&:=6&:=::67 MF:i:18 Aq:i:63 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:2:60:590:1760 99 seq2 201 99 35M = 376 210 AAAGTAACTGAACCTATGAGTCACAGGTATTCCTG <:<<<<<2<<<<:<::<<<::<<<<<6<<<<<<<6 MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:6:86:693:234 163 seq2 202 82 35M = 388 221 AAGTAACTGAACCTATGAGTCACAGGTATTCCTGA ;;;;;;;;;;;;;;;;9;;;;;;;;99;;&70777 MF:i:18 Aq:i:18 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:6:4:223:776 163 seq2 203 93 35M = 387 219 AGTAACTGAACCTATGAGTCACAGGTATTCCTGAG <<<<<<<<<<<<<<<<<<<<<<<<<9<<<:;<;2< MF:i:18 Aq:i:19 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:3:88:84:1558 99 seq2 203 95 35M = 394 226 AGTAACTGAACCTATGAGTCACAGGTATTCCTGTG <<;<<<<<<<<<<<<;;<<<<<<<::<<<<<<7&< MF:i:18 Aq:i:22 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+B7_597:2:168:829:88 163 seq2 205 99 35M = 369 199 TAACTGAACCTATGAGTCACAGGTATTCCTGAGGA <<<<<<<<<<<<<<<<<<<<<<<6<<<<<<9;4;2 MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:1:168:389:889 147 seq2 205 99 36M = 37 -204 TAACTGAACCTATGAGTCACAGGTATTCCTGAGGAA ;<<;;56;==================8========8 MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:5:81:685:141 99 seq2 207 85 34M = 382 210 ACTGAACCTATGAGTCACAGGTATTCCTGAGGAA <<<<<<<<<<<<<<<<<<<<<;;<<;<<<',7,7 MF:i:18 Aq:i:17 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:4:26:1312:1400 99 seq2 207 99 40M = 385 218 ACTGAACCTATGAGTCACAGGTATTCCTGAGGAAAAAGAA <<<<;<<<:<<:<;<:<<<;:;<<<<<<:<8<1;;:::88 MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:4:127:725:381 83 seq2 209 99 34M = 39 -204 TGAACCTATGAGTCACAGGTATTCCTGAGGAAAA +<<.<<;<;<<<3;<;<<<<<<6<8;<<<<<<<1 MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:2:19:736:559 99 seq2 209 99 35M = 370 196 TGAACCTATGAGTCACAGGTATTCCTGAGGAAAAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:3:117:284:589 83 seq2 210 99 35M = 43 -202 GAACCTATGAGTCACAGGTATTCCTGAGGAAAAAG ==8==;==================;========== MF:i:18 Aq:i:56 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:5:120:596:847 163 seq2 211 83 35M = 410 234 AACCTATGAGTCACAGGTATTCCTGAGGAAAAAGA <<<<<<<<<<<<<;<<<9<<<<<<<;:<62;58;2 MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+B7_610:5:51:904:391 163 seq2 212 97 35M = 401 224 ACCTATGAGTCACAGGTATTCCTGAGGAAAAAGAA <<<<<<<<<<<<<<<<<;<<<<<;:;<2<6;;;;; MF:i:18 Aq:i:24 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:8:96:1314:1448 163 seq2 213 93 35M = 388 210 CCTATGAGTCACAGGTATTCCTGAGGAAAAATAAA <<<<<<<<<<<<<<<<<<<<<<<<5<4<<<<-<<< MF:i:18 Aq:i:18 NM:i:1 UQ:i:12 H0:i:1 H1:i:0
+EAS139_19:3:73:1158:535 163 seq2 213 99 40M = 377 204 CCTATGAGTCACAGGTATTCCTGAGGAAAAAGAAAAAGTG <<<<<<<<<<<<<<<<<<<<<<8<;;<<<<<9<<9::8:8 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:2:223:583:968 147 seq2 215 88 36M = 47 -204 TATGAGGCACAGGTATTCCTGAGGAAAAAGAAAAAG 1<';<<&%-:<<<<<:66%<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS1_97:3:160:173:889 163 seq2 215 99 35M = 379 199 TATGAGTCACAGGTATTCCTGAGGAAAAAGAAAAA <<<<<<<<<<<<<<<<<<<<;0<7<<;<<<;7<09 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:1:28:350:895 83 seq2 215 95 35M = 48 -202 TATGAGTCACAGGTATTCCTGAGGAAAAAGAAAAA :<;<<<:;<-<<<<<4;77<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_53:4:45:707:147 163 seq2 216 99 35M = 424 243 ATGAGTCACAGGTATTCCTGAGGAAAAAGAAAAAG <<<<<<<<<<<<&<<<<:<<9<<<9<<<<75;;;< MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:8:18:1757:95 99 seq2 216 45 35M = 374 193 ATGAGTCGCAGGTATTCCTGAGGAAAAAGAAAAAG <<<<<<<<<<<<<<<<<<<1<:<<<<<<:<<<;:< MF:i:18 Aq:i:0 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS51_66:6:310:747:415 163 seq2 217 99 35M = 387 205 TGAGTCACAGGTATTCCTGAGGAAAAAGAAAAAGT <<<<<<<<<<<<<<<<<<:<<<<<;<<<<<;<;<; MF:i:18 Aq:i:24 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:2:114:938:216 147 seq2 218 99 36M = 63 -191 GAGTCACAGGTATTCCTGAGGAAAAAGAAAAAGTGA <<<<7<6<<<<<<<6<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:1:179:629:513 163 seq2 220 99 35M = 409 224 GTCACAGGTATTCCTGAGGAAAAAGAAAAAGTGAG <<<<<<<<<<<<<<<;<;<<<<<<<<<<<<<;<<< MF:i:18 Aq:i:49 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:4:88:55:1187 99 seq2 220 66 35M = 391 206 GTCACAGGTATTCCTGAGGAAAAAGAAAAAGTGAG ;;<;;;<<99<<;;<;;;;;:;49;:;;;;87898 MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:5:119:38:945 99 seq2 221 99 35M = 428 242 TCACAGGTATTCCTGAGGAAAAAGAAAAAGTGAGA <<<<<<<<<<<<<<<8<<<<<8<<<8<;<<7<:<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:6:67:800:450 147 seq2 221 99 35M = 41 -215 TCACAGGTATTCCTGAGGAAAAAGAAAAAGTGAGA 9-<9<;<<<<9;5<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:49 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:5:102:915:87 147 seq2 222 99 35M = 65 -192 CACAGGTATTCCTGAGGAAAAAGAAAAAGTGAGAA ;<8<;;<<<<7;<<<;<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:1:113:367:659 163 seq2 222 72 35M = 390 203 CACAGGTATTCCTGAGGAAAAAGAAAAAGCGAGAA =9====8==========:=:=====9=:=&====5 MF:i:18 Aq:i:0 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS218_1:2:26:211:481 147 seq2 222 99 35M = 43 -214 CACAGGTATTCCTGAGGAAAAAGAAAAAGTGAGAA :<:<<<<<<9:5<<<<<<<<<<<<<<:<:<<<<<< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:3:90:1906:1528 83 seq2 222 99 35M = 41 -216 CACAGGTATTCCTGAGGAAAAAGAAAAAGTGAGAA :<<<<<<<<<3:<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:49 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:2:13:100:876 163 seq2 223 73 36M = 397 210 ACAGGGATTCCTGAGGAAAAAGAAAAAGTGAGAAGT <8<<<*<2<7<<<6<<<<<<6<<8<<<<5<<<<4<9 MF:i:18 Aq:i:30 NM:i:1 UQ:i:9 H0:i:0 H1:i:1
+EAS56_63:5:117:570:971 163 seq2 223 99 35M = 413 225 ACAGGTATTCCTGAGGAAAAAGAAAAAGTGAGAAG <<<<<<<<<<<<<;;;<<<<6<7;9;<:;<;<;;< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:8:50:1203:1094 83 seq2 223 99 35M = 46 -212 ACAGGTATTCCTGAGGAAAAAGAAAAAGTGAGAAG <7<<<<<5:+63<<<<<<<<<<<<<<<<2<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:6:107:395:312 83 seq2 224 99 35M = 44 -215 CAGGTATTCCTGAGGAAAAAGAAAAAGTGAGAAGT ;<;;<<<<;<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:27 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:3:29:833:612 83 seq2 224 99 35M = 58 -201 CAGGTATTCCTGAGGAAAAAGAAAAAGTGAGAAGT <<;<<<;<::<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:27 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:7:158:943:467 83 seq2 225 99 35M = 57 -203 AGGTATTCCTGAGGAAAAAGAAAAAGTGAGAAGTT <:<<;;<:5<<<<<<<<<<<<<<<<<<;<<<;<<< MF:i:18 Aq:i:46 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:2:201:768:529 163 seq2 225 99 35M = 396 206 AGGTATTCCTGAGGAAAAAGAAAAAGTGAGAAGTT ==========================1=======; MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:6:11:994:584 99 seq2 226 97 35M = 417 226 GGTATTCCTGAGGAAAAAGAAAAAGTGAGAAGTTT <<<<<<<<<<<7<<<<<<<<<<<<<6<<<<<<3<6 MF:i:18 Aq:i:24 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:2:206:873:186 83 seq2 227 99 35M = 66 -196 GTATTCCTGAGGAAAAAGAAAAAGTGAGAAGTTTG ;<<;--7<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:4:38:28:122 83 seq2 227 99 35M = 46 -216 GTATTCCTGAGGAAAAAGAAAAAGTGAGAAGTTTG ;9;9;-1<<<<<<<<<<<<<<<<<;<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:5:66:372:343 83 seq2 228 99 35M = 40 -223 TATTCCTGAGGAAAAAGAAAAAGTGAGAAGTTTGG ;<1;89<<<<<;<9<<<<9<<<;8<9<;<<<<<;8 MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:3:277:144:848 83 seq2 228 99 35M = 64 -199 TATTCCTGAGGAAAAAGAAAAAGTGAGAAGTTTGG <<<)63<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:6:21:1601:1666 83 seq2 228 99 40M = 56 -212 TATTACTGAGGAAAAAGAAAAAGTGAGAAGTTTGGAAAAA -;;3&1<<<<<<<<<<<<1<<<</<<<<<</<<<<<<<<< MF:i:18 Aq:i:72 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS56_57:1:189:503:110 83 seq2 229 79 35M = 63 -201 ATTCCTGAGGAAAAAGAAAAAGTGAGAAGTTTGGA =;;6:============================== MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:5:257:654:116 147 seq2 231 99 35M = 64 -202 TCCTGAGGAAAAAGAAAAAGTGAGAAGTTTGGAAA 0+37<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:7:69:1130:832 147 seq2 231 94 35M = 50 -216 TCCTGAGGAAAAAGAAAAAGTGAGAAGTTTGGAAA 6)377;3;;;;;;;;;1;;;;;;;;;;;;;;;;;; MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:5:254:542:848 147 seq2 233 99 36M = 79 -190 CTGAGGAAAAAGAAAAAGTGAGAAGTTTGGAAAAAC ,:4<8<<<<<<<<<<<<<;:<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:3:285:489:327 147 seq2 233 99 35M = 68 -200 CTGAGGAAAAAGAAAAAGTGAGAAGTTTGGAAAAA 9;;<<8<<<<<<<<<<<<;<<<<<<<<<<<<<<;< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:4:163:611:211 163 seq2 234 99 35M = 405 206 TGAGGAAAAAGAAAAAGTGAGAAGTTTGGAAAAAC ============8===============;=6;;<; MF:i:18 Aq:i:48 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:3:296:224:724 83 seq2 234 99 35M = 50 -219 TGAGGAAAAAGAAAAAGTGAGAAGTTTGGAAAAAC 8<<<5<<<<<<<<<<<<<<<<<<<<7<<<<<;<9< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:4:58:271:612 99 seq2 236 99 35M = 415 214 AGGAAAAAGAAAAAGTGAGAAGTTTGGAAAAACTA <;<<<<<<<<<7<<<<<<<<<<<<<<+47<<;<:: MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:1:15:381:715 147 seq2 237 99 35M = 72 -200 GGAAAAAGAAAAAGTGAGAAGTTTGGAAAAACTAT <<<<<<<<<<<<<<9<<<<<<97;<<<<<<<<9<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:3:203:419:243 83 seq2 237 99 35M = 54 -218 GGAAAAAGAAAAAGTGAGAAGTTTGGAAAAACTAT ;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_4:3:41:1281:1785 99 seq2 237 99 35M = 399 197 GGAAAAAGAAAAAGTGAGAAGTTTGGAAAAACTAT <<<<<<<<<<<<<<<<<<<<<;<<<;<<<<<<<8< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:7:218:858:445 99 seq2 239 99 35M = 421 217 AAAAAGAAAAAGTGAGAAGTTTGGAAAAACTATTT ;===5=;=======;==3======9;,79==;=== MF:i:18 Aq:i:27 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:4:319:250:718 83 seq2 240 99 35M = 52 -223 AAAAGAAAAAGTGAGAAGTTTGGAAAAACTATTTG <;:<<<<;<<<:<<<<<<49:<<<<<<<<<<<<<< MF:i:18 Aq:i:53 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:7:92:493:891 99 seq2 240 99 35M = 408 203 AAAAGAAAAAGTGAGAAGTTTGGAAAAACTATTTG <<<<<<<<<<<<<<<;<<<<<<<<<<<<<<<<<<8 MF:i:18 Aq:i:49 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:3:78:855:352 83 seq2 240 99 34M = 65 -209 AAAAGAAAAAGTGAGAAGTTTGGAAAAACTATTT 2<<<<<<<9<<4<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:3:277:921:474 83 seq2 241 99 35M = 45 -231 AAAGAAAAAGTGAGAAGTTTGGAAAAACTATTTGA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:27 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:2:41:199:388 99 seq2 243 99 35M = 403 195 AGAAAAAGTGAGAAGTTTGGAAAAACTATTTGAGG ;;<<<<<;;<<<<<<;;<;;<<;;<<<<<<99999 MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:7:307:481:625 99 seq2 245 99 36M = 410 201 AAAAAGTGAGAAGTTTGGAAAAACTATTTGAGGAAG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;;;9<; MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_53:3:134:126:465 99 seq2 245 99 35M = 434 224 AAAAAGTGAGAAGTTTGGAAAAACTATTTGAGGAA <<<<<<<<<<<<<;<<<<<<<<<<<<<5<<:<<41 MF:i:18 Aq:i:56 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:2:44:153:969 163 seq2 245 95 35M = 447 237 AAAAAGTGAGAAGTTTGGAAAAACTATTTGAGGAA *:::7<77<:<<<<:<<(597:<:<9//7<529/0 MF:i:18 Aq:i:36 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:3:182:1002:639 83 seq2 246 99 35M = 77 -204 AAAAGTGAGAAGTTTGGAAAAACTATTTGAGGAAG <<;;9;9<<<<<<;<7;<;<<<<;;<<<;<<7;<< MF:i:18 Aq:i:48 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:2:54:91:1232 147 seq2 246 99 35M = 57 -224 AAAAGTGAGAAGTTTGGAAAAACTATTTGAGGAAG ;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:2:204:737:61 163 seq2 247 99 35M = 437 225 AAAGTGAGAAGTTTGGAAAAACTATTTGAGGAAGT <<<<<<<<<<<<<<<<<<<<<<<<<:<<9<+4:<0 MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:6:148:170:895 147 seq2 247 99 35M = 91 -191 AAAGTGAGAAGTTTGGAAAAACTATTTGAGGAAGT <<9<<<<<<<<<7<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:6:46:122:479 147 seq2 248 99 35M = 87 -196 AAGTGAGAAGTTTGGAAGAACTATTTGAGGAAGTA <<<9<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS219_1:7:16:1343:1621 99 seq2 248 99 35M = 426 213 AAGTGAGAAGTTTGGAAAAACTATTTGAGGAAGTA <<<<<<<<8<<<<;<<<;<;<<<<<<<:;4;71:; MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:2:313:531:169 83 seq2 250 99 36M = 89 -197 GTGAGAAGTTTGGAAAAACTATTTGAGGAAGTAATT 98;<;;<<;8<<<<<<<<<<<8<<<<<<<<8<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:4:75:166:463 147 seq2 250 99 35M = 64 -221 GTGAGAAGTTTGGAAAAACTATTTGAGGAAGTAAT <<<<<============================== MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:7:130:260:553 99 seq2 250 99 34M = 439 224 GTGAGAAGTTTGGAAAAACTATTTGAGGAAGCAC <<<<<1<<<<<<<<<<6<<81</<4*2;7:+90( MF:i:18 Aq:i:42 NM:i:2 UQ:i:31 H0:i:1 H1:i:0
+EAS56_59:2:60:677:921 99 seq2 250 96 35M = 393 178 GTGAGAAGTTTGGAAAAACTATTTGAGGAAGTAAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:22 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:6:60:1037:1146 99 seq2 250 99 35M = 447 232 GTGAGAAGTTTGGAAAAACTATTTGAGGAAGTAAT <<<<<<<<<<<<<<<<<<<<<<<<<;<:;;;;;;< MF:i:18 Aq:i:53 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:5:17:1222:783 83 seq2 251 99 35M = 87 -199 TGAGAAGTTTGGAAAAACTATTTGAGGAAGTAATT 6<<<8<69<8199<7<<<6<<<<<<<<<1:<:<<: MF:i:18 Aq:i:59 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:6:96:491:1891 163 seq2 253 99 35M = 409 191 AGAAGTTTGGAAAAACTATTTGAGGAAGTAATTGG <:<<<<<::<<<<<<<<<<<<<<<<:<<::7<<:7 MF:i:18 Aq:i:46 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:6:75:615:555 99 seq2 255 99 35M = 416 196 AAGTTTGGAAAAACTATTTGAGGAAGTAATTGGGG <<<<<<<<<<<<<<<<<<<<<;<;<<<29<;.484 MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:5:32:686:735 147 seq2 255 78 35M = 84 -206 AAGTTTGGAAAAACTATTTGAGGAAGTAATTGGGG <<<<<<<<<<<<<9<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:78 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_4:3:65:85:1547 163 seq2 257 99 35M = 434 212 GTTTGGAAAAACTATTTGAGGAAGTAATTGGGGAA <<<<<<<<<<<<<<<<<<<<;<<<<<<<<<<:<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:7:94:1655:1921 99 seq2 258 85 35M = 447 224 TTTGGAAAAACTATTTGAGGAAGTAATTGGGGAAA <<<8<<<<<<<<<8<<8;8<;<;<;;<<9+868<; MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+B7_610:7:177:469:800 99 seq2 259 99 35M = 433 209 TTGGAAAAACTATTTGAGGAAGTAATTGGGGAAAA <<<<<<<<<<<<<<<<<<<<<<<<;<<;;<<<;<; MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:7:178:276:693 83 seq2 259 99 36M = 96 -199 TTGGAAAAACTATTTGAGGAAGTAATTGGGGAAAAC :;<;<<<<<<<<<<<;<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:3:14:697:541 99 seq2 259 99 35M = 432 208 TTGGAAAAACTATTTGAGGAAGTAATTGGGGAAAA <<<<<<<<<<<<<<<<<<<:<<<<<<<;;;;8;;< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:6:37:156:134 163 seq2 261 99 35M = 443 217 GGAAAAACTATTTGAGGAAGTAATTGGGGAAAACC ;;;;;;;;;;9;;;;;;;;;;;;;;;9;;;77679 MF:i:18 Aq:i:49 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:1:215:861:605 83 seq2 262 94 36M = 107 -191 GAAAAACTATTTGAGGAAGTAATTGGGGAAAACCTC ;<<<<<;:<7:<<<;<<<<<<<;:<<<<<<<<<<<< MF:i:18 Aq:i:19 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:2:3:945:2005 83 seq2 262 99 35M = 77 -220 GAAAAACTATTTGAGGAAGTAATTGGGGAAAACCT 7<<<<;;<<;<<<<<7<<<<<<<<<;<<<<<<<<< MF:i:18 Aq:i:44 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:6:52:751:360 163 seq2 263 99 35M = 443 215 AAAAACTATTTGAGGAAGTAATTGGGGAAAACCTC <<<<<<<<<<<<<<<<<<<<<<<:76<<<<;9:;: MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:6:238:514:194 83 seq2 265 99 35M = 68 -232 AAACTATTTGAGGAAGTAATTGGGGAAAACCTCTT <<6<<<<:9<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:5:194:470:416 147 seq2 265 99 35M = 98 -202 AAACTATTTGAGGAAGTAATTGGGGAAAACCTCTT <<<7<<;<<<<<<<<<:<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:4:71:517:742 147 seq2 266 99 35M = 81 -220 AACTATTTGAGGAAGTAATTGGGGAAAACCTCTTT <<<<<<2<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:49 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:8:254:617:73 83 seq2 266 99 35M = 83 -218 AACTATTTGAGGAAGTAATTGGGGAAAACCTCTTT <<:<<<9;<<<;;<:<-<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:6:199:818:124 147 seq2 266 99 35M = 73 -228 AACTATTTGAGGAAGTAATTGGGGAAAACCTCTTT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:3:41:653:1568 83 seq2 266 99 35M = 95 -206 AACTATTTGAGGAAGTAATTGGGGAAAACCTCTTT 977979;:;<;;;;;;<<5;<;<;<<<;;;;;;;; MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:5:211:84:84 99 seq2 268 99 35M = 440 207 CTATTTGAGGAAGTAATTGGGGAAAACCTCTTTAG <<<<<<<<<<<<<<<<:<<:<<:<<<44<4<<9<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:2:152:355:962 163 seq2 269 99 35M = 456 222 TATTTGAGGAAGTAATTGGGGAAAACCTCTTTAGT <;<<<<<;8<<<<<<<<<;5;;88<<3<<<<<&0; MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:5:285:395:450 99 seq2 269 99 35M = 458 224 TATTTGAGGAAGTAATTGGGGAAAACCTCTTTAGT <<<<<<<;<<<;<<<<<;:<:7<;<;7<7<<;;7< MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:3:15:568:42 121 seq2 269 69 35M = 269 0 TTTTTGAGGAAGTAATTGGGGAAAACCTCTTTAGT !!;:<8<;<<<8<<<<<<<<8<<<<<<<<<<<<<< MF:i:64 Aq:i:0 NM:i:2 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:3:15:568:42 181 seq2 269 0 * = 269 0 TTTTTTTTTTTGTTTTTTTTTTTTTTTTTTTTATA !!!!!!!!!++++!!!!!!!!!!!!!!!!!!!,!, MF:i:192
+EAS192_3:8:6:237:885 99 seq2 269 99 35M = 433 199 TATTTGAGGAAGTAATTGGGGAAAACCTCTTTAGT <<<<<<<<9<<<<<<<<<<<<<<<<<<<<<;;;<; MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:5:5:259:250 147 seq2 269 99 35M = 115 -189 TATTTGAGGAAGTAATTGGGGAAAACCTCTTTAGT 8<83;<<<<<<<<<<5<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:6:206:994:556 73 seq2 270 75 35M = 270 0 ATTTGAGGAAGTAATTGGGGAAAACCTCTTTAGTC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<4<<;<< MF:i:64 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:6:206:994:556 133 seq2 270 0 * = 270 0 NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! MF:i:192
+EAS54_71:4:169:256:888 83 seq2 270 99 34M = 94 -210 ATTTGAGGAAGTAATTGGGGAAAACCTCTTTAGT &<<:<;<<;;<8<;<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:2:317:72:221 163 seq2 270 99 35M = 422 187 ATTTGAGGAAGTAATTGGGGAAAACCTCTTTAGTC ===========;=======;;:==6=;=====;== MF:i:18 Aq:i:53 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:8:40:925:442 83 seq2 271 99 35M = 93 -213 TTTGAGGAAGTAATTGGGGAAAACCTCTTTAGTCT =;================================= MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:2:158:909:321 163 seq2 271 99 35M = 453 217 TTTGAGGAAGTAATTGGGGAAAACCTCTTTAGTCT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:1:35:522:294 83 seq2 272 99 35M = 95 -212 TTGAGGAAGTAATTGGGGAAAACCTCTTTAGTCTT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:4:176:971:874 163 seq2 273 76 35M = 432 195 TGAGGAAGTAATTGGGGAAAACCTCTTTAGTCTTG <<<<<<<<<<<<<:<;<<<<<<<<<<<<<5<<<<7 MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:7:226:869:36 99 seq2 273 99 35M = 461 223 TGAGGAAGTAATTGGGGAAAACCTCTTTAGTCTTG :<<<<,:<;:.:<<:<<717,;2171717717116 MF:i:18 Aq:i:59 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:6:106:595:322 163 seq2 274 99 35M = 440 201 GAGGAAGTAATTGGGGAAAACCTCTTTAGTCTTGC <<<<<<<<<<<<<<<<<<<<<<<<<<<<:<<<<:: MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:1:54:436:1452 83 seq2 275 99 35M = 108 -202 AGGAAGTAATTGGGGAAAACCTCTTTAGTCTTGCT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:4:77:1780:693 147 seq2 276 99 40M = 106 -210 GGAAGTAATTGGGGAAAACCTCTTTAGTCTTGCTAGAGAT :**::799<<9<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:3:147:423:584 99 seq2 277 99 35M = 451 209 GAAGTAATTGGGGAAAACCTCTTTAGTCTTGCTAG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<9;;96 MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:2:188:782:483 163 seq2 277 99 35M = 431 189 GAAGTAATTGGGGAAAACCTCTTTAGTCTTGCTAG <<<<<<<<<<<<<<<<<<<<<<<<<;<<<<7<;77 MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:4:78:1314:1275 99 seq2 277 99 35M = 469 227 GAAGTAATTGGGGAAAACCTCTTTAGTCTTGCTAG <<<<<<<<<<<<<<<<<<<<<6<<<<<<<<<<<<8 MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:7:63:727:203 147 seq2 278 99 35M = 114 -199 AAGTAATTGGGGAAAACCTCTTTAGTCTTGCTAGA <<;7<<;<<<<<<<<<;<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:2:13:1507:1146 147 seq2 278 99 35M = 84 -229 AAGTAATTGGGGAAAACCTCTTTAGTCTTGCTAGA 88788;,;:-:2;;;;;;;;:;:;;;;;;;;;;;; MF:i:18 Aq:i:49 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:1:77:1000:1780 83 seq2 279 66 35M = 123 -191 AGTAATTGGGGAAAACCTCTTTAGTCTTGCTAGAG 777774;;4-7;;;;;;:;;;:;;;<;;;;<<<<; MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:1:93:490:901 163 seq2 280 99 35M = 445 200 GTAATTGGGGAAAACCTCTTTAGTCTTGCTAGAGA <<<<<<<<<<<<<;<<<<<<<;<<<<<:<<1+4-8 MF:i:18 Aq:i:53 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:6:227:657:95 99 seq2 280 99 35M = 458 213 GTAATTGGGGAAAACCTCTTTAGTCTTGCTAGAGA <<<<<<<<<<<<<<<<<<<<<<<<<<<;<<<8<85 MF:i:18 Aq:i:59 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:7:57:324:546 163 seq2 281 99 36M = 458 213 TAATTGGGGAAAACCTCTTTAGTCTTGCTAGAGATT <<<<<<<<<<<<<<<<<<<<<:<<<8:8<<;::;;; MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:7:223:440:667 147 seq2 282 99 35M = 97 -220 AATTGGGGAAAACCTCTTTAGTCTTGCTAGAGATT <<;;<;;<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:4:26:274:1078 163 seq2 282 99 40M = 458 216 AATTGGGGAAAACCTCTTTAGTCTTGCTAGAGATTTAGAC <<<2<<<<<<<<<<<<<<<<<<<<<<<<<;;:;;;::::: MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:7:196:511:896 163 seq2 283 99 35M = 446 198 ATTGGGGAAAACCTCTTTAGTCTTGCTAGAGATTT <<<<<<<<<<<<<<<<<<<<<<<<;<<<4<88;<< MF:i:18 Aq:i:52 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:3:112:729:591 147 seq2 283 99 35M = 86 -232 ATTGGGGAAAACCTCTTTAGTCTTGCTAGAGATTT ;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:6:34:380:815 83 seq2 283 99 35M = 91 -227 ATTGGGGAAAACCTCTTTAGTCTTGCTAGAGATTT ;;;;<<<<<<;<<<<;<<<<<<<<<<<<<<<<<;< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:8:117:156:84 147 seq2 285 99 35M = 95 -225 TGGGGAAAACCTCTTTAGTCTTGCTAGAGATTTAG <;;<:<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:5:61:1000:1534 83 seq2 286 99 35M = 104 -217 GGGGAAAACCTCTTTAGTCTTGCTAGAGATTTAGA <<;<<<<;;<<;6;<<<;<4;<<7<<<<<;<<<<< MF:i:18 Aq:i:63 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:2:22:1623:709 147 seq2 287 99 35M = 107 -215 GGGAAAACCTCTTTAGTCTTGCTAGAGATTTAGAC <'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:7:7:682:201 163 seq2 288 99 35M = 452 199 GGAAAACCTCTTTAGTCTTGCTAGAGATTTAGACA <<<<<<<7<<7<<<<77&;-9<97<76<;<<993< MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:5:91:89:666 153 seq2 289 60 35M * 0 0 GAAAACCTCTTTAGTCTTGCTAGAGATTTAGACAT 74752;;4;;;;;;;;7);;;4;;;;)4;;;;;13 MF:i:32 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:6:46:13:880 99 seq2 290 99 35M = 445 190 AAAACCTCTTTAGTCTTGCTAGAGATTTAGACATC <<<<<<<<<<<<<<<<<<<<;<7<3<<<9<+;;<9 MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:1:187:715:521 163 seq2 291 99 35M = 451 195 AAACCTCTTTAGTCTTGCTAGAGATTTAGACATCT <<<<<<<<<<<<<<<<<<<<:<<<<<<<;<<;<;; MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:6:210:809:735 83 seq2 291 99 35M = 93 -233 AAACCTCTTTAGTCTTGCTAGAGATTTAGACATCT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:5:145:383:182 83 seq2 291 99 35M = 105 -221 AAACCTCTTTAGTCTTGCTAGAGATTTAGACATCT <<;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_32:8:89:254:332 83 seq2 291 76 35M = 124 -202 AAACCTCTTTAGTCTTGCTAGAGATTTAGACATCT <<<<<<:<;<<<<<<<<9<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:2:63:816:921 83 seq2 291 99 35M = 106 -220 AAACCTCTTTAGTCTTGCTAGAGATTTAGACATCT <<<<<<<<<4<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:2:280:662:939 99 seq2 294 99 35M = 442 183 CCTCTTTAGTCTTGCTAGAGATTTAGACATCTAAA <<<<<<<<<<<<<;<<<;;7<<<<<<<<<<<<:8< MF:i:18 Aq:i:48 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:3:250:628:423 163 seq2 295 99 36M = 489 230 CTCTTTAGTCTTGCTAGAGATTTAGACATCTAAATG <<<<<<<<<<<<<<<<<<:;<<<<:<<<<;;;;;;4 MF:i:18 Aq:i:27 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:4:255:549:422 163 seq2 295 99 35M = 456 196 CTCTTTAGTCTTGCTAGAGATTTAGACATCTAAAT <<<<<<<<<<<<<<<<;<<<<<<<:<<<<<<;;;< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:2:2:491:1886 89 seq2 295 75 35M * 0 0 CTCTTTAGTCTTGCTAGAGATTTAGACATCTAAAT <<:<8:<<<:<<<<<<<<<<<9<<<<<<<<<<<<: MF:i:32 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:3:267:821:860 163 seq2 296 99 35M = 451 189 TCTTTAGTCTTGCTAGAGATTTAGACATCTAAATG ;<<<<<8<<<<<8<<;<8<<<<<5<;<<<<<2;<5 MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:2:42:333:516 83 seq2 296 99 35M = 109 -222 TCTTTAGTCTTGCTAGAGATTTAGACATCTAAATG <<<<<<<<7<63<7<<<<<<<<<<<7<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:2:119:161:322 99 seq2 297 99 35M = 479 217 CTTTAGTCTTGCTAGAGATTTAGACATCTAAATGA <<<<<<<<<<<<<<;<<<<<<<;<<<<<<<<<</6 MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:4:48:310:473 147 seq2 298 66 35M = 123 -210 TTTAGTCTTGCTAGAGATTTAGACATCTAAATGAA 77999;;6;;;;;;;;;;;;;;;9;;;;;;;;;;; MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:6:159:273:253 153 seq2 299 76 35M * 0 0 TTAGTCTTGCTAGAGATTTAGACATCTAAATGAAA <<<<<<<<:<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:32 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:6:181:392:500 99 seq2 299 99 35M = 470 206 TTAGTCTTGCTAGAGATTTAGACATCTAAATGAAA <<<<<:<<<2<<<<;5<<<<29+<<)</65<7.24 MF:i:18 Aq:i:63 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:4:17:989:186 147 seq2 299 91 35M = 120 -214 TTAGTCTTGCTAGAGATTTAGACATCTAAATGAAA 87;38$<3=/<==============9========= MF:i:18 Aq:i:20 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:2:33:1445:1357 147 seq2 299 85 35M = 121 -213 TTAGTCTTGCTAGAGATTTAGACATCTAAATGAAA 88888;;;;;;;:;;;;;;;:;9;;;;;;;;;;;; MF:i:18 Aq:i:18 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:6:119:730:190 147 seq2 301 99 35M = 114 -222 AGTCTTGCTAGAGATTTAGACATCTAAATGAAAGA ;;;3;<<:<<<<:<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:5:62:969:12 99 seq2 303 99 35M = 464 196 TCTTGCTAGAGATTTAGACATCTAAATGAAAGAGG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:7:103:731:697 147 seq2 304 72 35M = 125 -214 CTTGCTAGAGATTTAGACATCTAAATGAAAGAGGC :::;3:<<<<<<<:<<<<<<:<<<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:2:111:142:21 163 seq2 304 99 35M = 479 210 CTTGCTAGAGATTTAGACATCTAAATGAAAGAGGC <<<<<<<<:<:<<<<<<<<<<<<<<<<<<<<;<;9 MF:i:18 Aq:i:28 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:7:319:280:57 99 seq2 306 99 35M = 467 196 TGCTAGAGATTTAGACATCTAAATGAAAGAGGCTC ;==========;=====6;=========;=<;6;; MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:8:76:205:587 163 seq2 306 99 35M = 483 212 TGCTAGAGATTTAGACATCTAAATGAAAGAGGCTC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:28 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:2:279:124:41 147 seq2 307 69 36M = 124 -219 GCTAGAGATTTAGACATCTAAATGAAAGAGGCTCAA :17<8<<<:&<<<<<<:;'<<<<<<<<<<;<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:3:10:349:1147 153 seq2 307 74 40M * 0 0 GCTAGAGATTTAGACATCTAAATGAAAGAGGCTCAAAGAA :/:::<<<<<<<<<<<<;<<<<<<<<<<<<<<<<<<<<<< MF:i:32 Aq:i:16 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:1:22:490:2011 99 seq2 307 99 35M = 485 213 GCTAGAGATTTAGACATCTAAATGAAAGAGGCTCA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:6:46:173:214 163 seq2 308 99 35M = 487 214 CTAGAGATTTAGACATCTAAATGAAAGAGGCTCAA <<<<<<<<<<<<<<<<<<<<<<<<<;<3<<<<<<; MF:i:18 Aq:i:29 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:2:283:577:398 99 seq2 308 99 35M = 488 215 CTAGAGATTTAGACATCTAAATGAAAGAGGCTCAA <<<<<<<<<<<<<<<<<<<9<<<<<<<<<;<<<<< MF:i:18 Aq:i:29 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:2:27:280:592 99 seq2 310 99 36M = 484 210 AGAGATTTAGACATCTAAATGAAAGAGGCTCAAAGA <<<<<<<<<<<<<<<<<<<<<<<<9<<<<<<<<<5< MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:3:11:1238:1728 163 seq2 310 99 35M = 475 200 AGAGATTTAGACATCTAAATGAAAGAGGCTCAAAG <<7<<<<<;<<<<<<<<<<<<;<<<;<<<<<<;;< MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:6:118:121:760 89 seq2 311 77 36M * 0 0 GAGATTTAGACATCTAAATGAAAGAGGCTCAAAGAA :<<<;;<<<<6<;<<<;<<<<;<<<<<<<<<<<<<< MF:i:32 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:7:318:679:883 153 seq2 313 75 35M * 0 0 GATTTAGACATCTAAATGAAAGAGGCTCAAAGAAT <<;4<<;<:<<7<<<<<<<<<<<<<<<<<<<<<<< MF:i:32 Aq:i:19 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:4:30:1452:1563 83 seq2 313 94 35M = 122 -226 GATTTAGACATCTAAATGAAAGAGGCTCAAAGAAT <<39<<<59<<:<<+<<<6<<:<<<<<<<<<<<<< MF:i:18 Aq:i:20 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:1:189:130:136 99 seq2 314 79 35M = 494 215 ATTTAGACATCTAAATGAAAGAGGCTCAAAGAATG ==<<=================<<====<<=;=6== MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:5:27:577:849 83 seq2 316 99 35M = 114 -237 TTAGACATCTAAATGAAAGAGGCTCAAAGAATGCC 5:<;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:3:71:478:175 83 seq2 317 99 35M = 171 -181 TAGACATCTAAATGAAAGAGGCTCAAAGAATGCCA <<<<;<96<<<<;<<<<<<<<<77<<<<<<<<<<; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:4:38:999:463 99 seq2 317 39 35M = 503 221 TAGACATCTAAATGAAAGNNGCNNNAAGAATGCCA 7<<<<<<<<:07<<:<<7!!<<!!!::<88<<<<4 MF:i:130 Aq:i:39 NM:i:5 UQ:i:0 H0:i:0 H1:i:0
+EAS54_71:8:215:830:609 89 seq2 317 71 33M * 0 0 AAGACATCTAAATGAAAGAGGCTCAAAGAATGC +<)<:<<:<<<<<<<<<9<<<<<;<<<<<<<<< MF:i:32 Aq:i:0 NM:i:1 UQ:i:11 H0:i:1 H1:i:0
+EAS188_7:7:213:309:373 83 seq2 317 99 35M = 161 -191 TAGACATCTAAATGAAAGAGGCTCAAAGAATGCCA <<<86<82<<<<<<<<<<<<<<<9<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:7:45:1339:1807 153 seq2 319 64 35M * 0 0 GACATCTAAATGAAAGAGGCTCAAAGAATGCCAGG 77797;;:;::&:;;0:;8;;4;;:;;6;;;;;;; MF:i:32 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:5:197:52:58 83 seq2 323 99 35M = 165 -193 TCTAAATGAAAGAGGCTCAAAGAATGCCAGGAAGA <7;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:8:6:104:118 83 seq2 323 99 35M = 154 -204 TCTAAATGAAAGAGGCTCAAAGAATGCCAGGAAGA ;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:27 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:6:185:96:948 147 seq2 324 99 36M = 160 -200 CTAAATGAAAGAGGCTCAAAGAATGCCAGGAAGATA 6<;;<;<<;<<<<<747<<<<<<<<77<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:4:61:346:384 163 seq2 324 68 35M = 496 207 CTAAATGAAAGAGGCTCAAAGAATGCCAGGAAGAT <<;<<<<<<<<9<;<<9;<6<2;<6<<<;9*558; MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:8:177:800:714 163 seq2 324 76 35M = 497 208 CTAAATGAAAGAGGCTCAAAGAATGCCAGGAAGAT <<<<<<<<<<<<<<<<<<<<<;<<<;<;<<<<<;< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:4:329:339:408 99 seq2 325 99 36M = 515 226 TAAATGAAAGAGGCTCAAAGAATGCCAGGAAGATAC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<9<<<<; MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:6:214:565:337 99 seq2 326 99 35M = 481 190 AAATGAAAGAGGCTCAAAGAATGCCAGGAAGATAC <;<<<<<<<<<<<<<<;<<<<9<<<<<;;;;<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_4:7:296:401:60 89 seq2 327 68 35M * 0 0 AATGAAAGAGGCTCAAAGAATGCCAGGAAGATACA <<*<<<<7<<)<<3<<<9<<<<<<<<<<<<<<;<< MF:i:32 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:6:88:1413:14 89 seq2 327 76 35M * 0 0 AATGAAAGAGGCTCAAAGAATGCCAGGAAGATACA <<<<<<<<<<<;;;<<<<<<;<;;<<<<<<<<<<< MF:i:32 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:1:34:649:318 163 seq2 328 65 35M = 481 188 ATGAAAGAGGCTCAAAGAATGCCAGGAAGATACAT 9<<3<<<9<<<<<<<<<7<<9<<0<<.0<*:77,; MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:2:29:1822:1881 83 seq2 328 74 40M = 150 -218 ATGAAAGAGGCTCAAAGAATGCCAGGAAGATACATTGCAA ;87;;<<<;<5<5<<<<<<<;<<<<<<<<<<<<:<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:8:187:199:369 153 seq2 329 74 35M * 0 0 TGAAAGAGGCTCAAAGAATGCCAGGAAGATACATT ;<><<<<<<<<7<<<<<<<<=<<<<<<<<<<<<<< MF:i:32 Aq:i:19 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:2:23:268:529 153 seq2 329 71 35M * 0 0 TGAAAGAGGCTCAAAGAATGCCAGGAAGATACATT 7;<<<<<<57;-<<<<<<:<77<<<<<<<;<;<<< MF:i:32 Aq:i:28 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:2:315:219:7 153 seq2 330 69 35M * 0 0 GAAAGAGGCTCAAAGAATGCCAGGAAGATACATTG 7==::<2=8<<<=====>888<=2=>==>,>,>>8 MF:i:32 Aq:i:19 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:4:63:5:870 83 seq2 330 75 35M = 148 -217 GAAAGAGGCTCAAAGAATGCCAGGAAGATACATTG :<;<;<<<4:;<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:5:243:557:560 163 seq2 331 75 36M = 499 204 AAAGAGGCTCAAAGAATGCCAGGAAGATACATTGCA <<<<<<<9<<<<<<<<<<<<<<<<<<;<<89<<9<; MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:2:270:430:269 163 seq2 331 99 36M = 519 224 AAAGAGGCTCAAAGAATGCCAGGAAGATACATTGCA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;;7;: MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:6:284:442:747 89 seq2 331 75 35M * 0 0 AAAGAGGCTCAAAGAATGCCAGGAAGATACATTGC <;<<<<<:<;<<<<<<<<;<<<<<<<<<<<<<<<< MF:i:32 Aq:i:29 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_4:7:71:31:1973 89 seq2 331 76 35M * 0 0 AAAGAGGCTCAAAGAATGCCAGGAAGATACATTGC <<<<<7<:<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:32 Aq:i:29 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:2:30:466:652 147 seq2 332 98 35M = 163 -204 AAGAGGCTAAAAGAATGCCAGGAAGATACATTGCA <<<<<;3;&<<<<<<<</6<<<<<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+EAS56_61:3:208:118:673 147 seq2 332 76 35M = 169 -198 AAGAGGCTCAAAGAATGCCAGGAAGATACATTGCA <<<<<;;<;<<<<<<<<<:<<<<<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:1:95:1530:28 163 seq2 332 74 35M = 490 193 AAGAGGCTCAAAGAATGCCAGGAAGATACATTGCA ;;;;;;;;;;:;;;;;;;8;;;;;;;;;;;77747 MF:i:18 Aq:i:9 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:7:104:965:517 73 seq2 333 77 35M = 333 0 AGAGGCTCAAAGAATGCCAGGAAGATACATTGCAA <<<<<<<<<<<<<<<<<<<<<:<<<<<<<8<<;<< MF:i:64 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:7:104:965:517 133 seq2 333 0 * = 333 0 NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! MF:i:192
+EAS54_65:7:155:629:357 163 seq2 333 99 35M = 521 223 AGAGGCTCAAAGAATGCCAGGAAGATACATTGCAA <<<<<<<<8<8<<6<<<<<<<<;<9<5<;<;;941 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:4:149:572:877 83 seq2 334 99 36M = 197 -173 GAGGCTCAAAGAATGCCAGGAAGATACATTGCAAGA 6<94693<;<<<<;;<<<<<<<<<<;9<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:5:53:544:889 99 seq2 335 76 35M = 495 195 AGGCTCAAAGAATGCCAGGAAGATACATTGCAAGA <<<<<<<<;<<<<<<<<<<<<<<<<<;<<<<<;<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:6:226:370:91 99 seq2 335 99 35M = 482 182 AGGCTCAAAGAATGCCAGGAAGATACATTGCAAGA 8<<<;<8<8<;<<<8<<;7<7;8784<<,;864<& MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:4:119:651:88 163 seq2 337 99 35M = 527 225 GCTCAAAGAATGCCAGGAAGATACATTGCAAGACA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<9;< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:6:20:592:496 163 seq2 338 75 35M = 498 195 CTCAAAGAATGCCAGGAAGATACATTGCAAGACAG <<<<<<<<<<<<<<<<<<<<<<<<<==<<<<<<:< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:3:214:946:229 83 seq2 339 99 35M = 165 -209 ACAAAGAATGCCAGGAAGATACATTGCAAGACAGA )+<<<*<<77;8<;7<<8<4<;<88<<<<<<<<<< MF:i:18 Aq:i:65 NM:i:1 UQ:i:8 H0:i:1 H1:i:0
+EAS188_7:5:163:982:695 99 seq2 339 77 35M = 499 195 TCAAAGAATGCCAGGAAGATACATTGCAAGACAGA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<<; MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:4:14:1872:1521 163 seq2 339 62 35M = 500 196 TCAAAGAATGCCAGGAAGATACATTGCAAGTCAGA 7<<<<77<<<3<3<7.'<<<<<7<67<+.0%4*<4 MF:i:18 Aq:i:2 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+EAS192_3:4:293:168:240 147 seq2 340 99 35M = 167 -208 CAAAGAATGCCAGGAAGATACATTGCAAGACAGAC +;;;;<8<<86<<<<<<<;;8;7;<;<8<8;<<<< MF:i:18 Aq:i:48 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:5:86:697:941 83 seq2 341 99 35M = 187 -189 AAAAAAATCCCGGAAGATACATTGCAAGACAGACT 1<<%<<<1:<58<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:27 NM:i:4 UQ:i:67 H0:i:0 H1:i:0
+EAS54_71:4:14:88:306 99 seq2 341 99 34M = 521 215 AAAGAATGCCAGGAAGATACATTGCAAGACAGAC <<<<<<8<<<<<<;<<<3<<<8<<;<;;<15<:6 MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:6:183:697:555 163 seq2 341 84 35M = 505 199 AAAGAATGCCAGGAAGATACATTGCCAGACAGACT =====================:===&==:;==5;; MF:i:18 Aq:i:37 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+EAS56_57:3:41:739:907 163 seq2 344 99 35M = 520 211 GAATGCCAGGAAGATACATTGCAAGACAGACTTCA <<<<<<<<<<<<<<<<<<<<<<<<;<9<<<;;;;; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:2:100:1147:124 83 seq2 345 99 35M = 150 -230 AATGCCAGGAAGATACATTGCAAGACAGACTTCAT <<<<96<<<<<<<<<<<<<<<<<<<<<<:<<<<<< MF:i:18 Aq:i:29 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:5:127:828:697 99 seq2 346 99 35M = 552 241 ATGCCAGGAAGATACATTGCAAGACAGACTTCATC <<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<;;<; MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:8:62:125:888 163 seq2 347 99 35M = 504 192 TGCCAGGAAGATACATTGCAAGACAGACTTCATCA <<<<<<<<<<<<<<<<<<<::<<<:7<::<:;<<: MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:1:1:1598:843 163 seq2 347 99 40M = 500 193 TGCCAGGAAGATACATTGCAAGACAGACTTCATCAAGATA <<<<<<8<<<<<<<<<<<<<<<<<<<<<<<<<<8<4:8:: MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:2:71:83:58 83 seq2 349 77 35M = 148 -236 CCAGGAAGATACATTGCAAGACAGACTTCATCAAG 8<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:1:88:1454:418 163 seq2 349 99 35M = 522 208 CCAGGAAGATACATTGCAAGACAGACTTCATCAAG :<<:<<<<<<<<<<<::::<:<:<9<5<<<<<<8: MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:5:36:649:554 163 seq2 350 99 35M = 523 208 CAGGAAGATACATTGCAAGACAGACTTCATCAAGA <<<<<4<<8<<<<<<8<6<<88<<<<<<<-;<;0; MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:2:189:831:878 163 seq2 351 99 35M = 555 239 AGGAAGATACATTGCAAGACAGACTTCATCAAGAT :<<<2<<<<<<<<<<:8<8<<<<<<<<<<87489; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:6:14:1211:1332 83 seq2 351 99 35M = 178 -208 AGGAAGATACATTGCAAGACAGACTTCATCAAGAT 978961;;991;97;<;;<;<<;;;;;<;;<:8:< MF:i:18 Aq:i:64 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:4:328:537:640 147 seq2 352 99 35M = 185 -202 GGAAGATACATTGCAAGACAGACTTCATCAAGATA ;:<<;<<<<<::<:<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:1:85:361:418 99 seq2 353 99 36M = 517 200 GAAGATACATTGCAAGACAGACTTCATCAAGATATG <<<<<<<<<<<<<;<<<<<<<<<<<<<<;4;<<<<3 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:2:329:437:643 99 seq2 354 99 36M = 540 222 AAGATACATTGCAAGACAGACTTCATCAAGATATGT <<<<<<<<<<<<<<<<<<<<<<<<<<<;<<;<<<<1 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:6:135:354:66 147 seq2 356 99 35M = 188 -203 GATACATTGCAAGACAGACTTCATCAAGATATGTA ;;;;7<<<<:<<<<;<<<:<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:7:9:648:712 147 seq2 358 99 35M = 182 -211 TACATTGCAAGACAGACTTCATCAAGATATGTAGT *;0;;;95<<<<7<<<;;<<<;;<<<<;<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:4:36:1184:994 163 seq2 358 99 35M = 518 195 TACATTGCAAGACAGACTTCATCAAGATATGTAGT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<8<<8< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:4:50:30:15 147 seq2 358 10 35M = 192 -201 TACATTGCAAGACAGTCGTCAGCAAGATATGTAGT 1-%-22&&)&11,&/&&176<&<<<222<,6,<<< MF:i:18 Aq:i:10 NM:i:3 UQ:i:26 H0:i:0 H1:i:0
+EAS51_66:4:322:350:374 163 seq2 360 99 35M = 546 221 CATTGCAAGACAGACTTCATCAAGATATGTAGTCA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<; MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:7:41:745:603 163 seq2 360 99 35M = 536 211 CATTGCAAGACAGACTTCATCAAGATATGTAGTCA <<<<<<<<<<<<:<<<<<<<<<<<<<<<6<:8<<: MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:8:138:186:459 163 seq2 360 97 35M = 518 193 CATTGCAAGACAGACTTCATCAAGATATGTAGTCA <*<<7<<0<7<<+<-:<<&<:6:4:0-:<<2.:5< MF:i:18 Aq:i:37 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:4:41:1308:619 83 seq2 360 99 35M = 184 -211 CATTGCAAGACAGACTTCATCAAGATATGTAGTCA 0<9476<<<<<0<<<2<&<0<.<<<<<<<<<.<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:1:125:884:276 163 seq2 362 99 35M = 541 214 TTGCAAGACAGACTTCATCAAGATATGTAGTCATC <<<<<<<<<<<8<<<<<<<<<<<<<<<<<<;;<<; MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:4:156:21:69 83 seq2 362 99 35M = 163 -234 TTGCAAGACAGACTTCATCAAGATATGTAGTCATC <:3:<<;<;<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:5:66:1381:181 163 seq2 362 99 40M = 544 222 TTGCAAGACAGACTTCATCAAGATATGTAGTCATCAGACT <<6<<<<<<<<<<<<<<<<<<<<<<<<<<:<<<<<::4:7 MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:7:11:1261:1200 163 seq2 362 99 35M = 558 231 TTGCAAGACAGACTTCATCAAGTTATGTAGTCATC <<<<<<<<<<<;<<<<<<<<;<<<;<:<<8<<:<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS1_99:5:191:885:623 163 seq2 363 99 35M = 551 223 TGCAAGACAGACTTCATCAAGATATGTAGTCATCA <<<<<<<<<<<<<<<<<<<<<<<<<<<;;<<;;;; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:7:53:783:78 99 seq2 363 99 35M = 561 233 TGCAAGACAGACTTCATCAAGATATGTAGTCATCA <<<<<<<<<<<<<<<<<<<<<<<<<;<<;<7;<:; MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:5:177:24:389 83 seq2 365 99 35M = 175 -225 CAAGACAGACTTCATCAAGATATGTAGTCATCAGA +<<;<9<<<9<<;<<7<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:5:58:684:520 99 seq2 367 99 35M = 538 206 AGACAGACTTCATCAAGATATGTAGTCATCAGACT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<:;;<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:6:71:187:824 99 seq2 367 99 35M = 534 202 AGACAGACTTCATCAAGATATGTAGTCATCAGACT ;===;======3==;==========4=;=7;;3;6 MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:1:324:238:736 83 seq2 367 99 35M = 180 -222 AGACAGACTTCATCAAGATATGTAGTCATCAGACT <<<9<<<70,<<4<<<<<7<4<7<<<<<0<<<<<7 MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:6:19:306:982 99 seq2 368 99 35M = 538 205 GACAGACTTCATCAAGATATGTAGTCATCAGACTA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<:<<<< MF:i:18 Aq:i:78 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:2:168:829:88 83 seq2 369 99 35M = 205 -199 ACAGACTTCATCAAGATATGTAGTCATCAGACTAT <,,;<838883;;;<<<<<;<8<8;<<<<<<<<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:6:122:589:134 163 seq2 369 99 35M = 562 228 ACAGACTTCATCAAGATATGTAGTCATCAGACTAT <<:<<:<:<<<<<:<8<<<<<<<:<::<<<4:<;; MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:3:303:970:243 163 seq2 370 99 35M = 564 229 CAGACTTCATCAAGATATGTAGTCATCAGACTATC <<<<<<<<<<<<<<<<<<<<;;<<<<<<<<<8<8< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:2:19:736:559 147 seq2 370 99 35M = 209 -196 AAGACTTCATCAAGATATGTAGTCATCAGACTATC )<7<2;;4<<4<<<<;<<<<<<<<<<7<<<<<<<< MF:i:18 Aq:i:70 NM:i:1 UQ:i:8 H0:i:1 H1:i:0
+EAS51_66:3:246:711:981 99 seq2 371 99 35M = 559 223 AGACTTCATCAAGATATGTAGTCATCAGACTATCT <<<<<<<<;<<<<:;<<;;<:<<<4<<:4;00<;< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:6:89:1164:573 99 seq2 371 99 35M = 560 224 AGACTTCATCAAGAGATGTAGTCATCAGACTATCT <:<<;<2<<<<<<<&:2<;<;<<<<;,+;:<<4:< MF:i:18 Aq:i:41 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+EAS220_1:8:18:1757:95 147 seq2 374 45 35M = 216 -193 CTTCATCAAGATATGTAGTCATCAGACTATCTAAA <<<6<&:<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:2:284:597:682 99 seq2 375 99 35M = 557 217 TTCATCAAGATATGTAGTCATCAGACTATCTAAAG <<<<<<<9<<<<<;<<6<<<<<;<9<<<<<<1;;9 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:3:10:394:392 99 seq2 376 99 35M = 542 201 TCATCAAGATATGTAGTCATCAGACTATCTAAATT <<<<<<<<<<<<<<<<<<<:<<<<<<;<<;;:6&; MF:i:18 Aq:i:68 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS1_97:5:28:538:148 163 seq2 376 99 35M = 557 216 TCATCAAGATATGTAGTCATCAGACTATCTAAAGT <<<<<<<<<<<<<<<<<<<<<<:<<<<<<<+771; MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:2:60:590:1760 147 seq2 376 99 35M = 201 -210 TCATCAAGATATGTAGTCATCAGACTATCTAAAGT <8<-<<<<<<<82<<<4<<<<<<<<<<<<<8<<<< MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:3:73:1158:535 83 seq2 377 99 40M = 213 -204 AATAAAGATATGTAGTCATCAGACTATCTAAAGTCAACAT +;6+;<;<<<<<<<<<0<<;<<<;<<<8<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:2 UQ:i:20 H0:i:1 H1:i:0
+EAS188_7:3:182:104:921 99 seq2 378 99 35M = 575 232 ATCAAGATATGTAGTCATCAGACTATCTAAAGTCA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<9<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:3:160:173:889 83 seq2 379 99 35M = 215 -199 TCAAGATATGTAGTCATCAGACTATCTAAAGTCAA ;)<</<8<<<<<<</<;<<<<;<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:7:71:311:202 83 seq2 379 99 35M = 188 -226 TCAAGATATGTAGTCATCAGACTATCTAAAGTCAA ;6<;<<<<<<<<<<<<<<<<<<<<<;<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:4:315:201:673 163 seq2 381 45 36M = 542 197 AAGATATGTAGTCATCAGACTATCTAAAGTCAACAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<7<<<<<:; MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:2:228:915:631 163 seq2 381 66 35M = 547 201 AAGATATGTAGTCATCAGACTATCTAAAGTCAACA =================;==========4====== MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:1:228:736:747 163 seq2 381 68 35M = 542 196 AAGATATGTAGTCATCAGACTATCTAAAGTCAACA <<<<<<<<<;<<<<<<<;;<<;<<<<;::<;;7;7 MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:3:263:689:572 99 seq2 381 68 35M = 553 207 AAGATATGTAGTCATCAGACTATCTAAAGTCAACA <<<<;<<<<<;<<<<<<&;;<<<;<<:<+;;7;;7 MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:5:81:685:141 147 seq2 382 85 35M = 207 -210 AGATATGTAGTCATCAGACTATCTAAAGTCAACAT ;+;(;)..=3.1=.7=;=8;==<4====;====== MF:i:18 Aq:i:17 NM:i:0 UQ:i:0 H0:i:2 H1:i:2
+EAS114_32:1:208:971:600 163 seq2 382 99 35M = 559 212 AGATATGTAGTCATCAGACTATCTAAAGTCAACAT <<<<<<<<<<<<<<<<<8<<:<<<0;44<<:4<:< MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:8:7:1864:1569 99 seq2 382 99 35M = 561 214 AGATATGTAGTCATCAGACTATCTAAAGTCAACAT <<<<<<<<<<<<<<<<<<<<<<<<<<:<<<8<<<< MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:4:224:592:744 147 seq2 383 99 35M = 188 -230 GATATGTAGTCATCAGACTATCTAAAGTCAACATG 6<6<<<<<<9+<6-<<<:<:<:<<<<<:<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_61:6:25:949:33 147 seq2 383 99 35M = 201 -217 GATATGTAGTCATCAGACTATCTAAAGTCAACATG -<4<666<<-7<5<<<<<(<<<<<<<<<<<<<<-< MF:i:18 Aq:i:63 NM:i:0 UQ:i:0 H0:i:2 H1:i:1
+EAS54_73:5:271:874:367 163 seq2 384 99 35M = 560 211 ATATGTAGTCATCAGACTATCTAAAGTCAACATTA <<<<<<<<<<<<<<4<;<;<:<;4<4<<99<7<+% MF:i:18 Aq:i:51 NM:i:1 UQ:i:10 H0:i:1 H1:i:0
+EAS139_19:4:26:1312:1400 147 seq2 385 99 40M = 207 -218 TATGTAGTCATCAGACTATCTAAAGTCAACATGAAGGAAA ::77:<;:+6<+<<<;<<74<<<;<<;<<<<<<<<<<<;< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:2 H1:i:2
+EAS51_66:6:310:747:415 83 seq2 387 99 35M = 217 -205 TGTAGTCATCAGACTATCTAAAGTCAACATGAAGG ;<<<;<;<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:24 NM:i:0 UQ:i:0 H0:i:2 H1:i:6
+EAS56_57:6:4:223:776 83 seq2 387 93 35M = 203 -219 TGTAGTCATCAGACTATCTAAAGTCAACATGAAGG <;9<;<0<<;<<<;<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:19 NM:i:0 UQ:i:0 H0:i:2 H1:i:6
+EAS114_28:3:32:492:907 99 seq2 387 95 36M = 571 220 TGTAGTCATCAGACTATCTAAAGTCAACATGAAGGA <<<<<<<<<<<<<<<<<<<;<;;<<<<<<<<<<<<< MF:i:18 Aq:i:20 NM:i:0 UQ:i:0 H0:i:1 H1:i:5
+EAS114_26:4:110:840:431 163 seq2 388 93 35M = 567 214 GTAGTCATCAGACTATCTAAAGTCAACATGAAGGA =====================5:======54=+3+ MF:i:18 Aq:i:21 NM:i:0 UQ:i:0 H0:i:1 H1:i:5
+EAS114_45:6:86:693:234 83 seq2 388 82 35M = 202 -221 GTAGTCATCAGACTATCTAAAGTCAACATGAAGGA 83997;<;;;;98;;3*6<<;<:8;;;;;<;;<<< MF:i:18 Aq:i:18 NM:i:0 UQ:i:0 H0:i:3 H1:i:13
+EAS139_11:8:96:1314:1448 83 seq2 388 93 35M = 213 -210 GTAGTCATCAGACTATCTAAAGTCAACATGAAGGA <<<<7<<:<<<<<<<<:<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:18 NM:i:0 UQ:i:0 H0:i:3 H1:i:8
+EAS114_30:6:41:461:436 83 seq2 389 74 35M = 200 -224 TAGTCATCAGACTATCTAAAGTCAACATGAAGGAA ;<986<;6<<<<<<<;<<<<<<<<<;<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:3 H1:i:13
+EAS221_3:8:55:932:613 163 seq2 389 77 35M = 568 214 TAGTCATCAGACTATCTAAAGTCAACATGAAGGAA <<<<<<<<<<<<<<<<<<<<<8<<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:3 H1:i:10
+EAS1_97:5:219:174:684 163 seq2 390 71 35M = 560 205 AGTCATCAGACTATCTAAAGTCAACATGAAGGAAA <<<<<<<<<<<8<8<<<7<<;<<<<<2<;&;;;;9 MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:2 H1:i:14
+EAS56_57:5:24:284:360 163 seq2 390 76 35M = 567 212 AGTCATCAGACTATCTAAAGTCAACATGAAGGAAA <<<<<<<<<<<<<<<<<;<<<<<<<;<9;<;99;; MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:2 H1:i:14
+EAS114_26:1:113:367:659 83 seq2 390 72 35M = 222 -203 AGTCATCAGACTATCTAAAGTCAACATGAAGGAAA <<5<0&9;<3<<<<<9<<<<4<;<9<9<<<<7<3< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:3 H1:i:17
+EAS114_32:5:109:199:592 163 seq2 390 72 35M = 576 221 AGTCATCAGACTATCTAAAGTCAACATGAAGGAAA <<<<<<<<<<<;:<;;<<:;6<<;:;:<<+;;;<; MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:2 H1:i:14
+EAS114_45:4:88:55:1187 147 seq2 391 66 35M = 220 -206 GTCATCAGACTATCTAAAGTCAACATGAAGGAAAA 7769,7;;;;;;;;;;;;;;9;;;;;;;;;;;;;; MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:2 H1:i:7
+EAS56_59:2:60:677:921 147 seq2 393 96 35M = 250 -178 CATCAGACTATCTAAAGTCAACATGAAGGAAAAAA ========9==;======8==>============= MF:i:18 Aq:i:22 NM:i:0 UQ:i:0 H0:i:4 H1:i:13
+EAS114_39:3:88:84:1558 147 seq2 394 95 35M = 203 -226 ATCAGACTATCTAAAGTCAACATGAAGGAAAAAAA ;;<<;<<;<<5<<<<<<;<<:<<<;<<<<<<;<<< MF:i:18 Aq:i:22 NM:i:0 UQ:i:0 H0:i:2 H1:i:3
+EAS56_59:2:201:768:529 83 seq2 396 99 35M = 225 -206 CAGACTATCTAAAGTCAACATGAAGGAAAAAAATT 3<:<9<<;<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:2:13:100:876 83 seq2 397 73 36M = 223 -210 AGAATATATAAAGTCAACATGAAGGAAAAAAATTCT ;9<$<<<$<<<<<<<<75<<<<<<<9<9<<<<<<<< MF:i:18 Aq:i:30 NM:i:2 UQ:i:6 H0:i:1 H1:i:1
+EAS139_11:4:26:137:1382 99 seq2 397 99 35M = 579 217 AGACTATCTAAAGTCAACATGAAGGAAAAAAATTC <<<<<<7<<<77<<<<<<</<<+<<<<<<7<+<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+EAS54_67:3:197:261:624 99 seq2 398 99 35M = 587 224 GACTATCTAAAGTCAACATGAAGGAAAAAAATTCT <<<<<<<<<<<;<<<<<<<;<<;<<<<<<;<<<9< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS218_4:3:41:1281:1785 147 seq2 399 99 35M = 237 -197 ACTATCTAAAGTCAACATGAAGGAAAAAAATTCTA <6<<<6<<<<<<:<<6<:<<<<<<<<<<<<6<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:3
+B7_610:5:51:904:391 83 seq2 401 97 35M = 212 -224 TATCTAAAGTCAACATGAAGGAAAAAAATTCTAAA ;<96<<<<<<7<<7<<<<<<<<<<<<<<;<<<<<< MF:i:18 Aq:i:24 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+EAS56_63:7:137:139:248 163 seq2 401 97 35M = 569 203 TATCTAAAGTCAACATGAAGGAAAAAAATTCTAAA <<<<<<<<<9<<<<<<<<<<;<<<<<<<;;<;<;< MF:i:18 Aq:i:22 NM:i:0 UQ:i:0 H0:i:3 H1:i:2
+B7_610:7:15:696:693 163 seq2 403 34 35M = 570 202 TCTAAAGTCAACATGAAGGAAAAAAATTCTAAAAT 2:+:7<<3<<<<<6+36<<<<<<<6<<6&<<;<.7 MF:i:18 Aq:i:10 NM:i:0 UQ:i:0 H0:i:2 H1:i:1
+EAS114_45:2:41:199:388 147 seq2 403 99 35M = 243 -195 TCTAAAGTCAACATGAAGGAAAAAAATTCTAAAAT 84898;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:4:163:611:211 83 seq2 405 99 35M = 234 -206 TAAAGTCAACATGAAGGAAAAAAATTCTAAAATCA <<<<9<<<<:<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:48 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:1:114:19:769 163 seq2 405 90 35M = 572 202 TAAAGTCAACATGAAGGAAAAAAATTCTAAAATCA <<<<<*2;6;<<<4.;;<&;;<.<40)<);5-/7; MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+EAS51_64:7:92:493:891 147 seq2 408 99 35M = 240 -203 AGTCAACATGAAGGAAAAAAATTCTAAAATCAGCA <383<<:<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:49 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:8:5:996:2000 163 seq2 408 99 35M = 575 202 AGTCAACATGAAGGAAAAAAATTCTAAAATCAGCA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<: MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS1_93:1:179:629:513 83 seq2 409 99 35M = 220 -224 GTCAACATGAAGGAAAAAAATTCTAAAATCAGCAA <;,<<7<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:49 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_4:1:84:1505:1037 99 seq2 409 99 35M = 586 212 GTCAACATGAAGGAAAAAAATTCTAAAATCAGCAA <<<<<<<<<<<<<<<<<:<<<<<<<<<<<<<<::) MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS221_1:6:96:491:1891 83 seq2 409 99 35M = 253 -191 GTCAACATGAAGGAAAAAAATTCTAAAATCAGCAA :;5<<7<;:<<;<<<<<<<<<<;<<<<<<<<<<<< MF:i:18 Aq:i:46 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:7:307:481:625 147 seq2 410 99 36M = 245 -201 TCAACATGAAGGAAAAAAATTCTAAAATCAGCAAGA ;4<<4<;;<<;;<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:2 H1:i:0
+B7_610:5:120:596:847 83 seq2 410 83 35M = 211 -234 TCAACATGAAGGAAAAAAATTCTAAAATCAGCAAG ;/<<:<;<<<<<<<<<<<<<;;<<<<<;<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS114_45:3:3:864:1888 99 seq2 411 99 35M = 579 203 CAACATGAAGGAAAAAAATTCTAAAATCAGCAAGA ;<<;;<<;;;<;;<<;<;<<;<<;8<<:<;79799 MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_4:1:34:1614:558 99 seq2 411 99 35M = 569 193 CAACATGAAGGAAAAAAATTCTAAAATCAGCAAGA <<<<<<<<<<<7<<<<<8<<<<<<2<<<<<<<<<< MF:i:18 Aq:i:37 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:5:117:570:971 83 seq2 413 99 35M = 223 -225 ACATGAAGGAAAAAAATTCTAAAATCAGCAAGAGA <,<9<<<<<<<<<<<<<<9<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:2 H1:i:1
+EAS112_34:8:45:800:733 163 seq2 413 99 35M = 607 229 ACATGAAGGAAAAAAATTCTAAAATCAGCAAGAGA <<<</<<<<<<<<<<<<<<<2<9<<<<<5*5;599 MF:i:18 Aq:i:34 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS219_FC30151:7:87:1289:83 163 seq2 413 99 35M = 585 207 ACATGAAGGAAAAAAATTCTAAAATCAGCAAGAGA <<<<<<<<<<<<<<<<<<<<<;<<<<<;<<<<<<: MF:i:18 Aq:i:49 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS114_39:4:58:271:612 147 seq2 415 99 35M = 236 -214 ATGAAGGAAAAAAATTCTAAAATCAGCAAGAGCAA ;:2=<<;<<<<<<:67:<<:<<<<<<<<<<<<,<< MF:i:18 Aq:i:30 NM:i:1 UQ:i:11 H0:i:0 H1:i:2
+EAS1_108:1:33:779:821 163 seq2 416 99 35M = 579 198 TGAAGGAAAAAAATTCTAAAATCAGCAAGAGAAAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<;<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:3
+EAS112_34:6:75:615:555 147 seq2 416 99 35M = 255 -196 TGAAGGAAAAAAATTCTAAAATCAGCAAGAGAAAA ;<<<;<<<<<<<<<:;<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:2 H1:i:0
+EAS188_7:6:11:994:584 147 seq2 417 97 35M = 226 -226 GAAGGAAAAAAATTCTAAAATCAGCAAGAGAAAAG <<<<;<<<<<<<;<:<<<<<<<<<;<<<<<<<<<< MF:i:18 Aq:i:24 NM:i:0 UQ:i:0 H0:i:2 H1:i:0
+EAS114_26:7:218:858:445 147 seq2 421 99 35M = 239 -217 GAAAAAAATTCTAAAATCAGCAAGAGAAAAGCATA ;<<<<<<<8;:<<<<<<;<<:<<<<<<<<<<<<;< MF:i:18 Aq:i:27 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS54_81:2:317:72:221 83 seq2 422 99 35M = 270 -187 AAAAAAATTCTAAAATCAGCAAGAGAAAAGCATAC =========:======;==;=============== MF:i:18 Aq:i:53 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:4:70:766:2016 163 seq2 422 99 35M = 607 220 AAAAAAATTCTAAAATCAGCAAGAGAAAAGCATAC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:2 H1:i:0
+EAS56_53:4:45:707:147 83 seq2 99 35M = 216 -243 AAAAATTCTAAAATCAGCAAGAGAAAAGCATACAG <<<<<<;3<<<<<4;<<;<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:7:16:1343:1621 147 seq2 426 99 35M = 248 -213 AAATTCTAAAATCAGCAAGAGAAAAGCATACAGTC ;<<9;7=====;;==<==================< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:5:184:912:258 99 seq2 428 99 35M = 582 189 ATTCTAAAATCAGCAAGAGAAAAGCATACAGTCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:5:119:38:945 147 seq2 428 99 35M = 221 -242 ATTCTAAAATCAGCAAGAGAAAAGCATACAGTCAT =;;8=====:========<================ MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:6:95:235:746 163 seq2 430 99 35M = 598 203 TCTAAAATCAGCAAGAGAAAAGCATACAGACATCT <<<<;<<<<<<<<79<<<<<<<<<<<<<<*;;;<9 MF:i:18 Aq:i:72 NM:i:1 UQ:i:9 H0:i:1 H1:i:0
+EAS1_99:2:188:782:483 83 seq2 431 99 35M = 277 -189 CTAAAATCAGCAAGAGAAAAGCATACAGTCATCTA 7<<<<<<4<;;<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:3:39:348:594 163 seq2 431 99 35M = 600 204 CTAAAATCAGCAAGAGAAAAGCATACAGTCATCTA <<;<<<<<<<<<;<;;<<<<<<<<<<;<<<:<:<: MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:4:176:971:874 83 seq2 432 76 9M1D26M = 273 -195 TAAAATCAGAAGAGAAAAGCATACAGTCATCTATA <<<<<:<<<<<<<;<<<<<<<<<<<<<<<<<<<<< MF:i:130 Aq:i:76 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS114_30:3:14:697:541 147 seq2 432 99 35M = 259 -208 TAAAAGCAGCAAGAGAAAAGCATACAGTCATCTAT 8<<<<&6<;8<<<<<<<<<<<<;<<<<;<<<<<<8 MF:i:18 Aq:i:71 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+B7_610:7:177:469:800 147 seq2 433 99 35M = 259 -209 AAAATCAGCAAGAGAAAAGCATACAGTCATCTATA =<<<;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:1:131:518:588 163 seq2 433 99 35M = 607 209 AAAATCAGCAAGAGAAAAGCATACAGTCATCTATA <<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<<1<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:8:6:237:885 147 seq2 433 99 35M = 269 -199 AAAATCAGCAAGAGAAAAGCATACAGTCATCTATA <<<<1:<;:<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_53:3:134:126:465 147 seq2 99 35M = 245 -224 AAATCAGCAAGAGAAAAGCATACAGTCATCTATAA <<;:&<3)<<7<:<<<<.:<<<<<8<<<<<<<<<< MF:i:18 Aq:i:56 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:2:104:402:732 163 seq2 99 35M = 610 211 AAATCAGCAAGAGAAAAGCATACAGTCATCTATAA =========================7=;===;=:= MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_4:3:65:85:1547 83 seq2 99 35M = 257 -212 AAATCAGCAAGAGAAAAGCATACAGTCATCTATAA <<<<<<;:<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:2:85:686:696 163 seq2 435 99 35M = 594 193 AATCAGCAAGAGAAAAGCATACAGTCATCTATAAA ==================<=====:==<=<;=:== MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:1:144:242:602 163 seq2 436 99 36M = 611 211 ATCAGCAAGAGAAAAGCATACAGTCATCTATAAAGG ========================;=====<;;<<; MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:2:204:737:61 83 seq2 437 99 35M = 247 -225 TCAGCAAGAGAAAAGCATACAGTCATCTATAAAGG (7=72=;==2=====<===<<============== MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:7:124:253:889 163 seq2 437 99 35M = 598 196 TCAGCAAGAGAAAAGCATACAGTCATCTATAAAGG <<<<<<6<<:<<<<<<<<<<<<<;;<<;<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:7:310:155:312 163 seq2 438 99 35M = 606 203 CAGCAAGAGAAAAGCATACAGTCATCTATAAAGGA ;<<<;<<<8<<<<<<<<<<<<;<<<<<8<<<<8<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:7:78:692:671 99 seq2 438 99 35M = 610 207 CAGCAAGAGAAAAGCATACAGTCATCTATAAAGGA <<<<<<<<<<<<<;<<<<<<<:<<:<<<:8<<0;; MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:7:130:260:553 147 seq2 439 99 35M = 250 -224 AGCAAGAGAAAAGCATACAGTCATCTATAAAGGAA <*;<<7<);<<;9;<5<*<9<;<<;;<7<<<<<1< MF:i:18 Aq:i:42 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:7:60:163:1612 163 seq2 439 99 35M = 617 213 AGCAAGAGAAAAGCATACAGTCATCTATAAAGGAA <<<<<<<<<21<<<<<<<<<3<--<+<<<+<<63< MF:i:18 Aq:i:59 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:6:106:595:322 83 seq2 440 99 35M = 274 -201 GCAAGAGAAAAGCATACAGTCATCTATAAAGGAAA ;+<<<<<<<<<<<<<<<<<<;<<7<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:5:211:84:84 147 seq2 440 99 35M = 268 -207 GCAAGAGAAAAGCATACAGTCATCTATAAAGGAAA 6:<<:<<<<<<9<<<<<<<<<<<;<<<;;;<;<3; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:2:280:662:939 147 seq2 442 99 35M = 294 -183 AAGAGAAAAGCATACAGTCATCTATAAAGGAAATC <<;<;<<<<<:<<<;<<<;<<;<<<<<<<<<<<;< MF:i:18 Aq:i:48 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:6:52:751:360 83 seq2 443 99 35M = 263 -215 AGAGAAAAGCATACAGTCATCTATAAAGGAAATCC <-<9<<<<<6<<<8<<;;<<9<<<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:2:234:167:381 163 seq2 443 99 35M = 625 217 AGAGAAAAGCATACAGTCATCTATAAAGGAAATCC <<<<<<<<<<<<<<<<<<<<<<<<<;<<<;;7<;; MF:i:18 Aq:i:49 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:6:37:156:134 83 seq2 443 99 35M = 261 -217 AGAGAAAAGCATACAGTCATCTATAAAGGAAATCC 99998<<<<:<<<<<<<;<<><<<<<<<<<<<<<< MF:i:18 Aq:i:49 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:1:93:490:901 83 seq2 445 99 35M = 280 -200 AGAAAAGCATACAGTCATCTATAAAGGAAATCCCA <<<<<<<;<<<;<<<;<<;<<;<<<<<<<<<<<<< MF:i:18 Aq:i:53 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:7:96:489:453 99 seq2 445 99 35M = 625 215 AGAAAAGCATACAGTCATCTATAAAGGAAATCCCA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;;;: MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:6:46:13:880 147 seq2 445 99 35M = 290 -190 AGAAAAGCATACAGTCATCTATAAAGGAAATCCCA =&====8==========0================= MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:2:167:905:852 163 seq2 445 99 36M = 647 238 AGAAAAGCATACAGTCATCTATAAAGAAAATCCCAT <<<7<<<<<<<<<<<<<<:<:<<:::&.<:<66:3< MF:i:18 Aq:i:43 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+EAS219_FC30151:3:13:674:1717 163 seq2 445 99 35M = 623 213 AGAAAAGCATGCAGTCATCTATAAAGGAAATCCCA <<<<<<<<<<%<<<<<<<<<<<<<<<<<<<;:;;; MF:i:18 Aq:i:45 NM:i:1 UQ:i:4 H0:i:0 H1:i:1
+EAS51_62:7:196:511:896 83 seq2 446 99 35M = 283 -198 GAAAAGCATACAGTCATCTATAAAGGAAATCCCAT 8<<<<<;<<<:<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:52 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_53:1:154:118:488 163 seq2 447 99 35M = 624 212 AAAAGCATACAGTCATCTATAAAGGAAATCCCATC <<<<<<<<<<<<<<<<<<<<<<:7<<<<7<:;;:: MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:2:44:153:969 83 seq2 447 95 35M = 245 -237 AAAAGCATACAGTCATCTATAAAGGAAATCCCATC <<5<:7<72<51<7<*79<<<<<5<<<<<<<<<2< MF:i:18 Aq:i:36 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:4:215:246:640 99 seq2 447 99 36M = 624 213 AAAAGCATACAGTCATCTATAAAGGAAATCCCATCA <<<<<<<<<<9<;<<<<<<<<<<9;<<<<<<3;<;3 MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:7:94:1655:1921 147 seq2 447 85 35M = 258 -224 AAAAGCATACAGTCATCTATAAAGGAAATCCCATC <<<<;:===<==;<==<;================; MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:6:60:1037:1146 147 seq2 447 99 35M = 250 -232 AAAAGCATACAGTCATCTATAAAGGAAATCCCATC <<<<<<<<<;<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:53 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:1:23:536:229 99 seq2 448 99 35M = 614 201 AAAGCATACAGTCATCTATAAAGGAAATCCCATCA <<<<<<<<<<<<<<<<<:<8<:<<;<<<<<<7<<< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:6:130:865:838 163 seq2 448 99 35M = 649 236 AAAGCATACAGTCATCTATAAAGGAAATCCCATCA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;:<;3 MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:2:239:1001:406 99 seq2 450 99 35M = 634 219 AGCATACAGTCATCTATAAAGGAAATCCCATCAGA <<<<<<7<<<<<<<<8<;<<<7<<<<36<<3<:33 MF:i:18 Aq:i:49 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:3:147:423:584 147 seq2 451 99 35M = 277 -209 GCATACAGTCATCTATAAAGGAAATCCCATCAGAA 27<;<3<<<+<<;<<<;;-4<<<<<;<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:1:187:715:521 83 seq2 451 99 35M = 291 -195 GCATACAGTCATCTATAAAGGAAATCCCATCAGAA <7<:<9<<<<<<<<<;<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:3:172:196:746 99 seq2 451 99 35M = 620 204 GCATACAGTCATCTATAAAGGAAATCCCATCAGAA <<<<<<<<9<<<<9<<<<<<<<<;<<<<6<<<<;< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:3:267:821:860 83 seq2 451 99 34M = 296 -189 GCATACAGTCATCTATAAAGGAAATCCCATCAGA $&<<<.<:;6<<;<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:3
+EAS56_61:7:7:682:201 83 seq2 452 99 35M = 288 -199 CATACAGTCATCTATAAAGGAAATCCCATCAGAAT 0:8;5<8<1:78<<<<<<<<<<<<:8<<2<<<<:< MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:3:82:13:897 163 seq2 453 99 35M = 606 188 ATACAGTCATCTATAAAGGAAATCCCAGCAGAATA <<<<;<<<<<<;<;<;5<51;<1<<<<%<<<<,58 MF:i:18 Aq:i:41 NM:i:1 UQ:i:4 H0:i:0 H1:i:1
+EAS56_53:6:180:695:621 99 seq2 453 99 35M = 637 219 ATACAGTCATCTATAAAGGAAATCCCATCAGAATA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<;::<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:2:158:909:321 83 seq2 453 99 35M = 271 -217 ATACAGTCATCTATAAAGGAAATCCCATCAGAATA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:2:237:497:165 99 seq2 99 35M = 619 200 TACAGTCATCTATAAAGGAAATCCCATCAGAATAA 8===<8===========37=<===7=;7=8===== MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:2:152:355:962 83 seq2 456 99 35M = 269 -222 CAGTCATCTATAAAGGAAATCCCATCAGAATAACA &<.9.<;+;<;<<<<<<<<<<::<<:<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+EAS192_3:4:255:549:422 83 seq2 456 99 35M = 295 -196 AAGTCATCTATAAAGGAAATCCCATCAGAATAACA &<;;+<;4;<<<<<<<<<<<;<;<<;<<<<<<<<< MF:i:18 Aq:i:30 NM:i:1 UQ:i:5 H0:i:1 H1:i:2
+EAS220_1:4:100:20:1199 163 seq2 456 99 35M = 614 193 CAGTCATCTATAAAGGAAATCCCATCAGAATAACA 7<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<4<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:5:71:408:741 163 seq2 457 99 35M = 637 215 AGTCATCTATAAAGGAAATCCCATCAGAATAACAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:5:285:395:450 147 seq2 458 99 35M = 269 -224 GTCATCTATAAAGGAAATCCCATCAGAATAACAAT 8)3<8+;<)<<<<<<<<97:7<<<<<<<<<<<<<< MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:3:4:854:140 99 seq2 458 72 35M = 638 215 GTCATCTATAAAGGAAATCCCATCAGAATAACAAT <<<6<<<:<6<<<:36:<<<<3<<8:.6<38::4< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:6:227:657:95 147 seq2 458 99 35M = 280 -213 GTCATCTATAAAGGAAATCCCATCAGAATAACAAT ;3;<);<<<<<<<<<<<<18<<<<<<<<<<<<<<< MF:i:18 Aq:i:59 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:7:57:324:546 83 seq2 458 99 36M = 281 -213 GTCATCTATAAAGGAAATCCCATCAGAATAACAATG ;;5<;,<<<;;<<<<<<<97<<<<<<<<<<9<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:4:26:274:1078 83 seq2 458 99 40M = 282 -216 GTCATCTATAAAGGAAATCCCATCAGAATAACAATGGGCT 9:*:64<<;<<<<<<<<<;8;<<:<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:6:107:636:642 163 seq2 458 99 35M = 630 207 GTCATCTATAAAGGAAATCCCATCAGAATAACAAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:7:226:869:36 147 seq2 461 99 35M = 273 -223 ATATATAAAGGAAATCCCATCAGAATAACAATGGG <0/)</<<<:<<<<<)<<7<<<<<+55<<1<<<:< MF:i:18 Aq:i:59 NM:i:1 UQ:i:14 H0:i:1 H1:i:0
+EAS192_3:4:312:915:751 99 seq2 461 99 35M = 621 195 ATCTATAAAGGAAATCCCATCAGAATAACAATGGG <2<<<<<<<8;<<<<<<<<:<<<<8<<<<<84,4: MF:i:18 Aq:i:41 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_4:7:96:899:106 99 seq2 462 99 35M = 636 209 TCTATAAAGGAAATCCCATCAGAATAACAATGGGC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:5:62:969:12 147 seq2 99 35M = 303 -196 TATAAAGGAAATCCCATCAGAATAACAATGGGCTT <<;<;<::<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:6:67:56:806 99 seq2 99 35M = 637 208 TATAAAGGAAATCCCATCAGAATAACAATGGGCTT <<<<<<<<<<<<<<<<<<<<<<<<<<<<;;<<:7: MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:5:37:611:267 99 seq2 99 35M = 610 181 TATAAAGGAAATCCCATAAGAATAACAATGGGCTT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS1_93:7:319:280:57 147 seq2 467 99 35M = 306 -196 AAAGGAAATCCCATCAGAATAACAATGGGCTTCTC <<<<<<<-<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:8:96:720:940 163 seq2 467 99 35M = 654 222 AAAGGAAATCCCATCAGAATAACAATGGGCTTCTC <<<<<<;<<<<<<<<<<;9<<8<<6<;:;<;;.;; MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_53:2:59:286:290 99 seq2 467 99 35M = 628 196 AAAGGAAATCCCATCAGAATAACAATGGGCTTCTC <<<<<<<<;<<<;<<<<<<<<<<<<<;;;<<;7;< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:2:236:841:20 163 seq2 467 99 35M = 652 220 AAAGGAAATCCCATCAGAATAACAATGGGCTTCTC <<<<<<<<<<<<<<<<<7<<<<:<<9<<<<;<:<9 MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:6:49:656:507 99 seq2 468 99 35M = 637 204 AAGGAAATCCCATCAGAATAACAATGGGCTTCTCA <<<<<<<<<<<<<<<<<<<;<<<<<<<<<<<<<;9 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:4:78:1314:1275 147 seq2 469 99 35M = 277 -227 AGGAAATCCCATCAGAATAACAATGGGCTTCTCAG <<<<<<<<6:<<<<<<<<<<<<<<<<<<<<<<<1< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:6:181:392:500 147 seq2 470 99 35M = 299 -206 GGAAATCCCATCAGAATAACAATGGGCTTCTCAGC /5<<;(88<<<;<;<<6<<<<<7<<<<<<<7<<<< MF:i:18 Aq:i:63 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:2:133:8:379 163 seq2 470 99 35M = 653 218 GGAAATCCCATCAGAATAACAATGGGCTTCTCAGC <<<<<<<<<<<<<<<<<<<<<<<<8;<<8<<<:6< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:5:198:929:684 163 seq2 471 99 35M = 624 188 GAAATCCCATCAGAATAACAATGGGCTTCTCAGCA <7<<<<;<<<<<<<<<<<<;<<<<<:<<<<::<:7 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:3:181:582:435 99 seq2 471 99 35M = 629 193 GAAATCCCATCAGAATAACAATGGGCTTCTCAGCA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<;:: MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:1:214:784:690 99 seq2 472 99 35M = 657 220 AAATCCCATCAGAATAACAATGGGCTTCTCAGCGG <<<<<<<<<<<<<<<<<<<<<:<<<<<<<<<4<44 MF:i:18 Aq:i:30 NM:i:1 UQ:i:19 H0:i:1 H1:i:0
+EAS114_39:3:11:1238:1728 83 seq2 475 99 35M = 310 -200 TCCCATCAGAATAACAATGGGCTTCTCAGCGGAAA :677<;<<<<<<<<<<<:<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS112_34:4:12:273:89 163 seq2 477 99 35M = 631 189 CCATCAGAATAACAATGGGCTTCTCAGCGGAAACC ==========<====:=========+===4414;; MF:i:18 Aq:i:71 NM:i:1 UQ:i:28 H0:i:1 H1:i:0
+EAS56_63:2:119:161:322 147 seq2 479 99 35M = 297 -217 ATCAGAATAACAATGGGCTTCTCAGCAGAAACCTT <83<;<<;<;<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS114_30:2:111:142:21 83 seq2 479 99 35M = 304 -210 ATCAGAATAACAATGGGCTTCACAGCGGAAACCTT ;88<:<;;<6<;;<<<:<<<<;<<<<<<<<;<<<< MF:i:18 Aq:i:28 NM:i:2 UQ:i:53 H0:i:0 H1:i:0
+EAS1_99:1:34:649:318 83 seq2 481 65 35M = 328 -188 AAGAATAACAATGGGCTTCACAGCGGAACCCTTAC )<7<<3<<<<<<+<1<;<8&<<<<<<<<<<<<<<< MF:i:130 Aq:i:65 NM:i:3 UQ:i:59 H0:i:0 H1:i:0
+EAS114_30:6:214:565:337 147 seq2 481 99 35M = 326 -190 CAGAATAACAATGGGCTTCTCAGCAGAAACCTTAC ;;<;<1<9<<<8<<<<<;<<<<<<8<<<;<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:6:226:370:91 147 seq2 482 99 35M = 335 -182 AGAATAACAATGGGCTTCTCAGCGGAAACCTTACA <':<6<;<<<;2<;<-7;;;<<<<<<<;;;<<7;< MF:i:18 Aq:i:43 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS139_11:6:13:682:680 99 seq2 482 99 35M = 685 238 AGAATAACAATGGGCTTCTCAGCGGAAACCTTACA <<<<<<<<<<<<<:<<<<<<<<<<;<;<<<<<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+B7_593:2:273:348:37 163 seq2 483 99 36M = 688 241 GAATAACAATGGGCTTCTCAGCAGAAACCTTACACG <<<<<<<9<49<<<;<<<<*<<19<15;<</5<;.5 MF:i:18 Aq:i:41 NM:i:1 UQ:i:13 H0:i:1 H1:i:0
+EAS139_11:8:76:205:587 83 seq2 483 99 35M = 306 -212 GAATAACAATGGGCTTCTCAGCGGAAACCTTACGA 8<<5<<<<<<<<<<<<<<<<<<<<<<<<<7<<</< MF:i:18 Aq:i:28 NM:i:2 UQ:i:41 H0:i:0 H1:i:0
+B7_591:2:27:280:592 147 seq2 99 36M = 310 -210 AATAACAATGGGCTTCTCAGCGGAAACCTTACAAGC <<<<<<<<<<<8<<<<<<<<7<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS1_99:7:171:196:287 163 seq2 485 99 35M = 658 208 ATAACAATGGGCTTCTCAGCAGAAACCTTACAAGC <<<<<<<<<<<<<<<<<<<<<;6<<<<<<2:8<0: MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:2:224:579:433 163 seq2 485 99 35M = 662 212 ATAACAATGGGCTTCTCAGCAGAAACCTTACAAGC <<<<<<<<<<<<<<<<<:<<<<<<<<<<<8<+8;: MF:i:18 Aq:i:31 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:1:22:490:2011 147 seq2 485 99 35M = 307 -213 ATAACAATGGGCTTCTCAGCGGAAACCTTACAAGC <7<<<<<<<<<<<<;<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS56_65:6:46:173:214 83 seq2 487 99 35M = 308 -214 AACAATGGGCTTCTCAGCAGAAACCTTACAAGCCA <<2<<<<<<<<<<<5<<5<7<<<<<<<<<<<<<<< MF:i:18 Aq:i:29 NM:i:0 UQ:i:0 H0:i:4 H1:i:6
+EAS1_103:4:164:79:134 99 seq2 488 99 35M = 656 203 ACAATGGGCTTCTCAGCGGAAACCTTACAAGCCAG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<7< MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS114_32:2:283:577:398 147 seq2 488 99 35M = 308 -215 ACAATGGGCTTCTCAGCGGAAACCTTACAAGCCAG ;8;;&<<<;<;67<;<;<<<<<<<<;<<<<<<<<< MF:i:18 Aq:i:29 NM:i:1 UQ:i:27 H0:i:0 H1:i:2
+EAS54_67:5:149:639:910 163 seq2 489 99 35M = 669 215 CAATGGGCTTCTCAGCAGAAACCTTACAAGCCAGA <<<<<<<<<<<<<<<<<<<<<<<<7<;;<<;<<;< MF:i:18 Aq:i:42 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:3:250:628:423 83 seq2 489 99 36M = 295 -230 CAATGGGCTTCTCAGCGGAAACCTTACAAGCCAGAA +<<4;;9;;7.;7<;7<;<<<;;<<<<<<<<<<<<< MF:i:18 Aq:i:27 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS1_108:1:242:419:512 163 seq2 490 94 35M = 672 217 AATGGGCTTCTCAGCAGAAACCTTACAAGCCAGAA <<8<<<<<<<<<<<<<<<<<<<<<<<<;<8<(<30 MF:i:18 Aq:i:24 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+EAS114_45:1:95:1530:28 83 seq2 490 74 35M = 332 -193 AATGGGCTTCTCAGCAGAAACCTTACAAGCCAGAA 77741(9;;994;5;;4;;1;;;;;1;<;<<<<;< MF:i:18 Aq:i:9 NM:i:0 UQ:i:0 H0:i:42 H1:i:45
+EAS192_3:6:326:887:180 163 seq2 492 73 35M = 672 215 TGGGCTTCTCAGCAGAAACCTTACAAGCCAGAAGC ;<<<<<;<<<<<<<<<8<<<<<<<<<<<<0<;;<+ MF:i:18 Aq:i:0 NM:i:1 UQ:i:25 H0:i:3 H1:i:7
+EAS1_99:1:86:871:319 99 seq2 71 35M = 651 192 GGCTTCTCAGCGGAAACCTTACAAGCCAGAAGAGA <<<<<:<<<:<:<<<<<<<<<<<<8<<:<1;<::) MF:i:18 Aq:i:0 NM:i:1 UQ:i:25 H0:i:0 H1:i:4
+EAS56_57:1:189:130:136 147 seq2 79 35M = 314 -215 GGCTTCTCAGCAGAAACCTTACAAGCCAGAAGAGA 823;23<7<57<7<<<<<;<<;<<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:63 H1:i:85
+EAS51_64:7:140:752:822 99 seq2 495 76 35M = 667 207 GCTTCTCAGCGGAAACCTTACAAGCCAGAAGAGAT <<<<<<<<<<<<<<<<<7<<<<<<<<<<<<<;<:; MF:i:18 Aq:i:0 NM:i:1 UQ:i:27 H0:i:0 H1:i:5
+EAS56_57:5:53:544:889 147 seq2 495 76 35M = 335 -195 GCTTCTCAGCGGAAACCTTACAAGCCAGAAGAGAT ,<;<<<;<<<<<<<<<:;;<<<<<;;<<<<<<<<< MF:i:18 Aq:i:0 NM:i:1 UQ:i:27 H0:i:2 H1:i:32
+EAS54_65:4:61:346:384 83 seq2 496 68 35M = 324 -207 CAACTAAGAAGAAACCTTACAAGCCAGAAGAGATT 7&$+&,<<+;;<;;<<6<<8<<<;<<;<<<<<<<< MF:i:18 Aq:i:0 NM:i:3 UQ:i:19 H0:i:1 H1:i:53
+EAS54_81:8:177:800:714 83 seq2 497 76 35M = 324 -208 TTCTCAGCAGAAACCTTACAAGCCAGAAGAGATTG =;3=+=<:=<========8================ MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:29 H1:i:85
+B7_597:6:20:592:496 83 seq2 498 75 35M = 338 -195 TCTCAGCGGAAACCTTACAAGCCAGAAGAGATTGG 97<7;<;<;<<<<;<9<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:5 H1:i:48
+B7_591:5:243:557:560 83 seq2 499 75 36M = 331 -204 CTAAGCAGAAACCTTACAAGCCAGAAGAGATTGGAT 69&<;&<&<<;6.<<<+<<<;;<<<<<<<<;<<<<< MF:i:18 Aq:i:0 NM:i:1 UQ:i:5 H0:i:1 H1:i:9
+EAS188_7:5:163:982:695 147 seq2 499 77 35M = 339 -195 CTCAGCAGAAACCTTACAAGCCAGAAGAGATTGGA <:<<<<<<<<<<<<<<9<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:7 H1:i:42
+EAS139_19:1:1:1598:843 83 seq2 500 99 40M = 347 -193 TCAGCGGAAACCTTACAAGCCAGAAGAGATTGGATCTAAT 1)::6::<<;<98<<<<<<9<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:1 UQ:i:25 H0:i:1 H1:i:0
+EAS139_19:6:78:1029:512 163 seq2 500 99 40M = 656 196 TCAGCAGAAACCTTACAAGCCAGAAGAGATTGGATCTAAT <0:;<<<<<<<<<:<<:;<<<;<7<<;<7;;;:6;::672 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:4:14:1872:1521 83 seq2 500 62 35M = 339 -196 TCATCAAAAACCTTACAAGCCAGAAGAGATTGGAT /1<%73&7<1<3577,<<<7/733<<<<<<<<1<< MF:i:18 Aq:i:2 NM:i:2 UQ:i:9 H0:i:1 H1:i:8
+EAS221_3:6:51:1486:1131 163 seq2 500 77 35M = 685 220 TCAGCAGAAACCTTACAAGCCAGAAGAGATTGGAT <<<<<<<<<;<<<<<<<<<1<5<<8<<<'<;<<;1 MF:i:18 Aq:i:3 NM:i:0 UQ:i:0 H0:i:22 H1:i:22
+EAS192_3:6:45:183:25 163 seq2 501 95 35M = 672 206 CAGCGGAAACCTTACAAGCCAGAAGAGATTGGATC <<<<<<<<<<<<<<<<<<<<<<<<<<<<86;<;:; MF:i:18 Aq:i:23 NM:i:1 UQ:i:27 H0:i:0 H1:i:2
+B7_597:4:38:999:463 147 seq2 503 39 35M = 317 -221 GCGGAAACCTTACAAGCCAGAAGAGATTGGATCTA .*:&<<0<0!<<+<<<<<<<<<<<<<0<<<<<<<< MF:i:18 Aq:i:39 NM:i:2 UQ:i:25 H0:i:0 H1:i:1
+EAS114_45:1:30:1882:1210 163 seq2 503 82 35M = 665 197 GCAGAAACCTTACAAGCCAGAAGAGATTGGATCTA ;;::;;;;:;;;;;:;;;;;;9;;:7;;8:77777 MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:2 H1:i:0
+EAS1_108:6:222:579:961 163 seq2 504 99 35M = 679 210 CAGAAACCTTACAAGCCAGAAGAGATTGGATCTAA <<<<<<<<<<<<<<<<<<<<<<<<<7<<:7;;;68 MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_53:1:92:875:345 163 seq2 504 99 35M = 690 221 CGGAAACCTTACAAGCCAGAAGAGATTGGATCTAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS56_63:8:62:125:888 83 seq2 504 99 35M = 347 -192 CGGAAACCTTACAAGCCAGAAGAGATTGGATCTAA ,;3<<<8;;3<,<<<8;<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:1 UQ:i:26 H0:i:1 H1:i:0
+EAS221_1:2:23:127:880 99 seq2 504 99 35M = 686 217 CGGAAACCTTACAAGCCAGAAGAGATTGGATCTAA <<<<<<<<<<<<<<<<<<<;;<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS51_66:8:43:972:506 163 seq2 505 99 35M = 686 216 AGAAACCTTACAAGCCAGAAGAGATTGGATCTAAT <;<<<<<<<<<<<<6;<;<<<<<<<<<<:;;<;<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:6:183:697:555 83 seq2 505 84 35M = 341 -199 AGAAATCTTAGAAGCCAGAAGAGATTGGATCTAAT <<<;&,.;);&96<84<<81<<&<<<9<<8<8<<1 MF:i:18 Aq:i:37 NM:i:2 UQ:i:16 H0:i:0 H1:i:1
+EAS221_3:8:65:463:703 99 seq2 506 99 35M = 693 222 GAAACCTTACAAGCCAGAAGAGATTGGATCTAATT <<<<<<<<<<<<<<<<<<<<<<<<<<<:<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:7:101:752:996 163 seq2 508 99 35M = 687 214 AACCTTACAAGCCAGAAGAGATTGGATCTAATTTT <<<<<<<<<<<<<<<;<<<<<9<<<<<<;<<;;;; MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:6:267:953:459 99 seq2 509 99 35M = 667 193 ACCTTACAAGCCAGAAGAGATTGGATCTAATTTTT <<<<<<<<<9<<<<<<<<<<<<<<;<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:8:33:1240:846 99 seq2 509 99 35M = 685 211 ACCTTACAAGCCAGAAGAGATTGGATCTAATTTTT <<<<<<<<<<<<7<<2<;<<;<<<;<<<:6:<<<: MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_32:7:135:401:735 99 seq2 510 99 35M = 703 228 CCTTACAAGCCAGAAGAGATTGGATCTAATTTTTG <<<<<<<<<<<<<<<<<<<<<;<<<<<8<<<<<<; MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:6:3:186:68 99 seq2 512 99 35M = 687 210 TTACAAGCCAGAAGAGATTGGATCTAATTTTTGTA <<<<<<<<<<<<;<<<<<<<<<<<<;;<<<<<&%8 MF:i:18 Aq:i:71 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+EAS51_78:7:164:727:977 163 seq2 513 99 35M = 689 211 TACAAGCCAGAAGAGATTGGATCTAATTTTTCGAC <<<<<<<<<<<<<<<<<<<<<<<<<9<<<<;;79; MF:i:18 Aq:i:75 NM:i:1 UQ:i:26 H0:i:1 H1:i:0
+B7_589:1:110:543:934 163 seq2 514 99 35M = 700 221 ACAAGCCAGAAGAGATTGGATCTAATTTTTGGACT <<<<<<<<<<<<;<<<<<;;<<<;;<<<<<,,;<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:4:329:339:408 147 seq2 515 99 36M = 325 -226 CAATCCAGAAGAGATTGGATCTAATTTTTGGACTTC 7<<<7<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:1 UQ:i:27 H0:i:1 H1:i:0
+EAS56_59:5:325:544:349 163 seq2 515 99 35M = 716 236 CAAGCCAGAAGAGATTGGATCTAATTTTTGGACTT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<6;;;<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:1:3:903:957 99 seq2 516 99 35M = 661 180 AAGCCAGAAGAGATTGGATCTAATTTTTGGACTTC <<<<<<<<<<<<<<<<;;<;<;<<<<<<66<;<<; MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:1:85:361:418 147 seq2 517 99 36M = 353 -200 AGCCAGAAGAGATTGGATCTAATTTTTGGACTTCTT ;;;5<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:8:138:186:459 83 seq2 518 97 35M = 360 -193 GCCAGAAGAGATTGGAGCTAATTTTTGGACTTCTT +/2/;<:<&7:7</<2&<<<&<<<<<<<<<8<<:3 MF:i:18 Aq:i:37 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+EAS139_11:4:36:1184:994 83 seq2 518 99 35M = 358 -195 GCCAGAAGAGATTGGATCTAATTTTTGGACTTCTT <84<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:2:270:430:269 83 seq2 519 99 36M = 331 -224 CCAGAAGAGATTGGATCTAATTTTTGGACTTCTTAA 28<<;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:5:295:882:282 163 seq2 520 99 35M = 691 206 CAGAAGAGATTGGATCTAATTTTTGGACTTCTTAA ========================<6<======8; MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:3:41:739:907 83 seq2 520 99 35M = 344 -211 CAGAAGAGATTGGATCTAATTTTTGGACTTCTTAA ;<;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:5:272:240:950 163 seq2 520 97 35M = 696 211 CAGCAGAGCTTGGATCTAATTTTTGGACTTCTTCA 6<<&:<<<&<::;&7<<<3<;<<;<:;:<8:<<(< MF:i:18 Aq:i:25 NM:i:3 UQ:i:17 H0:i:0 H1:i:0
+EAS54_65:7:155:629:357 83 seq2 521 99 35M = 333 -223 AGAAGAGATTGGATCTAATTTTTGGACTTCTTAAA <<<<<<<<;<<<<<<<<<<<<6<<<<<<<<<;<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:4:14:88:306 147 seq2 521 99 35M = 341 -215 AGAAGAGATTAGATCTAATTTTTGGACTTCTTAAA <1;<;<;<4<&<<<:<<<:<<<<;<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+EAS1_108:5:115:193:231 163 seq2 522 99 35M = 684 197 GAAGAGATTGGATCTAATTTTTGGACTTCTTAAAG <<<<<<<<<<<<<<<<<<<<<<<7<<<<<<<<6<7 MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:1:88:1454:418 83 seq2 522 99 35M = 349 -208 GAAGAGATTGGATCTAATTTTTGGACTTCTTAAAG <<<<<<<<<<6<96<<<1911<<<1<<<<<<<<<1 MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:5:36:649:554 83 seq2 523 99 35M = 350 -208 AAGAGATTGGATCTAATTTTTGGACTTCTTAAAGA <<<<<888;<<<;<<<;<;<8<<<<8<<<<<<<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:4:119:651:88 83 seq2 527 99 35M = 337 -225 GATTGGATCTAATTTTTGGACTTCTTAAAGAAAAA <<<<<<<<;<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:7:57:826:977 163 seq2 528 99 35M = 693 200 ATTGGATCTAATTTTTGGACTTCTTAAAGAAAAAA <<<<<<<<<<<<<<<<+<<<<<<<<6<9:6<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:3:285:417:147 99 seq2 529 99 35M = 712 218 TTGGATCTAATTTTTGGACTTCTTAAAGAAAAAAA <<<<<<<<<<<<<<<;8<<<<<<<<<;6<:<;<<; MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:8:160:130:351 99 seq2 530 99 35M = 697 202 TGGATCTAATTTTTGGACTTCTTAAAGAAAAAAAA <<<<<<<<<<<<<<<;<<<<4<<<<<;<<<:<<:< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:3:287:665:495 163 seq2 530 99 35M = 702 207 TGGATCTAATTTTTGGACTTCTTAAAGAAAAAAAA ==========================98====8=8 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:6:71:187:824 147 seq2 534 99 35M = 367 -202 TCTAATTTTTGGACTTCTTAAAGAAAAAAAAACCT 0040;<7<<<<0<7<<<;<7*<<<<<7<<771<<< MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:8:70:445:1289 99 seq2 535 99 35M = 702 202 CTAATTTTTGGACTTCTTAAAGAAAAAAAAACCTG <<<<<<<<<<2<<<<<<<<<<:<<<<<<<;;;;<: MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:7:41:745:603 83 seq2 536 99 35M = 360 -211 TAATTTTTGGACTTCTTAAAGAAAAAAAAACCTGT ;<<;;<;<8<<<<<<<<<<<;<<;<<<<<<<<<;< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:6:197:759:975 163 seq2 537 99 35M = 698 196 AATTTTTGGACTTCTTAAAGAAAAAAAAACCTGTC <<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<<<<; MF:i:18 Aq:i:78 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:6:140:253:322 99 seq2 537 99 35M = 689 187 AATTTTTGGACTTCTTAAAGAAAAAAAAACCTGTC <<<<<<<<<<<<<;<<<<<<<<<<<<<<<;;;<<; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:5:58:684:520 147 seq2 538 99 35M = 367 -206 ATTTTTGGACTTCTTAAAGAAAAAAAAACCTGTCA <85;;:<<<7<<7<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:6:19:306:982 147 seq2 538 99 35M = 368 -205 ATTTTTGGACTTCTTAAAGAAAAAAAAACCTGTCA <<<<<<<<<9<<:<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:78 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:7:273:562:954 99 seq2 539 99 35M = 722 218 TTTTTGGACTTCTTAAAGAAAAAAAAACCTGTCAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<;;:;;;; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:5:78:775:555 99 seq2 539 99 35M = 691 187 TTTTTGGACTTCTTAAAGAAAAAAAAACCTGTCAA 6:<<<<:<<<<6:<<)::8<6<<:<<)<::63832 MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:2:49:330:699 163 seq2 540 99 35M = 722 217 TTTTGGACTTCTTAAAGAAAAAAAAACCTGTCAAA ==;=================;======5;;;==5= MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:2:329:437:643 147 seq2 540 99 36M = 354 -222 TTTTGGACTTCTTAAAGAAAAAAAAACCTGTCAAAC 885<8;;<;3,8<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:1:125:884:276 83 seq2 541 99 35M = 362 -214 TTTGGACTTCTTAAAGAAAAAAAAACCTGTCAAAC ,;;3,<7<;7<<===;============;====== MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:4:315:201:673 83 seq2 542 45 36M = 381 -197 TTGGACTTATTAAAGAAAAAAAAACCTGTCAAACAC ;;;;<-;;&;;<<<:<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+B7_597:3:10:394:392 147 seq2 542 99 35M = 376 -201 TTGGACTTCTTAAAGAAAAAAAAACCTGTCAAACA 28-:;0-<0<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:1:228:736:747 83 seq2 542 68 35M = 381 -196 TTGGACTTCTTAAAGAAAAAAAAACCTGTCAAACA <07<<&<;+<<<<<<<<<<<<<<<<;<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:4:267:394:437 163 seq2 544 99 35M = 735 226 GGACTTCTTAAAGAAAAAAAAACCTGTCAAACACG <<<<<<<<<<;<;<<<<<;;<<<<<;<<:;8<;<8 MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:5:66:1381:181 83 seq2 544 99 40M = 362 -222 GGACTTCTTAAAGAAAAAAAAACCTGTCAAACACGAATGT ;;;+;;&<7<<<+<<<<<<<;<;8<<<;<<<<8<<<;<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:5:74:668:424 99 seq2 545 99 40M = 707 202 GACTTCTTAAAGAAAAAAAAACCTGTCAAACACGAATGTT ;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;::;; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:4:322:350:374 83 seq2 546 99 35M = 360 -221 ACTTCTTAAAGAAAAAAAAACCTGTCAAACACGAA <+;8&84<<<:<<<<<<<<<<;<<<<<<<;<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:6:307:208:477 163 seq2 546 99 35M = 710 199 ACTTCTTAAAGAAAAAAAAACCTGTCAAACACGAA <<<<<<<;<<;<<<<<<<<<<<<<<<<;:<<<88; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:2:228:915:631 83 seq2 547 66 35M = 381 -201 ATTATTAAAGAAAAAAAAACCTGTCAAACACGAAT &-))-*===/=========9====4========== MF:i:18 Aq:i:0 NM:i:2 UQ:i:13 H0:i:1 H1:i:0
+EAS1_93:5:246:177:525 99 seq2 549 98 35M = 738 224 TCTTAAAGAAAAAAAAACCTGTCAAACACGAATGT <<<<<<<<<<<<<<<<<<<<<1<<<<<<;;;<8;; MF:i:18 Aq:i:27 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:7:93:634:323 99 seq2 550 99 35M = 721 206 CTTAAAGAAAAAAAAACCTGTCAAACACGAATGTT <<<<<<<<<<<<<<<<<<<<7<<<<<<<<<<,<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_61:8:165:441:708 163 seq2 550 99 35M = 737 222 CTTAAAGAAAAAAAAACCTGTCAAACACGAATGTT =<===============================99 MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:5:191:885:623 83 seq2 551 99 35M = 363 -223 TTAAAGAAAAAAAAACCTGTCAAACACGAATGTTA 66<<<<<<<<<<<<<2<<<<9<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:5:127:828:697 147 seq2 552 99 35M = 346 -241 TAAAGAAAAAAAAACCTGTCAAACACGAATGTTAT ;<<<7<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:5:115:249:673 163 seq2 552 99 35M = 743 226 TAAAGAAAAAAAAACCTGTCAAACACGAATGTTAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<:<6< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:3:263:689:572 147 seq2 553 68 35M = 381 -207 AAAGAAAAAAAAACCTGTCAAACACGAATGTTATG <9<2<<<<<<<<<22;;02<<<9<<;9<9<<;<<3 MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:1:99:1632:76 99 seq2 553 99 40M = 705 192 AAAGAAAAAAAACCCTGTCAAACACGAATGTTATGCCCTG <<<<<<<<<<<<*<<<<8<9<<<<<<<<<9;;;;<18:;: MF:i:18 Aq:i:47 NM:i:1 UQ:i:9 H0:i:0 H1:i:1
+EAS54_71:7:250:698:842 163 seq2 554 99 35M = 753 233 AAGAAAAAAAAACCTGTCAAACACGAATGTTATGC <<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<;<24 MF:i:18 Aq:i:39 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:5:41:314:1173 99 seq2 554 99 35M = 718 199 AAGAAAAAAAAACCTGTCAAACACGAATGTTATGC <;<<<<<<<;;<<<<<-<<<;;;<;8<*;;<<<<' MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:2:189:831:878 83 seq2 555 99 35M = 351 -239 AGAAAAAAAAACCTGTCAAACACGAATGTTATGCC <9<<<<<<<<<<;9<:<<<<<6<<<<<<<;<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:6:216:47:302 99 seq2 557 99 35M = 729 207 AAAAAAAAACCTGTCAAACACGAATGTTATGCCCT <<<<<<<<<<<7<<<<<<<<<<<<+<<<<<//6;< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:5:28:538:148 83 seq2 557 99 35M = 376 -216 AAAAAAAAACCTGTCAAACACGAATGTTATGCCCT <<<<<<<<<<7;<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:2:284:597:682 147 seq2 557 99 35M = 375 -217 AAAAAAAAACCTGTCAAACACGAATGTTATGCCCT <<<<<<<<9;;7<;:<<<:<;<<<<<<<<;<<<<; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:7:11:1261:1200 83 seq2 558 99 35M = 362 -231 AAAAAAAACCTGTCAAACACGAATGTTATGCCCTG <<<<<<<:<<6<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:3:246:711:981 147 seq2 559 99 35M = 371 -223 AAAAAAACCTGTCAAACACGAATGTTATGCCCTGC ;;:;7<<:5:<<:<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:1:208:971:600 83 seq2 559 99 35M = 382 -212 AAAAAAACCTGTCAAACACGAATGTTATGCCCTGC <<<<<<<3*+<4/<<<<7<<<<0<<:<8<<<<0<< MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:5:219:174:684 83 seq2 560 71 35M = 390 -205 AAAAAAACTGTCAAACACGAATGTTATGCCCTGCT <<<<:;+9<<<;<<;<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:1 UQ:i:10 H0:i:1 H1:i:0
+EAS51_66:7:4:234:610 163 seq2 560 84 35M = 729 204 AAAAAACCTGTCAAACACGAATGTTATGCCCTCCT <<<<<<<<7;<<<;7<7;7;7<;-<-<&<<<0%06 MF:i:18 Aq:i:22 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+EAS54_73:5:271:874:367 83 seq2 560 99 35M = 384 -211 AAAAAACCTGTCAAACACGAATGTTATGCCCTGCT <<<<<<5;<<<:<<<;<;<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:7:2:168:1878 99 seq2 560 37 35M = 743 218 AAAAAACCTGGCAAACACGAATGTTATGACATGTN ;<:;;<:<;<;<;;;;:;<;:::&9:&:68&6&*! MF:i:18 Aq:i:37 NM:i:5 UQ:i:61 H0:i:0 H1:i:1
+EAS221_1:6:89:1164:573 147 seq2 560 99 35M = 371 -224 AAAAAACCTGTCAAACACGAATGTTATGCCCTGCT 3<<<6<%7<<08<<4<3<<103<1<<<<<<<<<<< MF:i:18 Aq:i:41 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:7:53:783:78 147 seq2 561 99 35M = 363 -233 AAAAACCTGTCAAACACGAATGTTATGCCCTGCTA <;;;;<<0<,<<<<<<<<<;<<<;<;<<<<;<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:4:30:570:902 163 seq2 561 99 35M = 730 204 AAAAACCTGTCAAACACGAATGTTATGCCCTGCTA <<<<<<<<<<<;4<<:<<44<<<<<<<<<<<4<<+ MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:8:7:1864:1569 147 seq2 561 99 35M = 382 -214 AAAAACCTGTCAAACACGAATGTTATGCCCTGCTA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:5:89:942:84 163 seq2 562 74 35M = 759 232 AAAACCTGTCAAACACGAATGTTATGCCCTGCTAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<; MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:6:122:589:134 83 seq2 562 99 35M = 369 -228 AAAACCTGTCAAACACGAATGTTATGCCCTGCTAA ;<;4<<538<<;<<;<<<<';,:<<<<<<<<<<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:6:77:1529:522 99 seq2 562 99 35M = 722 195 AAAACCTGTCAAACACGAATGTTATGCCCTGCTAA <<;<<<<<<<<<<<4<<4<;;:;2:7<<<2*<;;8 MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:8:48:805:860 99 seq2 563 78 35M = 755 227 AAACCTGTCAAACACGAATGTTATGCCCTGCTAAA <<<<<<<;<<<<<<<41;<<8<<<<<<<8+<4,+; MF:i:18 Aq:i:13 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:4:144:492:61 99 seq2 564 99 35M = 728 199 AACCTGTCAAACACGAATGTTATGCCCTGCTAAAC <<<;<<<<<<<<<<<;<<<<<<7:<<<<::;9;;6 MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:3:303:970:243 83 seq2 564 99 35M = 370 -229 AACCTGTCAAACACGAATGTTATGCCCTGCTAAAC <<0+<<<,<4<:<:<<<<<<<<<<<::<<<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:4:78:806:800 163 seq2 564 99 40M = 717 193 AACCTGTCAAACACGAATGTTATGCCCTGCTAAACTAAGC <<<<<<<<<<<<<<<<<<<4<<:<1<0<;<9;<:78:::: MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:7:94:1440:2016 163 seq2 564 99 35M = 751 222 AACCTGTCAAACACGAATGTTATGCCCTGCTAAAC <<<<<<<<<<<<<<<<<<<;<<;;;<<:<8:::75 MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:3:103:443:166 163 seq2 565 99 35M = 747 217 ACCTGTCAAACACGAATGTTATGCCCTGCTAAACT <<<<<<<<<<<<<<<<<<<<;<<<<<<<1<-;;;< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:5:24:284:360 83 seq2 567 76 35M = 390 -212 CTGTCAAACACGAATGTTATGCCCTGCTAAACTAA :;<;:<<<;<<<<<<<<<<<<<<<<<;;<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:3:166:626:836 163 seq2 567 99 35M = 757 225 CTGTCAAACACGAATGTTATGCCCTGCTAAACTAA <<<<<<<<<<<<<<<<<<<<9<<<<<<<<;<;;;9 MF:i:18 Aq:i:28 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:4:110:840:431 83 seq2 567 93 35M = 388 -214 CTGTCAAACACGAATGTTATGCCCTGCTAAACTAA 77<;7<<<<<<<<<4<<<<<<<:<<<<<<<<<<<< MF:i:18 Aq:i:21 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:4:116:738:142 99 seq2 568 99 35M = 722 189 TGTCAAACACGAATGTTATGCCCTGCTAAACTAAG <<<<<<<<<<<<<<<<<<<;<<<<;<<<<<<<:;2 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:8:55:932:613 83 seq2 568 77 35M = 389 -214 TGTCAAACACGAATGTTATGCCCTGCTAAACTAAG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:7:137:139:248 83 seq2 569 97 35M = 401 -203 GTCAAACACGAATGTTATGCCCTGCTAAACTAAGC ;;;99<<<;<;;<<<<<<<<<<<<;<<<<<<<<<< MF:i:18 Aq:i:22 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_4:1:34:1614:558 147 seq2 569 99 35M = 411 -193 GTCAAACACGAATGTTATGCCCTGCTAAACTAAGC <<9<<<<<<<<<<<<9<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:37 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:7:15:696:693 83 seq2 570 10 35M = 403 -202 TCAAACACGAATGTTAATCCCTGCTAAACTAATCA )6<:7<.7<6.<0&&<&3:&7<<7<0<<<<<<<<< MF:i:18 Aq:i:10 NM:i:3 UQ:i:50 H0:i:0 H1:i:0
+EAS114_28:3:32:492:907 147 seq2 571 95 36M = 387 -220 CAAACACGAATGTTATGCCCTGCTAAACTAAGCATC 8<;<4<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:20 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:1:114:19:769 83 seq2 572 90 35M = 405 -202 AAACACGAATGTTATGCCCTGCTAAACTAAGCATC 5+;+3/6;<+;/8<8*/<7/59<97147<;;9<7< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:3:182:104:921 147 seq2 575 99 35M = 378 -232 CACGAATGTTATGCCCTGCTAAACTAAGCATCATA ;<;<<<<<<:<<<<<:<<:<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:8:5:996:2000 83 seq2 575 99 35M = 408 -202 CACGAATGTTATGCCCTGCTAAACTAAGCATCATA <<<<<<<<<<<<<<<<<<:<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:5:109:199:592 83 seq2 576 72 35M = 390 -221 ACGAATATTATGCCCTGCTAAACTAAGCATCATAA ;9<9<:&:<<<<;;<;;<<<<<<<<<;<<<<<<<< MF:i:18 Aq:i:0 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS219_1:3:90:219:528 163 seq2 576 75 35M = 758 217 ACGAATGTTATGCCCTGCTAAACTAAGCATCATAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<7<<9 MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:6:94:294:387 163 seq2 578 99 35M = 736 193 GAATGTTATGCCCTGCTAAACTAAGCATCATAAAT <<<<<<<;<<<<<<<<<:<<<<<<<<<<<<;)7;; MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:1:33:779:821 83 seq2 579 99 35M = 416 -198 AATGTTATGCCCTGCTAAACTAAGCATCATAAATG <<730<<<<9<<<<;<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:5:43:114:617 163 seq2 579 99 35M = 738 194 AATGTTATGCCCTGCTAAACTAAGCATCATAAATG =============;=========;=========== MF:i:18 Aq:i:52 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:5:23:944:377 99 seq2 579 75 36M = 757 214 AATGTTATGCCCTGCTAAACTAAGCATCATAAATGA <<<<<<<<9<<<<;<<<<<<<<<;<7<<<<;8;<<; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:3:3:864:1888 147 seq2 579 99 35M = 411 -203 AATGTTATGCCCTGCTAAACTAAGCATCATAAATG 888588;;;;;;;;;;;;;;;;;;;;8;;;;;;;; MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:4:26:137:1382 147 seq2 579 99 35M = 397 -217 AATGTTATGCCCTGCTAAACTAAGCATCATAAATG <<-<8<<<<<<:<<<<<<<:<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:6:265:251:147 163 seq2 581 99 35M = 754 208 TGTTATGCCCTGCTAAACTAAGCATCATAAATGAA <<<<<<<<<<<<<<88<<<80:;<<<<<;:4;;:4 MF:i:18 Aq:i:50 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:5:184:912:258 147 seq2 582 99 35M = 428 -189 GTTATGCCCTGCTAAACTAAGCATCATAAATGAAG <;;<<<<;:<<7<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:3:115:646:430 99 seq2 582 45 35M = 768 217 GTTATGCCCTGCTAAACTTAGCATCATAAATGAAG <7<<<<<<<<<<<<;<<<<<;<7<<<<;5;<;67< MF:i:18 Aq:i:45 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS1_108:3:24:319:429 163 seq2 582 99 35M = 740 193 GTTATGCCCTGCTAAACTAAGCATCATAAATGAAG <<<<<<<<<<<<<<<<;<<<<<<<<1<<-6<<</< MF:i:18 Aq:i:56 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:8:49:182:192 99 seq2 582 99 35M = 750 203 GTTATGCCCTGCTAAACTGAGCATCATAAATGAAG =====================;============< MF:i:18 Aq:i:49 NM:i:1 UQ:i:28 H0:i:0 H1:i:1
+EAS114_45:1:100:979:1863 99 seq2 583 85 35M = 757 209 TTATGCCCTGCTAAACTAAGCATCATAAATGAAGG ;<;;;;;;;7;;;79;;77;9;;99;974;677-6 MF:i:18 Aq:i:23 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:7:53:458:581 73 seq2 583 77 35M = 583 0 TTATGCCCTGCTAAACTAAGCATCATAAATGAAGG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:64 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:7:53:458:581 133 seq2 583 0 * = 583 0 CTCAATTAATTGTTTTATAAAACCTGTGAGTTTTG <<<<<<<<<<<<<<<<<<<<<<<<<<<<99<<<<< MF:i:192
+B7_589:6:108:958:42 163 seq2 584 81 35M = 755 206 TATGCCCTGCTAAACTAAGCATCATAAATGAAGGG <<<<<<<<<<<<<<<<<<<<1<<<<<<9<<;<5<: MF:i:18 Aq:i:9 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:6:89:457:591 99 seq2 585 69 35M = 770 216 ATGCCCTGCTAAACTAAGCATCATAAATGAAGGGG <<<<<<<<<<<4<<<<<<<<<<<<8<7/4<<<<4+ MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:7:87:1289:83 83 seq2 585 99 35M = 413 -207 ATGCCCTGCTAAACTAAGCATCATAAATGAAGGGG <<<::<<<:<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:49 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_4:1:84:1505:1037 147 seq2 586 99 35M = 409 -212 TGCCCTGCTAAACTAAGCATCATAAATGAAGGGGA <<966<<7<<<<7<<<<9<<;<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:3:197:261:624 147 seq2 587 99 35M = 398 -224 GCCCTGCTAAACTAAGCATCATAAATGAAGGGGAA 866;2:/;<<<;:<<<;<;;<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:6:118:41:489 163 seq2 588 76 35M = 779 226 CCCTGCTAAACTAAGCATCATAAATGAAGGGGAAA <<<<<<<<<<<<<<<<;<<<<<<<<<<<<<<<95: MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:3:157:361:309 99 seq2 589 99 35M = 747 193 CCTGCTAAACTAAGCATCATAAATGAAGGGGAAAT <<<<<<<<<<<<<<<<<<<<<<<<<<;<;<;<<;< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+EAS114_39:6:71:644:1792 163 seq2 589 84 35M = 754 200 CCTGCTAAACTAAGCATCATAAATGAAGGGGAAAT <<<<<<<;<<<<<<<<<<;<<<<<<<<<;<;:<:< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+B7_589:2:9:49:661 163 seq2 591 99 35M = 747 191 TGCTAAACTAAGCATCATAAATGAAGCGGAAATAA <<<<<<<<<<<<<<<<;<<<<<<;:<<;;;7<9;9 MF:i:18 Aq:i:45 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS54_71:2:85:686:696 83 seq2 594 99 34M = 435 -193 TAAACTAAGCATCATAAATGAAGTGGAAATAAAG :<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS188_7:1:177:522:118 69 seq2 594 0 * = 594 0 TCTCAATTAATTGTTTTATAAAACCTGTGAGTTTT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<57<<<< MF:i:192
+EAS188_7:1:177:522:118 137 seq2 594 49 35M = 594 0 TAAACTAAGCATCATAAATGAAGGGGAAATAAAGT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<8< MF:i:64 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_4:5:103:870:105 99 seq2 595 44 35M = 778 214 AAACTAAGCATCATAAATGAAGGGGAAATAAAGTC <<<<<<<<<<<<<<<<<<<<<<<<8<<<<<;<<7; MF:i:18 Aq:i:44 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS51_62:8:52:967:804 73 seq2 596 76 35M = 596 0 AACTAAGCATCATAAATGAAGGGGAAATAAAGTCA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<:<< MF:i:64 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:8:52:967:804 133 seq2 596 0 * = 596 0 TTACCTAGTTGCTCTGTAGTCTCAATTAATTGTTT ===============<=======<<===<====== MF:i:192
+EAS1_108:6:95:235:746 83 seq2 598 99 35M = 430 -203 CTAAGCATCATAAATGAAGGGGAAATAAAGTCAAG ==&=;===7=3===8======;=;8===8=====; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:7:124:253:889 83 seq2 598 99 35M = 437 -196 CTAAGCATCATAAATGAAGGGGAAATAAAGTCAAG 8<<<<<<<<<<<<<<<<<<<<<<<<<:<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:6:174:650:125 99 seq2 600 76 35M = 770 201 AAGCATCATAAATGAAGGGGAAATAAAGTCAAGTC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:3:39:348:594 83 seq2 600 99 35M = 431 -204 AAGCATCATAAATGAAGGGGAAATAAAGTCAAGTC <<;;<;:<;<<<;<<<<<<<<<<<<<<<<<;<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:4:92:693:228 99 seq2 601 75 35M = 770 200 AGCATCATAAATGAAGGGGAAATAAAGTCAAGTCT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;9<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:3:285:349:797 163 seq2 604 76 35M = 773 200 ATCATAAATGAAGGGGAAATAAAGTCAAGTCTTTC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:3:82:13:897 83 seq2 606 99 35M = 453 -188 CATAAATGAAGGGGAAATAAAGTCAAGTCTTTCCT ,<2<;<<;<<<<;;;<<;<<<<<<<;;;;<<<<<< MF:i:18 Aq:i:41 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:7:310:155:312 83 seq2 606 99 35M = 438 -203 CATAAATGAAGGGGAAATAAAGTCAAGTCTTTCCT 2;<<;<<;<<;;/<<<<<<;<<<<8<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:8:45:178:1321 163 seq2 606 77 35M = 771 196 CATAAATGAAGGGGAAATAAAGTCAAGTCTTTCCT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:2:193:420:78 99 seq2 607 99 35M = 787 215 ATAAATGAAGGGGAAATAAAGTCAAGTCTTTCCTG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;<<; MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:1:131:518:588 83 seq2 607 99 35M = 433 -209 ATAAATGAAGGGGAAATAAAGTCAAGTCTTTCCTG <.<<<<<<<<4<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:8:45:800:733 83 seq2 607 99 35M = 413 -229 ATAAATGAAGGGGAAATAAAGTCAAGTCTTTCCTG <7<<7&<<9<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:34 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:4:70:766:2016 83 seq2 607 99 35M = 422 -220 ATAAATGAAGGGGAAATAAAGTCAAGTCTTTCCTG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:2:2:1217:398 163 seq2 608 99 40M = 780 212 TAAATGAAGGGGAAATAAAGTCAAGTCTTTCCTGACAAGC <<<<<<<<<<<<<;<<<<<<<7<<<3<<<<;<<<<9:7:: MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:3:73:1458:1337 163 seq2 609 99 35M = 806 232 AAATGAAGGGGAAATAAAGTCAAGTCTTTCCTGAC <<<<<;;;<<<<<<<<<<<<<<<<<<<;<<7;;;; MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:2:104:402:732 83 seq2 610 99 35M = 434 -211 AATGAAGGGGAAATAAAGTCAAGTCTTTCCTGACA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:5:37:611:267 147 seq2 610 99 35M = 464 -181 AATGAAGGGGAAATAAAGTCAAGTCTTTCCTGACA <<4<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:7:78:692:671 147 seq2 610 99 35M = 438 -207 AATGAAGGGGAAATAAAGTCAAGTCTTTCCTGACA <<);<<;;<<<<<;<<<<<<<<<<<<<6<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:1:144:242:602 83 seq2 611 99 36M = 436 -211 ATGAAGGGGAAATAAAGTCAAGTCTTTCCTGACAAG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:5:6:1243:981 69 seq2 611 0 * = 611 0 TTACCTAGTTGCTCTGTAGTCTCAATTAATTGTTT <<<<8<<8<<<<2<<<<<<<<8<55<<8*<<8<<< MF:i:192
+EAS219_FC30151:5:6:1243:981 137 seq2 611 68 35M = 611 0 ATGAAGGGGAAATAAAGTCAAGTCTTTCCTGACAA <;<;;<<<;3;;3<<<;<<;<7%<<<.1<<<..<3 MF:i:64 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:3:291:404:199 163 seq2 612 76 36M = 777 197 TGAAGGGGAAATAAAGTCAAGTCTTTCCTGACAAGC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<: MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:2:266:994:429 99 seq2 612 76 35M = 769 188 TGAAGGGGAAATAAAGTCAAGTCTTTCCTGACAAG =====================9=======4===:= MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:7:159:253:353 163 seq2 613 67 35M = 778 196 GAAGGGGAAATAAAGTCAAGTCTTTCCTGACAGGC <<<<<<<<<<<<<<<<<<<<<<<<<<<<0,%4(+, MF:i:18 Aq:i:67 NM:i:1 UQ:i:7 H0:i:1 H1:i:0
+EAS1_108:5:175:149:296 163 seq2 614 99 35M = 811 232 AAGGGGAAATAAAGTCAAGCCTTTCCTGACAAGCA <<<<<<<<<<<<<<<<<<<49<<<<<<<<<<<<;4 MF:i:18 Aq:i:45 NM:i:1 UQ:i:19 H0:i:0 H1:i:1
+EAS56_65:1:23:536:229 147 seq2 614 99 35M = 448 -201 AAGGGGAAATAAAGTCAAGTCTTTCCTGACAAGCA <<99<<<<<;<<<;2<<<<<<;<<<9<<<<<<<<< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:4:100:20:1199 83 seq2 614 99 35M = 456 -193 AAGGGGAAATAAAGTCAAGTCTTTCCTGACAAGCA :<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:5:181:713:140 99 seq2 615 84 35M = 793 213 AGGGGAAATAAAGTCAAGTATTTCCTGACAAGCAA <7<<<<<<<<<<<<7<7<6+<<<5;<;<2<;;+;; MF:i:18 Aq:i:41 NM:i:1 UQ:i:10 H0:i:0 H1:i:1
+EAS139_19:6:82:1051:921 163 seq2 616 99 40M = 800 224 GGGGAAATAAAGTCAAGGCTTTCCTGACAAGCAAATGCTA <<<<<9<799<<<<7::/<<<9<7:9:;2:7552+9''66 MF:i:18 Aq:i:41 NM:i:1 UQ:i:14 H0:i:0 H1:i:1
+EAS192_3:3:309:187:267 163 seq2 616 99 35M = 786 205 GGGGAAATAAAGTCAAGTCTTTCCTGACAAGCAAA <<<<<<<<<<<<<<<<<<<<<<<;<;<;<;68;;8 MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:3:115:649:259 99 seq2 617 99 36M = 782 201 GGGAAATAAAGTCAAGTCTTTCCTGACAAGCAAATG <<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<<;<<9 MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:4:261:267:597 163 seq2 617 86 35M = 787 205 GGGTAATAAAGTCAAGTCTTTCCTGACAAGCAAAT <<<<<<<<<;<<<<<7<<<<<<<<<:7<7<;44:; MF:i:18 Aq:i:41 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS114_26:4:123:1001:580 163 seq2 617 43 35M = 771 185 GGGAANTAAAGTCAAGTCTTTCCTGACAAGCAAAT =====!=====================1.8131*= MF:i:18 Aq:i:43 NM:i:1 UQ:i:0 H0:i:0 H1:i:1
+EAS139_11:7:60:163:1612 83 seq2 617 99 35M = 439 -213 GGGAACTAAAGTCAAGTCTTTCCTGACAAGCAAAT -<<<<)<<<<<<<<<<<<<<<<<<<<<8<<<<<<< MF:i:18 Aq:i:59 NM:i:1 UQ:i:8 H0:i:1 H1:i:0
+EAS54_65:4:325:795:213 163 seq2 618 99 35M = 790 207 GGAAATAAAGTCAAGTCTTTCCTGACAAGCAAATG <<<<<<<;<<<<;;<<<<<<<<<<<<;:<</;/;; MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:3:165:665:220 163 seq2 618 76 35M = 779 196 GGAAATAAAGTCAAGTCTTTCCTGACAAGCAAATG <<<<<<<<<<<<<<<<<<<<<;<;;<<<;;<;<<; MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:4:22:206:150 163 seq2 619 99 35M = 792 208 GAAATAAAGTCAAGTCTTTCCTGACAAGCAAATGC ==========================::=5&;<2< MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:2:237:497:165 147 seq2 619 99 35M = 454 -200 GAAATAAAGTCAAGTCTTTCCTGACAAGCAAATGC 9=:=======2=27======<>&<=,==4>4=>>= MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:8:82:1540:77 163 seq2 619 99 35M = 786 202 GAAATAAAGTCAAGTCTTTCCTGACAAGCAAATGC <<<<<<<<<<<<<<<<<<<<<<<<<<<;;<<<<:8 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:3:172:196:746 147 seq2 620 99 35M = 451 -204 AAATAAAGTCAAGTCTTTCCTGACAAGCAAATGCT <<<;><<+<<<<:<<<<2<;<<<;<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:7:97:892:419 163 seq2 621 99 35M = 800 214 AATAAAGTCAAGTCTTTCCTGACAAGCAAATGCTA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:4:312:915:751 147 seq2 621 99 35M = 461 -195 AATAAAGTCAAGTCTTTCCTGACAAGCAAAAGCTA <:-<<<99:::);:7<4;8<<<<<<<;<2<+8<;< MF:i:18 Aq:i:41 NM:i:1 UQ:i:10 H0:i:0 H1:i:1
+EAS1_93:4:325:352:67 163 seq2 622 99 35M = 794 207 ATAAAGTCAAGTCTTTCCTGACAAGCAAATGCTAA ==================<========<=<;-=== MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:4:83:731:540 99 seq2 623 99 35M = 804 216 TAAAGTCAAGTCTTTCCTGACAAGCAAATGCTAAG <<<<<<<<<;<<<<<<<<<<<<<:<7<*;&;<;;9 MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:5:74:329:459 163 seq2 623 99 35M = 795 207 TAAAGTCAAGTCTTTCCTGACAAGCAAATGCTAAG <<<<<<<<<<<<<<<<<<<<<<<;<<;<<;9;599 MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:3:13:674:1717 83 seq2 623 99 35M = 445 -213 TAAAGTCAAGTCTTTCCTGACAAGCAAATGCTAAG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:1:141:415:738 69 seq2 624 0 * = 624 0 TTACCTAGTTGCTCTGTAGTCTCAATTAATTGTTT <<<<<<<<<<<<<<<<<<<<<<<;<<<<<;<8<<< MF:i:192
+EAS1_105:1:141:415:738 137 seq2 624 76 35M = 624 0 AAAGTCAAGTCTTTCCTGACAAGCAAATGCTAAGA <<<<<<<<<<<<<<<<<<<<<<:<<;<<;<<<<6: MF:i:64 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_53:1:154:118:488 83 seq2 624 99 35M = 447 -212 AAAGTCAAGTCTTTCCTGACAAGCAAATGCTAAGA <<<;58<<95:<<;<;<<<;<<<;;<<<<<<<<<< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:5:198:929:684 83 seq2 624 99 35M = 471 -188 AAAGTCAAGTCTTTCCTGACAAGCAAATGCTAAGA <<;<<<<<:<<<<<<<<<<<<<<<<<;<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:4:215:246:640 147 seq2 624 99 36M = 447 -213 AAAGTCAAGTCTTTCCTGACAAGCAAATGCTAAGAT ;<<,<<<96<<:<:<9<6<97<<<<<9<<<<9<<9< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:2:234:167:381 83 seq2 625 99 35M = 443 -217 AAGTCAAGTCTTTCCTGACAAGCAAATGCTAAGAT <<;<;<<<<;<<<<7<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:49 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:7:96:489:453 147 seq2 625 99 35M = 445 -215 AAGTCAAGTCTTTCCTGACAAGCAAATGCTAAGAT ;<;;;<<<<5:<<:<<<<:<<<<<<<<<<<<<<<< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:3:79:879:15 99 seq2 626 99 35M = 790 199 AGTCAAGTCTTTCCTGACAAGCAAATGCTAAGATA <<<<<<<<<<<<<<<<<<<<<<<<<<<<2<;<<1< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_53:2:59:286:290 147 seq2 628 99 35M = 467 -196 TCAAGTCTTTCCTGACAAGCAAATGCTAAGATAAT 77<<<<7<<<97<<,7<<<;<<<;<9<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:5:263:511:936 99 seq2 629 99 35M = 801 207 CAAGTCTTTCCTGACAAGCAAATGCTAAGATAATT <<<<<<<<<<<<<<<<<;<<<<<;<<:<:<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:3:181:582:435 147 seq2 629 99 35M = 471 -193 CAAGTCTTTCCTGACAAGCAAATGCTAAGATAATT <<<<<<<<;<<<<<;<<4<<<<<<;<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:6:107:636:642 83 seq2 630 99 35M = 458 -207 AAGTCTTTCCTGACAAGCAAATGCTAAGATAATTC <<<<<<<;<<<<<;<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:4:12:273:89 83 seq2 631 99 35M = 477 -189 AGTCTTTCCTGACAAGCAAATGCTAAGATAATTCA <:737<288<<<7<<<<<<<<<:9<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:2:239:1001:406 147 seq2 634 99 35M = 450 -219 CTTTCCTGACAAGCAAATGCTAAGATAATTCATCA 0':.71;;:9==9=;====;=;============= MF:i:18 Aq:i:49 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_4:7:96:899:106 147 seq2 636 99 35M = 462 -209 TTCCTGACAAGCAAATGCTAAGATAATTCATCATC ;;;;<<<<<<<;<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:6:67:56:806 147 seq2 637 99 35M = 464 -208 TCCTGACAAGCAAATGCTAAGATAATTCATCATCA 844:8;7<88;8<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:5:71:408:741 83 seq2 637 99 35M = 457 -215 TCCTGACAAGCAAATGCTAAGATAATTCATCATCA ;7;<;<0<<<<<<<<:;<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_53:6:180:695:621 147 seq2 637 99 35M = 453 -219 TACTGAAAAGCAAATGCTAAGATAATTCATCATCA ;&377<&<<;7<<<<<7<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:68 NM:i:2 UQ:i:10 H0:i:1 H1:i:0
+EAS114_30:6:49:656:507 147 seq2 637 99 35M = 468 -204 TCCTGACAAGCAAATGCTAAGATAATTCATCATCA %44;;<:<<;<;<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:3:4:854:140 147 seq2 638 72 35M = 458 -215 CCTGACAAGCAAATGCTAAGATAATTCATCATCAC :9':<;<<<;<<<;<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:1:85:1521:58 99 seq2 639 99 40M = 813 214 CTGACAAGCAAATGCTAAGATAATTCATCATCACTAAACC <<<<<<<<9<<<<<<<<<<<<<7<<<<<<<<<<<<;;:7: MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:2:57:1064:925 137 seq2 640 76 35M * 0 0 TGACAAGCAAATGCTAAGATAATTCATCATCACTA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<:<<< MF:i:32 Aq:i:29 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:3:323:196:855 163 seq2 642 99 35M = 809 202 ACAAGCAAATGCTAAGATAATTCATCATCACTAAA <<<<<<<7<<<<<<:<<<<<<<<<<<<<<<<<;7: MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:5:117:33:262 163 seq2 642 99 35M = 814 207 ACAAGCAAATGCTAAGATAATTCATCATCACTAAA <<<;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<; MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:1:59:742:549 99 seq2 642 99 35M = 816 209 ACAAGCAAATGCTAAGATAATTCATCATCACTAAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<8< MF:i:18 Aq:i:48 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:2:55:562:403 163 seq2 643 99 36M = 825 218 CAAGCAAATGCTAAGATAATTCATCATCACTAAACC <<<<<<<<<<<<<<<<<<<<<;<<;<<<<<<<;<;: MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:7:97:743:602 163 seq2 644 99 35M = 821 211 AAGCAAATGCTAAGATAATTCATCATCACTAAACC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<<: MF:i:18 Aq:i:26 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:2:167:905:852 83 seq2 647 99 36M = 445 -238 CAAATGCTAAGATAATTCATCATCACTAAACCAGTC +<<<9;7;<<+<<<<<39<;9<;9<<7<<<<<<<<< MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:6:130:865:838 83 seq2 649 99 35M = 448 -236 AATGCTAAGATAATTCATCATCACTAAACCAGTCC ;<:84<<<4<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:1:60:1420:660 163 seq2 649 99 35M = 808 194 AATGCTAAGATAATTCATCATCACTAAACCAGTCC <<<<<<<<<<<<<<<<<<<<<<<<<<;<<<8<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:3:180:89:582 99 seq2 650 99 36M = 809 195 ATGCTAAGATAATTCATCATCACTAAACCAGTCCTA <<<<<<<<<7<<<<<<<<<7<<<:<<<:<<::77:< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:1:86:871:319 147 seq2 651 71 35M = 494 -192 TGCTAAGATAATTCATCATCACTAAACCAGTCCTA 7;+1;<:<<<<<<<<;<<;<<9<<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:2:236:841:20 83 seq2 652 99 35M = 467 -220 GCTAAGATAATTCATCATCACTAAACCAGTCCTAT 7;<<<;<<<<;;<<<<<<<<<<<<<<<<<<<<;<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:2:133:8:379 83 seq2 653 99 35M = 470 -218 ATAAGATAATTCATCATCACTAAACCAGTCCTATA &=========='==7==0=2====28===00==== MF:i:18 Aq:i:70 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS1_105:8:96:720:940 83 seq2 654 99 35M = 467 -222 TAAGATAATTCATCATCACTAAACCAGTCCTATAA *<<<<;<<<9<<;,<;0<;<<<<<<<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:5:71:994:576 99 seq2 655 99 35M = 805 185 AAGATAATTCATCATCACTAAACCAGTCCTATAAG <<<<<<<<<<<<<<<<<<<<<<<;<<5<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:4:164:79:134 147 seq2 656 99 35M = 488 -203 AGATAATTCATCATCACTAAACCAGTCCTATAAGA <;<;<<<;<<;<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:6:78:1029:512 83 seq2 656 99 40M = 500 -196 AGATAATTCATCATCACTAAACCAGTCCTATAAGAAATGC ;;;;;<;;<<<.<<6;<<;<;8<<<<::<<<<<<<<;<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:1:214:784:690 147 seq2 657 99 35M = 472 -220 GATAATTCATCATCACTAAACCAGTCCTATAAGAA -<7<<7<:<<2<<<<;<<<<<;<<<<3<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS220_1:4:6:1178:1105 99 seq2 657 93 35M = 830 208 GATAATTCATCATCACTAAACCAGTCCTATAAGAA <<<<<<:<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:17 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:7:171:196:287 83 seq2 658 99 35M = 485 -208 ATAATTCATCATCACTAAACCAGTCCTATAAGAAA <;;;98;<;&<;;<<<<<<<;<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:1:220:801:282 99 seq2 660 99 36M = 837 213 AATTCATCATCACTAAACCAGTCCTATAAGAAATGC <<<<<<<<<<<<<<<<<<<<<;<+<;<<<<<::<<: MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+EAS221_1:2:73:955:728 163 seq2 660 44 35M = 823 198 AATTCATCATCACTAAACCAGTCCTATAAGAAATG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<<<< MF:i:18 Aq:i:14 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+EAS1_105:1:3:903:957 147 seq2 661 99 35M = 516 -180 ATTCATCATCACTAAACCAGTCCTATAAGAAATGC <%12<&<<<;<:<<<<<<<<<7<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS56_65:2:224:579:433 83 seq2 662 99 35M = 485 -212 TTCATCATCACTAAACCAGTCCTATAAGAAATGCT '<08/8<+<</<<:<<<<<8<<9<38<<<<<<<<; MF:i:18 Aq:i:31 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:5:209:824:866 163 seq2 665 73 35M = 828 198 ATCATCACTAAACCAGTCCTATAAGAAATGCTCAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<; MF:i:18 Aq:i:19 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:1:30:1882:1210 83 seq2 665 82 35M = 503 -197 ATCATCACTAAACCAGTCCTATAAGAAATGCTCAA 776778;5;;;;8;;7:8;;;;;;;<<<;;;;;<; MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:4:181:476:394 163 seq2 666 99 35M = 847 216 TCATCACTAAACCAGTCCTATAAGAAATGCTCAAA <<<<<<<<<<<<<<<<<<<<<<<<<;<<:<<<:;; MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:6:267:953:459 147 seq2 667 99 35M = 509 -193 CATCACTAAACCAGTCCTATAAGAAATGCTCAAAA %<07<94========<<================== MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:7:140:752:822 147 seq2 667 76 35M = 495 -207 CATCACTAAACCAGTCCTATAAGAAATGCTCAAAA ;<;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_32:7:322:391:742 99 seq2 667 99 35M = 847 215 CATCACTAAACCAGTCCTATAAGAAATGCTCAAAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<;; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:5:149:639:910 83 seq2 669 99 35M = 489 -215 TCACTAAACCAGTCCTATAAGAAATGCTCAAAAGA <;49;<<;;<<<<8;<<<<<<<<<<<<<<<<<<;< MF:i:18 Aq:i:42 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:1:242:419:512 83 seq2 672 94 35M = 490 -217 CTAAACCAGTCCTATAAGAAATGCTCAAAAGAATT *:<<<<9<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:24 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:6:45:183:25 83 seq2 672 95 35M = 501 -206 CTAAACCAGTCCTATAAGAAATGCTCAAAAGAATT ;1<<;<<<;;;;<<<<<+<<<<<<<<<9<<<<<<< MF:i:18 Aq:i:23 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:6:326:887:180 83 seq2 672 73 35M = 492 -215 CTAAACCAGTCCTATAAGAAATGCTCAAAAGAATT 8:<<:<5<<<;7<<<<<<<<<<<<;<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:5:145:635:390 163 seq2 673 99 35M = 860 222 TAAACCAGTCCTATAAGAAATGCTCAAAAGAATTG <<<<<<<<<<<<<<<<<<:<<<<<<<8<<<::;;; MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:2:31:628:1820 163 seq2 675 98 35M = 828 188 AACCAGTCCTATAAGAAATGCTCAAAAGAATTGTA <<<<<<<<<<<<<<<<<<<<<<<<<<<9<<<<<<< MF:i:18 Aq:i:20 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:7:117:452:744 163 seq2 676 99 35M = 850 209 ACCAGTCCTATAAGAAATGCTCAAAAGAATTGTAA <<<<<<<<<<;<<<;<<<<<<<<<<:<<<<<<<;; MF:i:18 Aq:i:50 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:2:297:949:26 163 seq2 676 99 35M = 842 201 ACCAGTCCTATAAGAAATGCTCAAAAGAATTGTAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<; MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:8:17:437:1378 163 seq2 676 99 35M = 847 206 ACCAGTCCTATAAGAAATGCTCAAAAGAATTGTAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:6:222:579:961 83 seq2 679 99 35M = 504 -210 AGTCCTATAAGAAATGCTCAAAAGAATTGTAAAAG =58====;==8=======;================ MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:5:98:995:929 163 seq2 680 99 35M = 844 199 GTCCTATAAGAAATGCTCAAAAGAATTGTAAAAGT <;<;<8<;<<;1;<<<<<;<;;;08;<;<1&0+8< MF:i:18 Aq:i:63 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:2:76:1765:700 163 seq2 680 99 35M = 866 221 GTCCTATAAGAAATGCTCAAAAGAATTGTAAAAGT ;;6;;;;;;;;;6;;;;6;;;;;;;;;;;;88878 MF:i:18 Aq:i:63 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:5:68:306:409 99 seq2 682 99 40M = 856 214 CCTATAAGAAATGCTCAAAAGAATTGTAAAAGTCAAAATT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<:;:;; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:5:115:193:231 83 seq2 684 99 35M = 522 -197 TATAAGAAATGCTCAAAAGAATTGTAAAAGTCAAA =========7===========<============= MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:4:57:1675:720 99 seq2 684 99 35M = 841 192 TATAAGAAATGCTCAAAAGAATTGTAAAAGTCAAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:6:13:682:680 147 seq2 685 99 35M = 482 -238 ATAAGAAATGCTCAAAAGAATTGTAAAAGTCAAAA <<<<<<<<<<:<5<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:6:51:1486:1131 83 seq2 685 77 35M = 500 -220 ATAAGAAATGCTCAAAAGAATTGTAAAAGTCAAAA <<<<<<<<<<,<6<<<<<<<<<<<<<<<<<<7<<< MF:i:18 Aq:i:3 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:8:33:1240:846 147 seq2 685 99 35M = 509 -211 ATAAGAAATGCTCAAAAGAATTGTAAAAGTCAAAA <<<<<<<<<<9<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:8:43:972:506 83 seq2 686 99 35M = 505 -216 TAAGAAATGCTCAAAAGAATTGTAAAAGTCAAAAT ;<<<<<<<+;<;<<<<<<<<<<<<<;<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:2:23:127:880 147 seq2 686 99 35M = 504 -217 TAAGAAATGCTCAAAAGAATTGTAAAAGTCAAAAT <<<<<<<<<%<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:7:101:752:996 83 seq2 687 99 35M = 508 -214 AAGAAATGCTCAAAAGAATTGTAAAAGTCAAAATT <<<<<<<<7<7<<<<<<<<<<<<<<<<<;<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:6:3:186:68 147 seq2 687 99 35M = 512 -210 AAGAAATGCTCAAAAGAATTGTAAAAGTCAAAATT <<;<<<<<&:,<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:2:273:348:37 83 seq2 688 99 36M = 483 -241 AGAAATGCGCAAAAGAATTGTAAAAGTCAAAATTAA 9;7;;0<++1<<<;<7<+;;1<<<;<17<<<<<<<< MF:i:18 Aq:i:41 NM:i:1 UQ:i:10 H0:i:0 H1:i:1
+EAS51_78:7:164:727:977 83 seq2 689 99 35M = 513 -211 GAAATGCTCAAAAGAATTGTAAAAGTCAAAATTAA ;<;<;<:<:<<<<<<<:<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:6:140:253:322 147 seq2 689 99 35M = 537 -187 GAAATGCTCAAAAGAATTGTAAAAGTCAAAATTAA =;===;54:====================>>===> MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:2:146:374:692 99 seq2 690 99 35M = 874 219 AAATGCTCAAAAGAATTGTAAAAGTCAAAATTAAA <<<<<<<<<<<<<<<</<<<<<<<<<<<<<<<<<: MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_53:1:92:875:345 83 seq2 690 99 35M = 504 -221 AAATGCTCAAAAGAATTGTAAAAGTCAAAATTAAA <<<;<.;7<<<<<<<<<<<<<<<<<;<<<<<<<<< MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:6:45:601:439 163 seq2 691 99 35M = 864 208 AATGCTCAAAAGAATTGTAAAAGTCAAAATTAAAG <<<<;<<<<<<<<<<<<<<<<4<<<<9<<<<<<;; MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:5:295:882:282 83 seq2 691 99 35M = 520 -206 AATGCTCAAAAGAATTGTAAAAGTCAAAATTAAAG <<:<8<-<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:5:78:775:555 147 seq2 691 99 35M = 539 -187 AATGCTCAAAAGAATTGTAAAAGTCAAAATTAAAG <<-<%4/<<<<<<<<<<<<<<<<<5<<<0<<<<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:5:255:796:239 99 seq2 692 99 35M = 869 212 ATGCTCAAAAGAATTGTAAAAGTCAAAATTAAAGT <<<<<<<<6<<<<<<<<<<<<<<<<;6<<<:<:<< MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:7:57:826:977 83 seq2 693 99 35M = 528 -200 TGCTCAAAAGAATTGTAAAAGTCAAAATTAAAGTT 875:6<<<<<<<<<<<<<<<;<<<<<<;8<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:6:187:996:432 99 seq2 693 99 36M = 860 203 TGCTCAAAAGAATTGTAAAAGTCAAAATTAAAGTTC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<;<<; MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:8:65:463:703 147 seq2 693 99 35M = 506 -222 TGCTCAAAAGAATTGTAAAAGTCAAAATTAAAGTT <<3<9<<<<<<<8<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:1:288:384:444 163 seq2 696 99 35M = 855 194 TCAAAAGAATTGTAAAAGTCAAAATTAAAGTTCAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;;; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:5:272:240:950 83 seq2 696 97 35M = 520 -211 TCAAAAGAATTGTAAAAGTCAAAATTAAAGTTCAA 37<<<<<<<<<<<<<<<<<<<<<<;;<;<<<<<<; MF:i:18 Aq:i:25 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:8:160:130:351 147 seq2 697 99 35M = 530 -202 CAAAAGAATTGTAAAAGTCAAAATTAAAGTTCAAT 4<;;<;<<<-<<<<<<<<<<;;<<<<;<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:7:189:530:40 163 seq2 698 99 36M = 883 221 AAAAGAATTGTAAAAGTCAAAATTAAAGTTCAATAC <<<<<<<<<<;<<<<<:<<<<<<<<<<<<<<;<<<; MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:7:168:247:414 99 seq2 698 99 35M = 876 213 AAAAGAATTGTAAAAGTCAAAATTAAAGTTCAATA <<<<<<<<<<<<<<<<*<<<<<<<<<;:6<<<<<; MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:6:197:759:975 83 seq2 698 99 35M = 537 -196 AAAAGAATTGTAAAAGTCAAAATTAAAGTTCAATA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:78 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:5:29:411:1208 99 seq2 698 99 40M = 882 224 AAAAGAATTGTAAAAGTCAAAATTAAAGTTCAATACTCAC <<<<;<<<<<<<<<<<;<<<<<<<<<<<<<<<<<<;;;;; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:1:110:543:934 83 seq2 700 99 35M = 514 -221 AAGAATTGTAAAAGTCAAAATTAAAGTTCAATACT <<<<<5<<;<<<<<<;<<<<<<<<<<<;<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:3:287:665:495 83 seq2 702 99 35M = 530 -207 GAATTGTAAAAGTCAAAATTAAAGTTCAATACTCA ===,9=;;====7=====5===;==1========= MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:8:70:445:1289 147 seq2 702 99 35M = 535 -202 GAATTGTAAAAGTCAAAATTAAAGTTCAATACTCA <<<:<<<<<<<<<;<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:6:172:827:592 163 seq2 703 99 35M = 899 231 AATTGTAAAAGTCAAAATTAAAGTTCAATACTCAC =;=======;==;===:==========;==9<<.3 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_32:7:135:401:735 147 seq2 703 99 35M = 510 -228 AATTGTAAAAGTCAAAATTAAAGTTCAATACTCAC <<::7<<<<<<::<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:3:39:208:644 99 seq2 704 99 35M = 859 190 ATTGTAAAAGTCAAAATTAAAGTTCAATACTCACC <;<<<<<;;:<<;;<<<<<<;;;;;;.<;<79997 MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:1:99:1632:76 147 seq2 705 99 40M = 553 -192 TTGTAAAAGTCAAAATTAAAGTTCAATACTCACCATCATA 4641::<<4<<<<<<<<<<<;<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:2:52:1144:509 99 seq2 706 99 35M = 867 196 TGTAAAAGTCAAAATTAAAGTTCAATACTCACCAT <<<<<<<<<<<<<<<<<<<;<<<<<<<;<;<<;<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:7:116:157:612 99 seq2 707 99 35M = 889 217 GTAAAAGTCAAAATTAAAGTTCAATACTCACCATC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:1:36:481:1079 163 seq2 707 99 40M = 881 214 GTAAAAGTCAAAATTAAAGTTCAATACTCACCATCATAAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<::::8 MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:5:74:668:424 147 seq2 707 99 40M = 545 -202 GTAAAAGTCAAAATTAAAGTTCAATACTCACCATCATAAA :::::<<96<<<<<;<<<;<<5<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:7:122:398:994 163 seq2 708 99 35M = 871 198 TAAAAGTCAAAATTAAAGTTCAATACTCACCATCA <:<9<<<<<<4<<<;9<<<<<98<;<<<:;<;<;7 MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:4:36:1231:1381 99 seq2 708 99 35M = 891 218 TAAAAGTCAAAATTAAAGTTCAATACTCACCATCA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:5:57:366:844 163 seq2 708 99 40M = 877 209 TAAAAGTCAAAATTAAAGTTCAATACTCACCATCATAAAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<::::7: MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:6:307:208:477 83 seq2 710 99 35M = 546 -199 AAAGTCAAAATTAAAGTTCAATACTCACCATCATA <<<<<.<<<<<<<<<<<<;<;<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:3:285:417:147 147 seq2 712 99 35M = 529 -218 AGTCAAAATTAAAGTTCAATACTCACCATCATAAA <..)<<<<;<<<<7<;-<<;<<<<<;8<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:5:325:544:349 83 seq2 716 99 35M = 515 -236 AAAATTAAAGTTCAATACTCACCATCATAAATACA <<<<57<<<7<;6<<<<;<7<7;<<7<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:2:33:357:858 163 seq2 716 99 35M = 870 189 AAAATTAAAGTTCAATACTCACCATCATAAATACA <<<<<<<<<<<<<<<<:<<<<<<:<<<<;<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:4:78:806:800 83 seq2 717 99 40M = 564 -193 AAATTAAAGTTCAATACTCACCATCATAAATACACACAAA ::;9:<<<;<<:<<<<:<.<1:<<1<<<<<<;<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:5:41:314:1173 147 seq2 718 99 35M = 554 -199 AATTAAAGTTCAATACTCACCATCATAAATACACA <<2**<<82/<<<<<<<<<<9<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:2:82:963:128 163 seq2 719 99 35M = 905 221 ATTAAAGTTCAATACTCACCATCATAAATACACAC <<<<<<<<<<<<<<<<<<<;<<<<<<<<<<<;<<; MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:8:240:719:799 99 seq2 720 99 35M = 900 215 TTAAAGTTCAATACTCACCATCATAAATACACACA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<7< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:7:93:634:323 147 seq2 721 99 35M = 550 -206 TAAAGTTCAATACTCACCATCATAAATACACACAA <<<<;<;<<<<;;<<2<:<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:2:12:1335:1372 163 seq2 721 99 40M = 906 225 TAAAGTTCAATACTCACCATCATAAATACACACAAAAGTA <<<<<<<<<<<<<<<<<<<<<<<<:<<<<<<<<<99::.: MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:4:116:738:142 147 seq2 722 99 35M = 568 -189 AAAGTTCAATACTCACCATCATAAATACACACAAA <:<7;+:<<:<<<;<<<<<;<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:2:49:330:699 83 seq2 722 99 35M = 540 -217 AAAGTTCAATACTCACCATCATAAATACACACAAA ===/=;========;=;================== MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:7:273:562:954 147 seq2 722 99 35M = 539 -218 AAAGTTCAATACTCACCATCATAAATACACACAAA ;<<+;95<<<;5;<<;:<<;<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:6:77:1529:522 147 seq2 722 99 35M = 562 -195 AAAGTTCAATACTCACCATCATAAATACACACAAA <<<;7;,<<<<<<.<,6<<6<<<<<<<;<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:2:67:1467:1447 163 seq2 722 99 35M = 898 211 AAAGTTCAATACTCACCATCATAAATACACACAAA <<<<<<<<<<<<<<<<<<<<<<7<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:2:251:819:772 99 seq2 726 99 36M = 881 191 TTCAATACTCACCATCATAAATACACACAAAAGTAC <3<<<9<9<3<</<<<<<<59<3<9<<</9/++*/' MF:i:18 Aq:i:59 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:4:144:492:61 147 seq2 728 99 35M = 564 -199 AAATACTCACCATCATAAATACACACAAAAGTACA +;;3;,:7<:;<<7<<<<<<<;;<<<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:1 UQ:i:11 H0:i:1 H1:i:0
+EAS54_73:7:200:65:291 99 seq2 728 99 35M = 930 237 CAATACTCACCATCATAAATACACACAAAAGTACA <<<<1<<<<<<<<<<<<<<<<<<<:<8<<<<:<;< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:2:130:609:467 99 seq2 728 99 35M = 877 184 CAATACTCACCATCATAAATACACACAAAAGTACA ==8=====;==8==;=4=;;8=====;6=177.== MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:6:216:47:302 147 seq2 729 99 35M = 557 -207 AATACTCACCATCATAAATACACACAAAAGTACAA <<;<8<:<6<<<;<<<<<<<;<<<<<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:7:4:234:610 83 seq2 729 84 35M = 560 -204 AAAAATCAACATCACAAATACACACAAAAGTACAA <:+:'+&<+'<+'2&<:<7<2<':2<:<<7<7<<< MF:i:18 Aq:i:22 NM:i:4 UQ:i:31 H0:i:0 H1:i:0
+EAS54_81:8:271:180:509 99 seq2 729 99 35M = 896 202 AATACTCACCATCATAAATACACACAAAAGTACAA =============================='==== MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:8:41:530:663 163 seq2 730 99 35M = 908 213 ATACTCACCATCATAAATACACACAAAATTACAAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<7;;;;<< MF:i:18 Aq:i:74 NM:i:1 UQ:i:22 H0:i:1 H1:i:0
+EAS114_39:4:30:570:902 83 seq2 730 99 35M = 561 -204 ATACTCACCATCATAAATACGCACAAAAGTACAAA <:<6:6<&:<<6<<<<<<<<.<<<<<<<<<<<<<< MF:i:18 Aq:i:43 NM:i:1 UQ:i:13 H0:i:0 H1:i:1
+EAS1_105:1:87:430:995 99 seq2 731 67 35M = 909 213 TACTCACCATCATAAATACACACAAAATTACAAAA <<;<<7;;;<;<<777;7(77;;1;7;%117;,7( MF:i:18 Aq:i:30 NM:i:1 UQ:i:4 H0:i:0 H1:i:1
+EAS114_28:7:215:863:521 163 seq2 732 99 36M = 890 194 ACTCACCATCATAAATACACACAAAAGTACAAAACT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<<<<; MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:4:267:394:437 83 seq2 735 99 35M = 544 -226 AAACATCATAAATACACACAAAAGTACAAAACTCA &<&,<8.<;<<<;<8<8<7<<<<<<<<<<<<<<<< MF:i:18 Aq:i:66 NM:i:2 UQ:i:10 H0:i:1 H1:i:0
+EAS1_108:6:94:294:387 83 seq2 736 99 35M = 578 -193 ACCATCATAAATACACACAAAAGTACAAAACTCAC 779=53=9===;=:=;=========;========= MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:6:38:332:54 163 seq2 737 99 36M = 904 203 CCATCATAAATACACACAAAAGTACAAAACTCACAG <;<<<<<<<<<<<<<<<<<<<<<<<<<<<0;;;<;; MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_61:8:165:441:708 83 seq2 737 99 35M = 550 -222 CCATCATAAATACACACAAAAGTACAAAACTCACA 6+<<:<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:5:246:177:525 147 seq2 738 98 35M = 549 -224 CATCATAAATACACACAAAAGTAAAAAACTCACAG %<(4<2<<<<<:<;<:<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:27 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS114_26:5:43:114:617 83 seq2 738 99 35M = 579 -194 AATCATAAATACACACAAAAGTACAAAACTCACAG +=22=6=================9=========== MF:i:18 Aq:i:52 NM:i:1 UQ:i:10 H0:i:1 H1:i:0
+EAS1_99:8:152:778:228 163 seq2 739 99 35M = 915 211 ATCATAAATACACACAAAAGTACAAAACTCACAGG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<; MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:3:24:319:429 83 seq2 740 99 35M = 582 -193 TAATAAATACACACAAAAGTACAAAACTCACAGGT 0%=3%=3====<=9=====89==93==9=6===== MF:i:18 Aq:i:56 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+EAS51_66:5:210:674:911 99 seq2 740 99 35M = 904 199 TCATAAATACACACAAAAGTACAAAACTCACAGGT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;<; MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:7:88:451:1773 99 seq2 742 99 35M = 902 195 ATAAATACACACAAAAGTACAAAACTCACAGGTTT ;;:::<:;:<<;:6::;:;;:::;;<;;;367177 MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:7:2:168:1878 147 seq2 743 37 35M = 560 -218 TAAATACACACAAAAGTAGAAAACGCACCAGTTTT *3/6)9.;;;;;;;;5;;);;;3;(;;;+(;7.)3 MF:i:130 Aq:i:37 NM:i:4 UQ:i:32 H0:i:0 H1:i:0
+EAS188_7:5:115:249:673 83 seq2 743 99 35M = 552 -226 TAAATACACACAAAAGTACAAAACTCACAGGTTTT :<<<;<<<;<9<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:8:178:187:610 99 seq2 744 99 35M = 903 194 AAATACACACAAAAGTACAAAACTCACAGGTTTTA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:2:9:49:661 83 seq2 747 99 35M = 591 -191 TACACACAAAAGTACAAAACTCACAGGTTTTATAA <<6<5<<<<<<<<<<<<<<<<<<<7<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:3:157:361:309 147 seq2 747 99 35M = 589 -193 TACACACAAAAGTACAAAACTCACAGGTTTTATAA :<-<5<0<<<<<<<;<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:3:103:443:166 83 seq2 747 99 35M = 565 -217 TACACACAAAAGTACAAAACTCACAGGTTTTATAA 7<4<4<:<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:8:49:182:192 147 seq2 750 99 35M = 582 -203 ACACAAAAGTACAAAACTCACAGGTTTTATAAAAC <5<;<<<<<<<<<<<:<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:49 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_4:3:12:630:707 99 seq2 751 99 35M = 915 199 CACAAAAGTACAAAACTCACAGGTTTTATAAAACA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:7:94:1440:2016 83 seq2 751 99 35M = 564 -222 CACAAAAGTACAAAACTCACAGGTTTTATAAAACA :<8<<<<9<<9<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:4:206:741:810 163 seq2 753 99 35M = 929 210 CAAAAGTACAAAACTCACAGGTTTTATAAAACAAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<;:-;<< MF:i:18 Aq:i:48 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:7:250:698:842 83 seq2 753 99 34M = 554 -233 AAAAAGTACAAAACTCACAGGTTTTATAAAACAA )<<<<<<<-<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:39 NM:i:1 UQ:i:8 H0:i:1 H1:i:0
+EAS54_81:6:265:251:147 83 seq2 754 99 35M = 581 -208 AAAAGTACAAAACTCACAGGTTTTATAAAACAATT <<<<::<8<<<;<;8<8<<<<<<<<:<<<<<<<<< MF:i:18 Aq:i:50 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:6:71:644:1792 83 seq2 754 84 35M = 589 -200 AAAAGTACAAAACTCACAGGTTTTATAAAACAATT <<<<;<<<<<<:;/<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:6:108:958:42 83 seq2 755 81 35M = 584 -206 AAAGTACAAAACTCACAGGTTTTATAAAACAATTA <<<;;</<<<<;<<<<<<<<<<<<<<<<<<<<<<+ MF:i:18 Aq:i:9 NM:i:1 UQ:i:27 H0:i:0 H1:i:3
+B7_597:8:48:805:860 147 seq2 755 78 35M = 563 -227 AAAGTACAAAACTCACAGGTTTTATAAAACAATTA <<<;3<;7<<97<7<<<<7<4<<<<<<<<<<;8<+ MF:i:18 Aq:i:13 NM:i:1 UQ:i:27 H0:i:0 H1:i:3
+B7_591:3:179:496:161 163 seq2 756 99 36M = 919 199 AAGTACAAAACTCACAGGTTTTATAAAACAATTAAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<+ MF:i:18 Aq:i:49 NM:i:2 UQ:i:53 H0:i:1 H1:i:0
+EAS56_59:3:166:626:836 83 seq2 757 99 35M = 567 -225 AGTACAAAACTCACAGGTTTTATAAAACAATTAAT <;;7<<<<<<;<7;<<<<<<<<<<<<7<<<<<<<+ MF:i:18 Aq:i:28 NM:i:2 UQ:i:54 H0:i:0 H1:i:0
+EAS114_28:5:23:944:377 147 seq2 757 75 36M = 579 -214 AGTACAAAACTCACAGGTTTTATAAAACAATTAATT <;7;8<<<<:<;<:<<<<<<<<<<<<<;<<<<<<<; MF:i:130 Aq:i:75 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS114_45:1:100:979:1863 147 seq2 757 85 35M = 583 -209 ATTACAAAACTCACAGGTTTTATAAAACAATTAAT 6&,*3;6;66;9(572692;;;79;4)9;96;59+ MF:i:18 Aq:i:23 NM:i:3 UQ:i:51 H0:i:0 H1:i:0
+EAS219_1:3:90:219:528 83 seq2 758 75 35M = 576 -217 GTACAAAACTCACAGGTTTTATAAAACAATTAATT ;:<5<<<<<<;<<<<<<<<<<<<<<<<<<<<<<<< MF:i:130 Aq:i:75 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS1_108:5:89:942:84 83 seq2 759 74 35M = 562 -232 TACAAAACTCACAGGTTTTATAAAACAATTAATTG ===================>=>>>==>>===>==> MF:i:130 Aq:i:74 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS1_108:6:159:493:275 99 seq2 760 72 35M = 939 214 ACAAAACTCACAGGTTTTATAAAACAATTAATTGA =====3============================= MF:i:130 Aq:i:72 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS139_11:1:81:1019:558 163 seq2 760 77 35M = 926 201 ACAAAACTCACAGGTTTTATAAAACAATTAATTGA <<<<<<<<<<<6<<<<<<<<<<<<<<<<<<<<<7< MF:i:130 Aq:i:77 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS51_62:7:162:195:761 163 seq2 767 30 18M4I13M = 922 190 TCACAGGTTTTATAAAACAATTAATTGAGACTACA <<<<<<<<<<<<<<<<<<<<<<<<<<;<:<<<<;; MF:i:130 Aq:i:30 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+B7_597:3:115:646:430 147 seq2 768 45 17M4I14M = 582 -217 CACAGGTTTTATAAAACAATTAATTGAGACTACAG 5;5<;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:130 Aq:i:45 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS114_30:6:243:209:110 163 seq2 768 48 17M4I14M = 920 187 CACAGGTTTTATAAAACAATTAATTGAGACTACAG <<<<<;<;<<<;<<<<<<<<<<<;<:;<<:;;+85 MF:i:130 Aq:i:48 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS1_108:2:266:994:429 147 seq2 769 76 16M4I15M = 612 -188 ACAGGTTTTATAAAACAATTAATTGAGACTACAGA </<<<<<<<<<<<<<;<<<<<<<;<<<<<<<<<<< MF:i:130 Aq:i:76 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS114_30:5:32:461:154 99 seq2 769 71 16M4I15M = 945 211 ACAGGTTTTATAAAACAATTAATTGAGACTACAGA <<<<<<<<<<<<<<<:<<<<<<<<<<<<<<<+<;; MF:i:130 Aq:i:71 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS114_39:6:7:492:1088 99 seq2 769 57 16M4I15M = 926 192 ACAGGTTTTATAAAACAATTAATTGAGACTACAGA <<<<<<<<<<<<<<<<<<<<<<<<7<:<<<<<<6; MF:i:130 Aq:i:57 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS1_95:6:174:650:125 147 seq2 770 76 15M4I16M = 600 -201 CAGGTTTTATAAAACAATTAATTGAGACTACAGAG ===;=============================== MF:i:130 Aq:i:76 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS56_59:6:89:457:591 147 seq2 770 69 15M4I16M = 585 -216 CAGGTTTTATAAAACAATTAATTGAGACTACATAG 797<<9<<<<<<<3<7<<<<<<<<<<)<<<<<07< MF:i:130 Aq:i:69 NM:i:1 UQ:i:15 H0:i:0 H1:i:0
+EAS114_39:2:38:670:564 99 seq2 770 73 15M4I16M = 930 195 CAGGTTTTATAAAACAATTAATTGAGACTACAGAG <<<<<<<<<<<<<<<<<<<<<<<;<:<<<<;<5<; MF:i:130 Aq:i:73 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS188_7:4:92:693:228 147 seq2 770 75 14M4I17M = 601 -200 AAGGTTTTATAAAAAAATTAATTGAGACTACAGAG 6=77=<<=======&==================== MF:i:130 Aq:i:75 NM:i:1 UQ:i:28 H0:i:0 H1:i:0
+EAS218_1:4:61:1369:440 163 seq2 770 47 15M4I16M = 964 229 CAGGTTTTATAAAACAATTAATTGAGACTACAGAG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<:<8 MF:i:130 Aq:i:47 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS114_26:4:123:1001:580 83 seq2 771 43 14M4I17M = 617 -185 AGGTTTTATAAAACAATTAATTGAGACTACAGAGC <.00..3<6<<<<<<<3;<<08<<<<<6<<<<<<< MF:i:130 Aq:i:43 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS114_39:4:10:1312:1558 163 seq2 771 76 14M4I17M = 928 192 AGGTTTTATAAAACAATTAATTGAGACTACAGAGC 5<<<<<<<<<<<<<<<<<<<<<<<;;<<<<<;8;< MF:i:130 Aq:i:76 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS220_1:8:45:178:1321 83 seq2 771 77 14M4I17M = 606 -196 AGGTTTTATAAAACAATTAATTGAGACTACAGAGC <<<<<<<<<<<<<<<<<:<<:<<<<<<<<<<<<<< MF:i:130 Aq:i:77 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS56_59:5:125:137:58 163 seq2 772 76 13M4I18M = 932 195 GGTTTTATAAAACAATTAATTGAGACTACAGAGCA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<9;< MF:i:130 Aq:i:76 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS192_3:3:285:349:797 83 seq2 773 76 12M4I19M = 604 -200 GTTTTAAAAAACCAATAATTGAGACTACAGAGCAA ;;<<<7.:<<<..<.<<<<<<<<<<<<<<<<<<<< MF:i:130 Aq:i:76 NM:i:1 UQ:i:13 H0:i:0 H1:i:0
+EAS114_45:5:56:1757:1319 163 seq2 775 67 10M4I21M = 957 217 TTTATAAAACAATTAATTGAGACTACAGAGCAACT ;;;;9;;;;;;;;;;;;;4;9;98;;;;;9388&7 MF:i:130 Aq:i:67 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+B7_591:3:291:404:199 83 seq2 777 76 8M4I24M = 612 -197 TATAAAACAATTAATTGAGACTACAGAGCAACTAGG <<<<<<<7<<9<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:130 Aq:i:76 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS54_65:7:159:253:353 83 seq2 778 67 7M4I24M = 613 -196 ATAAAACAATTAATTGAGACTACAGAGCAACTAGG <8<<<<:<<;;<<<<<<<<<<<;<<<<<<<<<<<< MF:i:130 Aq:i:67 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS56_57:1:122:38:103 163 seq2 778 79 7M4I24M = 972 229 ATAAAACAATTAATTGAGACTACAGAGCAACTAGG <<<<<<<<<<<<<<<<;<<<<<<<<3<<<<9<8;< MF:i:130 Aq:i:79 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS188_4:5:103:870:105 147 seq2 778 44 7M4I24M = 595 -214 ATAAAACAATTAATTGAGACTACAGAGCAACTAGG <<<<<<<<<<<<<=<:<;<<<<<<<<<<*<<<<<< MF:i:130 Aq:i:44 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS1_105:8:24:718:322 163 seq2 779 23 35M = 953 209 ACAATTAATTGAGACTACAGACCAATTATGTAAAA 5/7<3+<;<1<<1<95<.&&.&&.<&)5)1)17<% MF:i:130 Aq:i:23 NM:i:3 UQ:i:18 H0:i:0 H1:i:0
+EAS51_64:6:118:41:489 83 seq2 779 76 35M = 588 -226 ACAATTAATTGAGACTACAGAGCAACTAGGTAAAA <+<<;<<<38<<<<5<<3<<<<3<<8<<<<<<<<< MF:i:130 Aq:i:76 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS56_61:3:165:665:220 83 seq2 779 76 35M = 618 -196 ACAATTAATTGAGACTACAGAGCAACTAGGTAAAA <:<<;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:130 Aq:i:76 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS114_30:6:238:803:383 99 seq2 779 75 35M = 954 210 ACAATTAATTGAGACTACAGAGCAACTAGGTAAAA <<<<<<<<<<<<;<<<<<;<;<<;<<;<<<9<;<< MF:i:130 Aq:i:75 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS1_105:3:232:364:583 99 seq2 780 71 35M = 956 211 CAATTAATTGAGACTACAGAGCAACTAGGTAAAAA <<<<<<<<<<<<<<<<<<<<<<<<;<<<<<<<<<< MF:i:130 Aq:i:71 NM:i:0 UQ:i:0 H0:i:0 H1:i:0
+EAS139_19:2:2:1217:398 83 seq2 780 99 40M = 608 -212 CAATTAATTGAGACTACAGAGCAACTAGGTAAAAAATTAA +;;:9<<66<<<;+<<7<<<<;<<+;<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:3 UQ:i:73 H0:i:1 H1:i:0
+B7_593:2:81:435:410 99 seq2 782 99 36M = 966 220 ATTAATTGAGACTACAGAGCAACTAGGTAAAAAATT <<<<<<<<<<<<<<<<<<<<<<<<<:<<<<<;<<;; MF:i:18 Aq:i:29 NM:i:2 UQ:i:54 H0:i:0 H1:i:0
+B7_593:3:115:649:259 147 seq2 782 99 36M = 617 -201 ATTAATTGAGAATACAGAGCAACTAGGTAAAAAATT ;<;<<;<<<<;&<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:3 UQ:i:58 H0:i:0 H1:i:1
+EAS1_93:3:181:93:694 163 seq2 783 99 35M = 954 206 TTAATTGAGACTACAGAGCAACTAGGTAAAAAATT ++<<<<<<;<<<<<<:;8<<;<<<5;<;<<<+<<< MF:i:18 Aq:i:28 NM:i:2 UQ:i:54 H0:i:0 H1:i:0
+EAS114_30:1:188:863:790 163 seq2 783 98 35M = 969 221 TTAATTGAGACTACAGAGCAACTAGGTAAAAAATT ++<;<<;;;:<<<<:<:<<:1<<1<<<6:6;4;;4 MF:i:18 Aq:i:27 NM:i:2 UQ:i:54 H0:i:0 H1:i:0
+EAS1_93:2:313:711:530 163 seq2 784 99 35M = 968 219 TAATTGAGACTACAGAGCAACTAGGTAAAAAATTA +<<<<<<<<<<<<<<<<<<<<<<;<<<<<<<<<<: MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+B7_589:7:154:26:712 99 seq2 786 99 35M = 959 208 ATTGAGACTACAGAGCAACTAGGTAAAAAATTAAC <<<<<<<<<<<;<<<<<<<<<<<<<<<<<<<<<<; MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:6:185:87:475 163 seq2 786 99 36M = 949 199 ATTGAGACTACAGAGCAACTAGGTAAAAAATTAACA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<6; MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:4:69:1593:819 163 seq2 786 99 40M = 977 231 ATTGAGACTACAGAGCAACTAGGTAAAAAATTAACATTAC <<<<<<<<<<<<<<;<<<<<;;<:<<<<<:<<<<<:777: MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:3:309:187:267 83 seq2 786 99 35M = 616 -205 ATTGAGACTACAGAGCAACTAGGTAAAAAATTAAC <:0;<;<4<<7<<<<:<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:8:82:1540:77 83 seq2 786 99 35M = 619 -202 ATTGAGACTACAGAGCAACTAGGTAAAAAATTAAC <48;<;</;<<<<<<:<<0<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:2:193:420:78 147 seq2 787 99 35M = 607 -215 TTGAGACTACAGAGCAACTAGGTAAAAAATTAACA 81<<;<9<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:4:261:267:597 83 seq2 787 86 35M = 617 -205 TTGAGAATAAAGAGCAACTAGGTAAAAAATTAACA *-1<9<+1<+<<<<:<<;9<<<<<<<<<<<<<<<< MF:i:18 Aq:i:41 NM:i:2 UQ:i:20 H0:i:0 H1:i:1
+EAS56_59:4:262:928:237 99 seq2 787 99 35M = 971 219 TTGAGACTACAGAGCAACTAGGTAAAAAATTAACA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<7<< MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:5:262:53:888 163 seq2 787 99 35M = 965 213 TTGAGACTACAGAGCAACTAGGTAAAAAATTAACA <<<<<<<<;<<<<<<<<<<;<<;<;<;6<<;<;;< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:4:138:211:582 99 seq2 788 99 35M = 957 204 TGAGACTACAGAGCAAATAGGTAAAAAATTAACAT <<;<<<<<<<<<<<<<&;<;<7<<;<<<<<<<5<< MF:i:18 Aq:i:45 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+B7_597:7:113:408:211 99 seq2 789 99 35M = 952 198 GAGACTACAGAGCAACTAGGTAAAAAATTAACATT <<<<<<<<<<<<<<<:&<<<&:<<<<<<<<<<;:/ MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:3:79:879:15 147 seq2 790 99 35M = 626 -199 AGACTACAGAGCAACTAGGTAAAAAATTAACATTA <;;5;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:4:325:795:213 83 seq2 790 99 35M = 618 -207 AGACTACAGAGCAACTAGGTAAAAAATTAACATTA <<<0<<;<<<<;<<;:<<<<<<<<<<<;<<<<<9< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:4:22:206:150 83 seq2 792 99 35M = 619 -208 AAAAAAGAGCAACTAGGTAAAAAATTAACATTACA 8&)<)<<<<+<<+<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:65 NM:i:3 UQ:i:21 H0:i:1 H1:i:0
+EAS56_59:5:181:713:140 147 seq2 793 84 35M = 615 -213 CTACAGAGCAACAAGGTAAAAAATTAACATTACAA 78<+<7<-7;;;&<5<7<<<<7<<<<<<<<<<<7< MF:i:18 Aq:i:41 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+B7_589:7:76:306:561 163 seq2 794 89 35M = 987 228 TACAGAGCAACTAGGTAAAAAATTAACATTACAAC <<)<<<<<<8<<8<<<<<<<;;;<<1<<3;=7<<9 MF:i:18 Aq:i:20 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:4:325:352:67 83 seq2 794 99 35M = 622 -207 TACAGAGCAACTAGGTAAAAAATTAACATTACAAC ;<8<<<;;<<7<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:4:310:287:420 99 seq2 794 99 35M = 965 206 TACAGAGCAACTAGGTAAAAAATTAACATTACAAC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<;;; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:5:74:329:459 83 seq2 795 99 35M = 623 -207 ACAGAGCAACTAGGTAAAAAATTAACATTACAACA </<;<8/<<9<<<;<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:6:57:1342:1166 99 seq2 796 99 35M = 964 203 CAGAGCAACTAGGTAAAAAATTAACATTACAACAG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<;<; MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:2:3:542:428 163 seq2 797 99 35M = 965 203 AGAGCAACTAGGTAAAAAATTAACATTACAACAGG 7<4<<<6<<,<9)<<<<6<,<<7<<7<<<<<<<<1 MF:i:18 Aq:i:41 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:7:97:892:419 83 seq2 800 99 35M = 621 -214 GCAACTAGGTAAAAAATTAACATTACAACAGGAAC ;8<<;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:6:82:1051:921 83 seq2 800 99 40M = 616 -224 GCAAATAGGTAAAAAATTAACATTACAACAGGAACAAAAC 3-::-7<;+:9<;<<<5<;9,::53-;:3<<<<9<<3<<< MF:i:18 Aq:i:41 NM:i:1 UQ:i:12 H0:i:1 H1:i:0
+EAS1_95:5:263:511:936 147 seq2 801 99 35M = 629 -207 CAAATAGGTAAAAAATTAACATTACAACAGGAACA +<<%<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+EAS114_26:7:157:876:302 163 seq2 801 99 35M = 964 198 CAACTAGGTAAAAAATTAACATTACAACACGAACA 2<<;<<<22<<<<<<77<<<<22<7<<<<%-<<1< MF:i:18 Aq:i:66 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+EAS54_65:2:127:288:655 163 seq2 803 99 35M = 999 231 ACTAGGTAAAAAATTAACATTACAACAGGAACAAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<;<;<<;; MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:4:83:731:540 147 seq2 804 99 35M = 623 -216 CTAGGTAAAAAATTAACATTACAACAGGAACAAAA ;7<:+<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:5:82:843:1838 99 seq2 804 99 35M = 999 230 CTAGGTAAAAAATTAACATTACAACAGGAACAAAA ;<<;:;;<<<;;<<<<;;<<;;;;;<;;;;68887 MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:5:71:994:576 147 seq2 805 99 35M = 655 -185 TAGGTAAAAAATTAACATTACAACAGGAACAAAAC <<9;;<<<<<<<<<;<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:8:24:415:944 99 seq2 805 99 35M = 974 204 TAGGTAAAAAATTAACATTACAACAGGAACAAAAC <<<<<<<<<<<<<<<<<<<<<:<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:3:73:1458:1337 83 seq2 806 99 35M = 609 -232 AGGTAAAAAATTAACATTACAACAGGAACAAAACC <</<<<<<<<6:<::<<<1<<:<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:2:142:353:398 163 seq2 807 99 35M = 977 205 GGTAAAAAATTAACATTACAACAGGAACAAAACCT =================================9= MF:i:18 Aq:i:79 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:7:46:522:426 163 seq2 807 99 35M = 964 192 GGTAAAAAATTAACATTACAACAGGAACAAAACCT =======================:==;<===78== MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:7:59:871:351 163 seq2 808 99 35M = 963 190 GTAAAAAATTAACATTACAACAGGAACAAAACCTC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<<; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:6:235:505:553 163 seq2 808 99 35M = 987 214 GTAAAAAATTAACATTACAACAGGAACAAAACCTC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<;:;: MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:1:60:1420:660 83 seq2 808 99 35M = 649 -194 GTAAAAAATTAACATTACAACAGGAACAAAACCTC 99<<<<<<<<<<;<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:3:180:89:582 147 seq2 809 99 36M = 650 -195 TAAAAAATTAACATTACAACAGGAACAAAACCTCAT ;<<<<<<4<<<:<<<<<<<<<6<<<<<<<<<<;<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:3:323:196:855 83 seq2 809 99 35M = 642 -202 TAAAAAATTAACATTACAACAGGAACAAAACCTCA &<<<<<<09<<7<7;<;<<0<<<<<;<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_4:5:295:547:216 163 seq2 809 99 35M = 970 196 TAAAAAATTAACATTACAACAGGAACAAAACCTCA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<<; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:7:126:361:250 99 seq2 810 99 35M = 1002 227 AAAAAATTAACATTACAACAGGAACAAAACCTCAT <<<<<<;9<<<<<<<<<<<<<<;;;<<<;<664;; MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:5:266:133:789 99 seq2 810 99 35M = 988 213 AAAAAATTAACATTACAACAGGAACAAAACCTCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:5:175:149:296 83 seq2 811 99 35M = 614 -232 AAAAATTAACATTACAACAGGAACAAAACCTCATA =;==26==;==;================7====== MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:5:136:260:254 99 seq2 813 99 35M = 988 210 AAATTAACATTACAACAGGAACAAAACCTCATATA <<<<<<<<<<<<<<<<<<><<<<<<<<<<<<<<<< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:1:85:1521:58 147 seq2 813 99 40M = 639 -214 AAATTAACATTACAACAGGAACAAAACCTCATATATCAAT :::86<<:<<8<<<<;<<8<<<<<<<<<<<<<<<;<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:4:164:719:947 99 seq2 813 99 35M = 1005 227 AAATTAACATTACAACAGGAACAAAACCTCATATA <<<<<<<<<<<<<<<<<<<;<<<<<<<<<;<<<<< MF:i:18 Aq:i:64 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:1:50:257:341 163 seq2 813 99 35M = 971 193 AAATTAACATTACAACAGGAACAAAACCTCATATA <<<<<<<<<<<<<<<<<<<<<<<<<<<<7<6<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:5:117:33:262 83 seq2 814 99 35M = 642 -207 AATTAACATTACAACAGGAACAAAACCTCATATAT <<;;<<;<:8<7<<;<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:8:90:706:1276 163 seq2 814 99 35M = 980 201 AATTAACATTACAACAGGAACAAAACCTCATATAT <<<<<<<<<<<<<<<<<<<<<<;<<<<<<<<:<:< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:2:116:966:193 163 seq2 815 99 35M = 967 187 ATTAACATTACAACAGGAACAAAACCTCATATATC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:1:59:742:549 147 seq2 816 99 35M = 642 -209 TTAACATTACAACAGGAACAAAACCTCATATATCA -<<<3<<<<6<<6<<<<<6<<<<6<<<<<<<<<<< MF:i:18 Aq:i:48 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:7:74:213:877 99 seq2 816 99 35M = 996 215 TTAACATTACAACAGGAACAAAACCTCATATATCA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+B7_610:3:85:219:371 163 seq2 817 99 35M = 967 185 TAACATTACAACAGGAACAAAACCTCATATATCAA <<<<<<<<<<<<<<<<<<<<<:<<<<<<<<<<;<; MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:2:176:653:957 163 seq2 819 82 35M = 982 198 ACATTACAACAGGAACAAAACCTCATATATCAATA ????????????<<???@<<<<<@<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:1:64:526:339 163 seq2 819 96 35M = 1019 235 ACATTACAACAGGAACAAAACCTCATATATCAATA <<<<<<<<;<<<<<<<<<<7<:<<<<<<<<<8:<: MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:7:97:743:602 83 seq2 821 99 34M = 644 -211 ATTACAACAGGAACAAAACCTCATATATCAATAT <(&<:<<&<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:26 NM:i:0 UQ:i:0 H0:i:2 H1:i:6
+B7_610:2:75:887:149 163 seq2 823 99 35M = 1004 216 TACAACAGGAACAAAACCTCATATATCAATATTAA <<<<<<<<<<<<<<;<<<<<<<;<<<<<<<;<;;; MF:i:18 Aq:i:23 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+EAS221_1:2:73:955:728 83 seq2 823 44 35M = 660 -198 TACAACAGGAACAAAACCTCATATATCAATATTAA ;<-<<6<;<<<6<<<<;7<6<<<<<<<<<<<<<<< MF:i:18 Aq:i:14 NM:i:0 UQ:i:0 H0:i:3 H1:i:18
+EAS1_108:2:102:543:160 163 seq2 825 99 35M = 977 187 CAACAGGAACAAAACCTCATATATCAATATTAACT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<6<:< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+EAS114_28:2:55:562:403 83 seq2 825 99 36M = 643 -218 CAACAGGAACAAAACCTCATATATCAATATTAACTT +<<&<<<<<<<<<<+<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:5
+B7_593:1:19:695:59 99 seq2 826 99 36M = 988 198 AACAGGAACAAAACCTCATATATCAATATTAACTTT <<<<<<<<<<<;<<<<<<<<<;<<;;<;<<7<<<<; MF:i:18 Aq:i:49 NM:i:0 UQ:i:0 H0:i:1 H1:i:3
+EAS221_1:2:8:327:522 163 seq2 826 99 35M = 1001 210 AACAGGAACAAAACCTCATATATCAATATTAACTT <<<<<<<<<<:<<<<<<<<<<:<<<<<<<<<:<<< MF:i:18 Aq:i:49 NM:i:0 UQ:i:0 H0:i:1 H1:i:3
+EAS114_45:6:90:561:850 163 seq2 827 85 35M = 1004 212 ACAGGAACAAAACCTCATATATCAATATTAACTTT ;;;;;;;;;;;;;;;;;;;;;;;;9;9;6;77777 MF:i:18 Aq:i:19 NM:i:0 UQ:i:0 H0:i:2 H1:i:25
+EAS56_61:5:209:824:866 83 seq2 828 73 35M = 665 -198 CAGCAACAAAACCTCATATATCAATATTAACTTTG ;<:&<<:<<<<;<<;<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:19 NM:i:1 UQ:i:5 H0:i:1 H1:i:7
+EAS139_11:2:31:628:1820 83 seq2 828 98 35M = 675 -188 CAGGAACAAAACCTCATATATCAATATTAACTTTG <<<<<<:<<<<:6<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:20 NM:i:0 UQ:i:0 H0:i:1 H1:i:5
+EAS220_1:4:6:1178:1105 147 seq2 830 93 35M = 657 -208 GGAACAAAACCTCATATATCAATATTAACTTTGAA <:<<9<<<<::7<<;<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:17 NM:i:0 UQ:i:0 H0:i:1 H1:i:11
+EAS114_28:4:305:707:258 99 seq2 831 58 36M = 992 197 GAACAAAACCTCATATATCAATATTAACTTTGAATA 9<<<<<<<<<<<<;<<-<<;;<;<<9<<;<<+99;7 MF:i:18 Aq:i:17 NM:i:0 UQ:i:0 H0:i:2 H1:i:9
+EAS54_67:3:114:736:433 163 seq2 832 63 35M = 998 201 AACAAAACCTCATATATCAATATTAACTTTGAATA ;<<9<8;<<<<8<8<;<<;;;0<<8;<;<<47;;; MF:i:18 Aq:i:18 NM:i:0 UQ:i:0 H0:i:1 H1:i:3
+B7_591:7:157:447:758 99 seq2 833 99 36M = 994 197 ACAAAACCTCATATATCAATATTAACTTTGAATAAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<<;< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+B7_591:4:159:508:571 99 seq2 834 84 36M = 989 191 CAAAACCTCATATATCAATATTAACTTTGAATAAAA <<<<<<<<<<<<<<;<<<<<<<<<<<<<<<<<<<<; MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:3
+EAS54_65:7:68:825:405 163 seq2 835 30 35M = 1015 215 AAAACCTCATATATCAATATTAACTTTGAATAAAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;;9 MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:5
+B7_593:3:102:856:670 99 seq2 836 99 36M = 1025 225 AAACCTCATATATCAATATTAACTTTGAATAAAAAG <<<<<<<;<<<;<<;:<<<<<<<<<<:;;<<;<<<7 MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:3:260:827:289 163 seq2 836 99 35M = 999 198 AAACCTCATATATCAATATTAACTTTGAATAAAAA <<<<2<<<<;<<<<;<<<<<<:<<<&-<8<<88<3 MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:5
+EAS114_28:1:220:801:282 147 seq2 837 99 36M = 660 -213 AACCTCATATATCAATATTAACTTTGAATAAAAAGG ;7;87;===;==;====:===<==7=========== MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:4:57:1675:720 147 seq2 841 99 35M = 684 -192 TCATATATCAATATTAACTTTGAATAAAAAGGGAT <,<<<<<<:<<<<<<<<:9<<<<<<<<;<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:2:297:949:26 83 seq2 842 99 35M = 676 -201 CATATATCAATATTAACTTTGAATAAAAAGGGATT 5<;<;<;:<<<<<<<<;<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:1:76:34:691 89 seq2 843 58 35M * 0 0 ATATATCAATATTAACTTTGAATAAAAAGGGATTA <<<<<<16<<<<<916<<<499<966161919<<< MF:i:32 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:5:98:995:929 83 seq2 844 99 35M = 680 -199 TATAACAATATTAACTTTGAATAAAAAGGGATTAA &<+<'7<<+<&<<<7+4<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:63 NM:i:1 UQ:i:6 H0:i:1 H1:i:0
+EAS139_19:3:58:923:1915 163 seq2 846 99 40M = 1007 201 TATCAATATTAACTTTGAATAAAAAGGGATTAAATTCCCC <<<<<<<<<<<<<<<<<<<<<<<<<;<;<<<<<<<::::: MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:4:181:476:394 83 seq2 847 99 35M = 666 -216 AACAATATTAACTTTGAATAAAAAGGGATTAAATT <+;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:54 NM:i:1 UQ:i:10 H0:i:1 H1:i:0
+EAS112_32:7:322:391:742 147 seq2 847 99 35M = 667 -215 ATCAATATTAACTTTGAATAAAAAGGGATTAAATT <63<<<<9<<<:<;<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:8:17:437:1378 83 seq2 847 99 35M = 676 -206 ATCAATATTAACTTTGAATAAAAAGGGATTAAATT <<7<<<<<<<<:<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:3:155:375:623 163 seq2 849 99 35M = 1029 215 CAATATTAACTTTGAATAAAAAGGGATTAAATTCC 0<<<<<;<<<<<<<<<<<<<4<<8<<<<<<<<;<; MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:2:29:729:70 163 seq2 850 51 35M = 1009 194 ANTATTANCTTTGANNAAAAAGGGATTAAATTCCC :!<:<<8!::::5:!!:.77::33888633:8777 MF:i:130 Aq:i:51 NM:i:3 UQ:i:0 H0:i:0 H1:i:0
+EAS54_65:7:117:452:744 83 seq2 850 99 35M = 676 -209 AATATTAACTTTGAATAAAAAGGGATTAAATTCCC <;;<;<<<7<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:50 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:1:288:384:444 83 seq2 855 99 35M = 696 -194 TAACTTTGAATAAAAAGGGATTAAATTCCCCCACT ;=9;;<====<=;=/=9;<========<======= MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:7:133:514:754 163 seq2 855 63 36M = 1036 217 TAAATTTGAATAAAAAGGGATTAAATTCCCCCACTT ***&,,,+(*,*********+*)*(***(**((*)( MF:i:18 Aq:i:19 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+EAS139_19:5:68:306:409 147 seq2 856 99 40M = 682 -214 AACTTTGAATAAAAAGGGATTAAATTCCCCCACTTAAGAG ::2:7<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_61:3:155:758:710 163 seq2 859 98 35M = 1048 224 TTTGAATAAAAAGGGATTAAATTCCCCCACTTAAG =======8================6=:7===:=:= MF:i:18 Aq:i:22 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:3:39:208:644 147 seq2 859 99 35M = 704 -190 TTTGAATAAAAAGGGATTAAATTCCCCCACTTAAG 78899;;;;4;;;;;;;;;;;;;;;;;;8;;8;;; MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:1:16:438:245 89 seq2 860 65 35M * 0 0 TTGAATAAAAAGGGATTAAATTCCCCCACTTAAGA 8*8<5'<77;;;;;7<7<<7-<;<<<;;<<<;;79 MF:i:32 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:5:145:635:390 83 seq2 860 99 35M = 673 -222 TTGAATAAAAAGGGATTAAATTCCCCCACTTAAGA +9;<<;<<<<<;;;<;<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:6:187:996:432 147 seq2 860 99 36M = 693 -203 TTGAATAAAAAGGGATTAAATTCCCCCACTTAAGAG ;<<<<<<<<<<<<<<<<<<<<;<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:2:123:924:645 163 seq2 861 84 36M = 1045 220 TGAATAAAAAGGGATTAAATTCCCCCACTTAAGAGA <<<<<<<<<<<<;<<<<<<;<<<<<<<6:<7<1<+< MF:i:18 Aq:i:11 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:4:146:961:63 163 seq2 861 86 35M = 1041 215 TGAATAAAAAGGGCTTAAATTCCCCCACTTAAGGG <<+<<<<::+1<;&<<88<<<<;;.<0;;85(;(8 MF:i:18 Aq:i:37 NM:i:2 UQ:i:12 H0:i:0 H1:i:1
+EAS114_30:6:4:665:771 69 seq2 862 0 * = 862 0 GTGCTTTATCTGATATCAATGCCGATAAACTGCCT <<<<<<<<<<<<%<8<3:7:77<(7,:3(:&2:(0 MF:i:192
+EAS114_30:6:4:665:771 137 seq2 862 71 35M = 862 0 GAATAAAAAGGGATTAAATTCCCCCACTTAAGAGA <;<<;<18<;<8<<<<;<;;<<<<1<<<<6;;;;; MF:i:64 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:6:45:601:439 83 seq2 864 99 35M = 691 -208 ATAAAAAGGGATTAAATTCCCCCACTTAAGAGATA <8<<<<<<1<<<<<<<<)<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:4:126:966:514 163 seq2 865 99 35M = 1027 197 TAAAAAGGGATTAAATTCCCCCACTTAAGAGATAT <<<<<<<<<<<<<<<<<<<<;<<<<<<<<<;<<<; MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:2:76:1765:700 83 seq2 866 99 35M = 680 -221 AAAAAGGGATTAAATTCCCCCACTTAAGAGATATA 77777;;;;7;7;<;;;;+;;<9<<<79;<1<<77 MF:i:18 Aq:i:63 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:1:155:807:19 99 seq2 867 99 35M = 1074 242 AAAAGGGATTAAATTCCCCCACTTAAGAGATATAG <<<<<<<<<<<<<<<<9+<<<<<<9<<9;4<<<<: MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:2:226:885:729 99 seq2 867 98 35M = 1037 205 AAAAGGGATTAAATTCCCCCACTTAAGAGATATAG <<<;<<<<<<;<;<<<<<<<:;<<;4;%;<<;<<. MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:4:1:156:196 99 seq2 867 77 40M = 1042 215 AAAAGGGATTAAATTCCCCCACTTAAGAGATATAGATTGG <<<<<<<<<<<<<<<<<<;<<<<<<<<<<<<<<<<:;9:9 MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:2:52:1144:509 147 seq2 867 99 35M = 706 -196 AAAAGGGATTAAATTCCCCCACTTAAGAGATATAG <<<<:<<<<<<<<<<;::;:<;<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:6:73:735:329 99 seq2 868 99 35M = 1035 202 AAAGGGATTAAATTCCCCCACTTAAGAGATATAGA ================;==;====;=;=======; MF:i:18 Aq:i:39 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:6:11:801:386 163 seq2 868 97 35M = 1061 228 AAAGGGATTAAATTCCCCCACTTAAGAGATATAGA <<<<<<<<<<8<<<<<:4<::<854:5<:::;4+4 MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:4:150:94:843 99 seq2 868 75 35M = 1050 217 AAAGGGATTAAATTCCCCCACTTAAGAGATATAGA <<<<<<<<7<<<6<<<<<<<<<<<6<<62<<<<<2 MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:5:255:796:239 147 seq2 869 99 35M = 692 -212 AAGGGATTAAATTCCCCCACTTAAGAGATAGAGAT <<3;;<7:<<<;(7<<7;<<;<<<<<<<<<7<<<< MF:i:18 Aq:i:43 NM:i:1 UQ:i:22 H0:i:0 H1:i:1
+B7_589:5:147:405:738 163 seq2 870 99 35M = 1048 213 AGGGATTAAATTCCCCCACTTAAGAGATATAGATT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;; MF:i:18 Aq:i:24 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:2:33:357:858 83 seq2 870 99 35M = 716 -189 AGGGATTAAATTCCCCCACTTAAGAGATATAGATT <;<:<<<<<<<<<;<9<<;<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:7:122:398:994 83 seq2 871 99 35M = 708 -198 GGGATTAAATTCCCCCACTTAAGAGATATAGATTG 95:<9<<<<:9<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS1_105:2:146:374:692 147 seq2 874 99 35M = 690 -219 ATTAAATTCCCCCACTTAAGAGATATAGATTGGCA <4:<<<1:<:<::<<<;<<<<<<<<<<<<<<<<<; MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:6:119:428:415 163 seq2 876 99 36M = 1037 197 TAAATTCCCCCACTTAAGAGATATAGATTGGCAGAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<9;;<;;; MF:i:18 Aq:i:46 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:7:168:247:414 147 seq2 876 99 35M = 698 -213 TAAATTCCCCCACTTAAGAGATATAGATTGGCAGA ,;;;,146<6;6<<8<<<<1<8<<<<<<<<<<;1< MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:2:130:609:467 147 seq2 877 99 35M = 728 -184 AAATTCCCCCACTTAAGAGATATAGATTGGCAGAA ===:2===;<====>==>=>=>=>>>==>>>=>>> MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:5:57:366:844 83 seq2 877 99 40M = 708 -209 AAATTCCCCCACTTAAGAGATATAGATTGGCAGAACAGAT ;;;7:8&555<,;<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:3:236:475:254 163 seq2 880 99 35M = 1051 206 TTCCCCCACTTAAGAGATATAGATTGGCAGAACAG <<<<<<<<<<<<<<<<<<<<<<<<<:::<:;</;/ MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:2:251:819:772 147 seq2 881 99 36M = 726 -191 TCCCCCACTTAAGAGATATAGATTGGCAGAACAGAT 6+7++1<<%<<<<<<<+<+<9<<99<9<<<<<<9<< MF:i:18 Aq:i:59 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:1:36:481:1079 83 seq2 881 99 40M = 707 -214 TCCCCCACTTAAGAGATATAGATTGGCAGAACAGATTTAA :11+)*<4;<<<<<<<<<;;<<<<<<;<<<<<<<<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:5:29:411:1208 147 seq2 882 99 40M = 698 -224 CCCCCACTTAAGAGATATAGATTGGCAGAACAGATTTAAA 766+6<996<<<<<<<<<<<<<<<<;<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:7:62:1076:540 99 seq2 882 99 35M = 1066 219 CCCCCACTTAAGAGATATAGATTGGCAGAACAGAT <<<<<<<<<<;<<<<<<<<<<<<<<<<;;<<;<7; MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:7:189:530:40 83 seq2 883 99 36M = 698 -221 CCCCACTTAAGAGATATAGATTGGCAGAACAGATTT 883;<<<<<<<<<:<<<<<<<<3<;<<<<<<<<;<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:8:113:856:319 163 seq2 884 99 35M = 1067 216 CCCACTTAAGAGATATAGATTGGCAGAACAGATTT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:2:55:296:1457 99 seq2 884 99 35M = 1061 212 CCCACTTAAGAGATATAGATTGGCAGAACAGATTT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:8:15:881:1932 99 seq2 886 92 35M = 1061 210 CACTTAAGAGATATAGATTGGCAGAACAGATTTAA <<<<<<<<<<<<<<<;<<<<:<<<2<26<8<<;;. MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:7:116:157:612 147 seq2 889 99 35M = 707 -217 TTAAGAGATATAGATTGGCAGTACAGATTTAAAAA ;;<<<<<<<<<<<<<<<<;<</<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:1 UQ:i:14 H0:i:0 H1:i:1
+EAS114_28:7:215:863:521 83 seq2 890 99 36M = 732 -194 TAAGAGATATAGATTGGCAGAACAGATTTAAAAACA ;<<<<<<<<<<<<<;<<;<;<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:7:254:572:431 163 seq2 891 97 35M = 1048 192 AAGAGATATAGATTGGCAGAACAGATTTAAAAACA <<<<<<<<<<<<<<<<;<<<<<<<<<<<99;;;;; MF:i:18 Aq:i:22 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:6:273:424:207 163 seq2 891 99 35M = 1066 210 AAGAGATATAGATTGGCAGAACAGATTTAAAAACA <,<,<9<<9<<<<<<<<<<79<,599,<191<99+ MF:i:18 Aq:i:62 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:8:4:571:820 163 seq2 891 99 35M = 1071 215 AAGAGATATAGATTGGCAGAACAGATTTAAAAACA <<<<<<<<<<<9<<;9<;;;<;6;:<<<3:;;;:6 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:4:36:1231:1381 147 seq2 891 99 35M = 708 -218 AAGAGATATAGATTGGCAGAACAGATTTAAAAACA <<<<<<;<<<<<<<<<8<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:3:66:718:481 99 seq2 891 99 40M = 1072 221 AAGAGATATAGATTGGCAGAACAGATTTAAAAACATGAAC <<<<<<<<<<<<<<;<<<<<<<<;<<<<<<<;<<<:1:;: MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:7:22:632:176 163 seq2 894 99 36M = 1091 233 AGATATAGATTGGCAGAACAGATTTAAAAACATGAA <<<<<;<<<<<<;<<;<:<<<:<<:<<<;<<<;;;: MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:8:271:180:509 147 seq2 896 99 35M = 729 -202 ATATAGATTGGCAGAACAGATTTAAAAACATGAAC <<<<<<<<<9<:<<<<:<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:5:198:564:731 163 seq2 898 99 35M = 1089 226 ATAGATTGGCAGAACAGATTTAAAAACATGAACTA <<<<<;<<<<<<;<<:<<;9<<<<<<<<1;<<58< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:2:67:1467:1447 83 seq2 898 99 35M = 722 -211 ATAGATTGGCAGAACAGATTTAAAAACATGAACTA <<<<<::<<:<<<<:<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:6:172:827:592 83 seq2 899 99 35M = 703 -231 TAGATTGGCAGAACAGATTTAAAAACATGAACTAA 8<<<<;7;7<<<<;<<<<<;<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:8:240:719:799 147 seq2 900 99 35M = 720 -215 AGATTGGCAGAACAGATTTAAAAACATGAACTAAC <:<<<<<:<<<<:<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:7:24:1345:1627 73 seq2 900 78 35M = 900 0 AGATTGGCAGAACAGATTTAAAAACATGAACTAAC <<<<<<<<<<<<<<<<<<<<<<9<<<<<<<<<8<3 MF:i:64 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:7:24:1345:1627 133 seq2 900 0 * = 900 0 NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! MF:i:192
+EAS139_19:1:58:726:1746 163 seq2 900 99 40M = 1061 201 AGATTGGCAGAACAGATTTAAAAACATGAACTAACTATAT <<<<<<<<<<<<<<<<<<<6<<<<8<<<<<<<<:8:8:88 MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:7:88:451:1773 147 seq2 902 99 35M = 742 -195 ATTGGCAGAACAGATTTAAAAACATGAACTAACTA 973776;;;;;;;;;::;;;;;;;;;;;;;;3;;; MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:8:178:187:610 147 seq2 903 99 35M = 744 -194 TTGGCAGAACAGATTTAAAAACATGAACTAACTAT 66:,:<7<<<<<<<1<<<<<<<<<<<<<<<2<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:6:38:332:54 83 seq2 904 99 36M = 737 -203 TGGCAGAACAGATTTAAAAACATGAACTAACTATAT 8;;&<;<<7<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:5:210:674:911 147 seq2 904 99 35M = 740 -199 TGGCAGAACAGATTTAAAAACATGAACTAACTATA 27;2<;<<5<<<<;;<<<<<;<<<<<<;<<<<<<< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:2:82:963:128 83 seq2 905 99 35M = 719 -221 GGCAGAACAGATTTAAAAACATGAACTAACTATAT 585<;<<:<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:2:12:1335:1372 83 seq2 906 99 40M = 721 -225 GAAGAACAGATTTAAAAACATGAACTAACTATATGCTGTT :&;;;<*<<<9<<<<<<<<<<<<<<4<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS114_39:1:98:641:1040 163 seq2 907 99 35M = 1085 213 CAGAACAGATTTAAAAACATGAACTAACTATATGC <<<<<<;<<<<<<<<<<<<<<<<<<<<<<<<<<<; MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:8:41:530:663 83 seq2 908 99 35M = 730 -213 AGAACAGATTTAAAAACATGAACTAACTATATGCT =8=;*=5==;;=====:=====;===;======== MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:1:87:430:995 147 seq2 909 67 35M = 731 -213 GAAAAGAGTTAAAAACATGAACTAACTATATGCTG 1<4%81<..1<<<<<0<<<<<0.<<9<<(<6<<6< MF:i:18 Aq:i:30 NM:i:2 UQ:i:17 H0:i:0 H1:i:1
+B7_595:3:85:964:950 163 seq2 910 99 35M = 1095 220 AACAGATTTAAAAACATGAACTAACTATATGCTGT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;<;: MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:8:68:570:705 99 seq2 910 99 35M = 1100 225 AACAGATTTAAAAACATGAACTAACTATATGCTGT <<<<<<<<<<<<<<<<<<<<<<<<<<;<<<<<<8< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:6:198:503:669 99 seq2 912 99 35M = 1107 230 CAGATTTAAAAACATGAACTAACTATATGCTGTTT <<<<<<<<<<;8<<<<<;<<<<<<;<;<8<<8<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:5:273:545:1001 163 seq2 913 99 35M = 1088 210 AGATTTAAAAACATGAACTAACTATATGCTGTTTA <<<<<<<<<<<<<<<;;<<<<<<;<8;28<8;<<8 MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:8:152:778:228 83 seq2 915 99 35M = 739 -211 ATTTAAAAACATGAACTAACTATATGCTGTTTACA <;;7=<<<<<<;<<<<<<<;<<<<<<<<<<<<<<< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:1:53:463:1132 163 seq2 915 99 40M = 1109 234 ATTTAAAAACATGAACTAACTATATGCTGTTTACANGAAA <<<<<<<<<<<<<<<<<<<<<;<<<8<<<<<<<8<!1488 MF:i:18 Aq:i:71 NM:i:1 UQ:i:0 H0:i:1 H1:i:0
+EAS218_4:3:12:630:707 147 seq2 915 99 35M = 751 -199 ATTTAAAAACATGAACTAACTATATGCTGTTTACA <:<<<<<<<;<<<<<9<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:8:179:119:876 163 seq2 917 60 35M = 1112 230 TTAAAAACATGAACTAACTATATGCTGTTTACCAG <<<<<<<7<<<<<<<8<<<6<<<<<<7<<<:0&<0 MF:i:18 Aq:i:30 NM:i:1 UQ:i:5 H0:i:1 H1:i:1
+EAS1_97:6:308:667:658 99 seq2 918 10 35M = 1116 233 TAAAAACATGAACTAACTATATCCTTCTTACAATA 9<96<<<;<96<<9<51<<<<<1:9++<9*%4;*5 MF:i:18 Aq:i:10 NM:i:4 UQ:i:45 H0:i:0 H1:i:0
+EAS114_28:5:163:832:715 163 seq2 918 99 36M = 1085 203 TAAAAACATGAACTAACTATATGCTGTTTACAAGAA <<0;<9<<<<<<<<<<<<9<<<<<<<<<<<<;;;<6 MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:3:179:496:161 83 seq2 919 99 36M = 756 -199 AAAAACATGAACTAACTATATGCTGTTTACAAGAAA <<<<<9<<<<<7<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:49 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:8:13:325:483 163 seq2 919 99 35M = 1101 217 AAAAACATGAACTAACTATATGCTGTTTACAAGAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<; MF:i:18 Aq:i:27 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS1_103:7:139:578:951 163 seq2 919 98 35M = 1095 211 AAAAACATGAACTAACTATATGCTGTTTACAAGAA <<<<<<<<;<<<<<<<<<<<<;<<<<<<<<<<0;; MF:i:18 Aq:i:26 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS1_108:8:19:929:765 99 seq2 919 98 35M = 1069 185 AAAAACATGAACTAACTATATGCTGTTTACAAGAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<;77< MF:i:18 Aq:i:27 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS56_57:5:214:644:390 163 seq2 919 72 35M = 1082 198 AAAAACATGAACTAACTATATGCTGTTTACAAGAA <<<<<<<<<<<<;<<<<<<<<<<<<<<<<<<<;<; MF:i:18 Aq:i:27 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS114_30:6:243:209:110 83 seq2 920 48 35M = 768 -187 AAAACATGAACTAACTATATGCTGTTTACAAGAAA ;<;;;:<:<:;<<;;<;<;<;7<<;<<;;<;<<<< MF:i:18 Aq:i:48 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:2:247:900:123 99 seq2 920 99 35M = 1123 238 AAAACATGAACTAACTATATGCTGTTTACAAGAAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<9;<; MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS51_62:7:162:195:761 83 seq2 922 30 35M = 767 -190 AACATGAACTAACTATATGCTGTTTACAAGAAACT <<8<<:<<:<<<<<<<<<<:<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:2 H1:i:0
+EAS1_103:2:184:980:396 163 seq2 923 99 35M = 1092 204 ACATGAACTAACTATATGCTGTTTACAAGAAACTC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:2:162:272:415 99 seq2 923 83 35M = 1112 224 ACATGAACTAACTATATGCTGTTTACAAGAAACTC <<<<<<<<<<<<<<<<<<<<<<;<<<<<9;<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:4:184:237:476 163 seq2 925 99 35M = 1101 211 ATGAACTAACTATATGCTGTTTACAAGAAACTCAT <<<<<<<<<<<<<<<<<<<<<<;<<<<<<<;<;;< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:1:202:341:984 99 seq2 926 99 35M = 1094 203 TGAACTAACTATATGCTGTTTACAAGAAACTCATT =========================4;======== MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_53:3:107:738:484 99 seq2 926 75 35M = 1097 206 TGAACTAACTATATGCTGTTTACAAGAAACTCATT <<<<<<<<<<<<<<<<<<<<<<<<<:<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:6:7:492:1088 147 seq2 926 57 35M = 769 -192 TGAACTAACTATATGCTGTTTACAAGAAACTCATT 4;<<75<<::<:<<<-<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:57 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS139_11:1:81:1019:558 83 seq2 926 77 35M = 760 -201 TGAACTAACTATATGCTGTTTACAAGAAACTCATT <<<<9<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:4:10:1312:1558 83 seq2 928 76 35M = 771 -192 AACTAACTATATGCTGTTTACAAGAAACTCATTAA <<:<<<;<<<<<<;<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:4:206:741:810 83 seq2 929 99 34M = 753 -210 ACTAACTATATGCTGTTTACAAGAAACTCATTAA <3<<;5<<<<<;:<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:48 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:7:200:65:291 147 seq2 930 99 35M = 728 -237 CTAACTATATGCTGTTTACAAGAAACTCATTAATA ;9<;3<<9<7<;<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:2:38:670:564 147 seq2 930 73 35M = 770 -195 CTAACTATATGCTGTTTACAAGAAACTCATTAATA 3<<<3:<<<<<:;<<<<<:<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:7:57:1114:2032 99 seq2 931 99 35M = 1102 206 TAACTATATGCTGTTTACAAGAAACTCATTAATAA <7<<<<<<<<<<<<<<<<<777<<<7<<<<<3<<7 MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:5:125:137:58 83 seq2 932 76 35M = 772 -195 AACTATATGCTGTTTACAAGAAACTCATTAATAAA <<9;<<<<<;<;<<<<;<<<<<<;<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:1:38:250:647 163 seq2 933 71 35M = 1100 202 ACTATATGCTGTTTACAAGAAACTCATTAATAAAT <<<<<<<9<<9<<<<<<<6<<<<<<<<<<8<779% MF:i:18 Aq:i:0 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+EAS192_3:6:116:464:261 99 seq2 934 99 35M = 1107 208 CTATATGCTGTTTACAAGAAACTCATTAATAAAGA <<<<<<<<<<<<<<<<<;<<<;<<<<<<<<<;;8< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:1:168:69:249 163 seq2 936 99 35M = 1125 224 ATATGCTGTTTACAAGAAACTCATTAATAAAGACA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;;< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:4:246:647:765 163 seq2 937 99 35M = 1119 217 TATGCTGTTTACAAGAAACTCATTAATAAAGACAT ;<<<<<<<<<;<&<<3+3<<<3<<9&</:/87</8 MF:i:18 Aq:i:62 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:3:307:113:346 163 seq2 938 99 35M = 1123 220 ATGCTGTTTACAAGAAACTCATTAATAAAGACATG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;<<8 MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:6:159:493:275 147 seq2 939 72 35M = 760 -214 TGCTGTTTACAAGAAACTCATTAATAAAGACATGA 4949;<<<<<<<<<<<6<;<<<<;<<<<<*<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:3:257:288:731 99 seq2 939 99 34M = 1131 227 TGCTGTTTACAAGAAACTCATTAATAAAGACATG <<<<<<<<8<8<<;<;<<<;<<<5<;;88.8<6< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:4:231:815:626 163 seq2 940 99 35M = 1119 214 GCTGTTTACAAGAAACTCATTAATAAAGACATGAG <;<<<<9<<<<<<<<<<<<<<<<<;<<;5<<<;:; MF:i:18 Aq:i:41 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:4:93:77:1338 163 seq2 940 10 35M = 1098 193 GCTGCTTACAAGAAGCGCATTAATAAAGACATGAG <<<<*<2<<<:<4<&<6<8<4<::<8<<<<82;;7 MF:i:18 Aq:i:0 NM:i:3 UQ:i:35 H0:i:0 H1:i:0
+EAS114_45:2:54:1886:719 99 seq2 941 99 35M = 1125 219 CTGTTTACAAGAAACTCATTAATAAAGACATGAGT ;;;9;;<;;;9;;;;;:;<9;:;;;;9;;;99799 MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:7:94:273:165 99 seq2 945 99 35M = 1128 218 TTACAAGAAACTCATTAATAAAGACATGAGTTCAG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<:;;:7 MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:5:32:461:154 147 seq2 945 71 35M = 769 -211 TTACAAGAAACTCATTAATAAAGACATGAGTTCAG ;;</<<<<<;:<.<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:3:303:131:673 163 seq2 947 99 36M = 1112 201 ACAAGAAACTCATTAATAAAGACATGAGTTCAGGTA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;<;;; MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:6:10:106:737 163 seq2 947 99 35M = 1106 194 ACAAGAAACTCATTAATAAAGACATGAGTTCAGGT <<<;<1<;<<<<<<9<<<<;;<<<<<99<<94008 MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:2:214:950:32 163 seq2 947 99 35M = 1132 220 ACAAGAAACTCATTAATAAAGACATGAGTTCAGGT >>=>>>>==>=>>>==>=>=:=====;=:=6:::6 MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:2:10:686:1024 163 seq2 947 99 35M = 1103 191 ACAAGAAACTCATTAATAAAGACATGAGTTCAGGT <:<<<<:<<<<<<<<<<:<:<<<<<<<<<<<5<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:5:53:61:31 163 seq2 949 99 35M = 1122 208 AAGAAACTCATTAATAAAGACATGAGTTCAGATAA <<<7;<7<<<;7<;;<7<7<7<;5<73<<</%;/; MF:i:18 Aq:i:66 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+EAS114_28:6:185:87:475 83 seq2 949 99 36M = 786 -199 AAGAAACTCATTAATAAAGACATGAGTTCAGGTAAA <<4<<<+<<<;<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:4:235:899:847 99 seq2 950 99 35M = 1112 197 AGAAACTCATTAATAAAGACATGAGTTCAGGTAAA <<3<;<<<<<<<<<;;<<<<<<<+<<<+6<8<3/< MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:6:193:661:771 163 seq2 952 99 35M = 1129 212 AAACTCATTAATAAAGACATGAGTTCAGGTAAAGG <<<<<<<<<;<<<;;;<<<<<;<<<=;<:;5:9:: MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:7:113:408:211 147 seq2 952 99 35M = 789 -198 AAACTCATTAATAAAGACATGAGTTCAGGTAAAGG <:;:;:<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:8:24:718:322 83 seq2 953 23 35M = 779 -209 AACTCATTAATAATGTCATGAGTTCAGGTAAAGGG 5:+:0;**&+<00&<&<<<5<28<<;;<83<<<<< MF:i:18 Aq:i:23 NM:i:2 UQ:i:10 H0:i:0 H1:i:0
+EAS56_61:5:263:314:696 163 seq2 953 99 35M = 1117 199 AACTCATTAATAAAGACATGAGTTCAGGTAAAGGG <<<<<<<<<<<<<<;<<<<<<<<<<<<:<<;<775 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:5:93:312:331 163 seq2 953 99 35M = 1145 227 AACTCATTAATAAAGACATGAGTTCAGGTAAAGGG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<=<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:3:181:93:694 83 seq2 954 99 35M = 783 -206 ACTCATTAATAAAGACATGAGTTCAGGTAAAGGGG <4;8<<+<<:<<<<<<<<<<<:<<<<<<<<<<<<< MF:i:18 Aq:i:28 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:6:238:803:383 147 seq2 954 75 35M = 779 -210 ACTCATTAATAAAGACATGAGTTCAGGTAAAGGGG ;;<;;<<<<<<<<<<<<<<<<;:<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:6:44:77:1255 163 seq2 955 99 35M = 1113 193 CTCATTAATAAAGACATGAGTTCAGGTAAAGGGGT ;;;;;;;8;;;7;8;;;;;;;;;;886;;;76777 MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:3:232:364:583 147 seq2 956 71 35M = 780 -211 TCATTAATAAAGACATGAGTTCAGGTAAAGGGGTG ;%;7;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:7:256:354:173 163 seq2 957 99 36M = 1121 200 CATTAATAAAGACATGAGTTCAGGTAAAGGGGTGGA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<3<<; MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:4:138:211:582 147 seq2 957 99 35M = 788 -204 CATTAATAAAGACATGAGTTCAGGTAAAGGGGTGG :<8;<<<<<<<<<<<<<<;<<<<<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:4:61:631:567 99 seq2 957 99 35M = 1131 209 CATTAATAAAGACATGAGTTCAGGTAAAGGGGTGG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:5:56:1757:1319 83 seq2 957 67 35M = 775 -217 CATTAATAAAGACATGAGTTCAGGTAAAGGGGTGG &7778<<<<<8<;<<:::;<:<4<<:<:;8<8<;< MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:7:154:26:712 147 seq2 959 99 35M = 786 -208 TTAATAAAGACATGAGTTCAGGTAAAGGGGTGGAA ;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:8:10:975:766 163 seq2 959 99 35M = 1166 242 TTAATAAAGACATGAGTTCAGGTAAAGGGGTGAAA <<<<<<<<;<<<<;<:<<;<6;;<<<:6-:+1+;; MF:i:18 Aq:i:64 NM:i:1 UQ:i:10 H0:i:1 H1:i:0
+EAS54_73:5:220:733:736 99 seq2 959 99 35M = 1143 219 TTAATAAAGACATGAGTTCAGGTAAAGGGGTGGAA <<<<<<<<<<<<<<<<<<<<<<<<<<<;<<5<<;9 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:4:46:1566:668 163 seq2 959 99 35M = 1148 224 TTAATAAAGACATGAGTTCAGGTAAAGGGGTGGAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:78 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:7:59:871:351 83 seq2 963 99 35M = 808 -190 TAAAGACATGAGTTCAGGTAAAGGGGTGGAAAAAG ;<<<<<:<;<<<4;<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:7:46:522:426 83 seq2 964 99 35M = 807 -192 AAAGACATGAGTTCAGGTAAAGGGGTGGAAAAAGA <<<<<:<<<<<<1/<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:7:157:876:302 83 seq2 964 99 35M = 801 -198 AAAGACATGAGTTCAGGTAAAGGGGTGGAAAAAGA ===:=8=;==:892=,28==88==28====8=;;8 MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:4:61:1369:440 83 seq2 964 47 35M = 770 -229 AAAGACATGATTTCAGGTAAAGGGGTGGAAAAAGA <<<<<<<<<<8<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:23 H0:i:0 H1:i:1
+EAS221_1:6:57:1342:1166 147 seq2 964 99 35M = 796 -203 AAAGACATGAGTTCAGGTAAAGGGGTGGAAAAAGA <<<<<;<<<<<<<;<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:4:310:287:420 147 seq2 965 99 35M = 794 -206 AAGACATGAGTTCAGGTAAAGGGGTGGAAAAAGAT <<<<;<;<<<<<;<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:5:262:53:888 83 seq2 965 99 35M = 787 -213 AAGACATGAGTTCAGGTAAAGGGGTGGAAAAAGAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:2:3:542:428 83 seq2 965 99 35M = 797 -203 AAGACATGAGTTCAGGTACAGGGGTGGAAAAAGAT <<876</3<8874:<8:<)<5<<<;<<<<7<<<:< MF:i:18 Aq:i:41 NM:i:1 UQ:i:8 H0:i:0 H1:i:1
+B7_593:2:81:435:410 147 seq2 966 99 36M = 782 -220 AGACATGAGTTCAGGTAAAGGGGTGGAAAAAGATGT ;<;;<<<<<<;<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:29 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:3:85:219:371 83 seq2 967 99 35M = 817 -185 GACATGAGTTCAGGTAAAGGGGTGGAAAAAGATGT <<7<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:2:116:966:193 83 seq2 967 99 35M = 815 -187 GACATGAGTTCAGGTAAAGGGGTGGAAAAAGATGT =================================== MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:4:30:432:228 163 seq2 967 99 35M = 1145 213 GACATGAGTTCAGGGAAAGGGGTGGAAAAAGATGT <<<<<<<<<<<<<<8<<<<<<<<<<<<:<<<<<;; MF:i:18 Aq:i:47 NM:i:1 UQ:i:23 H0:i:0 H1:i:1
+B7_610:1:12:88:200 163 seq2 968 99 35M = 1133 200 ACATGAGTTCAGGTAAAGGGGTGGAAAAAGATGTT <<<<<<<<<<<;<<<<<<<;<<<:<<<<<<9<<5< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:2:313:711:530 83 seq2 968 99 35M = 784 -219 ACATGAGTTCAGGTAAAGGGGTGGAAAAAGATGTT <7;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:7:74:866:49 163 seq2 969 99 35M = 1143 209 CATGAGTTCAGGTAAAGGGGTGGAAAAAGATGTTC ====================9==91==<=6==;:= MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:7:248:17:435 99 seq2 969 99 35M = 1139 205 CATGAGTTCAGGAAAAGGGGTGGAAAAAGATGTTC <<<<8<<<888<+<<<<<;<:<<<<8<<<<<;3<3 MF:i:18 Aq:i:43 NM:i:1 UQ:i:10 H0:i:0 H1:i:1
+EAS114_30:1:188:863:790 83 seq2 969 98 35M = 783 -221 CATGAGTTCAGGTAAAGGGGTGGAAAAAGATGTTC ;<7<<<55<<<<:<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:27 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:6:75:1503:1399 163 seq2 969 99 40M = 1130 201 CATGAGTTCAGGTAAAGGGGTGGAAAAAGATGTTCTACGC <<<<<<<<<<<<<<<<<<9<<<;<<<<<<;<<<<:::711 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:2:56:155:49 99 seq2 970 99 35M = 1145 210 ATGAGTTCAGGTAAAGGGGTGGAAAAAGATGTTCT <<<<<<<<<<<<<<<<<<<<<<;<<;<<<;<9<9; MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_4:5:295:547:216 83 seq2 970 99 35M = 809 -196 ATGAGTTCAGGTAAAGGGGTGGAAAAAGATGTTCT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:4:262:928:237 147 seq2 971 99 35M = 787 -219 TGAGTTCAGGTAAAGGTGTGGAAAAAGATGTTCTA ;<<<<<;<<<<<<<<<;<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:26 H0:i:0 H1:i:1
+EAS219_1:1:50:257:341 83 seq2 971 99 35M = 813 -193 TGAGTTCAGGTAAAGGGGTGGAAAAAGATGTTCTA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:1:122:38:103 83 seq2 972 79 35M = 778 -229 GAGTTCAGGTAAAGGGGTGGAAAAAGATGTTCTAC ===;3<===:=======<================= MF:i:18 Aq:i:79 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:1:82:670:302 99 seq2 973 99 35M = 1146 208 AGTTCAGGTAAAGGGGTGGAAAAAGATGTTCTACG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<5 MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:8:24:415:944 147 seq2 974 99 35M = 805 -204 GTTCAGGTAAAGGGGTGGAAAAAGATGTTCTACGC <;;<<<<:<<<<<<<;<<<<<<<<<<<<;<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:7:108:440:208 99 seq2 975 99 35M = 1142 202 TTCAGGTAAAGGGGAGGAAAAAGATGTTCTACGCA <<<;<<<<<<<<<</<<<<;<<<;<<;<;<64/:+ MF:i:18 Aq:i:43 NM:i:1 UQ:i:14 H0:i:0 H1:i:1
+B7_595:3:229:543:583 99 seq2 976 99 35M = 1139 198 TCAGGTAAAGGGGTGGAAAAAGATGTTCTACGCAA <<<<<<<<<<8<8<9<<<<8<<588<<<<*<2:2* MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:2:142:353:398 83 seq2 977 99 35M = 807 -205 CAGGTAAAGGGGTGGAAAAAGATGTTCTACGCAAA =================================== MF:i:18 Aq:i:79 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:2:102:543:160 83 seq2 977 99 35M = 825 -187 CAGGTAAAGGGGTGGAAAAAGATGTTCTACGCAAA 9==9=====;=====================<=== MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:4:191:40:536 163 seq2 977 66 35M = 1167 225 CAGGTAAAGGGGTGGAAAAAGATGTTCTACGCAAA <<<<<<<<8<<;<<8<<;<;;<<8<<<<<</<74/ MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_32:7:272:328:400 163 seq2 977 99 35M = 1151 209 CAGGTAAAGGGGTGGAAAAAGATGTTCTACGCAAA <<<<<<<<;<<<<<<<<<<<<<<<<<<<<<7<;:7 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:4:69:1593:819 83 seq2 977 99 40M = 786 -231 CAGGTAAAGGGGTGGAAAAAGATGTTCTACGCAAACAGAA );::7<<<<:;<<<<<<<<<<<<<<<9<<9<3<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+B7_597:3:133:707:886 99 seq2 978 99 35M = 1146 203 AGGTAAAGGGGTGGAAAAAGATGTTCTACGCAAAC <<<<7;<<<<<<<<<;<<<<<<<<<<<<<5<;66< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+B7_591:4:92:411:955 99 seq2 979 99 36M = 1149 206 GGTAAAGGGGTGGAAAAAGATGTTCTACGCAAACAG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<<; MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS56_61:8:60:358:494 99 seq2 979 44 35M = 1179 235 GGTAAAGGGGTGGAAAAAGATGTTCTACGCAAACA <<<<<<<<<<<<<<<<<<<<<<<<<<:<:<<;;4; MF:i:18 Aq:i:14 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+B7_597:7:41:34:211 163 seq2 980 99 35M = 1164 219 GTAAAGGGGTGGAAAAAGATGTTCTACGCAAACAG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<3:;5; MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:2:40:1291:1045 99 seq2 980 99 35M = 1167 222 GTAAAGGGGTGGAAAAAGATGTTCTACGCAACAAG <<<<<<<<<5<<5<<<<7<<<<<<<<<5<9<&%73 MF:i:18 Aq:i:39 NM:i:2 UQ:i:9 H0:i:1 H1:i:0
+EAS218_1:8:90:706:1276 83 seq2 980 99 35M = 814 -201 GTAAAGGGGTGGAAAAAGATGTTCTACGCAAACAG <;<<<<<<<;<<<<<<<<<<<<<;<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS114_32:4:5:396:292 163 seq2 981 99 35M = 1155 209 TAAAGGGGTGGAAAAAGATGTTCTACGCAAACAGA <<<<<<<<<<<<<<;;<<<<:<<<<;;<;;3/&+8 MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:2:176:653:957 83 seq2 982 82 35M = 819 -198 AAAGGGGTGGAAAAAGATGTTCTACGCAAACAGAA ===::=============<==<====<======== MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS54_71:6:264:705:89 99 seq2 983 99 34M = 1155 207 AAGGGGTGGAAAAAGATGTTCTACGCAAACAGAA <<<<<<<<<<;8<<<<<<<<<<<<<<<&<<,;;( MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_61:2:66:757:918 163 seq2 985 99 35M = 1143 193 GGGGTGGAAAAAGATGTTCTACGCAAACAGAAACC =================================== MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_61:7:114:506:971 163 seq2 986 99 35M = 1150 199 GGGTGGAAAAAGATGTTCTACGCAAACAGAAACCA =================================== MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:6:220:809:850 99 seq2 986 60 35M = 1187 236 GGGGGGAAAAAGATGTGCTACACAAAAAGATTCCA <<;7;<<0::8<-6:<0624-*<&-93-,8+(&08 MF:i:130 Aq:i:60 NM:i:4 UQ:i:64 H0:i:0 H1:i:0
+B7_589:7:76:306:561 83 seq2 987 89 35M = 794 -228 GGTGGAAAAAGATGTTCTACGCAAACAGAAACCAA 9<7<<9<<<<<<7<<71<71*7<<<<<<<<<<1<< MF:i:18 Aq:i:20 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS192_3:6:235:505:553 83 seq2 987 99 35M = 808 -214 GGTGGAAAAAGATGTTCTACGCAAACAGAAACCAA ;8518<<<<<;<;<<<;<<;<.<<<<<<<<<<<<< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:1:19:695:59 147 seq2 988 99 36M = 826 -198 GTGGAAAAAGATGTTCTACGCAAACAGAAACCAAAT ;+;8<<<<<<<<<<<5<<+<:<<;<<<<<<<<<<<< MF:i:18 Aq:i:49 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:5:136:260:254 147 seq2 988 99 35M = 813 -210 GTGGAAAAAGATGTTCTACGCAAACAGAAACCAAA ;:;;<<<<<<<<<<<<<<;<;<<<<<<<<<<<<<< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS56_57:5:266:133:789 147 seq2 988 99 35M = 810 -213 GTGGAAAAAGATGTTCTACGCAAACAGAAACCAAA 9;;<<<<<<<<<<<<5<<;<5<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+B7_591:4:159:508:571 147 seq2 989 84 36M = 834 -191 TGGAAAAAGATGTTCTACGCAAACAGAAACCAAATG 9<6<<<<<<<<<<<;<<;<<<<<;<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:7:166:84:766 163 seq2 990 99 35M = 1167 212 GGAAAAAGATGTTCTACGCAAACAGAAACCAAATG <<<<<<<<;<<<<<<<<;<<<<<<;<<<7<;::93 MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS56_61:6:283:963:234 99 seq2 992 99 35M = 1157 200 AAAAAGATGTTCTACGCAAACAGAAACCAAATGAG <<<<<<<<<<<<<<<;<<<<<<<<<<<;<<;<<;< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:4:184:659:377 99 seq2 992 99 35M = 1173 216 AAAAAGATGTTCTACGCAAACAGAAACCAAATGAG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;;;; MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:4:305:707:258 147 seq2 992 58 36M = 831 -197 AAAAAGATGTTCTACGCAAGCAGAAACCAAATGAGA 3<<7<,;<<<<0<66<6+<%<<<.<<<<<<<<<9<< MF:i:18 Aq:i:17 NM:i:1 UQ:i:4 H0:i:0 H1:i:1
+EAS219_1:7:20:1444:328 99 seq2 993 99 35M = 1149 191 AAAAGATGTTCTACGCAAACAGAAACCAAATGAGA <<<<;<<<<<<<<;<<<<<<<<;<<<<<;<;;8:7 MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:7:157:447:758 147 seq2 994 99 36M = 833 -197 AAAGATGTTCTACGCAAACAGAAACCAAATGAGAGA <<<;<<5<</<<6<5<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:7:37:763:1437 163 seq2 994 99 35M = 1191 232 AAAGATGTTCTACGCAAACAGAAACCAAATGAGAG ;;;;;6;;;;;;;;;:;6;5;5;;;;;76;767/7 MF:i:18 Aq:i:64 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:6:94:1273:1462 163 seq2 995 99 35M = 1166 206 AAGATGTTCTACGCAAACAGAAACCAAATGAGAGA <<<<<<<<<<<<:<<<<<<<<:<<<<:6:7;744; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:7:74:213:877 147 seq2 996 99 35M = 816 -215 AGATGTTCTACGCAAACAGAAACCAAATGAGAGAA <<<<<<<&<<-<-<<<7<<<<<77<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_61:2:168:61:867 163 seq2 997 99 35M = 1188 226 GATGTTCTACGCAAACAGAAACCAAATGAGAGAAG ====7====================7======6== MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:2:307:252:632 163 seq2 998 99 35M = 1142 179 ATGTTCTACGCAAACAGAAACCAAATGAGAGAAGG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<:;;<;; MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:4:37:604:389 99 seq2 998 99 35M = 1188 225 ATGTTCTACGCAAACAGAAACCAAATGAGAGAAGG <<<<<<<<<3<<<<<4<<<<<9<2;949<;35:95 MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:8:147:687:428 99 seq2 998 99 35M = 1159 196 ATGTTCTACGCAAACAGAAACCAAATGAGAGAAGG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:36 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:3:114:736:433 83 seq2 998 63 35M = 832 -201 ATGTTCTACGCAAACAGAAACCAAGTGAGAGAAGG <9<9+9;<6<9<<;9<<<<<;<<<99<<<<<<<<< MF:i:18 Aq:i:18 NM:i:1 UQ:i:24 H0:i:0 H1:i:1
+B7_597:8:35:118:589 163 seq2 999 99 35M = 1188 224 TGTTCTACGCAAACAGAAACCAAATGAGAGAAGGA <<<<<<<<<<<<<<<<<<<<<<<<<<;<:<<<<<9 MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:2:127:288:655 83 seq2 999 99 35M = 803 -231 TGTTCTACGCAAACAGAAACCAAATGAGAGAAGGA <<:<3<<:<.<<<;<<<<<;<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:3:260:827:289 83 seq2 999 99 35M = 836 -198 TGTTCTACGCAAACAGAAACCAAATGAGAGAAGGA 6;99+<<<<<<<<<<<<<<6<<<<<7<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:5:82:843:1838 147 seq2 999 99 35M = 804 -230 TGTTCTACGCAAACAGAAACCAAATGAGAGAAGGA 888829;;;;;;;;;;;;;;:;;;;;;;;;;;;;; MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:8:64:350:174 163 seq2 1000 99 35M = 1166 201 GTTCTACGCAAACAGAAACCAAATGAGAGAAGGAG <<<<<<<<<<<<<<<<<<<<<:<<<<<6<<<<<:< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:2:8:327:522 83 seq2 1001 99 35M = 826 -210 TTCTACGCAAACAGAAACCAAATGAGAGAAGGAGT ;;4;<-<-<<<7<<<<<;<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:49 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:7:126:361:250 147 seq2 1002 99 35M = 810 -227 TCTACGCAAACAGAAACCAAATGAGAGAAGGAGTA 72:;7</<<<:<-7<<:<<<<<<<:<6<+:<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:4:189:571:366 163 seq2 1002 99 35M = 1194 227 TCTACGCAAACAGAAACCAAATGAGAGAAGGAGTA <<<<<<<<<<<<<<<<<<<<<<<<<7<:<<99;;; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:3:202:275:776 163 seq2 1002 99 36M = 1196 230 TCTACGCAAACAGAAACCAAATGAGAGAAGGAGTAG <<<<<<<<<<<<<<<<<<<<<;<<9<;;<<<;<;<; MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:6:194:998:663 163 seq2 1002 99 35M = 1165 198 TCTACGCAAACAGAAACCAAATGAGAGAAGGAGTA <<<<<<<<<;<<<<<<<<<<<<<<<<<<<<<<<8< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:5:30:599:589 99 seq2 1003 99 36M = 1188 221 CTACGCAAACAGAAACCAAATGAGAGAAGGAGCAGC <<<<<<<<<<<<<<<<<<<<<<<<<<;;<<;<&<<; MF:i:18 Aq:i:72 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS112_34:4:92:412:435 99 seq2 1003 89 35M = 1184 216 CTACGCAAACAGAAACCAANTGAGAGAAGGAGTAG <<<<<<<4<<<<<<<<<66!<<<<<<6<<77<<97 MF:i:18 Aq:i:43 NM:i:1 UQ:i:0 H0:i:0 H1:i:1
+B7_610:2:75:887:149 83 seq2 1004 99 35M = 823 -216 TACGCAAACAGAAACCAAATGAGAGAAGGAGTAGC :<:<0<<<;<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:23 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:1:2:1422:1820 163 seq2 1004 99 35M = 1164 195 TACGCAAACAGAAACCAAATGAGAGAAGGAGTAGC ;7;;;;;;;;:;;;;;;;;;;;;;;;;;;;77777 MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:6:90:561:850 83 seq2 1004 85 35M = 827 -212 TACGCAAACAGAAACCAAATGAGAGAAGGAGTAGC 78376<;;9<;<<;:9<<<6;<;<;;8;;<;/;;; MF:i:18 Aq:i:19 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:4:164:719:947 147 seq2 1005 99 35M = 813 -227 ACGCAAACAGAAACCAAATGAGAGAAGGAGTAGCT ===,=========6====)================ MF:i:18 Aq:i:64 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:5:154:952:558 99 seq2 1007 99 35M = 1173 201 GCAAACAGAAACCAAATGAGAGAAGGAGTAGCTAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<:<:< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:3:58:923:1915 83 seq2 1007 99 40M = 846 -201 GCAAACAGAAACCAAATGAGAGAAGGAGTAGCTATACTTA :+;;;8<<<<<<,<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:3:253:175:31 99 seq2 1008 72 35M = 1187 214 CAAACAGAAACCAAATGAGAGAAGGAGTAGCTATA <<<<<<<<<<<<<<<<<<<<<<:<<<<<<<:<;;; MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:2:29:729:70 83 seq2 1009 51 35M = 850 -194 AAACAGAAACCAAATGAGAGAAGGAGTAGCTATAC <<<:<<<<<<7<<<<<<7<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:4:174:157:573 163 seq2 1012 99 35M = 1191 214 CAGAAACCAAATGAGAGAAGGAGTAGCTATACTTA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:7:197:399:319 163 seq2 1012 99 35M = 1189 212 TAGAAACCAAATGAGAGAAGGAGTAGCTATACTTA +<<<<<<<<<<<<<<<<<;<<<<<<<<<<<;;<<; MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS54_65:7:68:825:405 83 seq2 1015 30 35M = 835 -215 AAACCAAATGAGAGAAGGAGTAGCTATACTTATAT <<<;<<<<9<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:4:13:701:55 99 seq2 1015 99 36M = 1187 208 AAACCAAATGAGAGAAGGAGTAGCTATACTTATATC <<<<<<<<<9<<<9<<<<<<6<<<<<<<6<<6<<6+ MF:i:18 Aq:i:48 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:2:128:555:941 153 seq2 1016 10 36M * 0 0 AACCAAAAGAGAGAAGGAGTAGTTATACACATATCA 55--555560355$55555555.57757$7555577 MF:i:32 Aq:i:10 NM:i:4 UQ:i:58 H0:i:0 H1:i:0
+EAS219_FC30151:1:53:140:421 163 seq2 1016 99 35M = 1185 204 AACCAAATGAGAGAAGGAGTAGCTATACTTATATC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:48 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:1:64:526:339 83 seq2 1019 96 35M = 819 -235 CAAATGAGAGAAGGAGTATCTATACTTATATCAGA 3<<<7<<;<<<<<<<<<<<;<<<<;<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS192_3:3:194:378:230 163 seq2 1022 99 35M = 1198 211 ATGAGAGAAGGAGTAGCTATACTTATATCAGATAA <<<<<<<<<<<<<:<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:49 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:1:45:239:851 163 seq2 1023 61 35M = 1211 223 TGAGAGAAGGAGTAGCTATACTTATATCAGATAAA <<88;<208<9<;6<<<6269;94<&401-662&2 MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:6:39:956:676 163 seq2 1023 99 35M = 1191 203 TGAGAGAAGGAGTAGCTATACTTATATCAGATAAA ;;;;;;;;;;;;9;;;;;;;;;;;;;;;9957777 MF:i:18 Aq:i:44 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:2:15:1763:1143 99 seq2 1023 99 35M = 1193 205 TGAGAGAAGGAGTAGCTATACTTATATCAGATAAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:46 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:5:309:109:987 163 seq2 1024 99 35M = 1194 205 GAGAGAAGGAGTAGCTATACTTATATCAGATAAAG <<<<<<<<<<<<<<<<<<<<<<<<<<9<<<;<;;; MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+B7_593:3:102:856:670 147 seq2 1025 99 36M = 836 -225 AGAGAAGGAGTAGCTATACTTATATCAGATAAAGCA ;;<<<<:<<<:<<4<<<<<<<<;<<;<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:4
+B7_610:6:107:252:533 163 seq2 1025 60 35M = 1173 183 AGAGAAGGAGTAGCTATACTTATATCAGATAAAGC <<<<<<<<<<<<<<<<<<<<<<<<<<<;<<;<<;9 MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:3 H1:i:3
+EAS56_65:4:126:966:514 83 seq2 1027 99 35M = 865 -197 AGAAGAAGTAGCTATACTTATATCAGATAAAGCAC <4<<<%<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:1 UQ:i:4 H0:i:1 H1:i:1
+EAS114_26:1:171:527:247 163 seq2 1027 67 35M = 1194 202 AGAAGGAGTAGCTAGACTTATATCAGATAAAGCAC =4==4===8==99=&=8+9=19+.2.6'=99+999 MF:i:18 Aq:i:30 NM:i:1 UQ:i:5 H0:i:0 H1:i:3
+EAS1_105:1:234:185:359 163 seq2 1029 46 35M = 1183 189 AAGGAGTAGCTATACTTATATCAGATAAAGCACAC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;9--: MF:i:18 Aq:i:17 NM:i:0 UQ:i:0 H0:i:1 H1:i:11
+EAS51_66:3:155:375:623 83 seq2 1029 99 35M = 849 -215 AAGGAGTAGCTATACTTATATCAGATAAAGCACAC ;;;;<<:<<<<;<<;<<<<<<;<<;<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS139_19:5:4:939:2021 163 seq2 1031 99 40M = 1197 206 GGAGTAGCTATACTTATATCAGATAAAGCACACTTTAAAT <<<<<<<<<<<<<<<<<<<<<97<<<;<<;<7;<<:48:: MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:2 H1:i:2
+EAS220_1:2:50:513:882 163 seq2 1031 99 35M = 1192 196 GGAGTAGCTATACTTATATCAGATAAAGCACACTT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;;;; MF:i:18 Aq:i:23 NM:i:0 UQ:i:0 H0:i:2 H1:i:14
+EAS1_103:5:188:20:592 163 seq2 1032 95 35M = 1202 205 GAGTAGCTATACTTATATCAGATAAAGCACACTTT <<<<<<<<<<<<<<<<<<<<;;<<<<:<<<;<;;< MF:i:18 Aq:i:22 NM:i:0 UQ:i:0 H0:i:3 H1:i:16
+EAS114_45:3:35:896:1588 163 seq2 1032 91 35M = 1205 208 GAGTAGCTATACTTATATCAGATAAAGCACACTTT ;;;;;;;;;;;;;;;;;;;;8;;;;;8;;;88989 MF:i:18 Aq:i:21 NM:i:0 UQ:i:0 H0:i:3 H1:i:18
+EAS1_108:6:73:735:329 147 seq2 1035 99 35M = 868 -202 TAGCTATACTTATATCAGATAAAGCACACTTTAAA ;;;9;<<7<<<<<<<<<<<<<<<<<<<2<<<<<<< MF:i:18 Aq:i:39 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:7:133:514:754 83 seq2 1036 63 36M = 855 -217 AGCTATACTTATATCAGATAAAGCACACTTTAAATC ;;4;<;<;<<<<<<<<;<<<<<<;<<<<<<<<<<<< MF:i:18 Aq:i:19 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS218_1:4:62:561:531 163 seq2 1036 99 35M = 1203 202 AGCTATACTTATATCAGATAAAGCACACTTTAAAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+B7_593:6:119:428:415 83 seq2 1037 99 36M = 876 -197 GCTATACTTATATCAGATAAAGCACACTTTAAATCA 84<<<<;;<<<<<:<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:46 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS114_30:2:226:885:729 147 seq2 1037 98 35M = 867 -205 GCTGAACTTACATCAGATAAAGCACACTTTAAATC /*220%.(;<%<3.<<<4<<<<86;<8<<8<<<<< MF:i:18 Aq:i:30 NM:i:3 UQ:i:36 H0:i:0 H1:i:1
+EAS1_108:1:189:863:213 163 seq2 1039 99 35M = 1202 198 TATACTTATATCAGATAAAGCACACTTTAAATCAA <<<<<<<<<<<<<<<<<<<<;<<<;<<<<;7<9;< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+B7_597:4:146:961:63 83 seq2 1041 86 35M = 861 -215 TACTTATATCAGATAAAGCACACTTTAAATCAACA 7;;<<<<<;<<<7<<<<<<<<;;<<;<;<<;<<<7 MF:i:18 Aq:i:37 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:3:68:996:104 99 seq2 1041 70 35M = 1214 208 TACTTATATCAGATAAAGCACACTTTAAATCAACA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<< MF:i:18 Aq:i:21 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:6:47:1791:444 163 seq2 1041 74 35M = 1213 207 TACTTATATCAGATAAAGCACACTTTAAATCAACA ;3;;;;;;;;;;;;;;;;;;;;;;;;;;;877977 MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:4:1:156:196 147 seq2 1042 77 40M = 867 -215 ACTTATATCAGATAAAGCACACTTTAAATCAACAACAGTA :::::<<<<<<<<<<<<<4<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:8:70:1349:1788 163 seq2 1043 99 35M = 1203 195 ATTATATCAGATAAAGCACACTTTAAATCAACAAC &<8<<<85:580;<:0-><;>588>9<>7:<0<9; MF:i:18 Aq:i:30 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+B7_589:2:30:644:942 99 seq2 1045 83 35M = 1229 219 TATATCAGATAAAGCACACTTTAAATCAACAACAG <<<<<<<<<<<<<<<<<<<<<<<9<<<<<<9;<9< MF:i:18 Aq:i:22 NM:i:0 UQ:i:0 H0:i:1 H1:i:3
+B7_591:2:123:924:645 83 seq2 1045 84 36M = 861 -220 TATATCAGATAAAGCACACTTTAAATCAACAACAGT ;<<<<*<<<<<<</7<2<8<<<<<<<4<<<<<<<<< MF:i:18 Aq:i:11 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+B7_589:5:147:405:738 83 seq2 1048 99 35M = 870 -213 ATCAGATAAAGCACACTTTAAATCAACAACAGTAA <9/<:<<<<<<<<7</<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:24 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+EAS54_61:3:155:758:710 83 seq2 1048 98 35M = 859 -224 ATCAGATAAAGCACACTTTAAATCAACAACAGTAA =46=4=5===:========:=7=7======11=== MF:i:18 Aq:i:22 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+EAS54_73:7:254:572:431 83 seq2 1048 97 35M = 891 -192 ATCAGATAAAGCACACTTTAAATCAACAACAGTAA <63<;<;<<<:7<:<7;<:<<<<:<<<<7<<<<:< MF:i:18 Aq:i:22 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+EAS56_57:7:33:954:724 163 seq2 1049 97 35M = 1210 196 TCAGATAAAGCACACTTTAAATCAACAACAGTAAA ;<<<<<<<<<<<<<8<<<<:<;;<<;;<;<<;;;; MF:i:18 Aq:i:24 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+EAS56_63:6:102:816:260 99 seq2 1049 99 35M = 1225 211 TCAGATAAAGCACACTTTAAATCAACAACAGTAAA <<<<<<<<<;<<<<<<<<<<<<<<<<<<<<;;;;; MF:i:18 Aq:i:23 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+EAS192_3:5:197:914:256 99 seq2 1049 97 35M = 1204 190 TCAGATAAAGCACACTTTAAATCAACAACAGTAAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<8;::: MF:i:18 Aq:i:24 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+EAS56_65:4:150:94:843 147 seq2 1050 0 35M = 868 -217 CAGATACATCCCACTTTAAATCAACCACAGTAAAA 4<9<41*747*7<:9<:7:::<72;+<;::<7<<< MF:i:18 Aq:i:0 NM:i:4 UQ:i:47 H0:i:0 H1:i:0
+EAS1_108:5:321:712:224 163 seq2 1051 58 35M = 1220 204 AGATAAAGCACACTTTAAATCAACAACAGAAAAAT <<<<<<<<2<<<<<<<<<<<<<<<:<<<<(<<:<, MF:i:18 Aq:i:28 NM:i:1 UQ:i:7 H0:i:1 H1:i:2
+EAS114_32:3:236:475:254 83 seq2 1051 99 35M = 880 -206 AGATAAAGCACACTTTAAATCAACAACAGTAAAAT <:<<<<<;9<7<;<<<<<<<<<<9<<<<<<<<<<< MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_4:7:72:1288:1211 99 seq2 1052 84 35M = 1235 218 GATAAAGCACACTTTAAATCAACAACAGTAAAATA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+EAS54_65:2:264:157:150 99 seq2 1054 30 35M = 1238 219 TAAAGCACACTTTAAATCAACAACAGTAAAATAAA <<<<<<9<9<<<<.9;<<9&<97<;9933309605 MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+EAS1_95:7:310:800:761 163 seq2 1055 99 35M = 1249 229 AAAGCACACTTTAAATCAACAACAGTAAAATAAAA ===========================+======= MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:3:88:465:1877 99 seq2 1055 99 35M = 1212 192 AAAGCACACTTTAAATCAACAACAGTAAAATAAAA <<<<<<<<<<;<<<<<<<<<<<<<<<<7<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:7:66:891:294 163 seq2 1057 99 35M = 1233 211 AGCACACTTTAAATCAACAACAGTAAAATAAAACA <<<<<<<<<<<<<<<<<<<<<<<9<<<<<<;<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:3:100:735:530 163 seq2 1058 99 35M = 1257 234 GCACACTTTAAATCAACAACAGTAAAATAAAACAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:5:68:440:424 99 seq2 1060 99 35M = 1237 212 ACACTTTAAATCAACAACAGTAAAATAAAACAAAG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+EAS220_1:8:66:1046:167 99 seq2 1060 99 35M = 1241 216 ACACTTTAAATCAACAACAGTAAAATAAAACAAAG <<<<<:<<<<<<<<<<<<<9<;77<9<7<<;<9;- MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+EAS54_81:6:11:801:386 83 seq2 1061 97 35M = 868 -228 CACTATAAATCAACAACAGTAAAATAAAACAAAGG 5<2:$6<<<38<<<<;<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:1 UQ:i:3 H0:i:1 H1:i:1
+EAS114_28:2:141:7:963 163 seq2 1061 85 36M = 1240 215 CACTTTAAATCAACAACAGTAAAATAAAACAAAGGA <<<<<<<<<<<<;<:<<<<<<1<<&<;<;<<;,<;5 MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:2:55:296:1457 147 seq2 1061 99 35M = 884 -212 CACTTTAAATCAACAACAGTAAAATAAAACAAAGG -<%63<<<<<1<<<<<5<<<<<<<<<<<<<<<7<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS139_19:1:58:726:1746 83 seq2 1061 99 40M = 900 -201 CAATTTAAATCAACAACAGTAAAATAAAACAAAGGAGGTC &:&::;<<<76<<:<<6<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS221_1:8:15:881:1932 147 seq2 1061 92 35M = 886 -210 CACTTTAAATCAACAACAGTAAAATAAAACAAAGG )<4<<<<<<<4<<4<<4<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS1_95:5:284:212:932 99 seq2 1063 10 35M = 1257 229 CTTTAAATCAACAACAATAAAAAAAAACAAAGGAG <<9<<<<<<<<<<<<<&&<<<<5<<<<8<<<1:<: MF:i:18 Aq:i:0 NM:i:2 UQ:i:25 H0:i:0 H1:i:0
+EAS139_19:4:18:1335:1514 99 seq2 1063 99 40M = 1235 212 CTTTAAATCAACAACAGTAAAATAAAACAAAGGAGGTCAT <<<;<<<<<<<<<<<<<<<;<:<<;<<<<<<;<;<;;;9; MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:6:273:424:207 83 seq2 1066 99 35M = 891 -210 TAAATCAACAACAGTAAAATAAAACAAAGGAGGTC ;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:62 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:7:62:1076:540 147 seq2 1066 99 35M = 882 -219 TAAATCAACAACAGTAAAATAAAACAAAGGAGGTC 6<<;:+=====5=:6===================2 MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:8:113:856:319 83 seq2 1067 99 33M = 884 -216 AAATCAACAACAGTAAAATAAAACAAAGGAGGT <<<77<<:<<;<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:8:19:929:765 147 seq2 1069 98 35M = 919 -185 ATCAACAACAGTAAAATAAAACAAAGGAGGTCATC <3+<<;<<;<<<<<<<<<<<;<<<<<<<<<<<<<< MF:i:18 Aq:i:27 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:1:88:54:900 163 seq2 1069 68 35M = 1257 223 ATCAACAACAGAAAAATAAAACAAAGGAGGTCATC .....&.....,....................... MF:i:18 Aq:i:19 NM:i:1 UQ:i:11 H0:i:0 H1:i:1
+EAS56_63:7:109:22:383 163 seq2 1071 99 35M = 1244 208 CAACAACAGTAAAATAAAACAAAGGAGGTCATCAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<;:<<;<< MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:8:4:571:820 83 seq2 1071 99 35M = 891 -215 CAACAACAGTAAAATAAAACAAAGGAGGTCATCAT &<<7<<1<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:6:255:441:47 99 seq2 1072 99 35M = 1237 200 AACAACAGTAAAATAAAACAAAGGAGGTCATCATA <<<<<<<<<<<<<<<<<<<<<<<<<<<<6<;:<;< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:3:66:718:481 147 seq2 1072 99 40M = 891 -221 AACAACAGTAAAATAAAACAAAGGAGGTCATCATACAATG ::5::1<;;<<<<<<1<<<<<<<<<<<<7<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:1:155:807:19 147 seq2 1074 99 35M = 867 -242 CAACAGTAAAATAAAACAAAGGAGGTCATCATACA :==4=5:====:============:========== MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:3:43:1229:1855 163 seq2 1074 99 35M = 1244 205 CAACAGTAAAATAAAACAAAGGAGGTCATCATACA <<<<<<<<<<<<<<<<<<<<<<<<<4<<<<<<<<< MF:i:18 Aq:i:48 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:2:125:875:553 99 seq2 1075 99 36M = 1233 194 AACAGTAAAATAAAACAAAGGAGGTCATCATACAAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<;<; MF:i:18 Aq:i:53 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:7:118:775:467 163 seq2 1075 99 35M = 1245 205 AACAGTAAAATAAAACAAAGGAGGTCATCATACAA <<<<<<<<<<<<<<<<<<<<<<<<;<<<<<<<<<; MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:2:301:161:195 99 seq2 1076 75 35M = 1239 198 ACAGTAAAATAAAACAAAGGAGGTCATCATACAAT <<<<<<<<<<<<<<<<<<<<<<<;<<<<<<:<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:6:54:695:952 99 seq2 1076 99 35M = 1264 223 ACAGTAAAATAAAACAAAGGAGGTCATCATACAAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:1:77:589:741 163 seq2 1078 99 35M = 1263 220 AGTAAAATAAAACAAAGGAGGTCATCATACAATGA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<:< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:3:200:263:280 163 seq2 1078 99 35M = 1236 193 AGTAAAATAAAACAAAGGAGGTCATCATACAATGA <<<<<<<<<<<<<<<<<<<<;<<<<<<<<<;8<;1 MF:i:18 Aq:i:62 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:5:64:199:1288 99 seq2 1079 77 35M = 1240 196 GTAAAATAAAACAAAGGAGGTCATCATACAATGAT <<<<<<<<<<<<<<;<<<<<<<<<<<<<<;<<<;< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:8:27:228:31 99 seq2 1082 99 35M = 1264 217 AAATAAAACAAAGGAGGTCATCATACAATGATAAA <<<<<<<<<<<<<<<<<;9<:;<<<<<<75<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:5:214:644:390 83 seq2 1082 72 35M = 919 -198 AAATAAAACAAAGGAGGTCATGATACAATGATAAA <<<;<<<<<<<<<<<<<<<<<&<<<<<<<<<<<<< MF:i:18 Aq:i:27 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+EAS114_45:2:79:554:354 99 seq2 1082 63 35M = 1242 195 AAATAAAACAAAGGAGGTCATCATACAATGATAAA 17;<;;+<<;;;;93;;:;3;;;;1;;;;<77744 MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:5:303:542:924 163 seq2 1083 76 35M = 1242 194 AATAAAACAAAGGAGGTCATCATACAATGATAAAA <<<;<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<; MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:8:26:242:35 99 seq2 1084 99 35M = 1251 202 ATAAAACAAAGGAGGTCATCATACAATGATAAAAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<<<<; MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:5:163:832:715 83 seq2 1085 99 36M = 918 -203 TAAAACAAAGGAGGTCATCATACAATGATAAAAAGA ;<<<<9<<<<<<<<;;<<7<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:1:98:641:1040 83 seq2 1085 99 35M = 907 -213 TAAAACAAAGGAGGTCATCATACAATGATAAAAAG 4<<<<7<<<<<<<<<:<<;<;<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:7:32:562:1695 99 seq2 1085 76 35M = 1258 208 TAAAACAAAGGAGGTCATCATACAATGATAAAAAG <<<<<<<<<<<<<<8<<<<<:<<<<<<<:<8<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:7:6:758:988 163 seq2 1087 99 35M = 1253 201 AAACAAAGGAGGTCATCATACAATGATAAAAAGAT 3+;0;0;;;0;;;;;;5;;;9;;;;90;;;57560 MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:5:273:545:1001 83 seq2 1088 99 35M = 913 -210 AACAAAGGAGGTCATCATACAATGATAAAAAGATC <7(<<72;<2;27<;:<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:2:74:656:272 163 seq2 1088 99 35M = 1245 192 AACAAAGGAGGTCATCATACAATGATAAAAAGATC <<<<<<<<<<<<<<<<<<<<<<<<;<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:5:198:564:731 83 seq2 1089 99 35M = 898 -226 ACAAAGGAGGTCATCATACAATGATAAAAAGATCA <6<;<<<<<<:7<<;<<<8<<+<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:6:23:885:274 99 seq2 1089 99 35M = 1289 235 ACAAAGGAGGTCATCATACAATGATAAAAAGATCA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<4<;;< MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:7:22:632:176 83 seq2 1091 99 36M = 894 -233 AAAGGAGGTCATCATACAATGATAAAAAGATCAATT <9<<<<<<<-;<;<<7;6;<<<<<<<<<;<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:2:184:980:396 83 seq2 1092 99 35M = 923 -204 AAGGAGGTCATCATACAATGATAAAAAGATCAATT <<;;<77;;<<;<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:3:110:984:98 99 seq2 1092 99 36M = 1270 214 AAGGAGGTCATCATACAATGATAAAAAGATCAATTC 98<<<<<<2<<<<<<;;<;;<<<5;5;<<;;<<<<+ MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:1:202:341:984 147 seq2 1094 99 35M = 926 -203 GGAGGTCATCATACAATGATAAAAAGATCAATTCA <<<(<8&<92<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:7:219:40:833 163 seq2 1094 99 35M = 1278 219 GGAGGTCATCATACAATGATAAAAAGATCAATTCA <<<<<<<<<<<<<<<<<<<<;<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:7:23:1126:1886 99 seq2 1094 99 35M = 1268 209 GGAGGTCATCATACAATGATAAAAAGATCAATTCA 7<<<7<<<<<<<<7<<<<<<<<<<<<<;8<;<<5< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:3:85:964:950 83 seq2 1095 99 35M = 910 -220 GAGGTCATCATACAATGATAAAAAGATCAATTCAG <<8::<<;;<<<;<<6<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:7:139:578:951 83 seq2 1095 98 35M = 919 -211 GAGGTCATCATACAATGATAAAAAGATCAATTCAG ;<0;:&<:9<<<7<<<<<<<<<<<<<<;<<<<<<< MF:i:18 Aq:i:26 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_53:3:107:738:484 147 seq2 1097 75 35M = 926 -206 GGTCATCATACAATGATAAAAAGATCAATTCAGCA .8/<<<7<8<<<<<<<<<<<<<<<<9<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS114_39:4:93:77:1338 83 seq2 1098 10 35M = 940 -193 GTCATCATACAATGAAAAAAAGATCAATTCAGCAA <<7<7<<<<<1<7<<&97;;<1<;1<<7<;7<<;< MF:i:18 Aq:i:0 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+B7_610:8:68:570:705 147 seq2 1100 99 35M = 910 -225 CATCATACAATGATAAAAAGATCAATTCAGCAAGA 4<;4<;;:<<<<<<<<;<<<<<<<<<<<<<<<<;< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:3
+EAS51_62:1:38:250:647 83 seq2 1100 71 35M = 933 -202 AATAATAAAATGATAAAAAGATCAATTCAGCAAGA +<&+<1<,<<7<<7<<<<<<<1,<<<<7<<2<<<< MF:i:18 Aq:i:0 NM:i:3 UQ:i:34 H0:i:0 H1:i:3
+EAS1_93:8:13:325:483 83 seq2 1101 99 35M = 919 -217 ATCATACAATGATAAAAAGATCAATTCAGCAAGAA ;:;<;=:========;==========;======== MF:i:18 Aq:i:27 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:1:128:584:952 163 seq2 1101 99 35M = 1277 211 ATCATACAATGATAAAAAGATCAATTCAGCAAGAA <<<<<<<<<<<<<<+<;<<<<<<;<<<;<<<+<66 MF:i:18 Aq:i:61 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:4:184:237:476 83 seq2 1101 99 35M = 925 -211 ATCATACAATGATAAAAAGATCAATTCAGCAAGAA <;2<;<4<<;<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:4
+EAS51_64:6:300:622:86 163 seq2 1102 99 35M = 1264 197 TCATACAATGATAAAAAGATCAATTCAGCAAGAAG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<:<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:7:57:1114:2032 147 seq2 1102 99 35M = 931 -206 TATTACAATGATAAAAAGATCAATTCAGCAAGAAG ;+!5<4<<<<<<<<<<<<<;<&<;7<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:2 UQ:i:10 H0:i:1 H1:i:6
+B7_593:3:310:193:629 163 seq2 1103 99 36M = 1267 200 CATACAATGATAAAAAGATCAATTCAGCAAGAAGAT <<<<<<<<<<<<<<<<<<<<<;<<<<<<<<<<<<<; MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:2:6:529:366 99 seq2 1103 99 35M = 1291 223 CATACAATGATAAAAAGATCAATTCAGCAAGAAGA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:2:10:686:1024 83 seq2 1103 99 35M = 947 -191 CATACAATGATAAAAAGATCAATTCAGCAAGAAGA &<<<3<<<<<<<<<<<<<<7<<<<<<<<<<7<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:3
+EAS114_45:7:14:978:1296 163 seq2 1104 90 35M = 1249 180 ATACAATGATAAAAAGATCAATTCAGCAAGAAGAT ;6;;;;;;;;;;;:;;;;;;;6;;;;;;;;77777 MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:5
+EAS56_57:2:237:855:581 99 seq2 1105 87 35M = 1271 201 TACAATGATAAAAAGATCAATTCAGCAAGAAGATA <;4<7<<<;47<<74<:*<<2:<<7.799:2<<9: MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:4
+EAS139_19:7:85:262:751 163 seq2 1105 99 40M = 1305 240 TACAATGATAAAAAGATCAATTCAGCAAGAAGATATAACC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<:::92 MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:6:10:106:737 83 seq2 1106 99 35M = 947 -194 ACAATGATAAAAAGATCAATTCAGCAAGAAGATAT <-<<;<<<<<<<<<<<;<<<<;<<;<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:6
+B7_610:6:143:620:158 163 seq2 1107 99 35M = 1283 211 CAATGATAAAAAGATCAATTCAGCAAGAAGATATA <<<<<<<<<<;<<<<<<<<<<<<<<<<<<<<<;<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:3
+EAS54_67:6:198:503:669 147 seq2 1107 99 35M = 912 -230 CAATGATAAAAAGATCAATTCAGCAAGAAGATATA 5<<:<<;<<<<<<<;;<<9<<<<<<<<;<<<<;<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+EAS192_3:6:116:464:261 147 seq2 1107 99 35M = 934 -208 CAATGATAAAAAGATCAATTCAGCAAGAAGATATA ;<<;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+EAS54_73:5:263:557:988 99 seq2 1108 84 35M = 1289 216 AATGATAAAAAGATCAATTCAGCAAGAAGATATAA <<<<<<<<<<<<<<<<<<<<<;;<<<<<<<<;<<< MF:i:18 Aq:i:18 NM:i:0 UQ:i:0 H0:i:1 H1:i:8
+EAS139_19:1:53:463:1132 83 seq2 1109 99 40M = 915 -234 ATGATAAAAAGATCAATTCAGCAAGAAGATATAACCATCC ;::;:<<<<<<<<:<<;<<<<8<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:8:46:1528:799 99 seq2 1109 96 35M = 1306 232 ATGATAAAAAGATCAATTCAGCAAGAAGATATAAC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<< MF:i:18 Aq:i:19 NM:i:0 UQ:i:0 H0:i:1 H1:i:7
+EAS54_81:7:324:472:791 99 seq2 1110 89 35M = 1274 199 TGATAAAAAGATCAATTCAGCAAGAAGATATAACC <<<<<<<<:<<<<<<<<<<<<<<:<<<<<<<<<:3 MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:3
+EAS54_61:8:4:173:814 163 seq2 1111 99 35M = 1289 213 GATAAAAAGATCAATTCAGCAAGAAGATATAACCA =====================<==========;== MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:4
+B7_593:3:303:131:673 83 seq2 1112 99 36M = 947 -201 ATAAAAAGATCAATTCAGCAAGAAGATATAACCATC <;<<<<<<<<:<<<<;<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:4:235:899:847 147 seq2 1112 99 35M = 950 -197 ATAAAAAGATCAATTCAGCAAGAAGATATAACCAT <7<<<<<<<<:<<<<:<</<<<<<<<<<<<<<<<< MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+EAS1_105:8:179:119:876 83 seq2 1112 60 35M = 917 -230 ATAAAAAGATCAATTCAGCAAGAAGATATAACCAT <<<<<<<7<<<<<<;;<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+EAS56_59:2:162:272:415 147 seq2 1112 83 35M = 923 -224 ATAAAAAGATCAATTCAGCAAGAAGATATAACCAT =7=======;5==<<6==1==<============= MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+EAS114_45:6:44:77:1255 83 seq2 1113 99 35M = 955 -193 TAAAAAGATCAATTCAGCAAGAAGATATAACCATC 79998;;;9:;<696<;.<;;<<;<;<;<;;;<8; MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:2:162:257:203 163 seq2 1114 99 35M = 1301 222 AAAAAGATCAATTCAGCAAGAAGATATAACCATCC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:3:55:464:146 99 seq2 1114 99 35M = 1295 216 AAAAAGATCAATTCAGCAAGAAGATATAACCATCC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:6:308:667:658 147 seq2 1116 34 35M = 918 -233 AAAGATCACTTCAGCAATAAGATATAACCATCCTA <9;;;45;&<;&.<5683;84+<;<;+8<;<<8;< MF:i:18 Aq:i:10 NM:i:2 UQ:i:23 H0:i:0 H1:i:0
+EAS56_57:4:98:862:154 163 seq2 1116 99 35M = 1290 209 AAAGATCAATTCAGCAAGAAGATATAACCATCCTA <<<<<<<<<<<<<<<<<<<<<<<<<<<<9<:99<; MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+EAS56_61:5:263:314:696 83 seq2 1117 99 35M = 953 -199 AAGATCAATTCAGCAAGAAGATATAACCATCCTAC <<;<;:<<<<7<<:<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:8:83:1456:1854 163 seq2 1117 99 35M = 1275 193 AAGATCAATTCAGCAAGAAGATATAACCATCCTAC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<2< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:4:231:815:626 83 seq2 1119 99 35M = 940 -214 GATCAATACAGCAAGAAGATATAACCATCCTACTA '<4%<<<22<<,<<;<<4;<<<<<<<<<<<<<<7< MF:i:18 Aq:i:41 NM:i:1 UQ:i:17 H0:i:0 H1:i:1
+EAS114_32:4:246:647:765 83 seq2 1119 99 35M = 937 -217 GATCAATTCAGCAAGAAGATATAACCATCCTACTA 9<+,<<&,39<,<;<<<<<<<&<<<<;0<<3;<<< MF:i:18 Aq:i:62 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:7:256:354:173 83 seq2 1121 99 36M = 957 -200 TCAATTCAGCAAGAAGATATAACCATCCTACTAAAT -9<<:9<<;6<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:5:53:61:31 83 seq2 1122 99 35M = 949 -208 CAATTCAGCAAGAAGATATAACCATCCTACTAAAT 5;;<95<<5<<<<<<<<<<:5;<<<<<<<<<<<<< MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:3:308:509:948 99 seq2 1123 99 36M = 1298 211 AATTCAGCAAGAAGATATAACCATCCTACTAAATAC <9<<<<<<<;<7<<;<<<<<<<;<<<<7<<;2;<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:2:247:900:123 147 seq2 1123 99 35M = 920 -238 AATTCAGCAAGAAGATATAACCATCCTACTAAATA ;;;;.<<4<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:3:307:113:346 83 seq2 1123 99 35M = 938 -220 AATTCAGCAAGAAGATATAACCATCCTACTAAATA <<<<9<<1<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:1:168:69:249 83 seq2 1125 99 35M = 936 -224 TTCAGCAAGAAGATATAACCATCCTACTAAATACA ;0;<;;<<<<<<<<<<<<<;<<<8<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:2:54:1886:719 147 seq2 1125 99 35M = 941 -219 TTCAGCAAGAAGATATAACCATCCTACTAAATACA 883777;;:;;;;;;;;;;;;;;;;;;;;;;;;;; MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:7:94:273:165 147 seq2 1128 99 35M = 945 -218 AGAAAGAAGATATAACCATCCTACTAAATACATAT ;3&;;:<<:<-<-<<8:<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS1_95:7:155:530:532 163 seq2 1128 99 35M = 1319 226 AGCAAGAAGATATAACCATCCTACTAAATACATAT =================================== MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:5:61:1885:163 163 seq2 1128 99 40M = 1281 193 AGCAAGAAGATATAACCATCCTACTAAATACATATGCACC <<<<<<<<<<<<<<<<<;<<<<<<<<<<<<<<<<9::::4 MF:i:18 Aq:i:79 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:6:193:661:771 83 seq2 1129 99 35M = 952 -212 GCAAGAAGATATAACCATCCTACTAAATACATATG :&<<<<<<<<<<<<<;<<<;<<;<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:6:75:1503:1399 83 seq2 1130 99 40M = 969 -201 CAAGAAGATATAACCATCCTACTAAATACATATGCACCTA &;;8;<<<;<<<<,6<<70<<7<<<<<<9<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:2:42:28:552 163 seq2 1131 99 35M = 1294 198 AAGAAGATATAACCATCCTACTAAATACATATGCA <<<<<<<<<<<<<<<<<<<<<<<<;<;<3<:;9;8 MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:4:61:631:567 147 seq2 1131 99 35M = 957 -209 AAGAAGATATAACCATCCTACTAAATACATATGCA <<7<<<<<<<<</<<;<;<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:3:257:288:731 147 seq2 1131 99 35M = 939 -227 AAGAAGATATAACCATCCTACTAAATACATATGCA <<:<<7<<<<<;<5<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:2:214:950:32 83 seq2 1132 99 35M = 947 -220 AGAAGATATAACCATCCTACTAAATACATATGCAC =&==4======:;==6<==:=============== MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:1:12:88:200 83 seq2 1133 99 35M = 968 -200 GAAGATATAACCATCCTACTAAATACATATGCACC 9<<;<<<;<;6;<;:<<<7<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:5:256:444:399 163 seq2 1133 99 35M = 1289 191 GAAGATATAACCATCCTACTAAATACATATGCACC <<<<<<<<<<<<<<<<<<<<<<<<<;;<<<-;<<8 MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:4:174:753:617 99 seq2 1136 75 35M = 1299 198 GATATAACCATCCTACTAAATACATATGCACCTAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<;;<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:1:115:226:443 99 seq2 1137 99 35M = 1314 212 ATATAACCATCCTACTAAATACATATGCACCTAAC <<<<<<<<<<<<<<<<;<<<<<<<<<<<<;<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:3:26:1867:162 163 seq2 1137 70 35M = 1299 197 ATATAACCATCCTACTAAATACATATGCACCTAAC ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;78698 MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:3:308:66:538 99 seq2 1138 99 35M = 1321 218 TATAACCATCCTACTAAATACATATGCACCTAACA <<<<<<<<<<<<<<<<<<<<<<<<<;<<<<<<<;< MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:3:229:543:583 147 seq2 1139 99 35M = 976 -198 ATAACCATCCTACTAAATACATATGCACCTAACAC </<;+5<855;<6<<<<;<<<<<<9<<<<<<<<<< MF:i:18 Aq:i:65 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:1:17:595:863 163 seq2 1139 89 35M = 1289 185 ATAACCATCCTACTAAATACACATGCACCTAACTC :<4:<<1:<<<9<+<+1<%<7&&9-71<17)7</4 MF:i:18 Aq:i:33 NM:i:2 UQ:i:19 H0:i:0 H1:i:1
+EAS51_62:7:248:17:435 147 seq2 1139 99 35M = 969 -205 ATAACCATCCTACTAAATACATATGCACCTAACAC <1<<88++<:<<:;<;<<<:<<<;<<<<<<<<<<< MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:6:35:186:412 99 seq2 1139 99 35M = 1306 202 ATAACCATCCTACTAAATACATATGCACCTAACAC <<<<<<<<4<<<<<:<<<<<<:<<<<<<<<<;;<: MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:2:307:252:632 83 seq2 1142 99 35M = 998 -179 ACCATCCTGCTAAATACATATGCACCTAACACAAG <77<;,5<,9<<<<<<;<<<<<7<;<<<<<<<<<< MF:i:18 Aq:i:43 NM:i:1 UQ:i:11 H0:i:0 H1:i:1
+EAS1_108:7:108:440:208 147 seq2 1142 99 35M = 975 -202 CCCATCCTACTAAATACATATGCACCTAACACAAG +35:486<<4<<<<<<<<<<<-<<<<<7<<)<<<- MF:i:18 Aq:i:43 NM:i:1 UQ:i:12 H0:i:1 H1:i:0
+EAS1_95:7:74:866:49 83 seq2 1143 99 35M = 969 -209 CCAACCTACTAAATACATATGCACCTAACACAAGA :8<&<<<<7<<<<:<<<<<<8<5<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS54_61:2:66:757:918 83 seq2 1143 99 35M = 985 -193 CCATCCTACTAAATACATATGCACCTAACACAAGA <9<45;<<7<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:5:220:733:736 147 seq2 1143 99 35M = 959 -219 CCATCCTACTAAATACATATGCACCTAACACAAGA :;<77;<<9<<<<<9;<<<<<<;<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:6:175:289:351 99 seq2 1144 99 35M = 1319 210 CATCCTACTAAATACATATGCACCTAACACAAGAC <<<<<<<<<<;<<<<<<<<;<<<<<<<<<<<9<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:2:56:155:49 147 seq2 1145 99 35M = 970 -210 ATCCTACTAAATACATATGCACCTAACACAAGACT ;:5;;<5<<<<<<<<<<<<<<<<<<<<<<<<<<<= MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:5:299:336:613 99 seq2 1145 99 35M = 1293 183 ATCCTACTAAATACATATGCACCTAACACAAGACT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:4:30:432:228 83 seq2 1145 99 35M = 967 -213 ATCCTACTAAATACATATGCACCTAACACAAGACT <76<<<:<<<<<<<;<:<<<<<:<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:5:93:312:331 83 seq2 1145 99 35M = 953 -227 ATCCTACTAAATACATATGCACCTAACACAAGACT <;;:;<6<<<<;<:<<<<<<<:<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:3:133:707:886 147 seq2 1146 99 35M = 978 -203 ACCTAATAAATACATATGCACCTAACACAAGACTA %5-2;&6<<<<<;<<<<<<<;<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:2 UQ:i:9 H0:i:1 H1:i:0
+EAS51_62:3:50:312:219 163 seq2 1146 99 35M = 1288 177 TCCTACTAAATACATATGCACCTAACACAAGACTA <<<<<<<<<<<;<<<<<;<;<<<;<<<<<<;;;;; MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:1:82:670:302 147 seq2 1146 99 35M = 973 -208 TCCTACTAAATACATATGCACCTAACACAAGACTA %448<7<<<<<<7<<<<<&<<7<<<<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:2:47:591:698 99 seq2 1146 99 35M = 1313 202 TCCTACTAAATACATATGCACCTAACACAAGACTA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<:<<<< MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_53:8:122:430:882 99 seq2 1147 99 35M = 1338 226 CCTACTAAATACATATGCACCTAACACAAGACTAC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<:; MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:4:46:1566:668 83 seq2 1148 99 35M = 959 -224 CTACTAAATACATATGCACCTAACACAAGACTACC 5<<:<<<<<<<<<<<<:<:<<<<<<<<<<<<<<<< MF:i:18 Aq:i:78 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:4:92:411:955 147 seq2 1149 99 36M = 979 -206 TACTAAATACATATGCACCTAACACAAGACTACCCA 2<+<<<<9<<<<<<<;+<;<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:2:96:419:327 99 seq2 1149 99 35M = 1331 217 TACTAAATACATATGCACCTAACACAAGACTACCC <<<<<<<<<<<<<<<<<<<<<<;<<<<<<<;;9<9 MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:7:20:1444:328 147 seq2 1149 99 35M = 993 -191 TACTAAATACATATGCACCTAACACAAGACTACCC 9<3<<==;=<===;=<=====<<===========< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:4:198:59:675 163 seq2 1150 99 35M = 1315 200 ACTAAATACATATGCACCTAACACAAGACTATCCT <.<<<<<<;<<<<<<<<<<<**<;<;2<;6;&*2& MF:i:18 Aq:i:45 NM:i:2 UQ:i:10 H0:i:1 H1:i:0
+EAS54_61:7:114:506:971 83 seq2 1150 99 35M = 986 -199 ACTAAATACATATGCACCTAACACAAGACTACCCA ;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:2:94:356:809 163 seq2 1151 99 35M = 1334 218 CTAAATACATATGCACCTAACACAAGACTACCCAG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<:; MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:3:155:541:234 163 seq2 1151 99 35M = 1319 203 CTAAATACATATGCACCTAACACAAGACTACCCAG <<7<<<<<<<<<<<<<<<4<<<<<<<<<<<;;;08 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_32:7:272:328:400 83 seq2 1151 99 35M = 977 -209 CTAAATACATATGCACCTAACACAAGACTACCCAG 4;<<<<<7<;<<<-<;<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:7:283:186:707 163 seq2 1154 99 36M = 1321 203 AATACATATGCACCTAACACAAGACTACCCAGATTC <<<<<<<<<<<<<<<<<<<<<<;<<<<<;<;<<<<8 MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_61:4:86:660:932 99 seq2 1154 99 35M = 1338 219 AATACATATGCACCTAACACAAGACTACCCAGATT ================================9:= MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:6:264:705:89 147 seq2 1155 99 35M = 983 -207 AAACATATGCACCTAACACAAGACTACCCAGATTC <(<2<&<)<<<7<8<<<<<<<<<<.<<<<<<<<<< MF:i:18 Aq:i:54 NM:i:1 UQ:i:7 H0:i:1 H1:i:0
+EAS114_32:4:5:396:292 83 seq2 1155 99 35M = 981 -209 ATACATATGCACCTAACACAAGACTACCCAGATTC <:<6<7<:<:;;;<<<;<7<<<<<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:6:178:342:866 163 seq2 1155 72 35M = 1311 191 ATACATATGCACCTAACACAAGACTACCCAGATTC ;<<<<<;<<<8<<;<;<3<8/<<<<6<<</<8;<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:1:155:809:543 163 seq2 1156 99 35M = 1352 231 TACATATGCACCTAACACAAGACTACCCAGATTCA <<<<<<<<<<<<<<<<7<;<<<<<<<<<<<1<;<; MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:1:119:880:781 99 seq2 1157 99 35M = 1312 190 ACATATGCACCTAACACAAGACTACCCAGATTCAT <<<<<<<<<<<<<<<<<<<<<<<<+<<<<7<<<<< MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:6:283:963:234 147 seq2 1157 99 35M = 992 -200 ACATATGCACCTAACACAAGACTACCCAGATTCAT <5<;<;97;;:;<<7<;<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:1:28:745:352 99 seq2 1159 99 35M = 1329 205 ATATGCACCTAACACAAGACTACCCAGATTCATAA <<<<<9<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:8:147:687:428 147 seq2 1159 99 35M = 998 -196 ATATGCACCTAACACAAGACTACCCAGATTCATAA ;1<''48;4)<<:<<<<;<<6;<<<<<<<<<<<<< MF:i:18 Aq:i:36 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_53:3:101:809:776 99 seq2 1160 99 35M = 1326 201 TATGCACCTAACACAAGACTACCCAGATTCATAAA <<<<<<<<<<<<<<<<<<<<<<<<<:<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:7:35:538:1882 163 seq2 1160 98 35M = 1337 212 TATGCACCTAACACAAGACTACCCAGATTCATAAA ;);43.50;3;93;;4;3;;;9-7.;*;;966*75 MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:7:41:34:211 83 seq2 1164 99 35M = 980 -219 CACCTAACACAAGACTACCCAGATTCATAAAACAA 7</::<<7<<<<<<;<<<<;<<<<<<<<<<<<<<< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:1:2:1422:1820 83 seq2 1164 99 35M = 1004 -195 CACCTAACACAAGACTACCCAGATTCATAAAACAA *4617;;4;1;;79;/7&,4;9;;;7<;;<<<;<< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:6:194:998:663 83 seq2 1165 99 35M = 1002 -198 ACCTAACACAAGACTACCCAGATTCATAAAACAAA ;</<<<7<<<<;<<8<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:8:10:975:766 83 seq2 1166 99 35M = 959 -242 AATAACACAAGACTACCCAGATTCATAAAACAAAT ++4<<+<+<<<<8<<22;<<<<<2<<<<<<<<<<< MF:i:18 Aq:i:64 NM:i:2 UQ:i:24 H0:i:1 H1:i:0
+EAS114_39:6:94:1273:1462 83 seq2 1166 99 35M = 995 -206 CCTAACACAAGACTACCCAGATTCATAAAACAAAT 8.<<<;<:<<<<;<<;;;<<<;<;<;<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:8:64:350:174 83 seq2 1166 99 35M = 1000 -201 CCTAACACAAGACTACCCAGATTCATAAAACAAAT 709<<;<;<<<<<<<;7<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:7:166:84:766 83 seq2 1167 99 35M = 990 -212 ATAACACAAGACTACCCAGATTCATAAAACAAATA %8<=+<-<<<</<<<<8<<<<<;<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+EAS1_108:2:85:580:481 163 seq2 1167 99 35M = 1359 227 CTAACACAAGACTACCCAGATTCATAAAACAAATA <<<<<<<<<<<<<:<<<<<<<<<<<<;<<<<6:<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:4:191:40:536 83 seq2 1167 66 35M = 977 -225 ATAAAAAAAGACTACCCAGATTCATAAAACAAATA +1<<,<&<<:<.;<7/7<<<<;.<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:3 UQ:i:27 H0:i:1 H1:i:0
+EAS218_1:2:40:1291:1045 147 seq2 1167 99 35M = 980 -222 CTAACACAAGACTACCCAGATTCATAAAACAAATA *<<<9<<<<<<:0<9<<<<<<<;<<<<<<<<<<<< MF:i:18 Aq:i:39 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:3:221:881:916 99 seq2 1168 96 35M = 1327 194 TAACACAAGACTACCCAGATTCATAAAACAAATAC <<;<<8<<;<<<<<<<;<<<<28<:<8<:;<;;;< MF:i:18 Aq:i:24 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:7:35:392:2042 163 seq2 1168 99 35M = 1332 199 TAACACAAGACTACCCAGATTCATAAAACNAATAC ======;==========<<=======7=;!<7;;; MF:i:18 Aq:i:72 NM:i:1 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:4:192:714:341 163 seq2 1170 99 35M = 1346 211 ACACAAGACTACCCAGATTCATAAAACAAATACTA <<9<<<<<<<<<<<8<<<<<;<<;8<<<88;;;;9 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:1:189:876:833 163 seq2 1173 99 36M = 1349 212 CAAGACTACCCAGATTCATAAAACAAATACTACTAG <<<<<<<<<<<8<8<<<<<;<;;<<;<<<<<;<<<6 MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:5:299:743:762 163 seq2 1173 99 36M = 1345 208 CAAGACTACCCAGATTCATAAAACAAATACTACTAG <<<;<<<<<<<<<:;<<<.<:<<<<<<<<<<;;;;; MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:6:107:252:533 83 seq2 1173 60 35M = 1025 -183 CAAGACTACCCAGATTCATAAAACAAATACTACTA 3<<<<+<<96<<<<<<;<<<<<<;<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:2 H1:i:1
+EAS1_97:5:154:952:558 147 seq2 1173 99 35M = 1007 -201 AAAGACTACCCAGATTCATAAAACAAATACTACTA %<<9;;<<;;;<<<<<;<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+EAS56_63:4:184:659:377 147 seq2 1173 99 35M = 992 -216 CAAAACTACCCAGATTCATAAAACAAATACTACTA 1;<+<;<6;66<<;<<<<;;<<<8<<<<8<<;<<< MF:i:18 Aq:i:70 NM:i:1 UQ:i:10 H0:i:1 H1:i:0
+B7_595:6:137:811:130 163 seq2 1175 99 35M = 1351 211 AGACTACCCAGATTCATAAAACAAATACTACTAGA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<9;;; MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:4:124:367:72 163 seq2 1175 99 35M = 1377 237 AGACTACCCAGATTCATAAAACAAATACTACTAGA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;; MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:8:60:358:494 147 seq2 1179 44 35M = 979 -235 TACCCAGATTCATAAAACAAATACTACTAGACCTA 7<77;<<<<<;<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:14 NM:i:0 UQ:i:0 H0:i:6 H1:i:36
+EAS114_30:7:319:11:255 163 seq2 1179 92 35M = 1337 193 TACCCAGATTCATAAAACAAATACTACTAGACCTA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<:<: MF:i:18 Aq:i:17 NM:i:0 UQ:i:0 H0:i:1 H1:i:10
+B7_610:7:26:749:174 99 seq2 1183 78 35M = 1357 209 CAGATTCATAAAACAAATACTACTAGACCTAAGAG <<<<<<<<<<<<<<<<<<<<<<;<9<8<<<9<;94 MF:i:18 Aq:i:11 NM:i:0 UQ:i:0 H0:i:6 H1:i:31
+EAS1_103:7:112:578:782 99 seq2 1183 89 35M = 1366 218 CAGATTCATAAAACAAATACTACTAGACCTAAGAG <;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<7<<< MF:i:18 Aq:i:20 NM:i:0 UQ:i:0 H0:i:5 H1:i:25
+EAS1_105:1:234:185:359 83 seq2 1183 46 35M = 1029 -189 CAGATTCATAAAACAAATACTACTAGACCTAAGAG <<4<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:17 NM:i:0 UQ:i:0 H0:i:1 H1:i:9
+EAS112_34:4:92:412:435 147 seq2 1184 89 35M = 1003 -216 AGATTCATAAAACAAATACTACTAGACCTAAGAGG <;<52:=,====:=========<============ MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:6:24:105:1046 99 seq2 1184 99 35M = 1377 228 AGATTCATAAAACAAATACTACTAGACCTAAGAGG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:4 H1:i:2
+EAS1_97:2:128:629:484 163 seq2 1185 96 35M = 1359 209 GATTCATAAAACAAATACTACTAGACCTAAGAGGG <<49<<<<<9<<<<99<<<<<<<<<<<<+<-)7)) MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:4 H1:i:45
+EAS219_FC30151:1:53:140:421 83 seq2 1185 99 35M = 1016 -204 GATTCATAAAACAAATACTACTAGACCTAAGAGGG <<<<:<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:48 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:6:99:557:427 163 seq2 1186 99 35M = 1342 191 ATTCATAAAACAAATACTACTAGACCTAAGAGGGA <<<<<<<<<<<<<<<<<<<<<<:<<<<+;<7:8:; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:3:253:175:31 147 seq2 1187 72 35M = 1008 -214 TTCATAAAACAAATACTACTAGACCTAAGAGGGAT ;+;<;<<<<<<<<9<<9<<<<<;<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:4:13:701:55 147 seq2 1187 99 36M = 1015 -208 TTCATAAAACAAATACTACTAGACCTAAGAGGGATG 0:+<7<;9<;<<<<<<<3<<<<<;;<<<:<<3<<<< MF:i:18 Aq:i:48 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:6:220:809:850 147 seq2 1187 60 35M = 986 -236 TTCATAAAACAAATACTACTAGACCTAAGAGGGAT 9+5<;*<<<2:0<<8:<*00<<<:<*<<<<<<<<& MF:i:18 Aq:i:60 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:5:30:599:589 147 seq2 1188 99 36M = 1003 -221 TCATAAAACAAATACTACTAGACCTAAGAGGGATGA 90<;<<<<<<<<+<<<;;<;<;<<<<<<<<6<<8<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:8:35:118:589 83 seq2 1188 99 35M = 999 -224 TCATAAAACAAATACTACTAGACCTAAGAGGGATG 67<<<<<;<<<<<<<:7<<<<:<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:4:37:604:389 147 seq2 1188 99 35M = 998 -225 TCATAAAACAAATACTACTAGACCTAAGAGGGATG 00;:;========9========<9========<== MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_61:2:168:61:867 83 seq2 1188 99 35M = 997 -226 TCATAAAACAAATACTACTAGACCTAAGAGGGATG ;7<<<<<<<<<<<<<7<<:<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:7:197:399:319 83 seq2 1189 99 35M = 1012 -212 CAAAAAACAAATACTACTAGACCTAAGAGGGATGA &<+==<<5<<<8<89;;<<<<<<8<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:10 H0:i:1 H1:i:0
+EAS114_32:5:267:170:250 163 seq2 1189 99 35M = 1377 223 CATAAAACAAATACTACTAGACCTAAGAGGGATGA <<<<<<<<<<<<<<<<<;<<<;<<<<<<<<<<<<; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:4:174:157:573 83 seq2 1191 99 35M = 1012 -214 TAAAACAAATACTACTAGACCTAAGAGGGATGAGA 8<<<<4<<<<<<<<;<<<<;<<<<<<<<<<<<<<< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:6:39:956:676 83 seq2 1191 99 35M = 1023 -203 TAAAACAAATACTACTAGACCTAAGAGGGATGAGA 899985;;<;:9;;:9<;:9:5;<;;;<;<;<<<< MF:i:18 Aq:i:44 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:7:37:763:1437 83 seq2 1191 99 35M = 994 -232 TAAAACAAATACTACTAGACCTAAGAGGGATGAGA 79979;<;<;;;<;;;;;;6:;<:;<:8;<<<<;< MF:i:18 Aq:i:64 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:2:50:513:882 83 seq2 1192 99 35M = 1031 -196 AAAACAAATACTACTAGACCTAAGAGGGATGAGAA <<<<:<<<<<:<<:<<<<::<<<<<<<<<<<<<<< MF:i:18 Aq:i:23 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:2:15:1763:1143 147 seq2 1193 99 35M = 1023 -205 AAACAAATACTACTAGACCTAAGAGGGATGAGAAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:46 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:4:189:571:366 83 seq2 1194 99 35M = 1002 -227 AACAAATACTACTAGACCTAAGAGGGATGAGAAAT <<;<<<<<:<<<;<<<;;;<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:3:166:532:438 99 seq2 1194 99 35M = 1386 227 AACAAATACTACTAGACCTAAGAGGGATGAGAAAT <<<<<<<<<<<<<<<;<<;<<;<<<<;<;:;;<;< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:5:309:109:987 83 seq2 1194 99 35M = 1024 -205 AACAAATACTACTAGACCTAAGAGGGATGAGAAAT <<<<<<:<<;<<<<<;<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:1:171:527:247 83 seq2 1194 67 35M = 1027 -202 AACAAATGCTACTAGACCTAAGAGGGATGAGAAAT <547*9)&&7+;+<<7<<<;<<<;3<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+B7_589:8:139:727:808 163 seq2 1195 99 35M = 1363 203 ACAAATACTACTAGACCTAAGAGGGATGAGAAATT <<<<<<<<<<<<<:<;<<<<<<<<9;<;9<6;<<9 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:3:202:275:776 83 seq2 1196 99 36M = 1002 -230 CAAATACTACTAGACCTAAGAGGGATGAGAAATTAC ;<<<<;;<<<<<<<;<<<<<<<;<<<<<<<<<<;<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:6:12:484:836 163 seq2 1197 99 35M = 1372 210 AAATACTACTAGACCTAAGAGGGATGAGAAATTAC <<<<<<<<<<<<<<<<<7<:<<<<<<9<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:6:21:553:57 99 seq2 1197 99 35M = 1358 196 AAATACTACTAGACCTAAGAGGGATGAGAAATTAC <<<<<<<<<<<;;<<<;<<;<<;<<<;;9<;<;<9 MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:5:4:939:2021 83 seq2 1197 99 40M = 1031 -206 AAATACTACTAGACCTAAGAGGGATGAGAAATTACCTAAT ;;;;:8;<5:<<<7/<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:3:194:378:230 83 seq2 1198 99 35M = 1022 -211 AATACTACTAGACCTAAGAGGGATGAGAAATTACC <<;<8<<:<<<<:<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:49 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:7:68:242:834 163 seq2 1200 99 36M = 1386 222 TACTACTAGACCTAAGAGGGATGAGAAATTACCTAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:2:22:471:500 163 seq2 1200 99 35M = 1365 200 TACTACTAGACCTAAGAGGGATGAGAAATTACCTA =======<=<====:<2===9==;=;9;;=;;;;5 MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:4:139:989:144 163 seq2 1201 99 35M = 1387 221 ACTACTAGACCTAAGAGGGATGAGAAATTACCTAA <<<<<<<<<<<<6<<<<<<<<<;<<<<<<<;;<;; MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:5:188:20:592 83 seq2 1202 95 35M = 1032 -205 CTACTAGACCTAAGAGGGATGAGAAATTACCTAAT 2<<7;<<<<,;<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:22 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:1:189:863:213 83 seq2 1202 99 35M = 1039 -198 CTACTAGACCTAAGAGGGATGAGAAATTACCTAAT 7:<7<<<<44;<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_1:4:62:561:531 83 seq2 1203 99 35M = 1036 -202 TACTAGACCTAAGAGGGATGAGAAATTACCTAATT <<7<<<<:<8<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:8:70:1349:1788 83 seq2 1203 99 35M = 1043 -195 TACTAGACCTAAGAGGGATGAGAAATTACCTAATT <7;<<8<74;;<1<<71<;7<;;<;<7<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:5:197:914:256 147 seq2 1204 97 35M = 1049 -190 ACTAGACCTAAGAGGGATGAGAAATTACCTAATTG <5;<8<5/;<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:24 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:3:35:896:1588 83 seq2 1205 91 35M = 1032 -208 CTAGACCTAAGAGGGATGAGAAATTACCTAATTGG 77999:.:<<;<;;;<<;<;<<<<<;<;;<<<<;; MF:i:18 Aq:i:21 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:6:43:47:279 163 seq2 1206 99 35M = 1405 234 TAGACCTAAGAGGGATGAGAAGTTACCTAATTGGT <<<<<<<<<<<<<;:<-<<<<<<<<<<<<:;;+7; MF:i:18 Aq:i:45 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS1_95:2:211:954:174 99 seq2 1207 99 35M = 1393 221 AGACCTAAGAGGGATGAGAAATTACCTAATTGGTA ===============================777= MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:2:5:1219:137 99 seq2 1209 99 35M = 1384 210 ACCTAAGAGGGATGAGAAATTACATAATTGGTACA <<<<<<<<<<<<<<<<<<<<<<<(<<<<<<:9<;= MF:i:18 Aq:i:45 NM:i:1 UQ:i:7 H0:i:0 H1:i:1
+EAS56_57:7:33:954:724 83 seq2 1210 97 35M = 1049 -196 CCTAAGAGGGATGAGAAATTACCTAATTGGTACAA ;<;<;<<-7;<<;<<<<<<<<<<<<<<<<<<<<<; MF:i:18 Aq:i:24 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:3:176:402:458 163 seq2 1210 99 36M = 1376 202 CCTAAGAGGGATGAGAAATTACCTAATTGGTACAAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<:<<<;;<; MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:4:81:687:1379 163 seq2 1210 99 35M = 1366 191 CCTAAGAGGGATGAGAAATTACCTAATTGGTACAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:1:45:239:851 83 seq2 1211 61 35M = 1023 -223 CTAAGAGGGATGAGAAATTACCTAATTGGTACAAT *2*0<<<<<<<<<<<<<<<<9<<3<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS56_65:5:312:985:871 163 seq2 1212 99 35M = 1369 192 TAAGAGGGATGAGAAATTACCTAATTGGTACAATG <<<<<<<<<<<<<<<<<<<<<<<<<<<:<<<<9<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:4:38:557:1441 163 seq2 1212 99 35M = 1381 204 TAAGAGGGATGAGAAATTACCTAATTGGTACAATG <<<<<<<<<<<<<<<<<<<<<<<<<<<:<<<<<<< MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:3:88:465:1877 147 seq2 1212 99 35M = 1055 -192 TAAGAGGGATGAGAAATTACCTAATTGGTACAATG <<<<<<<:<<<<<<<<:<<<<<<<<<<<<7;<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:7:149:123:265 163 seq2 1213 99 35M = 1395 217 AAGAGGGATGAGAAATTACCTAATTGGTACAATGT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<9 MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:6:47:1791:444 83 seq2 1213 74 35M = 1041 -207 AAGAGGGATGAGAAATTACCTAATTGGTACAATGT 978879;:;;<:;;<<;:<9<<<<;6;;;;<<<<; MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:6
+EAS51_62:3:68:996:104 147 seq2 1214 70 35M = 1041 -208 AGAGGGATGAGAAATTACCTAATTGGTACAATGTA <1<8<<<:<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:21 NM:i:0 UQ:i:0 H0:i:1 H1:i:4
+B7_593:2:68:140:542 99 seq2 1217 95 36M = 1398 217 GGGATGAGAAATTACCTAATTGGTACAATGTACAAT <<<8;<<;<<<<<;<<;<<<<<8;<-<8<82;;;-8 MF:i:18 Aq:i:19 NM:i:0 UQ:i:0 H0:i:1 H1:i:6
+EAS188_7:7:67:719:786 163 seq2 1218 43 35M = 1383 200 GGATGAGAAATTACCTAATTGGTACACTGTACAAT ;;<<<<<<&<<:13&<1<<<:<<<)/&/))<'6-< MF:i:18 Aq:i:13 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+EAS1_108:5:321:712:224 83 seq2 1220 58 35M = 1051 -204 ATGAGAAATTACCTAATTGGTACAATGTACAATAT =;===7;===7=========;=:;=========;= MF:i:18 Aq:i:28 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS114_26:4:100:238:596 163 seq2 1220 56 35M = 1403 218 ATGAGAAATTACCTAATTGGTACAATGTACAATAT ======9=====;=======5===;====/=;=== MF:i:18 Aq:i:17 NM:i:0 UQ:i:0 H0:i:1 H1:i:13
+EAS51_62:7:312:236:655 163 seq2 1222 99 35M = 1412 225 GAGAAATTACCTAATTGGTACAATGTACAATATTC <<<<;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:5
+EAS56_63:6:102:816:260 147 seq2 1225 99 35M = 1049 -211 AAATTACCTAATTGGTACAATGTACAATATTCTGA <<<<<<::<<<<<<;<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:23 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:7:34:144:868 163 seq2 1226 76 35M = 1412 221 AATTACCTAATTGGTACAATGTACAATATTCTGAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<4;< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_78:7:215:516:299 99 seq2 1226 99 35M = 1406 215 AATTACCTAATTGGTACAATGTACAATATTCTGAT <<<<<<;<<<<;;;;<;;<<<<;<<9<;<<1;7/; MF:i:18 Aq:i:64 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:3:81:12:1231 163 seq2 1228 99 35M = 1391 198 TTACCTAATTGGTACAATGTACAATATTCTGATGA <<<<7<<<<<<<<<<<<<<<<<<<<<<<<<<4<<6 MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:2:30:644:942 147 seq2 1229 83 35M = 1045 -219 TACCTAATTGGTACAATGTACAATATTCTGATGAT 85%+;<<9;<9<<;<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:22 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:4:41:519:609 163 seq2 1229 99 35M = 1401 207 TACCTAATTGGTACAATGGACAATATTCTGATGAT 1<<<<<<<<<<<<<<<4<-:<+6<<<<<<<<<<<< MF:i:18 Aq:i:43 NM:i:1 UQ:i:12 H0:i:0 H1:i:1
+B7_591:7:116:814:89 99 seq2 1231 99 36M = 1408 213 CCTAATTGGTACAATGTACAATATTCTGATGATGGT <<<<<<<<<<<<<<<<<<<<<<:<<<<;<<;<<66< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:5:169:714:644 163 seq2 1231 99 35M = 1437 241 CCTAATTGGTACAATGTACAATATTCTGATGATGG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<;< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:6:73:420:812 99 seq2 1232 66 35M = 1414 217 CTAATTGGTACAATGTACAATATTCTGATGATGGT <<<<<1<<<<::1<7<:<96<9<:<<:4<70:11< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:6:17:1179:393 99 seq2 1232 99 35M = 1412 215 CTAATTGGTACAATGTACAATATTCTGATGATGGT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<:<<:4< MF:i:18 Aq:i:78 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:8:118:829:36 99 seq2 1233 99 35M = 1417 219 TAATTGGTACAATGTACAATATTCTGATGATGGTT <<<<<<<<<:<2<<<<<<:<<<<<<<<<<<<71;< MF:i:18 Aq:i:52 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:2:125:875:553 147 seq2 1233 99 36M = 1075 -194 TAATTGGTACAATGTACAATATTCTGATGATGGTTA -;<;:;<<;6<<<<<<6<;<:<<<<<<<<<<<<<<< MF:i:18 Aq:i:53 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS114_32:4:7:282:424 99 seq2 1233 83 35M = 1397 199 TAATTGGTACAATGTACAATATTCTGATGATGGTT <<<3<<<9<<<<3<<<<<9<<<9,<;;9;&*;3,. MF:i:18 Aq:i:41 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:6:107:447:488 163 seq2 1233 99 35M = 1412 214 TAATTGGTACAATGTACAATATTCTGATGATGGTT <<<;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:53 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:7:66:891:294 83 seq2 1233 99 35M = 1057 -211 TAATTGGTACAATGTACAATATTCTGATGATGGTT :<<5;;<<<4<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS56_57:8:72:44:435 99 seq2 1235 76 35M = 1392 192 ATTGGTACAATGTACAATATTCTGATGATGGTTAA <<<<<<<<<<<2;<;<<;<<<;<<8<82<;22<8& MF:i:18 Aq:i:0 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS139_19:4:18:1335:1514 147 seq2 1235 99 40M = 1063 -212 ATTGGTACAATGTACAATATTCTGATGATGGTTACACTAA ::/::<<;<<<<<<<<<<<<<;<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_4:7:72:1288:1211 147 seq2 1235 84 35M = 1052 -218 ATTGGTACAATGTACAATATTCTGATGATGGTTAC <);<:<<9<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:3:200:263:280 83 seq2 1236 99 35M = 1078 -193 TTGGTACAATGTACAATATTCTGATGATGGTTACA )<<<8<:<<<<<<<<<;<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:62 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:5:68:440:424 147 seq2 1237 99 35M = 1060 -212 TGGTACAATGTACAATATTCTGATGATGGTTACAC <<2<<<<<<<<9<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:6:255:441:47 147 seq2 1237 99 35M = 1072 -200 TGGTACAATGTACAATATTCTGATGATGGTTACAC ;;7<;:<<<<<<<<<<;<<<<<<<<;<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:8:174:557:872 163 seq2 1237 99 35M = 1423 221 TGGTACAATGTACAATATTCTGATGATGGTTACAC <<<<<<<<<<<<<:<<<<<<<7<<;<<6:<<2117 MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS51_64:3:255:45:399 163 seq2 1238 99 35M = 1404 201 GGTACAATGTACAATATTCTGATGATGGTTACACT <<3<8<<8<0<<;<<<0<<<</+8<611<<;71;7 MF:i:18 Aq:i:57 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:2:264:157:150 147 seq2 1238 30 35M = 1054 -219 GGAAAAATGGACAAGATTCTGATGAGGGTTACACT .3%:+<<*;*<2<<1<1*,*<<7<<+<<<&<<<<< MF:i:130 Aq:i:30 NM:i:3 UQ:i:35 H0:i:0 H1:i:0
+EAS139_19:5:95:944:247 99 seq2 1238 99 40M = 1424 226 GGTACAATGTACAATATTCTGATGATGGTTACACTAAAAG <<<<<<<<<<<<<<<<<<<<<<<<<<;<<<<<<<<:;::: MF:i:18 Aq:i:78 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_105:2:301:161:195 147 seq2 1239 75 35M = 1076 -198 GTACAATGTACAATATTCTGATGATGGTTACACTA ''6%6<6<<<4<<<<<<<<)<<<<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:2:141:7:963 83 seq2 1240 85 36M = 1061 -215 TACAATGTACAATATTCTGATGATGGTTACACTAAA 95+<<9<<5<;;<<;<<;'<<<<<;<<<7<9<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS114_39:6:76:282:1668 99 seq2 1240 99 35M = 1401 196 TACAATGTACAATATTCTGATGATGGTTACACTAA <<<<<<<<<<<<<<<<<<;<<;<<<<<<;<;<<<8 MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:5:64:199:1288 147 seq2 1240 77 35M = 1079 -196 TACAATGTACAATATTCTGATGATGGTTACACTAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:1:49:911:980 163 seq2 1241 99 35M = 1434 228 ACAATGTACAATATTCTGATGATGGTTACACTAAA <<<<<<<<<<;<<<<<<<8<<<<;<;<<88-<;33 MF:i:18 Aq:i:62 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:8:66:1046:167 147 seq2 1241 99 35M = 1060 -216 ACAATGTACAATATTCTGATGATGGTTACACTAAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:5:303:542:924 83 seq2 1242 76 35M = 1083 -194 CAATGTACAATATTCTGATGATGGTTACACTAAAA +<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS114_45:2:79:554:354 147 seq2 1242 63 35M = 1082 -195 CAATGTACAATATTCTGATGATGGTTACACTAAAA 98988;7;;;;:;;;;;;;;;;:;;;:;;;;;9;; MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:1:248:122:558 163 seq2 1243 99 35M = 1436 228 AATGTACAATATTCTGATGATGGTTACACTAAAAG <<<<:<<<<<<<<<<<<<;<<<<:<6:4<<::6:6 MF:i:18 Aq:i:52 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:7:109:22:383 83 seq2 1244 99 35M = 1071 -208 ATGTACAATATTCTGATGATGGTTACACTAAAAGC <;9;<8<<<<<<;<<<<<<<<<<<<;<<<<<<<<< MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:3:43:1229:1855 83 seq2 1244 99 35M = 1074 -205 ATGTACAATATTCTGATGATGGTTACACTAAAAGC 8<<<<;8<<<;;5<<28<<<<<<<<<<<<7;;<<; MF:i:18 Aq:i:48 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:2:74:656:272 83 seq2 1245 99 35M = 1088 -192 TGTACAATATTCTGATGATGGTTACACTAAAAGCC ;;;</<<<<<5;<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+EAS56_65:7:118:775:467 83 seq2 1245 99 35M = 1075 -205 TGTACAATATTCTGATGATGGTTACACTAAAAGCC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+B7_593:7:15:244:876 99 seq2 1246 43 36M = 1440 230 GTACAATATTCTGATGATGGTTACACTAAAAGCCCA <<<<<<;<<<<<<<<;<<;;;<<<<<:<<<9;<<<; MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:1:63:28:1549 163 seq2 1247 77 35M = 1439 227 TACAATATTCTGATGATGGTTACACTAAAAGCCCA <<<<<<<<<<<<<<<<<<<<<<<<<<<<7;<<<<7 MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:7:310:800:761 83 seq2 1249 99 35M = 1055 -229 CAATATTCTGATGATGGTTACACTAAAAGCCCATA 1<<:<:<:<<<<:<<<<<<<<<;<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:7:14:978:1296 83 seq2 1249 90 35M = 1104 -180 CAATATTCTGATGATGGTTACACTAAAAGCCCATA 77177;9;2:;;:;;(;;9;<;;;;:;;;:7;<<; MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:8:26:242:35 147 seq2 1251 99 35M = 1084 -202 ATATTTTGATGATGGTTACACTAAAAGCCCATACT <<<77!!7<;<<<;;<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:2 UQ:i:0 H0:i:1 H1:i:8
+EAS114_45:7:6:758:988 83 seq2 1253 99 35M = 1087 -201 ATTCTGATGATGGTTACACTAAAAGCCCATACTTT 3-7*73;;399:9;9;7<-(<;;<;;:;9::;;7; MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:2:315:412:921 99 seq2 1254 99 35M = 1424 205 TTCTGATGATGGTTACACTACAAGCCCATACTGTA <;<;<<<<<<<;<<<<<<<<8<<<;<<:<<;;+<8 MF:i:18 Aq:i:45 NM:i:2 UQ:i:33 H0:i:0 H1:i:1
+EAS114_30:3:215:840:760 163 seq2 1256 99 35M = 1416 195 CTGATGATGGTTACACTAAAAGCCCATACTTTCCT <<<<<<<<<<<<<<<;<<<88<+<<:<;3585,+: MF:i:18 Aq:i:66 NM:i:1 UQ:i:11 H0:i:1 H1:i:0
+EAS1_95:5:284:212:932 147 seq2 1257 10 35M = 1063 -229 TGATGATGGTTACGCTAAAAGTCCATGCTTTACTG 82%<8:<-:<<:**:<-<<8<)/2/<:/<<<<<<< MF:i:18 Aq:i:0 NM:i:3 UQ:i:42 H0:i:0 H1:i:0
+EAS1_97:4:290:121:79 163 seq2 1257 99 35M = 1420 198 TGATGATGGTTACACTAAAAGCCCATACTTTACTG <<<<<<<<<<<<<<<<<<<<<<<<<<<9<<<7;<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:1:88:54:900 83 seq2 1257 68 35M = 1069 -223 TGATGATGGTTACACTAAAAGCCCATACTTCACTG ============;=================;9=== MF:i:18 Aq:i:19 NM:i:1 UQ:i:26 H0:i:0 H1:i:1
+EAS188_7:3:100:735:530 83 seq2 1257 99 35M = 1058 -234 TGATGATGGTTACACTAAAAGCCCATACTTTACTG <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:7:32:562:1695 147 seq2 1258 76 35M = 1085 -208 GATGATGGTTACACTAAAAGCCCATACTTTACTGC :5:::<88/<:<<<<<<<<<7<9<<&<959<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:3:173:627:465 163 seq2 1260 99 36M = 1444 220 TGATGGTTACACTAAAAGCCCATACTTTACTGCTAC <<<<<<<<<<<<<<<<<<<<<<<;<<<<<2;;4;;7 MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS1_95:1:77:589:741 83 seq2 1263 99 35M = 1078 -220 TGGTTACACTAAAAGCCCATACTTTACTGCTACTC 8=;;==606;========================= MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:8:27:228:31 147 seq2 1264 99 35M = 1082 -217 GGTTACACTAAAAGCCCATACTTTACTGCTACTCA 99;;;<<<<<<:<<;<;<<;<<<<;<<;<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:6:54:695:952 147 seq2 1264 99 35M = 1076 -223 GGTTACACTAAAAGCCCATACTTTACTGCTACTCA 277%<9<4)<<<<<<<<<;<<<<<<<<<<<<<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:6:300:622:86 83 seq2 1264 99 35M = 1102 -197 GGTTACACTAAAAGCCCATACTTTACTGCTACTCA <:<<<:<6;<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:7:71:62:254 163 seq2 1264 99 35M = 1438 209 GGTTACACTAAAAGCCCATACTTTCCTGCTACTCA <<<<<<7<<<<7<<<<<3<<<<<<&<<.<<::<:% MF:i:18 Aq:i:43 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+EAS114_28:1:168:609:646 99 seq2 1264 99 36M = 1436 208 GGTTACACTAAAAGCCCATACTTTACTGCTACTCAA <<<<<<<<<<<;<<<<<:<8<<<<;<<<<<4<<<9< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:1:84:92:1246 163 seq2 1265 99 35M = 1437 207 GTTACACTAAAAGCCCATACTTTACTGCTACTCAA <<<<<<<<<<<<<<<<5<:<<5<<<<<<<<<<<<< MF:i:18 Aq:i:78 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:3:310:193:629 83 seq2 1267 99 36M = 1103 -200 TACACTAAAAGCCCATACTTTACTGCTACTCAATAT 9<9<6;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:6:111:379:700 73 seq2 1268 0 35M = 1268 0 ACACTAAAAGCCCATACTTTACTGCTACTCAATAT 7<<:<<<<02<<6&<</<<</+9/98*<966/3/< MF:i:64 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:6:111:379:700 133 seq2 1268 0 * = 1268 0 CGCACTGGCAATATTTGTGTGTTTACTTTTTTGCA :1+&;;6;:;918;);;):,19.9:).):::.&3( MF:i:192
+EAS114_30:6:137:741:866 163 seq2 1268 99 35M = 1429 196 ACACTAAAAGCCCATACTTTACTGCTACTCAATAT <<<<8<<;;;<<<<;<<<;;;<;4<<8;<<;%<8; MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:7:23:1126:1886 147 seq2 1268 99 35M = 1094 -209 ACACTAAAAGCCCATACTTTACTGCTACTCAATAT 5*.:.5<<::<<<<<<<<:5<<<<<<<<<<:2<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:3:21:423:169 99 seq2 1270 99 35M = 1468 233 ACTAAAAGCCCATACTTTACTGCTACTCAATATAT <<<<<;<<<<<<;<<<<<;;<<<<<<<<9+:5<;; MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:3:110:984:98 147 seq2 1270 99 36M = 1092 -214 ACTAAAACCCCATACTTTACTGCTACTCAATATATC :81<<<<+;;8<+<8<<<<<;<<<8;<<<<<<<<8; MF:i:18 Aq:i:70 NM:i:1 UQ:i:10 H0:i:1 H1:i:0
+EAS219_FC30151:5:54:1351:910 99 seq2 1270 99 35M = 1448 213 ACTAAAAGCCCATACTTTACTGCTACTCAATATAT <<<<<<8<<<<<<<<<<<<<<<<<<<<<<18<<:< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:2:237:855:581 147 seq2 1271 87 35M = 1105 -201 CTAAACGCCCATACTTTACTGCTACTCAATATATC /+<<<&)2;66;/;;+<;;3133<3<3;9;<999< MF:i:18 Aq:i:30 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS56_59:8:80:542:549 163 seq2 1271 99 35M = 1443 207 CTAAAAGCCCATACTTTACTGCTACTCAATATATC <<<<<<<<;<<<<<<<<:<<<<-<;;<;7<;3;9; MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:4:7:1347:375 163 seq2 1271 99 35M = 1436 200 CTAAAAGCCCATACTTTACTGCTACTCAATATATC ;;;;;;;;;;;;;;;;;;;;9;;;8;;;;;97777 MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:6:191:540:493 99 seq2 1273 99 35M = 1432 194 AAAAGCCCATACTTTACTGCTACTCAATATATCCA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<; MF:i:18 Aq:i:78 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_81:7:324:472:791 147 seq2 1274 89 35M = 1110 -199 AAAGCCAATACTTTACTGCTACTCAATATATCCAT <<.)5*&;;11<<<,5<33:-<<6<<<<:<<<<<< MF:i:18 Aq:i:30 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS220_1:8:83:1456:1854 83 seq2 1275 99 35M = 1117 -193 AAGCCCATACTTTACTGCTACTCAATATATCCATG <<67<:<8<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:5:290:247:509 163 seq2 1276 99 35M = 1450 209 AGCCCATACTTTACTGCTACTCAATATATCCATGT <<<<<<<<<<<<<<<4<<<<<<92<;;;<;96;19 MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:5:90:629:652 99 seq2 1276 99 35M = 1456 215 AGCCCATACTTTACTGCTACTCAATATATCCATGT <<<<<<<<<<<<<<<<<<<<<<<:<;<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_4:3:39:1671:1928 163 seq2 1276 99 35M = 1453 212 AGCCCATACTTTACTGCTACTCAATATATCCATGT <<<<<<<;<<<<;<<<<<4<<<;3<<<;<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:1:128:584:952 83 seq2 1277 99 35M = 1101 -211 GCCCATACTTTACTGCTACTCAATATATCCATGTA 7<;9;0:<<<:<<:<<<<<:<<<<<<<<<<<<<<< MF:i:18 Aq:i:61 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:7:28:979:519 163 seq2 1278 99 35M = 1439 196 CCCATACTTTACTGCTACTCAATATATCCATGTAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;;;9: MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:7:219:40:833 83 seq2 1278 99 35M = 1094 -219 CCCATACTTTACTGCTACTCAATATATCCATGTAA <<*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:1:289:207:323 163 seq2 1279 99 35M = 1462 218 CCATACTTTACTGCTACTCAATATATCCATGTAAC <<<:<<<<<:<<<<<<<<<<;<<899<<13)939; MF:i:18 Aq:i:41 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:3:45:758:616 163 seq2 1280 99 35M = 1473 228 CATACTTTACTGCTACTCAATATATCCATGTAACA <<<<<<<<<<<<<<<<<<<<<<<<<6<<<<<<;;< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_32:7:42:804:114 163 seq2 1281 99 35M = 1452 206 ATACTTTACTGCTACTCAATATATCCATGTAACAA <<<<<<<<<<<<<<<<<<<<<<<<<<:<:<;;<;; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:5:61:1885:163 83 seq2 1281 99 40M = 1128 -193 ATACTTTACTGCTACTCAATATATCCATGTAACAAATCTG ;:;;;;<<8<<:<<:<;<<<<<<<;<<<<<<<<<<<<<<< MF:i:18 Aq:i:79 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:4:282:962:46 99 seq2 1282 99 35M = 1437 190 TACTTTACTGCTACTCAATATATCCATGTAACAAA <<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:6:143:620:158 83 seq2 1283 99 35M = 1107 -211 ACTTTACTGCTACTCAATATATCCATGTAACAAAT <4;<;<;<;6<<7<;<<<<<<<;<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:3:50:312:219 83 seq2 1288 99 35M = 1146 -177 ACTGCTACTCAATATATCCATGTAACAAATCTGCG <,;83:<::6<<<<<<<;:<;<<<<;<<<<<<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_93:5:256:444:399 83 seq2 1289 99 35M = 1133 -191 CTGCTACTCAATATATCCATGTAACAAATCTGCGC ;+549<:<.<<<<<<<;<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:1:17:595:863 83 seq2 1289 89 35M = 1139 -185 AAGCTACTCAATATATCCATGTAACAAATCTGCGC ))55))+2&<<,:5<,0657<<<<:<:<:<<<<<< MF:i:18 Aq:i:33 NM:i:2 UQ:i:16 H0:i:1 H1:i:0
+EAS1_105:6:23:885:274 147 seq2 1289 99 35M = 1089 -235 CTACTACTCAATATATCCATGTAACAAATCTGCGC 2+*27==;;==<<.;:<=<=<============== MF:i:18 Aq:i:51 NM:i:1 UQ:i:9 H0:i:1 H1:i:0
+EAS54_61:8:4:173:814 83 seq2 1289 99 35M = 1111 -213 CTGCTACTCAATATATCCATGTAACAAATCTGCGC <<;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:5:263:557:988 147 seq2 1289 84 35M = 1108 -216 CTGCTACTCAATATATCCATGTAACAAATCTGCGC 1-41:<15+<<<<<<599<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:18 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:2:326:153:231 163 seq2 1290 43 35M = 1477 222 TGCTACTCAATATATCCATGTAACAAATCTGCGCT <<<<<<<<<9<<<<<<<<<,<<<<<<8<<8.;.;4 MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:4:98:862:154 83 seq2 1290 99 35M = 1116 -209 TGCTACTCAATATATCCATGTAACAAATCTGCGCT 856:;7<:<<9<<<9<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:2:6:529:366 147 seq2 1291 99 35M = 1103 -223 GCTACTCAATATATCCATGTAACAAATCTGCGCTT 9;8;8<:<<<<<<<;<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:5:299:336:613 147 seq2 1293 99 35M = 1145 -183 TACTCAATATATCCATGTAACAAATCTGCGCTTGT 1;4(+<<5<4<1<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:3
+B7_597:2:42:28:552 83 seq2 1294 99 35M = 1131 -198 ACTCAATATATCCATGTAACAAATCTGCGCTTGTA </8:<<:<<<;;<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+EAS114_39:3:55:464:146 147 seq2 1295 99 35M = 1114 -216 CTCAATATATCCATGTAACAAATCTGCGCTTGTAC ;(;;;;<<<<;<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:2
+EAS54_67:6:109:953:668 99 seq2 1297 99 35M = 1485 223 CAATATATCCATGTAACAAATCTGCGCTTGTACTT ;<<<<;<<<<<<<<<<<<<<<<<<<<<<<<8<;<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:1
+EAS139_19:1:82:946:392 163 seq2 1297 99 40M = 1493 236 CAATATATCCATGTAACAAATCTGCGCTTGTACTTCAAAA <<<<<<<<<<<<<<<<<<<<<<<<<8<<<8<<8<<:4488 MF:i:18 Aq:i:74 NM:i:1 UQ:i:19 H0:i:1 H1:i:0
+EAS114_28:3:308:509:948 147 seq2 1298 99 36M = 1123 -211 AATATATCCATGTAACAAATCTGCGCTTGTACTTCT ;;+;;;.8<<;;;<<<<<<<<<<<<<8<<<<<;<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:4:174:753:617 147 seq2 1299 75 35M = 1136 -198 ATATATCCATGTAACAAATCTGCGCTTGTACTTCT <;<;<<<:<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:3:26:1867:162 83 seq2 1299 70 35M = 1137 -197 ATATATCCATGTAACAAATCTGCGCTTGTACTTCT 97999:;<<9;;<:<<;;;<;;<<<<<<<;;<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:2:162:257:203 83 seq2 1301 99 35M = 1114 -222 ATATCCATGTAACAAATCTGCGCTTGTACTTCTAA <;<;:<<;<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:5:62:841:1994 121 seq2 1301 70 35M = 1301 0 ATATCCATGTAACAAATCTGCGCTTGTACTTCTAA 87878;;6:;;:<<<<:<:;;;<;<<<;<;;<;<< MF:i:64 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:5:62:841:1994 181 seq2 1301 0 * = 1301 0 TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! MF:i:192
+EAS139_19:7:44:1807:833 99 seq2 1301 99 40M = 1449 188 ATATCCATGTAACAAATCTGCGCTTGTACTTCTAAATCTA <<<<<<<<<<<<<<<<<<<;<;<<<;<<9<<<<<89;;;: MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:7:280:607:113 163 seq2 1303 99 35M = 1468 200 ATCCATGTAACAAATCTGCGCTTGTACTTCTAAAT ===================;===;=====<=7=9: MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:2:260:147:818 163 seq2 1303 82 35M = 1497 229 ATCCATGTAACAAATCTGCGCTTTTACTTCTAAAT <<<<<<3<<<<<;<<<<)<1<<<&<7<<<;<4/9< MF:i:18 Aq:i:41 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+EAS54_71:7:194:867:616 99 seq2 1303 99 34M = 1481 213 ATCCATGTAACAAATCTGCGCTTGTACTTCTATT <8<<<<<<<<<<<8<<4<<<<<<8<<3<<5<&(+ MF:i:18 Aq:i:67 NM:i:2 UQ:i:23 H0:i:1 H1:i:0
+EAS139_19:7:85:262:751 83 seq2 1305 99 40M = 1105 -240 CCATGTAACAAATCTGCGCTTGTACTTCTAAATCTATAAC 22;99;<<8<<<<<<<;<;<<<<<;<<;<<<<<<<<<<<+ MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS54_81:6:35:186:412 147 seq2 1306 99 35M = 1139 -202 CATGTAACAAATCTGCGCTTGTACTTCTAAATCTA <<4:6<;<&<:4<<<<<<<<;<<<<<<<<<<<<<< MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:8:46:1528:799 147 seq2 1306 96 35M = 1109 -232 CATGTAACAAATCTGCGCTTGTACTTCTAAATCTA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:19 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:5:124:978:501 163 seq2 1307 99 36M = 1499 228 ATGTAACAAATCTGCGCTTGTACTTCTAAATCTATA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<; MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:3:88:866:774 163 seq2 1307 99 35M = 1478 206 ATGTAACAAATCTGCTCTTGTACTTCTAAATCTAT <<<;<<<<<;<<<<<<<<<<<<<<<<<68<<<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS221_1:6:4:1131:104 163 seq2 1307 99 35M = 1487 215 ATGTAACAAATCTGCGCTTGTACTTCTAAATCTAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<;;<<<:: MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:6:178:342:866 83 seq2 1311 72 35M = 1155 -191 AACAAATCTGCGCTTGTACTTCTAAATCTATAAAA <<9<<<&;;<<<<77<;<<<5;:<<<:<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:1:119:880:781 147 seq2 1312 99 35M = 1157 -190 ACAAATCTGCGCTTGTACTTCTAAATCTATAACAA ;8<<;<<<<:<84<<<<:<<<<<<<<<<<<<5<<< MF:i:18 Aq:i:45 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+B7_591:2:46:220:58 99 seq2 1313 99 36M = 1483 206 CAAATCTGCGCTTGTACTTCTAAATCTATAAAAAAA <<<<<<<<<<<<<<<<<<<<<<9<<<<<<<<<<:<; MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:2:47:591:698 147 seq2 1313 99 35M = 1146 -202 CAAATCTGCGCTTGTACTTCTAAATCTATAACAAA 7;;;;:<<:<:<<<<<7<<:<<<<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS1_105:1:115:226:443 147 seq2 1314 99 35M = 1137 -212 AAATCTGCGCTTGTACTTCTAAATCTATAAAAAAA <<;;<;<<<<<<<<<<<<:<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:4:198:59:675 83 seq2 1315 99 35M = 1150 -200 AATCTGCGCTTGTACTTCTAAATCTATAACAAAAT <<<<<4<4<:<<<;7<<;<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS221_3:2:76:1729:813 163 seq2 1317 99 35M = 1506 224 TCTGCGCTTGTACTTCTAAATCTATAAAAAAATTA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:36 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:8:147:360:141 99 seq2 1319 47 35M = 1501 218 TGCGCTTGTACTTCTAAATCTATAACAAAATTAAA <<<<<<<<<<7<<<<<<<<<<<<<<<<<<<<<<<7 MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS1_95:7:155:530:532 83 seq2 1319 99 35M = 1128 -226 TGCGCTTGTACTTCTAAATCTATAACAAAATTAAA :<<<><<8<<<<<><<<<<><<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS51_62:4:308:614:911 99 seq2 1319 90 35M = 1493 209 TGCGCTTGTACTTCTAAATCTATAACAAAATTAAA <<<<<<<<<<<<<<<<<<<<<<<<<<<;;<<<<8< MF:i:18 Aq:i:43 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS54_65:3:155:541:234 83 seq2 1319 99 35M = 1151 -203 TGCGCTTGTACTTCTAAATCTATAAAAAAATTAAA 78;<7<<<<<<<<<<<<<<;<<<<<<<<<<;<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:6:175:289:351 147 seq2 1319 99 35M = 1144 -210 TGCGCTTGTACTTCTAAATCTATAAAAAAATTAAA 9;;:+<<<<<;<<:<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:7:283:186:707 83 seq2 1321 99 36M = 1154 -203 CGCTTGTACTTCTAAATCTATAACAAAATTAAAATT 889;<7;<7<<7<<<<<7<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS1_105:3:308:66:538 147 seq2 1321 99 35M = 1138 -218 CGCTTGTACTTCTAAATCTATAACAAAATTAAAAT 996999;<9;<:<<<<<:<<7<<<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS1_108:5:11:555:330 163 seq2 1321 99 35M = 1492 206 CGCTTGTACTTCTAAATCTATAAAAAAATTAAAAT <<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<4<;< MF:i:18 Aq:i:56 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:7:84:411:336 73 seq2 1322 75 35M * 0 0 GCTTGTACTTCTAAATCTATAAAAAAATTAAAATT <<<;<<<;<<<<<<<<<<<<:<<;<<<<<<;8<;< MF:i:32 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:5:52:1278:1478 163 seq2 1322 47 35M = 1513 226 GCTTGTACTTCTAAATCTATAACAAAATTAAAATT <<<<<<<<<<<<<<9<<<<<<<<<<<<<<<<9<<< MF:i:18 Aq:i:0 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS56_53:3:101:809:776 147 seq2 1326 99 35M = 1160 -201 GTACTTCTAAATCTATAAAAAAATTAAAATTTAAC <<<-<;7;<<<<:;<<<7<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS192_3:3:221:881:916 147 seq2 1327 96 35M = 1168 -194 TAATTCTAAATCTAGAACAAAATTAAAATTTAACA 44%-4(5<;9/,:<68:1<:8<:<<84;<<<<<;< MF:i:18 Aq:i:24 NM:i:3 UQ:i:41 H0:i:0 H1:i:0
+EAS1_105:1:28:745:352 147 seq2 1329 99 35M = 1159 -205 CTTCTAAATCTATAACAAAATTAAAATTTAACAAA 4;;*;<<<;;<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS114_45:2:23:1754:796 99 seq2 1329 99 35M = 1488 194 CTTCTAAATCTATAAAAAAATTAAAATTTAACAAA ;<<;<;<;<;<;<<;;;;;<<<<;;<<<<<97999 MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:2:96:419:327 147 seq2 1331 99 35M = 1149 -217 TCTAAATCTATAACAAAATTAAAATTTAACAAAAG ;1<<<<<9<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS1_97:4:274:287:423 163 seq2 1332 75 35M = 1515 218 CTAAATCTATAAAAAAATTAAAATTTAACAAAAGT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:7:35:392:2042 83 seq2 1332 99 35M = 1168 -199 ATAAATCTATAAAAAAATTAAAATTTAACAAAAGT +<<<<</<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:1 UQ:i:10 H0:i:1 H1:i:0
+EAS54_65:2:94:356:809 83 seq2 1334 99 35M = 1151 -218 AAATCTATAACAAAATTAAAATTTAACAAAAGTAA <<<<3<<<<;;<<<<<<<<<;<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:1 UQ:i:26 H0:i:0 H1:i:1
+EAS114_30:7:319:11:255 83 seq2 1337 92 35M = 1179 -193 TCTATAAAAAAATTAAAATTTAACAAAAGTAAATA ;8<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;<<< MF:i:18 Aq:i:17 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:7:35:538:1882 83 seq2 1337 98 35M = 1160 -212 TCTATAACAAAATTAAAATTTAACAAAAGTAAATA 73797;;3<;;<6;;<<<;8:;:;<;:<:;<<;;; MF:i:18 Aq:i:43 NM:i:1 UQ:i:18 H0:i:0 H1:i:1
+EAS51_66:1:64:182:741 153 seq2 1338 10 35M * 0 0 AAAAAAACAAATTAAACTCTAACAAAAGTAAATAA (+;1&(9*%0<*(*&<*5,/+<,&<&<<6<<<<<< MF:i:32 Aq:i:10 NM:i:6 UQ:i:63 H0:i:0 H1:i:0
+EAS54_61:4:86:660:932 147 seq2 1338 99 35M = 1154 -219 ATATAAAAAAATTAAAATTTAACAAAAGTAAATAA &<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:71 NM:i:1 UQ:i:5 H0:i:1 H1:i:0
+EAS56_53:8:122:430:882 147 seq2 1338 99 35M = 1147 -226 CTATAAAAAAATTAAAATTTAACAAAAGTAAATAA 0<<:<<<<<<<:3<<<<<<<<<:<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:6:99:557:427 83 seq2 1342 99 35M = 1186 -191 AACAAAATTAAAATTTAACAAAAGTAAATAAAACA <<-<<<<9<<<<<:<<<<9<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:1 UQ:i:12 H0:i:1 H1:i:0
+B7_593:5:299:743:762 83 seq2 1345 99 36M = 1173 -208 AAAATTAAAATTTAACAAAAGTAAATAAAACACATA ;<<<1<<<<<+<;<;7<<;<<<<<<<<<;<<;;<<7 MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:2:303:428:326 99 seq2 1345 74 35M = 1515 205 AAAATTAAAATTTAACAAAAGTAAATAAAACACAT <<<<<<<<<<<<<<<<<<<<<<<<<<;<<<<<<<; MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:4:192:714:341 83 seq2 1346 99 35M = 1170 -211 AAATTAAAATTTAACAAAAGTAAATAAAACACATA <<<3;<<<<9:<<</<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:1:189:876:833 83 seq2 1349 99 36M = 1173 -212 TTAAAATTTAACAAAAGTAAATAAAACACATAGCTA 7;<<<<:;;<</<<<<<<<<<;<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:7:37:79:581 163 seq2 1349 68 35M = 1533 219 TTAAAATTTAAAAAAAGTAAATAAAACACATAGCT <>4<>>>>;>>&>->9>9;4>->>>>,4>9>,<1> MF:i:18 Aq:i:27 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+EAS139_19:2:82:154:1333 99 seq2 1349 77 40M = 1511 202 TTAAAATTTAACAAAAGTAAATAAAACACACAGCTAAAAC <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<;;<;;:;: MF:i:18 Aq:i:0 NM:i:1 UQ:i:27 H0:i:1 H1:i:0
+EAS188_7:1:290:286:763 99 seq2 1349 75 35M = 1515 201 TTAAAATTTAACAAAAGTAAATAAAACACATAGCT <<<<<<<<<<<<<<<<7<<<<<<<<<<<<<<<8<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:4:3:248:1491 73 seq2 1349 99 35M * 0 0 TTAAAATTTAACAAAAGTAAATAAAACACATAGCT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<:8:< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:3:6:1064:1805 99 seq2 1350 99 35M = 1502 187 TAAAATTTAACAAAAGTAAATAAAACACATAGCTA <<<<<<<<<<<<<<<<<<<<<<;<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_595:6:137:811:130 83 seq2 1351 99 35M = 1175 -211 AAAATTTAACAAAAGTAAATAAAACACATAGCTAA <<<<<<<<<:<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:1:155:809:543 83 seq2 1352 99 35M = 1156 -231 AAATTTAACAAAAGTAAATAAAACACATAGCTAAA <<<+0<<<9<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_63:3:41:468:459 99 seq2 1352 75 35M = 1513 196 AAATTTAACAAAAGTAAATAAAACACATAGCTAAA <<<<<<<<<<<<<<<<<<<<<;<<<<<<<<<<;;7 MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:4:31:622:216 73 seq2 1354 99 35M * 0 0 ATTTAACAAAAGTAAATAAAACACATAGCTAAAAC <<<<<<<<<<<<<<<<<<<<<<<<<<<<8<<96<7 MF:i:18 Aq:i:70 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:8:105:854:975 163 seq2 1354 71 35M = 1523 202 ATTTAACAAAAGTAAATAAAACACATAGCTAAAAC <<<<<<<<<<<<<<<<<<<<<<<<<<<7:<;;;;5 MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:7:26:749:174 147 seq2 1357 78 35M = 1183 -209 TAACAAAAGTAAATAAAACACATAGCTAAAACTAA (<<)<<<<6<<<<<<<<<<&:<3<<<6<<<)<:<< MF:i:18 Aq:i:11 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:6:21:553:57 147 seq2 1358 99 35M = 1197 -196 AACAAAAGTAAATAAAACACATAGCTAAAACTAAA <<+<<<<<<<<<;<<<<8<<<<<<8<<<<<;<<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:2:128:629:484 83 seq2 1359 96 35M = 1185 -209 AAAAAAGTAAATAAAACACATAGCTAAAACTAAAA :(::<</*;<<99<<<-<;<<<<4<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:1 UQ:i:7 H0:i:1 H1:i:0
+EAS1_108:2:85:580:481 83 seq2 1359 99 35M = 1167 -227 AAAAAAGTAAATAAAACACATAGCTAAAACTAAAA =)====77========8=3====3=========== MF:i:18 Aq:i:71 NM:i:1 UQ:i:8 H0:i:1 H1:i:0
+B7_589:8:139:727:808 83 seq2 1363 99 35M = 1195 -203 AAGTAAATAAAACACATAGCTAAAACTAAAAAAGC <<;<<<<<<<<<;<;<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:2:22:471:500 83 seq2 1365 99 35M = 1200 -200 GTAAATAAAACACATAGCTAAAACTAAAAAAGCAA =9===0====;=77<==8;====;=========== MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_103:7:112:578:782 147 seq2 1366 89 35M = 1183 -218 AAAATAAAACACATAGCTAAAACTAAAAAAGCAAA +<<<%<<<<6<;<<<<6:<<<<:<<<<<<<<<<<< MF:i:18 Aq:i:20 NM:i:1 UQ:i:10 H0:i:1 H1:i:0
+EAS221_3:4:81:687:1379 83 seq2 1366 99 35M = 1210 -191 TAAATAAAACACATAGCTAAAACTAAAAAAGCAAA <<<<<<<<<<<:<<<<:<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_65:3:320:20:250 99 seq2 1367 77 35M = 1532 200 AAATAAAACACATAGCTAAAACTAAAAAAGCAAAA <<<<<<<<<<<<<<<<<;<<<<<<<<<;+:<;<<3 MF:i:18 Aq:i:6 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:5:312:985:871 83 seq2 1369 99 35M = 1212 -192 ATAAAACACATAGCTAAAACTAAAAAAGCAAAAAC <8<<<<.<.<<<<:<<<<<.<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:6:12:484:836 83 seq2 1372 99 35M = 1197 -210 AAACACATAGCTAAAACTAAAAAAGCAAAAACAAA <<<<</<4<<&7<<<<;<<<<<<<<<<<<<1<<<< MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:3:176:402:458 83 seq2 1376 99 36M = 1210 -202 AAATAGCTAAAACTAAAAAAGCAAAAACAAAAACTA </<+<4&;<<<<7<<<<<<<<;<<<<<<<<<<<<<< MF:i:18 Aq:i:70 NM:i:1 UQ:i:14 H0:i:1 H1:i:0
+EAS139_11:7:50:1229:1313 163 seq2 1376 77 35M = 1528 187 ACATAGCTAAAACTAAAAAAGCAAAAACAAAAACT <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_65:4:124:367:72 83 seq2 1377 99 35M = 1175 -237 CATAGCTAAAACTAAAAAAGCAAAAACAAAAACTA ,<<<8,<<<<<:<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:5:267:170:250 83 seq2 1377 99 35M = 1189 -223 CATAGCTAAAACTAAAAAAGCAAAAACAAAAACTA -<;<5-:<<<<;<<<<<<<;;<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS220_1:6:24:105:1046 147 seq2 1377 99 35M = 1184 -228 CATAGCTAAAACTAAAAAAGCAAAAACAAAAACTA +<<<</<<<<<.<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:4:38:557:1441 83 seq2 1381 99 35M = 1212 -204 GATAAAAATAAAAAAGCAAAAACAAAAACTATGCT <&<<<<<,<<<<<<<<8<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:45 NM:i:2 UQ:i:16 H0:i:0 H1:i:1
+EAS188_7:7:67:719:786 83 seq2 1383 43 35M = 1218 -200 TAAAAAAAAAAAAGCAAAAACAAAAACTATGCTAA $<<;<-1<<<8<<*&<;<;,<<3<<<<33<<<33< MF:i:18 Aq:i:13 NM:i:2 UQ:i:28 H0:i:1 H1:i:0
+EAS114_39:2:5:1219:137 147 seq2 1384 99 35M = 1209 -210 AAAACTAAAAAAGCAAAAACAAAAACTATGCTAAG <<<<:<<<<<<<<<<<<<<<<<<<<<<<<<<:<<< MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:7:68:242:834 83 seq2 1386 99 36M = 1200 -222 AAATAAAAAAGCAAAAACAAAAACTATGCTAAGTAT <<68<<<<<<<8<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:1 UQ:i:21 H0:i:1 H1:i:0
+EAS51_66:3:166:532:438 147 seq2 1386 99 35M = 1194 -227 AACTAAAAAAGCAAAAACAAAAACTATGCTAAGTA <<&7<<<<<<<+<<<<<:<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:4:139:989:144 83 seq2 1387 99 35M = 1201 -221 ACTAAAAAAGCAAAAACAAAAACTATGCTAAGTAT <&<<<<<<<<7<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:3:81:12:1231 83 seq2 1391 99 35M = 1228 -198 AAAAAGCAAAAACAAAAACTATGCTAAGTATTGGT <<<<<<<7<<<<<<<5<'<6/<<<5<<<<<<2<<< MF:i:18 Aq:i:71 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_57:8:72:44:435 147 seq2 1392 76 35M = 1235 -192 AAAAGCAAAAACAAAAACTATGCTAAGTATTGGTA <<<<;7;<<<<;<<<<<<<<<<;<<<;<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_95:2:211:954:174 147 seq2 1393 99 35M = 1207 -221 AAAGAAAAAACAAAAACTATGCTAAGTATTGGTAA ====*=====6======================== MF:i:18 Aq:i:75 NM:i:1 UQ:i:9 H0:i:1 H1:i:0
+B7_595:7:149:123:265 83 seq2 1395 99 35M = 1213 -217 AGCAAAAACAAAAACTATGCTAAGTATTGGTAAAG <;&<<<<<:<<<<<<<<<<;<<<<<<<<<<<<<<< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_32:4:7:282:424 147 seq2 1397 83 35M = 1233 -199 CAAAAACAAAAACTATGCTAAGTATTGTTAAAGAT 1<<<<<9<<<<<31<77;;;;7<3<<2+;<3<<<< MF:i:18 Aq:i:41 NM:i:1 UQ:i:10 H0:i:0 H1:i:1
+B7_593:2:68:140:542 147 seq2 1398 95 36M = 1217 -217 AAAAACAAAAACTATGCTAAGTATTGGTAAAGATGT ;;<<;7<<<<<<:<<<:<<<:<<<<<<<<<<<<<<< MF:i:18 Aq:i:19 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_39:6:76:282:1668 147 seq2 1401 99 35M = 1240 -196 AACAAAAACTATGCTAAGTATTGGTAAAGATGTGG <<<<<:<<<8<8<<<<<::<<<<7<<<<<<2<<<8 MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:4:41:519:609 83 seq2 1401 99 35M = 1229 -207 AACAAAAACTATGCTAAGTATTGGTAAAGATGTGG <4;<;<<<<<<<<;4:<<;<<<<<<<<<<<;<<<< MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_26:4:100:238:596 83 seq2 1403 56 35M = 1220 -218 CAAAAACTATTCTAAGTATTGGTAAAGATGTGGGG 4<<<<;<3<3&<3<1<5<31<<3<<<<<<2<<;<, MF:i:18 Aq:i:17 NM:i:1 UQ:i:5 H0:i:0 H1:i:1
+EAS51_64:3:255:45:399 83 seq2 1404 99 35M = 1238 -201 AAAAACTATGCTAAGTATTGGTAAAGATGTGGGGA <5<5<4$;;7/<<<177&7;<<<<<<;<<4<<<<< MF:i:18 Aq:i:57 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:6:43:47:279 83 seq2 1405 99 35M = 1206 -234 AAAACTATGCTAAGTATTGGTAAAGATGTGGGGAA <:<<79<<<19<<<1<<9<<+<<<<<3<3<<<<<< MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_78:7:215:516:299 147 seq2 1406 99 35M = 1226 -215 AAGCTATGCTAAGTATTGGTAAAGATGTGGGGAAA ;;))7<8:855<<4<;:<<87<<<7<<;<<<*3<< MF:i:18 Aq:i:64 NM:i:1 UQ:i:8 H0:i:1 H1:i:0
+B7_591:7:116:814:89 147 seq2 1408 99 36M = 1231 -213 ACTATGCTAAGTATTGGTAAAGATGTGGGGAAAAAA :38<;<;<<<<;<<<<<<<<<<<<<;<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_610:7:34:144:868 83 seq2 1412 76 35M = 1226 -221 AGCTAAGGAATGGGAAAGGTGTGGGGAAAAAAGTA &9+&7<&&0&<6<.0<<7<<<<<<<<<<<<<<<<< MF:i:130 Aq:i:76 NM:i:4 UQ:i:50 H0:i:0 H1:i:0
+EAS51_62:7:312:236:655 83 seq2 1412 99 35M = 1222 -225 TGCTAAGTATTGGTAAAGATGTGGGGAAAAAAGTA <<8;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:6:17:1179:393 147 seq2 1412 99 35M = 1232 -215 TGCTAAGTATTGGTAAAGATGTGGGGAAAAAAGTA <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:78 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS188_7:6:107:447:488 83 seq2 1412 99 35M = 1233 -214 TGCTAAGTATTGGTAAAGATGTGGGGAAAAAAGTA <<3<<<<<<6<<<<<<<<<<<<<<<<7<<<<<<<< MF:i:18 Aq:i:53 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:6:73:420:812 147 seq2 1414 66 35M = 1232 -217 CTAAGTATTGGTAAAGATGTGGGGAAAAAAGTAAA 5'<<<,<&,<<,<<<<<7<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:3:215:840:760 83 seq2 1416 99 35M = 1256 -195 AAGTATTGGTAAAGATGTGGGGAAAAAAGTAAACT <<<8<::<;;<<<:<7<7<;;;<<<<<<<<<<;<< MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_589:8:118:829:36 147 seq2 1417 99 35M = 1233 -219 AGTATTGGTAAAGATGTGGGGAAAAAAGTAAACTC <8<<;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:52 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:4:290:121:79 83 seq2 1420 99 35M = 1257 -198 ATTGGTAAAGATGTGGGGAAAAAAGTAAACTCTCA <1<<:<<<<<<<;<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:8:174:557:872 83 seq2 1423 99 35M = 1237 -221 GGTAAAGATGTGGGGAAAAAAGTAAACTCTCAAAT .77<:<9<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:2:315:412:921 147 seq2 1424 99 35M = 1254 -205 GTAAAGATGTGGGGAAAAAAGTAAACTCTCAAATA 4-<79;<<<4:;:<<<<<<<<4<<<38<<;<<<<< MF:i:18 Aq:i:45 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:5:95:944:247 147 seq2 1424 99 40M = 1238 -226 GTAAAGATGTGGGGAAAAAAGTAAACTCTCAAATATTGCT :7::;<<<<<;;<<<<<<<<<<<<<<;<<<<<<<<<<<<< MF:i:18 Aq:i:78 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_30:6:137:741:866 83 seq2 1429 99 35M = 1268 -196 GATGAGGGGAAAAAAGTAAACTCTCAAATATTGCT <;0:%<:9<<<:<<<<;<<:<<;0;<<<<<::<<6 MF:i:18 Aq:i:70 NM:i:1 UQ:i:4 H0:i:1 H1:i:0
+EAS188_7:6:191:540:493 147 seq2 1432 99 35M = 1273 -194 GTGGGGAAAAAAGTAAACTCTCAAATATTGCTAGT <<9<1<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:78 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:1:49:911:980 83 seq2 1434 99 35M = 1241 -228 GGGGAAAAAAGTAAACTCTCAAATATTGCTAGTGG 44:7<<<<<<<<<<<<<;<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:62 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:1:248:122:558 83 seq2 1436 99 35M = 1243 -228 GGAAAAAAGTAAACTCTCAAATATTGCTAGTGGGA <;<<<<<<<<<<<;<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:52 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:1:168:609:646 147 seq2 1436 99 36M = 1264 -208 GGAAAAAAGTAAACTCTCAAATATTGCTAGTGGGAG ;;<<<<=======;;:;======;==<========= MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:4:7:1347:375 83 seq2 1436 99 35M = 1271 -200 GGAAAAAAGTAAACTCTCAAATATTGCTAGTGGGA 47999<<<;;;;;;:5;:;<;;<;;;;;<;;;;;< MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:4:282:962:46 147 seq2 1437 99 35M = 1282 -190 GAAAAAAGTAAACTCTCAAATATTGCTAGTGGGAG 69<<<<<:<<<:<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_73:5:169:714:644 83 seq2 1437 99 35M = 1231 -241 GAAAAAAGTAAACTCTCAAATATTGCTAGTGGGAG ;<<<<<<;<<<:<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_11:1:84:92:1246 83 seq2 1437 99 35M = 1265 -207 GAAAAAAGTAAACTCTCAAATATTGCTAGTGGGAG <<<<<<<<<<<<<<<8<<<<<<5<<<<<<<<<<<< MF:i:18 Aq:i:78 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_34:7:71:62:254 83 seq2 1438 99 35M = 1264 -209 AAAAAAGTAAACTCTCAAATATTGCTAGTGGGAGT <<<<<<;8<<<<;<:<<<<<<<;<<;<<<<<<<<< MF:i:18 Aq:i:43 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_97:7:28:979:519 83 seq2 1439 99 35M = 1278 -196 AAAAAGTAAACTCTCAAATATTGCTAGTGGGAGTA <<<<<6<<<<<<<<<<<<<<<8<<<<<<<<6<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_1:1:63:28:1549 83 seq2 1439 77 35M = 1247 -227 AAAAAGTAAACTCTCAAATATTGCTAGTGGGAGTA <<<<<<<<<:<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_593:7:15:244:876 147 seq2 1440 43 36M = 1246 -230 AAAAGTAAACTCTCAAATATTGCTAGTGTGAGTATA ;<<<7<<<<<.2<-<<<<<<<<<:<<<<<<<<<2<< MF:i:18 Aq:i:0 NM:i:1 UQ:i:27 H0:i:0 H1:i:1
+EAS56_59:8:80:542:549 83 seq2 1443 99 35M = 1271 -207 AGTAAACTCTCAAATATTGCTAGTGGGAGTATAAA =9====7=;=======;;==;========<===== MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_28:3:173:627:465 83 seq2 1444 99 36M = 1260 -220 GTAAACTCTCAAATATTGCTAGTGGGAGTATAAATT :<<<<;<;<;<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:51 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS219_FC30151:5:54:1351:910 147 seq2 1448 99 35M = 1270 -213 ACTCTCAAATATTGCTAGTGGGAGTATAAATTGTT <7<7;;<<<<<;<<;;<<;<<<<<<<<<<<<<<;< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS139_19:7:44:1807:833 147 seq2 1449 99 40M = 1301 -188 CTCTCAAATATTGCTAGTGGGAGTATAAATTGTTTTCCAC :6:9:<<<6<88<;<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:5:290:247:509 83 seq2 1450 99 35M = 1276 -209 TCTCAAATATTGCTAGTGGGAGTATAAATTGTTTT 49';<<<<<8;<;;<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS112_32:7:42:804:114 83 seq2 1452 99 35M = 1281 -206 TCAAATATTGCTAGTGGGAGTATAAATTGTTTTCC ;9<<;<<<<<<;<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS218_4:3:39:1671:1928 83 seq2 1453 99 35M = 1276 -212 CAAATATTGCTAGTGGGAGTATAAATTGTTTTCCA <<<<9<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_59:5:90:629:652 147 seq2 1456 99 35M = 1276 -215 ATATTGCTAGTGGGAGTATAAATTGTTTTCCACTT <:<7::<:<<<<<8<<<<<<<<<<<<<<<<<<<7< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_66:1:289:207:323 83 seq2 1462 99 35M = 1279 -218 CTAGTGGGAGTATAAATTGATTTCCACTTTGGAAA &</<7<<:<7::<<<<+3<-7<<:<7<<<<<<<<< MF:i:18 Aq:i:41 NM:i:1 UQ:i:12 H0:i:0 H1:i:1
+EAS1_95:7:280:607:113 83 seq2 1468 99 35M = 1303 -200 GGAGTATAAATTGTTTTCCACTTTGGAAAACAATT 18<-<<<<<<<<<<<<<8<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:72 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_99:3:21:423:169 147 seq2 1468 99 35M = 1270 -233 GGAGTATAAATTGTTTTCCACTTTGGAAAACAATT ;376;0<<<<99<<<<<<-;<4<<<<<<<<<;<<< MF:i:18 Aq:i:68 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS56_61:3:45:758:616 83 seq2 1473 99 35M = 1280 -228 ATAAATTGTTTTCCACTTTGGAAAACAATTTGGTA <<;<:<<<<<<<<<;<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:54 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_64:2:326:153:231 83 seq2 1477 43 35M = 1290 -222 ATTGTTTTCAACTTTGGAAAACAATTTGGTAATTT ::6=68=<*$;*=========6============= MF:i:18 Aq:i:0 NM:i:1 UQ:i:3 H0:i:0 H1:i:1
+EAS192_3:3:88:866:774 83 seq2 1478 99 35M = 1307 -206 TTGTTTTCCACTTTGGAAAACAATTTGGTAATTTC <<<;<<<<:<<<<<:<8<<<<<<<<<<8<<<<<<< MF:i:18 Aq:i:47 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_71:7:194:867:616 147 seq2 1481 99 35M = 1303 -213 TTTTCCACTTTGGAAAACAATTTGGTAATTTCGTT 38:;;:<:<<<<;<<<<<<<<<<;<<<<<<<<<<< MF:i:18 Aq:i:67 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_591:2:46:220:58 147 seq2 1483 99 36M = 1313 -206 TTCCACTTTGGAAAACAATTTGGTAATTTCGTTTTT 98<<<2<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:75 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS54_67:6:109:953:668 147 seq2 1485 99 35M = 1297 -223 CCACTTTGGAAAACAATTTGGTAATTTCGTTTTTT <:)9<<<<<<<<8:<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:30 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_1:6:4:1131:104 83 seq2 1487 99 35M = 1307 -215 ACTTTGGAAAACAATTTGGTAATTTCGTTTTTTTT 61;;;<<<<<<<<<;:<<<:<<;<<<<;<<<<<<< MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS114_45:2:23:1754:796 147 seq2 1488 99 35M = 1329 -194 CTTTGGAAAACAATTTGGTAATTTCGTTTTTTTTT 88897;;;;:;:;;;;;;;;;;;;;;;;;;;;;;; MF:i:18 Aq:i:69 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS1_108:5:11:555:330 83 seq2 1492 99 35M = 1321 -206 GGAAAACAATTTGGTAATTTCGTTTTTTTTTTTTT 6;6;9766+<<<<9:2=<===6============= MF:i:18 Aq:i:56 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:4:308:614:911 147 seq2 1493 90 35M = 1319 -209 AAAAACAATTTGGTAATTTAGTTTTTTTTTTTTTC %<<<;:<::<6,<<<<<<:<:<<<<<<<<<<<<<< MF:i:18 Aq:i:43 NM:i:2 UQ:i:31 H0:i:0 H1:i:1
+EAS139_19:1:82:946:392 83 seq2 1493 99 40M = 1297 -236 GAAAACAATTTGGTAATTTCGTTTTTTTTTTTTTCTTTTC :;:;:,::<:;<<<;;<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:74 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS51_62:2:260:147:818 83 seq2 1497 82 35M = 1303 -229 AAAATTTGGTAATTTAGTTTTTTTTTTTTTCTTTT 6.=..++==6=76==&===========99====== MF:i:18 Aq:i:41 NM:i:2 UQ:i:18 H0:i:0 H1:i:1
+B7_591:5:124:978:501 83 seq2 1499 99 36M = 1307 -228 AATTTGGTAATTTCGTTTTTTTTTTTTTCTTTTCTC <9<;<<::<;<<;<4<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:77 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+B7_597:8:147:360:141 147 seq2 1501 47 13M1D22M = 1319 -218 TTTGGTAATTTAGTTTTTTTTTTTTCTTTTCTCTT <86<<<<73<7<<<<<<<<<<<<<<<<<<<<<<<< MF:i:130 Aq:i:47 NM:i:1 UQ:i:27 H0:i:0 H1:i:0
+EAS114_39:3:6:1064:1805 147 seq2 1502 99 35M = 1350 -187 TTGGTAATTTCGTTTTTTTTTTTTTCTTTTCTCTT ;88<;<;;<<;;<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:76 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+EAS221_3:2:76:1729:813 83 seq2 1506 99 35M = 1317 -224 TAATTTCGTTTTTTTTTTTTTCTTTTCTCTTTTTT <+6<<<&1<<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:36 NM:i:0 UQ:i:0 H0:i:2 H1:i:0
+EAS54_65:6:326:71:741 153 seq2 1509 0 35M * 0 0 TCTCGTTTTTTTTTCTTTCTTTTCTCTTTTTTTTT !!<66<<<<<<<<<&<<7&<<<<:<*<<<<<<<<1 MF:i:32 Aq:i:0 NM:i:2 UQ:i:22 H0:i:1 H1:i:12
+EAS112_34:6:145:144:263 73 seq2 1509 0 35M * 0 0 TTTCGTTTTTTTTTTTTTTTTTTCCCCTTTCTTTT <<<<<<<<<<<<<<<<+4+4&+&(&&*2&8&&&)& MF:i:32 Aq:i:0 NM:i:4 UQ:i:29 H0:i:0 H1:i:0
+EAS1_105:1:329:407:872 73 seq2 1510 0 35M * 0 0 TTCGTTTTTTTTTTTTTTTTTTCCCTTTTTTTTTT <<<<<<<<<<<<<<<<<<6;<<&4::<++<(&;<< MF:i:32 Aq:i:0 NM:i:2 UQ:i:46 H0:i:0 H1:i:0
+EAS139_19:2:82:154:1333 147 seq2 1511 77 40M = 1349 -202 TTTTTTTTTTTTTTTTTTTTTCTTTTTTTTTTTTTTTTTT :5'::<<<;<<<<<<</3<<<&4&7<<<<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:85 H1:i:85
+EAS56_63:3:41:468:459 147 seq2 1513 0 35M = 1352 -196 TTTTTTTTTTTTTTTTTTTCTTTTTTTTTTTTTTT +;<<<<<<<<<<<;&<<;;88&<<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:85 H1:i:85
+EAS114_28:6:11:151:750 153 seq2 1513 5 36M * 0 0 GTTTTTATTTTTTTCCTCTCTCTTTTTTTTTTTTTT :'1:%4;4<<<+;6;&9+6;/<<<<<<<<<<<<<<< MF:i:32 Aq:i:5 NM:i:3 UQ:i:41 H0:i:0 H1:i:3
+EAS139_11:5:52:1278:1478 83 seq2 1513 47 35M = 1322 -226 GTTTTTTTTTTTTTCTTTTCTCTTTTTTTTTTTTT .8::<<<<<<<;<<<<<;<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:9 H1:i:85
+B7_591:2:309:798:997 153 seq2 1514 0 36M * 0 0 TTTTTTTTTTTTTTTTTTCTCTTTTTTTTTTTTTTT 466;<<744077+&7097&%&4<9<<<9<<<::<<< MF:i:32 Aq:i:0 NM:i:1 UQ:i:5 H0:i:12 H1:i:85
+EAS1_93:6:218:144:794 121 seq2 1514 0 35M = 1514 0 TTTTTTTTTTTTTCTTTTCTCTTTTTTTTTTTTTT ;92/;5:<6)+<5)67</9<&<&<<<:<<<57<<< MF:i:64 Aq:i:0 NM:i:0 UQ:i:0 H0:i:22 H1:i:85
+EAS1_93:6:218:144:794 181 seq2 1514 0 * = 1514 0 GGGTGCATTGCTATGTTGCGGTCGCTTTGCCTCCT ++(3:&)5<9035<3):-<53<+&&-+)<<&)&<6 MF:i:192
+EAS1_97:6:222:305:337 153 seq2 1514 0 35M * 0 0 TTTTTTTTTTTTTTTTTTCCCTTTTTTTTTTTTTT ;;;;;<<';<<<<*;<<<78;7<7<;<<<<<<<<< MF:i:32 Aq:i:0 NM:i:2 UQ:i:32 H0:i:0 H1:i:37
+EAS1_105:3:7:35:528 89 seq2 1514 0 35M * 0 0 TTTTTTTTTTGTTCTTTACTCTTTTTTTTTTTTTT <<<<<<<<<<5<<<(<<%<<-8<<<<<<<<<8<<< MF:i:32 Aq:i:0 NM:i:2 UQ:i:24 H0:i:0 H1:i:0
+EAS54_65:2:182:924:833 137 seq2 1514 0 35M * 0 0 TTTTTTTTTTTTTATTTGCGCTTTTTTTTTTTTTT <<<<<<<<<<<<<)7<<)3/:07<<9<9<<==<7< MF:i:32 Aq:i:0 NM:i:3 UQ:i:30 H0:i:0 H1:i:0
+EAS54_81:8:78:735:536 153 seq2 1514 0 35M * 0 0 TTTTTTTTTTTTTCATTTCTCTTTTTTTTTTTTTT ;9<<<<<<<.7<9'%1<<)2::<<<<<<<<<<<<< MF:i:32 Aq:i:0 NM:i:1 UQ:i:4 H0:i:0 H1:i:15
+EAS56_59:5:232:336:46 137 seq2 1514 0 35M * 0 0 ATTTTTTTTTTTTCTTTTCTCTTGTTTCTTTTTTT +<<<<<<<<<<<<6<<<<;<6<<&&<,3<<<<3,, MF:i:32 Aq:i:0 NM:i:3 UQ:i:50 H0:i:0 H1:i:0
+EAS188_4:5:308:552:77 89 seq2 1514 0 35M * 0 0 TTTTCTTTTTTTTCTTTTCTCTTTTTTTTTTTTTT 1;-<%<;8<<<<<&<5-<58:5:<<<<<<<<<<<< MF:i:32 Aq:i:0 NM:i:1 UQ:i:4 H0:i:30 H1:i:85
+B7_597:5:125:957:753 137 seq2 1515 0 35M * 0 0 TTTTTTTTTTTTCTCTCCTCTTTTTTTTTTTTTTT <8<<<;<8;8//++(,(+++&++(/+008880;;/ MF:i:32 Aq:i:0 NM:i:2 UQ:i:14 H0:i:0 H1:i:1
+EAS1_97:4:274:287:423 83 seq2 1515 0 35M = 1332 -218 TTTTTTTTTTTTTTTTTCTCTTTTTTTTTTTTTTT 7<<<<9<<9<<<.<<<<90-<<<<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:12 H1:i:85
+EAS54_71:8:234:21:950 89 seq2 1515 0 33M * 0 0 TTTTTTTTTTTTCTCCTCTCTTTTTTTTTTTTT <<<<<<<<<&<;2;&-<,<+;<<<7<<<;<;<; MF:i:32 Aq:i:0 NM:i:2 UQ:i:17 H0:i:0 H1:i:7
+EAS56_61:6:256:67:461 117 seq2 1515 0 * = 1515 0 TCATGTTTGTGTCTTTCTATGCATTTTTTTTTTTT !!7181!63:6-:!-163(-1%-18<<4<<<<<<< MF:i:192
+EAS56_61:6:256:67:461 185 seq2 1515 0 35M = 1515 0 TTGTTTTTTCTTCTTTTCTCTTTTTTTTTTTTTTT *.%53.:)1+9;3397;1795507+335;.&51)5 MF:i:64 Aq:i:0 NM:i:2 UQ:i:14 H0:i:2 H1:i:85
+EAS56_65:8:317:83:500 153 seq2 1515 0 35M * 0 0 TTTTTTTTTTTTCTTTTCTCCTTTTTTTTTTGTTT ;;;;;<<<<<<<3<<<)-;31<<)97<;9<<:<<< MF:i:32 Aq:i:0 NM:i:2 UQ:i:41 H0:i:0 H1:i:0
+EAS114_30:2:303:428:326 147 seq2 1515 0 35M = 1345 -205 TTTTTTTTTTTTTTTTTCTCTTTTTTTTTTTTTTT 4<;<<;<;<4<<8;;;;.8+;<<;<8<;<;<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:11 H1:i:85
+EAS188_7:1:290:286:763 147 seq2 1515 75 35M = 1349 -201 TTTTTTTTTTTTCTTTTCTCTTTTTTTTTTTTTTT <<<<;<<<<<<<&<<<<&77<<<<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:29 H1:i:85
+B7_591:7:89:67:709 89 seq2 1516 0 36M * 0 0 TTTTTTTTTTTGTCTTCTCTTTTTTTTTTTTTTTTT :7:::9:7:<<7<'<<477<<<<<<<<<:<<<<<:< MF:i:32 Aq:i:0 NM:i:2 UQ:i:28 H0:i:0 H1:i:17
+EAS56_65:3:47:64:359 89 seq2 1516 0 35M * 0 0 TTTTTTTTTTTCTCTCCTCTTTTTTTTTTTTTTTT <<<6<<<<<<<4<4</9<4@<<;<<<<<<<<<<<< MF:i:32 Aq:i:0 NM:i:2 UQ:i:33 H0:i:0 H1:i:6
+EAS56_65:4:296:78:421 121 seq2 1518 0 35M = 1518 0 TCTTTTTTTCTTTTCTCTTTTTTTTTTTTTTTTTT !!<<<:<<<<..<::<<<<<<<<<<<<<<<<<<<< MF:i:64 Aq:i:0 NM:i:1 UQ:i:4 H0:i:85 H1:i:85
+EAS56_65:4:296:78:421 181 seq2 1518 0 * = 1518 0 TGTTGGTGTTCGTTTTTTCTCCTGTTTCTTTTTCT <<*<4<<<;:<0<<<<<<<<+;<9<<1<<;<<<+: MF:i:192
+EAS1_95:4:238:124:196 89 seq2 1519 0 35M * 0 0 TTTTTTTTCTTTTCTCTTTTTTTTTTTTTTTTTTT <0<9.<5.5<<<<9<1<<5<<85<5<<<9<:<<<< MF:i:32 Aq:i:0 NM:i:0 UQ:i:0 H0:i:85 H1:i:85
+EAS54_65:7:56:57:985 117 seq2 1519 0 * = 1519 0 TTCTGTCTTCTCTCCTGTCTTCTTTTCTCTTCTTT <9'<.<7<<2<<;77<7<<<<7<7<<<<7<<<2<< MF:i:192
+EAS54_65:7:56:57:985 185 seq2 1519 0 35M = 1519 0 TTTTTTCTCTTTTCTCTTTTTTTTTTTTTTTTTTT 666666*6&1666+64666666666&266666666 MF:i:64 Aq:i:0 NM:i:1 UQ:i:9 H0:i:85 H1:i:85
+EAS56_61:3:5:45:441 89 seq2 1519 0 35M * 0 0 TTTTTTTTCTTTTCTCTTTTTTTTTTTTTTTTTTT ;;58:<:<(:<<11<&<1<<;<<<<><<<<<<<<< MF:i:32 Aq:i:0 NM:i:0 UQ:i:0 H0:i:82 H1:i:85
+B7_589:6:33:356:636 73 seq2 1520 0 35M * 0 0 TTTTTTTCTTTTCTCTTTTTTTTTTTTTTTTTTTT <<<<<<<8;<<<<<<<<<<<<<7<<<<<<<;;3&3 MF:i:32 Aq:i:0 NM:i:0 UQ:i:0 H0:i:14 H1:i:85
+EAS114_45:6:86:859:1779 137 seq2 1520 0 35M * 0 0 TTTTTTTCATTTCTCTTTTTTTTTTTTTTTTTTTT ;;;;;;;;;;;;;;;;;;;;;;;;;;;8;;)7699 MF:i:32 Aq:i:0 NM:i:1 UQ:i:26 H0:i:0 H1:i:15
+EAS54_71:8:105:854:975 83 seq2 1523 71 33M = 1354 -202 TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTG <<<<;<:<<;<&<;<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:0 UQ:i:0 H0:i:85 H1:i:85
+EAS51_62:4:187:907:145 153 seq2 1524 28 35M * 0 0 TTTCTTCTCTCTCTTTTTTTTTTTTTTTATTGCAT <<<+;;,6<<<<6<<<<<<<<<<<<<<<<<<<<<< MF:i:32 Aq:i:28 NM:i:3 UQ:i:59 H0:i:0 H1:i:0
+EAS54_71:4:284:269:882 73 seq2 1524 0 34M * 0 0 TTTCTTTTCTCTTTTTTTTTTTTTTGTTTTTGCA <;<<<<<8<7<8;<<<;<7<<<<<;272;73&&) MF:i:32 Aq:i:0 NM:i:1 UQ:i:17 H0:i:0 H1:i:85
+EAS56_63:4:141:9:811 137 seq2 1524 10 35M * 0 0 TTTCTTTTCTCCTTTTTTTTTTTTTTTTTCTACAT <<<;<<<<<<<;<;<:<<<;<<<<<<<<..));;. MF:i:32 Aq:i:0 NM:i:3 UQ:i:47 H0:i:2 H1:i:27
+EAS114_30:6:277:397:932 73 seq2 1524 0 35M * 0 0 TTTCTTTTCACTTTTTTTTTTTTTTTTTTTTACTT <<<<<<<<<<<<<<<<<<<<<<<<<<<<:8(,0%( MF:i:32 Aq:i:0 NM:i:3 UQ:i:42 H0:i:2 H1:i:85
+EAS139_11:7:50:1229:1313 83 seq2 1528 77 35M = 1376 -187 TTTTTTCTTTTTTTTTTTTTTTTTTTTGCATGCCA <<<<,<&<7<<<<<<<<<<<<<<<<<<<<<<<<<< MF:i:18 Aq:i:0 NM:i:1 UQ:i:11 H0:i:3 H1:i:7
+EAS54_65:3:320:20:250 147 seq2 1532 77 35M = 1367 -200 TTTTTTTTTTTTTTTTTTTTTTTGCATGCCAGAAA +'''/<<<<7:;+<;::<<<;;<<<<<<<<<<<<< MF:i:18 Aq:i:6 NM:i:2 UQ:i:24 H0:i:1 H1:i:2
+EAS114_26:7:37:79:581 83 seq2 1533 68 35M = 1349 -219 TTTTTTTTTTTTTTTTTTTTTTTCATGCCAGAAAA 3,,,===6===<===<;=====-============ MF:i:18 Aq:i:27 NM:i:2 UQ:i:23 H0:i:0 H1:i:1
diff --git a/docs/assets/reference/file-management/conversion/reference_vcf2bed_foo.vcf b/docs/assets/reference/file-management/conversion/reference_vcf2bed_foo.vcf
new file mode 100644
index 0000000..84892be
--- /dev/null
+++ b/docs/assets/reference/file-management/conversion/reference_vcf2bed_foo.vcf
@@ -0,0 +1,27 @@
+##fileformat=VCFv4.0
+##FILTER=<ID=LowQual,Description="QUAL < 50.0">
+##FORMAT=<ID=AD,Number=.,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth (only filtered reads used for calling)">
+##FORMAT=<ID=GQ,Number=1,Type=Float,Description="Genotype Quality">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=PL,Number=3,Type=Float,Description="Normalized, Phred-scaled likelihoods for AA,AB,BB genotypes where A=ref and B=alt; not applicable if site is not biallelic">
+##INFO=<ID=AC,Number=.,Type=Integer,Description="Allele count in genotypes, for each ALT allele, in the same order as listed">
+##INFO=<ID=AF,Number=.,Type=Float,Description="Allele Frequency, for each ALT allele, in the same order as listed">
+##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
+##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP Membership">
+##INFO=<ID=DP,Number=1,Type=Integer,Description="Total Depth">
+##INFO=<ID=DS,Number=0,Type=Flag,Description="Were any of the samples downsampled?">
+##INFO=<ID=Dels,Number=1,Type=Float,Description="Fraction of Reads Containing Spanning Deletions">
+##INFO=<ID=HRun,Number=1,Type=Integer,Description="Largest Contiguous Homopolymer Run of Variant Allele In Either Direction">
+##INFO=<ID=HaplotypeScore,Number=1,Type=Float,Description="Consistency of the site with two (and only two) segregating haplotypes">
+##INFO=<ID=MQ,Number=1,Type=Float,Description="RMS Mapping Quality">
+##INFO=<ID=MQ0,Number=1,Type=Integer,Description="Total Mapping Quality Zero Reads">
+##INFO=<ID=QD,Number=1,Type=Float,Description="Variant Confidence/Quality by Depth">
+##INFO=<ID=SB,Number=1,Type=Float,Description="Strand Bias">
+##INFO=<ID=VQSLOD,Number=1,Type=Float,Description="log10-scaled probability of variant being true under the trained gaussian mixture model">
+##UnifiedGenotyperV2="analysis_type=UnifiedGenotyperV2 input_file=[TEXT CLIPPED FOR CLARITY]"
+#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NA12878
+chr1 873762 . T G 5231.78 PASS AC=1;AF=0.50;AN=2;DP=315;Dels=0.00;HRun=2;HaplotypeScore=15.11;MQ=91.05;MQ0=15;QD=16.61;SB=-1533.02;VQSLOD=-1.5473 GT:AD:DP:GQ:PL 0/1:173,141:282:99:255,0,255
+chr1 877664 rs3828047 A G 3931.66 PASS AC=2;AF=1.00;AN=2;DB;DP=105;Dels=0.00;HRun=1;HaplotypeScore=1.59;MQ=92.52;MQ0=4;QD=37.44;SB=-1152.13;VQSLOD=0.1185 GT:AD:DP:GQ:PL 1/1:0,105:94:99:255,255,0
+chr1 899282 rs28548431 C T 71.77 PASS AC=1;AF=0.50;AN=2;DB;DP=4;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=99.00;MQ0=0;QD=17.94;SB=-46.55;VQSLOD=-1.9148 GT:AD:DP:GQ:PL 0/1:1,3:4:25.92:103,0,26
+chr1 974165 rs9442391 T C 29.84 LowQual AC=1;AF=0.50;AN=2;DB;DP=18;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=95.26;MQ0=0;QD=1.66;SB=-0.98 GT:AD:DP:GQ:PL 0/1:14,4:14:60.91:61,0,255
diff --git a/docs/assets/reference/file-management/conversion/reference_wig2bed_foo.wig b/docs/assets/reference/file-management/conversion/reference_wig2bed_foo.wig
new file mode 100644
index 0000000..6e7af2a
--- /dev/null
+++ b/docs/assets/reference/file-management/conversion/reference_wig2bed_foo.wig
@@ -0,0 +1,18 @@
+track type=wiggle_0 name=foo description=foo
+chr1 147971109 147971159 -0.59
+chr1 147971147 147971197 0.12
+chr1 147971185 147971235 0.11
+chr1 147971223 147971273 -0.76
+chr1 147971261 147971311 -0.20
+chr1 147971299 147971349 -0.30
+chr1 147971337 147971387 0.09
+chr1 147971375 147971425 -0.51
+chr1 147971413 147971463 -0.00
+chr1 147971451 147971501 -0.09
+track type=wiggle_0 name=testfixed
+fixedStep chrom=chrX start=100 step=10 span=5
+1.9
+2.3
+-0.1
+1.1
+4.1
diff --git a/docs/assets/reference/set-operations/reference_bedextract_mechanism.png b/docs/assets/reference/set-operations/reference_bedextract_mechanism.png
new file mode 100644
index 0000000..59ab1dc
Binary files /dev/null and b/docs/assets/reference/set-operations/reference_bedextract_mechanism.png differ
diff --git a/docs/assets/reference/set-operations/reference_bedextract_motifs.bed b/docs/assets/reference/set-operations/reference_bedextract_motifs.bed
new file mode 100644
index 0000000..45b7335
--- /dev/null
+++ b/docs/assets/reference/set-operations/reference_bedextract_motifs.bed
@@ -0,0 +1,9474 @@
+chr1 4534161 4534177 -V_GRE_C 4.20586e-06 - CGTACACACAGTTCTT
+chr1 4534192 4534205 -V_STAT_Q6 2.21622e-06 - AGCACTTCTGGGA
+chr1 4534209 4534223 +V_HNF4_Q6_01 6.93604e-06 + GGACCAGAGTCCAC
+chr1 4962522 4962540 -V_GCNF_01 9.4497e-06 - CCCAAGGTCAAGATAAAG
+chr1 4962529 4962539 +V_NUR77_Q5 8.43564e-06 + TTGACCTTGG
+chr1 4962530 4962539 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGG
+chr1 4962530 4962543 +V_PPAR_DR1_Q2 4.57755e-06 + TGACCTTGGGCCT
+chr1 4962530 4962543 +V_COUP_DR1_Q6 7.90564e-06 + TGACCTTGGGCCT
+chr1 4962530 4962543 -V_RXRLXRB_01 5.3169e-06 - AGGCCCAAGGTCA
+chr1 4962530 4962543 -V_DR1_Q3 4.56975e-06 - AGGCCCAAGGTCA
+chr1 4962530 4962547 -V_PPARG_03 1.86159e-06 - ATCTAGGCCCAAGGTCA
+chr1 4962530 4962550 -V_PPARA_01 2.88858e-08 - AAAATCTAGGCCCAAGGTCA
+chr1 6178626 6178644 +V_CART1_01 2.8114e-06 + CCTTAATTACCCTTATCT
+chr1 6974413 6974426 -V_OCT1_03 1.43692e-06 - CGCATAATCAGGT
+chr1 6974457 6974470 +V_P50P50_Q3 6.38701e-06 + AGGGGAATTCCAT
+chr1 6974458 6974468 +V_CREL_01 5.43478e-06 + GGGGAATTCC
+chr1 6974480 6974498 +V_PIT1_Q6 8.4512e-06 + CATTCATGAATAATACTA
+chr1 6974506 6974516 -V_PARP_Q3 6.05736e-06 - TAGGAAATAG
+chr1 9745857 9745872 -V_ETS1_B 3.18763e-06 - ACAGGATGTGCTGGA
+chr1 10021937 10021952 -V_OCT4_01 6.46423e-06 - CATTCTAATTCAAAC
+chr1 11385614 11385628 +V_MYCMAX_01 6.58089e-06 + AAAGCACGTGGTGA
+chr1 11385614 11385628 -V_MYCMAX_01 6.58089e-06 - TCACCACGTGCTTT
+chr1 11385615 11385627 -V_CMYC_01 5.14108e-06 - CACCACGTGCTT
+chr1 11385617 11385625 -V_USF_C 9.89755e-06 - CCACGTGC
+chr1 11385662 11385673 +V_E12_Q6 8.542e-06 + CGCAGGTGGCA
+chr1 11386138 11386167 +V_MYOGNF1_01 4.90078e-06 + CACCTGTGCTTGCTGAGGATGAGCCTGCA
+chr1 11386170 11386183 +V_FXR_IR1_Q6 4.69196e-06 + AGGTAAATGACCT
+chr1 11386253 11386268 +V_OCT4_01 6.91054e-06 + TATTGAGTTGCAAAT
+chr1 11386254 11386269 +V_OCT4_02 6.36693e-07 + ATTGAGTTGCAAATT
+chr1 12016013 12016026 -V_STAT_Q6 4.29898e-06 - GTAGCTTCTGGGA
+chr1 12016033 12016048 +V_OCT4_01 8.48593e-06 + CTTTCTCTTGCAAAC
+chr1 12016056 12016072 +V_S8_01 9.74813e-06 + AGGACCCAATTAGCAT
+chr1 12016063 12016078 -V_OCT4_02 7.51249e-06 - ATTCTAATGCTAATT
+chr1 12016064 12016079 -V_OCT4_01 5.75922e-07 - TATTCTAATGCTAAT
+chr1 12363199 12363209 -V_MYB_Q6 8.47717e-06 - CTTAACTGGC
+chr1 13049840 13049855 -V_ETS1_B 4.52978e-06 - GGAGGAAGTGTTTTG
+chr1 13049841 13049857 -V_MAF_Q6 8.58364e-06 - TTGGAGGAAGTGTTTT
+chr1 13049842 13049856 -V_ETS2_B 5.16909e-06 - TGGAGGAAGTGTTT
+chr1 13049939 13049954 +V_OCT4_01 5.63049e-06 + CATTCTTATTCAAAC
+chr1 14481272 14481283 +V_GAF_Q6 7.13471e-06 + CAAATTCCCAT
+chr1 14695860 14695869 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr1 18213740 18213754 +V_POU3F2_01 5.34962e-06 + ATGCAGTCATTCAT
+chr1 18213788 18213803 +V_VDR_Q3 4.52515e-06 + GAGGCAAAAGGGTCA
+chr1 19223979 19223988 +V_AP2ALPHA_01 6.01835e-06 + GCCCCGGGG
+chr1 19223979 19223988 +V_AP2GAMMA_01 4.51376e-06 + GCCCCGGGG
+chr1 30960793 30960808 +V_PEBP_Q6 2.84305e-06 + CCTGACCACAGACTG
+chr1 30960793 30960808 -V_AML_Q6 5.76916e-06 - CAGTCTGTGGTCAGG
+chr1 30960816 30960829 -V_CEBP_01 2.0866e-06 - TGTTTGGAAAGGG
+chr1 30960887 30960899 -V_NANOG_01 6.30438e-06 - AGGATCATTGCC
+chr1 30960935 30960945 -V_ESE1_Q3 2.21291e-06 - TGTTTCCTGT
+chr1 35289565 35289578 +V_AP2_Q6_01 3.36599e-06 + CATCCCCCAGGCG
+chr1 35289566 35289578 +V_AP2_Q6 1.83748e-06 + ATCCCCCAGGCG
+chr1 35983731 35983743 +V_PAX4_03 4.004e-06 + CACCACCACCCC
+chr1 35983734 35983743 -V_ZIC2_01 9.89755e-06 - GGGGTGGTG
+chr1 35983736 35983747 +V_SP1SP3_Q4 4.25103e-06 + CCACCCCCTCC
+chr1 35983738 35983751 -V_SP1_Q6 6.05961e-06 - TGGGGGAGGGGGT
+chr1 35983739 35983749 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr1 35983739 35983750 +V_SP1SP3_Q4 2.8432e-06 + CCCCCTCCCCC
+chr1 35983740 35983749 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr1 35983740 35983750 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr1 35983741 35983749 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr1 35983741 35983750 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr1 36113642 36113656 +V_DMRT7_01 7.83627e-06 + TTGTTACTTTGTGT
+chr1 36113642 36113657 +V_DMRT1_01 9.55793e-06 + TTGTTACTTTGTGTC
+chr1 37039536 37039550 +V_E2A_Q2 1.48735e-06 + CCAGCTGTCTCAGC
+chr1 37158695 37158706 -V_NFY_Q6 7.17826e-06 - GAGCCAATCAC
+chr1 38880941 38880956 -V_OCT4_02 2.05222e-06 - ATTGAGATGTAAATG
+chr1 38880942 38880957 -V_OCT4_01 1.18992e-06 - CATTGAGATGTAAAT
+chr1 39585401 39585416 +V_OCT4_01 8.48593e-06 + TATTCTAATGTTGAT
+chr1 39585457 39585476 -V_PU1_Q4 6.99665e-06 - TCACATTACTTCTTCTTTT
+chr1 39590975 39590990 +V_OCT4_01 2.64195e-06 + CTTTGATATGTTAAT
+chr1 39590980 39590990 +V_POU3F2_02 5.63759e-06 + ATATGTTAAT
+chr1 43051312 43051332 -V_PPARA_01 3.8328e-06 - CTAGAGTAGGAAATATGTCA
+chr1 43489028 43489046 +V_GCNF_01 2.42176e-06 + CCCAGGGTCAAGGACAGC
+chr1 43489031 43489043 +V_PXR_Q2 3.24502e-06 + AGGGTCAAGGAC
+chr1 43628111 43628125 -V_ETS2_B 4.91978e-06 - GACAGGAAGCCAGC
+chr1 43628114 43628124 +V_ESE1_Q3 8.80613e-06 + GGCTTCCTGT
+chr1 44641792 44641805 +V_AP1_01 3.63092e-06 + GTGTGACTCAGCA
+chr1 44641793 44641806 -V_NRF2_Q4 7.14187e-06 - GTGCTGAGTCACA
+chr1 44641794 44641805 -V_NFE2_01 2.04834e-07 - TGCTGAGTCAC
+chr1 44641794 44641805 -V_MAF_Q6_01 4.72643e-06 - TGCTGAGTCAC
+chr1 44641847 44641860 -V_AP2_Q6_01 6.77812e-06 - CTGCCCCCAGGCA
+chr1 44670659 44670670 -V_E12_Q6 4.37943e-06 - AGCAGGTGTCC
+chr1 44670676 44670688 -V_OCT1_07 7.06349e-06 - TCCATGCTAATT
+chr1 51566076 51566094 +V_PAX8_B 4.52034e-06 + TCACCCAAGCATGAGTCA
+chr1 51566082 51566094 -V_AP1_Q2_01 6.99389e-06 - TGACTCATGCTT
+chr1 51566083 51566098 +V_BACH1_01 2.64203e-06 + AGCATGAGTCATCAA
+chr1 51566084 51566097 +V_AP1_01 9.37963e-07 + GCATGAGTCATCA
+chr1 51566085 51566096 +V_BACH2_01 6.59115e-07 + CATGAGTCATC
+chr1 51872597 51872607 -V_ESE1_Q3 8.80613e-06 - GGCTTCCTGT
+chr1 51872682 51872690 +V_CACD_01 9.89755e-06 + CCACACCC
+chr1 54541828 54541849 +V_PAX6_01 7.64024e-06 + GTTCTTCATGGATGAATGACA
+chr1 54657244 54657254 -V_TAL1_Q6 2.26726e-06 - TCCATCTGCT
+chr1 54657254 54657266 -V_NANOG_01 4.0942e-06 - AGGCTCATTGCC
+chr1 54657279 54657295 -V_MEF2_01 6.78808e-07 - TTGTAAAAATAACTTT
+chr1 54657298 54657311 -V_NRF2_Q4 5.51501e-06 - GTGCAGAGTCATC
+chr1 54657299 54657310 -V_MAF_Q6_01 4.72643e-06 - TGCAGAGTCAT
+chr1 54883620 54883638 -V_GCNF_01 1.92021e-06 - AGCAAGTTCACTGTCAAG
+chr1 54883642 54883654 +V_PAX4_03 9.67001e-06 + AGCCTCCACCCC
+chr1 54883673 54883687 +V_E2A_Q2 1.59265e-06 + CCAGCTGCCTCTGC
+chr1 54883698 54883712 +V_ATF3_Q6 5.49015e-06 + CCCTGACTTCATCC
+chr1 54883906 54883921 +V_SREBP_Q6 3.71245e-06 + GTTATCACCCCAGGG
+chr1 54884051 54884066 -V_AR_01 9.12477e-06 - GGTGCAGGGTGTGCT
+chr1 56979509 56979525 +V_NFKB_Q6_01 3.99239e-06 + GCTTAGGAAATTCCCT
+chr1 56979512 56979526 -V_NFKB_Q6 2.23293e-06 - TAGGGAATTTCCTA
+chr1 56979513 56979525 -V_NFKB_C 6.70077e-06 - AGGGAATTTCCT
+chr1 56979514 56979524 -V_NFKAPPAB65_01 9.08563e-07 - GGGAATTTCC
+chr1 56979514 56979524 -V_CREL_01 7.08941e-06 - GGGAATTTCC
+chr1 56979514 56979524 -V_NFKAPPAB_01 1.65463e-06 - GGGAATTTCC
+chr1 57630776 57630786 -V_IK_Q5 4.8392e-06 - GCTGGGAGGC
+chr1 58426763 58426782 +V_OCT1_01 9.79613e-07 + TCTCATATGCAAATTTTGC
+chr1 58426768 58426778 +V_OCT1_B 7.0832e-06 + TATGCAAATT
+chr1 58426768 58426779 -V_OCT_Q6 7.92146e-06 - AAATTTGCATA
+chr1 59270027 59270038 +V_E12_Q6 5.0287e-06 + AACAGGTGCCC
+chr1 59454536 59454547 -V_GATA_C 2.49448e-07 - AGATAAGGCCT
+chr1 59454553 59454568 -V_SREBP_Q6 8.19611e-07 - CAGGCCACCCCAGGC
+chr1 59454553 59454568 -V_SREBP1_Q5 5.07585e-06 - CAGGCCACCCCAGGC
+chr1 59454562 59454575 -V_AP2_Q6_01 7.81175e-06 - TTGCCCCCAGGCC
+chr1 59480134 59480147 -V_SP1_Q6 7.54104e-06 - TGGGGGTGGGGTG
+chr1 59480136 59480146 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr1 59480137 59480146 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr1 59480137 59480151 +V_KROX_Q6 9.64613e-06 + CCCACCCCCATGCC
+chr1 59480213 59480225 +V_PAX4_03 3.30124e-06 + CATACCCACCCC
+chr1 59499706 59499723 +V_PU1_01 3.87664e-07 + CAAAAGGGGAAGTGCCT
+chr1 59499707 59499726 -V_PU1_Q4 3.95346e-06 - GAAAGGCACTTCCCCTTTT
+chr1 59499760 59499775 +V_SPZ1_01 6.9171e-07 + GCAGGAGGGATGGGG
+chr1 59499784 59499798 +V_ETS2_B 5.87575e-07 + GAGAGGAAGTACTT
+chr1 59720718 59720733 -V_OCT4_01 9.65557e-06 - TTTTGAAATGGTAAT
+chr1 59720739 59720757 -V_CDX_Q5 5.93228e-06 - TATAAATAGAGCTTTAAA
+chr1 59720777 59720789 -V_MEF2_Q6_01 5.70297e-06 - TGTTATTTTTAA
+chr1 59720837 59720851 -V_E2A_Q2 1.24142e-07 - CCACCTGCCTCTGC
+chr1 59720842 59720850 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr1 59720842 59720852 -V_MYOD_Q6 6.66004e-06 - TCCACCTGCC
+chr1 60907886 60907896 -V_NCX_01 2.56319e-06 - TGGTAAGTGG
+chr1 60907943 60907959 +V_MMEF2_Q6 6.11616e-06 + CTCTTTAAAAAGGCCC
+chr1 62463569 62463583 -V_E2A_Q2 7.08461e-06 - GCAGCTGTCTCCGA
+chr1 62463570 62463588 +V_MYOD_Q6_01 6.88833e-06 + CGGAGACAGCTGCAGATC
+chr1 62463719 62463729 +V_PR_Q2 8.13856e-06 + GAAAGGACAG
+chr1 62463721 62463730 -V_T3R_Q6 3.30926e-06 - CCTGTCCTT
+chr1 62463724 62463738 +V_ETS2_B 1.86567e-06 + GACAGGAAATATCT
+chr1 62799565 62799579 -V_KROX_Q6 2.32952e-06 - CCCACCCCCATCCC
+chr1 62799570 62799579 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr1 62799573 62799583 +V_IK_Q5 4.33614e-06 + GGTGGGAGGG
+chr1 62799574 62799584 -V_SP1_Q2_01 9.56538e-06 - CCCCTCCCAC
+chr1 63488940 63488949 -V_CACBINDINGPROTEIN_Q6 8.12736e-06 - GGGGCTGGG
+chr1 63488963 63488973 -V_ESE1_Q3 8.06007e-06 - TGCTTCCTGT
+chr1 63489078 63489086 +V_CACD_01 9.89755e-06 + CCACACCC
+chr1 64992874 64992892 -V_GCNF_01 4.79048e-06 - GCCAAGGTCACTGTCAGA
+chr1 64992882 64992891 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGG
+chr1 64992942 64992951 -V_SMAD3_Q6 7.33929e-06 - TGTCTGCCT
+chr1 64992968 64992983 +V_EVI1_04 4.77432e-08 + AGATAAGAAAAGATA
+chr1 64992968 64992984 +V_EVI1_01 4.8132e-08 + AGATAAGAAAAGATAA
+chr1 67982509 67982524 +V_OCT4_01 1.52058e-06 + TATTCAAATGCTAAT
+chr1 71834290 71834309 -V_PAX2_01 4.19071e-06 - CCTGGTCACGGGAGCTGGA
+chr1 71846935 71846947 -V_ETS_Q4 7.06097e-06 - AGCTACTTCCTC
+chr1 71846987 71847005 +V_MYOD_Q6_01 6.49155e-06 + TCAGGCCAGGTGGTGGGG
+chr1 71846990 71847000 -V_EBOX_Q6_01 6.43409e-06 - CCACCTGGCC
+chr1 71846990 71847002 +V_LMO2COM_01 2.70597e-06 + GGCCAGGTGGTG
+chr1 71847040 71847053 -V_STAT1STAT1_Q3 5.39318e-06 - GTTTCCACGAACA
+chr1 72808063 72808074 -V_LEF1TCF1_Q4 3.03779e-07 - CCTTTGATGTT
+chr1 72808065 72808075 +V_LEF1_Q2_01 1.81713e-06 + CATCAAAGGG
+chr1 73354043 73354059 +V_AP2_Q3 4.37407e-07 + GGCCCCGGGCTACAGG
+chr1 73354044 73354053 +V_AP2ALPHA_01 6.01835e-06 + GCCCCGGGC
+chr1 73354044 73354053 +V_AP2GAMMA_01 6.01835e-06 + GCCCCGGGC
+chr1 73354044 73354053 -V_AP2ALPHA_01 3.00918e-06 - GCCCGGGGC
+chr1 73354044 73354053 -V_AP2GAMMA_01 3.00918e-06 - GCCCGGGGC
+chr1 73927400 73927418 +V_CDX_Q5 6.79733e-07 + AACAAACAAGGCAATAAA
+chr1 73927502 73927515 +V_HNF4ALPHA_Q6 6.68176e-06 + CTGAGCTTTGCAT
+chr1 74120345 74120359 +V_PAX6_Q2 5.16503e-06 + CTGGCCTCGAACTC
+chr1 74120484 74120496 +V_PAX4_03 3.30124e-06 + AGTCCCCACCCC
+chr1 74120484 74120497 -V_MAZR_01 5.68389e-06 - GGGGGTGGGGACT
+chr1 74120487 74120497 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr1 74120488 74120497 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr1 74120488 74120499 -V_EGR_Q6 8.04446e-06 - GTGGGGGTGGG
+chr1 74120488 74120502 +V_KROX_Q6 1.8783e-06 + CCCACCCCCACCTC
+chr1 74120492 74120503 +V_SP1SP3_Q4 7.42043e-06 + CCCCCACCTCC
+chr1 74120494 74120508 +V_KROX_Q6 4.94478e-06 + CCCACCTCCACCCC
+chr1 74120496 74120508 +V_PAX4_03 1.74945e-06 + CACCTCCACCCC
+chr1 74251775 74251794 +V_PU1_Q4 3.23812e-06 + TGGCTTGACTTCCTCTATC
+chr1 74251782 74251794 -V_ELF1_Q6 1.64054e-06 - GATAGAGGAAGT
+chr1 74251921 74251931 -V_TITF1_Q3 4.46892e-06 - AGTCAAGTGT
+chr1 74425857 74425872 -V_VDR_Q3 1.74075e-06 - GGGGCAGTGTGGTGA
+chr1 74425874 74425892 -V_GCNF_01 5.34472e-07 - GACAAGTTCAAGGACAGC
+chr1 74425875 74425889 +V_PAX6_Q2 1.1137e-06 + CTGTCCTTGAACTT
+chr1 74425887 74425903 -V_EVI1_01 6.72177e-06 - AGACAAGAGGAGACAA
+chr1 74852058 74852071 -V_SP1_Q6 3.06772e-06 - GGGGGGTGGGGTG
+chr1 74852079 74852093 -V_E2A_Q2 4.16854e-06 - CCACCTGCCTGTGG
+chr1 74852080 74852098 +V_MYOD_Q6_01 6.49155e-06 + CACAGGCAGGTGGGTGAG
+chr1 74852084 74852092 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr1 74852107 74852115 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr1 74852107 74852116 -V_CKROX_Q2 8.90515e-06 - TCCCTCCCC
+chr1 74852134 74852143 -V_SMAD3_Q6 4.03003e-06 - TGTCTGTCT
+chr1 74852142 74852156 +V_E2A_Q2 4.48924e-06 + ACACCTGCCTCATT
+chr1 74852143 74852151 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr1 75443779 75443800 +V_PPARG_01 6.38257e-06 + TAGGAGTTCAAAGGTTGTATA
+chr1 75443782 75443793 -V_LEF1TCF1_Q4 7.79522e-06 - CCTTTGAACTC
+chr1 75443844 75443853 -V_T3R_Q6 8.74404e-06 - CCTGTCCTG
+chr1 75443852 75443862 +V_PR_Q2 2.01502e-06 + GAAAGAACAG
+chr1 75730327 75730339 -V_ICSBP_Q6 3.19698e-06 - GACCTGAAACTG
+chr1 75730335 75730348 -V_MAZR_01 5.26215e-08 - GGGGGGGGGGACC
+chr1 75730337 75730352 -V_VDR_Q3 5.07321e-06 - GGGGGGGGGGGGGGA
+chr1 75730338 75730347 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr1 75730338 75730349 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr1 75730338 75730352 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr1 75730339 75730348 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr1 75730339 75730350 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr1 75730339 75730353 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr1 75730340 75730349 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr1 75730340 75730351 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr1 75730340 75730354 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr1 75730341 75730350 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr1 75730341 75730352 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr1 75730341 75730355 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr1 75730342 75730351 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr1 75730342 75730353 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr1 75730342 75730356 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr1 75730343 75730352 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr1 75730343 75730354 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr1 75730343 75730357 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr1 75730344 75730353 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr1 75730344 75730355 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr1 75730344 75730358 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr1 75730345 75730354 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr1 75730345 75730356 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr1 75730346 75730355 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr1 75730346 75730357 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr1 75730347 75730356 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr1 75730347 75730358 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr1 75730348 75730357 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr1 75730348 75730359 +V_SP1SP3_Q4 6.44809e-06 + CCCCCCCCCCG
+chr1 75730349 75730358 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr1 75730349 75730360 +V_SP1SP3_Q4 1.26473e-06 + CCCCCCCCCGC
+chr1 75730349 75730360 -V_EGR_Q6 8.85524e-06 - GCGGGGGGGGG
+chr1 75730350 75730361 +V_SP1SP3_Q4 4.92153e-07 + CCCCCCCCGCC
+chr1 75730351 75730360 +V_WT1_Q6 3.00918e-06 + CCCCCCCGC
+chr1 75730352 75730365 -V_SP1_Q6 6.05961e-06 - GAAGGGCGGGGGG
+chr1 75730353 75730363 -V_SP1_Q6_01 7.15614e-06 - AGGGCGGGGG
+chr1 77184649 77184663 +V_ERR1_Q2 6.98967e-06 + TTATAAAGGTCACC
+chr1 77184659 77184677 -V_HNF3_Q6_01 5.49174e-06 - GTTTTTGTTTACTTGGTG
+chr1 77184662 77184676 -V_FOXO1_02 3.23597e-06 - TTTTTGTTTACTTG
+chr1 77184662 77184676 -V_FOXO4_02 4.51573e-06 - TTTTTGTTTACTTG
+chr1 77184724 77184738 +V_GATA1_02 9.46586e-06 + CTCAAGATAAGGGT
+chr1 80147315 80147334 -V_PPARA_02 2.80256e-06 - CCTGGTCAGAGAGGGGAAG
+chr1 80147335 80147351 -V_MAF_Q6 9.01376e-06 - TGGGGAGAAGTAGGCT
+chr1 80147351 80147362 -V_NFY_Q6 4.23487e-06 - GAACCAATCAC
+chr1 80147356 80147371 -V_STAT5A_01 2.17491e-06 - GATTTCTAGGAACCA
+chr1 80147394 80147405 +V_FLI1_Q6 1.42541e-06 + CAGGAAGTCAC
+chr1 80147446 80147461 -V_OCT4_02 6.55103e-06 - ATTTTGATGCTAATC
+chr1 80234187 80234202 +V_OCT4_01 2.45515e-06 + TTTTATAATGTAAAT
+chr1 80234207 80234222 +V_OCT4_01 1.25077e-07 + CTTTGTCATGTAAAT
+chr1 80234208 80234223 +V_OCT4_02 6.99193e-06 + TTTGTCATGTAAATA
+chr1 84848730 84848742 +V_MEIS1_01 9.12201e-06 + CTGTGACAGAGG
+chr1 84848738 84848747 -V_T3R_Q6 8.74404e-06 - CCTGTCCTC
+chr1 84848769 84848779 -V_GATA1_05 2.21291e-06 - GCTGATAACA
+chr1 84848802 84848813 -V_CP2_01 8.6781e-06 - GCTCGCCCCAG
+chr1 88504107 88504121 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr1 88504110 88504121 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr1 88504111 88504122 +V_SP1SP3_Q4 3.76147e-06 + CCCCCCCCCCA
+chr1 88504112 88504121 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr1 88504142 88504163 -V_PPARG_01 4.23426e-06 - CTGGAGGTCAATGGTCTCCTT
+chr1 88504145 88504157 +V_NANOG_01 9.66273e-06 + GAGACCATTGAC
+chr1 88504146 88504159 +V_PPAR_DR1_Q2 9.61169e-06 + AGACCATTGACCT
+chr1 88504188 88504198 -V_PR_Q2 2.92358e-06 - GAGAGAACAC
+chr1 88504220 88504235 -V_ETS1_B 6.49821e-06 - ACAGGAAAGGCCTGG
+chr1 89123058 89123069 -V_EVI1_02 5.19283e-06 - AGACAAGACAG
+chr1 89123067 89123082 +V_OCT4_01 2.64195e-06 + CTTTCTTATGCTAAC
+chr1 89123151 89123181 +V_PAX4_04 3.37904e-06 + AACAATAAAATCCTCTTCCCTGCCCACCCT
+chr1 89123169 89123188 -V_PPARA_02 5.21998e-06 - TGGGGTCAGGGTGGGCAGG
+chr1 89123171 89123186 -V_VDR_Q3 8.03963e-06 - GGGTCAGGGTGGGCA
+chr1 90329266 90329277 +V_HELIOSA_02 1.64093e-06 + TTAAGGAAAAC
+chr1 90329377 90329391 -V_ETS2_B 4.50829e-06 - GACAGGAAATGCTC
+chr1 90329384 90329412 +V_PAX5_01 7.26108e-06 + TCCTGTCTCAGTGATGTGTAAAGACTAT
+chr1 90562710 90562721 +V_HELIOSA_02 9.0104e-07 + TTAAGGAAAAA
+chr1 90818456 90818469 -V_PPAR_DR1_Q2 9.61169e-06 - AGACCTTTGCTCT
+chr1 90818513 90818541 +V_PAX5_01 6.77263e-06 + GAGACTCTCACTGAAGAGGGGAAGCCCT
+chr1 90818531 90818539 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr1 90869197 90869211 +V_ERR1_Q2 9.64315e-07 + AGATCAAGGTCACC
+chr1 90869200 90869209 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr1 90869236 90869249 +V_AP2_Q6_01 5.04624e-06 + CAGGCCCCGGGCT
+chr1 90869238 90869254 +V_AP2_Q3 2.01813e-06 + GGCCCCGGGCTACATG
+chr1 90869239 90869248 +V_AP2ALPHA_01 6.01835e-06 + GCCCCGGGC
+chr1 90869239 90869248 +V_AP2GAMMA_01 6.01835e-06 + GCCCCGGGC
+chr1 90869239 90869248 -V_AP2ALPHA_01 3.00918e-06 - GCCCGGGGC
+chr1 90869239 90869248 -V_AP2GAMMA_01 3.00918e-06 - GCCCGGGGC
+chr1 90869301 90869315 +V_FOXO4_02 6.75869e-06 + TGGTTGTTTTCCTG
+chr1 91210514 91210526 +V_LMO2COM_01 1.12825e-06 + CTCCAGGTGCAG
+chr1 91210638 91210657 +V_PU1_Q4 2.63808e-06 + AGCTTCTGCTTCCCCTTGC
+chr1 91767842 91767850 -V_CACD_01 9.89755e-06 - CCACACCC
+chr1 92011405 92011420 -V_OCT4_01 1.94673e-06 - CTTAGTGATGCAAAT
+chr1 92798002 92798021 -V_GR_Q6 1.32544e-06 - TGGACTGACTGTGTTCTTT
+chr1 92798094 92798107 -V_NRF2_Q4 6.83622e-07 - CTGCTGTGTCATT
+chr1 92798095 92798106 -V_MAF_Q6_01 6.24509e-06 - TGCTGTGTCAT
+chr1 92798117 92798129 +V_GABP_B 3.43288e-06 + ACCGGAAGAGCC
+chr1 93209972 93209985 -V_MAZR_01 5.4366e-06 - GGGGGAGGGGAGA
+chr1 93209975 93209984 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr1 93209975 93209985 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr1 93209976 93209984 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr1 93209976 93209985 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr1 93209980 93209998 -V_CMYB_01 1.71705e-07 - CCCGGCTACAGTTGGGGG
+chr1 93209990 93210004 +V_STAT3STAT3_Q3 6.47014e-06 + TAGCCGGGAACTGG
+chr1 94604216 94604235 -V_SEF1_C 3.81729e-06 - GAGAGGGAGTGCTGTGGTC
+chr1 94785937 94785949 +V_PAX4_03 1.74945e-06 + CAGCCCCACCCC
+chr1 94785939 94785949 -V_SP1_Q6_01 4.32232e-06 - GGGGTGGGGC
+chr1 94785950 94785965 +V_OCT4_02 6.14224e-06 + TTTGTCATTCTGATT
+chr1 94786001 94786011 +V_MYB_Q6 8.47717e-06 + CTTAACTGGC
+chr1 100774284 100774299 +V_VDRRXR_01 2.15195e-06 + GGGTCAAGGGCTTCG
+chr1 103815748 103815762 -V_BLIMP1_Q6 1.7645e-06 - AGACAGTGAAATGA
+chr1 106967756 106967780 -V_STAT5A_02 6.02621e-06 - TTCTAAGAATCCAGGTGCAGGGGA
+chr1 107838898 107838907 +V_T3R_Q6 3.30926e-06 + CCTGTCCTT
+chr1 107838911 107838923 -V_FOXD3_01 4.65347e-06 - GAATGTTAGTTT
+chr1 108461227 108461242 +V_ETS1_B 1.87346e-06 + AGAGGAAGGGCTTGG
+chr1 110038835 110038844 -V_AP1_C 7.33929e-06 - GTGAGTCAG
+chr1 119546979 119546991 +V_GATA4_Q3 9.72874e-06 + AGATCAAGGGGA
+chr1 120522128 120522143 +V_OCT1_Q6 9.769e-08 + GTCTATGCAAATCAC
+chr1 120522130 120522143 -V_OCT_C 7.89827e-06 - GTGATTTGCATAG
+chr1 120522131 120522141 +V_OCT1_B 1.34745e-06 + TATGCAAATC
+chr1 120522131 120522142 -V_OCT1_Q5_01 3.69944e-07 - TGATTTGCATA
+chr1 120522131 120522142 -V_OCT_Q6 3.69944e-07 - TGATTTGCATA
+chr1 120798901 120798913 +V_GFI1B_01 3.49689e-06 + TCAATCACTGCT
+chr1 120798925 120798939 +V_CDX2_Q5 1.68142e-06 + AAACTTTAATGGCC
+chr1 120798926 120798941 -V_IPF1_Q4_01 4.63901e-06 - TGGGCCATTAAAGTT
+chr1 120798941 120798949 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr1 120798989 120798997 +V_STAT3_02 9.89755e-06 + GGCTTCCC
+chr1 121016954 121016962 +V_CACD_01 9.89755e-06 + CCACACCC
+chr1 121765684 121765698 +V_POU3F2_01 5.10647e-06 + GTGCATTTATTTAT
+chr1 121765690 121765710 +V_FOXP1_01 2.07084e-06 + TTATTTATGTCGTCCATTGT
+chr1 124504015 124504038 -V_OCT1_04 5.21912e-06 - GAATTGATATGTAAATAAAAGAA
+chr1 124504022 124504037 -V_OCT4_01 1.18992e-06 - AATTGATATGTAAAT
+chr1 124504071 124504084 -V_NRF2_Q4 7.08564e-06 - ATGCTGTTTCATG
+chr1 124504135 124504150 -V_OCT4_01 7.41924e-06 - TTTTGTAATGTTAAA
+chr1 124504139 124504153 +V_CEBPA_01 9.88249e-06 + ACATTACAAAAGCA
+chr1 128025805 128025824 +V_PU1_Q4 8.38434e-06 + AGAGTTTAGTTCCTCTTTG
+chr1 128025882 128025900 +V_PIT1_Q6 8.99316e-06 + AATGCATTTTTATTCAGA
+chr1 128025891 128025914 +V_OCT1_04 7.18714e-06 + TTATTCAGATGCAAATGAACCGA
+chr1 128025892 128025907 +V_OCT4_01 8.06422e-07 + TATTCAGATGCAAAT
+chr1 128025893 128025908 +V_OCT4_02 1.8361e-07 + ATTCAGATGCAAATG
+chr1 128025921 128025940 -V_OCT1_01 1.3607e-06 - CTTCATATGCAAATCTGCT
+chr1 128025923 128025936 +V_OCT_C 3.7644e-06 + CAGATTTGCATAT
+chr1 128025924 128025935 +V_OCT1_Q5_01 5.83412e-06 + AGATTTGCATA
+chr1 128025924 128025935 +V_OCT_Q6 4.86692e-06 + AGATTTGCATA
+chr1 128025925 128025935 -V_OCT1_B 1.34745e-06 - TATGCAAATC
+chr1 128025941 128025955 +V_ETS2_B 1.18015e-07 + GACAGGAAGTCAGT
+chr1 128025943 128025954 +V_FLI1_Q6 2.65254e-06 + CAGGAAGTCAG
+chr1 128025943 128025955 -V_ETS_Q4 9.46272e-06 - ACTGACTTCCTG
+chr1 128975665 128975677 +V_PAX4_03 4.34194e-06 + CGTCCCCACCCC
+chr1 128975665 128975678 -V_MAZR_01 3.68108e-06 - GGGGGTGGGGACG
+chr1 128975668 128975678 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr1 128975669 128975678 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr1 128975669 128975680 -V_EGR_Q6 8.04446e-06 - GTGGGGGTGGG
+chr1 128975669 128975683 +V_KROX_Q6 6.89701e-06 + CCCACCCCCACCCT
+chr1 128975671 128975683 +V_PAX4_03 2.70808e-06 + CACCCCCACCCT
+chr1 128975675 128975684 -V_CACBINDINGPROTEIN_Q6 2.23138e-06 - GAGGGTGGG
+chr1 128975698 128975712 -V_NFY_C 3.50995e-06 - ACTGAGTGGCTACT
+chr1 129991480 129991492 +V_LMO2COM_01 6.99984e-06 + CCCCAGGTGCCT
+chr1 130289194 130289207 -V_SOX_Q6 2.73292e-06 - CTCTTTGATATGT
+chr1 130703009 130703021 -V_LRH1_Q5 3.06315e-07 - CTGGCCTTGAAC
+chr1 130703048 130703057 +V_AP2ALPHA_01 3.00918e-06 + GCCCGGGGC
+chr1 130703048 130703057 +V_AP2GAMMA_01 3.00918e-06 + GCCCGGGGC
+chr1 130703048 130703057 -V_AP2ALPHA_01 6.01835e-06 - GCCCCGGGC
+chr1 130703048 130703057 -V_AP2GAMMA_01 6.01835e-06 - GCCCCGGGC
+chr1 130703072 130703082 +V_NCX_01 7.33929e-06 + GGGTAATTGG
+chr1 130703092 130703110 +V_GCNF_01 2.9359e-06 + TGGAAGGTCAAGTTCTTG
+chr1 130703093 130703103 -V_NUR77_Q5 8.43564e-06 - TTGACCTTCC
+chr1 133275033 133275052 -V_PU1_Q4 2.09001e-07 - TCCCCTCCCTTCCTCTTTC
+chr1 133275036 133275051 +V_ETS1_B 6.49821e-06 + AGAGGAAGGGAGGGG
+chr1 133275043 133275062 -V_PU1_Q4 5.81356e-06 - TCCCTCCTCTTCCCCTCCC
+chr1 133275053 133275067 +V_BLIMP1_Q6 6.44273e-06 + GAGGAGGGAAAGTC
+chr1 133275122 133275132 +V_IK_Q5 1.97133e-06 + GTTGGGAGGC
+chr1 133275393 133275408 +V_ETS1_B 9.14128e-08 + CCAGGAAGTGCTTCC
+chr1 133275394 133275405 +V_FLI1_Q6 7.204e-06 + CAGGAAGTGCT
+chr1 133275394 133275406 -V_ETS_Q4 6.38093e-07 - AAGCACTTCCTG
+chr1 134645705 134645735 +V_PAX4_04 6.29241e-06 + GGCAAATACCCTGCCCCTGGGCCCCACCCC
+chr1 134747540 134747551 -V_SP1SP3_Q4 7.42043e-06 - CCCCCACCTCC
+chr1 134747578 134747597 -V_OCT1_01 2.91073e-06 - TCTGTTATGCAAATGTGGC
+chr1 134747580 134747593 +V_OCT_C 4.58343e-06 + CACATTTGCATAA
+chr1 134747581 134747592 +V_OCT_Q6 7.02042e-06 + ACATTTGCATA
+chr1 134747582 134747592 -V_OCT1_B 4.33582e-06 - TATGCAAATG
+chr1 134747583 134747598 -V_OCT4_01 4.28625e-06 - TTCTGTTATGCAAAT
+chr1 134747612 134747622 -V_KAISO_01 5.02834e-06 - CTCCTGCTAA
+chr1 134775638 134775653 +V_CP2_02 2.79448e-06 + GCTGGGCTCAGCTGG
+chr1 135150186 135150199 +V_GATA1_04 1.94529e-06 + GGCAGATAAGGCT
+chr1 135150276 135150289 +V_AP2_Q6_01 4.11454e-06 + CTGCCCTCAGGCC
+chr1 135150323 135150333 +V_IK_Q5 6.1263e-07 + GTTGGGAGGG
+chr1 135687234 135687250 +V_AP2_Q3 2.48033e-06 + AGCCGCAGGCTGTAGC
+chr1 135687324 135687338 +V_ERR1_Q2 5.40592e-06 + CAGTCAAGGTCATA
+chr1 135687327 135687336 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr1 135830016 135830030 -V_ERR1_Q2 5.89079e-06 - CACTCAAGGTCAGA
+chr1 135830018 135830027 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr1 135830049 135830068 -V_ER_Q6 2.69428e-06 - ACATAGCACTGTGACCTGG
+chr1 135830050 135830061 +V_ER_Q6_02 2.03804e-06 + CAGGTCACAGT
+chr1 136275841 136275852 +V_PAX_Q6 6.2248e-07 + CTGGGACTCAC
+chr1 136275862 136275875 +V_AP2_Q6_01 3.58329e-06 + CCTGCCCCAGGCT
+chr1 137082767 137082776 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr1 137082767 137082777 -V_NUR77_Q5 2.98426e-06 - CTGACCTTGG
+chr1 137660247 137660261 +V_KROX_Q6 3.79201e-06 + CCTGCCCCCTCCTC
+chr1 137660331 137660350 -V_PU1_Q4 7.43608e-06 - CACCTCCCCTTCCCCCTAC
+chr1 138652719 138652734 +V_DMRT1_01 2.87544e-07 + ATGAAACATTGTTGC
+chr1 138652721 138652736 -V_DMRT1_01 7.31766e-07 - TAGCAACAATGTTTC
+chr1 138869404 138869412 +V_CACD_01 9.89755e-06 + CCACACCC
+chr1 138869466 138869482 -V_AP2_Q3 4.16477e-06 - GCCCCAGGGCTGAGAT
+chr1 138869547 138869565 +V_FOXJ2_01 4.32538e-06 + CTCAAAACAAACAAACAC
+chr1 138869549 138869562 +V_HNF3_Q6 3.26963e-06 + CAAAACAAACAAA
+chr1 138869550 138869563 -V_FOX_Q2 6.74059e-07 - GTTTGTTTGTTTT
+chr1 138869550 138869563 -V_HFH3_01 5.62995e-06 - GTTTGTTTGTTTT
+chr1 138869550 138869563 -V_HFH4_01 5.28594e-06 - GTTTGTTTGTTTT
+chr1 138869551 138869563 -V_FOXD3_01 9.66278e-07 - GTTTGTTTGTTT
+chr1 138869551 138869569 +V_FOXJ2_01 1.11381e-06 + AAACAAACAAACACACAA
+chr1 138869551 138869571 -V_FOXP1_01 8.15563e-06 - GTTTGTGTGTTTGTTTGTTT
+chr1 138869553 138869566 +V_HNF3_Q6 9.93672e-06 + ACAAACAAACACA
+chr1 138869554 138869567 -V_HFH3_01 5.62995e-06 - GTGTGTTTGTTTG
+chr1 138869554 138869567 -V_HFH4_01 6.7208e-06 - GTGTGTTTGTTTG
+chr1 138906991 138907002 -V_GATA_C 2.49448e-07 - AGATAAGGCCT
+chr1 138907019 138907035 -V_NFY_01 8.76397e-06 - TCCGGCCAATCAGCCT
+chr1 138907021 138907035 +V_NFY_C 7.05847e-06 + GCTGATTGGCCGGA
+chr1 140102660 140102672 +V_VDR_Q6 9.41602e-06 + CAGGGTGAACCT
+chr1 141391402 141391417 +V_OCT4_01 2.64195e-06 + CATTGTTATTCAAAC
+chr1 141391450 141391468 -V_GCNF_01 5.11581e-07 - CTCTAGTTCAAGTTCCCT
+chr1 147824869 147824884 +V_VDRRXR_01 2.15195e-06 + GGGTCAAGGGCTTCG
+chr1 152344166 152344176 -V_NFAT_Q4_01 4.46892e-06 - GTGGAAACTT
+chr1 152344235 152344250 +V_OCT4_01 1.8064e-07 + CTTTCATATGCAAAT
+chr1 152344236 152344251 +V_OCT4_02 2.41403e-06 + TTTCATATGCAAATG
+chr1 152344236 152344255 +V_OCT1_01 5.98378e-06 + TTTCATATGCAAATGATGG
+chr1 152344239 152344253 -V_OCT1_05 5.36356e-07 - ATCATTTGCATATG
+chr1 152344240 152344253 -V_OCT_C 3.09708e-07 - ATCATTTGCATAT
+chr1 152344241 152344251 +V_OCT1_B 4.33582e-06 + TATGCAAATG
+chr1 152344241 152344252 -V_OCT1_Q5_01 1.56035e-06 - TCATTTGCATA
+chr1 152344241 152344252 -V_OCT_Q6 7.39888e-07 - TCATTTGCATA
+chr1 153117909 153117924 -V_VDR_Q3 3.12027e-06 - GGGGGAGGGGAGAGA
+chr1 153117911 153117924 -V_MAZR_01 5.4366e-06 - GGGGGAGGGGAGA
+chr1 153117914 153117923 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr1 153117914 153117924 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr1 153117915 153117923 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr1 153117915 153117924 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr1 153117954 153117971 +V_PU1_01 7.07495e-06 + AGGAAGAGGAAGTTGAG
+chr1 153117955 153117967 +V_ELF1_Q6 1.24724e-07 + GGAAGAGGAAGT
+chr1 153117955 153117974 -V_PU1_Q4 3.23812e-06 - TTTCTCAACTTCCTCTTCC
+chr1 153362987 153363000 -V_MAZR_01 3.51639e-06 - TGGGGTGGGGCAA
+chr1 153362989 153362999 -V_SP1_Q6_01 4.32232e-06 - GGGGTGGGGC
+chr1 153363075 153363088 -V_NRF2_Q4 5.51501e-06 - ATCCTGTGTCATG
+chr1 153363085 153363097 +V_SRY_02 6.38319e-07 + GATAACAATAGG
+chr1 153421828 153421836 +V_CACD_01 9.89755e-06 + CCACACCC
+chr1 153902464 153902472 -V_CACD_01 9.89755e-06 - CCACACCC
+chr1 154790321 154790336 -V_OCT4_02 3.74554e-06 - ATTGAGTTGCAAAGC
+chr1 154974452 154974465 +V_AP2_Q6_01 6.27133e-06 + CCTTCCCCAGGCT
+chr1 154974480 154974494 -V_PAX6_Q2 9.3218e-06 - CTAACCTTGAACTA
+chr1 154974482 154974494 -V_LRH1_Q5 4.03654e-06 - CTAACCTTGAAC
+chr1 155928821 155928831 -V_IK_Q5 6.81053e-06 - TGTGGGAGGG
+chr1 155928844 155928859 +V_HNF1_01 8.0706e-06 + GGTTAATTTATATCC
+chr1 156873322 156873333 +V_ER_Q6_02 5.23837e-06 + CAGGTCATGCT
+chr1 156873352 156873365 +V_IRF1_01 7.14671e-06 + CAAAAGCAAAAGT
+chr1 156873369 156873385 +V_AP2_Q3 2.01813e-06 + AGCCCCAGGCTGTGGA
+chr1 159661452 159661466 -V_ERR1_Q2 7.60856e-06 - TTTTCAAGGTCACC
+chr1 159661454 159661463 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr1 159661499 159661514 -V_DMRT1_01 1.3931e-06 - CTGCAACATTGTATT
+chr1 159661504 159661517 +V_DMRT4_01 4.04016e-06 + AATGTTGCAGATT
+chr1 159661542 159661557 -V_DMRT1_01 1.3931e-06 - CTGCAACATTGTATT
+chr1 159661547 159661560 +V_DMRT4_01 4.04016e-06 + AATGTTGCAGATT
+chr1 162830009 162830023 -V_ERR1_Q2 4.94927e-06 - TCGTCAAGGTCAGT
+chr1 162830011 162830020 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr1 163846342 163846357 +V_CP2_02 1.02428e-06 + GCTTGGTTGAGCTGG
+chr1 163846343 163846354 -V_CP2_01 6.98842e-06 - GCTCAACCAAG
+chr1 163846386 163846398 +V_GATA4_Q3 4.69606e-06 + AGAAAGCAGGCA
+chr1 163892714 163892726 -V_LRH1_Q5 9.2187e-06 - GGGGCCTTGCAG
+chr1 165950112 165950127 +V_OCT4_02 9.10747e-06 + ATTGTTATGGAAATT
+chr1 165950115 165950129 -V_OCT1_05 7.59056e-06 - ATAATTTCCATAAC
+chr1 165950155 165950167 -V_MEIS1_01 2.84527e-06 - TACTGACAGGTC
+chr1 165950156 165950167 +V_TGIF_01 5.10679e-06 + ACCTGTCAGTA
+chr1 167600334 167600348 -V_E2A_Q2 2.75062e-06 - CCACCTGACTCTGG
+chr1 167600335 167600353 +V_MYOD_Q6_01 2.53487e-06 + CAGAGTCAGGTGGAGAGG
+chr1 167600338 167600348 -V_EBOX_Q6_01 7.18016e-06 - CCACCTGACT
+chr1 167600372 167600385 -V_AP2_Q6_01 4.11454e-06 - CTGGCCCCAGGCT
+chr1 167600394 167600409 -V_DMRT1_01 5.76016e-06 - TTGTTACACTGTATC
+chr1 167625729 167625738 +V_PAX2_02 7.33929e-06 + CACAAACCC
+chr1 168065426 168065437 +V_ALPHACP1_01 7.72372e-06 + CAGCCAAAGAG
+chr1 168072633 168072645 +V_MYOD_01 8.76432e-06 + GCACAGGTGGCT
+chr1 172433187 172433201 -V_E2A_Q2 8.03505e-06 - ACACCTGCCTTTGG
+chr1 172433192 172433200 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr1 172433227 172433235 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr1 172433241 172433252 +V_E12_Q6 2.62103e-06 + AGCAGGTGCCA
+chr1 172433271 172433289 -V_PAX1_B 2.87605e-06 - TCCTTCCCCTCTAGATAG
+chr1 172897927 172897942 -V_HES1_Q2 8.82762e-06 - AGCCCTTGTGCTCAG
+chr1 172897945 172897964 -V_PU1_Q4 8.38434e-06 - TCCACCCGTTTCCGCTTTT
+chr1 172898012 172898027 -V_ETS1_B 9.4683e-06 - GCAGGAAATGGGGTG
+chr1 172947104 172947119 -V_IRF_Q6 6.88031e-06 - GGCACTTTCTGTTTT
+chr1 172947118 172947129 +V_PAX_Q6 1.53104e-06 + CTGGAACACAC
+chr1 172947410 172947420 +V_GATA6_01 9.61771e-06 + ACAGATAAGC
+chr1 174008272 174008295 -V_COUPTF_Q6 2.76893e-06 - GGGGCTGGACTCTGGCCATTTCC
+chr1 174008277 174008291 +V_HNF4_Q6_01 5.6237e-06 + TGGCCAGAGTCCAG
+chr1 174008289 174008302 -V_SP1_Q6 2.24727e-07 - GAGGGGCGGGGCT
+chr1 174008290 174008300 -V_SP1_Q6_01 3.39206e-07 - GGGGCGGGGC
+chr1 174008291 174008300 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr1 174008291 174008301 +V_SP1_Q2_01 1.0915e-06 + CCCCGCCCCT
+chr1 177380252 177380272 +V_P53_01 4.35606e-06 + GGGCAAGTCCAGGCAAGTCA
+chr1 177380252 177380272 -V_P53_01 9.49605e-06 - TGACTTGCCTGGACTTGCCC
+chr1 177380297 177380311 -V_NFY_C 2.32724e-06 - TCTGATTGGCCGCC
+chr1 177380297 177380313 +V_NFY_01 8.75476e-07 + GGCGGCCAATCAGAAA
+chr1 177380384 177380392 +V_STAT3_02 9.89755e-06 + GGCTTCCC
+chr1 177380408 177380416 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr1 177380408 177380417 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr1 177380411 177380426 -V_VDR_Q3 7.57997e-06 - GGGTGTAGAGGGGGA
+chr1 179201765 179201776 +V_NFE2_01 1.48643e-06 + AGCTGAGTCAC
+chr1 179201765 179201778 -V_AP1_01 4.64041e-06 - CAGTGACTCAGCT
+chr1 179201766 179201777 -V_AP1FJ_Q2 7.39364e-06 - AGTGACTCAGC
+chr1 179201766 179201777 -V_AP1_Q6 6.96691e-06 - AGTGACTCAGC
+chr1 179201766 179201777 -V_AP1_Q4 4.30412e-06 - AGTGACTCAGC
+chr1 179917810 179917824 +V_BLIMP1_Q6 9.34292e-07 + GGGAAGTGAAATTA
+chr1 179917837 179917861 -V_COMP1_01 7.78753e-06 - TGTGTTGATTGCCCAGGTGCAGTT
+chr1 179917839 179917851 -V_LMO2COM_01 1.00127e-06 - GCCCAGGTGCAG
+chr1 179917858 179917874 -V_DMRT2_01 2.82546e-07 - CAATTTGATCCATTGT
+chr1 180214245 180214255 -V_NFKAPPAB_01 8.50103e-06 - GGGACATCCC
+chr1 180214264 180214279 +V_OCT4_02 1.90479e-06 + ATTCAGTTGCAAATT
+chr1 180214302 180214312 -V_IK_Q5 7.92622e-06 - TCTGGGAGGC
+chr1 183672575 183672590 -V_TAXCREB_02 8.74723e-06 - GTGACTCATCTGCCC
+chr1 183672578 183672593 +V_BACH1_01 6.95412e-06 + CAGATGAGTCACACC
+chr1 184111741 184111752 -V_RORA_Q4 9.0465e-06 - AAGGTGGGTCA
+chr1 186929017 186929027 -V_IK_Q5 6.81053e-06 - CTTGGGAGGG
+chr1 186929286 186929301 -V_HMGIY_Q3 6.87308e-06 - AAGTGAATTTCCTGT
+chr1 186929405 186929429 +V_BRACH_01 8.49606e-06 + CACGTGGCTCCTAGATTTCAAATG
+chr1 186987545 186987558 +V_DMRT4_01 4.78132e-06 + AAAGTAACAATGT
+chr1 188334590 188334604 -V_E2A_Q2 9.11856e-06 - CCAGCTGCCCTGGC
+chr1 188334591 188334609 +V_MYOD_Q6_01 8.20048e-06 + CCAGGGCAGCTGGAGATC
+chr1 188334595 188334605 -V_TAL1_Q6 1.3587e-06 - TCCAGCTGCC
+chr1 188334606 188334619 +V_OCT_C 5.21366e-06 + ATCATTTTCATGC
+chr1 188334608 188334623 +V_OCT4_01 3.90219e-07 + CATTTTCATGCAAAT
+chr1 188334609 188334624 +V_OCT4_02 5.30392e-06 + ATTTTCATGCAAATC
+chr1 188334614 188334624 +V_OCT1_B 5.44227e-06 + CATGCAAATC
+chr1 188334636 188334649 -V_IK3_01 2.21214e-06 - GACTAGGAATACC
+chr1 188337801 188337822 -V_HNF1_Q6_01 3.14522e-06 - TACATTTAATTATTAACACAA
+chr1 188337803 188337821 +V_HNF1_Q6 3.11661e-06 + GTGTTAATAATTAAATGT
+chr1 188337855 188337865 +V_NFAT_Q4_01 8.89473e-06 + GTGGAAAAAC
+chr1 188337859 188337868 +V_FOXO1_Q5 7.27852e-06 + AAAAACAAA
+chr1 188337862 188337880 -V_HNF3_Q6_01 1.59658e-06 - TTGTTTGTTTGGTTTGTT
+chr1 188337866 188337884 -V_HNF3_Q6_01 2.56333e-06 - GTTTTTGTTTGTTTGGTT
+chr1 188337866 188337886 -V_FOXP1_01 1.4652e-06 - TTGTTTTTGTTTGTTTGGTT
+chr1 188337868 188337881 +V_HNF3_Q6 7.04647e-06 + CCAAACAAACAAA
+chr1 188337869 188337882 -V_HFH4_01 5.28594e-06 - TTTTGTTTGTTTG
+chr1 188337870 188337882 -V_FOXD3_01 9.53633e-06 - TTTTGTTTGTTT
+chr1 188337870 188337890 -V_FOXP1_01 7.72751e-06 - GTTTTTGTTTTTGTTTGTTT
+chr1 188337878 188337887 +V_FOXO1_Q5 7.27852e-06 + AAAAACAAA
+chr1 188337889 188337908 -V_PPARA_02 7.16879e-07 - TAGGGTGCTTAGGGTCAGG
+chr1 188337907 188337922 +V_SPZ1_01 6.09777e-07 + AGAGGAGGGTTGGGC
+chr1 188337940 188337953 +V_STAT_Q6 5.58101e-06 + ACCATTTCTGGGA
+chr1 188337967 188337985 -V_MYOD_Q6_01 9.19422e-06 - CGGACCCAGCTGCCTGAG
+chr1 189627584 189627597 +V_SP1_Q6 5.65055e-06 + GAGGGGCGGGCTC
+chr1 189627586 189627595 -V_CKROX_Q2 6.67377e-06 - GCCCGCCCC
+chr1 189627661 189627675 -V_HNF4_Q6_01 9.45536e-06 - GGGGCAAAGTTCCT
+chr1 189627662 189627675 +V_PPAR_DR1_Q2 3.33435e-06 + GGAACTTTGCCCC
+chr1 189627662 189627675 +V_HNF4_DR1_Q3 3.4109e-06 + GGAACTTTGCCCC
+chr1 189627662 189627675 +V_COUP_DR1_Q6 6.43692e-06 + GGAACTTTGCCCC
+chr1 189627662 189627675 -V_DR1_Q3 4.56975e-06 - GGGGCAAAGTTCC
+chr1 189627662 189627682 -V_PPARA_01 9.02914e-06 - GAAGCCTGGGGCAAAGTTCC
+chr1 189627693 189627714 -V_NRSE_B 4.04314e-06 - TGTAGCAAAACGGCGAGAGCC
+chr1 190678268 190678283 +V_OCT4_01 1.96957e-07 + AATTCTCATGCAAAT
+chr1 190678269 190678284 +V_OCT4_02 3.11818e-08 + ATTCTCATGCAAATG
+chr1 190678334 190678345 -V_CP2_01 6.98842e-06 - GCAATACCCAG
+chr1 190678347 190678370 +V_OCT1_04 9.07554e-06 + GGATTCAAATGCAAATCTGTCCA
+chr1 190678348 190678363 +V_OCT4_01 6.91054e-06 + GATTCAAATGCAAAT
+chr1 190678349 190678364 +V_OCT4_02 7.51249e-06 + ATTCAAATGCAAATC
+chr1 190678354 190678364 +V_OCT1_B 8.43065e-06 + AATGCAAATC
+chr1 191534980 191534999 +V_PPARA_02 1.5841e-06 + TGTGGTCCATGGGGTGGGG
+chr1 191534986 191535001 -V_SREBP_Q6 6.48026e-06 - ACCCCCACCCCATGG
+chr1 191534986 191535001 -V_SREBP1_Q5 7.63808e-06 - ACCCCCACCCCATGG
+chr1 191534990 191535002 -V_PAX4_03 2.40392e-07 - CACCCCCACCCC
+chr1 191534990 191535004 -V_KROX_Q6 2.21131e-07 - CCCACCCCCACCCC
+chr1 191534993 191535004 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr1 191534995 191535004 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr1 191534995 191535005 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr1 191534995 191535006 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr1 191534996 191535008 -V_PAX4_03 3.63034e-06 - GTCCCCCACCCC
+chr1 191670302 191670316 -V_BLIMP1_Q6 7.33178e-06 - AGGCAGGGAGAGGA
+chr1 191677087 191677106 -V_GR_Q6 6.78487e-06 - AGGTTTCTCTCTGTTCTCT
+chr1 191677125 191677135 -V_SP1_Q2_01 9.56538e-06 - CCCCTCCCAC
+chr1 191677194 191677204 -V_P53_DECAMER_Q2 6.84641e-06 - GGACAAGCCC
+chr1 191677215 191677231 -V_MAF_Q6 2.6445e-06 - AAGTGGGAAGTGTCCT
+chr1 191703944 191703959 +V_CP2_02 9.87124e-06 + GCTGGTTCCTGCAGG
+chr1 191885654 191885673 -V_NRSF_Q4 9.16904e-06 - GAACAGACCCCGGAGCTGG
+chr1 191885682 191885694 -V_GCM_Q2 8.6863e-06 - CCCGCCCTCATT
+chr1 191885684 191885697 +V_SP1_Q6 3.53849e-06 + TGAGGGCGGGGTG
+chr1 191885685 191885695 -V_SP1_Q2_01 2.74385e-06 - CCCCGCCCTC
+chr1 191885686 191885696 +V_SP1_Q6_01 8.48538e-06 + AGGGCGGGGT
+chr1 193263059 193263073 +V_BLIMP1_Q6 5.74624e-06 + TAAAAGGGAAATGA
+chr1 194339391 194339406 -V_DMRT5_01 5.41829e-06 - ATTTGTGACTTTGTC
+chr1 194339409 194339428 +V_PPARA_02 8.71814e-06 + AAAGGTTAGAAGGGTGTGG
+chr1 194339420 194339428 -V_CACD_01 9.89755e-06 - CCACACCC
+chr1 194339450 194339465 +V_OCT4_01 3.49929e-06 + CTTACAAATGCAAAT
+chr1 194339526 194339540 +V_COUP_01 3.17357e-06 + TGAACCCTGAACTT
+chr1 194500908 194500917 -V_SMAD3_Q6 4.03003e-06 - TGTCTGTCT
+chr1 194500912 194500921 -V_SMAD3_Q6 4.03003e-06 - TGTCTGTCT
+chr1 194500946 194500959 -V_AP2_Q6_01 5.59926e-06 - CTCCCCTCAGGCC
+chr1 194500954 194500972 +V_MYOD_Q6_01 7.30593e-06 + GGGAGGCAGGTGCTACAG
+chr1 194500958 194500966 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr1 194500958 194500968 -V_MYOD_Q6 2.71739e-06 - AGCACCTGCC
+chr1 195172341 195172353 -V_FOXO3A_Q1 2.20887e-06 - TGTAAACAAGAA
+chr1 195172341 195172355 +V_FOXO1_02 4.95016e-06 + TTCTTGTTTACAGC
+chr1 195172416 195172431 +V_DMRT1_01 3.89932e-06 + GTGATACAATGTATC
+chr1 195172418 195172433 -V_DMRT1_01 1.47483e-07 - TGGATACATTGTATC
+chr10 3976799 3976813 +V_NFKB_Q6 6.39997e-06 + CTGGGACTTCCCTC
+chr10 3976800 3976812 +V_NFKB_C 6.01374e-06 + TGGGACTTCCCT
+chr10 3976800 3976816 -V_NFKB_Q6_01 7.57961e-06 - CTGGAGGGAAGTCCCA
+chr10 3976801 3976811 +V_NFKAPPAB_01 2.26726e-06 + GGGACTTCCC
+chr10 5971088 5971102 -V_BLIMP1_Q6 4.78735e-06 - GGGAAGGCAAAGGA
+chr10 5971106 5971119 -V_AP2_Q6_01 2.71709e-06 - GCTGCCCCAGGCC
+chr10 5971134 5971153 +V_PU1_Q4 2.29683e-06 + AAAATCCATTTCCTCTTCC
+chr10 5971141 5971153 -V_ELF1_Q6 4.96989e-07 - GGAAGAGGAAAT
+chr10 6454460 6454472 -V_ETS_Q4 4.90737e-06 - AGCCTCTTCCTG
+chr10 6454513 6454528 -V_OCT4_01 3.49929e-06 - TTTTCTTATGCAGAG
+chr10 6454556 6454568 +V_PAX4_03 6.56043e-06 + AACTCCCACCCT
+chr10 6699820 6699832 +V_ELF1_Q6 2.57537e-06 + AGTAGAGGAAAT
+chr10 6699824 6699839 +V_VDR_Q3 3.12027e-06 + GAGGAAATGGGGAGA
+chr10 6699829 6699846 +V_PPARG_03 6.5877e-06 + AATGGGGAGAAAGGTCA
+chr10 6699829 6699850 +V_PPARG_01 1.31569e-06 + AATGGGGAGAAAGGTCAAGGA
+chr10 6699833 6699846 +V_DR1_Q3 3.32775e-06 + GGGAGAAAGGTCA
+chr10 6699833 6699846 -V_PPAR_DR1_Q2 2.01522e-06 - TGACCTTTCTCCC
+chr10 6699833 6699846 -V_COUP_DR1_Q6 7.13646e-06 - TGACCTTTCTCCC
+chr10 6699939 6699955 -V_GRE_C 3.56707e-06 - GGAACCAAATGTCCTG
+chr10 6699961 6699975 +V_ERR1_Q2 6.98967e-06 + TGCTAAAGGTCAAG
+chr10 7311831 7311842 -V_ER_Q6_02 7.31305e-06 - CAGGTCAGCCT
+chr10 7311834 7311848 +V_PAX6_Q2 5.44152e-07 + CTGACCTGGAAAGC
+chr10 7331635 7331647 +V_PAX4_03 2.12865e-06 + CATCTCCACCCC
+chr10 7331643 7331655 +V_LMO2COM_01 2.70597e-06 + CCCCAGGTGGTC
+chr10 7331670 7331682 +V_LMO2COM_01 2.70597e-06 + CCCCAGGTGGTC
+chr10 7852795 7852804 +V_CACBINDINGPROTEIN_Q6 2.23138e-06 + GAGGGTGGG
+chr10 7852796 7852808 -V_PAX4_03 2.70808e-06 - CACCCCCACCCT
+chr10 7852796 7852810 -V_KROX_Q6 6.89701e-06 - CCCACCCCCACCCT
+chr10 7852799 7852810 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr10 7852801 7852810 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr10 7852801 7852811 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr10 7852801 7852814 +V_MAZR_01 2.79447e-06 + GGGGGTGGGGCAC
+chr10 7852802 7852812 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr10 7852876 7852890 -V_KROX_Q6 4.70749e-06 - GCTGCCCCCACCAC
+chr10 7852879 7852890 +V_EGR_Q6 7.33045e-07 + GTGGGGGCAGC
+chr10 8609373 8609386 -V_NKX61_01 2.30763e-06 - CATTTAATTGCTT
+chr10 8609422 8609437 -V_OCT4_01 5.63049e-06 - CATTCTTATTCAAAC
+chr10 10716709 10716726 +V_PU1_01 2.48441e-06 + AAAAAGGGGAACTCTGA
+chr10 10716710 10716729 -V_PU1_Q4 8.89634e-06 - TCCTCAGAGTTCCCCTTTT
+chr10 12637452 12637465 -V_HFH4_01 6.29512e-06 - ATTAGTTTGTTTT
+chr10 16922972 16922985 +V_SOX_Q6 6.72413e-07 + CTCTTTGTTATAA
+chr10 17105089 17105098 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr10 17105089 17105099 -V_NUR77_Q5 8.43564e-06 - TTGACCTTGG
+chr10 18354375 18354393 +V_CMYB_01 8.65468e-06 + CCCAATGGTGGTTGTGAG
+chr10 18354377 18354390 +V_ZEC_01 2.98628e-06 + CAATGGTGGTTGT
+chr10 18364247 18364256 +V_SMAD_Q6 2.71739e-06 + AGACACCCC
+chr10 18364252 18364262 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr10 18364253 18364262 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr10 18364254 18364262 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr10 18364290 18364305 -V_OCT4_01 2.45515e-06 - CTTTGATATGTAAAA
+chr10 18364366 18364377 -V_ER_Q6_02 7.31305e-06 - AAGGTCAGGGT
+chr10 18364369 18364379 +V_NUR77_Q5 8.43564e-06 + CTGACCTTTC
+chr10 18688009 18688024 -V_DMRT5_01 3.84969e-06 - TGTTGTAACTGTTTA
+chr10 19092174 19092184 +V_SOX5_01 4.92279e-06 + TTAACAATAG
+chr10 19124300 19124310 -V_SOX5_01 9.25861e-06 - TTAACAATGC
+chr10 19124360 19124373 +V_SP1_Q6 6.51994e-06 + GAGGGGTGGGGCT
+chr10 19124361 19124371 -V_SP1_Q2_01 9.56538e-06 - CCCCACCCCT
+chr10 19124362 19124372 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr10 19124362 19124374 -V_PAX4_03 1.74945e-06 - CAGCCCCACCCC
+chr10 19124433 19124448 +V_SMAD4_Q6 3.63904e-06 + GGCAGTCAGTCACCC
+chr10 20821883 20821898 +V_OCT4_01 2.28618e-06 + ATTTGACATGCTAAT
+chr10 20821884 20821899 +V_OCT4_02 5.70458e-07 + TTTGACATGCTAATT
+chr10 20821973 20821985 +V_LMO2COM_01 6.44862e-06 + GGCCAGCTGCTG
+chr10 20821974 20821984 +V_TAL1_Q6 3.62595e-06 + GCCAGCTGCT
+chr10 20822032 20822046 -V_OCT1_06 5.74443e-06 - CATAATTACATTCA
+chr10 20822035 20822058 +V_OCT1_04 3.74994e-06 + ATGTAATTATGCAAATCCTTCCC
+chr10 20822037 20822056 +V_OCT1_01 4.33944e-06 + GTAATTATGCAAATCCTTC
+chr10 20822039 20822054 +V_OCT1_Q6 9.91069e-06 + AATTATGCAAATCCT
+chr10 21430780 21430791 +V_LEF1TCF1_Q4 1.86451e-06 + CCTTTGTTGTT
+chr10 21430791 21430801 -V_TBX5_Q5 1.65463e-06 - CTCACACCTG
+chr10 23526109 23526118 +V_FOXO1_Q5 7.27852e-06 + AAAAACAAA
+chr10 23526193 23526208 -V_HES1_Q2 1.75607e-06 - AAGGCGTGTGCCCGG
+chr10 23526203 23526213 -V_LEF1_Q2_01 5.84716e-06 - GATCAAAGGC
+chr10 23526204 23526215 +V_LEF1TCF1_Q4 2.36341e-06 + CCTTTGATCCT
+chr10 24278317 24278328 +V_AP1_Q4 9.46297e-06 + AGTGACTCATT
+chr10 24278361 24278373 -V_OCT1_07 1.65282e-06 - TTTATGTTAATT
+chr10 24278362 24278372 -V_POU3F2_02 1.99833e-06 - TTATGTTAAT
+chr10 24278373 24278385 -V_OCT1_07 9.35808e-06 - CTTATGTTAATT
+chr10 24278374 24278384 -V_POU3F2_02 1.99833e-06 - TTATGTTAAT
+chr10 24278374 24278389 -V_OCT4_01 6.02107e-06 - AATTCTTATGTTAAT
+chr10 24278417 24278431 -V_BLIMP1_Q6 7.33178e-06 - TGTAAGGGAAAGGA
+chr10 24523636 24523645 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr10 24523636 24523646 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr10 24523636 24523647 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr10 24523637 24523649 -V_PAX4_03 2.40392e-07 - CACCCCCACCCC
+chr10 24523637 24523651 -V_KROX_Q6 2.21131e-07 - CCCACCCCCACCCC
+chr10 24523640 24523651 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr10 24523641 24523654 +V_SP1_Q6 8.76141e-06 + TGGGGGTGGGGGG
+chr10 24523642 24523651 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr10 24523642 24523652 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr10 24523642 24523653 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr10 24523642 24523657 +V_VDR_Q3 4.22722e-06 + GGGGGTGGGGGGTGG
+chr10 24523643 24523655 -V_PAX4_03 5.05761e-06 - ACCCCCCACCCC
+chr10 24523644 24523658 -V_KROX_Q6 5.9833e-06 - CCCACCCCCCACCC
+chr10 24523645 24523660 +V_SPZ1_01 2.6946e-06 + GGTGGGGGGTGGGGC
+chr10 24523648 24523661 +V_SP1_Q6 1.61497e-06 + GGGGGGTGGGGCT
+chr10 24523649 24523658 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr10 24523649 24523659 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr10 24523649 24523662 +V_MAZR_01 4.08366e-06 + GGGGGTGGGGCTC
+chr10 24523650 24523660 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr10 24523650 24523662 -V_PAX4_03 1.74945e-06 - GAGCCCCACCCC
+chr10 24749363 24749382 -V_OCT1_01 1.82906e-06 - ATTCTTATGCAAATGTGAT
+chr10 24749365 24749378 +V_OCT_C 4.58343e-06 + CACATTTGCATAA
+chr10 24749366 24749377 +V_OCT_Q6 7.02042e-06 + ACATTTGCATA
+chr10 24749367 24749377 -V_OCT1_B 4.33582e-06 - TATGCAAATG
+chr10 24749367 24749382 -V_OCT4_02 3.61302e-07 - ATTCTTATGCAAATG
+chr10 24749368 24749383 -V_OCT4_01 3.51661e-08 - TATTCTTATGCAAAT
+chr10 24749388 24749399 -V_PITX2_Q2 4.9078e-06 - TATAATCCCAC
+chr10 24749393 24749412 -V_OCT1_01 2.91073e-06 - ATTCTTATGCAAATATAAT
+chr10 24749396 24749407 +V_OCT_Q6 7.92146e-06 + ATATTTGCATA
+chr10 24749397 24749407 -V_OCT1_B 4.33582e-06 - TATGCAAATA
+chr10 24749397 24749412 -V_OCT4_02 1.61981e-06 - ATTCTTATGCAAATA
+chr10 24749398 24749413 -V_OCT4_01 3.51661e-08 - TATTCTTATGCAAAT
+chr10 25352312 25352320 -V_CACD_01 9.89755e-06 - CCACACCC
+chr10 25674792 25674811 +V_PPARA_02 6.18965e-07 + GAAGGGCATGGGGGTGGGG
+chr10 25674796 25674810 -V_KROX_Q6 9.64613e-06 - CCCACCCCCATGCC
+chr10 25674801 25674810 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr10 25674801 25674811 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr10 25674801 25674812 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr10 25674802 25674814 -V_PAX4_03 2.40392e-07 - CACCCCCACCCC
+chr10 25674802 25674816 -V_KROX_Q6 2.21131e-07 - CCCACCCCCACCCC
+chr10 25674805 25674816 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr10 25674806 25674819 +V_SP1_Q6 7.54104e-06 + TGGGGGTGGGGTG
+chr10 25674807 25674816 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr10 25674807 25674817 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr10 25674809 25674824 -V_SREBP_Q6 4.69758e-06 - CTCCCCACCCCACCC
+chr10 25674809 25674824 -V_SREBP1_Q5 7.63808e-06 - CTCCCCACCCCACCC
+chr10 30347594 30347609 +V_OCT4_01 1.79634e-06 + TTTTCATATGCTAAT
+chr10 30347595 30347610 +V_OCT4_02 7.51249e-06 + TTTCATATGCTAATA
+chr10 30347595 30347614 +V_OCT1_01 2.27046e-06 + TTTCATATGCTAATATCAC
+chr10 30347599 30347609 +V_POU3F2_02 7.27852e-06 + ATATGCTAAT
+chr10 30347655 30347670 -V_OCT4_02 7.51249e-06 - TTTGACTTTCAAATT
+chr10 31176759 31176774 +V_OCT4_02 7.51249e-06 + ATTGAGTTGCAAAGT
+chr10 32360268 32360280 +V_ETS_Q4 1.99031e-06 + ACCCACATCCTG
+chr10 32808450 32808465 +V_OCT4_01 6.02107e-06 + CTTTGGTATGTAAAT
+chr10 33972838 33972850 -V_GATA4_Q3 5.81595e-06 - AGATTTCAGGGA
+chr10 33972845 33972860 -V_OCT4_02 1.18248e-06 - ATTGAGATGCAGATT
+chr10 33972881 33972894 -V_CEBPGAMMA_Q6 6.38933e-06 - CTCATTTAACAAA
+chr10 33972903 33972911 -V_CACD_01 9.89755e-06 - CCACACCC
+chr10 33972922 33972933 +V_PITX2_Q2 1.22695e-06 + TTTAATCCCAG
+chr10 36643826 36643841 +V_VDRRXR_01 3.03513e-06 + AGGTCCCAGGGTTCA
+chr10 36644113 36644127 +V_KROX_Q6 4.07315e-07 + AGCGCCCCCGCCCC
+chr10 36644116 36644129 -V_SP1_Q6 9.29757e-07 - CAGGGGCGGGGGC
+chr10 36644117 36644127 -V_SP1_Q6_01 6.78413e-07 - GGGGCGGGGG
+chr10 36644118 36644127 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr10 36644118 36644128 +V_SP1_Q2_01 1.0915e-06 + CCCCGCCCCT
+chr10 36941946 36941957 -V_EVI1_03 8.92601e-06 - AGATGAGATAA
+chr10 43223332 43223350 +V_MYOD_Q6_01 6.11726e-06 + GCAGGCCAGGTGGTGTAC
+chr10 43223335 43223345 -V_EBOX_Q6_01 6.43409e-06 - CCACCTGGCC
+chr10 43223335 43223347 +V_LMO2COM_01 2.70597e-06 + GGCCAGGTGGTG
+chr10 43306102 43306117 +V_DMRT1_01 1.74182e-07 + CTGAAACAATGTTTC
+chr10 43306104 43306119 -V_DMRT1_01 2.96272e-06 - GTGAAACATTGTTTC
+chr10 43306107 43306123 -V_DMRT2_01 4.45851e-06 - GGAAGTGAAACATTGT
+chr10 43306112 43306123 -V_IRF_Q6_01 3.19379e-06 - GGAAGTGAAAC
+chr10 43306132 43306143 +V_PAX_Q6 8.71928e-07 + CTGGAACTTAC
+chr10 43659084 43659100 +V_GRE_C 7.69632e-06 + TTTACAAACAGTGCTT
+chr10 43659145 43659159 +V_DMRT7_01 7.37275e-06 + TTGTTTCAGTTCTG
+chr10 43659149 43659162 +V_STAT_Q6 8.60737e-06 + TTCAGTTCTGGGA
+chr10 43659151 43659166 +V_STAT5A_01 4.26697e-06 + CAGTTCTGGGAAATG
+chr10 43659153 43659167 +V_STAT3STAT3_Q3 1.28888e-06 + GTTCTGGGAAATGC
+chr10 44154716 44154726 +V_HSF1_01 2.92358e-06 + AGAAGGTTCG
+chr10 44154716 44154726 +V_HSF2_01 6.79111e-06 + AGAAGGTTCG
+chr10 44154764 44154783 -V_OCT1_01 2.51462e-06 - AGATTTATGCAAATCTTCT
+chr10 44154767 44154778 +V_OCT1_Q5_01 5.83412e-06 + AGATTTGCATA
+chr10 44154767 44154778 +V_OCT_Q6 4.86692e-06 + AGATTTGCATA
+chr10 44154768 44154778 -V_OCT1_B 1.34745e-06 - TATGCAAATC
+chr10 44154781 44154797 +V_MMEF2_Q6 3.41458e-08 + CTGGTTAAAAATAACC
+chr10 44154783 44154799 +V_MEF2_01 4.53544e-07 + GGTTAAAAATAACCTT
+chr10 44154785 44154797 -V_MEF2_Q6_01 1.43383e-06 - GGTTATTTTTAA
+chr10 44792229 44792244 +V_TAXCREB_01 7.51763e-06 + GAGGGATGACGCCTT
+chr10 44792244 44792256 -V_GLI_Q2 9.40421e-06 - CCTGGGTGGCCT
+chr10 44841685 44841700 +V_OCT4_01 8.53201e-08 + CATTGTTATGCAAAC
+chr10 44841686 44841701 +V_OCT4_02 7.51249e-06 + ATTGTTATGCAAACC
+chr10 45011295 45011308 +V_P50P50_Q3 8.72537e-07 + TAGGGACTCCCCC
+chr10 45011296 45011308 +V_NFKB_C 3.38497e-06 + AGGGACTCCCCC
+chr10 45011296 45011312 -V_NFKB_Q6_01 7.12923e-06 - TGGAGGGGGAGTCCCT
+chr10 45011354 45011368 +V_DMRT7_01 7.83627e-06 + TTGTTACTTTGTGT
+chr10 45011354 45011373 +V_GR_Q6 8.25481e-06 + TTGTTACTTTGTGTTCTTT
+chr10 51994105 51994120 -V_IPF1_Q4_01 7.22911e-06 - TGTGCCATTAAAACC
+chr10 54229663 54229678 +V_OCT4_01 1.40241e-06 + TATTGTAATGCTAAA
+chr10 54229664 54229679 +V_OCT4_02 6.55103e-06 + ATTGTAATGCTAAAT
+chr10 54229698 54229710 -V_AP1_Q2_01 2.73244e-06 - TGACTCATAGGC
+chr10 54229702 54229711 +V_AP1_C 4.03003e-06 + ATGAGTCAG
+chr10 56076599 56076608 +V_HNF4_Q6 7.33929e-06 + AAGGTCCAG
+chr10 58057380 58057397 +V_NF1_Q6_01 7.65712e-06 + TTGGAGTCAAGCCAATG
+chr10 58057449 58057459 +V_GATA6_01 9.61771e-06 + ACAGATAAGC
+chr10 59021464 59021483 -V_GR_Q6 3.65698e-06 - TGGCCTCCAAGTGTTCTCA
+chr10 59021580 59021592 -V_GLI_Q2 1.77433e-06 - CTTGGGAGGTCC
+chr10 59021605 59021614 -V_LYF1_01 7.33929e-06 - TTTGGGAGA
+chr10 59021769 59021783 +V_NFKB_Q6 9.10996e-06 + AGTGGACTCTCCGT
+chr10 59021812 59021828 -V_NFKB_Q6_01 5.55103e-06 - TCACTGGAAAGCCCCA
+chr10 59021813 59021823 +V_NFKAPPAB65_01 7.1331e-06 + GGGGCTTTCC
+chr10 59021813 59021823 +V_CREL_01 6.1263e-07 + GGGGCTTTCC
+chr10 59021813 59021823 +V_NFKAPPAB_01 5.48771e-06 + GGGGCTTTCC
+chr10 60278921 60278934 -V_AP2_Q6_01 4.74029e-06 - GGCTCCTCAGGCC
+chr10 60278936 60278946 -V_SP1_Q2_01 6.40385e-06 - CCCCTCCCCT
+chr10 60278936 60278949 +V_MAZR_01 7.66218e-06 + AGGGGAGGGGAGA
+chr10 60278937 60278945 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr10 60278937 60278946 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr10 60650042 60650056 -V_KROX_Q6 4.02412e-06 - CCCACCCCCTCCTC
+chr10 60650044 60650055 -V_SP1SP3_Q4 4.25103e-06 - CCACCCCCTCC
+chr10 60650046 60650059 +V_SP1_Q6 2.31776e-06 + AGGGGGTGGGGCT
+chr10 60650047 60650056 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr10 60650047 60650057 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr10 60650047 60650060 +V_MAZR_01 3.32118e-06 + GGGGGTGGGGCTA
+chr10 60650048 60650058 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr10 60650048 60650060 -V_PAX4_03 5.65167e-06 - TAGCCCCACCCC
+chr10 61237580 61237593 +V_AP2_Q6_01 4.74029e-06 + TGGCCCTCAGGCC
+chr10 61237689 61237706 +V_RFX1_01 3.81544e-06 + CAGGTGCCTGGAAACCT
+chr10 61499687 61499702 -V_OCT4_01 2.45515e-06 - CTTTGATATGTAAAA
+chr10 62617945 62617960 +V_DMRT1_01 4.05865e-06 + TCGATACAATGTATC
+chr10 62617999 62618013 +V_MEIS1AHOXA9_01 7.86241e-06 + TGACAGTGTTAAGA
+chr10 62823479 62823487 +V_STAT3_02 9.89755e-06 + GGCTTCCC
+chr10 64199565 64199580 -V_OCT4_01 3.04012e-06 - TTTTGAAATGTAAAC
+chr10 64199579 64199589 -V_TBX5_Q5 2.76108e-06 - TTCACACCTT
+chr10 66578017 66578035 -V_SRF_Q4 3.505e-06 - GACAAATAAGGCAACTGC
+chr10 66578062 66578073 +V_EBF_Q6 9.10919e-06 + TTCCCCTGAGG
+chr10 69364176 69364198 +V_MEF2_04 9.11463e-08 + ATTGTTTCTATAAACAGATTCT
+chr10 69391322 69391343 +V_HNF1_Q6_01 3.39082e-06 + TAAAGCTAATAATTAAACCTT
+chr10 69391363 69391375 -V_NFAT_Q6 1.95424e-06 - CATAGGAAAATG
+chr10 69830900 69830916 -V_GRE_C 8.2757e-07 - TGTTCCATCTGTTCTG
+chr10 70911210 70911225 -V_OCT4_02 1.37411e-06 - ATTCACTTGCAGATG
+chr10 70911234 70911249 +V_AR_Q2 1.02586e-06 + AGAAGCTGCTGTTCT
+chr10 70911286 70911305 -V_OCT1_01 4.16161e-06 - CTTCGTATGCAAATGCCTC
+chr10 70911288 70911301 +V_OCT_C 4.58343e-06 + GGCATTTGCATAC
+chr10 70911288 70911302 +V_OCT1_05 3.30551e-06 + GGCATTTGCATACG
+chr10 70911289 70911300 +V_OCT_Q6 4.86692e-06 + GCATTTGCATA
+chr10 70911290 70911300 -V_OCT1_B 4.33582e-06 - TATGCAAATG
+chr10 70911304 70911313 +V_LRF_Q2 1.50459e-06 + GGGGCCCCC
+chr10 72097016 72097025 +V_AP2ALPHA_01 9.68294e-06 + GCCCGAGGC
+chr10 72097055 72097079 -V_COMP1_01 9.43495e-06 - TCTGAGCATTGGCTGCAGTCGGTC
+chr10 72097105 72097116 +V_NFE2_01 3.36587e-06 + AGCTGACTCAT
+chr10 72097105 72097118 -V_AP1_01 4.66933e-07 - GAATGAGTCAGCT
+chr10 72097106 72097117 +V_AP1_Q2 7.83818e-06 + GCTGACTCATT
+chr10 72097106 72097117 +V_AP1_Q6 2.98654e-06 + GCTGACTCATT
+chr10 72097107 72097116 -V_AP1_C 4.03003e-06 - ATGAGTCAG
+chr10 72097111 72097126 -V_SPZ1_01 8.55807e-06 - GCTGGAGGGAATGAG
+chr10 74411711 74411726 +V_DMRT1_01 8.16534e-06 + AAGCAACAATGTATC
+chr10 74411713 74411728 -V_DMRT1_01 1.95997e-06 - GGGATACATTGTTGC
+chr10 74411767 74411785 +V_LXR_Q3 3.41103e-06 + TAAGGTCACTGGGGGCCA
+chr10 74411767 74411786 +V_PPARA_02 4.81437e-06 + TAAGGTCACTGGGGGCCAG
+chr10 74411768 74411785 -V_DR4_Q2 5.48368e-06 - TGGCCCCCAGTGACCTT
+chr10 74411805 74411819 -V_CREB_Q2_01 3.09289e-06 - GTTTGCGTCAGGGC
+chr10 74411852 74411880 +V_PAX5_01 9.59433e-07 + GCCTGGGGCATAGTTGGGGAGAGGCTAT
+chr10 74590165 74590181 -V_NFY_01 3.96614e-06 - ACTGACCAATGAGGGT
+chr10 74590168 74590179 -V_NFY_Q6 6.30633e-06 - TGACCAATGAG
+chr10 74590184 74590195 +V_EBF_Q6 2.28749e-06 + CTCCCCTGGGA
+chr10 74590251 74590266 +V_DMRT3_01 3.92747e-06 + CATTTGTTACTTTGT
+chr10 74590252 74590267 +V_DMRT5_01 1.89921e-06 + ATTTGTTACTTTGTT
+chr10 74590254 74590269 +V_DMRT1_01 7.56504e-06 + TTGTTACTTTGTTAC
+chr10 74590254 74590271 -V_RFX1_01 5.77734e-06 - TGGTAACAAAGTAACAA
+chr10 75257821 75257834 -V_NKX61_01 3.94544e-06 - TATTTAATGGTTT
+chr10 75257862 75257881 +V_SRF_Q5_02 1.87948e-06 + ATTTCCCTTATTTGGCCAC
+chr10 75257865 75257879 -V_SRF_Q6 4.91031e-07 - GGCCAAATAAGGGA
+chr10 75257866 75257881 +V_SRF_C 8.92759e-06 + CCCTTATTTGGCCAC
+chr10 75257874 75257890 -V_MAF_Q6 2.6445e-06 - GAGGAGGAAGTGGCCA
+chr10 75257875 75257892 -V_PU1_01 6.15878e-06 - AGGAGGAGGAAGTGGCC
+chr10 75257879 75257891 -V_ELF1_Q6 3.87486e-06 - GGAGGAGGAAGT
+chr10 75344779 75344792 +V_OCT_C 2.79677e-06 + ATCCTTTGCATAT
+chr10 75344779 75344793 +V_OCT1_05 3.94854e-06 + ATCCTTTGCATATG
+chr10 75344849 75344860 +V_HELIOSA_01 6.73723e-07 + TATAGGGATAA
+chr10 76657148 76657159 -V_GATA_C 1.62999e-06 - AGATAAGGACT
+chr10 76657161 76657181 +V_PPARA_01 7.59176e-06 + CAAGGGCAGGACAGGGGTCA
+chr10 76657163 76657186 -V_COUPTF_Q6 3.93002e-06 - CCCTGTGACCCCTGTCCTGCCCT
+chr10 76657167 76657176 -V_T3R_Q6 8.74404e-06 - CCTGTCCTG
+chr10 76657168 76657181 +V_DR1_Q3 3.53458e-06 + AGGACAGGGGTCA
+chr10 76657168 76657181 -V_PPAR_DR1_Q2 8.84028e-06 - TGACCCCTGTCCT
+chr10 76657168 76657181 -V_COUP_DR1_Q6 7.61023e-06 - TGACCCCTGTCCT
+chr10 76657174 76657186 -V_VDR_Q6 5.27356e-06 - CCCTGTGACCCC
+chr10 76657189 76657209 -V_FOXP1_01 5.14048e-07 - TTAGTTATGTTGTTTAGGAT
+chr10 76657268 76657289 +V_PPARG_01 8.06423e-06 + CTTGGGGACAAAGCTCAAGGC
+chr10 77065990 77066018 -V_PAX5_01 2.54547e-06 - TTGTCAGCCACTGAGGTGGGGCCACCTG
+chr10 77065994 77066007 -V_MAZR_01 7.22993e-06 - TGAGGTGGGGCCA
+chr10 77066003 77066014 -V_ALPHACP1_01 4.48665e-06 - CAGCCACTGAG
+chr10 77853979 77853994 +V_OCT4_01 7.41924e-06 + CTTTGCTATGCAGAT
+chr10 79360220 79360233 +V_SP1_Q6 2.31776e-06 + AGGGGGTGGGGCT
+chr10 79360221 79360230 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr10 79360221 79360231 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr10 79360221 79360234 +V_MAZR_01 7.22993e-06 + GGGGGTGGGGCTG
+chr10 79360222 79360232 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr10 79360222 79360234 -V_PAX4_03 1.74945e-06 - CAGCCCCACCCC
+chr10 79360268 79360281 +V_SP1_Q6 5.25793e-07 + CAGGGGCGGGGCT
+chr10 79360269 79360279 -V_SP1_Q2_01 1.0915e-06 - CCCCGCCCCT
+chr10 79360270 79360279 -V_CKROX_Q2 6.67377e-06 - CCCCGCCCC
+chr10 79360270 79360280 +V_SP1_Q6_01 3.39206e-07 + GGGGCGGGGC
+chr10 79360279 79360297 +V_MYOD_Q6_01 6.49155e-06 + CTGAGGCAGGGGCTGGGG
+chr10 79360287 79360296 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr10 79360288 79360301 -V_AP2_Q6_01 6.27133e-06 - CCGCCCCCAGCCC
+chr10 79360288 79360302 -V_KROX_Q6 2.87261e-07 - CCCGCCCCCAGCCC
+chr10 79360291 79360302 +V_EGR_Q6 7.81764e-06 + CTGGGGGCGGG
+chr10 79360292 79360305 +V_SP1_Q6 3.44815e-08 + TGGGGGCGGGGCC
+chr10 79360293 79360303 -V_SP1_Q2_01 3.39206e-07 - CCCCGCCCCC
+chr10 79360294 79360303 -V_CKROX_Q2 6.67377e-06 - CCCCGCCCC
+chr10 79360294 79360304 +V_SP1_Q6_01 3.39206e-07 + GGGGCGGGGC
+chr10 79399221 79399232 +V_SP1SP3_Q4 2.26051e-06 + CCCCCTCCTCC
+chr10 79399278 79399287 +V_LYF1_01 7.33929e-06 + TTTGGGAGG
+chr10 79399278 79399288 +V_IK_Q5 1.3587e-06 + TTTGGGAGGG
+chr10 80410696 80410705 +V_CACBINDINGPROTEIN_Q6 6.29506e-06 + GAGGCTGGG
+chr10 80410701 80410719 -V_NF1_Q6 4.05732e-06 - CCTTGGCTCAAAGCCCCA
+chr10 80410783 80410801 -V_NF1_Q6 1.8283e-06 - CCTTGGCTGCAGTCCAGG
+chr10 80410784 80410801 +V_NF1_Q6_01 6.51825e-07 + CTGGACTGCAGCCAAGG
+chr10 80465458 80465467 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGG
+chr10 80465470 80465479 -V_SMAD3_Q6 7.33929e-06 - TGTCTGCCT
+chr10 82674068 82674082 +V_ATF3_Q6 4.55535e-06 + CGATGACATCATCC
+chr10 82674123 82674138 +V_DMRT1_01 3.33047e-06 + AGGAAACAATGTATC
+chr10 82674125 82674140 -V_DMRT1_01 1.27344e-06 - AAGATACATTGTTTC
+chr10 82809019 82809032 +V_AP1_01 7.96108e-06 + CAGTTAGTCAGCC
+chr10 84017140 84017156 -V_NFY_01 5.89708e-07 - CACAGCCAATCAGAGA
+chr10 84017143 84017154 -V_ALPHACP1_01 5.77866e-07 - CAGCCAATCAG
+chr10 84017217 84017231 +V_ERR1_Q2 4.46186e-06 + TCCTGGAGGTCATA
+chr10 84373414 84373427 -V_CEBPGAMMA_Q6 3.55864e-06 - CTGATTTAAAAAA
+chr10 84373434 84373450 -V_MMEF2_Q6 7.82043e-06 - CGTAATAAAAATCCCC
+chr10 84373506 84373525 +V_PPARA_02 1.38398e-06 + TGAAGTCATTGGGGTGTGG
+chr10 84373517 84373525 -V_CACD_01 9.89755e-06 - CCACACCC
+chr10 84373521 84373532 +V_EGR_Q6 9.33802e-06 + GTGGGGGGAAG
+chr10 84373521 84373540 -V_PU1_Q4 9.43652e-06 - CTCTCCTACTTCCCCCCAC
+chr10 84373524 84373539 +V_VDR_Q3 5.37362e-06 + GGGGGAAGTAGGAGA
+chr10 84373770 84373791 +V_STAT3_01 7.23973e-06 + GCTCCTTTCAGGGAAATGCTA
+chr10 84373770 84373791 -V_STAT3_01 9.64654e-06 - TAGCATTTCCCTGAAAGGAGC
+chr10 84373775 84373789 +V_STAT3STAT3_Q3 2.17869e-06 + TTTCAGGGAAATGC
+chr10 84373782 84373796 -V_OCT1_05 6.37497e-06 - AGGATTAGCATTTC
+chr10 84490772 84490780 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr10 86225218 86225232 -V_KROX_Q6 7.21054e-07 - CCCGCCCCCTGCCC
+chr10 86225220 86225231 -V_SP1SP3_Q4 5.85283e-07 - CCGCCCCCTGC
+chr10 86225222 86225235 +V_SP1_Q6 1.00457e-07 + AGGGGGCGGGGTG
+chr10 86225223 86225233 -V_SP1_Q2_01 3.39206e-07 - CCCCGCCCCC
+chr10 86225224 86225233 -V_CKROX_Q2 6.67377e-06 - CCCCGCCCC
+chr10 86225224 86225234 +V_SP1_Q6_01 1.0915e-06 + GGGGCGGGGT
+chr10 86225314 86225329 +V_OCT4_01 2.64195e-06 + CTTTGATATGTTAAT
+chr10 86225319 86225329 +V_POU3F2_02 5.63759e-06 + ATATGTTAAT
+chr10 87625641 87625651 -V_TAL1_Q6 4.87508e-06 - TCCAGCTGGT
+chr10 87625679 87625698 +V_PU1_Q4 6.58035e-06 + TGTGTTCATTTCCCCTCTT
+chr10 87968155 87968169 +V_PAX6_Q2 4.38021e-07 + CTGTCCTTGAACTA
+chr10 87968291 87968309 +V_GCNF_01 3.97182e-06 + TTCTAGGTCAAGTACAAG
+chr10 87977889 87977904 +V_HNF1_01 6.48099e-07 + GGTTAATTTTTGCAA
+chr10 87977950 87977962 +V_FOXO3A_Q1 2.84918e-06 + TGTAAACAAAAG
+chr10 87977997 87978012 -V_DMRT1_01 4.05865e-06 - ATGTTACATTGTGTC
+chr10 87977998 87978012 -V_DMRT7_01 6.47571e-06 - ATGTTACATTGTGT
+chr10 87978000 87978016 -V_DMRT2_01 2.43619e-06 - CACAATGTTACATTGT
+chr10 89927785 89927797 +V_MEF2_Q6_01 3.3543e-06 + AGCTATTTTTAT
+chr10 89927823 89927832 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr10 89927823 89927833 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr10 90267541 90267553 +V_ETS_Q4 4.51577e-07 + AGTCACTTCCTG
+chr10 90267541 90267555 -V_ETS2_B 1.29216e-07 - GACAGGAAGTGACT
+chr10 90267542 90267553 -V_FLI1_Q6 8.77629e-07 - CAGGAAGTGAC
+chr10 90267549 90267558 +V_T3R_Q6 3.30926e-06 + CCTGTCCTT
+chr10 92751165 92751181 +V_DMRT2_01 8.22882e-06 + TATATGGATACAGTGT
+chr10 92751169 92751184 +V_DMRT1_01 5.76016e-06 + TGGATACAGTGTATC
+chr10 92751171 92751186 -V_DMRT1_01 5.76016e-06 - TGGATACACTGTATC
+chr10 92751276 92751291 -V_SMAD4_Q6 5.77373e-06 - GGCATCCAGCCAGAT
+chr10 93219121 93219151 +V_PAX4_04 4.01413e-06 + AGTAATTAACTCTGCCACCCTCCCCCTGCC
+chr10 93219138 93219146 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr10 93219138 93219147 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr10 93635573 93635588 +V_OCT4_01 2.83977e-06 + ATTTGTTATTCAAAT
+chr10 93635574 93635589 +V_OCT4_02 8.01355e-06 + TTTGTTATTCAAATT
+chr10 93635696 93635726 -V_PAX4_04 1.56382e-06 - AAATATAATCTACATCTGCTTGCTCACCCC
+chr10 94522209 94522222 -V_MAZR_01 8.01727e-06 - GGGGGTGGGGAGA
+chr10 94522212 94522222 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr10 94522213 94522222 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr10 94522327 94522335 -V_CACD_01 9.89755e-06 - CCACACCC
+chr10 94816936 94816950 +V_DMRT7_01 7.37275e-06 + TTGTTTCAGTTCTG
+chr10 95181154 95181163 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr10 95181154 95181164 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr10 95181154 95181167 +V_MAZR_01 8.01727e-06 + GGGGGTGGGGAGA
+chr10 95181223 95181243 -V_PPARA_01 9.02914e-06 - CAAAACTAGGCCCAAACTCT
+chr10 95181566 95181575 -V_AP2ALPHA_01 9.68294e-06 - GCCCGAGGC
+chr10 95181573 95181591 +V_MYOD_Q6_01 3.73988e-06 + GCCAGACAGGTGACAAAG
+chr10 95181647 95181657 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr10 95181647 95181658 +V_SP1SP3_Q4 2.8432e-06 + CCCCCTCCCCC
+chr10 95181648 95181657 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr10 95181648 95181658 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr10 95181649 95181657 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr10 95181649 95181658 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr10 95346630 95346639 -V_ZIC2_01 9.89755e-06 - GGGGTGGTG
+chr10 95346633 95346646 -V_SP1_Q6 2.65872e-07 - TGGGGGCGGGGTG
+chr10 95346634 95346644 -V_SP1_Q6_01 1.0915e-06 - GGGGCGGGGT
+chr10 95346635 95346644 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr10 95346635 95346645 +V_SP1_Q2_01 3.39206e-07 + CCCCGCCCCC
+chr10 95346636 95346647 -V_EGR_Q6 2.99674e-07 - GTGGGGGCGGG
+chr10 95346636 95346650 +V_KROX_Q6 9.64343e-08 + CCCGCCCCCACCCA
+chr10 95346637 95346652 -V_CP2_02 6.9729e-06 - GCTGGGTGGGGGCGG
+chr10 95354323 95354338 -V_OCT4_02 5.30392e-06 - ATTGTCATGTTAAAT
+chr10 95354324 95354339 -V_OCT4_01 4.01204e-06 - CATTGTCATGTTAAA
+chr10 95354376 95354391 -V_ETS1_B 2.78299e-06 - ACAGGAAGGGACTGA
+chr10 95354865 95354877 +V_NFKB_C 9.0304e-06 + GGGGGCTTTCCA
+chr10 95354866 95354876 +V_NFKAPPAB65_01 7.1331e-06 + GGGGCTTTCC
+chr10 95354866 95354876 +V_CREL_01 6.1263e-07 + GGGGCTTTCC
+chr10 95354866 95354876 +V_NFKAPPAB_01 5.48771e-06 + GGGGCTTTCC
+chr10 95354882 95354897 -V_AR_01 3.9032e-06 - GGTTCAGGGCGTGCC
+chr10 95354909 95354917 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr10 95354918 95354934 +V_GRE_C 9.71322e-06 + CGAACAAACTGTCCTT
+chr10 98816180 98816192 +V_CREB_02 3.37383e-06 + CGGATGACGTGC
+chr10 98816319 98816334 +V_OCT4_01 1.01602e-06 + CATTATGATGCAAAT
+chr10 98931819 98931834 -V_OCT4_02 7.51249e-06 - ATTGAGTTGCAAAGT
+chr10 99392571 99392585 +V_FOXO1_02 2.27875e-06 + TTGTTGTTTACTCT
+chr10 99392571 99392585 +V_FOXO4_02 6.75869e-06 + TTGTTGTTTACTCT
+chr10 99392571 99392585 +V_FOXO3_01 3.85649e-06 + TTGTTGTTTACTCT
+chr10 99392588 99392601 +V_MAZR_01 7.66218e-06 + CAGGGAGGGGCCA
+chr10 99392596 99392609 +V_DEC_Q1 8.9012e-06 + GGCCAAGTGAATC
+chr10 99392641 99392652 -V_FOXO4_01 2.21629e-06 - GTAAACAACCC
+chr10 99392641 99392655 +V_FOXO1_02 1.50781e-06 + GGGTTGTTTACCTT
+chr10 99392641 99392655 +V_FOXO4_02 3.16384e-07 + GGGTTGTTTACCTT
+chr10 99392641 99392655 +V_FOXO3_01 3.85649e-06 + GGGTTGTTTACCTT
+chr10 114791781 114791791 +V_LEF1_Q2_01 7.66428e-06 + GTTCAAAGGG
+chr10 114791884 114791902 +V_CMYB_01 2.42652e-06 + GAAAAGGGCGGTTGGTTG
+chr10 114801487 114801500 +V_P50P50_Q3 5.92952e-06 + TGGGGAATTCCAG
+chr10 114801488 114801498 +V_CREL_01 5.43478e-06 + GGGGAATTCC
+chr10 114801498 114801508 +V_P53_DECAMER_Q2 2.10476e-06 + AGGCAAGTCC
+chr10 114801603 114801627 +V_STAT5A_02 9.32654e-06 + TTCCAGGAACCCCCCCCCCCAGCA
+chr10 114801609 114801622 -V_MAZR_01 1.39054e-06 - GGGGGGGGGGTTC
+chr10 114801611 114801622 +V_SP1SP3_Q4 3.19906e-06 + ACCCCCCCCCC
+chr10 114801612 114801621 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr10 114801612 114801623 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr10 114801613 114801622 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr10 114801613 114801624 +V_SP1SP3_Q4 3.76147e-06 + CCCCCCCCCCA
+chr10 114801614 114801623 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr10 114801736 114801749 -V_DEC_Q1 2.37756e-06 - ACCCAAGTGAACG
+chr10 114906187 114906196 -V_AP1_C 4.03003e-06 - ATGAGTCAG
+chr10 114906266 114906285 +V_OCT1_01 5.31719e-06 + TTTAGTATGCAAATGCTCT
+chr10 114906269 114906283 -V_OCT1_05 2.35e-07 - AGCATTTGCATACT
+chr10 114906270 114906283 -V_OCT_C 2.51133e-06 - AGCATTTGCATAC
+chr10 114906271 114906281 +V_OCT1_B 4.33582e-06 + TATGCAAATG
+chr10 114906271 114906282 -V_OCT_Q6 4.86692e-06 - GCATTTGCATA
+chr10 115999361 115999373 +V_MYOD_01 6.00212e-06 + GGTCAGGTGCTG
+chr10 115999379 115999394 +V_OCT4_01 7.41924e-06 + TATTCAAATGCTAAA
+chr10 115999429 115999444 +V_OCT4_01 7.94702e-06 + TTTTGTTGTGCAAAC
+chr10 115999450 115999465 +V_OCT4_01 7.94702e-06 + TTTTGTTGTGCAAAC
+chr10 116908949 116908964 +V_DMRT1_01 6.25574e-06 + GAGATACAATGTTGC
+chr10 116908951 116908966 -V_DMRT1_01 3.53013e-07 - CTGCAACATTGTATC
+chr10 116909021 116909034 +V_HNF4_DR1_Q3 5.33101e-06 + TGACCTTTGTGTC
+chr10 116909021 116909034 +V_COUP_DR1_Q6 4.28059e-06 + TGACCTTTGTGTC
+chr10 116957066 116957081 -V_DMRT1_01 6.57259e-08 - TTGAAACAATGTTTC
+chr10 116957067 116957081 -V_DMRT7_01 6.04797e-06 - TTGAAACAATGTTT
+chr10 116957106 116957121 +V_SMAD4_Q6 4.47098e-06 + CTCAGGCAGACTCCT
+chr10 116957136 116957150 -V_HNF4_Q6_01 4.19531e-07 - TGGCCAAAGGTCAA
+chr10 116957137 116957150 +V_PPAR_DR1_Q2 3.02106e-07 + TGACCTTTGGCCA
+chr10 116957137 116957150 +V_HNF4_DR1_Q3 2.83684e-07 + TGACCTTTGGCCA
+chr10 116957137 116957150 +V_COUP_DR1_Q6 3.15323e-07 + TGACCTTTGGCCA
+chr10 116957137 116957150 -V_RXRLXRB_01 4.41868e-06 - TGGCCAAAGGTCA
+chr10 116957137 116957150 -V_DR1_Q3 2.53165e-07 - TGGCCAAAGGTCA
+chr10 116957137 116957151 +V_COUP_01 5.56514e-07 + TGACCTTTGGCCAG
+chr10 116957137 116957154 -V_PPARG_03 9.33357e-06 - CGTCTGGCCAAAGGTCA
+chr10 116957147 116957175 -V_PAX5_01 2.54547e-06 - GCCGAACTCACTGAAGGTTAGCGTCTGG
+chr10 117334433 117334452 -V_PU1_Q4 8.89634e-06 - GACCTTTAGTTCCTCCTGC
+chr10 117334470 117334480 -V_ESE1_Q3 8.06007e-06 - AGCTTCCTGT
+chr10 117390013 117390028 +V_VDR_Q3 7.57997e-06 + GAGGGTGAGGGGTGA
+chr10 117390021 117390033 -V_PAX4_03 7.48009e-06 - TACCCTCACCCC
+chr10 117390032 117390042 -V_SP1_Q2_01 9.56538e-06 - CCCCACCCCT
+chr10 117390033 117390045 -V_PAX4_03 1.74945e-06 - ATCCCCCACCCC
+chr10 117390033 117390047 -V_KROX_Q6 8.32366e-06 - CCATCCCCCACCCC
+chr10 117390104 117390117 +V_HFH4_01 9.31547e-06 + CAGAATTTGTTTA
+chr10 117390109 117390119 -V_FOXO1_01 2.98837e-06 - CATAAACAAA
+chr10 117390135 117390145 -V_ESE1_Q3 8.80613e-06 - GGCTTCCTGT
+chr10 117390323 117390338 +V_CP2_02 9.52691e-07 + GCTGGGTGGGACCGG
+chr10 117390350 117390365 +V_OCT4_01 7.41924e-06 + GTTTGTTATGCAAAA
+chr10 117390351 117390366 +V_OCT4_02 3.74554e-06 + TTTGTTATGCAAAAA
+chr10 117482086 117482101 -V_ETS1_B 9.4683e-06 - AAAGGAAGTGATTGA
+chr10 117482141 117482156 +V_OCT4_01 1.52058e-06 + CTTTTACATGCAAAT
+chr10 117898498 117898512 -V_KROX_Q6 2.61668e-06 - CCCTCCCCCACTCC
+chr10 117898503 117898512 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr10 117898504 117898512 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr10 117898504 117898513 -V_CKROX_Q2 3.66459e-06 - GCCCTCCCC
+chr10 117898520 117898529 +V_CACBINDINGPROTEIN_Q6 2.23138e-06 + GAGGGTGGG
+chr10 117898524 117898544 +V_PPARA_01 8.51836e-06 + GTGGGGCAGGGCTTAGGTCA
+chr10 117898545 117898553 +V_CACD_01 9.89755e-06 + CCACACCC
+chr10 118187551 118187565 +V_DMRT7_01 3.27916e-06 + TGGTAACATTGTTT
+chr10 118187551 118187566 +V_DMRT1_01 4.26013e-07 + TGGTAACATTGTTTC
+chr10 118187553 118187568 -V_DMRT1_01 1.44151e-06 - CTGAAACAATGTTAC
+chr10 118187583 118187598 +V_DMRT1_01 1.17062e-06 + TAGAAACATTGTATC
+chr10 118187585 118187600 -V_DMRT1_01 2.58784e-07 - TAGATACAATGTTTC
+chr10 118187627 118187642 +V_EVI1_04 3.3175e-06 + AGTTAGGATAAGTTA
+chr10 118187638 118187653 -V_DMRT1_01 7.56504e-06 - TTGATACTTTGTAAC
+chr10 118187669 118187681 +V_ETS_Q4 1.6785e-06 + ATCCACTTCCTC
+chr10 119551622 119551637 -V_OCT4_01 9.05006e-06 - CATTGATATGTTAAA
+chr10 119551701 119551714 -V_SP1_Q6 6.51994e-06 - AAGGGGAGGGGTG
+chr10 119551702 119551712 -V_SP1_Q6_01 9.74073e-06 - GGGGAGGGGT
+chr10 119551703 119551712 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr10 119551703 119551713 +V_SP1_Q2_01 6.40385e-06 + CCCCTCCCCT
+chr10 119551704 119551712 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr10 119551728 119551739 +V_ALPHACP1_01 4.48665e-06 + CAGCCCATGAG
+chr10 119551767 119551779 -V_SRY_02 9.06694e-07 - GTAAACAAAAGG
+chr10 119551768 119551782 +V_FOXO4_02 4.51573e-06 + CTTTTGTTTACCCT
+chr10 119584682 119584697 +V_DMRT1_01 9.21473e-06 + TAGATACACTGTAGC
+chr10 119584684 119584699 -V_DMRT1_01 4.93806e-06 - CTGCTACAGTGTATC
+chr10 119584706 119584720 +V_DMRT7_01 9.63794e-06 + TGGATACATTGTAG
+chr10 119584706 119584721 +V_DMRT1_01 8.06116e-08 + TGGATACATTGTAGC
+chr10 119584708 119584723 -V_DMRT1_01 1.87081e-07 - CTGCTACAATGTATC
+chr10 119584726 119584742 +V_DMRT2_01 2.33602e-06 + TGGTTGGATACATTGT
+chr10 119584727 119584742 +V_DMRT3_01 1.87777e-06 + GGTTGGATACATTGT
+chr10 119584730 119584744 +V_DMRT7_01 2.62625e-06 + TGGATACATTGTGG
+chr10 119584730 119584745 +V_DMRT1_01 4.82232e-07 + TGGATACATTGTGGC
+chr10 119584732 119584747 -V_DMRT1_01 4.22462e-06 - TTGCCACAATGTATC
+chr10 119584827 119584842 +V_IRF_Q6 1.92022e-06 + TTCTGTTTCAGTTTT
+chr10 121435754 121435784 +V_PAX4_04 3.37904e-06 + GAGAATTAGCACCTAATCCCTAACCCCAGC
+chr10 121435778 121435787 -V_CACBINDINGPROTEIN_Q6 8.12736e-06 - GGGGCTGGG
+chr10 121435858 121435873 -V_DMRT5_01 2.72566e-06 - TGTTGTTACTTTGTA
+chr10 121435867 121435882 -V_DMRT1_01 2.96272e-06 - TTGTTACTTTGTTGT
+chr10 121435868 121435882 -V_DMRT7_01 7.24493e-07 - TTGTTACTTTGTTG
+chr10 122307309 122307321 -V_CEBP_Q3 5.50595e-06 - GAATGTGGCAAA
+chr10 122307446 122307464 -V_GCNF_01 1.51863e-06 - TTCAGAGTCAAGGTCACC
+chr10 122307448 122307457 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr10 122523979 122523992 +V_SP1_Q6 4.19627e-06 + AGAGGGAGGGGCC
+chr10 122523980 122523993 +V_MAZR_01 9.36507e-06 + GAGGGAGGGGCCT
+chr10 122524024 122524037 +V_DMRT4_01 5.97817e-06 + AATGTTTCAAGTT
+chr10 122524037 122524049 +V_ICSBP_Q6 7.93496e-06 + GAAAGGAAACTG
+chr10 122524099 122524112 +V_SP1_Q6 7.54104e-06 + GAGGGGAGGGGTT
+chr10 122524100 122524110 -V_SP1_Q2_01 6.40385e-06 - CCCCTCCCCT
+chr10 122524101 122524109 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr10 122524101 122524110 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr10 122524101 122524111 +V_SP1_Q6_01 9.74073e-06 + GGGGAGGGGT
+chr10 122524113 122524134 +V_PPARG_01 5.64913e-06 + CTTTGGCTCAAAGTTCAAAGA
+chr10 122524117 122524130 +V_RXRLXRB_01 6.42396e-06 + GGCTCAAAGTTCA
+chr10 122524117 122524130 +V_DR1_Q3 3.32775e-06 + GGCTCAAAGTTCA
+chr10 122524117 122524130 -V_HNF4_DR1_Q3 1.52588e-06 - TGAACTTTGAGCC
+chr10 122524117 122524130 -V_COUP_DR1_Q6 2.48866e-06 - TGAACTTTGAGCC
+chr10 122524117 122524131 +V_HNF4_Q6_01 4.332e-06 + GGCTCAAAGTTCAA
+chr10 124601873 124601902 +V_MYOGNF1_01 3.01608e-06 + CAGTTGTGTTTGCTGGCACAGAGAAAGCC
+chr10 124601935 124601950 -V_SMAD4_Q6 2.88375e-06 - GGGGTGGAGCCTCCT
+chr10 124601945 124601958 -V_GATA1_04 7.26537e-06 - TTCAGATAGGGGT
+chr10 124601945 124601959 -V_GATA1_02 9.46586e-06 - TTTCAGATAGGGGT
+chr10 124601947 124601956 -V_LMO2COM_02 3.30926e-06 - CAGATAGGG
+chr10 125339870 125339889 +V_PAX2_01 2.28058e-06 + CATTGTCATGCATTATGTC
+chr10 125339933 125339951 +V_GCNF_01 7.39337e-06 + ACAAAGGTAAAGTTCACT
+chr10 126760401 126760414 -V_MAZR_01 4.80613e-06 - GGGGGAGGGGCTG
+chr10 126760402 126760415 -V_SP1_Q6 1.82037e-06 - TGGGGGAGGGGCT
+chr10 126760403 126760413 -V_SP1_Q6_01 2.74385e-06 - GGGGAGGGGC
+chr10 126760404 126760413 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr10 126760404 126760414 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr10 126760405 126760413 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr10 126760405 126760414 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr10 127343427 127343442 -V_DMRT1_01 2.68065e-06 - TTGATACACTGTATC
+chr10 128418230 128418238 +V_STAT3_02 9.89755e-06 + GGCTTCCC
+chr10 128418237 128418245 +V_CACD_01 9.89755e-06 + CCACACCC
+chr10 128418298 128418310 -V_CEBP_Q3 7.38612e-06 - GAGTTAGGCAAT
+chr11 3448993 3449006 -V_CRX_Q4 2.86299e-06 - TCACTAATCACCC
+chr11 3449069 3449079 -V_NKX25_Q5 8.11064e-06 - TCCCACTTCC
+chr11 3449137 3449152 -V_TST1_01 9.20117e-06 - GTTGAATAAGAATGG
+chr11 4304412 4304422 -V_CREL_01 5.43478e-06 - GGGGAATTCC
+chr11 4304423 4304441 +V_MYOD_Q6_01 6.11726e-06 + GCTAGGCAGGTGGTGGAC
+chr11 4304426 4304438 +V_MYOD_01 6.00212e-06 + AGGCAGGTGGTG
+chr11 4304427 4304435 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr11 4304427 4304437 -V_MYOD_Q6 2.71739e-06 - ACCACCTGCC
+chr11 4304427 4304438 +V_E12_Q6 5.58116e-06 + GGCAGGTGGTG
+chr11 4304470 4304479 -V_AP2ALPHA_01 9.68294e-06 - GCCCGAGGC
+chr11 4304484 4304493 +V_SMAD_Q6 9.3359e-06 + AGACACCAC
+chr11 4304510 4304529 -V_GR_Q6 1.88245e-06 - TGGGGGCATTCTGTTCTCA
+chr11 4304522 4304535 -V_SP1_Q6 7.04257e-06 - TGGGGGTGGGGGC
+chr11 4304523 4304534 +V_SP1SP3_Q4 8.91927e-06 + CCCCCACCCCC
+chr11 4304524 4304534 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr11 4304525 4304534 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr11 4304525 4304539 +V_KROX_Q6 2.32952e-06 + CCCACCCCCAACCC
+chr11 5139866 5139896 +V_PAX4_04 8.7361e-06 + AGGAAATGGGCACAAGGACACCCCCTCCCC
+chr11 5139867 5139879 -V_NANOG_01 3.55582e-06 - GTGCCCATTTCC
+chr11 5139886 5139896 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr11 5139887 5139896 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr11 5139888 5139896 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr11 5139893 5139902 -V_CACBINDINGPROTEIN_Q6 8.12736e-06 - GGGGCTGGG
+chr11 5139931 5139941 +V_P53_DECAMER_Q2 2.10476e-06 + AGACAAGCCC
+chr11 5139997 5140011 -V_E2A_Q2 2.18421e-06 - GCACCTGCCTTAGG
+chr11 5139998 5140016 +V_MYOD_Q6_01 7.30593e-06 + CTAAGGCAGGTGCAGGGA
+chr11 5140002 5140010 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr11 5140002 5140012 -V_MYOD_Q6 6.66004e-06 - TGCACCTGCC
+chr11 5140002 5140013 +V_E12_Q6 3.31699e-06 + GGCAGGTGCAG
+chr11 5653856 5653870 +V_MTF1_Q4 6.56269e-06 + TGTGCACCCAGCCA
+chr11 5653882 5653900 -V_CART1_01 9.85675e-06 - AGGTGATTGCCATTAGCT
+chr11 5653889 5653910 -V_NRSE_B 4.28991e-06 - CTTAGCTCAGAGGTGATTGCC
+chr11 5653918 5653931 -V_MAZR_01 5.4366e-06 - GGGGGAGGGGAGA
+chr11 5653921 5653930 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr11 5653921 5653931 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr11 5653922 5653930 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr11 5653922 5653931 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr11 5653932 5653942 -V_IK_Q5 6.81053e-06 - GTTGGGAGGT
+chr11 6504383 6504397 +V_BLIMP1_Q6 3.386e-06 + AGAAAGGGAGAGGG
+chr11 6504434 6504442 -V_CACD_01 9.89755e-06 - CCACACCC
+chr11 6504458 6504471 -V_IK1_01 1.27794e-06 - ACTTGGGAACGCC
+chr11 8576336 8576347 +V_RORA_Q4 2.4539e-06 + TAAATAGGTCA
+chr11 8576340 8576355 +V_IPF1_Q4_01 4.63901e-06 + TAGGTCATTAGAGTG
+chr11 8576342 8576354 -V_IPF1_Q4 9.66009e-06 - ACTCTAATGACC
+chr11 10425255 10425272 -V_FOXP3_Q4 6.47398e-06 - AAGCTTTTGTTACAGAG
+chr11 10425267 10425278 -V_LEF1TCF1_Q4 5.90916e-06 - CCTTTGAAGCT
+chr11 10425269 10425279 +V_LEF1_Q2_01 7.66428e-06 + CTTCAAAGGG
+chr11 10425323 10425333 -V_TAL1_Q6 2.26726e-06 - TCCATCTGCT
+chr11 12367298 12367319 +V_PPARG_01 7.8357e-06 + AGGAAGGCCCAAGGTCATATG
+chr11 12367302 12367315 +V_RXRLXRB_01 5.3169e-06 + AGGCCCAAGGTCA
+chr11 12367302 12367315 +V_DR1_Q3 4.56975e-06 + AGGCCCAAGGTCA
+chr11 12367302 12367315 -V_PPAR_DR1_Q2 4.57755e-06 - TGACCTTGGGCCT
+chr11 12367302 12367315 -V_COUP_DR1_Q6 7.90564e-06 - TGACCTTGGGCCT
+chr11 12367306 12367315 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr11 12367385 12367400 -V_OCT1_02 3.23588e-06 - CAGAATATGCATCCT
+chr11 18271427 18271439 +V_NFKB_C 1.59776e-06 + AGGGACTCCCCA
+chr11 18974320 18974330 -V_SP1_Q2_01 1.0915e-06 - CCCCGCCCCT
+chr11 18974321 18974330 -V_CKROX_Q2 6.67377e-06 - CCCCGCCCC
+chr11 18974321 18974331 +V_SP1_Q6_01 2.74385e-06 + GGGGCGGGGA
+chr11 18974351 18974366 +V_OCT4_01 5.63049e-06 + CTTTATTATGTAGAT
+chr11 19933689 19933704 +V_DMRT1_01 6.01487e-06 + TGGTTACTTTGTATC
+chr11 19933719 19933730 -V_EVI1_03 2.46139e-06 - AGATAAGATAC
+chr11 19933719 19933730 -V_EVI1_05 3.95558e-06 - AGATAAGATAC
+chr11 19933760 19933771 -V_PAX_Q6 4.75211e-06 - CCGGAACTCAC
+chr11 19933762 19933776 -V_PAX6_Q2 3.37545e-06 - CTGGGCCGGAACTC
+chr11 19933784 19933795 +V_TGIF_01 1.40746e-06 + AGCTGTCACGA
+chr11 19941378 19941392 -V_KROX_Q6 9.64613e-06 - CCCACCCCCATGCC
+chr11 19941382 19941395 +V_SP1_Q6 4.47623e-06 + TGGGGGTGGGGCT
+chr11 19941383 19941392 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr11 19941383 19941393 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr11 19941383 19941396 +V_MAZR_01 7.22993e-06 + GGGGGTGGGGCTG
+chr11 19941384 19941394 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr11 19941384 19941396 -V_PAX4_03 1.74945e-06 - CAGCCCCACCCC
+chr11 19941409 19941425 -V_AP2_Q3 5.62818e-07 - GGCCGCAGGCAAGGGG
+chr11 19941465 19941480 -V_SMAD4_Q6 2.53095e-06 - GTCAGTCAGTCACCC
+chr11 19941475 19941485 +V_NUR77_Q5 2.98426e-06 + CTGACCTTGG
+chr11 19941475 19941487 +V_LRH1_Q5 3.22157e-06 + CTGACCTTGGAG
+chr11 19941476 19941485 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGG
+chr11 20782965 20782986 -V_DR3_Q4 9.26073e-06 - AACGGCCCCATTCCACCTCTT
+chr11 20782983 20782998 -V_OCT4_01 7.41924e-06 - CTTTGGAATGCAAAC
+chr11 20783011 20783026 +V_OCT4_01 9.05006e-06 + CTTTGAGATGCTAAC
+chr11 20783056 20783069 +V_NRF2_Q4 3.32319e-06 + ATGCTGATTCAGT
+chr11 20783057 20783068 +V_MAF_Q6_01 9.11965e-06 + TGCTGATTCAG
+chr11 21888714 21888724 +V_EBOX_Q6_01 1.22526e-06 + CCACCTGACC
+chr11 21888755 21888763 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr11 22507873 22507886 +V_SP1_Q6 3.06772e-06 + GGGGGGTGGGGTG
+chr11 22507874 22507883 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr11 22507874 22507884 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr11 22507876 22507891 -V_SREBP1_Q5 7.63808e-06 - CCAGACACCCCACCC
+chr11 22507880 22507889 -V_SMAD_Q6 2.71739e-06 - AGACACCCC
+chr11 22507964 22507978 -V_KROX_Q6 7.91616e-06 - CCCGCCTACTCTCC
+chr11 22521093 22521102 +V_SMAD_Q6 9.3359e-06 + AGACACCAC
+chr11 22521146 22521161 +V_OCT4_01 7.94702e-06 + TATTGTAATGTTAAG
+chr11 22521168 22521180 +V_PAX4_03 4.004e-06 + CACCACCACCCC
+chr11 22521171 22521180 -V_ZIC2_01 9.89755e-06 - GGGGTGGTG
+chr11 22521171 22521190 -V_PPARA_02 3.05216e-06 - GGGGGTGGTGGGGGTGGTG
+chr11 22521180 22521189 -V_ZIC2_01 9.89755e-06 - GGGGTGGTG
+chr11 22521208 22521220 +V_IPF1_Q4 2.08667e-06 + GCCCTAATGACC
+chr11 25373884 25373899 +V_OCT4_01 6.02107e-06 + CATTGATATTCAAAC
+chr11 26008811 26008823 +V_IPF1_Q4 2.8901e-06 + GAGCTAATGTCC
+chr11 26008828 26008846 -V_NF1_Q6 5.86126e-06 - GCTTGGCAGTTTGCCAGA
+chr11 26008829 26008846 +V_NF1_Q6_01 5.49685e-07 + CTGGCAAACTGCCAAGC
+chr11 26207653 26207665 +V_ETS_Q4 7.92948e-06 + CCCCACATCCTG
+chr11 26211292 26211310 -V_HNF3_Q6_01 1.6877e-07 - CTGTTTGTTTGCTTTTTC
+chr11 26211294 26211307 +V_HNF3_Q6 7.04647e-06 + AAAAGCAAACAAA
+chr11 26211295 26211308 -V_FOX_Q2 1.93154e-06 - GTTTGTTTGCTTT
+chr11 26211316 26211330 -V_KROX_Q6 3.79201e-06 - CCCTCCCCCACCTC
+chr11 26211320 26211333 +V_SP1_Q6 7.57405e-07 + TGGGGGAGGGGCC
+chr11 26211321 26211330 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr11 26211321 26211331 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr11 26211321 26211334 +V_MAZR_01 2.9486e-07 + GGGGGAGGGGCCA
+chr11 26211322 26211330 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr11 26211322 26211331 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr11 26211322 26211332 +V_SP1_Q6_01 2.74385e-06 + GGGGAGGGGC
+chr11 26382843 26382855 +V_ELF1_Q6 7.39845e-06 + GTTAGAGGAAGC
+chr11 26382877 26382888 +V_MAF_Q6_01 7.15365e-06 + TCCTGAGTCAA
+chr11 26382946 26382964 -V_CEBP_C 8.704e-06 - GGACTGAGGCAATCGCTG
+chr11 26382959 26382970 -V_GATA_C 6.82081e-06 - TGATAAGGACT
+chr11 26382960 26382973 -V_GATA1_04 6.24632e-06 - TGCTGATAAGGAC
+chr11 29536884 29536899 +V_OCT4_02 2.41403e-06 + TTTGTGATGGTAATG
+chr11 29536902 29536917 -V_SMAD4_Q6 5.60159e-07 - GGGGGCCAGACAACC
+chr11 29536949 29536963 +V_DMRT7_01 8.98311e-06 + TTGTTTCCTTGTGG
+chr11 29614174 29614185 -V_PITX2_Q2 3.37707e-06 - TATAATCCCAG
+chr11 29614218 29614231 +V_SOX_Q6 4.79442e-06 + TTCTTTGTTAGGT
+chr11 29614276 29614286 -V_SP1_Q2_01 8.14617e-06 - CCCCACCCCG
+chr11 29614277 29614289 -V_PAX4_03 4.004e-06 - GTTCCCCACCCC
+chr11 29614302 29614313 -V_OCT1_Q5_01 4.4061e-06 - TGATTTACATA
+chr11 29614302 29614313 -V_OCT_Q6 8.67576e-06 - TGATTTACATA
+chr11 29960805 29960820 -V_VDR_Q3 2.76308e-06 - GGGGGAAGGTGGACA
+chr11 29960847 29960860 +V_AP1_01 3.30287e-06 + GAATGACTCAGCT
+chr11 29960848 29960861 -V_NRF2_Q4 5.51501e-06 - TAGCTGAGTCATT
+chr11 29960849 29960858 +V_AP1_Q6_01 4.03003e-06 + ATGACTCAG
+chr11 29960849 29960860 -V_NFE2_01 1.73588e-06 - AGCTGAGTCAT
+chr11 29960849 29960860 -V_MAF_Q6_01 3.10442e-06 - AGCTGAGTCAT
+chr11 30391735 30391748 +V_STAT1STAT1_Q3 3.202e-06 + GTTTCAAGGAAAC
+chr11 30391848 30391863 -V_STAT5A_01 4.95337e-06 - CATTTCTTGGAAGTA
+chr11 30391848 30391863 -V_STAT5B_01 4.88212e-06 - CATTTCTTGGAAGTA
+chr11 30391851 30391875 +V_STAT5A_02 8.20291e-07 + TTCCAAGAAATGATTTTACAAGTA
+chr11 30391870 30391880 -V_NKX22_01 5.97675e-06 - TTAAGTACTT
+chr11 30392159 30392175 +V_NFKB_Q6_01 3.23504e-06 + GGAAAGGGAATTCCCC
+chr11 30392162 30392175 +V_P50P50_Q3 1.33286e-07 + AAGGGAATTCCCC
+chr11 30392162 30392176 +V_NFKB_Q6 5.15179e-06 + AAGGGAATTCCCCT
+chr11 30392162 30392176 -V_NFKB_Q6 9.22738e-07 - AGGGGAATTCCCTT
+chr11 30392163 30392175 +V_NFKB_C 5.17264e-06 + AGGGAATTCCCC
+chr11 30392163 30392175 -V_NFKB_C 6.15227e-06 - GGGGAATTCCCT
+chr11 30392163 30392176 -V_P50P50_Q3 9.77769e-07 - AGGGGAATTCCCT
+chr11 30392163 30392179 -V_NFKB_Q6_01 1.58445e-06 - ACCAGGGGAATTCCCT
+chr11 30392164 30392174 +V_NFKAPPAB65_01 7.87917e-06 + GGGAATTCCC
+chr11 30392164 30392174 +V_NFKAPPAB_01 7.46065e-07 + GGGAATTCCC
+chr11 30392164 30392174 -V_NFKAPPAB65_01 7.87917e-06 - GGGAATTCCC
+chr11 30392164 30392174 -V_NFKAPPAB_01 7.46065e-07 - GGGAATTCCC
+chr11 30392165 30392175 -V_CREL_01 5.43478e-06 - GGGGAATTCC
+chr11 30514113 30514128 -V_SPZ1_01 3.66346e-06 - GGAGGGGGGATGGGA
+chr11 30514149 30514162 +V_NKX61_01 7.0347e-06 + GTTTTAATTGGTA
+chr11 30514345 30514358 -V_DEC_Q1 6.31544e-06 - GGGCAAGTGAAGC
+chr11 30514411 30514423 -V_FOXO3A_Q1 5.14627e-06 - TGAAAACAAATG
+chr11 30514427 30514437 +V_FOXO1_01 7.37669e-06 + AATAAACAAG
+chr11 31419229 31419247 -V_MYOD_Q6_01 6.11726e-06 - CAGACACAGGTGGCCAGA
+chr11 31419304 31419322 +V_GCNF_01 1.34815e-06 + CTGCAGCTCAAGGTCACG
+chr11 31419308 31419322 +V_ERR1_Q2 8.37418e-07 + AGCTCAAGGTCACG
+chr11 31419311 31419320 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr11 32460720 32460731 -V_LEF1TCF1_Q4 5.90916e-06 - CCTTTGAACTT
+chr11 32460720 32460734 -V_COUP_01 7.43468e-06 - GGGCCTTTGAACTT
+chr11 32460746 32460757 +V_MAF_Q6_01 2.65014e-06 + TGCTGAGGCAG
+chr11 33463688 33463703 +V_DMRT1_01 1.11988e-06 + AAGATACAATGTTGC
+chr11 33463690 33463705 -V_DMRT1_01 3.53013e-07 - CTGCAACATTGTATC
+chr11 33463695 33463708 +V_DMRT4_01 2.69658e-06 + AATGTTGCAGTTT
+chr11 34215525 34215540 -V_OCT1_Q6 2.07164e-06 - GTGCATGCAAATCCT
+chr11 34215527 34215537 -V_OCT1_B 5.44227e-06 - CATGCAAATC
+chr11 34331123 34331138 -V_OCT4_01 9.65557e-06 - CATTGTCATGGAGAG
+chr11 34331146 34331161 +V_SPZ1_01 1.96252e-06 + GTAGGAGGGTGTGCC
+chr11 34331545 34331557 -V_SREBP_Q3 7.2459e-06 - ACTGTCACCCCA
+chr11 34331566 34331581 +V_VDR_Q3 8.52845e-06 + GGGTGAGAAAGGGGA
+chr11 34331576 34331584 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr11 34331576 34331585 -V_CKROX_Q2 8.90515e-06 - TCCCTCCCC
+chr11 34394846 34394859 +V_SP1_Q6 8.76141e-06 + GGGGGGAGGGGGA
+chr11 34394847 34394856 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr11 34394847 34394857 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr11 34394847 34394858 -V_SP1SP3_Q4 2.8432e-06 - CCCCCTCCCCC
+chr11 34394848 34394856 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr11 34394848 34394857 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr11 34394848 34394858 +V_SP1_Q6_01 8.48538e-06 + GGGGAGGGGG
+chr11 37934791 37934801 -V_SP1_Q2_01 9.56538e-06 - CCCCACCCCT
+chr11 37934792 37934802 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr11 37934792 37934804 -V_PAX4_03 1.74945e-06 - CAGCCCCACCCC
+chr11 37934797 37934806 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr11 37934858 37934869 +V_EGR_Q6 6.21659e-06 + GTGGGGGGAAC
+chr11 37934900 37934911 +V_LEF1TCF1_Q4 3.42525e-06 + CCTTTGTTCTT
+chr11 37934932 37934955 +V_OCT1_04 6.1322e-06 + TTTTAGTTATGCAAATATGAAGC
+chr11 37934933 37934948 +V_OCT4_01 6.39105e-07 + TTTAGTTATGCAAAT
+chr11 37934934 37934953 +V_OCT1_01 6.79648e-07 + TTAGTTATGCAAATATGAA
+chr11 37934939 37934949 +V_OCT1_B 4.33582e-06 + TATGCAAATA
+chr11 37934939 37934950 -V_OCT_Q6 7.92146e-06 - ATATTTGCATA
+chr11 39492130 39492143 +V_GATA1_04 6.24632e-06 + TTCTGATAAGGAC
+chr11 39492133 39492144 +V_GATA_C 6.82081e-06 + TGATAAGGACT
+chr11 39492167 39492183 +V_MAF_Q6 6.64814e-06 + AAGGAGAAAGTGGGCT
+chr11 39492201 39492216 -V_OCT4_01 4.28625e-06 - CATTGAGATGTAGAT
+chr11 40846679 40846698 -V_SEF1_C 7.54795e-06 - AACTCGGCTATCTATAGTT
+chr11 41923357 41923366 +V_T3R_Q6 8.74404e-06 + CCTGTCCTG
+chr11 41923405 41923422 +V_DR4_Q2 2.92515e-07 + TGTCCTGCACTGACCTT
+chr11 41923753 41923766 -V_HFH3_01 2.62184e-06 - GCTTGTTTGTATA
+chr11 43334056 43334065 +V_SMAD3_Q6 4.03003e-06 + TGTCTGTCT
+chr11 43334089 43334100 +V_EBF_Q6 2.28749e-06 + CTCCCCTGGGA
+chr11 43361884 43361894 +V_ESE1_Q3 8.06007e-06 + TGCTTCCTGT
+chr11 43361993 43362009 -V_S8_01 8.05419e-06 - CTAACCCAATTAGCGG
+chr11 45833946 45833964 +V_HNF3_Q6_01 6.08391e-06 + TGTCTTGTTTGCTCTTGT
+chr11 45833982 45833997 +V_OCT4_01 9.73507e-08 + ATTTGTTATGCAAAT
+chr11 45833983 45833998 +V_OCT4_02 1.61981e-06 + TTTGTTATGCAAATA
+chr11 45833988 45833998 +V_OCT1_B 4.33582e-06 + TATGCAAATA
+chr11 45833988 45833999 -V_OCT_Q6 9.41564e-06 - CTATTTGCATA
+chr11 45947357 45947371 +V_DMRT7_01 9.63794e-06 + TTGTTACACTGTTG
+chr11 45947357 45947372 +V_DMRT1_01 1.79174e-06 + TTGTTACACTGTTGC
+chr11 45947364 45947377 +V_DMRT4_01 7.19979e-06 + ACTGTTGCAAATT
+chr11 49619834 49619843 +V_T3R_Q6 3.30926e-06 + CCTGTCCTT
+chr11 50065759 50065770 -V_EBF_Q6 2.83527e-06 - GTCCCTAGAGA
+chr11 50065764 50065776 +V_NFKB_C 4.56464e-06 + AGGGACATTCCA
+chr11 50065784 50065804 +V_YY1_02 7.90745e-06 + ACCAGGCCATGGGGGCTGGA
+chr11 50065882 50065892 -V_P53_DECAMER_Q2 2.10476e-06 - AGGCAAGTCC
+chr11 50065882 50065902 +V_P53_01 2.02041e-06 + GGACTTGCCTGGACTTGCTC
+chr11 50065882 50065902 -V_P53_01 1.07603e-06 - GAGCAAGTCCAGGCAAGTCC
+chr11 50204903 50204920 +V_HSF1_Q6 3.07173e-06 + CTTCTGGAGCTGTCTGC
+chr11 51299721 51299732 +V_EVI1_03 8.92601e-06 + AGATAAGATGA
+chr11 51299743 51299756 +V_AP2_Q6_01 3.36599e-06 + GCGCCCCGAGGCC
+chr11 51299744 51299756 +V_AP2_Q6 5.99026e-06 + CGCCCCGAGGCC
+chr11 51299777 51299798 -V_PPARG_01 4.51757e-07 - CACAAGGTCAAAGGACATCCT
+chr11 51299780 51299794 -V_HNF4_Q6_01 8.37803e-06 - AGGTCAAAGGACAT
+chr11 51299781 51299794 +V_PPAR_DR1_Q2 1.23352e-06 + TGTCCTTTGACCT
+chr11 51299781 51299794 +V_HNF4_DR1_Q3 2.08574e-06 + TGTCCTTTGACCT
+chr11 51299781 51299794 +V_COUP_DR1_Q6 4.83437e-06 + TGTCCTTTGACCT
+chr11 51299781 51299794 -V_RXRLXRB_01 5.09071e-07 - AGGTCAAAGGACA
+chr11 51299781 51299794 -V_DR1_Q3 6.51335e-07 - AGGTCAAAGGACA
+chr11 51299781 51299798 -V_PPARG_03 8.20535e-06 - CACAAGGTCAAAGGACA
+chr11 51299809 51299822 +V_SP1_Q6 3.23457e-06 + TGGGGGAGGGGTG
+chr11 51299810 51299819 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr11 51299810 51299820 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr11 51299811 51299819 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr11 51299811 51299820 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr11 51299811 51299821 +V_SP1_Q6_01 9.74073e-06 + GGGGAGGGGT
+chr11 54016012 54016040 +V_PAX5_01 6.53963e-06 + CTGTGGGGGAGGGAGGGGGAGCAGGACT
+chr11 54016016 54016025 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr11 54016017 54016025 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr11 54016017 54016026 -V_CKROX_Q2 8.90515e-06 - TCCCTCCCC
+chr11 54016101 54016115 -V_POU3F2_01 1.94414e-06 - ATGCTTTAATTCAT
+chr11 54070473 54070490 +V_HSF1_Q6 1.14153e-08 + TTTCTGGAAATTTCTCC
+chr11 54647747 54647764 +V_RFX1_01 9.69922e-06 + CAGACGCCTGGAAACCA
+chr11 54647843 54647853 -V_GATA6_01 9.61771e-06 - ACAGATAAGC
+chr11 55219657 55219666 -V_AP2ALPHA_01 9.68294e-06 - GCCCGAGGG
+chr11 55219657 55219666 -V_AP2GAMMA_01 7.85065e-06 - GCCCGAGGG
+chr11 55219688 55219697 +V_FOXM1_01 8.06007e-06 + AGATGGACT
+chr11 55219747 55219763 +V_LXR_DR4_Q3 2.06158e-06 + TGACCGGATGTGACCA
+chr11 55219747 55219765 -V_LXR_Q3 4.48062e-06 - CATGGTCACATCCGGTCA
+chr11 55219749 55219759 +V_CETS1P54_01 6.77271e-06 + ACCGGATGTG
+chr11 55219750 55219761 +V_FLI1_Q6 2.00328e-06 + CCGGATGTGAC
+chr11 55219759 55219770 -V_ER_Q6_02 9.65928e-06 - GAGGTCATGGT
+chr11 55219776 55219800 -V_BRACH_01 8.98588e-06 - AGCTCCACAGTTTGGTGTCAGATT
+chr11 55264017 55264034 -V_FOXP3_Q4 5.24137e-06 - GAAAGGCTGTTTCCTAC
+chr11 55264057 55264066 -V_SMAD_Q6 9.3359e-06 - AGACACCCT
+chr11 55760293 55760304 -V_GATA_C 6.82081e-06 - AGATAAGCCCA
+chr11 55760294 55760307 -V_GATA1_04 7.26537e-06 - AGCAGATAAGCCC
+chr11 55760359 55760374 -V_OCT4_02 5.30392e-06 - TTTGTCATGCAAGAT
+chr11 55760360 55760375 -V_OCT4_01 4.91956e-06 - CTTTGTCATGCAAGA
+chr11 55760369 55760383 +V_BLIMP1_Q6 4.78735e-06 + ACAAAGGGAAAGTG
+chr11 55770991 55771005 +V_ERR1_Q2 5.40592e-06 + TTCTGAAGGTCATG
+chr11 57474481 57474490 +V_CKROX_Q2 8.90515e-06 + TCCCTCCCC
+chr11 57474482 57474490 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr11 57914948 57914966 +V_HNF3_Q6_01 7.43361e-06 + CTTTTTGTTTGTTTGTTT
+chr11 57914948 57914966 -V_FOXJ2_01 9.22567e-06 - AAACAAACAAACAAAAAG
+chr11 57914950 57914962 +V_FOXD3_01 9.53633e-06 + TTTTGTTTGTTT
+chr11 57914950 57914963 +V_HFH4_01 5.28594e-06 + TTTTGTTTGTTTG
+chr11 57914950 57914970 +V_FOXP1_01 3.48675e-06 + TTTTGTTTGTTTGTTTGTTT
+chr11 57914951 57914964 -V_HNF3_Q6 8.74112e-06 - ACAAACAAACAAA
+chr11 57914952 57914970 +V_HNF3_Q6_01 8.19906e-06 + TTGTTTGTTTGTTTGTTT
+chr11 57914952 57914970 -V_FOXJ2_01 8.71392e-07 - AAACAAACAAACAAACAA
+chr11 57914954 57914966 +V_FOXD3_01 9.66278e-07 + GTTTGTTTGTTT
+chr11 57914954 57914967 +V_FOX_Q2 5.55936e-06 + GTTTGTTTGTTTG
+chr11 57914954 57914967 +V_HFH3_01 7.45015e-06 + GTTTGTTTGTTTG
+chr11 57914954 57914967 +V_HFH4_01 7.99656e-06 + GTTTGTTTGTTTG
+chr11 57914955 57914968 -V_HNF3_Q6 8.74112e-06 - ACAAACAAACAAA
+chr11 57914956 57914974 -V_FOXJ2_01 5.17183e-06 - CCTCAAACAAACAAACAA
+chr11 57914958 57914970 +V_FOXD3_01 9.66278e-07 + GTTTGTTTGTTT
+chr11 57914958 57914971 +V_FOX_Q2 5.55936e-06 + GTTTGTTTGTTTG
+chr11 57914958 57914971 +V_HFH3_01 7.45015e-06 + GTTTGTTTGTTTG
+chr11 57914958 57914971 +V_HFH4_01 7.99656e-06 + GTTTGTTTGTTTG
+chr11 57914996 57915014 -V_GCNF_01 9.12595e-06 - AGCAAGGTCCAGGACAGC
+chr11 57914997 57915011 +V_PAX6_Q2 5.90365e-06 + CTGTCCTGGACCTT
+chr11 57915002 57915011 -V_HNF4_Q6 7.33929e-06 - AAGGTCCAG
+chr11 57915002 57915016 -V_HNF4_Q6_01 9.45536e-06 - AGAGCAAGGTCCAG
+chr11 59521622 59521631 +V_AP2ALPHA_01 6.01835e-06 + GCCCCGGGC
+chr11 59521622 59521631 +V_AP2GAMMA_01 6.01835e-06 + GCCCCGGGC
+chr11 59521622 59521631 -V_AP2ALPHA_01 3.00918e-06 - GCCCGGGGC
+chr11 59521622 59521631 -V_AP2GAMMA_01 3.00918e-06 - GCCCGGGGC
+chr11 59521667 59521676 +V_SMAD_Q6 9.3359e-06 + AGACACCAC
+chr11 59521756 59521765 -V_SMAD3_Q6 4.03003e-06 - TGTCTGTCT
+chr11 59705589 59705607 -V_RFX1_02 2.86549e-06 - CAGCAGCCATGGCAACTG
+chr11 59705663 59705672 +V_AP2ALPHA_01 3.00918e-06 + GCCCGGGGC
+chr11 59705663 59705672 +V_AP2GAMMA_01 3.00918e-06 + GCCCGGGGC
+chr11 59705663 59705672 -V_AP2ALPHA_01 6.01835e-06 - GCCCCGGGC
+chr11 59705663 59705672 -V_AP2GAMMA_01 6.01835e-06 - GCCCCGGGC
+chr11 59705681 59705696 +V_DMRT1_01 6.80276e-06 + TAGTTACTTTGTTTC
+chr11 60205404 60205418 +V_ETS2_B 7.32788e-06 + TGCAGGAAACGTTT
+chr11 60205439 60205454 +V_DMRT3_01 4.65166e-06 + TGGTTGATACAATGT
+chr11 60205442 60205456 +V_DMRT7_01 3.27916e-06 + TTGATACAATGTGT
+chr11 60205442 60205457 +V_DMRT1_01 4.26013e-07 + TTGATACAATGTGTC
+chr11 60205442 60205461 +V_GR_Q6 9.09779e-06 + TTGATACAATGTGTCCAAA
+chr11 60205444 60205459 -V_DMRT1_01 6.49273e-06 - TGGACACATTGTATC
+chr11 60205492 60205501 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr11 60205510 60205525 +V_DMRT5_01 9.57435e-06 + TTTAGTAACAGTGTT
+chr11 60205512 60205526 +V_DMRT7_01 4.06802e-06 + TAGTAACAGTGTTG
+chr11 60700711 60700731 -V_FOXP1_01 8.89042e-08 - TTGTTTGTTTTGTTTTGTTT
+chr11 60700717 60700735 +V_FOXJ2_01 2.67854e-06 + AACAAAACAAACAAAAGA
+chr11 60700717 60700735 -V_HNF3_Q6_01 1.09651e-06 - TCTTTTGTTTGTTTTGTT
+chr11 60700719 60700732 +V_HNF3_Q6 3.26963e-06 + CAAAACAAACAAA
+chr11 60700720 60700733 -V_FOX_Q2 1.93154e-06 - TTTTGTTTGTTTT
+chr11 60700720 60700733 -V_HFH4_01 3.17054e-06 - TTTTGTTTGTTTT
+chr11 60700721 60700733 -V_FOXD3_01 9.53633e-06 - TTTTGTTTGTTT
+chr11 60736606 60736621 +V_OCT4_01 6.02107e-06 + TATTCAGATGCAAAG
+chr11 60736607 60736622 +V_OCT4_02 3.27036e-06 + ATTCAGATGCAAAGG
+chr11 60736675 60736690 +V_SPZ1_01 2.19806e-06 + AGAGGAGGGATGGGC
+chr11 60887858 60887870 -V_TTF1_Q6 4.68363e-06 - CAGTCAAGTGGC
+chr11 60887859 60887869 -V_TITF1_Q3 7.59039e-06 - AGTCAAGTGG
+chr11 60887958 60887968 +V_NKX22_01 5.97675e-06 + TTAAGTACTT
+chr11 60887969 60887985 -V_AP2_Q3 6.78822e-06 - AGCCCCAGGCTAAACC
+chr11 61106890 61106899 -V_ZIC2_01 7.66616e-06 - AGGGTGGTC
+chr11 61107008 61107021 +V_GATA1_04 9.51553e-06 + ATCAGATAAGAAT
+chr11 61108092 61108111 -V_GR_Q6 7.14505e-07 - TGAGTTCATTGTGTTCTGT
+chr11 61108094 61108109 -V_AR_01 5.42378e-06 - AGTTCATTGTGTTCT
+chr11 61108133 61108144 +V_FOXO4_01 8.57006e-07 + GTAAACAAGCC
+chr11 61108173 61108191 +V_FOXJ2_01 9.96532e-06 + CATAAAATAAACAGACCG
+chr11 61108176 61108189 -V_FOX_Q2 4.08159e-06 - GTCTGTTTATTTT
+chr11 61108205 61108219 +V_PAX6_Q2 3.0018e-07 + CTGTGCTGGAACTT
+chr11 61108219 61108232 +V_SP1_Q6 7.04257e-06 + CAGGGGCGGAGTG
+chr11 61108231 61108242 +V_YY1_Q6_02 3.10442e-06 + GCCTCCATTTT
+chr11 63842709 63842726 -V_DR4_Q2 6.81376e-06 - TGCCCTGTAGTAAACTA
+chr11 63842751 63842768 +V_NF1_Q6_01 2.18952e-06 + CTGGACAATGGCCAAGG
+chr11 63936816 63936827 -V_EVI1_03 2.46139e-06 - AGATAAGATAC
+chr11 63936816 63936827 -V_EVI1_05 3.95558e-06 - AGATAAGATAC
+chr11 63936838 63936853 -V_ETS1_B 2.60229e-06 - GCAGGAAGTGAGATC
+chr11 63936840 63936852 +V_ETS_Q4 4.36344e-06 + TCTCACTTCCTG
+chr11 63936840 63936854 -V_ETS2_B 4.09631e-06 - AGCAGGAAGTGAGA
+chr11 63936841 63936852 -V_FLI1_Q6 2.00328e-06 - CAGGAAGTGAG
+chr11 63936883 63936896 -V_MAZR_01 2.4135e-06 - TGGGGTGGGGACA
+chr11 63936889 63936902 -V_SP1_Q6 7.54104e-06 - TGGGGGTGGGGTG
+chr11 63936891 63936901 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr11 63936892 63936901 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr11 64638868 64638877 +V_MYB_Q5_01 2.71739e-06 + CAACTGCCC
+chr11 64638928 64638938 +V_TBX5_Q5 5.68466e-06 + TTCACACCTG
+chr11 64647492 64647501 +V_HNF4_Q6 7.33929e-06 + AAGGTCCAA
+chr11 64692128 64692144 +V_AP2_Q3 3.22678e-06 + AGCCCCAGGCAGAGGT
+chr11 64692155 64692173 +V_GCNF_01 4.10396e-07 + CACAAGTTCAAGGCCAGT
+chr11 64692158 64692172 -V_PAX6_Q2 3.04054e-06 - CTGGCCTTGAACTT
+chr11 64692160 64692172 -V_LRH1_Q5 3.06315e-07 - CTGGCCTTGAAC
+chr11 67639298 67639311 +V_GATA1_04 6.24632e-06 + TGCAGATAAGGAT
+chr11 67639325 67639338 +V_HNF3_Q6 2.22829e-06 + CTAAGCAAATAGA
+chr11 68099462 68099475 +V_HNF3_Q6 1.54309e-06 + CTGAACAAACACT
+chr11 68099489 68099499 +V_TBX5_Q5 5.68466e-06 + TTCACACCTG
+chr11 68099533 68099542 -V_SMAD3_Q6 7.33929e-06 - TGTCTGCCT
+chr11 68207625 68207636 +V_RORA_Q4 2.9528e-06 + AAACTGGGTCA
+chr11 68207667 68207677 -V_IK_Q5 7.92622e-06 - TCTGGGAGGC
+chr11 69285119 69285132 -V_AP1_01 5.13952e-06 - GAATGAGTCAGAT
+chr11 69285121 69285130 -V_AP1_C 4.03003e-06 - ATGAGTCAG
+chr11 69517792 69517806 +V_OCT1_05 2.70074e-06 + CTAATTATCATATT
+chr11 69518011 69518021 +V_EBOX_Q6_01 6.43409e-06 + CCACCTGGCC
+chr11 72099766 72099776 -V_SP1_Q6_01 4.32232e-06 - GGGGTGGGGC
+chr11 72099767 72099777 +V_SP1_Q2_01 8.14617e-06 + CCCCACCCCG
+chr11 72234124 72234136 +V_GATA4_Q3 3.87593e-06 + AGATAAAAGGGG
+chr11 72234141 72234156 -V_OCT4_01 4.28625e-06 - CTTTCATATGCATAT
+chr11 74345372 74345385 +V_SP1_Q6 3.85413e-06 + TGGGGGAGGGGGG
+chr11 74345373 74345382 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr11 74345373 74345383 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr11 74345373 74345384 -V_SP1SP3_Q4 2.8432e-06 - CCCCCTCCCCC
+chr11 74345373 74345388 +V_VDR_Q3 1.22689e-06 + GGGGGAGGGGGGACC
+chr11 74345374 74345382 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr11 74345374 74345383 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr11 74345374 74345384 +V_SP1_Q6_01 8.48538e-06 + GGGGAGGGGG
+chr11 74345375 74345388 +V_MAZR_01 4.80613e-06 + GGGAGGGGGGACC
+chr11 74345417 74345428 -V_EVI1_03 8.92601e-06 - AGATAAGATGA
+chr11 75366622 75366632 +V_PR_Q2 2.92358e-06 + GAGAGAACAC
+chr11 75366676 75366690 -V_BLIMP1_Q6 7.33178e-06 - AGGCAGGGAAAGTT
+chr11 75366700 75366717 +V_DR4_Q2 5.18349e-06 + TACCCTCTCCTGAGCCC
+chr11 75366729 75366747 -V_FOXJ2_01 7.26098e-06 - CAAAACATAAACATCCCA
+chr11 75366758 75366767 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr11 75826914 75826932 -V_FOXJ2_01 1.40736e-06 - AAACAAACAAACAACAAA
+chr11 75826916 75826929 +V_HFH3_01 5.62995e-06 + TGTTGTTTGTTTG
+chr11 75826918 75826936 -V_FOXJ2_01 3.94462e-06 - TTAGAAACAAACAAACAA
+chr11 75826920 75826932 +V_FOXD3_01 9.66278e-07 + GTTTGTTTGTTT
+chr11 76407591 76407607 +V_EVI1_01 8.79659e-06 + AGGCAAGAAAAGAGAA
+chr11 76460931 76460943 -V_ETS_Q4 4.90737e-06 - AACCCCTTCCTG
+chr11 76461051 76461061 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr11 76461052 76461061 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr11 76461053 76461064 +V_SP1SP3_Q4 4.25103e-06 + CCACCCCCTCC
+chr11 77269571 77269581 -V_MYB_Q6 4.20952e-06 - CTCAACTGCC
+chr11 77269636 77269646 +V_NCX_01 5.32427e-06 + TGGTAATTGG
+chr11 77269648 77269663 +V_OCT4_01 9.05006e-06 + TATTGTGAAGCAAAT
+chr11 77269702 77269720 +V_GCNF_01 1.92021e-06 + TCGAAATTCAAGGTCATC
+chr11 77269709 77269718 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr11 77493764 77493780 -V_MAF_Q6 4.64105e-07 - TAAAAGGAAGTGTGGT
+chr11 77493768 77493779 -V_ELF5_01 8.57585e-06 - AAAAGGAAGTG
+chr11 77552213 77552228 -V_CP2_02 5.58152e-07 - GCTGGGTCCCTCTGG
+chr11 77552334 77552348 -V_ERR1_Q2 6.40101e-06 - GCCTCAAGGTCACC
+chr11 77552336 77552345 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr11 77650386 77650397 -V_E12_Q6 5.58116e-06 - GGCAGGTGGTG
+chr11 77650386 77650398 -V_MYOD_01 1.24875e-06 - GGGCAGGTGGTG
+chr11 77650386 77650398 -V_LMO2COM_01 4.26141e-06 - GGGCAGGTGGTG
+chr11 77650387 77650397 +V_MYOD_Q6 2.71739e-06 + ACCACCTGCC
+chr11 77650388 77650398 +V_EBOX_Q6_01 6.43409e-06 + CCACCTGCCC
+chr11 77650389 77650397 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr11 77650451 77650461 +V_NUR77_Q5 2.98426e-06 + CTGACCTTGG
+chr11 77650452 77650461 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGG
+chr11 77650452 77650465 +V_PPAR_DR1_Q2 4.57755e-06 + TGACCTTGGGCCT
+chr11 77650452 77650465 +V_COUP_DR1_Q6 7.90564e-06 + TGACCTTGGGCCT
+chr11 77650452 77650465 -V_RXRLXRB_01 5.3169e-06 - AGGCCCAAGGTCA
+chr11 77650452 77650465 -V_DR1_Q3 4.56975e-06 - AGGCCCAAGGTCA
+chr11 77650452 77650472 -V_PPARA_01 3.8328e-06 - TTAGTGTAGGCCCAAGGTCA
+chr11 77650507 77650521 +V_KROX_Q6 7.21197e-06 + CCTGCCCACTCTCC
+chr11 77730755 77730768 -V_STAT_Q6 9.56258e-06 - GGCTCTTCTGGGC
+chr11 77730834 77730863 +V_MYOGNF1_01 5.05943e-06 + AAGTTCCCGGCTTTGGATCTGAGTCAGCT
+chr11 77730851 77730862 -V_AP1FJ_Q2 2.02766e-06 - GCTGACTCAGA
+chr11 77730851 77730862 -V_AP1_Q2 8.19335e-07 - GCTGACTCAGA
+chr11 77730851 77730862 -V_AP1_Q6 4.26015e-06 - GCTGACTCAGA
+chr11 77730851 77730862 -V_AP1_Q4 7.9984e-06 - GCTGACTCAGA
+chr11 77730870 77730883 -V_AP2_Q6_01 1.88894e-06 - GAGCCCCCAGGCT
+chr11 78613556 78613567 +V_LEF1TCF1_Q4 2.36341e-06 + CCTTTGTTGTC
+chr11 78613593 78613603 +V_NUR77_Q5 8.43564e-06 + TTGACCTTGG
+chr11 78613594 78613603 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGG
+chr11 79121894 79121903 -V_AP1_Q6_01 4.03003e-06 - ATGACTCAG
+chr11 79121906 79121918 +V_SRY_02 6.58101e-06 + TAAAACAAAAGG
+chr11 79945777 79945788 +V_EGR_Q6 7.1239e-06 + GTGGGGGGAGG
+chr11 79945817 79945831 +V_E2A_Q2 8.03505e-06 + CCACATGTCTCCTG
+chr11 80332182 80332196 +V_ETS2_B 1.29216e-07 + GACAGGAAGTCATT
+chr11 80332183 80332198 +V_ETS1_B 4.29052e-06 + ACAGGAAGTCATTCA
+chr11 80332184 80332195 +V_FLI1_Q6 4.3053e-06 + CAGGAAGTCAT
+chr11 80332184 80332196 -V_ETS_Q4 7.92948e-06 - AATGACTTCCTG
+chr11 80332193 80332208 +V_OCT4_02 8.38472e-07 + ATTCAGATGCTGATG
+chr11 80332208 80332226 +V_RFX1_02 6.30889e-06 + CCATTGCCATGGAAACCA
+chr11 80332209 80332223 +V_EFC_Q6 8.30534e-06 + CATTGCCATGGAAA
+chr11 80332244 80332253 +V_SMAD3_Q6 7.33929e-06 + TGTCTGCCT
+chr11 81426654 81426663 -V_LRF_Q2 1.50459e-06 - GGGGCCCCC
+chr11 81426663 81426678 +V_OCT4_01 2.28618e-06 + TTTTGTTATGAAAAT
+chr11 81426664 81426679 +V_OCT4_02 4.03834e-06 + TTTGTTATGAAAATG
+chr11 81426682 81426712 -V_PAX4_04 7.83759e-06 - CAAAACACAAACAGAACCCCTCCCCACTCC
+chr11 81426687 81426695 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr11 81426687 81426696 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr11 81426687 81426697 +V_SP1_Q6_01 9.74073e-06 + GGGGAGGGGT
+chr11 81426707 81426722 +V_OCT4_01 3.26181e-06 + TTTTGATATGTTAAT
+chr11 81426712 81426722 +V_POU3F2_02 5.63759e-06 + ATATGTTAAT
+chr11 81426779 81426799 +V_FOXP1_01 4.50341e-06 + TTATTTGTGCAGTTTAATTT
+chr11 82293685 82293704 -V_PPARA_02 9.54888e-07 - TCAGGTCAGTGAGGTCACA
+chr11 82293781 82293790 -V_AP2ALPHA_01 3.00918e-06 - GCCCGGGGG
+chr11 82293781 82293790 -V_AP2GAMMA_01 1.50459e-06 - GCCCGGGGG
+chr11 82695093 82695123 +V_PAX4_04 1.66169e-06 + AGAAATTACCACCACTGCCACACCCAGGTC
+chr11 82695110 82695118 +V_CACD_01 9.89755e-06 + CCACACCC
+chr11 82695170 82695182 -V_AP2_Q6 3.4263e-06 - CTCCCCCAGGCC
+chr11 82695170 82695183 -V_AP2_Q6_01 6.31248e-07 - CCTCCCCCAGGCC
+chr11 82695198 82695218 +V_PPARA_01 4.4569e-06 + CAGCAGAGGGCCAAAGGACA
+chr11 82695204 82695218 -V_COUP_01 9.719e-06 - TGTCCTTTGGCCCT
+chr11 82695205 82695218 +V_DR1_Q3 9.22428e-07 + GGGCCAAAGGACA
+chr11 82695205 82695218 -V_PPAR_DR1_Q2 1.00552e-06 - TGTCCTTTGGCCC
+chr11 82695205 82695218 -V_HNF4_DR1_Q3 1.24434e-06 - TGTCCTTTGGCCC
+chr11 82695205 82695218 -V_COUP_DR1_Q6 2.97763e-06 - TGTCCTTTGGCCC
+chr11 82695205 82695219 +V_HNF4_Q6_01 3.0083e-06 + GGGCCAAAGGACAG
+chr11 82695211 82695220 -V_T3R_Q6 3.30926e-06 - CCTGTCCTT
+chr11 82695223 82695231 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr11 82695227 82695239 -V_NFKB_C 9.0304e-06 - GGGGACTTCACC
+chr11 82695227 82695240 -V_P50P50_Q3 6.86436e-06 - TGGGGACTTCACC
+chr11 82695242 82695255 +V_AP2_Q6_01 7.38468e-06 + CTGTCCCCAGGCT
+chr11 85053831 85053846 +V_OCT4_01 1.40241e-06 + TATTGTAATGCTAAA
+chr11 85053832 85053847 +V_OCT4_02 6.55103e-06 + ATTGTAATGCTAAAT
+chr11 85053852 85053881 -V_MYOGNF1_01 2.62185e-07 - CGGATCTTCTCATTGGCAGGCAACCAGGA
+chr11 85053853 85053871 -V_NF1_Q6 6.37048e-07 - CATTGGCAGGCAACCAGG
+chr11 85053854 85053871 +V_NF1_Q6_01 2.50925e-06 + CTGGTTGCCTGCCAATG
+chr11 85053862 85053873 +V_ALPHACP1_01 4.69148e-06 + CTGCCAATGAG
+chr11 85053924 85053940 -V_NFY_01 2.4209e-06 - ATTGACCAATCAGGGA
+chr11 85053926 85053940 +V_NFY_C 1.09413e-06 + CCTGATTGGTCAAT
+chr11 85053927 85053938 -V_NFY_Q6 2.40802e-06 - TGACCAATCAG
+chr11 85053928 85053941 -V_NFY_Q6_01 5.29946e-06 - TATTGACCAATCA
+chr11 85183134 85183144 -V_TAL1_Q6 7.46065e-07 - TCCAGCTGCT
+chr11 85183157 85183175 -V_NF1_Q6 5.86126e-06 - CCTTGGCAGGAAGCAGAG
+chr11 86654379 86654394 +V_STAT5A_01 5.96415e-06 + GAGTTCCTGGAAGTT
+chr11 86654379 86654394 +V_STAT5B_01 2.90454e-06 + GAGTTCCTGGAAGTT
+chr11 86654379 86654394 -V_STAT5A_01 2.87471e-06 - AACTTCCAGGAACTC
+chr11 86654424 86654440 +V_DMRT2_01 5.03993e-06 + TAGATTGCAACAATGT
+chr11 86654428 86654442 +V_DMRT7_01 1.54252e-06 + TTGCAACAATGTGG
+chr11 86654428 86654443 +V_DMRT1_01 6.88806e-07 + TTGCAACAATGTGGC
+chr11 86654452 86654469 -V_NF1_Q6_01 5.38936e-06 - TTGAACAGATGCCAAGG
+chr11 87984240 87984255 +V_OCT4_01 3.49929e-06 + TATTGTGATGTTAAT
+chr11 87984241 87984256 +V_OCT4_02 3.27036e-06 + ATTGTGATGTTAATT
+chr11 87984300 87984317 +V_HSF1_Q6 4.22375e-06 + ATTCAGGAAATTTCTTG
+chr11 87984375 87984389 +V_BLIMP1_Q6 5.74624e-06 + TGGAAGGGAAAGGT
+chr11 88396942 88396962 +V_YY1_02 3.7408e-06 + CCTGGGCCATGATTTCTGGT
+chr11 88396946 88396959 -V_GFI1_Q6 9.14201e-06 - AGAAATCATGGCC
+chr11 88396980 88396997 +V_YY1_01 3.54826e-06 + GAAAACCATCTTGGGAG
+chr11 88397008 88397023 +V_OCT4_01 2.64195e-06 + CTTTCTCATGCTAAC
+chr11 88522975 88522990 +V_HNF1_01 9.40951e-07 + AGTTAATATTTACAA
+chr11 88744219 88744232 +V_SP1_Q6 8.16238e-06 + AGTGGGAGGGGTC
+chr11 88744220 88744230 -V_SP1_Q2_01 9.56538e-06 - CCCCTCCCAC
+chr11 88793166 88793189 +V_PPARG_02 5.97188e-06 + CATTAGGTCACCTAGGTCTACTT
+chr11 88793222 88793232 -V_POU3F2_02 7.27852e-06 - ATATGCTAAT
+chr11 88793301 88793314 -V_COUP_DR1_Q6 9.5269e-06 - TGACCTCTGTCTT
+chr11 89103563 89103572 -V_HNF4_Q6 7.33929e-06 - AAGGTCCAG
+chr11 89103626 89103638 +V_SREBP_Q3 8.61735e-07 + GGCCTCACCCCA
+chr11 89103626 89103641 +V_SREBP_Q6 1.37849e-06 + GGCCTCACCCCAGTG
+chr11 89103626 89103641 +V_SREBP1_Q5 1.85171e-06 + GGCCTCACCCCAGTG
+chr11 89103677 89103687 +V_SP1_Q2_01 6.40385e-06 + CCCCGCCCAG
+chr11 89103706 89103714 -V_CACD_01 9.89755e-06 - CCACACCC
+chr11 94614757 94614771 +V_BLIMP1_Q6 1.30162e-06 + TGAAAGGGAAATGA
+chr11 94614781 94614799 +V_AHR_01 2.00052e-06 + CCTCAGGCTAGCGAGAAA
+chr11 94614801 94614812 +V_AP1_Q6 6.96691e-06 + CCTGACTCAGC
+chr11 94614801 94614814 -V_NRF2_Q4 2.30897e-08 - CTGCTGAGTCAGG
+chr11 94614802 94614813 -V_MAF_Q6_01 4.54281e-07 - TGCTGAGTCAG
+chr11 94614827 94614837 +V_MYOD_Q6 1.49213e-06 + AGCACCTGTC
+chr11 94614832 94614843 -V_SMAD_Q6_01 9.38894e-06 - TTGTCAGACAG
+chr11 94614874 94614889 +V_SPZ1_01 8.55807e-06 + GAAGGGGGGAGGGGC
+chr11 94614877 94614890 +V_SP1_Q6 5.66938e-07 + GGGGGGAGGGGCT
+chr11 94614878 94614887 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr11 94614878 94614888 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr11 94614878 94614891 +V_MAZR_01 7.22993e-06 + GGGGGAGGGGCTT
+chr11 94614879 94614887 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr11 94614879 94614888 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr11 94614879 94614889 +V_SP1_Q6_01 2.74385e-06 + GGGGAGGGGC
+chr11 94865701 94865716 -V_BACH1_01 4.98171e-06 - CCCATGAGTCACCAC
+chr11 94865702 94865715 -V_AP1_01 3.30287e-06 - CCATGAGTCACCA
+chr11 94865703 94865714 +V_AP1_Q6 9.43393e-06 + GGTGACTCATG
+chr11 94865703 94865714 -V_BACH2_01 1.82283e-06 - CATGAGTCACC
+chr11 94865705 94865717 +V_AP1_Q2_01 6.15786e-07 + TGACTCATGGGT
+chr11 96862298 96862306 +V_CACD_01 9.89755e-06 + CCACACCC
+chr11 96862322 96862335 -V_P50P50_Q3 4.93519e-06 - CGGGGACTTCCTC
+chr11 96862337 96862347 -V_SP1_Q2_01 6.40385e-06 - CCCCGCCCAG
+chr11 96862338 96862348 +V_SP1_Q6_01 6.74305e-06 + TGGGCGGGGT
+chr11 97282299 97282308 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr11 97282300 97282313 +V_AP2_Q6_01 5.59926e-06 + CCACCCCCAGGCT
+chr11 98427324 98427342 -V_GCNF_01 1.34815e-06 - CCAAAGGTCAAGGTCTGC
+chr11 98427332 98427346 +V_COUP_01 1.81727e-06 + TGACCTTTGGATCT
+chr11 98427354 98427365 -V_PITX2_Q2 5.53227e-07 - TGTAATCCCAG
+chr11 98653529 98653543 -V_PAX6_Q2 5.62635e-06 - CTGACTTTGAACTC
+chr11 98653591 98653602 -V_EBF_Q6 7.68235e-06 - CTCCCCTGGGG
+chr11 98764196 98764217 +V_PAX4_01 9.02717e-06 + GGAGGTGAGGGGTGGGGAGTA
+chr11 98764203 98764213 -V_SP1_Q2_01 9.56538e-06 - CCCCACCCCT
+chr11 98764204 98764216 -V_PAX4_03 5.65167e-06 - ACTCCCCACCCC
+chr11 98764210 98764232 +V_MEF2_03 6.79786e-06 + GGGAGTACTGTAAATAGACTTG
+chr11 98923282 98923293 -V_E12_Q6 4.37943e-06 - AGCAGGTGTCC
+chr11 98923307 98923327 +V_ARNT_02 4.87264e-06 + GCAGAAGCACGTGACGAATG
+chr11 98923307 98923327 -V_ARNT_02 4.87264e-06 - CATTCGTCACGTGCTTCTGC
+chr11 98923385 98923403 -V_HNF3_Q6_01 9.0308e-06 - GTCCCTGTTTATCCAGGT
+chr11 101648991 101649006 +V_OCT4_01 6.46423e-06 + TTTAGATATGTAAAT
+chr11 101649022 101649040 +V_HNF3_Q6_01 4.95025e-06 + CCCACTGTTTGCCCTGGG
+chr11 102190986 102191001 -V_OCT4_01 7.94702e-06 - TTTTGTTGTGCAAAC
+chr11 102191031 102191044 -V_MAZR_01 3.44004e-07 - AGGGGGGGGGTCC
+chr11 102191034 102191043 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr11 102191035 102191046 +V_SP1SP3_Q4 6.27849e-06 + CCCCCCCCTAC
+chr11 102191049 102191064 -V_OCT4_02 6.55103e-06 - ATTGTAATGCTAAAT
+chr11 102191050 102191065 -V_OCT4_01 1.40241e-06 - TATTGTAATGCTAAA
+chr11 102191095 102191105 -V_P53_DECAMER_Q2 2.10476e-06 - AGACAAGCCC
+chr11 102267878 102267893 +V_PEBP_Q6 8.06058e-06 + GGTGACCACAGCCCC
+chr11 102267878 102267893 -V_AML_Q6 8.07403e-07 - GGGGCTGTGGTCACC
+chr11 102268333 102268349 +V_AP2_Q3 7.15703e-07 + CGCCCCGGGCGAGGAG
+chr11 102268334 102268343 +V_AP2ALPHA_01 6.01835e-06 + GCCCCGGGC
+chr11 102268334 102268343 +V_AP2GAMMA_01 6.01835e-06 + GCCCCGGGC
+chr11 102268334 102268343 -V_AP2ALPHA_01 3.00918e-06 - GCCCGGGGC
+chr11 102268334 102268343 -V_AP2GAMMA_01 3.00918e-06 - GCCCGGGGC
+chr11 102268374 102268388 -V_FOXO1_02 5.43667e-06 - GATTTGTTTACACG
+chr11 102268376 102268388 +V_FOXO3A_Q1 3.43217e-06 + TGTAAACAAATC
+chr11 102401167 102401176 -V_AP1_C 7.33929e-06 - GTGAGTCAG
+chr11 102401181 102401195 -V_BLIMP1_Q6 5.74624e-06 - AGAAAGTAAAAGGA
+chr11 102401196 102401211 +V_OCT4_01 6.39105e-07 + CTTTGTCATGTAGAT
+chr11 102401197 102401212 +V_OCT4_02 6.55103e-06 + TTTGTCATGTAGATG
+chr11 102401227 102401240 -V_HSF_Q6 1.26331e-06 - TTCCAGAGGTCTC
+chr11 102401245 102401260 +V_SMAD4_Q6 2.41451e-06 + GTCAGTGAGCCATCT
+chr11 103382113 103382126 -V_ZEC_01 4.33268e-06 - CAAGCTTGGTTCC
+chr11 103382118 103382131 +V_ZEC_01 4.33268e-06 + CAAGCTTGGTTCC
+chr11 103382139 103382153 -V_HIF1_Q3 9.77447e-06 - GAGCACGTGCTGCT
+chr11 103382141 103382153 +V_CMYC_01 2.01844e-06 + CAGCACGTGCTC
+chr11 103382141 103382153 -V_CMYC_02 4.59628e-06 - GAGCACGTGCTG
+chr11 106494893 106494921 -V_PAX5_01 3.68845e-06 - CCCCTACTCAAGGCTGAGGGAAGGGCAC
+chr11 106495018 106495033 -V_OCT4_02 3.74554e-06 - ATTGAGTTGCAAAGC
+chr11 106495059 106495069 +V_CREL_01 7.83548e-06 + TGGGCTTTCC
+chr11 106585863 106585878 -V_OCT4_01 7.94702e-06 - TTTTGTTGTGCAAAC
+chr11 107180606 107180621 -V_AR_Q2 9.40759e-06 - AGAAGGCTCTGTTCT
+chr11 107180619 107180634 +V_DMRT1_01 6.57878e-07 + CTGCTACAATGTTAC
+chr11 107180621 107180636 -V_DMRT1_01 2.48775e-07 - TTGTAACATTGTAGC
+chr11 107180622 107180636 -V_DMRT7_01 1.189e-06 - TTGTAACATTGTAG
+chr11 107180642 107180658 -V_ARNT_01 7.95789e-06 - CTTAGCACGTGTCGGC
+chr11 107180660 107180670 +V_NUR77_Q5 2.98426e-06 + CTGACCTTGC
+chr11 107180660 107180672 +V_LRH1_Q5 5.2397e-07 + CTGACCTTGCAC
+chr11 107180660 107180674 +V_PAX6_Q2 9.3218e-06 + CTGACCTTGCACCC
+chr11 107180665 107180679 +V_MTF1_Q4 5.17181e-06 + CTTGCACCCAGCAC
+chr11 107203876 107203887 +V_PITX2_Q2 8.24871e-06 + TGTAATCCAAG
+chr11 109171310 109171340 +V_HOX13_01 2.52765e-06 + TTCCACCTGCGTCATTAGCCCACCCTACAA
+chr11 109171414 109171429 +V_DMRT1_01 9.21473e-06 + AGGCTACAATGTAAC
+chr11 109171416 109171431 -V_DMRT1_01 8.06116e-08 - TTGTTACATTGTAGC
+chr11 109171417 109171431 -V_DMRT7_01 2.34554e-07 - TTGTTACATTGTAG
+chr11 109171418 109171433 -V_DMRT5_01 1.18352e-06 - GATTGTTACATTGTA
+chr11 109171419 109171434 -V_DMRT3_01 1.58272e-07 - AGATTGTTACATTGT
+chr11 109171419 109171435 -V_DMRT2_01 2.25833e-08 - CAGATTGTTACATTGT
+chr11 109171421 109171434 +V_DMRT4_01 9.60733e-06 + AATGTAACAATCT
+chr11 109171449 109171463 -V_DMRT7_01 5.58502e-06 - TTGTTACAATTCAG
+chr11 109171451 109171466 -V_DMRT3_01 2.37311e-06 - GGATTGTTACAATTC
+chr11 109171478 109171493 +V_DMRT1_01 9.21473e-06 + AGGCTACAATGTAAC
+chr11 110119411 110119430 +V_OCT1_01 8.50524e-07 + ACTCATATGCAAATGTCTG
+chr11 110119415 110119428 -V_OCT_C 9.35619e-06 - GACATTTGCATAT
+chr11 110119416 110119426 +V_OCT1_B 4.33582e-06 + TATGCAAATG
+chr11 110119416 110119427 -V_OCT_Q6 7.02042e-06 - ACATTTGCATA
+chr11 110119436 110119449 +V_SP1_Q6 5.21945e-06 + AGGGGGCCGGGCT
+chr11 110904889 110904904 -V_OCT4_01 4.57831e-06 - TATTCTAATGCTAAG
+chr11 112821013 112821026 +V_OCT_C 5.21366e-06 + TTTATTTGCATGT
+chr11 112821014 112821025 +V_OCT1_Q5_01 6.50785e-06 + TTATTTGCATG
+chr11 112821014 112821025 +V_OCT_Q6 6.34669e-06 + TTATTTGCATG
+chr11 112821039 112821049 -V_ESE1_Q3 8.06007e-06 - TGCTTCCTGT
+chr11 112821043 112821058 -V_DMRT1_01 8.16534e-06 - TGGAGACATTGCTTC
+chr11 112821148 112821167 +V_OCT1_01 9.8471e-06 + CCATCTATGCAAATGTGAT
+chr11 112821152 112821165 -V_OCT_C 6.71556e-06 - CACATTTGCATAG
+chr11 112821153 112821163 +V_OCT1_B 4.33582e-06 + TATGCAAATG
+chr11 112821153 112821164 -V_OCT_Q6 7.02042e-06 - ACATTTGCATA
+chr11 113596653 113596666 +V_RXRLXRB_01 9.21472e-06 + AGATCAAAGGGCA
+chr11 113596653 113596667 +V_HNF4_Q6_01 6.93604e-06 + AGATCAAAGGGCAG
+chr11 113596654 113596664 +V_LEF1_Q2_01 1.81713e-06 + GATCAAAGGG
+chr11 113596699 113596710 +V_NFE2_01 1.48643e-06 + AGCTGAGTCAC
+chr11 113596699 113596712 -V_AP1_01 7.96108e-06 - GTGTGACTCAGCT
+chr11 113880357 113880372 +V_SPZ1_01 8.55807e-06 + GGAGGAGGGAGAGCC
+chr11 114004113 114004132 +V_PU1_Q4 8.89634e-06 + ACTACTTGCTTCCTCCTTA
+chr11 114004116 114004130 -V_ETS2_B 7.93504e-06 - AGGAGGAAGCAAGT
+chr11 114004213 114004222 -V_YY1_Q6 3.30926e-06 - GCCATCTTG
+chr11 114744625 114744643 +V_GCNF_01 1.46008e-06 + CAGAAGTTCAAGGTTATT
+chr11 114744635 114744648 -V_FXR_IR1_Q6 1.20077e-06 - GGATGAATAACCT
+chr11 114744693 114744702 -V_SMAD_Q6 9.3359e-06 - AGACACCAC
+chr11 114744715 114744734 -V_PU1_Q4 1.49472e-06 - CACTGCTATTTCCTCCTTT
+chr11 114961057 114961078 -V_STAT1_01 6.20081e-06 - TTTGGTTTCAGGGAAGTAGGA
+chr11 114961057 114961078 -V_STAT3_01 7.72189e-06 - TTTGGTTTCAGGGAAGTAGGA
+chr11 115333669 115333679 -V_NUR77_Q5 2.98426e-06 - CTGACCTTGC
+chr11 115335007 115335019 +V_LMO2COM_01 2.36746e-06 + CGGCAGCTGCTG
+chr11 116262012 116262033 -V_DR3_Q4 9.26073e-06 - GCTGCACGCCCTGGCCTCTCT
+chr11 116262047 116262058 -V_SMAD_Q6_01 6.47055e-06 - AAGCCAGACAG
+chr11 116277674 116277683 +V_AP1_Q6_01 4.03003e-06 + ATGACTCAG
+chr11 116642090 116642107 -V_PU1_01 8.10558e-06 - TCAAGCCGGAAGTGCAG
+chr11 116642091 116642103 -V_GABP_B 8.40995e-08 - GCCGGAAGTGCA
+chr11 116642181 116642194 +V_AP2_Q6_01 4.74029e-06 + TGGGCCCCAGGCT
+chr11 116642183 116642199 +V_AP2_Q3 1.31713e-06 + GGCCCCAGGCTGTACT
+chr11 116642205 116642217 -V_FOXO3A_Q1 3.05628e-06 - TGTAAACAAGAG
+chr11 116642205 116642219 +V_FOXO1_02 9.97629e-06 + CTCTTGTTTACAAT
+chr11 116642205 116642219 +V_FOXO4_02 8.12864e-06 + CTCTTGTTTACAAT
+chr11 116642205 116642219 +V_FOXO3_01 2.75203e-06 + CTCTTGTTTACAAT
+chr11 116642351 116642370 -V_ER_Q6 8.2639e-06 - ACAGTTCTCAGTGACCCCC
+chr11 116642441 116642450 +V_FOXM1_01 8.06007e-06 + AGATGGACT
+chr11 116725860 116725869 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr11 116725860 116725870 -V_NUR77_Q5 8.43564e-06 - TTGACCTTGG
+chr11 117491364 117491377 +V_SP1_Q6 3.06772e-06 + GGGGGGTGGGGTG
+chr11 117491365 117491374 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr11 117491365 117491375 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr11 117491366 117491396 -V_PAX4_04 1.47136e-06 - TGAAAATGCTTACACACCCCACCCCACCCC
+chr11 117491367 117491382 -V_SREBP_Q6 4.69758e-06 - CACCCCACCCCACCC
+chr11 117491367 117491382 -V_SREBP1_Q5 7.63808e-06 - CACCCCACCCCACCC
+chr11 117491388 117491403 +V_OCT4_01 6.46423e-06 + CATTTTCATGTAGAT
+chr11 118169462 118169477 -V_OCT4_02 1.90479e-06 - ATTCAGTTGCAAATT
+chr11 119017647 119017660 -V_IK1_01 1.73672e-06 - GTATGGGAATGCC
+chr11 120037427 120037440 -V_AP2_Q6_01 6.01724e-06 - CCTGCCTCAGGCC
+chr11 120037439 120037447 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr11 120037463 120037473 -V_IK_Q5 6.81053e-06 - TGTGGGAGGG
+chr11 120037468 120037476 +V_CACD_01 9.89755e-06 + CCACACCC
+chr11 120037479 120037492 +V_AP2_Q6_01 4.89303e-07 + CAGGCCCCAGGCC
+chr11 120727211 120727226 +V_SREBP1_Q5 6.2466e-06 + TCCCTCACTCCATGG
+chr11 120727222 120727236 -V_HNF4_Q6_01 6.48063e-06 - GAGGCAAAGGCCAT
+chr11 120727223 120727236 +V_HNF4_DR1_Q3 1.68573e-06 + TGGCCTTTGCCTC
+chr12 4904924 4904935 +V_OCT1_Q5_01 7.81079e-06 + TAATTTACATA
+chr12 4904926 4904941 -V_OCT4_01 1.18992e-06 - AATTGATATGTAAAT
+chr12 4904975 4904988 -V_NRF2_Q4 9.9544e-07 - ATGCTGATTCATG
+chr12 4904976 4904987 -V_MAF_Q6_01 9.11965e-06 - TGCTGATTCAT
+chr12 4905002 4905013 +V_LEF1TCF1_Q4 2.36341e-06 + CCTTTGATCCT
+chr12 4905026 4905037 +V_YY1_Q6_02 8.84888e-06 + GCAGCCATTTT
+chr12 4905044 4905058 +V_CEBPA_01 5.41745e-06 + ACATTGCAAAACAA
+chr12 8062942 8062953 +V_EVI1_05 5.83412e-06 + AGATAGGATAG
+chr12 12184427 12184442 +V_TAXCREB_01 9.20796e-06 + GGGGGGTGACACAGG
+chr12 12184471 12184482 -V_LEF1TCF1_Q4 4.49892e-06 - CCTTTGTTCTC
+chr12 12810582 12810603 +V_DR3_Q4 9.86572e-07 + GGTGCCCTCCCTGCCCTTGGG
+chr12 12810636 12810649 +V_OCT_C 3.56696e-06 + TTCATTTGCATGA
+chr12 12810637 12810648 +V_OCT1_Q5_01 5.83412e-06 + TCATTTGCATG
+chr12 12810637 12810648 +V_OCT_Q6 4.86692e-06 + TCATTTGCATG
+chr12 12810638 12810653 -V_OCT4_02 3.48694e-06 - ACTGTCATGCAAATG
+chr12 12810715 12810738 +V_PPARG_02 6.90451e-06 + AACTTGTCCAAGGTCACCCAGTT
+chr12 12810715 12810738 -V_PPARG_02 6.51622e-06 - AACTGGGTGACCTTGGACAAGTT
+chr12 12810720 12810732 -V_LRH1_Q5 1.22748e-06 - GTGACCTTGGAC
+chr12 12810722 12810731 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr12 12810734 12810748 +V_EFC_Q6 4.56902e-06 + AGTTACTTGGCACC
+chr12 14095951 14095966 +V_OCT4_01 1.66527e-07 + TTTTGTCATGTAAAT
+chr12 14095952 14095967 +V_OCT4_02 6.55103e-06 + TTTGTCATGTAAATT
+chr12 16292119 16292138 -V_PPARA_02 3.31972e-06 - GGAGGTGAGTTGGGTGGGG
+chr12 17753583 17753597 -V_DMRT7_01 9.63794e-06 - TGGCTACATTTTAG
+chr12 17753633 17753653 -V_P53_01 4.5909e-06 - GGGCAGGCCCAGCCAGGTCG
+chr12 21451400 21451419 +V_ER_Q6 4.06944e-06 + TGTGGTCCCTGTGACCTGC
+chr12 21451454 21451464 +V_ESE1_Q3 3.12147e-06 + GGTTTCCTGT
+chr12 21451485 21451498 -V_HNF4_DR1_Q3 9.72151e-06 - TGGGCCTTGCCCC
+chr12 25809595 25809610 -V_OCT4_02 1.26855e-06 - ATTGACATGGTAATG
+chr12 31907703 31907722 -V_PPARA_02 2.45732e-07 - TGAGGTGGTGGGGGTGAGG
+chr12 31907704 31907718 +V_KROX_Q6 8.74919e-06 + CTCACCCCCACCAC
+chr12 31907799 31907812 -V_SP1_Q6 9.29757e-07 - GAGGGGCGGAGCC
+chr12 31907800 31907810 -V_SP1_Q6_01 3.49614e-06 - GGGGCGGAGC
+chr12 32521234 32521248 -V_NFY_C 9.88528e-06 - TCTGATTGGTTTAA
+chr12 32521258 32521281 -V_PPARG_02 7.97223e-06 - ACCCAGGTGACCCTGCCCCTAAT
+chr12 32521269 32521281 -V_USF_Q6_01 9.55721e-06 - ACCCAGGTGACC
+chr12 32521303 32521312 -V_LRF_Q2 3.33688e-06 - AGGGCCCCC
+chr12 32521314 32521329 -V_OCT4_01 2.11448e-06 - TATTGTAATGCTAAG
+chr12 32796540 32796554 +V_FOXO1_02 5.43667e-06 + GTCTTGTTTTCATG
+chr12 32796567 32796586 +V_PU1_Q4 1.34361e-08 + AGCCCTCACTTCCTCATTC
+chr12 33509657 33509672 +V_OCT4_01 5.63049e-06 + CATTCTTATTCAAAC
+chr12 33509675 33509686 +V_GAF_Q6 8.94262e-06 + CACATTCCCCT
+chr12 33958241 33958256 +V_CP2_02 3.18594e-06 + GCTGGGTGGATCTGC
+chr12 34112411 34112426 -V_OCT4_02 5.69461e-06 - ATTGATATTCTGATG
+chr12 42113424 42113441 -V_DR4_Q2 2.06731e-06 - TGCCTTCCACTGACCTC
+chr12 42828441 42828456 -V_OCT4_01 3.26181e-06 - CTTTGTCATTTAAAT
+chr12 42828457 42828472 -V_OCT1_Q6 5.8189e-06 - AACAGTGCAAATCAC
+chr12 45021448 45021457 -V_AP1_Q6_01 4.03003e-06 - ATGACTCAG
+chr12 45021475 45021491 +V_MAF_Q6 4.84012e-06 + TGAGGGGAAGCTGTCT
+chr12 45021522 45021533 -V_OCT1_Q5_01 4.4061e-06 - TGATTTACATA
+chr12 45021522 45021533 -V_OCT_Q6 8.67576e-06 - TGATTTACATA
+chr12 45681862 45681870 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr12 45681968 45681979 +V_MYB_Q3 3.40516e-06 + AGAGCCAGTTG
+chr12 45681973 45681993 +V_PPARA_01 1.75821e-06 + CAGTTGGAGGTCAAAGGTGA
+chr12 45681976 45681993 +V_PPARG_03 1.37245e-06 + TTGGAGGTCAAAGGTGA
+chr12 45681976 45681997 +V_PPARG_01 2.81055e-07 + TTGGAGGTCAAAGGTGAATAG
+chr12 45681980 45681993 +V_RXRLXRB_01 5.09071e-07 + AGGTCAAAGGTGA
+chr12 45681980 45681993 +V_DR1_Q3 8.18875e-07 + AGGTCAAAGGTGA
+chr12 45681980 45681993 -V_PPAR_DR1_Q2 7.71343e-07 - TCACCTTTGACCT
+chr12 45681980 45681993 -V_HNF4_DR1_Q3 3.06132e-06 - TCACCTTTGACCT
+chr12 45681980 45681993 -V_COUP_DR1_Q6 4.83437e-06 - TCACCTTTGACCT
+chr12 45682139 45682147 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr12 52622537 52622552 +V_VDR_Q3 4.09961e-07 + GGGGCAGGGGGGTGC
+chr12 52622588 52622607 -V_GR_Q6 4.06623e-06 - TGATCCCACTGTGTCCTTG
+chr12 52622619 52622631 +V_NANOG_01 5.79837e-06 + CGGGCCATTACC
+chr12 52959283 52959297 +V_CHX10_01 9.27708e-06 + AGGTAATTAGCATT
+chr12 52959394 52959408 -V_OCT1_06 1.34402e-06 - CTTAATGAGATGTT
+chr12 53496426 53496438 +V_TTF1_Q6 2.60851e-06 + CTCTCAAGTGCC
+chr12 53496438 53496450 +V_PAX4_03 4.004e-06 + CTTCCCCACCCC
+chr12 53496438 53496451 -V_MAZR_01 9.79421e-06 - GGGGGTGGGGAAG
+chr12 53496441 53496451 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr12 53496442 53496451 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr12 53496442 53496456 +V_KROX_Q6 5.9833e-06 + CCCACCCCCCACCC
+chr12 53496443 53496458 -V_VDR_Q3 4.22722e-06 - GGGGGTGGGGGGTGG
+chr12 53496445 53496457 +V_PAX4_03 5.05761e-06 + ACCCCCCACCCC
+chr12 53496446 53496459 -V_SP1_Q6 8.76141e-06 - TGGGGGTGGGGGG
+chr12 53496447 53496458 +V_SP1SP3_Q4 8.91927e-06 + CCCCCACCCCC
+chr12 53496448 53496458 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr12 53496448 53496467 -V_PPARA_02 5.21998e-06 - TTGGGGGGTGGGGGTGGGG
+chr12 53496449 53496458 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr12 53496449 53496460 -V_EGR_Q6 8.04446e-06 - GTGGGGGTGGG
+chr12 53496449 53496463 +V_KROX_Q6 2.21131e-07 + CCCACCCCCACCCC
+chr12 54575663 54575678 +V_OCT4_01 3.74251e-06 + TTTTGTTATGGTAAT
+chr12 54575668 54575678 +V_POU3F2_02 8.91945e-06 + TTATGGTAAT
+chr12 54575694 54575707 -V_MAZR_01 6.86006e-06 - AGGGGAGGGGCTG
+chr12 54575695 54575708 -V_SP1_Q6 2.76363e-06 - GAGGGGAGGGGCT
+chr12 54575696 54575706 -V_SP1_Q6_01 2.74385e-06 - GGGGAGGGGC
+chr12 54575697 54575706 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr12 54575697 54575707 +V_SP1_Q2_01 6.40385e-06 + CCCCTCCCCT
+chr12 54575698 54575706 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr12 54575702 54575711 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr12 54575703 54575711 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr12 54575713 54575724 +V_LEF1TCF1_Q4 1.86451e-06 + CCTTTGTTGTT
+chr12 55261343 55261353 +V_POU3F2_02 7.27852e-06 + ATATGCTAAT
+chr12 55261385 55261414 +V_MYOGNF1_01 1.34313e-06 + TGGCTGGGCTGTCCTGCATGGAGCCAGCA
+chr12 55261458 55261468 +V_CETS1P54_01 6.77271e-06 + ACCGGATGTG
+chr12 55279470 55279479 +V_SMAD3_Q6 4.03003e-06 + TGTCTGTCT
+chr12 55414120 55414139 +V_PPARA_02 7.462e-06 + CAGGGCCATCAGGGTGGGG
+chr12 55414130 55414142 -V_PAX4_03 9.67001e-06 - CAGCCCCACCCT
+chr12 58200154 58200169 -V_OCT4_01 5.63049e-06 - TTTTGTCATGTTAAC
+chr12 60608523 60608537 -V_BLIMP1_Q6 4.97194e-06 - GGAAAGAGAAAGGA
+chr12 60608525 60608536 -V_IRF_Q6_01 3.86751e-06 - GAAAGAGAAAG
+chr12 60608549 60608563 -V_BLIMP1_Q6 2.97987e-06 - AGGAAGGGAAGGTG
+chr12 60608633 60608644 +V_NFE2_01 1.48643e-06 + TGCTGACTCAT
+chr12 60608633 60608646 -V_AP1_01 1.54268e-07 - GAATGAGTCAGCA
+chr12 60608634 60608645 +V_AP1_Q2 7.83818e-06 + GCTGACTCATT
+chr12 60608634 60608645 +V_AP1_Q6 2.98654e-06 + GCTGACTCATT
+chr12 60608635 60608644 -V_AP1_C 4.03003e-06 - ATGAGTCAG
+chr12 64129399 64129414 +V_OCT4_02 1.90479e-06 + ATTCAGTTGCAAATT
+chr12 64129424 64129436 +V_AP1_Q2_01 2.1613e-06 + TGACTCAGGGTC
+chr12 70775737 70775750 -V_IK1_01 8.16025e-06 - GCTTGGGAATCTC
+chr12 70775767 70775776 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr12 70775768 70775776 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr12 70775768 70775777 -V_CKROX_Q2 8.90515e-06 - TCCCTCCCC
+chr12 71302316 71302331 +V_ETS1_B 5.43412e-06 + GCAGGATGTGTGTCA
+chr12 72119744 72119759 -V_DMRT1_01 6.57259e-08 - TTGATACAATGTATC
+chr12 72119746 72119761 -V_DMRT5_01 8.98763e-06 - TTTTGATACAATGTA
+chr12 72119747 72119762 -V_DMRT3_01 7.32818e-07 - CTTTTGATACAATGT
+chr12 72119747 72119763 -V_DMRT2_01 7.90403e-06 - TCTTTTGATACAATGT
+chr12 72119795 72119806 +V_PITX2_Q2 5.53227e-07 + TGTAATCCCAG
+chr12 72119846 72119864 -V_HNF3_Q6_01 8.45028e-07 - TCTTTTGTTTGCTTTGGG
+chr12 72119848 72119861 +V_HNF3_Q6 5.62156e-06 + CAAAGCAAACAAA
+chr12 72119849 72119862 -V_FOX_Q2 4.72113e-06 - TTTTGTTTGCTTT
+chr12 72434489 72434497 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr12 72434494 72434507 +V_DEC_Q1 8.9012e-06 + GCCCAGGTGAGGG
+chr12 72561840 72561853 +V_OCT_C 6.71556e-06 + GTCATTTGCATTT
+chr12 72561841 72561852 +V_OCT1_Q5_01 3.13512e-06 + TCATTTGCATT
+chr12 72561841 72561852 +V_OCT_Q6 2.98837e-06 + TCATTTGCATT
+chr12 72561894 72561908 +V_NFY_C 4.05016e-06 + TCTGCTTGGCTAGC
+chr12 72714665 72714678 -V_STAT1STAT1_Q3 3.47824e-06 - ATTTCAAAGAAAA
+chr12 74187058 74187081 +V_OCT1_04 2.58075e-07 + TCATAGTCATGCAAATGATTAGA
+chr12 74187059 74187074 +V_OCT4_01 3.19146e-07 + CATAGTCATGCAAAT
+chr12 74187060 74187075 +V_OCT4_02 7.51249e-06 + ATAGTCATGCAAATG
+chr12 74187063 74187077 -V_OCT1_05 7.22059e-06 - ATCATTTGCATGAC
+chr12 74187064 74187077 -V_OCT_C 3.03142e-06 - ATCATTTGCATGA
+chr12 74187065 74187076 -V_OCT1_Q5_01 5.83412e-06 - TCATTTGCATG
+chr12 74187065 74187076 -V_OCT_Q6 4.86692e-06 - TCATTTGCATG
+chr12 74187182 74187205 -V_OCT1_04 9.76038e-07 - CAGTGTTTATGCAAATTTACTCA
+chr12 74187184 74187203 -V_OCT1_01 1.53745e-06 - GTGTTTATGCAAATTTACT
+chr12 74187187 74187198 +V_OCT_Q6 7.92146e-06 + AAATTTGCATA
+chr12 74187188 74187198 -V_OCT1_B 7.0832e-06 - TATGCAAATT
+chr12 74187188 74187200 -V_OCT1_07 3.58538e-06 - TTTATGCAAATT
+chr12 74187192 74187205 -V_HFH8_01 8.81254e-06 - CAGTGTTTATGCA
+chr12 75207259 75207268 +V_AP2ALPHA_01 9.68294e-06 + GCCCGAGGC
+chr12 75207301 75207312 +V_LEF1TCF1_Q4 2.56824e-06 + CCTTTGATCCC
+chr12 75207405 75207419 +V_CDX2_Q5 8.63804e-06 + ATTTTCTTATTGCC
+chr12 76996127 76996142 +V_DMRT1_01 1.99963e-07 + CGGCAACATTGTTGC
+chr12 76996129 76996144 -V_DMRT1_01 8.80703e-07 - CAGCAACAATGTTGC
+chr12 80603018 80603033 +V_BACH1_01 9.57356e-06 + AGGATGAGTCAGCAG
+chr12 80603019 80603032 +V_AP1_01 4.20497e-08 + GGATGAGTCAGCA
+chr12 80603020 80603031 +V_BACH2_01 6.53539e-06 + GATGAGTCAGC
+chr12 80603020 80603031 -V_AP1_Q6 3.64565e-06 - GCTGACTCATC
+chr12 80603021 80603030 +V_AP1_C 4.03003e-06 + ATGAGTCAG
+chr12 80603021 80603032 -V_NFE2_01 1.48643e-06 - TGCTGACTCAT
+chr12 80603124 80603137 +V_AP2_Q6_01 3.58329e-06 + CCTGCCCCAGGCT
+chr12 80649726 80649740 +V_PAX6_Q2 1.5537e-08 + CTGTCCTGGAACTC
+chr12 80649731 80649742 +V_PAX_Q6 2.04834e-07 + CTGGAACTCAC
+chr12 80649776 80649786 +V_MYOD_Q6 6.66004e-06 + TCCACCTGCC
+chr12 80649777 80649791 +V_E2A_Q2 1.24142e-07 + CCACCTGCCTCTGC
+chr12 80649778 80649786 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr12 80649801 80649812 -V_PITX2_Q2 1.22695e-06 - TTTAATCCCAG
+chr12 80789070 80789086 +V_DMRT2_01 1.4941e-06 + CATAAAGTTACATTGT
+chr12 80789149 80789162 -V_MAZR_01 2.00881e-06 - AGGGGAGGGGCAA
+chr12 80789151 80789161 -V_SP1_Q6_01 2.74385e-06 - GGGGAGGGGC
+chr12 80789152 80789161 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr12 80789152 80789162 +V_SP1_Q2_01 6.40385e-06 + CCCCTCCCCT
+chr12 80789153 80789161 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr12 80789169 80789182 -V_SP1_Q6 8.16238e-06 - GAGGGGCGGAGCA
+chr12 80789170 80789180 -V_SP1_Q6_01 3.49614e-06 - GGGGCGGAGC
+chr12 80789173 80789186 -V_MAZR_01 8.79511e-06 - TGGGGAGGGGCGG
+chr12 80789174 80789187 -V_SP1_Q6 6.51994e-06 - GTGGGGAGGGGCG
+chr12 80789175 80789185 -V_SP1_Q6_01 2.74385e-06 - GGGGAGGGGC
+chr12 80789176 80789185 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr12 80789177 80789185 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr12 81085490 81085506 -V_AP2_Q3 9.06524e-06 - AGCCCCAGCCTGAGGC
+chr12 81085500 81085509 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr12 81111414 81111429 +V_OCT4_01 1.79634e-06 + TATTCTCATGTAAAC
+chr12 81686831 81686846 +V_IRF_Q6 5.72126e-06 + CTCTCTTTCTCTTTC
+chr12 81686835 81686846 -V_IRF_Q6_01 3.86751e-06 - GAAAGAGAAAG
+chr12 81686837 81686852 +V_IRF_Q6 8.21296e-06 + TTCTCTTTCTCTTTT
+chr12 81686841 81686852 -V_IRF_Q6_01 6.78972e-06 - AAAAGAGAAAG
+chr12 81686846 81686862 -V_MMEF2_Q6 7.0812e-06 - CTGTTTAAAAAAAAGA
+chr12 82400026 82400040 -V_BLIMP1_Q6 4.41274e-06 - ATGGAGGGAAAGGA
+chr12 82400082 82400100 +V_GCNF_01 1.34815e-06 + GTCAACCTCAAGGTCACC
+chr12 82400086 82400100 +V_ERR1_Q2 1.82748e-06 + ACCTCAAGGTCACC
+chr12 82400088 82400106 +V_GCNF_01 3.16638e-06 + CTCAAGGTCACCTTCAGC
+chr12 82400089 82400098 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr12 82400109 82400122 -V_AP2_Q6_01 2.71709e-06 - GCTGCCCCAGGCC
+chr12 82400169 82400187 -V_SRF_01 5.56218e-06 - ATGCCATTATCTGGTCTT
+chr12 84766585 84766594 +V_AP2ALPHA_01 9.68294e-06 + GCCCGAGGC
+chr12 84887625 84887635 -V_SP1_Q6_01 5.82691e-06 - GGGGCGGGTC
+chr12 84887688 84887703 +V_DMRT1_01 2.87544e-07 + CTGTAACAATGTTGC
+chr12 85370248 85370262 +V_OCT1_05 7.92576e-06 + AGAATTAGCATAAG
+chr12 85370250 85370262 -V_OCT1_07 6.48249e-06 - CTTATGCTAATT
+chr12 85370251 85370261 -V_POU3F2_02 3.63926e-06 - TTATGCTAAT
+chr12 85556830 85556843 +V_SP1_Q6 4.83523e-06 + CGGAGGCGGGGTT
+chr12 85556831 85556841 -V_SP1_Q2_01 6.40385e-06 - CCCCGCCTCC
+chr12 87102802 87102813 -V_RORA_Q4 6.07427e-06 - TAGTTGGGTCA
+chr12 87102812 87102832 -V_YY1_02 4.4978e-06 - CTCGGGCCATGGTCACTCCT
+chr12 87102852 87102867 -V_AR_Q2 7.08142e-06 - GGAACATATTGTTCA
+chr12 87819949 87819962 -V_MAZR_01 3.8307e-06 - GGGTGGGGGGACA
+chr12 87819981 87820004 +V_OCT1_04 9.79816e-06 + CCTTGGAAATGCAAATTTAGGGT
+chr12 87819982 87819997 +V_OCT4_01 5.63049e-06 + CTTGGAAATGCAAAT
+chr12 87819983 87820002 +V_OCT1_01 8.4507e-06 + TTGGAAATGCAAATTTAGG
+chr12 88257889 88257908 -V_OCT1_01 8.13542e-06 - CCCGCTATGCAAATGTGCT
+chr12 88257891 88257904 +V_OCT_C 6.71556e-06 + CACATTTGCATAG
+chr12 88257892 88257903 +V_OCT_Q6 7.02042e-06 + ACATTTGCATA
+chr12 88257893 88257903 -V_OCT1_B 4.33582e-06 - TATGCAAATG
+chr12 88257991 88258004 -V_GATA1_04 6.24632e-06 - AACAGATAGGGAC
+chr12 88257993 88258002 -V_LMO2COM_02 3.30926e-06 - CAGATAGGG
+chr12 88258006 88258019 +V_OCT_C 7.13721e-06 + GTGATTAGCATAC
+chr12 88258006 88258020 +V_OCT1_05 8.48471e-06 + GTGATTAGCATACG
+chr12 89578620 89578634 -V_OCT1_05 1.80594e-06 - ATGATTAGCATACC
+chr12 89578621 89578634 -V_OCT_C 4.05866e-06 - ATGATTAGCATAC
+chr12 89578659 89578673 +V_E2A_Q2 1.26104e-06 + CCACCTGCTTCCTG
+chr12 89578659 89578674 -V_ETS1_B 3.83523e-06 - CCAGGAAGCAGGTGG
+chr12 89578661 89578673 +V_ETS_Q4 5.14007e-06 + ACCTGCTTCCTG
+chr12 100458679 100458697 +V_RFX1_02 5.03702e-08 + AGGTCACCATGGCAACGG
+chr12 100458688 100458697 -V_RFX_Q6 8.74404e-06 - CCGTTGCCA
+chr12 100458693 100458707 -V_FOXO1_02 5.43667e-06 - GGGTTGTTTACCGT
+chr12 100458693 100458707 -V_FOXO4_02 6.75869e-06 - GGGTTGTTTACCGT
+chr12 100458696 100458707 +V_FOXO4_01 2.21629e-06 + GTAAACAACCC
+chr12 100458760 100458774 +V_E2A_Q2 5.8661e-06 + CCAGCTGCCCTGGG
+chr12 100538321 100538336 +V_OCT4_01 5.24325e-06 + CTTTTAGATGCAAAT
+chr12 101753806 101753817 -V_EBF_Q6 4.00905e-06 - TTCCCTAGAGA
+chr12 101753876 101753885 +V_T3R_Q6 3.30926e-06 + CCTGTCCTT
+chr12 101772368 101772383 +V_ETS1_B 7.24631e-06 + GCAGGAAGTCATGAC
+chr12 101772369 101772380 +V_FLI1_Q6 4.3053e-06 + CAGGAAGTCAT
+chr12 101772484 101772494 +V_NUR77_Q5 2.98426e-06 + CTGACCTTGC
+chr12 102248471 102248486 +V_CP2_02 2.27143e-06 + GCTGGTTCGAACAGG
+chr12 102248518 102248527 -V_AP2ALPHA_01 6.01835e-06 - GCCCCGGGG
+chr12 102248518 102248527 -V_AP2GAMMA_01 4.51376e-06 - GCCCCGGGG
+chr12 103753067 103753080 -V_P50P50_Q3 7.39688e-06 - AGGGGACTGCCCA
+chr12 103753118 103753127 -V_CACBINDINGPROTEIN_Q6 8.12736e-06 - GGGGCTGGG
+chr12 103753127 103753136 -V_SMAD_Q6 9.3359e-06 - AGACACCCT
+chr12 103753174 103753190 -V_EVI1_01 1.3936e-06 - AGACAAAACAAGAGAA
+chr12 103917252 103917266 -V_ATF3_Q6 2.67544e-06 - TGCTGAGGTCATCG
+chr12 103917267 103917290 -V_COUPTF_Q6 3.93002e-06 - GCCCTTGCCCTTGCCCCGAGGCC
+chr12 103917275 103917293 +V_GCNF_01 5.15475e-06 + GGCAAGGGCAAGGGCAGC
+chr12 103917294 103917307 +V_SP1_Q6 7.04257e-06 + GGGAGGAGGGGCT
+chr12 103952431 103952443 +V_NANOG_01 8.47913e-06 + GTGGCCATTGCC
+chr12 103952506 103952521 +V_VDR_Q3 1.53053e-06 + GGTTCAGTGAGGTGA
+chr12 103952540 103952552 +V_GLI_Q2 1.77433e-06 + TGTGGGTGGTGC
+chr12 104071140 104071149 +V_T3R_Q6 8.74404e-06 + CCTGTCCTC
+chr12 104071181 104071191 -V_LEF1_Q2_01 4.03003e-06 - GATCAAAGTG
+chr12 105485961 105485972 +V_TGIF_01 3.62037e-06 + AGCTGTCAGTT
+chr12 105485979 105485989 -V_ESE1_Q3 5.33438e-06 - TGTTTCCTGA
+chr12 105486030 105486047 -V_FOXP3_Q4 3.24706e-06 - GAAATGCTGATCCAGAC
+chr12 105776766 105776778 +V_LRH1_Q5 3.06315e-07 + CTGGCCTTGAAC
+chr12 105776766 105776780 +V_PAX6_Q2 8.3884e-07 + CTGGCCTTGAACTC
+chr12 105776771 105776782 +V_PAX_Q6 8.43097e-06 + CTTGAACTCAC
+chr12 105776796 105776817 -V_PPARG_01 1.07706e-06 - CAGAGGATCAAAGGTCAAAGC
+chr12 105776799 105776813 -V_HNF4_Q6_01 8.83218e-07 - GGATCAAAGGTCAA
+chr12 105776800 105776813 +V_PPAR_DR1_Q2 8.74748e-07 + TGACCTTTGATCC
+chr12 105776800 105776813 +V_HNF4_DR1_Q3 1.79986e-06 + TGACCTTTGATCC
+chr12 105776800 105776813 +V_COUP_DR1_Q6 1.70437e-06 + TGACCTTTGATCC
+chr12 105776800 105776813 -V_RXRLXRB_01 9.89016e-07 - GGATCAAAGGTCA
+chr12 105776800 105776813 -V_DR1_Q3 1.75121e-06 - GGATCAAAGGTCA
+chr12 105776800 105776814 +V_COUP_01 3.87376e-07 + TGACCTTTGATCCT
+chr12 105776800 105776817 -V_PPARG_03 7.19225e-06 - CAGAGGATCAAAGGTCA
+chr12 105776803 105776814 +V_LEF1TCF1_Q4 2.36341e-06 + CCTTTGATCCT
+chr12 106154042 106154054 +V_OCT1_07 3.83276e-06 + TGTATGTAAATT
+chr12 106154071 106154087 +V_LXR_DR4_Q3 4.35872e-06 + TGCCCGGCAGTGAACT
+chr12 106154071 106154088 +V_DR4_Q2 1.61936e-06 + TGCCCGGCAGTGAACTC
+chr12 106154071 106154089 -V_LXR_Q3 5.12544e-06 - TGAGTTCACTGCCGGGCA
+chr12 106154081 106154096 -V_VDRRXR_01 9.34634e-06 - GCTTCATTGAGTTCA
+chr12 106154153 106154166 +V_AP2_Q6_01 6.01724e-06 + CCCTCCTCAGGCT
+chr12 107413673 107413688 -V_IRF_Q6 7.3306e-06 - TCCAATTTCATTTCC
+chr12 109972778 109972792 -V_NFY_C 4.45006e-06 - TCTGATTGGTGAAT
+chr12 109972780 109972791 +V_NFY_Q6 9.1733e-06 + TCACCAATCAG
+chr12 109972815 109972833 +V_LXR_Q3 7.3861e-06 + TTGGGTCACCTTGGGTCT
+chr12 111186691 111186712 +V_DR3_Q4 5.31963e-06 + GAAAGCCTTCCTTAACCGTCT
+chr12 111186724 111186739 +V_OCT4_01 6.02107e-06 + TTTTATGATGCAGAT
+chr12 111186771 111186784 +V_DR1_Q3 8.17076e-06 + GGGACAGAGGACA
+chr12 111186771 111186784 -V_PPAR_DR1_Q2 9.61169e-06 - TGTCCTCTGTCCC
+chr12 111186807 111186818 -V_SP1SP3_Q4 2.26051e-06 - CCCCCTCCTCC
+chr12 111186823 111186832 +V_CACBINDINGPROTEIN_Q6 2.23138e-06 + GAGGGTGGG
+chr12 111186826 111186836 +V_IK_Q5 7.92622e-06 + GGTGGGAGGC
+chr12 111588376 111588389 +V_NKX61_01 7.31711e-06 + CATTTAATTGGAA
+chr12 111588398 111588410 -V_VDR_Q6 2.90606e-06 - CCCTCTGAACCT
+chr12 111588624 111588633 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr12 111954327 111954348 -V_PPARG_01 2.1653e-07 - GTGGAGGTCAAAGGGCAACTT
+chr12 111954330 111954344 -V_HNF4_Q6_01 1.40116e-06 - AGGTCAAAGGGCAA
+chr12 111954331 111954344 +V_PPAR_DR1_Q2 4.43855e-07 + TGCCCTTTGACCT
+chr12 111954331 111954344 +V_COUP_DR1_Q6 3.95479e-06 + TGCCCTTTGACCT
+chr12 111954331 111954344 -V_RXRLXRB_01 3.39229e-07 - AGGTCAAAGGGCA
+chr12 111954331 111954344 -V_DR1_Q3 1.39363e-06 - AGGTCAAAGGGCA
+chr12 111954440 111954454 -V_FOXO3_01 9.2679e-06 - CACTTGTTTACACA
+chr12 111954442 111954454 +V_FOXO3A_Q1 1.13508e-06 + TGTAAACAAGTG
+chr12 112741927 112741946 -V_PU1_Q4 7.43608e-06 - TGGCTTTGTTTCCCCTTTC
+chr12 112741988 112742003 +V_VDR_Q3 2.95306e-06 + GAGGCAGGAAGGTCA
+chr12 112741994 112742004 -V_NUR77_Q5 2.98426e-06 - CTGACCTTCC
+chr12 112742001 112742019 +V_GCNF_01 6.4087e-06 + CAGGAGTTCAAGGTCGTT
+chr12 112742006 112742018 -V_LRH1_Q5 6.09185e-06 - ACGACCTTGAAC
+chr12 112943001 112943011 -V_TAL1_Q6 7.72591e-06 - TCCAGCTGGC
+chr12 112979775 112979785 -V_ESE1_Q3 8.80613e-06 - GGCTTCCTGT
+chr12 112979782 112979798 +V_AP2_Q3 4.16477e-06 + GCCCTCAGGCTAGGAG
+chr12 113345386 113345399 +V_SP1_Q6 8.76141e-06 + GGGGGGAGGAGGG
+chr12 113345387 113345402 +V_VDR_Q3 3.3177e-06 + GGGGGAGGAGGGACC
+chr12 118473823 118473838 -V_OCT4_02 4.25758e-08 - ATTGTCATGCTAATT
+chr12 118473824 118473839 -V_OCT4_01 1.66527e-07 - TATTGTCATGCTAAT
+chr12 118473877 118473892 -V_OCT4_01 6.46423e-06 - CTTTGTTGTGCAAAC
+chr12 118479105 118479120 -V_AML_Q6 5.00567e-06 - AAAGCTGTGGTCTAC
+chr12 118499750 118499761 +V_FLI1_Q6 1.42541e-06 + CAGGAAGTCAC
+chr12 120149031 120149046 -V_OCT4_02 5.70458e-07 - ATTGTCATGCTAAGC
+chr12 120149032 120149047 -V_OCT4_01 1.79634e-06 - TATTGTCATGCTAAG
+chr13 4558494 4558511 +V_PU1_01 4.30155e-07 + AGAATGGGGAAGTAGAT
+chr13 4558495 4558514 -V_PU1_Q4 5.91777e-07 - CAAATCTACTTCCCCATTC
+chr13 4558542 4558557 +V_OCT4_01 2.64195e-06 + TATTCTAATGTTAAT
+chr13 4558574 4558589 -V_OCT4_01 3.90219e-07 - CTTTCTCATGCAAAC
+chr13 5831384 5831396 +V_GATA4_Q3 7.36895e-06 + AGATCACAGGCA
+chr13 5831391 5831403 -V_NMYC_01 2.66862e-06 - CCCCACGTGCCT
+chr13 5831393 5831401 -V_USF_C 9.89755e-06 - CCACGTGC
+chr13 5831400 5831412 -V_PAX4_03 6.56043e-06 - TATCTCCACCCC
+chr13 6921765 6921785 +V_FOXP1_01 8.15563e-06 + TTATAGGTGTGTGTTTGTTT
+chr13 6921771 6921789 -V_FOXJ2_01 5.17183e-06 - TTGAAAACAAACACACAC
+chr13 6921773 6921786 +V_FOX_Q2 8.50378e-06 + GTGTGTTTGTTTT
+chr13 6921773 6921786 +V_HFH3_01 3.96292e-06 + GTGTGTTTGTTTT
+chr13 6921773 6921786 +V_HFH4_01 4.06855e-06 + GTGTGTTTGTTTT
+chr13 6921830 6921845 +V_OCT4_01 1.94673e-06 + TATTCTTTTGCAAAT
+chr13 6921831 6921846 +V_OCT4_02 8.38472e-07 + ATTCTTTTGCAAATG
+chr13 6921841 6921860 -V_PU1_Q4 1.5798e-07 - AACCTTTATTTCCTCATTT
+chr13 8522601 8522612 +V_IRF_Q6_01 8.39845e-06 + GGAACTGAAAG
+chr13 8522601 8522616 -V_IRF_Q6 8.71346e-06 - TTTTCTTTCAGTTCC
+chr13 8522610 8522622 +V_GATA4_Q3 5.81595e-06 + AGAAAAGAGGGA
+chr13 8522663 8522677 -V_COUP_01 8.44596e-06 - TGAACCTTGAGCAG
+chr13 9308263 9308278 +V_OCT4_01 5.63049e-06 + CATTCTTATTCAAAC
+chr13 9308279 9308298 -V_OCT1_01 5.10934e-06 - AAGAATATGCTAATTGAGT
+chr13 9308283 9308295 -V_OCT1_07 2.67643e-06 - AATATGCTAATT
+chr13 9308284 9308294 -V_POU3F2_02 7.27852e-06 - ATATGCTAAT
+chr13 9308301 9308312 -V_HELIOSA_02 3.44301e-06 - AAAAGGAAAAA
+chr13 12071413 12071428 +V_OCT4_01 6.91054e-06 + TATTCTAATGGTAAT
+chr13 16922317 16922326 +V_ZIC1_01 4.94877e-06 + GGGGTGGTC
+chr13 16922317 16922326 +V_ZIC2_01 2.23138e-06 + GGGGTGGTC
+chr13 18934004 18934014 -V_PR_Q2 2.01502e-06 - GAAAGAACAG
+chr13 18934013 18934024 -V_CP2_01 2.14959e-06 - GCCCTAACCAG
+chr13 20364103 20364122 +V_PU1_Q4 1.72817e-06 + ACCACTGGCTTCCTCTTCC
+chr13 20364106 20364120 -V_ETS2_B 9.62665e-06 - AAGAGGAAGCCAGT
+chr13 20364110 20364122 -V_ELF1_Q6 3.87486e-06 - GGAAGAGGAAGC
+chr13 21078113 21078126 -V_HNF3_Q6 5.04612e-06 - ATAGGCAAACAGA
+chr13 24093828 24093846 -V_MYOD_Q6_01 3.73988e-06 - ATGAAGCAGGTGGAGGTC
+chr13 24093832 24093842 +V_TAL1_Q6 7.11328e-06 + TCCACCTGCT
+chr13 24093833 24093847 +V_E2A_Q2 2.55238e-06 + CCACCTGCTTCATT
+chr13 24093874 24093891 +V_YY1_01 4.0033e-06 + GAGCACCATATTTGCAT
+chr13 24093882 24093897 -V_OCT4_02 2.05222e-06 - TTTCACATGCAAATA
+chr13 24093883 24093898 -V_OCT4_01 1.8064e-07 - CTTTCACATGCAAAT
+chr13 24093910 24093922 -V_LMO2COM_01 9.95431e-06 - GCCCAGGTGGTC
+chr13 24834874 24834885 -V_EBF_Q6 7.68235e-06 - CTCCCCTGGGG
+chr13 24834879 24834887 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr13 27817139 27817152 +V_P50P50_Q3 6.86436e-06 + TGGGGATTTTCCC
+chr13 27817139 27817153 +V_NFKB_Q6 2.12881e-06 + TGGGGATTTTCCCA
+chr13 27817140 27817152 +V_NFKB_C 9.92065e-07 + GGGGATTTTCCC
+chr13 27817140 27817156 -V_NFKB_Q6_01 6.24418e-07 - TACTGGGAAAATCCCC
+chr13 27817141 27817151 +V_NFKAPPAB65_01 9.69629e-06 + GGGATTTTCC
+chr13 27817141 27817151 +V_NFKAPPAB_01 9.4096e-06 + GGGATTTTCC
+chr13 27817157 27817166 -V_AP1_C 7.33929e-06 - GTGAGTCAG
+chr13 27817187 27817202 +V_STAT5A_01 9.16964e-06 + CAGTTCTCGGAAACG
+chr13 28492410 28492423 -V_STAT_Q6 6.2368e-06 - TGTGCTTCTGGGA
+chr13 28492520 28492536 +V_AP2_Q3 8.07615e-06 + GGCACAGGGCTGAGGG
+chr13 28492541 28492551 +V_FOXO1_01 2.98837e-06 + CATAAACAAA
+chr13 28594168 28594184 +V_NFKB_Q6_01 3.23504e-06 + AGCCTGGGAACTCCCC
+chr13 28594169 28594182 +V_IK3_01 3.50195e-06 + GCCTGGGAACTCC
+chr13 28594224 28594238 +V_ETS2_B 5.16909e-06 + GACAGGAAGCATCA
+chr13 28594225 28594235 -V_ESE1_Q3 8.06007e-06 - TGCTTCCTGT
+chr13 28872508 28872520 -V_GLI_Q2 8.13602e-06 - CTTGGGAGGTCT
+chr13 28872534 28872546 -V_IPF1_Q4 2.77763e-06 - GTGTTAATGACA
+chr13 30102945 30102958 -V_MAZR_01 9.36507e-06 - GCGGGAGGGGAGA
+chr13 30102949 30102958 +V_WT1_Q6 6.67377e-06 + CCCTCCCGC
+chr13 30103007 30103022 +V_DMRT1_01 5.64342e-08 + CTGAAACATTGTTGC
+chr13 30103009 30103024 -V_DMRT1_01 5.16865e-07 - CGGCAACAATGTTTC
+chr13 31820959 31820968 -V_EVI1_06 5.97675e-06 - ACAAGATAA
+chr13 33091326 33091345 +V_SRF_Q5_02 8.19146e-06 + GTATTCCTTTTATGGCATT
+chr13 33091330 33091345 +V_SRF_C 7.84578e-06 + TCCTTTTATGGCATT
+chr13 33251661 33251690 -V_MYOGNF1_01 2.42895e-07 - CACCTCTTGCCTCGGGCACTGAGCATGAC
+chr13 33251673 33251682 +V_AP2ALPHA_01 9.68294e-06 + GCCCGAGGC
+chr13 33933729 33933744 +V_DMRT5_01 7.88817e-07 + GATTGTTACAGTAGC
+chr13 33933852 33933861 +V_FOXO1_Q5 7.27852e-06 + AAAAACAAA
+chr13 33933865 33933879 +V_USF_02 2.67708e-06 + TAATCACGTGGCTA
+chr13 33933865 33933879 -V_USF_02 2.67708e-06 - TAGCCACGTGATTA
+chr13 34719439 34719451 +V_ETS_Q4 4.36344e-06 + AGACACTTCCTG
+chr13 35830221 35830235 +V_KROX_Q6 8.32366e-06 + CCATCCCCCACCCC
+chr13 35830223 35830235 +V_PAX4_03 1.74945e-06 + ATCCCCCACCCC
+chr13 35830225 35830236 +V_SP1SP3_Q4 8.91927e-06 + CCCCCACCCCC
+chr13 35830226 35830236 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr13 35830227 35830236 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr13 35830277 35830291 +V_GATA1_03 9.77098e-06 + ATGCAGATTATTGG
+chr13 35830330 35830342 +V_GATA4_Q3 2.1552e-06 + AGAAAGAAGGGA
+chr13 35945260 35945269 +V_T3R_Q6 8.74404e-06 + CCTGTCCTG
+chr13 36355805 36355824 -V_GR_Q6 7.48457e-06 - GTGGCTCCCTGTGTCCCAC
+chr13 37528291 37528302 -V_SP1SP3_Q4 3.76147e-06 - CCCCCCCCCCA
+chr13 37528292 37528301 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr13 37528292 37528303 -V_SP1SP3_Q4 3.39206e-07 - CCCCCCCCCCC
+chr13 37528292 37528307 +V_VDR_Q3 7.57997e-06 + GGGGGGGGGGGGTGG
+chr13 37528293 37528302 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr13 37528293 37528304 -V_SP1SP3_Q4 3.39206e-07 - CCCCCCCCCCC
+chr13 37528294 37528303 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr13 37528294 37528305 -V_SP1SP3_Q4 3.19906e-06 - ACCCCCCCCCC
+chr13 37528294 37528307 +V_MAZR_01 3.51639e-06 + GGGGGGGGGGTGG
+chr13 37528294 37528308 -V_KROX_Q6 2.61668e-06 - TCCACCCCCCCCCC
+chr13 37528295 37528304 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr13 37528296 37528307 -V_SP1SP3_Q4 5.13339e-06 - CCACCCCCCCC
+chr13 37528299 37528314 +V_VDR_Q3 6.21229e-07 + GGGGGTGGAGGGTGA
+chr13 38728238 38728262 -V_STAT5A_02 5.06938e-07 - TTCCAAGAATGTCCTTGCCGGAGG
+chr13 38728266 38728282 +V_NFKB_Q6_01 9.0975e-06 + GGCTTGGGAATTCCTG
+chr13 38728267 38728280 +V_IK1_01 1.00166e-06 + GCTTGGGAATTCC
+chr13 38728267 38728280 +V_IK3_01 2.74226e-06 + GCTTGGGAATTCC
+chr13 38728294 38728313 +V_PU1_Q4 1.72817e-06 + AGTTTCTACTTCCTGTTCT
+chr13 38728300 38728311 -V_ELF5_01 4.25524e-06 - AACAGGAAGTA
+chr13 38728301 38728313 -V_ELF1_Q6 3.08919e-06 - AGAACAGGAAGT
+chr13 40748479 40748498 -V_OCT1_01 1.90735e-07 - TTACATATGCAAATATGCT
+chr13 40748481 40748494 +V_OCT_C 6.42763e-06 + CATATTTGCATAT
+chr13 40748482 40748493 +V_OCT_Q6 7.92146e-06 + ATATTTGCATA
+chr13 40748483 40748493 -V_OCT1_B 4.33582e-06 - TATGCAAATA
+chr13 40748484 40748499 -V_OCT4_01 3.04012e-06 - CTTACATATGCAAAT
+chr13 40748505 40748520 -V_SREBP_Q6 2.612e-06 - TCCCTCACCCCACCC
+chr13 40748505 40748520 -V_SREBP1_Q5 7.73938e-07 - TCCCTCACCCCACCC
+chr13 40748518 40748529 -V_LEF1TCF1_Q4 5.53227e-07 - CCTTTGATGTC
+chr13 40748541 40748557 +V_S8_01 1.84302e-06 + TTGATCTAATTAGTCT
+chr13 40980480 40980498 -V_RFX1_02 7.58698e-06 - TTGCAGCCTTAGCAACCA
+chr13 40980501 40980518 -V_PPARG_03 4.00213e-06 - GTCAAGGACAAAGTTGA
+chr13 41125132 41125147 -V_VDR_Q3 8.52845e-06 - AGGGCAATGGGGAGA
+chr13 41188775 41188791 +V_AP2_Q3 7.62107e-06 + GGCCCCAGGGGAGGGC
+chr13 41188777 41188788 -V_EBF_Q6 7.68235e-06 - CTCCCCTGGGG
+chr13 41188782 41188790 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr13 41188782 41188791 -V_CKROX_Q2 3.66459e-06 - GCCCTCCCC
+chr13 41188790 41188801 -V_GAF_Q6 5.29815e-06 - CGGATTCCCAG
+chr13 41924193 41924202 -V_SMAD_Q6 9.3359e-06 - AGACACCCT
+chr13 41924207 41924215 +V_CACD_01 9.89755e-06 + CCACACCC
+chr13 41924286 41924309 -V_COUPTF_Q6 7.65805e-06 - CTTCCTGGCCTTGACTCTCTCCT
+chr13 41924300 41924314 +V_ETS2_B 4.30291e-06 + GCCAGGAAGCCAGT
+chr13 43696286 43696301 +V_ETS1_B 2.60229e-06 + GCAGGAAGTGGCCGG
+chr13 43696287 43696299 -V_ETS_Q4 7.06097e-06 - GGCCACTTCCTG
+chr13 44252523 44252538 -V_DMRT1_01 8.16534e-06 - TTGTTACAAGGTAGC
+chr13 44252560 44252575 -V_DMRT1_01 9.55793e-06 - TTGTTACAAAGTAGC
+chr13 44252583 44252594 -V_RORA_Q4 2.4539e-06 - TAATTAGGTCA
+chr13 44252597 44252612 -V_DMRT1_01 9.55793e-06 - TTGTTACAAAGTAGC
+chr13 44605094 44605104 -V_TAL1_Q6 3.62595e-06 - GCCAGCTGCT
+chr13 44605156 44605171 -V_AR_Q2 8.99915e-06 - AGTGGACACTGTTCT
+chr13 44779144 44779154 +V_ESE1_Q3 2.21291e-06 + TGTTTCCTGT
+chr13 44779150 44779159 +V_RFX_Q6 3.30926e-06 + CTGTTGCCA
+chr13 44779192 44779205 +V_DMRT4_01 5.97817e-06 + TATGTAGCAAATT
+chr13 44779250 44779261 -V_GAF_Q6 2.41269e-06 - CGTATTCCCAT
+chr13 44797139 44797150 +V_ALPHACP1_01 4.48665e-06 + CAGCCACTGAG
+chr13 44847319 44847330 +V_TGIF_01 4.23487e-06 + AGCTGTCAGTG
+chr13 45179260 45179274 -V_PAX6_Q2 7.01918e-06 - CTGACCTTGGAGTC
+chr13 45179262 45179274 -V_LRH1_Q5 3.22157e-06 - CTGACCTTGGAG
+chr13 45179264 45179273 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr13 45179264 45179274 -V_NUR77_Q5 2.98426e-06 - CTGACCTTGG
+chr13 45333862 45333872 +V_TAL1_Q6 7.46065e-07 + TCCAGCTGCT
+chr13 45369724 45369734 +V_NFAT_Q4_01 8.89473e-06 + GTGGAAAAAC
+chr13 45369786 45369799 +V_AP2_Q6_01 6.77812e-06 + GAGGCCTCAGGCG
+chr13 45369801 45369816 -V_ETS1_B 2.00417e-06 - CCAGGAAGTGATGAG
+chr13 45369803 45369815 +V_ETS_Q4 2.56268e-06 + CATCACTTCCTG
+chr13 45369804 45369815 -V_FLI1_Q6 3.07019e-06 - CAGGAAGTGAT
+chr13 45369825 45369834 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr13 45369825 45369835 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr13 45369825 45369838 +V_MAZR_01 5.4366e-06 + GGGGGAGGGGAGA
+chr13 45369826 45369834 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr13 45369826 45369835 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr13 45585840 45585854 +V_BLIMP1_Q6 8.88669e-06 + AGGAAGGGCAATTA
+chr13 45585878 45585895 +V_DR4_Q2 4.90952e-06 + CACACTCCACTGACCCA
+chr13 45610404 45610422 +V_GCNF_01 1.51863e-06 + GGCAAGTTCAAGGTTTCT
+chr13 45610439 45610450 -V_EBF_Q6 9.10919e-06 - TTCCCCTGAGG
+chr13 45610463 45610475 +V_LMO2COM_01 6.44862e-06 + CGCCAGCTGTAG
+chr13 45610504 45610513 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr13 45610505 45610517 -V_PAX4_03 2.70808e-06 - GACTCCCACCCC
+chr13 46143154 46143170 +V_MAF_Q6 3.8473e-06 + TGGTGGGAAGTAGCCT
+chr13 46666790 46666799 +V_T3R_Q6 8.74404e-06 + CCTGTCCTG
+chr13 46666825 46666839 +V_FOXO4_02 7.08786e-06 + TTGTTGTTTTCGAT
+chr13 46666825 46666839 +V_FOXO3_01 9.66013e-06 + TTGTTGTTTTCGAT
+chr13 46666837 46666850 +V_GATA1_04 8.46398e-07 + ATCTGATAAGGCG
+chr13 47678128 47678143 +V_ETS1_B 4.81407e-06 + CCAGGATGTGGTGGA
+chr13 47678129 47678141 -V_ETS_Q4 6.33208e-06 - CACCACATCCTG
+chr13 47678162 47678172 -V_LEF1_Q2_01 9.48141e-06 - GAACAAAGGG
+chr13 47678163 47678174 +V_LEF1TCF1_Q4 5.90916e-06 + CCTTTGTTCCT
+chr13 47678193 47678207 -V_BLIMP1_Q6 1.61206e-07 - AGGAAGTGAAATGA
+chr13 47678196 47678208 +V_ETS_Q4 7.06097e-06 + TTTCACTTCCTG
+chr13 47678208 47678220 +V_PXR_Q2 9.22163e-06 + TGGGTTAGTGAA
+chr13 48226292 48226310 -V_MYOD_Q6_01 6.49155e-06 - CGGGCCCAGATGGCAAAG
+chr13 48226320 48226333 -V_SP1_Q6 3.61794e-07 - AGGGGGCGGAGCG
+chr13 48226321 48226331 -V_SP1_Q6_01 3.49614e-06 - GGGGCGGAGC
+chr13 48226322 48226332 +V_SP1_Q2_01 3.57003e-06 + CTCCGCCCCC
+chr13 48949858 48949872 +V_DMRT7_01 4.06802e-06 + TGGCTACAATGTTT
+chr13 48949858 48949873 +V_DMRT1_01 7.14506e-08 + TGGCTACAATGTTTC
+chr13 48949860 48949875 -V_DMRT1_01 2.48775e-07 - TGGAAACATTGTAGC
+chr13 48949888 48949902 +V_DMRT7_01 6.91627e-06 + TGGATACAATGTTT
+chr13 48949888 48949903 +V_DMRT1_01 6.57259e-08 + TGGATACAATGTTTC
+chr13 48949890 48949905 -V_DMRT1_01 4.26013e-07 - TGGAAACATTGTATC
+chr13 48949893 48949909 -V_DMRT2_01 5.47172e-06 - TATTTGGAAACATTGT
+chr13 51473589 51473602 +V_IRF1_01 3.47726e-06 + CAAAAGAGAAACC
+chr13 51473589 51473602 +V_IRF2_01 8.79663e-06 + CAAAAGAGAAACC
+chr13 51473590 51473601 +V_IRF_Q6_01 7.89955e-06 + AAAAGAGAAAC
+chr13 51473590 51473605 -V_IRF_Q6 8.71346e-06 - GCTGGTTTCTCTTTT
+chr13 51473705 51473720 -V_CP2_02 6.57372e-06 - GCTGGCTGGCGGTGG
+chr13 51858196 51858208 -V_PAX4_03 3.63034e-06 - GAACCCCACCCC
+chr13 51858237 51858252 +V_DMRT1_01 3.05518e-06 + GTGCAACATTGTTTC
+chr13 51858239 51858254 -V_DMRT1_01 5.52213e-06 - GGGAAACAATGTTGC
+chr13 51858249 51858262 +V_HSF_Q6 9.89146e-06 + TTCCCTCGGCTTC
+chr13 51858302 51858320 -V_MYOD_Q6_01 1.93389e-06 - CAGGGGCAGGTGGACAGC
+chr13 51858306 51858316 +V_MYOD_Q6 6.66004e-06 + TCCACCTGCC
+chr13 51858307 51858317 +V_EBOX_Q6_01 6.43409e-06 + CCACCTGCCC
+chr13 51858307 51858321 +V_E2A_Q2 1.54839e-07 + CCACCTGCCCCTGC
+chr13 51858308 51858316 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr13 51944715 51944726 -V_SP1SP3_Q4 3.76147e-06 - CCCCCCCCCCA
+chr13 51944716 51944725 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr13 51944716 51944727 -V_SP1SP3_Q4 3.39206e-07 - CCCCCCCCCCC
+chr13 51944716 51944730 -V_KROX_Q6 7.21197e-06 - CCCCCCCCCCCCCC
+chr13 51944717 51944726 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr13 51944717 51944728 -V_SP1SP3_Q4 3.39206e-07 - CCCCCCCCCCC
+chr13 51944717 51944731 -V_KROX_Q6 7.21197e-06 - CCCCCCCCCCCCCC
+chr13 51944718 51944727 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr13 51944718 51944729 -V_SP1SP3_Q4 3.39206e-07 - CCCCCCCCCCC
+chr13 51944718 51944732 -V_KROX_Q6 7.21197e-06 - CCCCCCCCCCCCCC
+chr13 51944719 51944728 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr13 51944719 51944730 -V_SP1SP3_Q4 3.39206e-07 - CCCCCCCCCCC
+chr13 51944719 51944733 -V_KROX_Q6 7.21197e-06 - CCCCCCCCCCCCCC
+chr13 51944720 51944729 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr13 51944720 51944731 -V_SP1SP3_Q4 3.39206e-07 - CCCCCCCCCCC
+chr13 51944720 51944734 -V_KROX_Q6 7.21197e-06 - CCCCCCCCCCCCCC
+chr13 51944720 51944735 +V_VDR_Q3 5.07321e-06 + GGGGGGGGGGGGGGA
+chr13 51944721 51944730 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr13 51944721 51944732 -V_SP1SP3_Q4 3.39206e-07 - CCCCCCCCCCC
+chr13 51944722 51944731 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr13 51944722 51944733 -V_SP1SP3_Q4 3.39206e-07 - CCCCCCCCCCC
+chr13 51944723 51944732 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr13 51944723 51944734 -V_SP1SP3_Q4 3.39206e-07 - CCCCCCCCCCC
+chr13 51944724 51944733 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr13 51944724 51944737 +V_MAZR_01 9.23255e-07 + GGGGGGGGGGAAG
+chr13 51944725 51944734 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr13 51944726 51944742 +V_NFKB_Q6_01 8.55659e-06 + GGGGGGGGAAGCCCAC
+chr13 51944731 51944739 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr13 51944753 51944772 +V_NRSF_Q4 3.16685e-06 + TTGCTGTCAGCTCTGCTGC
+chr13 51944792 51944822 -V_PAX4_04 3.85418e-07 - GAAAAACAGCACCCCACCCCGCCCTTCCCC
+chr13 51944795 51944808 +V_SP1_Q6 5.21945e-06 + GAAGGGCGGGGTG
+chr13 51944797 51944807 +V_SP1_Q6_01 8.48538e-06 + AGGGCGGGGT
+chr13 51944801 51944811 -V_SP1_Q2_01 8.14617e-06 - CCCCACCCCG
+chr13 51954060 51954074 +V_STAT3STAT3_Q3 9.61581e-06 + GTTCAGGGAACTGC
+chr13 51954100 51954115 +V_STAT5A_01 8.22978e-06 + AGATTCCAGGAAGCA
+chr13 51954183 51954195 +V_ATF4_Q2 8.23388e-06 + CCTGACTCCGTG
+chr13 52116821 52116839 +V_GCNF_01 5.34973e-06 + AGCAAGGTCAGTGTCAGC
+chr13 52116822 52116832 -V_NUR77_Q5 2.98426e-06 - CTGACCTTGC
+chr13 52116839 52116850 +V_LEF1TCF1_Q4 7.79522e-06 + GCTTTGATGTT
+chr13 52157462 52157477 -V_ETS1_B 4.29052e-06 - GGAGGAAGTGTGTCA
+chr13 52157464 52157478 -V_ETS2_B 4.91978e-06 - TGGAGGAAGTGTGT
+chr13 52157468 52157480 -V_ELF1_Q6 7.39845e-06 - GTTGGAGGAAGT
+chr13 52157484 52157492 +V_CACD_01 9.89755e-06 + CCACACCC
+chr13 52157521 52157532 +V_AP1_Q4 4.30412e-06 + GGTGACTAAGC
+chr13 52157558 52157573 +V_OCT4_01 5.63049e-06 + CATTCTTATTCAAAC
+chr13 52305988 52306002 -V_ERR1_Q2 1.63433e-06 - TCATCAAGGTCACT
+chr13 52305990 52305999 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr13 52317869 52317881 +V_CREB_02 9.88412e-06 + GTGTTGACGCCC
+chr13 52317881 52317892 +V_TGIF_01 5.10679e-06 + AGCTGTCAGGG
+chr13 52347790 52347799 -V_T3R_Q6 3.30926e-06 - CCTGTCCTT
+chr13 52383949 52383965 -V_AP2_Q3 5.34192e-06 - GGCCCTGGGCTGTAGA
+chr13 52384036 52384057 -V_PAX6_01 7.24772e-06 - TTTCTTCCCGCTCCAATTAGC
+chr13 52405268 52405278 -V_HMX1_01 2.98426e-06 - CAAGTGGGTG
+chr13 52405286 52405299 +V_SP1_Q6 8.76141e-06 + GGGGGGAGGAGGG
+chr13 52405287 52405302 +V_VDR_Q3 2.57589e-06 + GGGGGAGGAGGGAGG
+chr13 52405298 52405313 +V_VDR_Q3 1.22689e-06 + GAGGGAGGAGGGAGA
+chr13 52405339 52405354 -V_VDR_Q3 1.06886e-06 - GGGGCAGGGAGGGGA
+chr13 52405378 52405387 +V_CACBINDINGPROTEIN_Q6 6.29506e-06 + GAGGCTGGG
+chr13 52657666 52657677 +V_SMAD_Q6_01 5.09972e-06 + CAGGCAGACAG
+chr13 52657667 52657676 -V_SMAD3_Q6 7.33929e-06 - TGTCTGCCT
+chr13 52657672 52657686 +V_ETS2_B 1.18015e-07 + GACAGGAAGTATTT
+chr13 52657673 52657688 +V_ETS1_B 4.52978e-06 + ACAGGAAGTATTTAC
+chr13 52657703 52657714 +V_OCT_Q6 9.41564e-06 + CAATTTGCATA
+chr13 52657704 52657714 -V_OCT1_B 7.0832e-06 - TATGCAAATT
+chr13 52657704 52657716 -V_OCT1_07 7.06349e-06 - GCTATGCAAATT
+chr13 52657705 52657720 -V_OCT4_01 2.28618e-06 - CTTTGCTATGCAAAT
+chr13 52657735 52657750 -V_OCT4_02 1.37411e-06 - ATTGTTATGATAATG
+chr13 52657736 52657751 -V_OCT4_01 8.48593e-06 - TATTGTTATGATAAT
+chr13 52844254 52844268 +V_DMRT7_01 8.81367e-07 + TGGTTACAATGTTT
+chr13 52844254 52844269 +V_DMRT1_01 2.22792e-07 + TGGTTACAATGTTTC
+chr13 52844256 52844271 -V_DMRT1_01 1.3484e-06 - TTGAAACATTGTAAC
+chr13 52844300 52844314 +V_DMRT7_01 3.5461e-06 + ATGTTACAATGTTT
+chr13 52844300 52844315 +V_DMRT1_01 2.36549e-06 + ATGTTACAATGTTTT
+chr13 52844345 52844360 +V_DMRT1_01 2.36549e-06 + AGGATACAATGTTTT
+chr13 53326368 53326381 +V_SP1_Q6 4.83523e-06 + AGGAGGAGGGGCC
+chr13 53326369 53326382 +V_MAZR_01 6.86006e-06 + GGAGGAGGGGCCG
+chr13 53326404 53326420 -V_AP2_Q3 3.22678e-06 - GCCCCAAGGCAGGGGC
+chr13 53326422 53326434 +V_MEIS1_01 7.43558e-06 + CCCTGACAGAGC
+chr13 53681572 53681581 +V_AP2ALPHA_01 6.01835e-06 + GCCCCGGGG
+chr13 53681572 53681581 +V_AP2GAMMA_01 4.51376e-06 + GCCCCGGGG
+chr13 53681656 53681669 -V_HSF_Q6 9.15879e-06 - TTCCAGGAGTTCC
+chr13 53987077 53987090 +V_SP1_Q6 2.76363e-06 + TGGGGGTGGGGCG
+chr13 53987078 53987087 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr13 53987078 53987088 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr13 53987078 53987091 +V_MAZR_01 8.79511e-06 + GGGGGTGGGGCGG
+chr13 53987079 53987089 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr13 53987083 53987093 -V_SP1_Q2_01 3.57003e-06 - CCCCGCCCCA
+chr13 53987084 53987093 -V_CKROX_Q2 6.67377e-06 - CCCCGCCCC
+chr13 53987084 53987094 +V_SP1_Q6_01 2.74385e-06 + GGGGCGGGGA
+chr13 53987087 53987102 -V_SREBP_Q6 6.48026e-06 - CCCCTCACTCCCCGC
+chr13 53987087 53987102 -V_SREBP1_Q5 2.95108e-06 - CCCCTCACTCCCCGC
+chr13 53987208 53987222 +V_HNF4_Q6_01 4.332e-06 + TGGCCAGAGGCCAC
+chr13 53987261 53987280 +V_PU1_Q4 9.43652e-06 + ATCTCCCATTTCCTGTCTC
+chr13 53987264 53987278 -V_ETS2_B 8.24353e-06 - GACAGGAAATGGGA
+chr13 53987341 53987353 -V_AP2_Q6 8.83829e-06 - ATCCCCCAGGCC
+chr13 54152750 54152764 +V_BLIMP1_Q6 1.35276e-07 + AGGGAGGGAAAGTG
+chr13 54152791 54152806 -V_DMRT1_01 1.95997e-06 - TTACTACATTGTTGC
+chr13 54213936 54213955 -V_OCT1_01 6.98342e-06 - TTTATTATGCAAATAGATT
+chr13 54213939 54213950 +V_OCT_Q6 9.41564e-06 + CTATTTGCATA
+chr13 54213940 54213950 -V_OCT1_B 4.33582e-06 - TATGCAAATA
+chr13 54213941 54213956 -V_OCT4_01 4.36639e-07 - TTTTATTATGCAAAT
+chr13 56260787 56260800 -V_GFI1_Q6 5.94515e-06 - CCAAATCCCAGCT
+chr13 56261113 56261124 +V_LEF1TCF1_Q4 7.79522e-06 + GCTTTGATGTT
+chr13 56261142 56261157 +V_VDR_Q3 5.07321e-06 + GGGTCACCGGGGAGC
+chr13 57517429 57517444 +V_DMRT3_01 4.42685e-06 + CAGTTGTTACATTAT
+chr13 57517465 57517480 +V_DMRT3_01 1.09116e-06 + CAGTTGTTACATTGT
+chr13 57517466 57517481 +V_DMRT5_01 4.43693e-06 + AGTTGTTACATTGTT
+chr13 57517468 57517482 +V_DMRT7_01 2.62625e-06 + TTGTTACATTGTTC
+chr13 57517468 57517483 +V_DMRT1_01 2.04559e-06 + TTGTTACATTGTTCC
+chr13 57517501 57517514 -V_DMRT4_01 5.41272e-06 - AATGTAACAAATG
+chr13 57517501 57517516 +V_DMRT3_01 1.29658e-07 + CATTTGTTACATTGT
+chr13 57517502 57517517 +V_DMRT5_01 1.28143e-06 + ATTTGTTACATTGTT
+chr13 57517504 57517518 +V_DMRT7_01 2.62625e-06 + TTGTTACATTGTTC
+chr13 57517504 57517519 +V_DMRT1_01 2.04559e-06 + TTGTTACATTGTTCC
+chr13 57517537 57517552 +V_DMRT3_01 4.42685e-06 + CAGTTGTTACATTAT
+chr13 57596343 57596353 +V_ESE1_Q3 8.80613e-06 + GGCTTCCTGT
+chr13 58332069 58332084 -V_HMGIY_Q3 4.45843e-06 - CCTGGAATTTCCCTA
+chr13 58332071 58332081 +V_NFKAPPAB_01 7.14234e-06 + GGGAAATTCC
+chr13 58332072 58332082 -V_NFKAPPAB65_01 5.16177e-06 - TGGAATTTCC
+chr13 58332087 58332101 -V_ERR1_Q2 1.82748e-06 - AGATAAAGGTCATG
+chr13 58332151 58332164 +V_SP1_Q6 3.06772e-06 + TGGGGGAGGGGGC
+chr13 58332152 58332161 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr13 58332152 58332162 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr13 58332152 58332163 -V_SP1SP3_Q4 2.8432e-06 - CCCCCTCCCCC
+chr13 58332153 58332161 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr13 58332153 58332162 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr13 58332153 58332163 +V_SP1_Q6_01 8.48538e-06 + GGGGAGGGGG
+chr13 58332153 58332167 -V_KROX_Q6 5.42711e-07 - CCAGCCCCCTCCCC
+chr13 58717492 58717502 -V_TBX5_Q5 9.08563e-07 - CTCACACCTT
+chr13 58717497 58717508 -V_PAX_Q6 7.52241e-06 - CTGAAACTCAC
+chr13 59754214 59754229 +V_DMRT1_01 1.95997e-06 + AAGCAACATTGTTGC
+chr13 59754216 59754231 -V_DMRT1_01 1.27645e-07 - TGGCAACAATGTTGC
+chr13 59754217 59754231 -V_DMRT7_01 3.27916e-06 - TGGCAACAATGTTG
+chr13 59754226 59754237 -V_E12_Q6 6.12239e-06 - GACAGGTGGCA
+chr13 59754227 59754237 +V_MYOD_Q6 5.43478e-06 + GCCACCTGTC
+chr13 59754228 59754242 +V_E2A_Q2 1.37379e-06 + CCACCTGTCACTGA
+chr13 59754229 59754241 -V_MEIS1_01 3.29616e-07 - CAGTGACAGGTG
+chr13 59754278 59754293 +V_DMRT1_01 1.95997e-06 + AAGCAACATTGTTGC
+chr13 59754280 59754295 -V_DMRT1_01 8.80703e-07 - CAGCAACAATGTTGC
+chr13 60529261 60529270 +V_AP2ALPHA_01 9.68294e-06 + GCCCGAGGC
+chr13 60529316 60529339 -V_COUPTF_Q6 4.40544e-06 - TCTGATGGCCTTTCCTCCCTGTC
+chr13 62179747 62179767 -V_FOXP1_01 7.72751e-06 - ATCTTTATATTTTTGTGTAG
+chr13 62179853 62179876 +V_OCT1_04 7.18714e-06 + ACAGGCAAATGCAAATGCAGGCA
+chr13 64475099 64475117 +V_HNF3_Q6_01 6.08391e-06 + TTGTATGTTTGTTTACTC
+chr13 64475099 64475117 -V_FOXJ2_01 9.96532e-06 - GAGTAAACAAACATACAA
+chr13 64475101 64475113 +V_FOXD3_01 1.31523e-06 + GTATGTTTGTTT
+chr13 64475101 64475114 +V_FOX_Q2 1.50451e-06 + GTATGTTTGTTTA
+chr13 64475101 64475114 +V_HFH3_01 4.6678e-07 + GTATGTTTGTTTA
+chr13 64475101 64475114 +V_HFH4_01 1.23183e-06 + GTATGTTTGTTTA
+chr13 64475103 64475121 +V_HNF3_Q6_01 3.64693e-07 + ATGTTTGTTTACTCAGTC
+chr13 64475104 64475118 +V_FOXO3_01 8.88278e-06 + TGTTTGTTTACTCA
+chr13 70525801 70525814 -V_DEC_Q1 8.53081e-06 - CCCCAAGTGAAAG
+chr13 70525851 70525861 -V_GATA1_01 4.96582e-06 - CCTGATGGGG
+chr13 70525911 70525921 -V_NKX22_01 5.97675e-06 - TTAAGTACTT
+chr13 70525918 70525937 -V_GR_Q6 4.06623e-06 - AATGTTCATTGTGTTCTTA
+chr13 70525919 70525935 -V_GRE_C 4.3773e-06 - TGTTCATTGTGTTCTT
+chr13 71117978 71117986 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr13 72731851 72731866 +V_DMRT1_01 1.87081e-07 + CTGCAACAATGTTTC
+chr13 72731853 72731868 -V_DMRT1_01 9.92712e-06 - GAGAAACATTGTTGC
+chr13 72731886 72731901 +V_DMRT1_01 1.88888e-06 + CTGTGACAATGTTTC
+chr13 72731921 72731936 +V_DMRT1_01 1.88888e-06 + CTGTGACAATGTTTC
+chr13 73237047 73237077 +V_HOX13_01 5.826e-07 + TTCATCCTTCCCCATTAGCATGTCCATTGA
+chr13 76496242 76496260 +V_NF1_Q6 9.30221e-06 + TGCTGGCAAGATGCCAAA
+chr13 76496244 76496261 +V_NF1_Q6_01 4.76788e-06 + CTGGCAAGATGCCAAAC
+chr13 76496293 76496310 +V_FOXP3_Q4 4.05736e-06 + GAGCTGCTGTGGCAGGC
+chr13 90444210 90444225 +V_ETS1_B 8.48353e-06 + GGAGGAAGTAGGGGA
+chr13 90444225 90444235 -V_SP1_Q2_01 9.56538e-06 - CCCCACCCCT
+chr13 90444226 90444238 -V_PAX4_03 3.63034e-06 - GTCCCCCACCCC
+chr13 90444263 90444277 +V_COUP_01 4.02421e-06 + TGAACTTTGACAAT
+chr13 93457258 93457270 -V_SRY_02 4.26311e-06 - CTTAACAATAGA
+chr13 93457259 93457269 -V_SOX5_01 4.92279e-06 - TTAACAATAG
+chr13 93457338 93457349 -V_EBF_Q6 2.83527e-06 - TTCCCCTGAGA
+chr13 93457339 93457355 +V_NFKB_Q6_01 9.80125e-07 + CTCAGGGGAATTCCCT
+chr13 93457342 93457355 +V_P50P50_Q3 9.77769e-07 + AGGGGAATTCCCT
+chr13 93457342 93457356 +V_NFKB_Q6 9.22738e-07 + AGGGGAATTCCCTA
+chr13 93457342 93457356 -V_NFKB_Q6 5.15179e-06 - TAGGGAATTCCCCT
+chr13 93457343 93457353 +V_CREL_01 5.43478e-06 + GGGGAATTCC
+chr13 93457343 93457355 +V_NFKB_C 6.15227e-06 + GGGGAATTCCCT
+chr13 93457343 93457355 -V_NFKB_C 5.17264e-06 - AGGGAATTCCCC
+chr13 93457343 93457356 -V_P50P50_Q3 5.13238e-07 - TAGGGAATTCCCC
+chr13 93457343 93457359 -V_NFKB_Q6_01 9.65796e-06 - AGTTAGGGAATTCCCC
+chr13 93457344 93457354 +V_NFKAPPAB65_01 7.87917e-06 + GGGAATTCCC
+chr13 93457344 93457354 +V_NFKAPPAB_01 7.46065e-07 + GGGAATTCCC
+chr13 93457344 93457354 -V_NFKAPPAB65_01 7.87917e-06 - GGGAATTCCC
+chr13 93457344 93457354 -V_NFKAPPAB_01 7.46065e-07 - GGGAATTCCC
+chr13 94946129 94946159 -V_PAX4_04 7.0256e-06 - AAAACAAAACAAAAAAAAAAACAACACCCT
+chr13 94946138 94946158 +V_FOXP1_01 1.90686e-06 + TTTTTTTTTTTGTTTTGTTT
+chr13 94946141 94946161 +V_FOXP1_01 3.5996e-06 + TTTTTTTTGTTTTGTTTTGT
+chr13 94946143 94946163 +V_FOXP1_01 2.74514e-07 + TTTTTTGTTTTGTTTTGTTT
+chr13 94946148 94946168 +V_FOXP1_01 4.50341e-06 + TGTTTTGTTTTGTTTTGTTT
+chr13 94946161 94946170 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr13 94946344 94946362 +V_FOXJ2_01 3.58897e-06 + TTGCAAACAAACACAAAA
+chr13 94946347 94946360 -V_HFH4_01 4.06855e-06 - TTGTGTTTGTTTG
+chr13 94946368 94946376 -V_CACD_01 9.89755e-06 - CCACACCC
+chr13 94946374 94946386 -V_PAX4_03 3.63034e-06 - CTCCCCCACCCC
+chr13 94946374 94946388 -V_KROX_Q6 7.21197e-06 - TGCTCCCCCACCCC
+chr13 95098111 95098121 -V_NFAT_Q4_01 2.4539e-06 - GTGGAAAATT
+chr13 95098131 95098147 -V_NFY_01 1.11872e-06 - ACTAACCAATCAGAAG
+chr13 95098133 95098147 +V_NFY_C 2.06025e-08 + TCTGATTGGTTAGT
+chr13 95098134 95098145 -V_NFY_Q6 6.07558e-07 - TAACCAATCAG
+chr13 95098220 95098233 +V_NRF2_Q4 2.19118e-06 + CTGTTGAGTCATT
+chr13 95098221 95098232 +V_MAF_Q6_01 4.06732e-06 + TGTTGAGTCAT
+chr13 95098223 95098232 -V_AP1_Q6_01 8.93783e-06 - ATGACTCAA
+chr13 96249203 96249217 +V_BLIMP1_Q6 9.8164e-06 + GGGAAGGGAAAGCC
+chr13 96366005 96366018 +V_NRF2_Q4 7.08564e-06 + GGGCTGAGTCATT
+chr13 96366006 96366017 +V_MAF_Q6_01 1.07676e-06 + GGCTGAGTCAT
+chr13 96366008 96366017 -V_AP1_Q6_01 4.03003e-06 - ATGACTCAG
+chr13 96366082 96366096 +V_ERR1_Q2 7.60856e-06 + TCCTCGAGGTCACT
+chr13 96579270 96579281 -V_PAX_Q6 1.94869e-06 - CTGGAACTCAA
+chr13 96579280 96579310 +V_PAX4_04 2.24274e-06 + GAAAAATACCTCACTCACCCCTCCCACACA
+chr13 96579297 96579307 +V_SP1_Q2_01 9.56538e-06 + CCCCTCCCAC
+chr13 96579298 96579308 -V_IK_Q5 6.81053e-06 - TGTGGGAGGG
+chr13 96579331 96579347 +V_DMRT2_01 3.1644e-06 + CAACTGGATACATTGT
+chr13 96579332 96579347 +V_DMRT3_01 9.08352e-06 + AACTGGATACATTGT
+chr13 96579335 96579349 +V_DMRT7_01 9.63794e-06 + TGGATACATTGTAG
+chr13 96579335 96579350 +V_DMRT1_01 8.06116e-08 + TGGATACATTGTAGC
+chr13 96579337 96579352 -V_DMRT1_01 4.22462e-06 - TCGCTACAATGTATC
+chr13 96730073 96730085 -V_AP2_Q6 3.4263e-06 - CTCCCCCAGGCC
+chr13 96730073 96730086 -V_AP2_Q6_01 6.31248e-07 - CCTCCCCCAGGCC
+chr13 96730077 96730090 +V_SP1_Q6 7.04257e-06 + TGGGGGAGGGGCA
+chr13 96730078 96730087 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr13 96730078 96730088 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr13 96730078 96730091 +V_MAZR_01 1.7259e-06 + GGGGGAGGGGCAC
+chr13 96730079 96730087 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr13 96730079 96730088 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr13 96730079 96730089 +V_SP1_Q6_01 2.74385e-06 + GGGGAGGGGC
+chr13 96730129 96730140 +V_RBPJK_01 1.7115e-06 + CCCGTGGGAAC
+chr13 96730142 96730165 +V_COUPTF_Q6 1.81259e-06 + CCTGCTGACCCCTCCCTCCTTCC
+chr13 96730147 96730160 -V_MAZR_01 9.36507e-06 - GAGGGAGGGGTCA
+chr13 96730148 96730161 -V_SP1_Q6 8.16238e-06 - GGAGGGAGGGGTC
+chr13 97430162 97430174 -V_LMO2COM_01 5.26561e-06 - CGCCAGCTGGAG
+chr13 97430163 97430173 +V_TAL1_Q6 7.72591e-06 + TCCAGCTGGC
+chr13 97430176 97430189 -V_AP2_Q6_01 5.59926e-06 - CTCTCCCCAGGCG
+chr13 97430300 97430320 -V_FOXP1_01 9.03899e-06 - ATCTTTGTGTTGCTAATTTT
+chr13 97430302 97430317 -V_OCT4_02 8.38472e-07 - TTTGTGTTGCTAATT
+chr13 97966657 97966669 +V_PAX4_03 6.56043e-06 + AACACCCACCCT
+chr13 98052775 98052786 +V_SMAD_Q6_01 6.47055e-06 + TAGGCAGACAT
+chr13 98052776 98052785 -V_SMAD3_Q6 7.33929e-06 - TGTCTGCCT
+chr13 98052831 98052846 +V_OCT1_Q6 9.91069e-06 + ATGCATGCAAATAGC
+chr13 98359696 98359712 -V_S8_01 8.05419e-06 - AAATGTTAATTAGCCT
+chr13 98359743 98359756 +V_MAZR_01 4.53707e-06 + TCGGGTGGGGACA
+chr13 98615243 98615255 -V_SRY_02 5.02837e-06 - GAAAACAATACA
+chr13 98615277 98615292 +V_VDR_Q3 6.79734e-06 + GGGTGAGAGAGGACT
+chr13 98615334 98615345 +V_MAF_Q6_01 2.65014e-06 + TGCTGAGGCAG
+chr13 99469434 99469446 +V_GLI_Q2 1.40827e-06 + CCTGGGTGGTGC
+chr13 99469452 99469464 -V_USF_Q6_01 2.17843e-06 - AGCCACGTGAGA
+chr13 99469453 99469463 +V_USF_Q6 4.1366e-06 + CTCACGTGGC
+chr13 99469461 99469471 +V_GATA1_05 2.21291e-06 + GCTGATAACA
+chr13 99469542 99469554 -V_TTF1_Q6 5.63324e-06 - ACCTCAAGTGCT
+chr13 99470194 99470204 +V_TAL1_Q6 7.46065e-07 + TCCAGCTGCT
+chr13 99470195 99470209 +V_E2A_Q2 3.17841e-06 + CCAGCTGCTGCTGG
+chr13 99470204 99470219 +V_CP2_02 3.90928e-07 + GCTGGTTTGCCCTGG
+chr13 99817066 99817081 -V_SMAD4_Q6 7.63557e-06 - GCCAGGCAGCCTTCC
+chr13 99817129 99817143 +V_COUP_01 5.49981e-06 + TGACCTTTGATGCT
+chr13 99817132 99817143 +V_LEF1TCF1_Q4 1.10645e-06 + CCTTTGATGCT
+chr13 99862335 99862345 +V_P53_02 5.02834e-06 + AGACATGTCC
+chr13 99862335 99862345 +V_P53_DECAMER_Q2 8.50103e-06 + AGACATGTCC
+chr13 103370161 103370171 -V_LEF1_Q2_01 9.48141e-06 - CAACAAAGGG
+chr13 103370240 103370250 -V_LEF1_Q2_01 9.48141e-06 - CAACAAAGGG
+chr13 103445291 103445305 +V_EFC_Q6 4.56902e-06 + AATCACCATGCAAA
+chr13 103445318 103445328 -V_ESE1_Q3 5.33438e-06 - TGTTTCCTGA
+chr13 103540107 103540120 +V_SP1_Q6 3.06772e-06 + AGGGGGAGGAGCC
+chr13 103540219 103540229 +V_TAL1_Q6 3.01332e-06 + TCCATCTGCC
+chr13 103919604 103919634 -V_PAX4_04 5.63091e-06 - AAACAAAACAATAAAACCCCCCACCTCTCC
+chr13 103919609 103919639 -V_PAX4_04 5.03459e-06 - AATAAAAACAAAACAATAAAACCCCCCACC
+chr13 103919627 103919636 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr13 103919633 103919651 -V_CDX_Q5 9.59434e-06 - TATGATCAGACAAATAAA
+chr13 103919737 103919748 -V_FLI1_Q6 7.89528e-06 - CAGGATGTCAG
+chr13 106046996 106047011 -V_OCT4_02 8.01355e-06 - TTTCTCATGTAAATC
+chr13 106046997 106047012 -V_OCT4_01 3.55466e-07 - CTTTCTCATGTAAAT
+chr13 107646783 107646798 -V_OCT4_02 3.61302e-07 - ATTGTCATGCTGATA
+chr13 107646819 107646837 -V_GCNF_01 1.64301e-06 - GTCAAGTTCAAGTGCTGA
+chr13 107646825 107646843 -V_GCNF_01 1.82908e-07 - CAGAAGGTCAAGTTCAAG
+chr13 107646874 107646889 -V_CP2_02 7.39331e-06 - GCAGGTTTGTGCCAG
+chr13 108922399 108922411 -V_PXR_Q2 6.78022e-07 - AGGGTTAGTGAC
+chr13 110630268 110630283 -V_HNF1_01 6.84691e-06 - GGTAAATATTTGACA
+chr13 110630268 110630285 +V_HNF1_C 4.72746e-06 + TGTCAAATATTTACCTC
+chr13 110630604 110630617 +V_DR1_Q3 8.17076e-06 + TGTACAAAGGTCA
+chr13 110630605 110630618 -V_HNF4ALPHA_Q6 6.68176e-06 - ATGACCTTTGTAC
+chr13 110630663 110630673 +V_LEF1_Q2_01 9.48141e-06 + CAACAAAGGG
+chr13 110630691 110630703 +V_CREB_02 2.10867e-06 + CTGATGACGTCA
+chr13 110630691 110630705 -V_CREB_Q2_01 8.51438e-06 - AATGACGTCATCAG
+chr13 110630692 110630703 +V_CREB_Q4_01 9.22102e-06 + TGATGACGTCA
+chr13 110630693 110630707 +V_CREB_Q2_01 6.82756e-06 + GATGACGTCATTAG
+chr13 111352188 111352202 +V_FOXO4_02 2.52063e-06 + TGGTTGTTTACCAG
+chr13 111352208 111352221 -V_AP1_01 2.0763e-06 - TGGTGAGTCAGCC
+chr13 111352209 111352220 +V_AP1_Q6 2.36406e-06 + GCTGACTCACC
+chr13 111352209 111352220 -V_BACH2_01 3.70252e-06 - GGTGAGTCAGC
+chr13 111352210 111352219 -V_AP1_C 7.33929e-06 - GTGAGTCAG
+chr13 112579778 112579793 -V_ETS1_B 7.64126e-06 - ACAGGAAGGAAGGGC
+chr13 112781286 112781304 -V_MYOD_Q6_01 3.9848e-06 - CTCCAGCAGCTGCCAGAG
+chr13 112781479 112781492 -V_OCT_C 6.16486e-06 - CTCATTTGCAAAC
+chr13 112781607 112781616 -V_AP2ALPHA_01 6.01835e-06 - GCCCCGGGG
+chr13 112781607 112781616 -V_AP2GAMMA_01 4.51376e-06 - GCCCCGGGG
+chr13 112781616 112781628 -V_PAX4_03 2.70808e-06 - CACCCCCACCCT
+chr13 112856400 112856414 -V_ERR1_Q2 5.40592e-06 - ATTTGAAGGTCAGA
+chr13 112856447 112856456 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr13 114398150 114398169 -V_OCT1_01 5.31719e-06 - CCGCGTATGCAAAAATCAG
+chr13 114606152 114606165 +V_OCT_C 9.70046e-06 + AGCATTTGCATGT
+chr13 114606152 114606166 +V_OCT1_05 3.48409e-06 + AGCATTTGCATGTG
+chr13 114606167 114606184 -V_NF1_Q6_01 4.21436e-06 - CTGGAATCAAGCCAAGC
+chr13 114606202 114606215 +V_CEBPGAMMA_Q6 5.64858e-06 + TTCATTTAAGAAA
+chr13 114606272 114606282 -V_PR_Q2 9.99108e-06 - GAGAGGACAC
+chr13 114816692 114816706 +V_E2A_Q2 2.3835e-06 + ACACCTGCCTCCTG
+chr13 114816693 114816701 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr13 114816704 114816722 -V_CART1_01 8.94872e-06 - CCATAATTACCATAAACA
+chr13 114816706 114816718 +V_OCT1_07 1.14842e-06 + TTTATGGTAATT
+chr13 114816707 114816717 +V_POU3F2_02 8.91945e-06 + TTATGGTAAT
+chr13 114816764 114816783 +V_ER_Q6 8.78889e-06 + GAAATTCAAGGTGACCTGG
+chr13 115088155 115088170 -V_OCT4_02 9.10747e-06 - ATTTACATGCTAATC
+chr13 115088156 115088171 -V_OCT4_01 6.02107e-06 - CATTTACATGCTAAT
+chr13 115088184 115088203 -V_SEF1_C 1.80775e-06 - AACCCGGATGGCTCTGGCC
+chr13 115088214 115088229 -V_ETS1_B 7.64126e-06 - CGAGGAAGTGGGAGA
+chr13 115088216 115088226 +V_NKX25_Q5 8.11064e-06 + TCCCACTTCC
+chr13 115088216 115088228 +V_ETS_Q4 5.14007e-06 + TCCCACTTCCTC
+chr13 116557319 116557332 -V_IRF1_01 1.28554e-06 - CAATAGTGAAACC
+chr13 118004371 118004382 +V_LEF1TCF1_Q4 5.90916e-06 + CCTTTGATGAT
+chr13 118004432 118004444 -V_NANOG_01 8.86042e-06 - GGGATCATTTGC
+chr14 9235919 9235932 -V_CHOP_01 3.41598e-06 - GTGTGCAACCCCC
+chr14 9236049 9236072 -V_COUPTF_Q6 3.93002e-06 - CCGGCTGTCCTCTGACCTCTACC
+chr14 9236050 9236071 +V_PPARG_01 5.30719e-06 + GTAGAGGTCAGAGGACAGCCG
+chr14 9236054 9236067 +V_RXRLXRB_01 6.42396e-06 + AGGTCAGAGGACA
+chr14 9236054 9236067 +V_DR1_Q3 5.94376e-06 + AGGTCAGAGGACA
+chr14 9236054 9236067 -V_PPAR_DR1_Q2 5.84493e-06 - TGTCCTCTGACCT
+chr14 10718162 10718172 -V_CREL_01 4.68872e-06 - GGGGCATTCC
+chr14 10965600 10965611 -V_ALPHACP1_01 4.48665e-06 - CAGCCAGTGAG
+chr14 10965742 10965765 -V_PPARG_02 7.97223e-06 - CAGTGTGTAATGGTCACCTACAG
+chr14 11872888 11872903 -V_CP2_02 5.19969e-06 - GCTGGCTCCCACTGC
+chr14 12271289 12271311 +V_MEF2_03 2.10294e-06 + ACAGTTTCTAAAGATAGCACTG
+chr14 12271289 12271311 +V_MEF2_04 1.64849e-06 + ACAGTTTCTAAAGATAGCACTG
+chr14 17430820 17430832 -V_AP1_Q2_01 4.82754e-06 - TGACTCATGGGA
+chr14 17430821 17430836 +V_BACH1_01 1.37736e-06 + CCCATGAGTCATTCC
+chr14 21036676 21036691 +V_OCT4_01 1.96957e-07 + TATTGTAATGCTAAT
+chr14 21036677 21036692 +V_OCT4_02 3.02765e-06 + ATTGTAATGCTAATT
+chr14 22305545 22305557 -V_GLI_Q2 3.10596e-06 - CTTGGGTGTTCC
+chr14 22878137 22878152 -V_OCT4_01 8.48593e-06 - TATTATAATGTAAAA
+chr14 25590175 25590198 +V_COUPTF_Q6 8.98927e-06 + TAACCTGACCCCTCTGCCTGGCC
+chr14 25590230 25590242 +V_CEBP_Q3 9.47852e-06 + CAGTTTGGCAAG
+chr14 25590263 25590276 -V_MAZR_01 6.26113e-06 - GGAGGGGGGGTAC
+chr14 25590265 25590276 +V_SP1SP3_Q4 2.8432e-06 + ACCCCCCCTCC
+chr14 25590284 25590298 -V_KROX_Q6 5.75274e-06 - CCAGCCCCCCACCC
+chr14 25590290 25590299 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr14 25590308 25590321 +V_DR1_Q3 3.04643e-06 + TGGACAAAGGTCC
+chr14 25590308 25590321 -V_PPAR_DR1_Q2 6.37174e-06 - GGACCTTTGTCCA
+chr14 25590308 25590321 -V_HNF4_DR1_Q3 6.79583e-06 - GGACCTTTGTCCA
+chr14 25590308 25590321 -V_COUP_DR1_Q6 4.83437e-06 - GGACCTTTGTCCA
+chr14 26268168 26268179 -V_SP1SP3_Q4 7.42043e-06 - CCCCCACCTCC
+chr14 26268168 26268186 +V_CMYB_01 9.73912e-06 + GGAGGTGGGGGTTGGGGG
+chr14 26268266 26268276 -V_SP1_Q6_01 9.74073e-06 - GGGGAGGGGT
+chr14 26268267 26268276 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr14 26268268 26268276 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr14 26440473 26440482 -V_SMAD3_Q6 4.03003e-06 - TGTCTGTCT
+chr14 26440515 26440528 -V_AP2_Q6_01 4.11454e-06 - CTGCCCTCAGGCC
+chr14 26440531 26440544 +V_HNF4ALPHA_Q6 7.55113e-06 + GTGATCTTTGCCT
+chr14 28085957 28085974 +V_HSF1_Q6 5.57435e-06 + CTTCCAGAAGGTTGTTC
+chr14 28086433 28086448 -V_OCT4_01 6.46423e-06 - CATTCTTATTCAAAA
+chr14 28086479 28086492 +V_CRX_Q4 9.874e-06 + TCTTTAATCCCAG
+chr14 28086481 28086492 +V_PITX2_Q2 1.22695e-06 + TTTAATCCCAG
+chr14 28086502 28086516 -V_E2A_Q2 4.40068e-08 - CCACCTGCCTCAGC
+chr14 28086507 28086515 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr14 28086507 28086517 -V_MYOD_Q6 6.66004e-06 - TCCACCTGCC
+chr14 28086522 28086533 -V_PAX_Q6 2.04834e-07 - CTGGAACTCAC
+chr14 28086524 28086538 -V_PAX6_Q2 5.16503e-06 - CTGGTCTGGAACTC
+chr14 28086566 28086575 +V_FOXO1_Q5 7.27852e-06 + AAAAACAAA
+chr14 28086566 28086586 -V_FOXP1_01 3.37457e-06 - TTTGTTTTGTTTTTGTTTTT
+chr14 29052008 29052023 +V_OCT4_01 7.94702e-06 + GTTTGTCATGCTAAT
+chr14 29052009 29052024 +V_OCT4_02 6.76521e-08 + TTTGTCATGCTAATC
+chr14 30764157 30764173 -V_MAF_Q6 9.09794e-07 - TGGGAGGAAGTGTGCC
+chr14 30764225 30764238 -V_NRF2_Q4 5.51501e-06 - ATGCTTAGTCATC
+chr14 31407635 31407648 +V_NFY_Q6_01 5.29946e-06 + GACCAGCCAATCA
+chr14 31407636 31407650 -V_NFY_C 3.19919e-07 - CCTGATTGGCTGGT
+chr14 31407636 31407652 +V_NFY_01 2.79702e-07 + ACCAGCCAATCAGGAG
+chr14 31407638 31407649 +V_ALPHACP1_01 5.77866e-07 + CAGCCAATCAG
+chr14 31407744 31407757 +V_AP2_Q6_01 6.27133e-06 + GGTGCCCCAGGCT
+chr14 32713196 32713204 +V_CACD_01 9.89755e-06 + CCACACCC
+chr14 32731878 32731893 +V_SPZ1_01 4.92705e-06 + ACTGGGGGGATGGGC
+chr14 32732007 32732015 +V_CACD_01 9.89755e-06 + CCACACCC
+chr14 32732436 32732449 -V_MAZR_01 3.68108e-06 - GGGGGAGGGGACT
+chr14 32732439 32732448 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr14 32732439 32732449 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr14 32732440 32732448 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr14 32732440 32732449 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr14 32732440 32732454 +V_KROX_Q6 1.2477e-06 + CCCTCCCCCTCCCC
+chr14 32732444 32732454 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr14 32732444 32732455 +V_SP1SP3_Q4 2.8432e-06 + CCCCCTCCCCC
+chr14 32732445 32732454 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr14 32732445 32732455 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr14 32732446 32732454 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr14 32732446 32732455 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr14 33447645 33447660 +V_HES1_Q2 2.56329e-06 + CAGCCTCGTGGCCTG
+chr14 33447774 33447785 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr14 33447776 33447785 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr14 33447776 33447786 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr14 33640442 33640456 -V_ERR1_Q2 2.6673e-06 - AGGTGAAGGTCAAA
+chr14 33640446 33640467 -V_PPARG_01 2.09368e-06 - CAGGGGCTCAAAGGTGAAGGT
+chr14 33640450 33640463 -V_DR1_Q3 6.75098e-06 - GGCTCAAAGGTGA
+chr14 33640464 33640477 +V_HNF3_Q6 3.64504e-06 + CTGAACAAACAGC
+chr14 33673169 33673184 +V_DMRT1_01 6.26201e-07 + CTGCTACATTGTGTC
+chr14 33673171 33673186 -V_DMRT1_01 4.7719e-06 - CTGACACAATGTAGC
+chr14 33673191 33673204 +V_SP1_Q6 7.54104e-06 + GGGGGGAGGGGTA
+chr14 33673192 33673201 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr14 33673192 33673202 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr14 33673192 33673205 +V_MAZR_01 5.14471e-06 + GGGGGAGGGGTAA
+chr14 33673193 33673201 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr14 33673193 33673202 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr14 33673193 33673203 +V_SP1_Q6_01 9.74073e-06 + GGGGAGGGGT
+chr14 33673230 33673243 +V_NRF2_Q4 3.24035e-07 + ATGCTGAGTCAGC
+chr14 33673231 33673242 +V_MAF_Q6_01 4.54281e-07 + TGCTGAGTCAG
+chr14 33673232 33673243 -V_AP1FJ_Q2 8.1176e-06 - GCTGACTCAGC
+chr14 33673232 33673243 -V_AP1_Q6 7.46065e-07 - GCTGACTCAGC
+chr14 33673249 33673262 +V_NRF2_Q4 3.24035e-07 + ATGCTGAGTCAGC
+chr14 33673250 33673261 +V_MAF_Q6_01 4.54281e-07 + TGCTGAGTCAG
+chr14 33673251 33673262 -V_AP1FJ_Q2 8.1176e-06 - GCTGACTCAGC
+chr14 33673251 33673262 -V_AP1_Q6 7.46065e-07 - GCTGACTCAGC
+chr14 35507317 35507332 +V_OCT4_02 3.02765e-06 + ATTCAGATGCTGATT
+chr14 35507418 35507432 +V_NFY_C 2.79094e-06 + TCTGATTGGGTAAT
+chr14 39134295 39134310 +V_OCT4_01 9.436e-07 + CATTGATATGGAAAT
+chr14 39134296 39134311 +V_OCT4_02 5.69461e-06 + ATTGATATGGAAATG
+chr14 39134299 39134313 -V_OCT1_05 5.14798e-06 - GTCATTTCCATATC
+chr14 39134414 39134435 +V_HNF1_Q6_01 2.14087e-06 + CACAGTTAATTAGTAAACAGC
+chr14 39134415 39134433 -V_HNF1_Q6 3.88271e-07 - TGTTTACTAATTAACTGT
+chr14 39134417 39134434 +V_HNF1_C 1.12589e-06 + AGTTAATTAGTAAACAG
+chr14 40452276 40452291 -V_OCT4_02 1.90479e-06 - ATTCAGTTGCAAATT
+chr14 40452331 40452344 -V_IRF1_01 2.22772e-06 - CAAAATTGAAAGC
+chr14 46897779 46897789 -V_NFAT_Q4_01 8.89473e-06 - GAGGAAAATC
+chr14 48455279 48455294 -V_OCT4_01 7.41924e-06 - CTTTGAAATTCAGAT
+chr14 48973921 48973932 -V_PAX_Q6 1.07676e-06 - CAGGAACTCAC
+chr14 48973974 48973983 +V_YY1_Q6 3.30926e-06 + GCCATCTTG
+chr14 48974079 48974093 -V_ETS2_B 4.50829e-06 - GACAGGAAATGCTC
+chr14 49895146 49895161 -V_SREBP1_Q5 8.44178e-06 - AGAGTCACCCCAGGA
+chr14 49895149 49895161 -V_SREBP_Q3 7.2459e-06 - AGAGTCACCCCA
+chr14 49895161 49895173 -V_ETS_Q4 5.73527e-06 - CTTCACTTCCTG
+chr14 49895208 49895219 +V_RORA_Q4 6.07427e-06 + TTACTGGGTCA
+chr14 49895274 49895288 -V_KROX_Q6 1.8783e-06 - CCCACCCCCACCTC
+chr14 49895277 49895288 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr14 49895278 49895291 +V_SP1_Q6 7.04257e-06 + TGGGGGTGGGGGC
+chr14 49895279 49895288 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr14 49895279 49895289 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr14 49895279 49895290 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr14 49895280 49895294 -V_KROX_Q6 3.62033e-06 - TGTGCCCCCACCCC
+chr14 50067540 50067555 +V_OCT4_02 1.90479e-06 + ATTCAGATGCAAGTG
+chr14 51599531 51599552 +V_DR3_Q4 3.8928e-06 + GATGACCTTCCTGAATGTCCT
+chr14 51618205 51618219 +V_ETS2_B 6.93628e-07 + GGCAGGAAGTGGTT
+chr14 51618206 51618221 +V_ETS1_B 2.69251e-07 + GCAGGAAGTGGTTTG
+chr14 51618207 51618219 -V_ETS_Q4 1.02417e-07 - AACCACTTCCTG
+chr14 52518399 52518409 +V_IK_Q5 6.81053e-06 + TGTGGGAGGG
+chr14 52518400 52518410 -V_SP1_Q2_01 9.56538e-06 - CCCCTCCCAC
+chr14 52518401 52518414 +V_MAZR_01 8.35903e-06 + TGGGAGGGGGCTA
+chr14 52518404 52518426 +V_MEF2_03 2.86152e-06 + GAGGGGGCTAAAGATAGCCTAA
+chr14 52733939 52733947 -V_CACD_01 9.89755e-06 - CCACACCC
+chr14 52734012 52734026 +V_PAX6_Q2 8.99924e-06 + CTGACCTAGAACCA
+chr14 52734015 52734025 -V_BCL6_Q3 1.81713e-06 - GGTTCTAGGT
+chr14 52734039 52734051 +V_LRH1_Q5 2.30644e-06 + TTGGCCTTGAAC
+chr14 54196751 54196764 -V_STAT_Q6 2.21622e-06 - AGCTTTTCTGGGA
+chr14 54196838 54196853 -V_OCT4_01 4.28625e-06 - CATTCAATTGCAAAT
+chr14 54813751 54813762 +V_TGIF_01 7.03729e-07 + AGCTGTCAGGA
+chr14 54813759 54813771 +V_NANOG_01 7.60378e-06 + GGAGTCATTGCC
+chr14 54813820 54813838 +V_LXR_Q3 6.93036e-06 + AGGGGTGAGTGGAGTGCA
+chr14 54813821 54813838 -V_DR4_Q2 7.59081e-06 - TGCACTCCACTCACCCC
+chr14 54813841 54813854 +V_AP2_Q6_01 8.36638e-07 + CTGCCCCCAGGCC
+chr14 54813844 54813862 +V_CMYB_01 1.4877e-06 + CCCCCAGGCCGTTGGAGG
+chr14 55803701 55803716 -V_TAXCREB_02 4.88316e-06 - ATGACACACCTCCTC
+chr14 55977408 55977437 +V_MYOGNF1_01 2.62185e-07 + AACCTGCTTAGTTTTGCAAAGAGCCATCA
+chr14 56414760 56414771 +V_AP1_Q4 2.788e-06 + AGTGACTCACT
+chr14 56414796 56414808 -V_MYOD_01 4.86878e-06 - GGACAGGTGTCT
+chr14 56414801 56414810 +V_T3R_Q6 8.74404e-06 + CCTGTCCTG
+chr14 56414853 56414867 +V_GATA1_03 6.4708e-06 + ATCAAGATTAGGGC
+chr14 56414896 56414905 +V_SMAD3_Q6 7.33929e-06 + TGTCTGCCT
+chr14 56414903 56414918 +V_DMRT1_01 2.3432e-08 + CTGATACAATGTTGC
+chr14 56414905 56414920 -V_DMRT1_01 2.20757e-06 - CAGCAACATTGTATC
+chr14 57935655 57935674 +V_PU1_Q4 8.14738e-07 + ACCTCCCACTTCCTCCCCT
+chr14 57935656 57935671 -V_ETS1_B 1.25407e-06 - GGAGGAAGTGGGAGG
+chr14 57935658 57935668 +V_NKX25_Q5 8.11064e-06 + TCCCACTTCC
+chr14 57935658 57935670 +V_ETS_Q4 5.14007e-06 + TCCCACTTCCTC
+chr14 57935669 57935678 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr14 57935669 57935679 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr14 57935670 57935678 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr14 57935670 57935679 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr14 57935670 57935684 +V_KROX_Q6 1.2477e-06 + CCCTCCCCCTCCCC
+chr14 57935674 57935684 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr14 57935674 57935685 +V_SP1SP3_Q4 2.8432e-06 + CCCCCTCCCCC
+chr14 57935675 57935684 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr14 57935675 57935685 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr14 57935676 57935684 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr14 57935676 57935685 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr14 58351623 58351635 -V_OCT1_07 1.65282e-06 - TTTATGTTAATT
+chr14 58351624 58351634 -V_POU3F2_02 1.99833e-06 - TTATGTTAAT
+chr14 58351671 58351686 -V_OCT4_01 3.49929e-06 - CAGTGAAATGCAAAT
+chr14 58351695 58351714 +V_PU1_Q4 6.18667e-06 + AGCACTCAGTTCCTTTTCT
+chr14 58351775 58351788 +V_HFH3_01 1.70454e-06 + GGTTGTTTGTTTG
+chr14 63645474 63645485 +V_SMAD_Q6_01 6.8135e-06 + TAGGCAGACTC
+chr14 63645499 63645507 -V_CACD_01 9.89755e-06 - CCACACCC
+chr14 64119156 64119184 +V_PAX5_01 5.10617e-06 + CCTGGGAGCAAGGAAGGGTGGAGCCCAT
+chr14 64674057 64674069 +V_PAX4_03 2.70808e-06 + CACTCCCACCCC
+chr14 64674113 64674126 +V_SP1_Q6 3.23457e-06 + CAGGGGAGGGGCG
+chr14 64674114 64674124 -V_SP1_Q2_01 6.40385e-06 - CCCCTCCCCT
+chr14 64674114 64674127 +V_MAZR_01 8.35903e-06 + AGGGGAGGGGCGG
+chr14 64674115 64674123 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr14 64674115 64674124 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr14 64674115 64674125 +V_SP1_Q6_01 2.74385e-06 + GGGGAGGGGC
+chr14 64674193 64674211 +V_PAX8_B 8.15746e-06 + ACAGCCTTGGGTGGGGTG
+chr14 64674277 64674285 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr14 64674279 64674290 +V_EBF_Q6 4.00905e-06 + CTCCCCAGGGA
+chr14 64674305 64674320 +V_EVI1_04 7.84617e-06 + TGCAAAGATAAGATA
+chr14 64674305 64674321 +V_EVI1_01 1.55957e-06 + TGCAAAGATAAGATAA
+chr14 64674310 64674321 +V_EVI1_02 8.20464e-07 + AGATAAGATAA
+chr14 64674310 64674321 +V_EVI1_03 4.5052e-07 + AGATAAGATAA
+chr14 64674310 64674321 +V_EVI1_05 8.20464e-07 + AGATAAGATAA
+chr14 64674391 64674400 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr14 64674392 64674400 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr14 67381789 67381802 +V_NRF2_Q4 4.63559e-06 + ATGCAGAGTCACC
+chr14 67381809 67381822 +V_NRF2_Q4 4.63559e-06 + ATGCAGAGTCACC
+chr14 70385572 70385581 -V_SMAD_Q6 9.3359e-06 - AGACACCCT
+chr14 70385613 70385631 -V_NF1_Q6 3.13934e-06 - GGTTGGCCAGAGGCCCAA
+chr14 70457039 70457053 +V_ETS2_B 1.99939e-06 + GGCAGGAAACAAGT
+chr14 70457106 70457117 +V_CP2_01 6.65879e-07 + GCCCAACCCAG
+chr14 71366168 71366180 +V_PAX4_03 1.74945e-06 + CAGCCCCACCCC
+chr14 71366170 71366180 -V_SP1_Q6_01 4.32232e-06 - GGGGTGGGGC
+chr14 71366171 71366181 +V_SP1_Q2_01 9.56538e-06 + CCCCACCCCT
+chr14 71366186 71366201 -V_SREBP_Q6 8.07305e-06 - ACCCCCACCCCAGTG
+chr14 71366190 71366202 -V_PAX4_03 6.22761e-08 - AACCCCCACCCC
+chr14 71366196 71366213 -V_DR4_Q2 8.90285e-06 - TGGACTGCAGCAACCCC
+chr14 71366213 71366231 +V_CMYB_01 7.22789e-06 + GCCCAAGGCTGTTGGGAG
+chr14 71366294 71366307 -V_GATA1_04 6.24632e-06 - TCCTGATAAGGAG
+chr14 72551683 72551696 +V_HNF4ALPHA_Q6 1.19478e-06 + ATGAACCTTGAAC
+chr14 72551684 72551698 +V_COUP_01 7.27726e-07 + TGAACCTTGAACAT
+chr14 73170183 73170197 +V_DMRT7_01 5.18644e-06 + TTGTGACAGTGTTT
+chr14 73170232 73170246 -V_PAX6_Q2 2.35112e-06 - CTGACATGGAATTC
+chr14 73170322 73170333 -V_TGIF_01 1.20262e-06 - AGCTGTCACTA
+chr14 73170329 73170339 +V_ESE1_Q3 8.06007e-06 + AGCTTCCTGT
+chr14 73631537 73631552 +V_VDRRXR_01 1.93337e-06 + AGGTCAAAGGGTCCA
+chr14 73631570 73631579 +V_FOXO1_Q5 7.27852e-06 + AAAAACAAA
+chr14 75323958 75323967 -V_T3R_Q6 8.74404e-06 - CCTGTCCTG
+chr14 75323968 75323984 +V_AP2_Q3 2.64948e-06 + AGCCCCAGGCAGTGCC
+chr14 75767293 75767304 +V_EBF_Q6 4.00905e-06 + CTCCCCAGGGA
+chr14 75767491 75767503 -V_TTF1_Q6 1.06446e-06 - CCCTCAAGTGTT
+chr14 75767559 75767577 +V_MYOD_Q6_01 7.74036e-06 + TCGAAGCAGGTGGTGGCA
+chr14 75767562 75767574 +V_MYOD_01 7.90686e-06 + AAGCAGGTGGTG
+chr14 75767597 75767607 +V_MYB_Q6 5.43478e-06 + CCCAACTGCC
+chr14 76281786 76281800 -V_KROX_Q6 1.18892e-06 - CCAGCCCCCACACC
+chr14 76281789 76281800 +V_EGR_Q6 6.55683e-06 + GTGGGGGCTGG
+chr14 76281840 76281856 +V_NFKB_Q6_01 5.91669e-06 + AGCGGGGGAAGTCCAG
+chr14 76281898 76281910 +V_NFKB_C 6.36167e-06 + TGGGACATTCCA
+chr14 76281917 76281947 -V_PAX4_04 4.90448e-08 - GAAAAAAACCCAGGCTGCAGCCTTCACCCC
+chr14 76667064 76667079 -V_OCT4_01 7.41924e-06 - TATTCAAATGCTAAA
+chr14 76982164 76982174 -V_TBX5_Q5 1.65463e-06 - CTCACACCTG
+chr14 77071286 77071301 +V_DMRT1_01 1.89847e-08 + TTGATACATTGTAGC
+chr14 77071288 77071303 -V_DMRT1_01 1.3484e-06 - CAGCTACAATGTATC
+chr14 77071330 77071359 +V_MYOGNF1_01 3.9147e-06 + TACCTGTTGCTTCTGGTTGGGTGGCTGGA
+chr14 77650639 77650654 -V_VDR_Q3 9.00638e-06 - GGGGGACCCAGGTGA
+chr14 77650705 77650720 -V_OCT4_02 5.14438e-08 - TTTGTGATGCTAATG
+chr14 77650706 77650721 -V_OCT4_01 8.76645e-07 - CTTTGTGATGCTAAT
+chr14 77650756 77650767 -V_EBF_Q6 5.82411e-06 - TTCCCCTGGGT
+chr14 77650763 77650780 +V_PU1_01 1.2508e-06 + GGAAAGGGGAACTGTGG
+chr14 77919658 77919676 +V_GCNF_01 9.7811e-06 + CCTGAATTCAAGGTCAGC
+chr14 77919661 77919675 -V_PAX6_Q2 1.36823e-06 - CTGACCTTGAATTC
+chr14 77919663 77919675 -V_LRH1_Q5 6.8178e-06 - CTGACCTTGAAT
+chr14 77919665 77919674 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr14 86795968 86795983 -V_OCT4_01 4.01204e-06 - CTTTAACATGTAAAT
+chr14 86795991 86796014 -V_OCT1_04 8.86405e-07 - TCTTTGCTATGCAAATCAAACCA
+chr14 86795995 86796008 +V_OCT_C 5.64798e-06 + TTGATTTGCATAG
+chr14 86795996 86796007 +V_OCT1_Q5_01 3.69944e-07 + TGATTTGCATA
+chr14 86795996 86796007 +V_OCT_Q6 3.69944e-07 + TGATTTGCATA
+chr14 86795997 86796007 -V_OCT1_B 1.34745e-06 - TATGCAAATC
+chr14 86795998 86796013 -V_OCT4_01 2.28618e-06 - CTTTGCTATGCAAAT
+chr14 86796037 86796056 -V_PAX2_01 9.50944e-06 - TCTTGTCATGCATGCGGAT
+chr14 98910362 98910379 +V_PU1_01 1.14463e-06 + AAAATAGGGAAGTTGGG
+chr14 98910364 98910380 +V_MAF_Q6 3.11929e-06 + AATAGGGAAGTTGGGT
+chr14 99386418 99386429 +V_AP1FJ_Q2 3.08232e-06 + GGTGACTCAAT
+chr14 99386418 99386429 +V_AP1_Q6 5.6407e-06 + GGTGACTCAAT
+chr14 99386420 99386432 +V_AP1_Q2_01 2.73244e-06 + TGACTCAATGTG
+chr14 99754807 99754815 +V_CACD_01 9.89755e-06 + CCACACCC
+chr14 99936644 99936658 -V_DMRT7_01 8.25824e-07 - TTGTTACAGTTTAG
+chr14 99936645 99936660 -V_DMRT5_01 2.72566e-06 - GCTTGTTACAGTTTA
+chr14 99936662 99936671 -V_EVI1_06 5.97675e-06 - ACAAGATAA
+chr14 99936668 99936681 -V_SOX_Q6 5.25102e-06 - CTCTTTGTTCACA
+chr14 99936712 99936727 -V_CP2_02 5.19969e-06 - GCTGGTTCCATCCGC
+chr14 100749341 100749361 +V_YY1_02 5.33647e-08 + GCACGGCCATCTGCCCTGGT
+chr14 100749351 100749365 +V_PAX6_Q2 4.94834e-06 + CTGCCCTGGTACTC
+chr14 100749397 100749412 -V_OCT4_01 7.41924e-06 - CTTTCTCATTCAAAC
+chr14 105419411 105419426 -V_OCT4_02 2.41403e-06 - ATTGTCATGTTAATT
+chr14 105419412 105419427 -V_OCT4_01 7.49108e-07 - CATTGTCATGTTAAT
+chr14 105419474 105419487 +V_ALX4_01 9.59891e-06 + CTTGAGGATAATC
+chr14 112371342 112371355 +V_STAT_Q6 8.60737e-06 + CCCAGTTCTGGGA
+chr14 112371344 112371359 +V_STAT5A_01 6.37009e-06 + CAGTTCTGGGAAACA
+chr14 112371345 112371358 -V_STAT1STAT1_Q3 8.1888e-06 - GTTTCCCAGAACT
+chr14 112371347 112371371 -V_STAT5A_02 5.06938e-07 - TTCCTAGAGCTCTGTTTCCCAGAA
+chr14 114026119 114026139 +V_FOXP1_01 6.51561e-06 + CTCTTTGTCTTTGTTTGTTT
+chr14 114026127 114026140 +V_HFH8_01 7.51918e-06 + CTTTGTTTGTTTG
+chr14 114026127 114026140 +V_HFH4_01 4.93261e-06 + CTTTGTTTGTTTG
+chr14 114026128 114026141 -V_HNF3_Q6 8.74112e-06 - ACAAACAAACAAA
+chr14 114092318 114092334 -V_EVI1_01 9.76601e-06 - AGACAAGATCAGCTTA
+chr14 114092323 114092334 -V_EVI1_02 6.73539e-06 - AGACAAGATCA
+chr14 114092323 114092339 -V_EVI1_01 1.61473e-06 - TCACAAGACAAGATCA
+chr14 114174986 114174998 +V_ETS_Q4 7.92948e-06 + TGCCACATCCTG
+chr14 114186976 114186988 +V_ELF1_Q6 4.74145e-06 + GAAACAGGAAAT
+chr14 114187006 114187020 -V_KROX_Q6 6.53311e-06 - CCCTCCCCCCCACC
+chr14 114187007 114187018 +V_EGR_Q6 3.00131e-06 + GTGGGGGGGAG
+chr14 114620272 114620288 -V_NFY_01 3.96614e-06 - CTTAGCCAATCACAGA
+chr14 114620275 114620286 -V_NFY_Q6 8.57006e-07 - TAGCCAATCAC
+chr14 114620276 114620289 -V_NFY_Q6_01 2.85389e-07 - ACTTAGCCAATCA
+chr14 114620365 114620378 +V_AP2_Q6_01 4.11454e-06 + CAGCCCTCAGGCT
+chr14 117268819 117268834 -V_TATA_01 7.88032e-06 - CTATAAAAAAGAGGG
+chr14 117268825 117268835 -V_TATA_C 7.61768e-06 - CCTATAAAAA
+chr14 117268861 117268873 +V_OCT1_07 2.92381e-06 + AGTATGTTAATT
+chr14 117269369 117269382 +V_OCT_C 5.64798e-06 + CTCATTTGCATCT
+chr14 117269369 117269383 +V_OCT1_05 8.48471e-06 + CTCATTTGCATCTC
+chr14 117269369 117269384 -V_OCT1_Q6 3.8164e-06 - AGAGATGCAAATGAG
+chr14 117269492 117269506 +V_NFY_C 2.60409e-06 + CCTGATTGGTAAAA
+chr14 118237189 118237200 +V_PAX_Q6 9.42649e-06 + CTGGGACACAC
+chr14 118652829 118652842 +V_HSF_Q6 2.81328e-06 + TTCCAGAGACTTC
+chr14 118652849 118652858 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr14 119376631 119376640 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr14 119376632 119376644 -V_PAX4_03 2.12865e-06 - AATGCCCACCCC
+chr14 119376807 119376822 +V_OCT4_01 7.94702e-06 + TTTTCAGATGCAAAG
+chr14 119376808 119376823 +V_OCT4_02 8.01355e-06 + TTTCAGATGCAAAGG
+chr14 119376906 119376916 +V_SP1_Q2_01 9.56538e-06 + CCCCTCCCAC
+chr14 119376907 119376917 -V_IK_Q5 4.33614e-06 - GGTGGGAGGG
+chr14 119376927 119376946 +V_GR_Q6 1.17494e-06 + GTGCCTCATTGTGTTCTTC
+chr14 120295494 120295518 -V_COMP1_01 7.06784e-07 - TCTGAAGATAGGCGAGGACAGATG
+chr14 120295552 120295561 -V_AP2ALPHA_01 9.68294e-06 - GCCCGAGGC
+chr14 120295617 120295629 -V_HNF6_Q6 6.78715e-06 - ATAAATCAATCA
+chr14 121484389 121484407 +V_HNF3_Q6_01 8.19906e-06 + GCCATTGTTTGCTCGTTT
+chr14 121529785 121529795 -V_TITF1_Q3 5.57537e-06 - TCTCAAGTGT
+chr14 121529810 121529820 +V_P53_DECAMER_Q2 8.50103e-06 + GGACAAGTCC
+chr14 122012892 122012902 +V_NKX25_Q5 8.11064e-06 + CCCCACTTGA
+chr14 122012921 122012932 +V_EGR_Q6 3.55693e-06 + GTGGGGGCAGA
+chr14 122012941 122012956 +V_DMRT1_01 1.88888e-06 + TTGCAACACTGTTGC
+chr14 122012943 122012958 -V_DMRT1_01 9.55793e-06 - TAGCAACAGTGTTGC
+chr14 122654828 122654839 -V_E12_Q6 7.75461e-06 - GGCAGGTGTAG
+chr14 122654831 122654839 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr14 122654859 122654871 -V_LMO2COM_01 9.95431e-06 - CGACAGCTGCAG
+chr14 122654873 122654888 -V_OCT4_01 9.65557e-06 - CTTAGTCTTGCAAAT
+chr14 122676586 122676614 +V_PAX5_01 4.92666e-06 + CCCCGGTGGAGGGGTGGGGAGAGTCACC
+chr14 122676595 122676605 -V_SP1_Q2_01 9.56538e-06 - CCCCACCCCT
+chr14 122676637 122676652 +V_OCT4_01 2.83977e-06 + CATTGATGTGCAAAT
+chr14 122740933 122740943 +V_MYOD_Q6 6.66004e-06 + TCCACCTGCC
+chr14 122740934 122740948 +V_E2A_Q2 1.24142e-07 + CCACCTGCCTCTGC
+chr14 122740935 122740943 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr14 122741003 122741011 -V_CACD_01 9.89755e-06 - CCACACCC
+chr14 122741012 122741021 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr14 122741033 122741047 +V_ETS2_B 5.62369e-06 + AGCAGGAAGCCTGT
+chr14 122741052 122741064 -V_GFI1B_01 8.15685e-07 - TAAATCACAGCA
+chr14 122741328 122741342 -V_NFY_C 8.88045e-06 - GCTGATTGTCTAGT
+chr14 122741346 122741357 -V_LEF1TCF1_Q4 1.10645e-06 - CCTTTGATCTT
+chr14 122741348 122741358 +V_LEF1_Q2_01 5.84716e-06 + GATCAAAGGC
+chr14 123303156 123303165 -V_AP1_C 7.33929e-06 - GTGAGTCAG
+chr14 123303304 123303324 +V_FOXP1_01 4.50341e-06 + GTTTTTGTTTTGTTTTGTTT
+chr14 123303309 123303329 +V_FOXP1_01 4.50341e-06 + TGTTTTGTTTTGTTTTGTTT
+chr15 3534553 3534562 +V_AP2ALPHA_01 6.01835e-06 + GCCCCGGGG
+chr15 3534553 3534562 +V_AP2GAMMA_01 4.51376e-06 + GCCCCGGGG
+chr15 3534554 3534563 -V_AP2ALPHA_01 6.01835e-06 - GCCCCGGGG
+chr15 3534554 3534563 -V_AP2GAMMA_01 4.51376e-06 - GCCCCGGGG
+chr15 3534595 3534605 -V_EBOX_Q6_01 7.92622e-06 - CCACATGACC
+chr15 3534595 3534607 -V_USF_Q6_01 7.96456e-06 - GACCACATGACC
+chr15 3534609 3534627 +V_HNF3_Q6_01 2.78085e-08 + TTTACTGTTTGCTTTGTT
+chr15 3534609 3534627 -V_FOXJ2_01 6.14764e-06 - AACAAAGCAAACAGTAAA
+chr15 3534611 3534624 +V_FOX_Q2 7.45051e-06 + TACTGTTTGCTTT
+chr15 3534612 3534625 -V_HNF3_Q6 8.29694e-07 - CAAAGCAAACAGT
+chr15 5085237 5085247 -V_NCX_01 2.56319e-06 - TGGTAAGTGG
+chr15 5085244 5085257 -V_GATA1_04 2.34959e-06 - AGCAGATAAGTGG
+chr15 5085281 5085294 +V_NFY_Q6_01 9.01066e-06 + TACTAGCCAATCA
+chr15 5085282 5085296 -V_NFY_C 1.19592e-08 - CCTGATTGGCTAGT
+chr15 5085282 5085298 +V_NFY_01 7.70761e-07 + ACTAGCCAATCAGGGA
+chr15 5085284 5085295 +V_ALPHACP1_01 5.68927e-06 + TAGCCAATCAG
+chr15 5085284 5085295 +V_NFY_Q6 1.60535e-06 + TAGCCAATCAG
+chr15 5085303 5085316 +V_SP1_Q6 8.16238e-06 + CAGGGGAGGGGGC
+chr15 5085304 5085314 -V_SP1_Q2_01 6.40385e-06 - CCCCTCCCCT
+chr15 5085305 5085313 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr15 5085305 5085314 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr15 5085305 5085315 +V_SP1_Q6_01 8.48538e-06 + GGGGAGGGGG
+chr15 5085305 5085318 +V_MAZR_01 3.8307e-06 + GGGGAGGGGGCAA
+chr15 5085305 5085319 -V_KROX_Q6 7.56123e-06 - GTTGCCCCCTCCCC
+chr15 5085319 5085334 -V_OCT4_01 6.02107e-06 - CTTTGTTGTGTAAAT
+chr15 5085333 5085341 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr15 5085333 5085344 +V_E12_Q6 7.75461e-06 + GGCAGGTGTAG
+chr15 5099257 5099272 -V_DMRT1_01 7.56504e-06 - CTGTTACTTTGTTTT
+chr15 5845851 5845864 -V_P50P50_Q3 8.8244e-06 - GAGGGAATCCCAT
+chr15 5845899 5845917 -V_SRF_Q4 1.76483e-06 - CCCAAATAAGGGAATATA
+chr15 5845901 5845916 -V_SRF_Q5_01 5.01188e-06 - CCAAATAAGGGAATA
+chr15 5845901 5845920 +V_SRF_Q5_02 1.36621e-06 + TATTCCCTTATTTGGGAAT
+chr15 5845902 5845920 +V_SRF_01 8.92246e-07 + ATTCCCTTATTTGGGAAT
+chr15 5845902 5845920 -V_SRF_01 8.92246e-07 - ATTCCCAAATAAGGGAAT
+chr15 5845904 5845918 -V_SRF_Q6 4.42983e-06 - TCCCAAATAAGGGA
+chr15 6504673 6504688 +V_DMRT1_01 1.11988e-06 + TGGATACTATGTTGC
+chr15 6504697 6504718 -V_STAT3_01 3.07793e-06 - TTTTATTTCAGGGAAGTCAAA
+chr15 6578767 6578779 -V_NKX62_Q2 5.20822e-06 - GAAATAATTATT
+chr15 6578806 6578821 +V_OCT4_01 8.48593e-06 + CTTTGTCATTGAAAT
+chr15 6578807 6578822 +V_OCT4_02 9.71581e-06 + TTTGTCATTGAAATG
+chr15 6578812 6578827 +V_OCT4_01 4.91956e-06 + CATTGAAATGGAAAC
+chr15 7010738 7010760 -V_MEF2_02 4.51426e-06 - ACACCAGCTATAAATAGGACAC
+chr15 7010738 7010760 -V_MEF2_03 5.64731e-06 - ACACCAGCTATAAATAGGACAC
+chr15 7130728 7130746 +V_LXR_Q3 8.98063e-06 + AGGGGTCAAGGCCGGGCG
+chr15 7130729 7130746 -V_DR4_Q2 1.52587e-06 - CGCCCGGCCTTGACCCC
+chr15 7130730 7130746 -V_LXR_DR4_Q3 1.37159e-06 - CGCCCGGCCTTGACCC
+chr15 11962398 11962413 +V_OCT4_01 5.75922e-07 + TATTCTAATGCTAAT
+chr15 11962399 11962414 +V_OCT4_02 7.51249e-06 + ATTCTAATGCTAATT
+chr15 11962438 11962452 +V_MTF1_Q4 9.78336e-06 + TCTGCACATAGCCC
+chr15 11962458 11962466 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr15 11962458 11962467 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr15 11962460 11962471 -V_EGR_Q6 3.00131e-06 - GTGGGGGGGAG
+chr15 11962483 11962494 -V_NFY_Q6 7.17826e-06 - TCACCAATCAC
+chr15 14203721 14203731 -V_PARP_Q3 1.10645e-06 - TGGGAAATAG
+chr15 14203722 14203737 +V_STAT5B_01 8.46536e-06 + TATTTCCCAGAACTG
+chr15 14203722 14203737 -V_STAT5A_01 3.93816e-06 - CAGTTCTGGGAAATA
+chr15 14203780 14203794 -V_NFY_C 5.20945e-07 - TCTGATTGGCTGCC
+chr15 14203780 14203796 +V_NFY_01 2.79702e-07 + GGCAGCCAATCAGAAG
+chr15 14203782 14203793 +V_ALPHACP1_01 5.77866e-07 + CAGCCAATCAG
+chr15 14203801 14203813 -V_LMO2COM_01 2.70597e-06 - GGCCAGGTGGTG
+chr15 14203803 14203813 +V_EBOX_Q6_01 6.43409e-06 + CCACCTGGCC
+chr15 14203824 14203837 +V_AP1_01 3.50586e-07 + CAATGAGTCAGCA
+chr15 14203825 14203836 -V_AP1_Q2 7.83818e-06 - GCTGACTCATT
+chr15 14203825 14203836 -V_AP1_Q6 2.98654e-06 - GCTGACTCATT
+chr15 14203826 14203835 +V_AP1_C 4.03003e-06 + ATGAGTCAG
+chr15 14203826 14203837 -V_NFE2_01 1.48643e-06 - TGCTGACTCAT
+chr15 14203842 14203870 -V_PAX5_01 7.78234e-06 - TCCAGAACCAGTGTTGAGGGGCCTGAAA
+chr15 14203866 14203878 -V_NFKB_C 7.38002e-06 - GGGGACTGTCCA
+chr15 15547968 15547980 -V_OCT1_07 5.15763e-06 - GATATGGTAATT
+chr15 23034525 23034538 +V_STAT_Q6 3.27105e-06 + TACTTTTCTTGGA
+chr15 23034557 23034570 -V_MAZR_01 2.79447e-06 - GGGGAGGGGGACA
+chr15 23034560 23034570 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr15 23034560 23034571 +V_SP1SP3_Q4 2.8432e-06 + CCCCCTCCCCC
+chr15 23034561 23034570 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr15 23034561 23034571 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr15 23034562 23034570 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr15 23034562 23034571 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr15 23034562 23034576 +V_KROX_Q6 4.70749e-06 + CCCTCCCCCAACCC
+chr15 24459997 24460006 -V_SMAD3_Q6 7.33929e-06 - TGTCTGCCT
+chr15 24460063 24460086 -V_COUPTF_Q6 2.45741e-06 - TTCATTGACCCCTGCCCTTTAAT
+chr15 24460067 24460081 -V_COUP_01 2.73931e-06 - TGACCCCTGCCCTT
+chr15 24460068 24460081 +V_DR1_Q3 3.32775e-06 + AGGGCAGGGGTCA
+chr15 24460068 24460081 -V_PPAR_DR1_Q2 4.57755e-06 - TGACCCCTGCCCT
+chr15 24460068 24460081 -V_HNF4_DR1_Q3 7.97346e-06 - TGACCCCTGCCCT
+chr15 24460068 24460081 -V_COUP_DR1_Q6 6.2921e-06 - TGACCCCTGCCCT
+chr15 24460068 24460082 +V_HNF4_Q6_01 7.37368e-06 + AGGGCAGGGGTCAA
+chr15 24460074 24460086 +V_PXR_Q2 1.74311e-06 + GGGGTCAATGAA
+chr15 24460074 24460091 -V_DR4_Q2 8.00764e-06 - TCACCTTCATTGACCCC
+chr15 24460075 24460091 -V_LXR_DR4_Q3 9.80886e-06 - TCACCTTCATTGACCC
+chr15 25261928 25261943 -V_IRF_Q6 5.72126e-06 - CACGTTTTCATTTCC
+chr15 25261973 25261984 +V_EGR_Q6 9.84646e-06 + GTGGGCGCGTG
+chr15 25261974 25261987 +V_ZF5_B 6.09985e-06 + TGGGCGCGTGCAT
+chr15 25261994 25262013 +V_OCT1_01 7.25529e-06 + TTGCATATGGAAATCTGGG
+chr15 25262052 25262071 -V_PPARA_02 4.81437e-06 - CAGGGTCACAGAGGTTAAC
+chr15 25683803 25683812 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr15 25683840 25683850 +V_IK_Q5 4.33614e-06 + TCTGGGAGGG
+chr15 25683926 25683937 -V_E12_Q6 4.37943e-06 - AGCAGGTGGCA
+chr15 25684529 25684543 +V_KROX_Q6 7.21197e-06 + TGCTCCCCCACCCC
+chr15 25684531 25684543 +V_PAX4_03 3.63034e-06 + CTCCCCCACCCC
+chr15 25684533 25684544 +V_SP1SP3_Q4 8.91927e-06 + CCCCCACCCCC
+chr15 25684534 25684544 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr15 25684535 25684544 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr15 25684581 25684596 +V_OCT4_02 6.55103e-06 + ATTCTCATTCTGAAC
+chr15 27863223 27863233 +V_NCX_01 2.56319e-06 + TGGTAAGTGG
+chr15 27863235 27863250 -V_OCT4_01 9.05006e-06 - CATTCTTATTCAAAG
+chr15 27971348 27971361 +V_MAZR_01 5.68389e-06 + GCAGGAGGGGCCA
+chr15 31303507 31303515 +V_CACD_01 9.89755e-06 + CCACACCC
+chr15 31303513 31303522 +V_T3R_Q6 8.74404e-06 + CCTGTCCTC
+chr15 31303555 31303571 -V_MAF_Q6 6.87271e-06 - AGAAGGGAAGTGGGGC
+chr15 31303621 31303633 -V_LMO2COM_01 3.81592e-06 - CTCCAGGTGCTC
+chr15 31498393 31498421 +V_PAX5_01 2.2726e-06 + GACAGGCCCAGGGCAGAGTGCCAGGCTC
+chr15 31498533 31498546 -V_MAZR_01 3.32118e-06 - GGGGGAGGGGCAG
+chr15 31498534 31498547 -V_SP1_Q6 5.21945e-06 - CGGGGGAGGGGCA
+chr15 31498535 31498545 -V_SP1_Q6_01 2.74385e-06 - GGGGAGGGGC
+chr15 31498536 31498545 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr15 31498536 31498546 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr15 31498537 31498545 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr15 31498537 31498546 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr15 31498537 31498550 +V_AP2_Q6_01 4.54811e-06 + CCCTCCCCCGGCT
+chr15 31498545 31498566 +V_STAT3_01 8.5012e-06 + CGGCTTTTCCCGGGAATGCAG
+chr15 31498545 31498566 -V_STAT1_01 9.8683e-06 - CTGCATTCCCGGGAAAAGCCG
+chr15 31498545 31498566 -V_STAT3_01 5.94592e-06 - CTGCATTCCCGGGAAAAGCCG
+chr15 31498547 31498561 -V_STAT3STAT3_Q3 2.92126e-06 - TTCCCGGGAAAAGC
+chr15 33938358 33938367 +V_HNF4_Q6 7.33929e-06 + AAGGTCCAA
+chr15 36929522 36929533 +V_CP2_01 5.25662e-06 + GCACGAGCCAG
+chr15 36929523 36929537 -V_E2A_Q2 1.16727e-06 - CCACCTGGCTCGTG
+chr15 36929524 36929542 +V_MYOD_Q6_01 8.69034e-06 + ACGAGCCAGGTGGTCAGA
+chr15 37068132 37068142 +V_TAL1_Q6 3.01332e-06 + TCCATCTGCC
+chr15 37068146 37068156 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr15 37068147 37068156 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr15 37068206 37068219 -V_GATA1_04 6.24632e-06 - TTCTGATAAGGAC
+chr15 37068228 37068238 +V_LEF1_Q2_01 5.84716e-06 + CATCAAAGGC
+chr15 37068249 37068261 +V_NANOG_01 7.60378e-06 + GAGGCCATTTAC
+chr15 37068259 37068272 -V_MAZR_01 5.4366e-06 - GGGGGGGGGGTGT
+chr15 37068261 37068272 +V_SP1SP3_Q4 3.19906e-06 + ACCCCCCCCCC
+chr15 37068262 37068271 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr15 37068262 37068273 +V_SP1SP3_Q4 3.76147e-06 + CCCCCCCCCCA
+chr15 37068263 37068272 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr15 37068268 37068285 -V_PU1_01 6.15878e-06 - TTAAAAGGGAACTGGGG
+chr15 37104866 37104884 -V_AHR_01 8.63797e-06 - GCCCAGACTGGCCTGAAA
+chr15 37126383 37126393 +V_ESE1_Q3 2.21291e-06 + TGTTTCCTGT
+chr15 37126439 37126452 -V_AP2_Q6_01 1.66582e-06 - CAGCCCTCAGGCC
+chr15 37126487 37126500 +V_AP2_Q6_01 6.77812e-06 + CTGCCCCCAGGCA
+chr15 37126489 37126505 +V_AP2_Q3 2.15942e-06 + GCCCCCAGGCATGGGC
+chr15 37254541 37254555 -V_FXR_Q3 8.7899e-06 - TAGCTTCATTGACC
+chr15 37254567 37254576 +V_SMAD_Q6 9.3359e-06 + AGACACCAC
+chr15 37254581 37254596 +V_SREBP_Q6 8.95186e-06 + TCTCTCACCCCACCT
+chr15 37254581 37254596 +V_SREBP1_Q5 3.68302e-06 + TCTCTCACCCCACCT
+chr15 37254652 37254663 -V_EBF_Q6 7.15927e-06 - GTCCCCTGAGG
+chr15 38007445 38007456 +V_TGIF_01 7.64014e-06 + AGCTGTCAAAT
+chr15 38083862 38083873 -V_CP2_01 8.6781e-06 - GCCCTCCCCAG
+chr15 38083864 38083872 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr15 38083864 38083873 -V_CKROX_Q2 3.66459e-06 - GCCCTCCCC
+chr15 38212102 38212123 +V_PPARG_01 2.83176e-06 + GCTGGGGGCCAAGGTCAAGTT
+chr15 38212106 38212119 +V_DR1_Q3 3.04643e-06 + GGGGCCAAGGTCA
+chr15 38212106 38212119 -V_PPAR_DR1_Q2 2.31043e-06 - TGACCTTGGCCCC
+chr15 38212106 38212119 -V_HNF4_DR1_Q3 9.09944e-06 - TGACCTTGGCCCC
+chr15 38212106 38212119 -V_COUP_DR1_Q6 4.61789e-06 - TGACCTTGGCCCC
+chr15 38212109 38212127 +V_GCNF_01 3.68477e-06 + GCCAAGGTCAAGTTTCCA
+chr15 38212110 38212119 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr15 38212110 38212120 -V_NUR77_Q5 8.43564e-06 - TTGACCTTGG
+chr15 38212118 38212128 -V_NFAT_Q4_01 4.46892e-06 - GTGGAAACTT
+chr15 38212140 38212151 -V_ALPHACP1_01 4.48665e-06 - CAGCCACTGAG
+chr15 38212175 38212187 -V_GLI_Q2 3.60332e-07 - CCTGGGTGGTCG
+chr15 38212176 38212185 -V_ZIC1_01 2.71739e-06 - TGGGTGGTC
+chr15 38212176 38212185 -V_ZIC2_01 4.94877e-06 - TGGGTGGTC
+chr15 38212176 38212185 -V_ZIC3_01 2.71739e-06 - TGGGTGGTC
+chr15 38212184 38212193 -V_SMAD_Q6 9.3359e-06 - AGACACCCT
+chr15 38212190 38212204 +V_MTF1_Q4 1.16369e-06 + TCTGCACACTGGCC
+chr15 39305027 39305043 -V_NFY_01 2.68498e-06 - CCCAGCCAATGGGGAA
+chr15 39305030 39305041 -V_ALPHACP1_01 4.48665e-06 - CAGCCAATGGG
+chr15 39305031 39305044 -V_NFY_Q6_01 9.89171e-06 - ACCCAGCCAATGG
+chr15 39305059 39305072 +V_NKX61_01 1.97068e-06 + TATTTAATTGGCT
+chr15 39305095 39305123 +V_PAX5_02 5.89942e-06 + GGAAAGGAGCCTGAAAGGGGACCATTAC
+chr15 39305156 39305171 +V_STAT5B_01 9.87221e-06 + GAATTCCTGGAATGA
+chr15 41703433 41703448 -V_SMAD4_Q6 8.67808e-07 - CTCAGGCAGCCAACT
+chr15 41714212 41714223 +V_ER_Q6_02 4.31756e-06 + CAGGTCACCCC
+chr15 41714212 41714224 +V_SREBP_Q3 3.44063e-06 + CAGGTCACCCCA
+chr15 41714212 41714227 +V_SREBP_Q6 2.43347e-07 + CAGGTCACCCCAGGC
+chr15 41714212 41714227 +V_SREBP1_Q5 1.00253e-06 + CAGGTCACCCCAGGC
+chr15 41714262 41714277 -V_OCT4_01 6.02107e-06 - CATTGAAATGGTAAT
+chr15 41714322 41714335 +V_NRF2_Q4 1.79202e-06 + ATGCAGAGTCATC
+chr15 41714323 41714334 +V_MAF_Q6_01 4.72643e-06 + TGCAGAGTCAT
+chr15 43510550 43510565 -V_STAT5B_01 4.0278e-06 - TTTTTCCTGGAACTG
+chr15 43510564 43510580 -V_AP2_Q3 7.62107e-06 - GCCCCAGGGCTGTGTT
+chr15 43510573 43510588 +V_SMAD4_Q6 2.88375e-06 + CTGGGGCAGCCAGTC
+chr15 43510587 43510598 +V_FLI1_Q6 7.204e-06 + CAGGAAGTGCT
+chr15 43510637 43510653 +V_NFKB_Q6_01 2.59288e-06 + ATTCTGGAAAGTCCCC
+chr15 43510640 43510654 -V_NFKB_Q6 3.01925e-07 - TGGGGACTTTCCAG
+chr15 43510641 43510653 -V_NFKB_C 4.61793e-08 - GGGGACTTTCCA
+chr15 43510642 43510652 -V_NFKAPPAB65_01 4.05532e-06 - GGGACTTTCC
+chr15 43510642 43510652 -V_CREL_01 6.18085e-06 - GGGACTTTCC
+chr15 43510642 43510652 -V_NFKAPPAB_01 3.01332e-06 - GGGACTTTCC
+chr15 43798304 43798315 -V_E12_Q6 6.79903e-06 - AGCAGGTGCAG
+chr15 43798347 43798363 +V_MAF_Q6 9.69229e-06 + TGGAAGGGAGTGTTCA
+chr15 43816729 43816740 -V_EBF_Q6 2.83527e-06 - GTCCCTAGAGA
+chr15 43816734 43816746 +V_NFKB_C 4.56464e-06 + AGGGACATTCCA
+chr15 43816827 43816837 -V_EBOX_Q6_01 6.43409e-06 - CCACCTGGCC
+chr15 55098268 55098285 +V_FOXP3_Q4 6.97443e-06 + AAGGTGTGGTTTCTGAC
+chr15 55098287 55098298 -V_EGR_Q6 1.38101e-06 - GTGGGGGCAGG
+chr15 55098287 55098301 +V_KROX_Q6 2.09798e-07 + CCTGCCCCCACCCC
+chr15 55098292 55098302 +V_SP1_Q2_01 8.14617e-06 + CCCCACCCCG
+chr15 55098323 55098338 -V_OCT4_01 2.45515e-06 - CTTTGATATGTAAAA
+chr15 57608372 57608387 +V_EVI1_04 1.16107e-06 + AGATAAGAATAGAAA
+chr15 57608372 57608388 +V_EVI1_01 5.83214e-06 + AGATAAGAATAGAAAA
+chr15 57608487 57608502 +V_DMRT1_01 7.56504e-06 + TTGTTACTTTGTTAC
+chr15 57608492 57608505 -V_DMRT4_01 7.19979e-06 - AAAGTAACAAAGT
+chr15 57608495 57608510 +V_DMRT1_01 7.56504e-06 + TTGTTACTTTGTTAC
+chr15 57822415 57822430 -V_DMRT1_01 6.25574e-06 - CTGTGACAATGTTTT
+chr15 57822437 57822448 -V_E12_Q6 6.12239e-06 - AGCAGGTGTCA
+chr15 57822448 57822459 +V_PITX2_Q2 5.53227e-07 + TGTAATCCCAG
+chr15 57822532 57822547 -V_DMRT1_01 1.3484e-06 - TGGCTACTTTGTTTC
+chr15 58218538 58218547 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr15 58218538 58218548 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr15 58218538 58218549 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr15 58218539 58218551 -V_PAX4_03 2.40392e-07 - CACCCCCACCCC
+chr15 58218539 58218553 -V_KROX_Q6 2.21131e-07 - CCCACCCCCACCCC
+chr15 58218539 58218569 -V_PAX4_04 1.99068e-06 - GGAATTCCACCCCACCCCCACCCCCACCCC
+chr15 58218542 58218553 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr15 58218544 58218553 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr15 58218544 58218554 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr15 58218544 58218555 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr15 58218545 58218557 -V_PAX4_03 2.40392e-07 - CACCCCCACCCC
+chr15 58218545 58218559 -V_KROX_Q6 2.21131e-07 - CCCACCCCCACCCC
+chr15 58218548 58218559 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr15 58218549 58218562 +V_SP1_Q6 7.54104e-06 + TGGGGGTGGGGTG
+chr15 58940719 58940731 +V_GATA4_Q3 4.32928e-06 + AGATAAAAGGAA
+chr15 58940786 58940799 -V_MAZR_01 6.86006e-06 - AGAGGTGGGGCCA
+chr15 58940852 58940865 +V_STAT_Q6 8.60737e-06 + GGCTTTTCTGGTA
+chr15 59029469 59029491 -V_MEF2_02 2.51772e-06 - CAGCAGGTTATAAATAGCCCAG
+chr15 59029472 59029484 +V_MEF2_Q6_01 4.36173e-06 + GGCTATTTATAA
+chr15 59029511 59029523 -V_LMO2COM_01 6.44862e-06 - GGCCAGCTGCAG
+chr15 59126336 59126350 -V_BLIMP1_Q6 4.33883e-06 - AGACAGTGAAACTA
+chr15 61842370 61842389 -V_NRSF_Q4 6.41631e-06 - GTACTGTTCCCTGAGCTGT
+chr15 64127017 64127033 -V_AP2_Q3 6.40204e-06 - GCCCCCAGCCAGAGTC
+chr15 65049668 65049682 -V_FOXO4_02 8.50873e-06 - ATGTTGTTAACCAG
+chr15 65049688 65049703 -V_OCT4_01 5.63049e-06 - CATTCTTATTCAAAC
+chr15 65090545 65090560 +V_OCT4_01 9.436e-07 + TATTCAAATGCAGAT
+chr15 65090564 65090574 -V_NKX22_01 4.33582e-06 - TTAAGTAGTT
+chr15 65090602 65090622 +V_FOXP1_01 8.15563e-06 + ATGCTTGTATTGTGTTGTTT
+chr15 68327295 68327304 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr15 68327298 68327313 +V_VDRRXR_01 5.81662e-07 + AGGTCACAGAGTTCC
+chr15 68327306 68327320 -V_PAX6_Q2 2.11035e-06 - CTGTTCTGGAACTC
+chr15 68327367 68327378 +V_LEF1TCF1_Q4 1.10645e-06 + CCTTTGATCTT
+chr15 72810718 72810730 -V_LRH1_Q5 9.2187e-06 - GTGGCCTTGGAT
+chr15 72810724 72810735 -V_E12_Q6 4.37943e-06 - GACAGGTGGCC
+chr15 72810725 72810735 +V_MYOD_Q6 5.43478e-06 + GCCACCTGTC
+chr15 72810726 72810736 +V_EBOX_Q6_01 4.06927e-06 + CCACCTGTCC
+chr15 72810776 72810788 -V_PBX_Q3 7.94531e-06 - GATTGATGATTG
+chr15 73277441 73277452 +V_FLI1_Q6 9.02891e-06 + CAGGAAGTCCT
+chr15 73277480 73277497 -V_PPARG_03 4.00213e-06 - TTCCAGGACAAAGGCGA
+chr15 73277523 73277535 -V_TTF1_Q6 2.60851e-06 - CCCACAAGAGGC
+chr15 73277554 73277571 -V_NF1_Q6_01 1.05664e-06 - AAGGCCAGCTGCCAAGA
+chr15 73277554 73277572 +V_NF1_Q6 1.8283e-06 + TCTTGGCAGCTGGCCTTG
+chr15 73277558 73277568 -V_TAL1_Q6 4.87508e-06 - GCCAGCTGCC
+chr15 73277563 73277575 +V_LRH1_Q5 6.90581e-08 + CTGGCCTTGGAC
+chr15 73277563 73277577 +V_PAX6_Q2 9.3218e-06 + CTGGCCTTGGACTC
+chr15 73284234 73284251 -V_NF1_Q6_01 3.71867e-06 - TTGGAAAGTAGCCAAGT
+chr15 73284234 73284263 -V_MYOGNF1_01 1.95591e-06 - CTCCATTGTGATTTGGAAAGTAGCCAAGT
+chr15 73300996 73301010 -V_FXR_Q3 6.50443e-06 - CAAGGTCAGAGACC
+chr15 73301001 73301011 +V_NUR77_Q5 2.98426e-06 + CTGACCTTGG
+chr15 73301002 73301011 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGG
+chr15 73301021 73301036 +V_CP2_02 6.19623e-06 + GCTGGATTGGGGTGG
+chr15 73301029 73301039 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr15 73301029 73301041 -V_PAX4_03 5.03061e-07 - AAGCCCCACCCC
+chr15 73301029 73301059 -V_PAX4_04 6.29241e-06 - GCAAACAACCTGCAAGAGAAGCCCCACCCC
+chr15 73497705 73497715 +V_GATA6_01 9.61771e-06 + ACAGATAAGC
+chr15 74921244 74921256 -V_LRH1_Q5 3.22157e-06 - CTGGCCTTGGAA
+chr15 74921300 74921321 +V_STAT1_01 4.88874e-06 + GATGTTTTCCAGGAAATGGAG
+chr15 74921300 74921321 -V_STAT3_01 7.72189e-06 - CTCCATTTCCTGGAAAACATC
+chr15 74921303 74921318 +V_STAT5A_01 5.6082e-06 + GTTTTCCAGGAAATG
+chr15 74921303 74921318 +V_STAT5B_01 2.49995e-06 + GTTTTCCAGGAAATG
+chr15 74921303 74921318 -V_STAT5B_01 1.22249e-06 - CATTTCCTGGAAAAC
+chr15 74921304 74921317 +V_STAT1STAT1_Q3 4.98896e-06 + TTTTCCAGGAAAT
+chr15 74921304 74921317 -V_STAT1STAT1_Q3 5.77205e-06 - ATTTCCTGGAAAA
+chr15 74948239 74948254 +V_DMRT1_01 2.47268e-06 + CTGCAACATTGTAAC
+chr15 74948241 74948256 -V_DMRT1_01 9.89958e-07 - AGGTTACAATGTTGC
+chr15 74948242 74948256 -V_DMRT7_01 3.27916e-06 - AGGTTACAATGTTG
+chr15 74948306 74948318 -V_LRH1_Q5 8.11156e-06 - CTCACCTTGCAC
+chr15 76017481 76017504 +V_COUPTF_Q6 4.66212e-06 + TGCGATGACCTTGCCCCTGCTCC
+chr15 76017484 76017502 -V_GCNF_01 7.93426e-06 - AGCAGGGGCAAGGTCATC
+chr15 76017501 76017510 +V_CKROX_Q2 8.90515e-06 + TCCCTCCCC
+chr15 76017502 76017510 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr15 76017604 76017616 +V_PAX4_03 6.56043e-06 + ATCCTCCACCCC
+chr15 76017613 76017622 -V_CACBINDINGPROTEIN_Q6 2.23138e-06 - GAGGGTGGG
+chr15 77169175 77169190 -V_OCT4_02 9.10747e-06 - TTTGTTTTGCAAAGG
+chr15 77169176 77169191 -V_OCT4_01 7.94702e-06 - TTTTGTTTTGCAAAG
+chr15 77169228 77169243 +V_CP2_02 3.84258e-06 + GCTGGTTAGTCCTGG
+chr15 77575146 77575164 +V_LXR_Q3 4.04918e-06 + TGGGGGCAGGGAGGGTCA
+chr15 77575147 77575164 -V_DR4_Q2 3.91875e-06 - TGACCCTCCCTGCCCCC
+chr15 77575340 77575354 +V_ERR1_Q2 3.31639e-06 + CTCTCAAGGTCATT
+chr15 77575343 77575352 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr15 78247631 78247643 +V_NANOG_01 3.23902e-06 + TGGACCATTGCC
+chr15 78247699 78247708 -V_AP2ALPHA_01 9.68294e-06 - GCCCGAGGC
+chr15 78302531 78302545 +V_MTF1_Q4 8.85941e-06 + TTTCCACCCGGGCC
+chr15 78666615 78666626 -V_NFE2_01 3.70226e-06 - TGCTGAGGCAC
+chr15 78666624 78666637 -V_SP1_Q6 3.06772e-06 - GGGGGGTGGGGTG
+chr15 78666626 78666636 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr15 78666627 78666636 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr15 78666695 78666710 -V_ETS1_B 8.95766e-06 - ACAGGAAGGATGTGG
+chr15 78666710 78666723 -V_MAZR_01 9.79421e-06 - GGGGGTGGGGAGC
+chr15 78666713 78666723 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr15 78666714 78666723 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr15 78666714 78666725 -V_EGR_Q6 8.04446e-06 - GTGGGGGTGGG
+chr15 78666714 78666728 +V_KROX_Q6 9.17068e-06 + CCCACCCCCACACA
+chr15 80560113 80560128 +V_OCT4_01 7.49108e-07 + CTTTCTCATGCAAAG
+chr15 80560114 80560129 +V_OCT4_02 9.71581e-06 + TTTCTCATGCAAAGT
+chr15 80560178 80560194 +V_MEF2_01 9.18265e-07 + GTTTAAAAATAAATCT
+chr15 81714269 81714285 +V_NFKB_Q6_01 4.27245e-06 + AGCTGGGGAAGCCCCA
+chr15 81714274 81714282 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr15 81714274 81714284 -V_NFKAPPAB_01 4.87508e-06 - GGGGCTTCCC
+chr15 81714277 81714289 +V_PAX4_03 5.05761e-06 + AAGCCCCACCCT
+chr15 82209164 82209182 -V_PIT1_Q6 2.94097e-06 - AATTCTTAATGGAACACA
+chr15 82209303 82209317 -V_KROX_Q6 2.32952e-06 - CCCACCCACCCCCC
+chr15 82209304 82209313 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr15 82872759 82872768 -V_CACBINDINGPROTEIN_Q6 6.29506e-06 - GAGGCTGGG
+chr15 82872820 82872832 -V_LRH1_Q5 3.77826e-06 - AGGACCTTGAAC
+chr15 83104608 83104622 -V_E2A_Q2 2.96662e-06 - CCACCTGCTCCATA
+chr15 83104613 83104624 +V_E12_Q6 4.37943e-06 + AGCAGGTGGCA
+chr15 84294544 84294553 -V_CACBINDINGPROTEIN_Q6 8.12736e-06 - GGGGCTGGG
+chr15 84294588 84294598 -V_LEF1_Q2_01 1.81713e-06 - GATCAAAGGG
+chr15 84452600 84452610 +V_MYOD_Q6 2.71739e-06 + ACCACCTGCC
+chr15 84452602 84452610 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr15 84452614 84452629 -V_OCT1_02 9.34969e-06 - ATGCATATTCATTCT
+chr15 84452614 84452637 -V_OCT1_04 3.44679e-06 - TAGCATATATGCATATTCATTCT
+chr15 84452615 84452638 +V_OCT1_04 9.07554e-06 + GAATGAATATGCATATATGCTAA
+chr15 84452617 84452632 +V_OCT1_02 2.62474e-08 + ATGAATATGCATATA
+chr15 84452627 84452642 +V_OCT1_Q6 5.39975e-06 + ATATATGCTAATCAG
+chr15 84452629 84452639 +V_POU3F2_02 7.27852e-06 + ATATGCTAAT
+chr15 84452629 84452642 -V_OCT_C 2.19692e-06 - CTGATTAGCATAT
+chr15 84452652 84452662 -V_OCT1_B 5.44227e-06 - CATGCAAATC
+chr15 84452652 84452667 -V_OCT4_02 8.50412e-09 - ATTGTCATGCAAATC
+chr15 84452653 84452668 -V_OCT4_01 1.09956e-06 - GATTGTCATGCAAAT
+chr15 86004360 86004373 -V_SP1_Q6 9.41334e-06 - TGGGGGCGTGGTC
+chr15 86004362 86004372 +V_SP1_Q2_01 8.14617e-06 + CCACGCCCCC
+chr15 86004363 86004374 -V_EGR_Q6 4.80646e-06 - GTGGGGGCGTG
+chr15 88723492 88723516 +V_COMP1_01 5.24802e-06 + TCTGTGGATTTGCAAGACAAAGTC
+chr15 88723498 88723513 -V_OCT4_02 2.36019e-07 - TTTGTCTTGCAAATC
+chr15 88723499 88723514 -V_OCT4_01 8.76645e-07 - CTTTGTCTTGCAAAT
+chr15 90233174 90233186 -V_LMO2COM_01 2.70597e-06 - GGCCAGGTGGTG
+chr15 90233176 90233186 +V_EBOX_Q6_01 6.43409e-06 + CCACCTGGCC
+chr15 90233220 90233228 +V_STAT3_02 9.89755e-06 + GGCTTCCC
+chr15 90233246 90233258 +V_PAX4_03 9.67001e-06 + CCCCCCCACCCC
+chr15 90233247 90233262 +V_SREBP_Q6 4.65723e-07 + CCCCCCACCCCACCC
+chr15 90233247 90233262 +V_SREBP1_Q5 3.85951e-07 + CCCCCCACCCCACCC
+chr15 90233252 90233265 -V_SP1_Q6 3.06772e-06 - GGGGGGTGGGGTG
+chr15 90233254 90233264 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr15 90233255 90233264 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr15 90955123 90955135 -V_MEIS1_01 4.98874e-06 - ATGTGACAGGGC
+chr15 91094531 91094540 -V_CACBINDINGPROTEIN_Q6 2.23138e-06 - GAGGGTGGG
+chr15 91094546 91094559 -V_GFI1_Q6 5.94515e-06 - CAAAATCACAGGA
+chr15 91533860 91533871 -V_EBF_Q6 7.68235e-06 - CTCCCCTGGGG
+chr15 91534000 91534013 +V_FXR_IR1_Q6 4.17739e-06 + GGGACAATGACCT
+chr15 91534001 91534015 -V_FXR_Q3 2.84079e-06 - CAAGGTCATTGTCC
+chr15 93574705 93574719 -V_MTF1_Q4 8.85941e-06 - TCTGCTCTCGGGCC
+chr15 93574740 93574752 -V_VDR_Q6 5.27356e-06 - CCCTGTGACCCC
+chr15 93574788 93574799 +V_AP1FJ_Q2 1.36855e-06 + GGTGACTCAGC
+chr15 93574788 93574799 +V_AP1_Q6 5.77866e-07 + GGTGACTCAGC
+chr15 93574788 93574799 +V_AP1_Q4 2.788e-06 + GGTGACTCAGC
+chr15 93574789 93574800 -V_NFE2_01 8.27314e-07 - CGCTGAGTCAC
+chr15 93574837 93574849 +V_NANOG_01 5.39011e-07 + GAGCCCATTTCC
+chr15 94472623 94472638 +V_DMRT1_01 6.25574e-06 + GAGATACAATGTTGC
+chr15 94472625 94472640 -V_DMRT1_01 3.53013e-07 - CTGCAACATTGTATC
+chr15 94472630 94472643 +V_DMRT4_01 2.69658e-06 + AATGTTGCAGTTT
+chr15 96010197 96010208 +V_NFY_Q6 7.17826e-06 + GAGCCAATCAC
+chr15 96010210 96010224 -V_KROX_Q6 8.32366e-06 - CCCGCCTACTCGCC
+chr15 96010221 96010232 -V_FLI1_Q6 2.1414e-06 - CCGGAAGTCCC
+chr15 96434802 96434811 -V_CACBINDINGPROTEIN_Q6 8.12736e-06 - GGGGCTGGG
+chr15 96434805 96434817 +V_AP2_Q6 4.04184e-06 + AGCCCCACGGCG
+chr15 96434929 96434947 -V_CMYB_01 3.62e-06 - CCAGCCAGCAGTTGGCAG
+chr15 96552828 96552843 +V_OCT4_01 7.41924e-06 + TATTCTGATGTTAAT
+chr15 96552829 96552844 +V_OCT4_02 8.01355e-06 + ATTCTGATGTTAATT
+chr15 96552855 96552868 +V_P50P50_Q3 9.35611e-06 + AGGGGGCTGCCCC
+chr15 96688333 96688350 +V_PPARG_03 8.5697e-06 + AACCAGGTCAAGGGTAA
+chr15 96688351 96688360 -V_SMAD3_Q6 7.33929e-06 - TGTCTGCCT
+chr15 96688357 96688368 +V_HELIOSA_02 4.1829e-06 + ACAAGGAAAAA
+chr15 96688363 96688372 +V_FOXO1_Q5 7.27852e-06 + AAAAACAAA
+chr15 96688363 96688376 +V_HNF3_Q6 4.17324e-06 + AAAAACAAACATT
+chr15 96688364 96688377 -V_HFH4_01 2.9856e-06 - AAATGTTTGTTTT
+chr15 96688365 96688377 -V_FOXD3_01 8.64709e-07 - AAATGTTTGTTT
+chr15 96688379 96688394 +V_DMRT1_01 1.02233e-06 + AGGCAACAATGTTGC
+chr15 96688381 96688396 -V_DMRT1_01 5.91304e-08 - CTGCAACATTGTTGC
+chr15 96688406 96688416 +V_IK_Q5 4.33614e-06 + GGTGGGAGGG
+chr15 96688407 96688417 -V_SP1_Q2_01 9.56538e-06 - CCCCTCCCAC
+chr15 96772103 96772117 +V_DMRT7_01 4.38955e-06 + TAGATACATTGTTG
+chr15 96772103 96772118 +V_DMRT1_01 5.37485e-07 + TAGATACATTGTTGT
+chr15 96772138 96772149 -V_SP1SP3_Q4 3.76147e-06 - CCCCCCCCCCA
+chr15 96772139 96772148 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr15 96772139 96772150 -V_SP1SP3_Q4 3.39206e-07 - CCCCCCCCCCC
+chr15 96772139 96772154 +V_VDR_Q3 5.37362e-06 + GGGGGGGGGGGGTCT
+chr15 96772140 96772149 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr15 96772140 96772151 -V_SP1SP3_Q4 3.39206e-07 - CCCCCCCCCCC
+chr15 96772141 96772150 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr15 96772141 96772152 -V_SP1SP3_Q4 3.19906e-06 - ACCCCCCCCCC
+chr15 96772141 96772154 +V_MAZR_01 8.77447e-07 + GGGGGGGGGGTCT
+chr15 96772142 96772151 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr15 97425869 97425888 -V_ER_Q6 4.35111e-06 - CCAGGTAGGCCTGACCCAC
+chr15 97425888 97425897 +V_RFX_Q6 3.30926e-06 + CTGTTGCCA
+chr15 97425888 97425905 +V_RFX1_01 1.4001e-06 + CTGTTGCCAGGTAACAG
+chr15 97425888 97425905 -V_RFX1_01 4.68172e-07 - CTGTTACCTGGCAACAG
+chr15 97425906 97425918 -V_PAX4_03 1.74945e-06 - AAACCCCACCCC
+chr15 97425980 97425992 +V_LMO2COM_01 9.25383e-06 + GGGCAGCTGCTG
+chr15 97426012 97426023 +V_PAX_Q6 6.2248e-07 + CTGGGACTCAC
+chr15 97595616 97595626 +V_NKX25_Q5 3.30926e-06 + TGCCACTTGC
+chr15 97660077 97660091 +V_KROX_Q6 9.17068e-06 + CCCACCCACCCACC
+chr15 97907524 97907539 +V_OCT4_02 5.30392e-06 + ATTGTAATTCAAATG
+chr15 98778394 98778407 +V_DMRT4_01 3.66086e-07 + AATGTAACAATGT
+chr15 98778395 98778410 +V_DMRT1_01 8.79038e-06 + ATGTAACAATGTTAC
+chr15 98778397 98778412 -V_DMRT1_01 2.36549e-06 - CTGTAACATTGTTAC
+chr15 98778438 98778448 +V_NUR77_Q5 2.98426e-06 + CTGACCTTGG
+chr15 98778439 98778448 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGG
+chr15 98778445 98778458 +V_SP1_Q6 3.85413e-06 + TGGGGGAGGGGGG
+chr15 98778446 98778455 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr15 98778446 98778456 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr15 98778446 98778457 -V_SP1SP3_Q4 2.8432e-06 - CCCCCTCCCCC
+chr15 98778447 98778455 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr15 98778447 98778456 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr15 98778447 98778457 +V_SP1_Q6_01 8.48538e-06 + GGGGAGGGGG
+chr15 98778449 98778460 -V_SP1SP3_Q4 2.8432e-06 - ACCCCCCCTCC
+chr15 98778449 98778463 -V_KROX_Q6 3.42108e-06 - CCCACCCCCCCTCC
+chr15 98778454 98778463 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr15 100480123 100480132 +V_SMAD3_Q6 4.03003e-06 + TGTCTGTCT
+chr15 100605771 100605784 +V_SP1_Q6 7.04257e-06 + GGCGGGAGGGGCT
+chr15 100605772 100605781 -V_WT1_Q6 6.67377e-06 - CCCTCCCGC
+chr15 100605772 100605785 +V_MAZR_01 8.35903e-06 + GCGGGAGGGGCTG
+chr15 100605780 100605795 -V_SMAD4_Q6 7.63557e-06 - GGAATCCAGCCAGCC
+chr15 100605793 100605806 +V_GFI1_Q6 4.04359e-06 + CCTAATCACGGCT
+chr15 100605797 100605827 +V_HOX13_01 3.49796e-07 + ATCACGGCTCCTCATTAGTGGTGGCATTCC
+chr15 100605904 100605916 -V_GABP_B 9.67301e-06 - AGGGGAAGCGCA
+chr15 100896914 100896922 +V_STAT3_02 9.89755e-06 + GGCTTCCC
+chr15 100896918 100896927 +V_CKROX_Q2 8.90515e-06 + TCCCTCCCC
+chr15 100896919 100896927 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr15 100896919 100896928 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr15 100896924 100896934 -V_GATA1_01 9.78116e-06 - GCTGATGGGG
+chr15 100896940 100896953 -V_MAZR_01 3.32118e-06 - GGGGGAGGGGCGC
+chr15 100896941 100896954 -V_SP1_Q6 1.00798e-06 - TGGGGGAGGGGCG
+chr15 100896942 100896952 -V_SP1_Q6_01 2.74385e-06 - GGGGAGGGGC
+chr15 100896943 100896952 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr15 100896943 100896953 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr15 100896944 100896952 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr15 100896944 100896953 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr15 100896944 100896958 +V_KROX_Q6 5.42711e-07 + CCCTCCCCCACCCC
+chr15 100896946 100896958 +V_PAX4_03 3.63034e-06 + CTCCCCCACCCC
+chr15 100896949 100896959 +V_SP1_Q2_01 8.14617e-06 + CCCCACCCCG
+chr15 100896952 100896965 -V_SP1_Q6 3.85413e-06 - GATGGGCGGGGTG
+chr15 100896953 100896963 -V_SP1_Q6_01 6.74305e-06 - TGGGCGGGGT
+chr15 100896954 100896964 +V_SP1_Q2_01 6.90691e-06 + CCCCGCCCAT
+chr15 100909208 100909222 +V_KROX_Q6 9.17068e-06 + CCCGCTCCCGCCTC
+chr15 100909268 100909278 -V_SP1_Q2_01 6.40385e-06 - CCCCGCCTCC
+chr15 102716376 102716386 +V_MYOD_Q6 2.71739e-06 + ACCACCTGCC
+chr15 102716378 102716386 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr15 102716387 102716415 -V_PAX5_01 6.31462e-06 - GCTCAGCTCACTGTGGGGTGCCATCTCT
+chr15 102905930 102905946 -V_HAND1E47_01 4.70527e-06 - TTTGGGGCCTGGCTTT
+chr16 6206689 6206698 -V_CACBINDINGPROTEIN_Q6 2.23138e-06 - GAGGGTGGG
+chr16 7094614 7094629 -V_VDR_Q3 9.00638e-06 - GGTGGAAGGAGGTGT
+chr16 7094623 7094633 +V_TAL1_Q6 7.11328e-06 + TCCACCTGCT
+chr16 7094701 7094715 -V_NFKB_Q6 6.39997e-06 - AAGGGACTCTCCGT
+chr16 7094702 7094714 -V_NFKB_C 3.35384e-06 - AGGGACTCTCCG
+chr16 7094702 7094715 -V_P50P50_Q3 4.2671e-06 - AAGGGACTCTCCG
+chr16 7094717 7094727 +V_IK_Q5 6.81053e-06 + TGTGGGAGGG
+chr16 7094718 7094728 -V_SP1_Q2_01 9.56538e-06 - CCCCTCCCAC
+chr16 7405007 7405020 +V_SOX_Q6 6.1384e-06 + CTCTTTGTTCCCT
+chr16 7405021 7405040 +V_PPARA_02 7.462e-06 + TGAGGACATTGGGGTGTCT
+chr16 7405031 7405040 -V_SMAD_Q6 2.71739e-06 - AGACACCCC
+chr16 7405124 7405134 +V_HMX1_01 8.79387e-06 + CAAGGGCGTG
+chr16 8724262 8724277 +V_OCT4_01 7.94702e-06 + CTTTATCATGTAAAA
+chr16 8976337 8976347 -V_SP1_Q2_01 9.56538e-06 - CCCCACCCCT
+chr16 8976343 8976358 -V_TAXCREB_02 4.53797e-06 - GTGCTGCATCCCCCC
+chr16 9839395 9839404 +V_ZIC2_01 9.89755e-06 + GGGGTGGTG
+chr16 9839409 9839425 -V_MAF_Q6 3.94859e-06 - AAGAGGCAAGTTTGCT
+chr16 9839517 9839527 -V_SP1_Q6_01 8.48538e-06 - GGGGCGTGGC
+chr16 9839520 9839535 -V_VDR_Q3 9.46585e-06 - GGGGCAGAGGGGCGT
+chr16 10467933 10467942 +V_T3R_Q6 8.74404e-06 + CCTGTCCTC
+chr16 10467941 10467955 +V_KROX_Q6 7.21197e-06 + CCAGCCCACTCTCC
+chr16 10467964 10467977 -V_MAZR_01 3.51639e-06 - TGGGGTGGGGCAA
+chr16 10467965 10467980 +V_SREBP1_Q5 5.62649e-06 + TGCCCCACCCCACCC
+chr16 10467966 10467976 -V_SP1_Q6_01 4.32232e-06 - GGGGTGGGGC
+chr16 10467970 10467983 -V_SP1_Q6 5.65055e-06 - CGGGGGTGGGGTG
+chr16 10467972 10467982 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr16 10467973 10467982 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr16 10467993 10468007 +V_PAX6_Q2 7.66755e-07 + CTGACCTGGAAGAC
+chr16 10468029 10468042 -V_STAT1STAT1_Q3 4.33158e-06 - ATTTCAAGGAAAC
+chr16 10628467 10628485 -V_CDX_Q5 5.11657e-06 - AAATGCCAAAGCTATAAA
+chr16 12632822 12632830 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr16 12713075 12713084 -V_SMAD3_Q6 4.03003e-06 - TGTCTGTCT
+chr16 12713092 12713104 -V_NFAT_Q6 8.14105e-06 - CAGAGGAAACAT
+chr16 12713168 12713179 +V_IRF_Q6_01 6.04983e-06 + AGAAGTGAAAC
+chr16 12713168 12713183 -V_IRF_Q6 1.68499e-07 - GCCAGTTTCACTTCT
+chr16 12713169 12713181 +V_ICSBP_Q6 1.5189e-07 + GAAGTGAAACTG
+chr16 12713604 12713621 +V_PU1_01 3.87664e-07 + CAAAAGGGGAAGTGCCT
+chr16 12713605 12713624 -V_PU1_Q4 3.95346e-06 - GAAAGGCACTTCCCCTTTT
+chr16 12714022 12714031 -V_YY1_Q6 6.61851e-06 - GCCATGTTG
+chr16 13056018 13056033 -V_ETS1_B 3.18763e-06 - GCAGGAAGCCCTTGC
+chr16 13056020 13056034 -V_ETS2_B 7.56374e-07 - GGCAGGAAGCCCTT
+chr16 13056073 13056086 +V_AP2_Q6_01 6.01724e-06 + CTTCCCCCAGGCC
+chr16 14577630 14577641 -V_ELF5_01 1.41361e-06 - ACAAGGAAGTA
+chr16 18769723 18769736 -V_HSF_Q6 9.65621e-07 - TTCTAGCAGTTTC
+chr16 18769735 18769747 +V_GATA4_Q3 3.19388e-06 + AGAAAACAGGCA
+chr16 18769761 18769775 -V_ETS2_B 6.1603e-06 - TCCAGGAAGTCTTT
+chr16 18769784 18769799 -V_OCT4_01 8.48593e-06 - AATTCTTGTGCAAAT
+chr16 18769870 18769882 +V_ELF1_Q6 6.25224e-06 + AGAAGAGGAAGC
+chr16 18774134 18774144 -V_NUR77_Q5 8.43564e-06 - TTGACCTTCC
+chr16 20926037 20926053 -V_EVI1_01 9.11873e-06 - TGACAAGACAATAGAC
+chr16 20926042 20926053 -V_EVI1_02 4.94338e-06 - TGACAAGACAA
+chr16 20926072 20926087 -V_ETS1_B 3.99432e-07 - GCAGGAAGTGGCTTC
+chr16 20926074 20926086 +V_ETS_Q4 1.02417e-07 + AGCCACTTCCTG
+chr16 20926074 20926088 -V_ETS2_B 4.50829e-06 - AGCAGGAAGTGGCT
+chr16 21566330 21566341 +V_EGR_Q6 6.55683e-06 + GTGGGGGCTGG
+chr16 21566339 21566350 +V_AP1FJ_Q2 8.98155e-06 + GGTGACTCCTT
+chr16 21566387 21566400 +V_SOX_Q6 7.76302e-06 + CTCTTTGTTTCAC
+chr16 22140120 22140131 +V_SP1SP3_Q4 5.56573e-06 + CCCCCGCCGCC
+chr16 22140123 22140134 +V_SP1SP3_Q4 4.0242e-06 + CCGCCGCCGCC
+chr16 22400467 22400480 +V_DEC_Q1 4.91686e-06 + CCTCAAGTGAATG
+chr16 22637517 22637530 +V_P50P50_Q3 8.8244e-06 + GAGGGACTTCCTT
+chr16 22637561 22637576 +V_SPZ1_01 2.99035e-06 + TGTGGAGGGTTGGGC
+chr16 22637586 22637601 +V_OCT4_01 1.47922e-07 + CATTGTAATGCTAAT
+chr16 22637587 22637602 +V_OCT4_02 3.02765e-06 + ATTGTAATGCTAATT
+chr16 22637637 22637652 +V_OCT4_01 7.94702e-06 + TTTTGTTGTGCAAAC
+chr16 22720038 22720060 +V_MEF2_02 1.84909e-06 + GGGAAATTTAAAAATAGCTTCT
+chr16 22720045 22720057 -V_MEF2_Q6_01 6.78607e-07 - AGCTATTTTTAA
+chr16 22720055 22720073 -V_MYOD_Q6_01 7.74036e-06 - CCAACCCAGCTGCAGAAG
+chr16 22720066 22720080 -V_KROX_Q6 2.22971e-06 - CCTGCCCCCAACCC
+chr16 22720094 22720104 +V_NCX_01 2.56319e-06 + TGGTAAGTGG
+chr16 22720114 22720126 +V_SRY_02 5.02837e-06 + GAAAACAATGGG
+chr16 23270778 23270789 -V_EGR_Q6 5.40581e-06 - GTGGGGGTGGC
+chr16 23270780 23270792 +V_PAX4_03 2.70808e-06 + CACCCCCACCCT
+chr16 23270784 23270793 -V_CACBINDINGPROTEIN_Q6 2.23138e-06 - GAGGGTGGG
+chr16 23482466 23482477 +V_HELIOSA_02 6.56371e-06 + AAAAGGAAAAC
+chr16 23482510 23482524 +V_KROX_Q6 1.77973e-06 + TTTGCCCCCGCCCC
+chr16 23482513 23482526 -V_SP1_Q6 4.19627e-06 - CTGGGGCGGGGGC
+chr16 23482514 23482524 -V_SP1_Q6_01 6.78413e-07 - GGGGCGGGGG
+chr16 23482515 23482524 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr16 23482515 23482525 +V_SP1_Q2_01 3.57003e-06 + CCCCGCCCCA
+chr16 23482526 23482536 -V_IK_Q5 4.33614e-06 - GGTGGGAGGG
+chr16 23497684 23497702 -V_FOXJ2_01 2.18092e-06 - TTTTAAATAAATAAACCA
+chr16 23497686 23497699 +V_FOX_Q2 2.65338e-06 + GTTTATTTATTTA
+chr16 23497686 23497699 +V_HFH3_01 4.77876e-06 + GTTTATTTATTTA
+chr16 23497762 23497783 -V_PAX6_01 5.25696e-06 - TCTGTTTACACTTCAGTTCCC
+chr16 24853273 24853296 +V_COUPTF_Q6 1.19457e-07 + CAACCTGACCTTTCCCCCTGCCT
+chr16 24853274 24853295 -V_PPARG_01 8.53423e-06 - GGCAGGGGGAAAGGTCAGGTT
+chr16 24853277 24853287 +V_NUR77_Q5 8.43564e-06 + CTGACCTTTC
+chr16 24853277 24853291 -V_HNF4_Q6_01 7.92317e-06 - GGGGGAAAGGTCAG
+chr16 24853278 24853291 +V_PPAR_DR1_Q2 9.42243e-07 + TGACCTTTCCCCC
+chr16 24853278 24853291 +V_COUP_DR1_Q6 5.72793e-06 + TGACCTTTCCCCC
+chr16 24853278 24853291 -V_DR1_Q3 3.04643e-06 - GGGGGAAAGGTCA
+chr16 24853278 24853292 +V_COUP_01 6.76471e-06 + TGACCTTTCCCCCT
+chr16 24853278 24853295 -V_PPARG_03 3.0203e-06 - GGCAGGGGGAAAGGTCA
+chr16 25517297 25517314 +V_PPARG_03 8.20535e-06 + TGGTAGGGCACAGTTGA
+chr16 25517410 25517424 -V_KROX_Q6 9.17068e-06 - CCCACCCACCCACC
+chr16 25517414 25517428 -V_KROX_Q6 9.17068e-06 - CCCACCCACCCACC
+chr16 25517439 25517454 +V_OCT4_01 4.01204e-06 + CTTTGAAATGTAAAG
+chr16 25728236 25728249 -V_SP1_Q6 1.00798e-06 - CAGGGGCGGGGTG
+chr16 25728237 25728247 -V_SP1_Q6_01 1.0915e-06 - GGGGCGGGGT
+chr16 25728238 25728247 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr16 25728238 25728248 +V_SP1_Q2_01 1.0915e-06 + CCCCGCCCCT
+chr16 25728284 25728299 -V_ETS1_B 1.48419e-06 - GCAGGAAGTAGTTTC
+chr16 25728286 25728298 +V_ETS_Q4 1.51985e-06 + AACTACTTCCTG
+chr16 25728286 25728300 -V_ETS2_B 5.46026e-07 - GGCAGGAAGTAGTT
+chr16 25728309 25728324 -V_VDR_Q3 3.98432e-06 - GGGGGGGGGGGTTGA
+chr16 25728310 25728323 -V_MAZR_01 2.79447e-06 - GGGGGGGGGGTTG
+chr16 25728312 25728323 +V_SP1SP3_Q4 3.19906e-06 + ACCCCCCCCCC
+chr16 25728313 25728322 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr16 25728313 25728324 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr16 25728313 25728327 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr16 25728314 25728323 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr16 25728314 25728325 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr16 25728314 25728328 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr16 25728315 25728324 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr16 25728315 25728326 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr16 25728315 25728329 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr16 25728316 25728325 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr16 25728316 25728327 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr16 25728317 25728326 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr16 25728317 25728328 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr16 25728317 25728336 -V_PPARA_02 3.05216e-06 - TAAGGTCGGGGGGGGGGGG
+chr16 25728318 25728327 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr16 25728318 25728329 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr16 25728319 25728328 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr16 25728319 25728330 +V_SP1SP3_Q4 6.44809e-06 + CCCCCCCCCCG
+chr16 25728320 25728329 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr16 25775275 25775284 +V_AP2ALPHA_01 9.68294e-06 + GCCCGAGGG
+chr16 25775275 25775284 +V_AP2GAMMA_01 7.85065e-06 + GCCCGAGGG
+chr16 25775295 25775305 +V_TBX5_Q5 5.68466e-06 + TTCACACCTG
+chr16 25780249 25780268 -V_SRF_Q5_02 1.27936e-06 - CAGGTCCTTGTTTGGAAGG
+chr16 25780251 25780265 +V_SRF_Q6 5.43591e-06 + TTCCAAACAAGGAC
+chr16 25780252 25780270 +V_SRF_Q4 6.03352e-06 + TCCAAACAAGGACCTGTC
+chr16 25871764 25871783 -V_OCT1_01 3.34572e-06 - ATGCATATGCTAATAGGGT
+chr16 25871769 25871779 -V_POU3F2_02 7.27852e-06 - ATATGCTAAT
+chr16 25871789 25871804 +V_OCT4_01 9.05006e-06 + TATTCATATGCTAAG
+chr16 25871879 25871908 -V_MYOGNF1_01 6.71843e-06 - CAGAGCTCTGATTGGCCAATCTGCCATCC
+chr16 25871887 25871900 +V_NFY_Q6_01 9.50338e-07 + GATTGGCCAATCA
+chr16 25871888 25871902 -V_NFY_C 7.33715e-07 - TCTGATTGGCCAAT
+chr16 25871888 25871904 +V_NFY_01 1.39563e-07 + ATTGGCCAATCAGAGC
+chr16 25871890 25871901 +V_NFY_Q6 4.23487e-06 + TGGCCAATCAG
+chr16 25871903 25871916 +V_HFH8_01 6.57167e-06 + CTCTGTTTATATG
+chr16 26049762 26049773 +V_NFE2_01 3.70226e-06 + TGCTGAGGCAC
+chr16 26962243 26962258 -V_OCT4_01 5.63049e-06 - CATTCTTATTCAAAC
+chr16 26962329 26962341 +V_ELF1_Q6 7.39845e-06 + GTTGGAGGAAGT
+chr16 26962331 26962345 +V_ETS2_B 5.16909e-06 + TGGAGGAAGTGTTT
+chr16 26962332 26962347 +V_ETS1_B 4.06372e-06 + GGAGGAAGTGTTTCA
+chr16 26962349 26962360 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr16 26962351 26962360 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr16 29882503 29882513 -V_GATA1_05 8.02927e-06 - CCAGATAACA
+chr16 29882512 29882542 -V_PAX4_04 6.64961e-06 - AAAAAAAAAAAGAACCTCAGAGGCCACTCC
+chr16 29882537 29882552 +V_STAT5B_01 5.80514e-06 + TTTTTCCTGGAAGCC
+chr16 29956272 29956287 +V_DMRT1_01 3.56608e-06 + TAGAAACAATGTAGT
+chr16 29956310 29956325 +V_DMRT1_01 1.02233e-06 + TAGAAACAATGTAGC
+chr16 29956312 29956327 -V_DMRT1_01 2.69689e-08 - CTGCTACATTGTTTC
+chr16 29956329 29956344 +V_DMRT1_01 1.02233e-06 + TAGAAACAATGTAGC
+chr16 29956331 29956346 -V_DMRT1_01 2.69689e-08 - CTGCTACATTGTTTC
+chr16 29956348 29956363 +V_DMRT1_01 5.35835e-06 + TAGAAACAATGTAGG
+chr16 29956358 29956369 -V_SP1SP3_Q4 6.27849e-06 - CCCCCCCCTAC
+chr16 29956360 29956371 -V_SP1SP3_Q4 2.8432e-06 - CCCCCCCCCCT
+chr16 29956361 29956370 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr16 29956361 29956372 -V_SP1SP3_Q4 3.19906e-06 - ACCCCCCCCCC
+chr16 29956361 29956374 +V_MAZR_01 2.98074e-06 + GGGGGGGGGGTAT
+chr16 29956362 29956371 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr16 30460670 30460683 -V_HFH3_01 6.87476e-06 - GCTTATTTGTATA
+chr16 31551986 31551998 -V_SRY_02 8.43511e-06 - GTAAACAAAACG
+chr16 31551987 31552001 +V_FOXO1_02 5.21263e-06 + GTTTTGTTTACCGT
+chr16 33170287 33170298 +V_PAX_Q6 3.7389e-06 + CTGGAACAAAC
+chr16 33170356 33170374 +V_GCNF_01 5.75095e-06 + CACAAGTCCAAGGCCACC
+chr16 33170361 33170373 -V_LRH1_Q5 7.00006e-07 - GTGGCCTTGGAC
+chr16 34094160 34094175 +V_SMAD4_Q6 1.2366e-06 + GCGATGCAGACAGCT
+chr16 34094182 34094198 -V_EVI1_01 7.40857e-06 - AGAGAAGATAAGGTCC
+chr16 34094187 34094198 -V_EVI1_03 6.70634e-06 - AGAGAAGATAA
+chr16 34441415 34441428 +V_SP1_Q6 8.76141e-06 + TGGAGGAGGGGCC
+chr16 34441416 34441429 +V_MAZR_01 3.8307e-06 + GGAGGAGGGGCCC
+chr16 34441436 34441449 -V_STAT_Q6 6.2368e-06 - TTCTTTTCTTGGA
+chr16 34668557 34668572 +V_OCT4_01 3.74251e-06 + CATTCACTTGCAAAT
+chr16 34668558 34668573 +V_OCT4_02 1.50435e-06 + ATTCACTTGCAAATA
+chr16 34668603 34668611 -V_CACD_01 9.89755e-06 - CCACACCC
+chr16 35588129 35588144 -V_SMAD4_Q6 2.88375e-06 - GGCGGGGAGACTGCT
+chr16 35588135 35588148 -V_SP1_Q6 9.41334e-06 - GAGGGGCGGGGAG
+chr16 35588136 35588146 -V_SP1_Q6_01 2.74385e-06 - GGGGCGGGGA
+chr16 35588137 35588146 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr16 35588137 35588147 +V_SP1_Q2_01 1.0915e-06 + CCCCGCCCCT
+chr16 35588139 35588152 -V_MAZR_01 5.94885e-06 - GGGGGAGGGGCGG
+chr16 35588140 35588153 -V_SP1_Q6 1.00798e-06 - TGGGGGAGGGGCG
+chr16 35588141 35588151 -V_SP1_Q6_01 2.74385e-06 - GGGGAGGGGC
+chr16 35588142 35588151 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr16 35588142 35588152 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr16 35588143 35588151 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr16 35588143 35588152 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr16 35588143 35588157 +V_KROX_Q6 3.79201e-06 + CCCTCCCCCACCAC
+chr16 35904320 35904343 -V_COUPTF_Q6 6.50749e-06 - CCTTCTGACCCTTACTCCACCCC
+chr16 35904332 35904347 +V_VDR_Q3 4.22722e-06 + GGGTCAGAAGGGTGG
+chr16 35904369 35904382 -V_MAZR_01 2.00881e-06 - GGGGGAGGGGCTA
+chr16 35904370 35904383 -V_SP1_Q6 5.66938e-07 - GGGGGGAGGGGCT
+chr16 35904371 35904381 -V_SP1_Q6_01 2.74385e-06 - GGGGAGGGGC
+chr16 35904371 35904386 -V_SPZ1_01 7.83729e-06 - GGGGGGGGGAGGGGC
+chr16 35904372 35904381 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr16 35904372 35904382 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr16 35904373 35904381 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr16 35904373 35904382 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr16 35904374 35904387 -V_MAZR_01 3.10027e-06 - TGGGGGGGGGAGG
+chr16 35904377 35904386 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr16 35904411 35904421 +V_NKX25_Q5 8.11064e-06 + TGCCACTTCC
+chr16 35904433 35904445 +V_NANOG_01 3.55582e-06 + GGGGCCATTTTC
+chr16 35904438 35904453 +V_OCT4_01 7.41924e-06 + CATTTTCATTCAAAT
+chr16 38260070 38260081 -V_OCT1_Q5_01 7.81079e-06 - TAATTTACATA
+chr16 38260114 38260128 +V_BLIMP1_Q6 7.69212e-07 + TGAAAGGGAAAGTG
+chr16 38260115 38260126 +V_IRF_Q6_01 8.39845e-06 + GAAAGGGAAAG
+chr16 38260115 38260130 -V_IRF_Q6 7.87876e-07 - TTCACTTTCCCTTTC
+chr16 38260120 38260134 +V_BLIMP1_Q6 2.72511e-06 + GGAAAGTGAATGGG
+chr16 42493882 42493892 +V_P53_02 8.04166e-06 + GGACATGCCC
+chr16 43800533 43800547 -V_OCT1_06 4.31945e-06 - CTTATTTAGATGCA
+chr16 46501005 46501020 +V_OCT4_02 3.02765e-06 + ATTCAGATGCTGATT
+chr16 46501058 46501073 +V_OCT4_02 1.50435e-06 + ATTGTCATGCTATTG
+chr16 48108085 48108095 +V_IK_Q5 4.33614e-06 + TCTGGGAGGG
+chr16 48108149 48108165 -V_DMRT2_01 6.42936e-07 - CAAAGTGATACATTCA
+chr16 48475441 48475453 +V_TTF1_Q6 3.54448e-06 + CCCTCAAGTGCA
+chr16 49516798 49516815 +V_RFX1_01 5.18407e-07 + GGGTAGCTAAGCAACCT
+chr16 49516825 49516839 +V_CEBPB_02 9.83147e-06 + ATCTTGCTTAACTG
+chr16 50455252 50455263 +V_MYB_Q3 3.40516e-06 + AGAGGCAGTTG
+chr16 50482560 50482574 +V_CDX2_Q5 7.50128e-07 + CTACTTTTATTACC
+chr16 50482589 50482608 +V_PU1_Q4 8.89634e-06 + TCATCTAACTTCCTCACTT
+chr16 50482599 50482615 -V_MAF_Q6 6.4009e-06 - AGGAGGGAAGTGAGGA
+chr16 50482680 50482688 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr16 57473726 57473741 +V_DMRT5_01 2.3698e-06 + TCTTGTAACTTTGTC
+chr16 57473837 57473845 +V_CACD_01 9.89755e-06 + CCACACCC
+chr16 65765517 65765533 -V_EVI1_01 1.68349e-06 - AGCCAAGATAAGATAG
+chr16 65765518 65765533 -V_EVI1_04 3.3175e-06 - AGCCAAGATAAGATA
+chr16 65765566 65765579 -V_AP2_Q6_01 4.74029e-06 - TACCCCCCAGGCC
+chr16 65765579 65765593 -V_KROX_Q6 5.75274e-06 - CCAGCCCCCCACCC
+chr16 65765597 65765612 +V_STAT5A_01 9.16964e-06 + TGTTTCTGGGAAGTC
+chr16 65765597 65765612 +V_STAT5B_01 8.9266e-06 + TGTTTCTGGGAAGTC
+chr16 65765640 65765668 +V_PAX5_01 9.89036e-06 + GCCTCAGGCCAGGTGGCAGGGCAGCTTC
+chr16 65765646 65765656 -V_EBOX_Q6_01 6.43409e-06 - CCACCTGGCC
+chr16 65765676 65765686 -V_P53_DECAMER_Q2 2.10476e-06 - AGGCAAGTCC
+chr16 69951978 69951986 +V_CACD_01 9.89755e-06 + CCACACCC
+chr16 69952013 69952028 +V_IPF1_Q4_01 7.22911e-06 + TGGGTCATTACTCAG
+chr16 69952029 69952044 +V_OCT4_01 4.91956e-06 + CATTGTGATGCTAAG
+chr16 69952030 69952045 +V_OCT4_02 2.05222e-06 + ATTGTGATGCTAAGA
+chr16 78416885 78416894 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr16 78440290 78440299 -V_HNF4_Q6 7.33929e-06 - AAGGTCCAG
+chr16 78440304 78440320 +V_AP2_Q3 6.40204e-06 + ACCCTCGGGCAGTGGC
+chr16 78440305 78440314 -V_AP2ALPHA_01 9.68294e-06 - GCCCGAGGG
+chr16 78440305 78440314 -V_AP2GAMMA_01 7.85065e-06 - GCCCGAGGG
+chr16 78440336 78440349 +V_NFY_Q6_01 6.71402e-06 + TCTTGACCAATGG
+chr16 78440386 78440398 +V_SRY_02 2.9821e-06 + TTTAACAATAGG
+chr16 78440387 78440397 +V_SOX5_01 4.92279e-06 + TTAACAATAG
+chr16 81481377 81481400 -V_OCT1_04 1.18034e-06 - GAATTGATATGCAAATAAAGACT
+chr16 81481379 81481398 -V_OCT1_01 9.8471e-06 - ATTGATATGCAAATAAAGA
+chr16 81481381 81481394 +V_OCT_C 2.19692e-06 + TTTATTTGCATAT
+chr16 81481382 81481393 +V_OCT1_Q5_01 2.46139e-06 + TTATTTGCATA
+chr16 81481382 81481393 +V_OCT_Q6 1.64093e-06 + TTATTTGCATA
+chr16 81481383 81481393 -V_OCT1_B 4.33582e-06 - TATGCAAATA
+chr16 81481383 81481398 -V_OCT4_02 1.18248e-06 - ATTGATATGCAAATA
+chr16 81481384 81481399 -V_OCT4_01 2.19035e-07 - AATTGATATGCAAAT
+chr16 81481476 81481491 -V_OCT4_01 4.01204e-06 - ATTTGTAATGTAAAA
+chr16 90310214 90310229 +V_OCT4_01 7.94702e-06 + TTTTGTTGTGCAAAC
+chr16 90310291 90310305 -V_KROX_Q6 6.89701e-06 - CCCGCCCACCTCTC
+chr16 90310295 90310308 +V_SP1_Q6 4.24913e-07 + GGTGGGCGGGGCT
+chr16 90310296 90310306 -V_SP1_Q2_01 1.91768e-06 - CCCCGCCCAC
+chr16 90310296 90310307 +V_EGR_Q6 3.55693e-06 + GTGGGCGGGGC
+chr16 90310297 90310307 +V_SP1_Q6_01 1.50459e-06 + TGGGCGGGGC
+chr16 90310348 90310367 -V_PU1_Q4 5.81356e-06 - TCTGTCTTCTTCCTCTCTC
+chr16 91565293 91565313 -V_P53_01 8.84418e-06 - ACACATGCCCTGTGATGTTG
+chr16 91565366 91565376 -V_POU3F2_02 8.91945e-06 - TTATGGTAAT
+chr16 91565406 91565419 -V_NKX61_01 2.30763e-06 - CTTTTAATTGGCT
+chr16 91565443 91565455 +V_GLI_Q2 3.63816e-06 + CCTGGGTGGACC
+chr16 91639578 91639596 +V_PAX8_B 9.66664e-06 + ACCTACTTGCATGATCTC
+chr16 91736844 91736859 +V_IRF_Q6 5.72126e-06 + TTCCCTTTCTTTTTC
+chr16 91736895 91736913 +V_LXR_Q3 5.29838e-06 + TGGGGTCACTGGCTTTTA
+chr16 92214248 92214261 +V_HSF_Q6 3.92835e-07 + TTCCAGCAGCTTC
+chr16 92214354 92214370 -V_S8_01 8.05419e-06 - AAATGTTAATTAGCCT
+chr16 92706274 92706288 +V_DMRT7_01 1.54252e-06 + TTGCTACAATGTAG
+chr16 92706274 92706289 +V_DMRT1_01 3.56682e-08 + TTGCTACAATGTAGC
+chr16 92706276 92706291 -V_DMRT1_01 8.36868e-08 - TGGCTACATTGTAGC
+chr16 92706277 92706291 -V_DMRT7_01 6.04797e-06 - TGGCTACATTGTAG
+chr16 92997232 92997244 -V_VDR_Q6 1.04054e-06 - CCCTGTGAACCT
+chr16 92997285 92997301 +V_MAF_Q6 5.99246e-06 + AGGAGGGAAGGTGGGA
+chr16 93826912 93826928 +V_MMEF2_Q6 1.95567e-06 + GTGTTTAAAATAAACT
+chr16 94392063 94392078 +V_OCT4_01 5.63049e-06 + CATTCTTATTCAAAC
+chr16 94392080 94392088 +V_CACD_01 9.89755e-06 + CCACACCC
+chr16 96175114 96175129 -V_CP2_02 9.87124e-06 - TCTGGTTTGAACTTC
+chr16 97067236 97067251 +V_SMAD4_Q6 7.97785e-06 + CTGGGGCAGTCTGCT
+chr16 97067266 97067274 -V_CACD_01 9.89755e-06 - CCACACCC
+chr16 97067282 97067297 -V_OCT4_01 8.76645e-07 - CTTTGTAATGCATAT
+chr16 97844188 97844197 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr16 97844200 97844210 -V_MYOD_Q6 9.79999e-06 - CCCACCTGTC
+chr16 97844241 97844258 +V_RFX1_01 1.53834e-07 + CAGTTACCTGGCAACAG
+chr16 97844241 97844258 -V_RFX1_01 6.16934e-06 - CTGTTGCCAGGTAACTG
+chr16 97844242 97844256 +V_EFC_Q6 6.35305e-07 + AGTTACCTGGCAAC
+chr16 97844249 97844258 -V_RFX_Q6 3.30926e-06 - CTGTTGCCA
+chr16 97902043 97902059 -V_AP2_Q3 7.19772e-06 - GCCTCCAGGCTAGGGC
+chr17 3505875 3505888 +V_SP1_Q6 7.54104e-06 + AGGGGGTGGGGGT
+chr17 3505876 3505885 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr17 3505876 3505886 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr17 3505876 3505887 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr17 3505877 3505889 -V_PAX4_03 2.40392e-07 - CACCCCCACCCC
+chr17 3505877 3505891 -V_KROX_Q6 2.21131e-07 - CCCACCCCCACCCC
+chr17 3505880 3505891 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr17 3505881 3505894 +V_SP1_Q6 8.76141e-06 + TGGGGGTGGGGGG
+chr17 3505882 3505891 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr17 3505882 3505892 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr17 3505882 3505893 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr17 3505882 3505897 +V_VDR_Q3 5.65227e-07 + GGGGGTGGGGGGACA
+chr17 3505884 3505897 +V_MAZR_01 3.8307e-06 + GGGTGGGGGGACA
+chr17 4878848 4878859 +V_FLI1_Q6 9.02891e-06 + CAGGAAGTCCT
+chr17 4878875 4878886 -V_LEF1TCF1_Q4 9.40057e-06 - CCTTTGATGGT
+chr17 4878879 4878895 +V_NFKB_Q6_01 5.91669e-06 + TCAAAGGAAAGTCCCT
+chr17 4878882 4878896 -V_NFKB_Q6 1.6841e-06 - AAGGGACTTTCCTT
+chr17 4878883 4878895 -V_NFKB_C 2.44197e-06 - AGGGACTTTCCT
+chr17 4878883 4878896 -V_P50P50_Q3 5.92952e-06 - AAGGGACTTTCCT
+chr17 4878884 4878894 -V_NFKAPPAB65_01 4.05532e-06 - GGGACTTTCC
+chr17 4878884 4878894 -V_CREL_01 6.18085e-06 - GGGACTTTCC
+chr17 4878884 4878894 -V_NFKAPPAB_01 3.01332e-06 - GGGACTTTCC
+chr17 5490524 5490539 +V_OCT4_02 1.08801e-06 + TTTCACTTGCAAATG
+chr17 5490560 5490571 +V_GATA_C 4.75146e-06 + GGATAAGGACT
+chr17 5490578 5490594 -V_HAND1E47_01 6.93078e-06 - TCTGGCATCTGGCACA
+chr17 5490589 5490604 -V_HMGIY_Q3 1.66574e-06 - ACTGGATTTTTCTGG
+chr17 6267802 6267823 -V_PPARG_01 9.03013e-06 - TCACAGATCAAAGGACAAACG
+chr17 6267864 6267877 +V_MAZR_01 2.98074e-06 + TGGGGGGGGGTAG
+chr17 6267865 6267874 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr17 6267865 6267880 +V_SPZ1_01 5.23259e-07 + GGGGGGGGGTAGGGG
+chr17 6478510 6478529 +V_ER_Q6 2.33862e-06 + TACAGTGGCCGTGACCTGA
+chr17 6478517 6478528 -V_ER_Q6_02 6.42713e-07 - CAGGTCACGGC
+chr17 6478575 6478590 -V_SPZ1_01 5.23259e-07 - GGGGGGGGGTAGGGG
+chr17 6478578 6478591 -V_MAZR_01 2.98074e-06 - TGGGGGGGGGTAG
+chr17 6478581 6478590 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr17 6478634 6478655 +V_PPARG_01 9.03013e-06 + TCACAGATCAAAGGACAAACG
+chr17 6495844 6495856 -V_NANOG_01 7.60378e-06 - AGACCCATTGCC
+chr17 8432504 8432518 -V_ERR1_Q2 1.82748e-06 - AGCACAAGGTCACA
+chr17 8432521 8432536 +V_SMAD4_Q6 9.63362e-06 + GTGGGCCTGCCACCT
+chr17 9915742 9915755 +V_OCT_C 4.58343e-06 + TTCATTTGCATTT
+chr17 9915743 9915754 +V_OCT1_Q5_01 3.13512e-06 + TCATTTGCATT
+chr17 9915743 9915754 +V_OCT_Q6 2.98837e-06 + TCATTTGCATT
+chr17 10570418 10570433 -V_OCT4_02 2.94262e-07 - ATTGTGATGCTAAAT
+chr17 10570419 10570434 -V_OCT4_01 4.28625e-06 - TATTGTGATGCTAAA
+chr17 10624834 10624849 -V_VDR_Q3 1.37001e-08 - GGGGGAGGGGGGAGA
+chr17 10624837 10624850 -V_SP1_Q6 2.76363e-06 - CGGGGGAGGGGGG
+chr17 10624838 10624848 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr17 10624838 10624849 +V_SP1SP3_Q4 2.8432e-06 + CCCCCTCCCCC
+chr17 10624839 10624848 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr17 10624839 10624849 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr17 10624840 10624848 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr17 10624840 10624849 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr17 10624840 10624854 +V_KROX_Q6 1.60679e-07 + CCCTCCCCCGCCCC
+chr17 10624843 10624856 -V_SP1_Q6 1.48219e-06 - AGGGGGCGGGGGA
+chr17 10624844 10624854 -V_SP1_Q6_01 6.78413e-07 - GGGGCGGGGG
+chr17 10624844 10624855 +V_SP1SP3_Q4 3.19906e-06 + CCCCCGCCCCC
+chr17 10624845 10624854 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr17 10624845 10624855 +V_SP1_Q2_01 3.39206e-07 + CCCCGCCCCC
+chr17 10624846 10624857 -V_EGR_Q6 6.21659e-06 - GAGGGGGCGGG
+chr17 10624846 10624860 +V_KROX_Q6 1.5817e-06 + CCCGCCCCCTCCAG
+chr17 10624847 10624858 +V_SP1SP3_Q4 9.31298e-08 + CCGCCCCCTCC
+chr17 10624884 10624892 +V_CACD_01 9.89755e-06 + CCACACCC
+chr17 10624907 10624922 +V_SPZ1_01 6.53184e-06 + TCTGGGGGGTGGGGC
+chr17 10624908 10624923 -V_SREBP_Q6 8.95186e-06 - CGCCCCACCCCCCAG
+chr17 10624910 10624923 +V_SP1_Q6 9.29757e-07 + GGGGGGTGGGGCG
+chr17 10624911 10624920 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr17 10624911 10624921 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr17 10624911 10624924 +V_MAZR_01 5.14471e-06 + GGGGGTGGGGCGC
+chr17 10624912 10624922 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr17 10625512 10625527 +V_CP2_02 9.52691e-07 + GCAGGGTTGGGCTGG
+chr17 10625535 10625546 -V_IRF_Q6_01 3.86751e-06 - AAAACTGAAAG
+chr17 10625570 10625583 +V_RXRLXRB_01 5.3169e-06 + AGGTCCAAGGGCA
+chr17 10625588 10625597 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr17 10625588 10625602 +V_KROX_Q6 4.94478e-06 + CCCACCCCCTCCCA
+chr17 10625589 10625600 +V_SP1SP3_Q4 4.25103e-06 + CCACCCCCTCC
+chr17 10625594 10625604 -V_IK_Q5 1.3587e-06 - TTTGGGAGGG
+chr17 10625595 10625604 -V_LYF1_01 7.33929e-06 - TTTGGGAGG
+chr17 10625891 10625901 +V_CREL_01 4.68872e-06 + GGGGTTTTCC
+chr17 10625895 10625908 -V_STAT1STAT1_Q3 2.19152e-06 - GTTTACAGGAAAA
+chr17 10625904 10625916 +V_PAX4_03 1.74945e-06 + AAACCCCACCCC
+chr17 10625910 10625923 -V_SP1_Q6 7.54104e-06 - TGGGGGTGGGGTG
+chr17 10625912 10625922 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr17 10625913 10625922 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr17 10625913 10625924 -V_EGR_Q6 8.04446e-06 - GTGGGGGTGGG
+chr17 10625913 10625927 +V_KROX_Q6 6.89701e-06 + CCCACCCCCACCCT
+chr17 10625915 10625927 +V_PAX4_03 2.70808e-06 + CACCCCCACCCT
+chr17 10625919 10625928 -V_CACBINDINGPROTEIN_Q6 2.23138e-06 - GAGGGTGGG
+chr17 10669814 10669830 -V_AP2_Q3 9.06701e-07 - GCCCTCAGGCGGTGTC
+chr17 10669819 10669832 -V_AP2_Q6_01 1.26715e-06 - GGGCCCTCAGGCG
+chr17 11546204 11546218 +V_CEBPA_01 9.88249e-06 + ACATTGCAAAAGAA
+chr17 11546204 11546218 +V_CEBP_Q2 7.10503e-06 + ACATTGCAAAAGAA
+chr17 11546272 11546281 +V_T3R_Q6 8.74404e-06 + CCTGTCCTG
+chr17 11546305 11546313 -V_CACD_01 9.89755e-06 - CCACACCC
+chr17 11706844 11706858 -V_ERR1_Q2 1.82748e-06 - AAATCAAGGTCAGA
+chr17 11706846 11706855 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr17 11726846 11726861 +V_OCT4_02 1.90479e-06 + ATTGAGATGCAAAGC
+chr17 11726938 11726948 -V_SP1_Q2_01 9.56538e-06 - CCCCACCCCT
+chr17 11726939 11726951 -V_PAX4_03 3.63034e-06 - CAACCCCACCCC
+chr17 11726945 11726956 -V_FOXO4_01 7.64453e-06 - CTAAACAACCC
+chr17 12942952 12942965 -V_SP1_Q6 3.23457e-06 - TGGGGGAGGGGTG
+chr17 12942953 12942963 -V_SP1_Q6_01 9.74073e-06 - GGGGAGGGGT
+chr17 12942954 12942963 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr17 12942954 12942964 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr17 12942955 12942963 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr17 12942955 12942964 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr17 12942955 12942969 +V_KROX_Q6 4.70749e-06 + CCCTCCCCCATCCC
+chr17 12943065 12943080 -V_SREBP_Q6 3.71245e-06 - GACATCACCCCAGGC
+chr17 12943065 12943080 -V_SREBP1_Q5 9.31948e-06 - GACATCACCCCAGGC
+chr17 12943068 12943080 -V_SREBP_Q3 1.8438e-06 - GACATCACCCCA
+chr17 12943070 12943084 -V_ATF3_Q6 3.37778e-06 - GCCTGACATCACCC
+chr17 13572941 13572955 -V_E2A_Q2 2.75062e-06 - CCAGCTGGCTCAGG
+chr17 13572980 13572997 -V_DR4_Q2 6.81376e-06 - TGCTCTGCACTGAACCC
+chr17 13573025 13573033 +V_STAT3_02 9.89755e-06 + GGCTTCCC
+chr17 13573043 13573053 +V_POU3F2_02 1.99833e-06 + TTATGTTAAT
+chr17 13573080 13573090 +V_POU3F2_02 1.99833e-06 + TTATGTTAAT
+chr17 15428777 15428798 -V_PPARG_01 8.77879e-06 - ACTAAGGTCAAGGGTGAATAC
+chr17 15428781 15428794 +V_PPAR_DR1_Q2 5.59541e-06 + TCACCCTTGACCT
+chr17 15428781 15428794 -V_RXRLXRB_01 7.77466e-06 - AGGTCAAGGGTGA
+chr17 15428781 15428794 -V_DR1_Q3 2.76991e-06 - AGGTCAAGGGTGA
+chr17 15428866 15428876 +V_NUR77_Q5 2.98426e-06 + CTGACCTTCC
+chr17 21202611 21202619 -V_CACD_01 9.89755e-06 - CCACACCC
+chr17 21202676 21202696 +V_MYCMAX_03 6.15675e-07 + GAAGGAACACGTGTCTCTGG
+chr17 21202676 21202696 -V_MYCMAX_03 6.15675e-07 - CCAGAGACACGTGTTCCTTC
+chr17 22255894 22255904 -V_POU3F2_02 5.63759e-06 - ATATGTTAAT
+chr17 25816909 25816922 +V_SP1_Q6 3.53849e-06 + GGGGGGTGGGGGG
+chr17 25816910 25816919 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr17 25816910 25816920 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr17 25816910 25816921 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr17 25816910 25816925 +V_VDR_Q3 2.76308e-06 + GGGGGTGGGGGGGGA
+chr17 25816911 25816923 -V_PAX4_03 9.67001e-06 - CCCCCCCACCCC
+chr17 25816911 25816925 -V_KROX_Q6 8.74919e-06 - TCCCCCCCCACCCC
+chr17 25816914 25816925 +V_EGR_Q6 5.98534e-06 + GTGGGGGGGGA
+chr17 25816914 25816928 -V_KROX_Q6 9.17068e-06 - CCCTCCCCCCCCAC
+chr17 25816919 25816928 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr17 25816920 25816928 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr17 25816920 25816929 -V_CKROX_Q2 3.66459e-06 - GCCCTCCCC
+chr17 25816978 25816991 -V_OCT_C 1.01107e-06 - CTCATTTGCATTT
+chr17 25816979 25816990 -V_OCT1_Q5_01 3.13512e-06 - TCATTTGCATT
+chr17 25816979 25816990 -V_OCT_Q6 2.98837e-06 - TCATTTGCATT
+chr17 25816994 25817009 +V_OCT4_01 5.63049e-06 + CTTTCAAATGCTGAT
+chr17 25892763 25892776 +V_GFI1_Q6 8.33208e-06 + AAAAATCACAGCC
+chr17 25892889 25892899 -V_NUR77_Q5 8.43564e-06 - CTGACCTTTG
+chr17 25893879 25893890 -V_EGR_Q6 3.55693e-06 - GTGGGGGCAGA
+chr17 25893879 25893893 +V_KROX_Q6 9.2663e-07 + TCTGCCCCCACCCC
+chr17 25893882 25893897 +V_SREBP_Q6 9.90089e-06 + GCCCCCACCCCAGAT
+chr17 26116875 26116895 -V_YY1_02 1.52472e-06 - CCCAGGCCATTTTCTCTGGA
+chr17 26116887 26116900 -V_AP2_Q6_01 3.36599e-06 - CTGTCCCCAGGCC
+chr17 26648357 26648375 +V_FOXJ2_01 3.2621e-06 + TCTCAAATAAACAAATAA
+chr17 26648360 26648373 -V_HFH8_01 1.84768e-06 - ATTTGTTTATTTG
+chr17 26648361 26648373 -V_FOXD3_01 9.53633e-06 - ATTTGTTTATTT
+chr17 26648361 26648379 -V_HNF3_Q6_01 2.87333e-06 - CTTTTTATTTGTTTATTT
+chr17 26648363 26648376 +V_HNF3_Q6 7.04647e-06 + ATAAACAAATAAA
+chr17 26648364 26648377 -V_FOX_Q2 5.55936e-06 - TTTTATTTGTTTA
+chr17 26648364 26648377 -V_HFH3_01 7.45015e-06 - TTTTATTTGTTTA
+chr17 26648364 26648377 -V_HFH4_01 3.17054e-06 - TTTTATTTGTTTA
+chr17 26648377 26648387 -V_SP1_Q2_01 9.56538e-06 - CCCCACCCCT
+chr17 26648378 26648390 -V_PAX4_03 2.40392e-07 - CACCCCCACCCC
+chr17 26648378 26648392 -V_KROX_Q6 9.60222e-07 - TCCACCCCCACCCC
+chr17 26648384 26648396 -V_PAX4_03 1.74945e-06 - CACCTCCACCCC
+chr17 26648453 26648464 -V_LEF1TCF1_Q4 7.79522e-06 - CCTTTGAACTC
+chr17 26648468 26648487 -V_PU1_Q4 3.23812e-06 - TCCTTTGTCTTCCTCTTTG
+chr17 27375729 27375742 +V_OCT_C 3.7644e-06 + CACATTTGCATGT
+chr17 27375782 27375791 -V_CACBINDINGPROTEIN_Q6 6.29506e-06 - GAGGCTGGG
+chr17 27375820 27375835 -V_SREBP_Q6 5.81609e-06 - GCCCCCACCCCACAC
+chr17 27375820 27375835 -V_SREBP1_Q5 4.55744e-06 - GCCCCCACCCCACAC
+chr17 27375824 27375838 -V_KROX_Q6 2.09798e-07 - CCTGCCCCCACCCC
+chr17 27375827 27375838 +V_EGR_Q6 1.38101e-06 + GTGGGGGCAGG
+chr17 27638885 27638900 +V_OCT4_01 6.46423e-06 + AATTGAATTGCAAAT
+chr17 27638886 27638901 +V_OCT4_02 5.69461e-06 + ATTGAATTGCAAATC
+chr17 27638938 27638952 -V_KROX_Q6 3.79201e-06 - CCTGCCCCCTCCAC
+chr17 29324334 29324349 +V_OCT4_01 9.73507e-08 + CTTTGTCATGCAGAT
+chr17 29324335 29324350 +V_OCT4_02 2.69329e-07 + TTTGTCATGCAGATG
+chr17 30399138 30399148 -V_NKX25_Q5 8.11064e-06 - TGCCACTTCC
+chr17 30399143 30399152 -V_RFX_Q6 3.30926e-06 - CTGTTGCCA
+chr17 31444823 31444836 +V_PPAR_DR1_Q2 8.84028e-06 + TGACCTCTCTCCC
+chr17 31711686 31711698 +V_IK2_01 1.22274e-06 + CATTGGGAATGC
+chr17 31711693 31711707 -V_E2A_Q2 1.73147e-06 - CCACCTGCTGCATT
+chr17 31711694 31711712 +V_MYOD_Q6_01 1.68518e-06 + ATGCAGCAGGTGGCTGGG
+chr17 31711717 31711731 +V_GATA1_03 4.1196e-06 + GGGATGATTACAGC
+chr17 31711818 31711833 -V_PEBP_Q6 8.53509e-06 - CCTGACCACAACTGT
+chr17 32068701 32068712 +V_EBF_Q6 7.15927e-06 + CTCCCTAGAGA
+chr17 32068828 32068844 +V_NFY_01 1.25937e-06 + CCCAACCAATGGGAAG
+chr17 32102732 32102747 -V_VDR_Q3 9.00638e-06 - GGGTAAGGGAAGTGA
+chr17 32102755 32102773 -V_CMYB_01 8.88706e-07 - GCCAGAGGCAGTTGGCTG
+chr17 32102757 32102767 +V_MYB_Q6 5.43478e-06 + GCCAACTGCC
+chr17 32102758 32102772 +V_E2A_Q2 7.08461e-06 + CCAACTGCCTCTGG
+chr17 32102759 32102770 -V_MYB_Q3 3.40516e-06 - AGAGGCAGTTG
+chr17 32432899 32432914 +V_OCT4_01 1.40241e-06 + TATTGTAATGCTAAA
+chr17 32432900 32432915 +V_OCT4_02 6.55103e-06 + ATTGTAATGCTAAAT
+chr17 32432923 32432932 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr17 32432923 32432933 -V_NUR77_Q5 8.43564e-06 - TTGACCTTGG
+chr17 32716499 32716515 -V_AP2_Q3 6.40204e-06 - CCCCCCAGGCCACAGC
+chr17 32716504 32716517 -V_AP2_Q6_01 3.62379e-07 - CACCCCCCAGGCC
+chr17 32716507 32716526 +V_PPARA_02 5.65647e-06 + CTGGGGGGTGGGGGTGGGG
+chr17 32716509 32716522 +V_SP1_Q6 5.65055e-06 + GGGGGGTGGGGGT
+chr17 32716510 32716519 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr17 32716510 32716520 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr17 32716510 32716521 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr17 32716511 32716523 -V_PAX4_03 2.40392e-07 - CACCCCCACCCC
+chr17 32716511 32716525 -V_KROX_Q6 2.21131e-07 - CCCACCCCCACCCC
+chr17 32716514 32716525 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr17 32716516 32716525 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr17 32716516 32716526 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr17 32716516 32716527 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr17 32716517 32716529 -V_PAX4_03 2.40392e-07 - CACCCCCACCCC
+chr17 32716517 32716531 -V_KROX_Q6 2.21131e-07 - CCCACCCCCACCCC
+chr17 32716520 32716531 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr17 32716522 32716531 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr17 32716522 32716532 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr17 32716522 32716533 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr17 32716523 32716535 -V_PAX4_03 1.74945e-06 - ATCCCCCACCCC
+chr17 32716630 32716640 -V_P53_DECAMER_Q2 6.84641e-06 - GGGCAAGTCC
+chr17 35685724 35685743 +V_PU1_Q4 9.43652e-06 + GTCATTCACTTCCTTCTCC
+chr17 36118916 36118924 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr17 36118972 36118984 -V_SRY_02 6.58101e-06 - CAAAACAAAAGG
+chr17 37164690 37164705 +V_OCT4_01 5.63049e-06 + CATTCTTATTCAAAC
+chr17 38127672 38127684 -V_VDR_Q6 2.12523e-06 - CCTGGTGAACCC
+chr17 38127729 38127752 +V_OCT1_04 7.77296e-06 + GGATTGATATGTAAAATAAAGGA
+chr17 40720970 40720986 +V_MMEF2_Q6 6.11616e-06 + GGCTCTAAAAAAAGCT
+chr17 40720974 40720986 -V_MEF2_Q6_01 6.45006e-06 - AGCTTTTTTTAG
+chr17 40721038 40721053 -V_OCT4_01 1.96957e-07 - TATTCAAATGCAAAT
+chr17 43256526 43256536 +V_SP1_Q2_01 9.56538e-06 + CCCCGCCCTG
+chr17 43256549 43256567 -V_GCNF_01 5.83895e-07 - CGCAAGTTCAAGTTAACA
+chr17 43256604 43256614 +V_P53_DECAMER_Q2 6.84641e-06 + GGGCAAGTCC
+chr17 43388982 43388993 +V_EVI1_02 2.55227e-06 + TGATAAGATAA
+chr17 43388982 43388993 +V_EVI1_03 1.27098e-06 + TGATAAGATAA
+chr17 43388982 43388993 +V_EVI1_05 2.76517e-06 + TGATAAGATAA
+chr17 43647976 43647985 -V_T3R_Q6 8.74404e-06 - CCTGTCCTC
+chr17 43849061 43849076 -V_OCT4_02 2.05222e-06 - ATTCTTTTGCAAAAG
+chr17 43849062 43849077 -V_OCT4_01 7.41924e-06 - CATTCTTTTGCAAAA
+chr17 47275576 47275593 -V_HSF1_Q6 5.57435e-06 - CTTCTAGAAGTTACACC
+chr17 47275598 47275612 +V_GATA1_02 5.2355e-07 + TTGGAGATAGGGGA
+chr17 47275602 47275619 +V_PU1_01 2.28947e-06 + AGATAGGGGAAGTGGAC
+chr17 47275603 47275622 -V_PU1_Q4 2.14079e-06 - CCAGTCCACTTCCCCTATC
+chr17 47955228 47955241 +V_GFI1_Q6 8.33208e-06 + GTAAATCACTGCT
+chr17 47955229 47955241 +V_GFI1B_01 1.66806e-07 + TAAATCACTGCT
+chr17 48755680 48755703 +V_PPARG_02 5.31222e-06 + CAGTGGCTCACCCTGCCCTCATC
+chr17 48755697 48755710 +V_OCT_C 4.94168e-06 + CTCATCTGCATAC
+chr17 48755710 48755718 +V_STAT3_02 9.89755e-06 + GGCTTCCC
+chr17 48755751 48755766 +V_OCT4_01 2.83977e-06 + ATTTGTTATGCATAT
+chr17 48755970 48755984 -V_E2A_Q2 4.16854e-06 - CCAGCTGCCTCCTA
+chr17 48756062 48756077 -V_ETS1_B 1.36208e-06 - GGAGGAAGTGAGTTG
+chr17 48756064 48756076 +V_ETS_Q4 3.72534e-06 + ACTCACTTCCTC
+chr17 48756064 48756078 -V_ETS2_B 2.81492e-06 - TGGAGGAAGTGAGT
+chr17 48756072 48756083 +V_ALPHACP1_01 3.14106e-06 + CCTCCAATGAG
+chr17 48756083 48756092 -V_FOXM1_01 8.06007e-06 - AGATGGAGT
+chr17 49187368 49187383 +V_HMGIY_Q3 9.445e-07 + CCTGGAATTTCCTGG
+chr17 49187370 49187380 +V_NFKAPPAB65_01 5.16177e-06 + TGGAATTTCC
+chr17 49187455 49187470 +V_PEBP_Q6 5.6633e-06 + AATGACCACAGACTT
+chr17 50470810 50470826 +V_NFY_01 9.91219e-07 + CACAGCCAATGGGAGC
+chr17 50470812 50470823 +V_ALPHACP1_01 4.48665e-06 + CAGCCAATGGG
+chr17 50470883 50470902 +V_SRF_Q5_02 6.64334e-06 + ATGATCCTTTTATGGCATC
+chr17 50470904 50470932 -V_PAX5_02 6.26566e-06 - AAAATGTGATCTTCAGCCTGACAACAAA
+chr17 50470938 50470955 -V_PPARG_03 7.84978e-06 - TAGCTGGTTGAAGGTCA
+chr17 50556072 50556090 +V_HNF3_Q6_01 1.41138e-06 + CTCACTGTTTGCTTTATA
+chr17 50556074 50556087 +V_FOX_Q2 8.50378e-06 + CACTGTTTGCTTT
+chr17 50556075 50556088 -V_HNF3_Q6 7.97369e-06 - TAAAGCAAACAGT
+chr17 50567184 50567199 -V_OCT1_02 2.73623e-06 - ATGAATATTCAAGAG
+chr17 50567187 50567202 +V_OCT1_02 9.99712e-06 + TTGAATATTCATGAC
+chr17 50567202 50567217 +V_OCT4_01 4.7383e-08 + TATTCTAATGCAAAT
+chr17 50567203 50567218 +V_OCT4_02 2.58651e-06 + ATTCTAATGCAAATG
+chr17 50567208 50567219 -V_OCT1_Q5_01 3.13512e-06 - TCATTTGCATT
+chr17 50567208 50567219 -V_OCT_Q6 2.98837e-06 - TCATTTGCATT
+chr17 50694649 50694661 -V_NKX62_Q2 7.5322e-06 - GAAGTAAATAGC
+chr17 50694649 50694668 +V_PU1_Q4 6.18667e-06 + GCTATTTACTTCCTGTTTG
+chr17 50694655 50694666 -V_ELF5_01 4.25524e-06 - AACAGGAAGTA
+chr17 52868248 52868267 -V_OCT1_01 7.83092e-06 - ACAAATATGCTAAAATGAG
+chr17 52868327 52868340 -V_FOX_Q2 4.92187e-07 - GATTGTTTGCTTT
+chr17 52868328 52868340 -V_FOXD3_01 2.60094e-06 - GATTGTTTGCTT
+chr17 53591978 53591990 +V_PXR_Q2 6.30169e-06 + AGGGTCAAGAAA
+chr17 53592082 53592096 -V_FOXO3_01 3.6851e-06 - TGTTTGTTTACTAT
+chr17 53592086 53592099 -V_HFH3_01 3.96292e-06 - ACTTGTTTGTTTA
+chr17 53701204 53701219 -V_OCT4_02 6.55103e-06 - ATTGTAATGCTAAAT
+chr17 53701205 53701220 -V_OCT4_01 1.09956e-06 - CATTGTAATGCTAAA
+chr17 56771460 56771475 -V_SREBP_Q6 5.81609e-06 - TGGCCCACCCCACCC
+chr17 56771460 56771475 -V_SREBP1_Q5 2.95108e-06 - TGGCCCACCCCACCC
+chr17 56771470 56771483 +V_DEC_Q1 8.9012e-06 + GGCCAAGTGAATC
+chr17 56771509 56771517 +V_CACD_01 9.89755e-06 + CCACACCC
+chr17 56771557 56771587 -V_PAX4_04 8.27552e-06 - AAAGAAAACGCTAGAAACCAACCTGCTCCC
+chr17 56972937 56972951 -V_NFKB_Q6 8.38703e-06 - GGTGGAATCTCCTT
+chr17 56972963 56972973 -V_FOXO1_01 2.98837e-06 - CATAAACAAA
+chr17 56972980 56972989 -V_SMAD3_Q6 7.33929e-06 - TGTCTGCCT
+chr17 56972996 56973010 -V_PAX6_Q2 1.07719e-06 - CTGACCCTGAACTC
+chr17 57082121 57082135 +V_GATA1_02 5.54287e-06 + GCAGTGATAAGGGA
+chr17 64173236 64173253 +V_PU1_01 4.2823e-06 + GAGAAGGGGAAGTGGAT
+chr17 64173237 64173256 -V_PU1_Q4 3.89454e-07 - TGTATCCACTTCCCCTTCT
+chr17 64319862 64319875 +V_CEBPGAMMA_Q6 1.7433e-06 + CTGATTTCACAAA
+chr17 64887980 64887990 -V_ESE1_Q3 8.06007e-06 - AGCTTCCTGT
+chr17 64888010 64888024 -V_ERR1_Q2 1.4372e-06 - TGTTCAAGGTCAAA
+chr17 64888011 64888023 +V_LRH1_Q5 3.77826e-06 + TTGACCTTGAAC
+chr17 64888012 64888021 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr17 64888065 64888080 +V_DMRT1_01 3.89932e-06 + TGGAAACACTGTTGC
+chr17 64888067 64888082 -V_DMRT1_01 6.01487e-06 - TGGCAACAGTGTTTC
+chr17 65226067 65226082 -V_DMRT1_01 6.88848e-09 - TTGATACATTGTTTC
+chr17 65226068 65226082 -V_DMRT7_01 1.30327e-06 - TTGATACATTGTTT
+chr17 65226070 65226085 -V_DMRT3_01 8.64039e-06 - TGCTTGATACATTGT
+chr17 65226125 65226138 +V_SP1_Q6 8.76141e-06 + GGGGGGAGGAGGG
+chr17 65226129 65226140 -V_SP1SP3_Q4 2.26051e-06 - CCCCCTCCTCC
+chr17 66767271 66767286 -V_CP2_02 9.87124e-06 - GCTGGCTCGGGGCAG
+chr17 66767336 66767349 +V_CRX_Q4 3.17273e-06 + TCCTTAATCTCCC
+chr17 66767366 66767379 +V_GATA1_04 2.34959e-06 + GGCTGATAAGGGT
+chr17 68060691 68060704 +V_HFH3_01 2.06759e-06 + TCATGTTTATTTA
+chr17 68060711 68060722 +V_LEF1TCF1_Q4 7.79522e-06 + GCTTTGATGTT
+chr17 69816410 69816421 +V_MYB_Q3 9.34682e-06 + AGGGGCAGTTC
+chr17 71294606 71294634 +V_PAX5_01 4.15866e-07 + CCCAGGGGCAGGCGGGGGTGGAGGGAGG
+chr17 71294613 71294624 -V_SP1SP3_Q4 8.91927e-06 - CCCCCGCCTGC
+chr17 71748328 71748342 -V_BLIMP1_Q6 7.61005e-06 - AGAAAGTAAAAGGG
+chr17 71748387 71748402 -V_OCT1_02 6.11997e-06 - CAGAATATTCAGTTA
+chr17 71748396 71748409 -V_CEBPGAMMA_Q6 6.9741e-07 - TTCATTTCAGAAT
+chr17 71748400 71748416 +V_DMRT2_01 3.59916e-06 + TGAAATGAAACATTGT
+chr17 71748404 71748419 +V_DMRT1_01 1.11988e-06 + ATGAAACATTGTATC
+chr17 71748406 71748421 -V_DMRT1_01 2.58784e-07 - TAGATACAATGTTTC
+chr17 71748427 71748435 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr17 71748427 71748436 -V_CKROX_Q2 8.90515e-06 - TCCCTCCCC
+chr17 79035111 79035126 +V_OCT4_02 8.01355e-06 + ATTGAGTTGCAAAGA
+chr17 79035160 79035175 +V_OCT4_01 5.24325e-06 + TATGGAAATGCAAAT
+chr17 79035188 79035201 -V_AP1_01 5.13952e-06 - GCCTGAGTCAGCC
+chr17 79035189 79035200 +V_AP1_Q6 2.98654e-06 + GCTGACTCAGG
+chr17 79035203 79035214 -V_FOXO4_01 3.75885e-06 - CTAAACAAGCC
+chr17 80053720 80053735 -V_OCT4_01 5.63049e-06 - TTTTGTATTGCAAAC
+chr17 80053790 80053805 -V_OCT4_02 6.55103e-06 - ATTGTAATGCTAAAT
+chr17 80053791 80053806 -V_OCT4_01 1.40241e-06 - TATTGTAATGCTAAA
+chr17 80405629 80405639 -V_TATA_C 7.61768e-06 - CCTATAAAAA
+chr17 80405675 80405694 -V_PPARA_02 1.12088e-07 - GAGGGTCACATGGGTCAGG
+chr17 80405677 80405692 -V_VDR_Q3 9.46585e-06 - GGGTCACATGGGTCA
+chr17 80405709 80405719 +V_KAISO_01 3.50715e-06 + TTCCTGCTAA
+chr17 80405737 80405757 +V_FOXP1_01 4.3659e-06 + TTGTTTTTATTGTTCTGTGT
+chr17 80405757 80405771 +V_STAT3STAT3_Q3 6.11235e-06 + TTTACGGGGACTGC
+chr17 80900900 80900912 +V_NFAT_Q6 2.65054e-06 + CATTGGAAAAAG
+chr17 80900912 80900927 -V_DMRT1_01 1.3484e-06 - TTGCAACTTTGTTTC
+chr17 81141914 81141927 -V_CEBP_01 5.092e-06 - TGTTTGGTAAAGA
+chr17 81141938 81141952 -V_PAX6_Q2 2.64584e-06 - CTGAGCTGGAGGTC
+chr17 85736247 85736259 +V_PAX4_03 2.70808e-06 + GACTCCCACCCC
+chr17 87871253 87871267 -V_ETS2_B 1.51805e-06 - GGCAGGAAATATGT
+chr17 88077131 88077141 -V_POU1F1_Q6 5.995e-06 - ATGAATAAAA
+chr17 88077246 88077256 -V_POU1F1_Q6 5.995e-06 - ATGAATAAAA
+chr17 88789528 88789544 +V_AP2_Q3 5.66797e-06 + AGCCCCAGGCGATAAC
+chr17 90304210 90304221 +V_SP1SP3_Q4 8.91927e-06 + TCCCCCCCTCC
+chr17 90304212 90304225 -V_SP1_Q6 2.76363e-06 - CGGGGGAGGGGGG
+chr17 90304213 90304223 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr17 90304213 90304224 +V_SP1SP3_Q4 2.8432e-06 + CCCCCTCCCCC
+chr17 90304214 90304223 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr17 90304214 90304224 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr17 90304215 90304223 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr17 90304215 90304224 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr17 90304366 90304381 -V_SPZ1_01 2.6946e-06 - ACAGGAGGGATGGGG
+chr17 90304696 90304708 +V_CEBPDELTA_Q6 2.28218e-06 + CATTGCTTCACT
+chr17 90304717 90304726 -V_LYF1_01 7.33929e-06 - TTTGGGAGG
+chr17 90304763 90304773 +V_TATA_C 7.61768e-06 + CCTATAAAAA
+chr17 90382367 90382382 -V_DMRT3_01 1.87777e-06 - AAATTGCTACAATGT
+chr17 90382367 90382383 -V_DMRT2_01 7.55248e-08 - GAAATTGCTACAATGT
+chr17 90382369 90382382 +V_DMRT4_01 1.13767e-06 + ATTGTAGCAATTT
+chr17 90382419 90382431 +V_SRY_02 9.08784e-06 + TAAAACAAAAGA
+chr17 90382477 90382488 -V_EBF_Q6 4.4234e-06 - TTCCCCTGGGG
+chr17 90789847 90789859 -V_GLI_Q2 1.77433e-06 - TCTGGGTGGTGC
+chr17 90789959 90789968 +V_HNF4_Q6 7.33929e-06 + AAGGTCCAG
+chr18 3490250 3490260 +V_P53_DECAMER_Q2 4.12901e-06 + GGGCAAGCCC
+chr18 3490317 3490328 +V_SP1SP3_Q4 2.26051e-06 + CCCCCTCCTCC
+chr18 3490357 3490367 +V_NFAT_Q4_01 8.89473e-06 + GAGGAAAATC
+chr18 3867485 3867503 +V_LXR_Q3 3.52557e-06 + AAGGCTTACCAGGGGTCA
+chr18 3867487 3867503 -V_LXR_DR4_Q3 3.64321e-06 - TGACCCCTGGTAAGCC
+chr18 8966802 8966812 -V_ESE1_Q3 8.06007e-06 - TGCTTCCTGT
+chr18 8966813 8966826 -V_PPAR_DR1_Q2 7.19742e-06 - TGCCCTGTGGCCT
+chr18 8966859 8966871 +V_HNF6_Q6 8.1906e-06 + AGAAATCAATAG
+chr18 8966897 8966911 +V_COUP_01 9.24456e-06 + TGACCTCTAGACTT
+chr18 9810614 9810623 +V_CKROX_Q2 8.90515e-06 + TCCCTCCCC
+chr18 9810615 9810623 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr18 9810702 9810711 +V_T3R_Q6 3.30926e-06 + CCTGTCCTT
+chr18 10977502 10977513 -V_PITX2_Q2 3.03779e-07 - TGTAATCCCAA
+chr18 10977546 10977564 +V_HNF3_Q6_01 4.45363e-06 + CTGTTTATTTGCCTAGTG
+chr18 10977618 10977632 -V_ERR1_Q2 3.31639e-06 - AGTTCAAGGTCAGT
+chr18 10977618 10977636 -V_GCNF_01 9.72891e-07 - TGAGAGTTCAAGGTCAGT
+chr18 10977619 10977631 +V_LRH1_Q5 5.2397e-07 + CTGACCTTGAAC
+chr18 10977619 10977633 +V_PAX6_Q2 4.67224e-08 + CTGACCTTGAACTC
+chr18 10977620 10977629 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr18 11205309 11205319 +V_NKX25_Q5 5.12638e-06 + TCCCACTTCA
+chr18 13871242 13871257 +V_OCT4_01 5.24325e-06 + TATTCAAATGCTGAT
+chr18 13871261 13871273 +V_PAX4_03 3.63034e-06 + GTCCCCCACCCC
+chr18 13871263 13871274 +V_SP1SP3_Q4 8.91927e-06 + CCCCCACCCCC
+chr18 13871264 13871274 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr18 13871265 13871274 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr18 13871273 13871288 -V_DMRT1_01 1.51207e-06 - TTGAAACAATGTATG
+chr18 13871276 13871292 -V_DMRT2_01 1.18539e-06 - CAGATTGAAACAATGT
+chr18 13871298 13871313 +V_OCT4_01 3.74251e-06 + CATTGTAATGCTTAT
+chr18 13871314 13871329 -V_ETS1_B 7.24631e-06 - ACAGGAAATACTTGA
+chr18 13871316 13871330 -V_ETS2_B 3.28818e-07 - GACAGGAAATACTT
+chr18 13900808 13900822 -V_CEBPA_01 7.35284e-06 - ACATTGCTAAATCG
+chr18 13900836 13900860 +V_COMP1_01 8.41309e-06 + CCTTAGGATTGGTGGTAAAAGGTC
+chr18 13900844 13900865 +V_PPARG_01 3.83358e-06 + TTGGTGGTAAAAGGTCAAATG
+chr18 13900848 13900861 +V_RXRLXRB_01 7.97003e-06 + TGGTAAAAGGTCA
+chr18 13900848 13900861 +V_DR1_Q3 7.13764e-06 + TGGTAAAAGGTCA
+chr18 13900848 13900861 -V_PPAR_DR1_Q2 9.61169e-06 - TGACCTTTTACCA
+chr18 14835128 14835143 +V_OCT4_01 1.66292e-06 + CATTCAAATGCAAAG
+chr18 15266568 15266583 +V_PEBP_Q6 5.6633e-06 + GTACACCACAAACAG
+chr18 15266568 15266583 -V_AML_Q6 8.28446e-06 - CTGTTTGTGGTGTAC
+chr18 15366774 15366783 +V_EVI1_06 5.97675e-06 + ACAAGATAA
+chr18 15366774 15366787 +V_GATA1_04 9.51553e-06 + ACAAGATAAGGGC
+chr18 16649113 16649131 +V_GCNF_01 7.57156e-07 + CCTGAGTTCAAGTTCAGC
+chr18 16649116 16649130 -V_PAX6_Q2 4.94834e-06 - CTGAACTTGAACTC
+chr18 16649248 16649258 -V_SOX5_01 1.64093e-06 - TTAACAATAC
+chr18 17441049 17441064 +V_OCT4_01 1.40241e-06 + TATTGTAATGCTAAA
+chr18 17441050 17441065 +V_OCT4_02 6.55103e-06 + ATTGTAATGCTAAAT
+chr18 21102225 21102243 +V_GCNF_01 2.6146e-07 + TTAGAGTTCAAGGTCATC
+chr18 21102228 21102242 -V_PAX6_Q2 7.66755e-07 - ATGACCTTGAACTC
+chr18 21102229 21102243 +V_ERR1_Q2 2.07148e-06 + AGTTCAAGGTCATC
+chr18 21102230 21102242 -V_LRH1_Q5 3.77826e-06 - ATGACCTTGAAC
+chr18 21102232 21102241 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr18 21102252 21102264 -V_CEBP_Q3 7.38612e-06 - AAGTTTTGCAAA
+chr18 21102316 21102325 +V_LYF1_01 7.33929e-06 + TTTGGGAGG
+chr18 21102364 21102376 +V_ELF1_Q6 7.75166e-06 + ATTACAGGAAAT
+chr18 21102365 21102381 +V_NFKB_Q6_01 5.91669e-06 + TTACAGGAAATTCCCA
+chr18 21102367 21102382 -V_HMGIY_Q3 6.87308e-06 - CTGGGAATTTCCTGT
+chr18 21102368 21102382 -V_NFKB_Q6 4.22961e-06 - CTGGGAATTTCCTG
+chr18 21102369 21102381 -V_NFKB_C 9.50027e-06 - TGGGAATTTCCT
+chr18 21102370 21102380 -V_NFKAPPAB65_01 9.08563e-07 - GGGAATTTCC
+chr18 21102370 21102380 -V_CREL_01 7.08941e-06 - GGGAATTTCC
+chr18 21102370 21102380 -V_NFKAPPAB_01 1.65463e-06 - GGGAATTTCC
+chr18 21102371 21102384 -V_IK3_01 8.31072e-06 - GACTGGGAATTTC
+chr18 21377006 21377020 -V_KROX_Q6 2.32952e-06 - CCCACCCCCACCCA
+chr18 21377009 21377020 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr18 21377011 21377020 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr18 21377014 21377024 +V_IK_Q5 4.33614e-06 + GGTGGGAGGG
+chr18 24552744 24552765 -V_STAT3_01 1.90442e-06 - CTTTGTTTCCGGCAAATGATG
+chr18 24552815 24552830 +V_OCT4_01 5.31494e-07 + ATTTGTCATGCAGAT
+chr18 24552816 24552831 +V_OCT4_02 1.18248e-06 + TTTGTCATGCAGATT
+chr18 24849816 24849831 -V_SMAD4_Q6 2.79808e-06 - GTGATGCAGCCAGTC
+chr18 24849867 24849886 +V_PU1_Q4 9.52422e-07 + GACTTTTATTTCCCCATTC
+chr18 24849963 24849986 +V_COUPTF_Q6 1.70374e-06 + CCCTGTGGCCTTTCCTCTGTGAC
+chr18 30281431 30281450 +V_SEF1_C 7.76863e-06 + AGGAGCTATCTCTGTGGTC
+chr18 30281461 30281476 +V_OCT4_01 9.65557e-06 + CTTAGTGATGCTAAT
+chr18 30281544 30281559 +V_SPZ1_01 2.19806e-06 + GGAGGAGGGTGAGGG
+chr18 30281548 30281563 +V_VDR_Q3 7.57997e-06 + GAGGGTGAGGGGTGA
+chr18 30282558 30282567 +V_CKROX_Q2 8.90515e-06 + TCCCTCCCC
+chr18 30282559 30282567 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr18 30282569 30282583 +V_BLIMP1_Q6 5.2171e-06 + GGGAAGGGGAAGGG
+chr18 30282570 30282589 -V_PU1_Q4 2.82586e-06 - GCCTCTCCCTTCCCCTTCC
+chr18 30282634 30282646 -V_MYOD_01 8.76432e-06 - CCACAGGTGGCA
+chr18 30669071 30669083 +V_GLI_Q2 3.63816e-06 + TGTGGGTGGGCC
+chr18 30669141 30669152 -V_AP1_Q4 2.788e-06 - AGTGACTCACT
+chr18 31728597 31728612 -V_OCT4_01 1.36814e-07 - CTTTGTTATGCAAAC
+chr18 32296113 32296122 -V_SMAD3_Q6 4.03003e-06 - TGTCTGTCT
+chr18 33572243 33572256 -V_DEC_Q1 7.65158e-06 - CTCCATGTGAAGA
+chr18 34830726 34830740 -V_KROX_Q6 2.22971e-06 - CCAGCCCCCAACCC
+chr18 34830732 34830741 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr18 34830749 34830760 +V_EBF_Q6 2.42561e-06 + GTCCCTTGGGG
+chr18 34830794 34830812 +V_CMYB_01 8.15265e-06 + GGCAATAACAGTTGCTGG
+chr18 35297799 35297822 -V_OCT1_04 1.55975e-06 - TCATTTAAATGCAAATCAGAGGA
+chr18 35297803 35297816 +V_OCT_C 2.55303e-06 + CTGATTTGCATTT
+chr18 35297803 35297818 -V_OCT1_Q6 2.61033e-06 - TTAAATGCAAATCAG
+chr18 35297804 35297815 +V_OCT1_Q5_01 7.39888e-07 + TGATTTGCATT
+chr18 35297804 35297815 +V_OCT_Q6 2.01087e-06 + TGATTTGCATT
+chr18 35297805 35297815 -V_OCT1_B 8.43065e-06 - AATGCAAATC
+chr18 35297806 35297821 -V_OCT4_01 1.28133e-06 - CATTTAAATGCAAAT
+chr18 35297838 35297848 -V_POU3F2_02 1.99833e-06 - TTATGTTAAT
+chr18 35297921 35297936 +V_OCT4_01 9.05006e-06 + CATTGTGTTGTAAAT
+chr18 35297922 35297937 +V_OCT4_02 2.05222e-06 + ATTGTGTTGTAAATG
+chr18 36110724 36110739 +V_SPZ1_01 7.19322e-06 + GAGGGAGGGAAGGGC
+chr18 36110809 36110818 +V_T3R_Q6 8.74404e-06 + CCTGTCCTG
+chr18 36111000 36111011 +V_EVI1_02 1.79797e-06 + AGACAAGATAG
+chr18 36111000 36111011 +V_EVI1_03 4.48668e-06 + AGACAAGATAG
+chr18 36111000 36111011 +V_EVI1_05 1.57476e-06 + AGACAAGATAG
+chr18 36111045 36111063 -V_GCNF_01 3.54739e-06 - AGAAAGTGCAAGGTCATC
+chr18 36111046 36111058 +V_LRH1_Q5 3.77826e-06 + ATGACCTTGCAC
+chr18 36111089 36111109 +V_FOXP1_01 4.50341e-06 + TGTTTTGTTTTGTTTTGTTT
+chr18 36503797 36503810 +V_AP2_Q6_01 4.74029e-06 + TGGGCCCCAGGCT
+chr18 36503799 36503815 +V_AP2_Q3 7.19772e-06 + GGCCCCAGGCTTTGAT
+chr18 36503814 36503827 +V_HSF_Q6 2.81328e-06 + TTCCATAGGCTTC
+chr18 36503862 36503873 -V_EVI1_03 8.92601e-06 - AGATAAGATTG
+chr18 36503862 36503873 -V_EVI1_05 9.70501e-06 - AGATAAGATTG
+chr18 36503937 36503960 +V_PPARG_02 4.04283e-07 + CAGTAAGTCACAGTGTCCCACTA
+chr18 36503937 36503960 -V_PPARG_02 3.39755e-06 - TAGTGGGACACTGTGACTTACTG
+chr18 38165669 38165681 +V_NANOG_01 2.5276e-06 + TGGGCCATTTCC
+chr18 38165670 38165686 -V_MAF_Q6 9.01376e-06 - TGGGGGGAAATGGCCC
+chr18 38165760 38165775 +V_VDR_Q3 7.57997e-06 + GGGGGAGGAGAGAGA
+chr18 38165773 38165784 -V_PAX_Q6 2.73139e-06 - CTGGAACTCTC
+chr18 38165824 38165837 +V_SP1_Q6 8.76141e-06 + GGGGGGAGGGGGA
+chr18 38165825 38165834 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr18 38165825 38165835 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr18 38165825 38165836 -V_SP1SP3_Q4 2.8432e-06 - CCCCCTCCCCC
+chr18 38165826 38165834 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr18 38165826 38165835 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr18 38165826 38165836 +V_SP1_Q6_01 8.48538e-06 + GGGGAGGGGG
+chr18 38165826 38165840 -V_KROX_Q6 4.24911e-06 - TCCTCCCCCTCCCC
+chr18 38436292 38436305 -V_NRF2_Q4 7.87585e-06 - TTCCAGAGTCATG
+chr18 38436408 38436419 +V_RORA_Q4 4.57758e-06 + AAAGTAGGTCA
+chr18 38439752 38439761 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr18 38439868 38439886 +V_CMYB_01 7.67825e-06 + CAGAGAAGCAGTTAGGGG
+chr18 38451364 38451372 -V_CACD_01 9.89755e-06 - CCACACCC
+chr18 38536957 38536975 -V_MYOD_Q6_01 9.19422e-06 - TCAGGCCAGGTGGCGGGA
+chr18 38536960 38536972 -V_LMO2COM_01 7.876e-06 - GGCCAGGTGGCG
+chr18 38536962 38536972 +V_EBOX_Q6_01 6.43409e-06 + CCACCTGGCC
+chr18 38537048 38537058 +V_BCL6_Q3 1.81713e-06 + GGTTCTAGGA
+chr18 38537077 38537091 +V_ERR1_Q2 2.97688e-06 + AGATAAAGGTCACC
+chr18 38537095 38537108 -V_P50P50_Q3 2.54006e-06 - AGGGGAATTCCAG
+chr18 38537097 38537107 -V_CREL_01 5.43478e-06 - GGGGAATTCC
+chr18 38732464 38732479 +V_OCT4_01 2.45515e-06 + CTTTGATATGTAAAA
+chr18 38735877 38735900 +V_COUPTF_Q6 8.41277e-07 + CCCCTTGACCCCTCCCCACCTCG
+chr18 38735882 38735895 -V_MAZR_01 2.79447e-06 - TGGGGAGGGGTCA
+chr18 38735884 38735894 -V_SP1_Q6_01 9.74073e-06 - GGGGAGGGGT
+chr18 38735885 38735894 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr18 38735886 38735894 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr18 38735935 38735946 -V_EBF_Q6 4.00905e-06 - CTCCCCAGGGA
+chr18 38735950 38735959 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr18 38899233 38899251 -V_NF1_Q6 4.59425e-06 - AATTGGCTGGAGCCCAAC
+chr18 38899234 38899251 +V_NF1_Q6_01 7.65712e-06 + TTGGGCTCCAGCCAATT
+chr18 38899267 38899282 +V_DMRT1_01 8.47921e-07 + CAGAAACAATGTTGC
+chr18 38899269 38899284 -V_DMRT1_01 5.37485e-07 - TAGCAACATTGTTTC
+chr18 39063676 39063686 +V_P53_02 8.04166e-06 + GGACATGCCC
+chr18 39063746 39063757 +V_NFE2_01 3.70226e-06 + TGCTGAGTCCC
+chr18 39284408 39284419 -V_NFY_Q6 4.23487e-06 - GAACCAATCAC
+chr18 39284449 39284460 +V_FLI1_Q6 1.42541e-06 + CAGGAAGTCAC
+chr18 39284459 39284470 -V_AP1_Q4 7.9984e-06 - AGTGACTCAGG
+chr18 39284502 39284517 -V_OCT4_02 3.61302e-07 - ATTCTGATGCTAATT
+chr18 39284503 39284518 -V_OCT4_01 1.94673e-06 - TATTCTGATGCTAAT
+chr18 43503306 43503329 +V_COUPTF_Q6 1.02451e-06 + CCCCATGACCTCAGCCCTGGCCC
+chr18 43503327 43503337 -V_LEF1_Q2_01 1.81713e-06 - GATCAAAGGG
+chr18 43503328 43503339 +V_LEF1TCF1_Q4 2.36341e-06 + CCTTTGATCCT
+chr18 43503342 43503352 -V_IK_Q5 2.47439e-06 - GCTGGGAGGG
+chr18 43503346 43503355 -V_CACBINDINGPROTEIN_Q6 8.12736e-06 - GGGGCTGGG
+chr18 44724844 44724854 -V_BCL6_Q3 7.66428e-06 - GCTTCTAGGA
+chr18 44724861 44724869 -V_CACD_01 9.89755e-06 - CCACACCC
+chr18 44725103 44725122 -V_OCT1_01 5.76347e-08 - GTGAATATGCAAATGTCAG
+chr18 44725105 44725118 +V_OCT_C 9.35619e-06 + GACATTTGCATAT
+chr18 44725106 44725117 +V_OCT_Q6 7.02042e-06 + ACATTTGCATA
+chr18 44725107 44725117 -V_OCT1_B 4.33582e-06 - TATGCAAATG
+chr18 44725107 44725122 -V_OCT1_02 2.73623e-06 - GTGAATATGCAAATG
+chr18 44725129 44725144 -V_OCT4_01 7.41924e-06 - GTTTGTAATGCAAAC
+chr18 53082996 53083008 -V_SRY_02 2.38689e-06 - GAAAACAAAAGA
+chr18 53083074 53083088 +V_NFY_C 4.86959e-07 + CTTGATTGGCTACC
+chr18 53425073 53425083 +V_TAL1_Q6 3.62595e-06 + GCCAGCTGCT
+chr18 53425181 53425189 -V_CACD_01 9.89755e-06 - CCACACCC
+chr18 53571205 53571218 -V_CEBP_01 5.092e-06 - TCTTTGGAAACGT
+chr18 54666101 54666116 -V_IPF1_Q4_01 7.22911e-06 - TGGCCCATTATATTC
+chr18 55071034 55071048 +V_MTF1_Q4 3.37125e-06 + TTTGCACCCTCCCC
+chr18 55071040 55071048 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr18 55071040 55071049 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr18 55071040 55071054 +V_KROX_Q6 4.70749e-06 + CCCTCCCCCACCCA
+chr18 55071062 55071073 -V_GATA_C 9.83488e-06 - AGATAAGAACT
+chr18 56904336 56904348 +V_GLI_Q2 6.68438e-06 + TGTGGGTGGTTC
+chr18 58331637 58331661 +V_BRACH_01 2.34704e-06 + AACCCCACAAATGGGTGTGACATC
+chr18 61102605 61102618 +V_MAZR_01 5.23048e-07 + TGGGGGGGGGAAA
+chr18 61102606 61102615 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr18 61376671 61376682 +V_EGR_Q6 1.01606e-06 + GTGGGGGCGGA
+chr18 61376672 61376685 +V_SP1_Q6 2.31776e-06 + TGGGGGCGGAGGC
+chr18 61376673 61376683 -V_SP1_Q2_01 3.57003e-06 - CTCCGCCCCC
+chr18 61376674 61376684 +V_SP1_Q6_01 9.74073e-06 + GGGGCGGAGG
+chr18 61376743 61376754 -V_FLI1_Q6 9.02891e-06 - CAGGAAGCCAC
+chr18 61376763 61376775 +V_CEBP_Q3 1.27504e-06 + GGGTTTGGCAAC
+chr18 61376780 61376793 -V_PPAR_DR1_Q2 6.37174e-06 - AGACCTTTCTCCC
+chr18 61377064 61377077 +V_NRF2_Q4 5.51501e-06 + ATGCTTAGTCATC
+chr18 61377103 61377117 +V_GATA1_03 9.04902e-06 + AGGAGGATTAGAAG
+chr18 61377139 61377151 +V_ELF1_Q6 7.39845e-06 + GTTAGAGGAAGC
+chr18 61519865 61519881 +V_NFKB_Q6_01 2.34992e-07 + GTCAGGGAAACTCCCC
+chr18 61519870 61519880 -V_NFKAPPAB65_01 4.05532e-06 - GGGAGTTTCC
+chr18 61612368 61612389 -V_PAX6_01 3.57476e-06 - GATTTTCACGGCTGACTTCTA
+chr18 61612391 61612400 +V_T3R_Q6 8.74404e-06 + CCTGTCCTC
+chr18 61612491 61612507 +V_GRE_C 6.56516e-06 + CTTACCGGCTGTCCTT
+chr18 65204703 65204712 +V_RFX_Q6 3.30926e-06 + CTGTTGCCA
+chr18 65204715 65204730 +V_AML_Q6 1.43323e-06 + ATGGGTGTGGTTTGC
+chr18 65204717 65204725 -V_CACD_01 9.89755e-06 - CCACACCC
+chr18 65690278 65690294 +V_AP2_Q3 7.75056e-07 + GCCCCAGGGCTGGGGG
+chr18 65690330 65690339 +V_SMAD3_Q6 7.33929e-06 + TGTCTGCCT
+chr18 65992992 65993007 +V_IRF_Q6 6.5579e-07 + TTCGCTTTCATTTCT
+chr18 68090446 68090456 +V_IK_Q5 6.81053e-06 + CTTGGGAGGG
+chr18 69629113 69629124 -V_SP1SP3_Q4 6.27849e-06 - CCGCCACCCCC
+chr18 69629126 69629142 +V_DMRT2_01 4.26622e-07 + AAAAGTGATACATTGT
+chr18 69629132 69629147 -V_DMRT1_01 4.82232e-07 - CTGTTACAATGTATC
+chr18 69629136 69629151 +V_DMRT5_01 5.79033e-06 + CATTGTAACAGTTGC
+chr18 69629171 69629186 -V_DMRT1_01 4.82232e-07 - CTGTTACAATGTATC
+chr18 69629175 69629190 +V_DMRT5_01 5.79033e-06 + CATTGTAACAGTTGC
+chr18 69629199 69629217 -V_MYOD_Q6_01 3.0826e-06 - CTGCAGCAGCTGACAGAG
+chr18 69941911 69941920 -V_T3R_Q6 8.74404e-06 - CCTGTCCTG
+chr18 69941943 69941955 +V_ELF1_Q6 5.55022e-06 + GCAACAGGAAGT
+chr18 69942032 69942047 -V_OCT4_02 4.618e-06 - ATTCAGATGCTAAGC
+chr18 69942296 69942307 +V_NFE2_01 3.11642e-06 + TACTGAGTCAT
+chr18 69942296 69942307 +V_MAF_Q6_01 9.11965e-06 + TACTGAGTCAT
+chr18 69942297 69942308 -V_AP1_Q2 4.39628e-06 - GATGACTCAGT
+chr18 69942297 69942308 -V_AP1_Q6 9.95513e-07 - GATGACTCAGT
+chr18 69942297 69942308 -V_AP1_Q4 5.85286e-06 - GATGACTCAGT
+chr18 69942298 69942307 -V_AP1_Q6_01 4.03003e-06 - ATGACTCAG
+chr18 69942308 69942319 +V_EBF_Q6 6.61149e-06 + TTCCCCAGGGG
+chr18 69942310 69942321 -V_EBF_Q6 7.68235e-06 - CTCCCCTGGGG
+chr18 69942353 69942368 +V_PEBP_Q6 7.64793e-06 + GGTAACCACATAAGG
+chr18 69942353 69942368 -V_AML_Q6 8.96093e-06 - CCTTATGTGGTTACC
+chr18 69942362 69942373 +V_HELIOSA_02 1.64093e-06 + ATAAGGAAAAC
+chr18 73376654 73376668 +V_ETS2_B 8.88244e-06 + AGCAGGAAACCCTT
+chr18 73376728 73376740 +V_FOXD3_01 6.82555e-06 + GAATGTTGATTT
+chr18 73376728 73376741 +V_FOX_Q2 6.24168e-06 + GAATGTTGATTTA
+chr18 74792495 74792510 +V_ETS1_B 3.61409e-06 + GGAGGATGTGGCTGA
+chr18 74792496 74792508 -V_ETS_Q4 7.06097e-06 - AGCCACATCCTC
+chr18 74900961 74900978 -V_NF1_Q6_01 2.86423e-06 - TGGGGCAGCTGCCAAGG
+chr18 74900961 74900979 +V_NF1_Q6 3.57123e-06 + CCTTGGCAGCTGCCCCAC
+chr18 74900961 74900979 -V_MYOD_Q6_01 9.19422e-06 - GTGGGGCAGCTGCCAAGG
+chr18 75466185 75466198 -V_SP1_Q6 6.70104e-07 - ACGGGGCGGGGTG
+chr18 75466186 75466196 -V_SP1_Q6_01 1.0915e-06 - GGGGCGGGGT
+chr18 75466187 75466196 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr18 75466187 75466197 +V_SP1_Q2_01 6.78413e-07 + CCCCGCCCCG
+chr18 75466198 75466207 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr18 75466245 75466257 +V_LMO2COM_01 9.25383e-06 + TGCCAGGTGCTG
+chr18 75466317 75466326 +V_CACBINDINGPROTEIN_Q6 6.29506e-06 + GAGGCTGGG
+chr18 75466387 75466397 -V_TAL1_Q6 7.46065e-07 - TCCAGCTGCT
+chr18 75466477 75466489 +V_ATF4_Q2 3.73781e-06 + CCTGACTCCAGG
+chr18 75466501 75466521 +V_ARNT_02 2.90028e-06 + GCCGTGGCACGTGATGGAGG
+chr18 75466501 75466521 -V_ARNT_02 2.90028e-06 - CCTCCATCACGTGCCACGGC
+chr18 75466504 75466518 +V_STRA13_01 4.10951e-06 + GTGGCACGTGATGG
+chr18 75487772 75487787 -V_HMGIY_Q3 7.44025e-07 - ATTGGAATTTCCTGT
+chr18 75487775 75487785 -V_NFKAPPAB65_01 5.16177e-06 - TGGAATTTCC
+chr18 75487815 75487826 +V_PITX2_Q2 1.22695e-06 + TTTAATCCCAG
+chr18 75487854 75487872 +V_GCNF_01 3.68477e-06 + CAGGAGTTCAAGATCATC
+chr18 75487883 75487901 +V_GCNF_01 6.18313e-06 + ATCTAGTTCAAGGGTAGC
+chr18 76018986 76018995 +V_MSX1_01 4.03003e-06 + CCGTAATTG
+chr18 76019064 76019082 -V_MYOD_Q6_01 4.24384e-06 - TCCAGCCAGGTGGCCAGG
+chr18 76175645 76175658 +V_NRF2_Q4 2.00547e-07 + ATGCTGAGTCATC
+chr18 76175646 76175657 +V_NFE2_01 4.54281e-07 + TGCTGAGTCAT
+chr18 76175646 76175657 +V_MAF_Q6_01 4.54281e-07 + TGCTGAGTCAT
+chr18 76175647 76175658 +V_BACH2_01 9.3479e-06 + GCTGAGTCATC
+chr18 76175647 76175658 -V_AP1_Q6 1.20035e-06 - GATGACTCAGC
+chr18 76175648 76175657 -V_AP1_Q6_01 4.03003e-06 - ATGACTCAG
+chr18 77276843 77276859 +V_AP2_Q3 6.40204e-06 + GGCCTTAGGCTGTGGG
+chr18 77958928 77958943 -V_OCT4_01 2.45515e-06 - CTTTGATATGTAAAA
+chr18 77958944 77958954 +V_EBOX_Q6_01 6.43409e-06 + CCACCTGGCC
+chr18 77996290 77996300 +V_GATA1_05 5.81636e-06 + ACAGATAACA
+chr18 77996309 77996324 +V_OCT4_01 1.40241e-06 + TTTTCATATGCAAAC
+chr18 77996404 77996419 -V_VDR_Q3 7.16583e-06 - AGGGGAAGGAGGTGA
+chr18 78026582 78026596 +V_EFC_Q6 8.902e-06 + CATCAATAGGCAAA
+chr18 78026603 78026619 +V_AP2_Q3 3.02252e-06 + GTCGGCAGGCGGGGGA
+chr18 78026607 78026618 -V_SP1SP3_Q4 8.91927e-06 - CCCCCGCCTGC
+chr18 78026608 78026622 -V_KROX_Q6 8.32366e-06 - CCCTCCCCCGCCTG
+chr18 78026612 78026625 +V_SP1_Q6 2.31776e-06 + CGGGGGAGGGGTG
+chr18 78026613 78026622 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr18 78026613 78026623 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr18 78026613 78026626 +V_MAZR_01 8.79511e-06 + GGGGGAGGGGTGA
+chr18 78026614 78026622 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr18 78026614 78026623 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr18 78026614 78026624 +V_SP1_Q6_01 9.74073e-06 + GGGGAGGGGT
+chr18 78026618 78026637 +V_PPARA_02 2.57121e-06 + AGGGGTGATTTGGGTTTGG
+chr18 78026644 78026673 +V_MYOGNF1_01 5.74269e-06 + CACCGCTTGGAACTAGAAGGCAGCCTAGA
+chr18 79584595 79584609 -V_POU3F2_01 8.80254e-07 - ATACATTGATTCAT
+chr18 79584670 79584685 +V_OCT4_01 1.09956e-06 + CATTGAAATGGAAAT
+chr18 80381486 80381500 -V_ETS2_B 4.30291e-06 - AACAGGAAGCCTTT
+chr18 80381489 80381499 +V_ESE1_Q3 8.80613e-06 + GGCTTCCTGT
+chr18 80381540 80381555 -V_OCT4_01 5.63049e-06 - CATTCTTATTCAAAC
+chr18 80381585 80381597 +V_GATA4_Q3 3.36478e-06 + AGATCTCAGGGA
+chr18 81373484 81373496 +V_ETS_Q4 7.92948e-06 + CCCTACTTCCTG
+chr18 81373484 81373501 -V_PU1_01 8.64552e-07 - ACAAGCAGGAAGTAGGG
+chr18 81373581 81373599 -V_GCNF_01 9.12595e-06 - CCCCAGTTCAAGAGCACA
+chr18 81373611 81373626 +V_OCT4_01 3.74251e-06 + CTTTGTCTTGTAAAT
+chr18 81373652 81373662 +V_PR_Q2 8.13856e-06 + GAAAGGACAG
+chr18 81817169 81817192 -V_COUPTF_Q6 2.45741e-06 - TCCCCTGGCCTTTCCCCAATAAT
+chr18 81817284 81817299 +V_PEBP_Q6 1.09866e-06 + GCTGACCACAGACTA
+chr18 81817284 81817299 -V_AML_Q6 2.0942e-06 - TAGTCTGTGGTCAGC
+chr18 82546840 82546849 -V_SMAD3_Q6 7.33929e-06 - TGTCTGCCT
+chr18 82546900 82546917 -V_DR4_Q2 6.2393e-07 - TGACCTCCTGTGAACTC
+chr18 82666353 82666363 -V_TAL1_Q6 7.11328e-06 - ACCAGCTGCT
+chr18 82666465 82666478 +V_SOX_Q6 4.08214e-06 + TTCTTTGTTATCA
+chr18 83665714 83665724 +V_NFKAPPAB_01 7.14234e-06 + GGGAAATTCC
+chr18 83665753 83665768 +V_DMRT1_01 2.34088e-07 + TTGCAACAATGTATC
+chr18 83665755 83665770 -V_DMRT1_01 9.46969e-09 - CTGATACATTGTTGC
+chr18 83689901 83689918 -V_DR4_Q2 6.11406e-06 - TGACTTCCAGTAAGCCC
+chr18 83689946 83689961 -V_DMRT1_01 2.48775e-07 - TGGCTACAATGTTGT
+chr18 83689947 83689961 -V_DMRT7_01 7.71182e-07 - TGGCTACAATGTTG
+chr18 83690019 83690035 +V_DMRT2_01 2.21478e-07 + CAAAATGCTACAATGT
+chr18 83690023 83690038 +V_DMRT1_01 4.43941e-06 + ATGCTACAATGTAAC
+chr18 83690025 83690040 -V_DMRT1_01 4.05865e-06 - AAGTTACATTGTAGC
+chr18 83690028 83690044 -V_DMRT2_01 4.83454e-06 - GGAAAAGTTACATTGT
+chr18 84588352 84588367 -V_DMRT1_01 8.47921e-07 - CTGCTACAATGTATT
+chr18 85497821 85497831 -V_IK_Q5 7.92622e-06 - GGTGGGAGGC
+chr18 85497826 85497836 +V_EBOX_Q6_01 6.43409e-06 + CCACCTGGCC
+chr18 85672600 85672610 +V_NKX25_Q5 5.12638e-06 + TCCCACTTCA
+chr18 85672707 85672722 +V_OCT4_01 5.24325e-06 + CATTGTTATGCACAC
+chr19 3392503 3392514 -V_EBF_Q6 9.10919e-06 - GTCCCTAGAGG
+chr19 3392568 3392579 -V_PITX2_Q2 6.58903e-06 - TGTAATCCAAA
+chr19 3392576 3392590 +V_E2A_Q2 5.14964e-06 + ACAGCTGCCTCAGG
+chr19 3577715 3577730 -V_SRF_C 9.29583e-06 - CCCCTATATGGCCTC
+chr19 3577717 3577731 +V_SRF_Q6 3.19521e-06 + GGCCATATAGGGGT
+chr19 3577730 3577753 +V_COUPTF_Q6 4.93225e-06 + TTGGGTGACCTTGGCCAGGTGAC
+chr19 3577735 3577744 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGG
+chr19 3577742 3577754 +V_USF_Q6_01 3.20896e-06 + GGCCAGGTGACC
+chr19 3757939 3757969 +V_PAX4_04 5.03459e-06 + GAACATTGCCCCCCCTTCCTAAATCTCCCT
+chr19 3757944 3757957 -V_MAZR_01 7.66218e-06 - GAAGGGGGGGCAA
+chr19 3758026 3758041 +V_OCT4_01 5.63049e-06 + TATTGTAATGTTAAA
+chr19 3758090 3758105 +V_OCT4_01 7.94702e-06 + TTTTGTTGTGCAAAC
+chr19 4113063 4113075 -V_LRH1_Q5 9.72253e-06 - GAGACCTTGAAC
+chr19 4113097 4113106 -V_AP2ALPHA_01 9.68294e-06 - GCCCGAGGC
+chr19 4113098 4113112 -V_E2A_Q2 9.11856e-06 - GCACCTGCCCGAGG
+chr19 4113103 4113111 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr19 4113103 4113113 -V_MYOD_Q6 2.71739e-06 - AGCACCTGCC
+chr19 4810448 4810463 +V_OCT4_01 1.28133e-06 + CTTTCACATGCAAAA
+chr19 4810449 4810464 +V_OCT4_02 4.618e-06 + TTTCACATGCAAAAA
+chr19 4849953 4849967 -V_KROX_Q6 9.2663e-07 - CCCGCCCCCATCAC
+chr19 4849957 4849970 +V_SP1_Q6 6.29765e-07 + TGGGGGCGGGGGT
+chr19 4849958 4849968 -V_SP1_Q2_01 3.39206e-07 - CCCCGCCCCC
+chr19 4849958 4849969 -V_SP1SP3_Q4 3.19906e-06 - CCCCCGCCCCC
+chr19 4849959 4849968 -V_CKROX_Q2 6.67377e-06 - CCCCGCCCC
+chr19 4849959 4849969 +V_SP1_Q6_01 6.78413e-07 + GGGGCGGGGG
+chr19 4849959 4849973 -V_KROX_Q6 3.63365e-07 - CGCACCCCCGCCCC
+chr19 4849963 4849976 +V_ZF5_B 5.66744e-06 + CGGGGGTGCGCTC
+chr19 4849979 4849994 +V_OCT4_02 3.02765e-06 + ATTCAGATGCTGATT
+chr19 5219881 5219896 -V_VDRRXR_01 4.84975e-06 - GGCTCATAGAGTTCC
+chr19 5219974 5219994 -V_FOXP1_01 2.54105e-06 - TTTTTATTGTTGTTGTTTTT
+chr19 6606468 6606479 +V_WHN_B 9.12787e-06 + AAGGACGCTTC
+chr19 6606508 6606520 +V_VDR_Q6 8.39077e-06 + CCCTATGAACCT
+chr19 7336072 7336087 +V_OCT1_Q6 3.59681e-06 + GGGTATGCAAAGTCC
+chr19 7336073 7336087 -V_OCT1_05 7.59056e-06 - GGACTTTGCATACC
+chr19 7381497 7381508 +V_SMAD_Q6_01 8.17406e-06 + CAGCCAGACAC
+chr19 7381530 7381544 -V_HNF4_Q6_01 6.48063e-06 - GGAACAAAGGCCAA
+chr19 7381531 7381544 +V_HNF4_DR1_Q3 7.61558e-06 + TGGCCTTTGTTCC
+chr19 7381607 7381619 -V_PXR_Q2 6.30169e-06 - AGGGTCAATGGA
+chr19 7381612 7381628 +V_LXR_DR4_Q3 4.68269e-06 + TGACCCTAAGTAACCA
+chr19 7381612 7381630 -V_LXR_Q3 4.80044e-06 - ATTGGTTACTTAGGGTCA
+chr19 7394981 7394992 +V_PAX_Q6 9.42649e-06 + CTGGGAATCAC
+chr19 9139400 9139410 -V_TBX5_Q5 2.76108e-06 - TTCACACCTT
+chr19 9139432 9139444 +V_ELF1_Q6 9.35761e-06 + GAATGAGGAAGT
+chr19 9139439 9139452 +V_STAT_Q6 2.84122e-06 + GAAGTTTCTGGGA
+chr19 9139445 9139455 +V_IK_Q5 4.33614e-06 + TCTGGGAGGG
+chr19 9165033 9165049 -V_AP2_Q3 4.16477e-06 - CCCCTCAGGCTGTGAG
+chr19 9165109 9165117 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr19 9290070 9290078 +V_STAT3_02 9.89755e-06 + GGCTTCCC
+chr19 9290087 9290102 +V_OCT4_01 6.46423e-06 + CTTTGATATGCCAAT
+chr19 9290102 9290120 -V_MYOD_Q6_01 4.80053e-06 - CTCAGGCAGGTGGCAGGT
+chr19 9290105 9290116 -V_E12_Q6 1.97832e-06 - GGCAGGTGGCA
+chr19 9290106 9290116 +V_MYOD_Q6 7.66616e-06 + GCCACCTGCC
+chr19 9290107 9290121 +V_E2A_Q2 2.75062e-06 + CCACCTGCCTGAGG
+chr19 9290108 9290116 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr19 9935527 9935540 +V_ZEC_01 4.07493e-06 + GAAGGTGGGTTGT
+chr19 9935532 9935547 +V_AML_Q6 6.93526e-06 + TGGGTTGTGGTTTGA
+chr19 10422531 10422546 +V_OCT1_Q6 2.42215e-06 + GGAAATGCAAATCAA
+chr19 10422533 10422546 -V_OCT_C 9.70046e-06 - TTGATTTGCATTT
+chr19 10422534 10422544 +V_OCT1_B 8.43065e-06 + AATGCAAATC
+chr19 10422534 10422545 -V_OCT1_Q5_01 7.39888e-07 - TGATTTGCATT
+chr19 10422534 10422545 -V_OCT_Q6 2.01087e-06 - TGATTTGCATT
+chr19 10422599 10422608 -V_SMAD3_Q6 7.33929e-06 - TGTCTGCCT
+chr19 10636656 10636668 -V_MEIS1_01 1.66267e-06 - ACGTGACAGGTC
+chr19 11047251 11047265 +V_MEIS1AHOXA9_01 3.64183e-06 + TGAGAGCTTTACGG
+chr19 11047269 11047283 -V_KROX_Q6 9.17068e-06 - CCCACCCCCACTCA
+chr19 11047272 11047283 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr19 11047273 11047286 +V_SP1_Q6 4.47623e-06 + TGGGGGTGGGGCT
+chr19 11047274 11047283 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr19 11047274 11047284 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr19 11047274 11047287 +V_MAZR_01 3.32118e-06 + GGGGGTGGGGCTA
+chr19 11047275 11047285 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr19 11047275 11047287 -V_PAX4_03 5.65167e-06 - TAGCCCCACCCC
+chr19 11898095 11898110 -V_OCT4_02 4.618e-06 - TTTCATTTGCAAATG
+chr19 11898096 11898111 -V_OCT4_01 6.02107e-06 - TTTTCATTTGCAAAT
+chr19 11898107 11898120 -V_HFH4_01 5.28594e-06 - AAGAGTTTGTTTT
+chr19 11898121 11898134 +V_IK1_01 4.76911e-06 + TTATGGGAATGCC
+chr19 12699095 12699114 -V_GR_Q6 9.09779e-06 - AGAATGCACTGTGTTCTCT
+chr19 12699177 12699189 -V_PBX_Q3 6.04767e-06 - GATTGATGGTCT
+chr19 12699192 12699205 +V_AP2_Q6_01 5.04624e-06 + CAGGCCCCGGGCT
+chr19 12699194 12699210 +V_AP2_Q3 3.69728e-07 + GGCCCCGGGCTATGTG
+chr19 12699195 12699204 +V_AP2ALPHA_01 6.01835e-06 + GCCCCGGGC
+chr19 12699195 12699204 +V_AP2GAMMA_01 6.01835e-06 + GCCCCGGGC
+chr19 12699195 12699204 -V_AP2ALPHA_01 3.00918e-06 - GCCCGGGGC
+chr19 12699195 12699204 -V_AP2GAMMA_01 3.00918e-06 - GCCCGGGGC
+chr19 14690325 14690334 +V_RFX_Q6 3.30926e-06 + CTGTTGCCA
+chr19 14690393 14690404 -V_LEF1TCF1_Q4 7.79522e-06 - CCTTTGTTCCC
+chr19 14738747 14738762 -V_OCT4_02 4.03834e-06 - ATTCTTATTCAAATC
+chr19 14738748 14738763 -V_OCT4_01 1.28133e-06 - CATTCTTATTCAAAT
+chr19 14738802 14738814 -V_ETS_Q4 9.83264e-07 - TGCCACTTCCTG
+chr19 14738804 14738814 -V_NKX25_Q5 8.11064e-06 - TGCCACTTCC
+chr19 14738849 14738860 +V_CP2_01 5.25662e-06 + GCCCAAGCCAG
+chr19 14751570 14751585 +V_OCT4_01 7.94702e-06 + TTTTGTTGTGCAAAC
+chr19 14751682 14751699 +V_PU1_01 7.57258e-06 + GGAAAGAGGAACCAGAG
+chr19 14751683 14751702 -V_PU1_Q4 1.19604e-06 - TTCCTCTGGTTCCTCTTTC
+chr19 16539354 16539369 -V_SMAD4_Q6 6.97552e-06 - GTCAGGCAGCCGGCT
+chr19 16539409 16539419 -V_ESE1_Q3 2.21291e-06 - AGTTTCCTGT
+chr19 16539428 16539440 +V_CREB_02 7.02595e-06 + CTGTTGACGCCC
+chr19 17086017 17086030 +V_HFH3_01 4.77876e-06 + GTTTGTTTGTATA
+chr19 17086017 17086030 +V_HFH4_01 9.85665e-06 + GTTTGTTTGTATA
+chr19 17086096 17086106 -V_NKX25_Q5 5.12638e-06 - TCCCACTTCA
+chr19 17212427 17212442 -V_VDR_Q3 2.57589e-06 - GGGGGAAAGGGTAGA
+chr19 17212448 17212461 -V_MAZR_01 1.0591e-06 - GGGGGGGGGGCTT
+chr19 17212450 17212461 +V_SP1SP3_Q4 7.59003e-06 + GCCCCCCCCCC
+chr19 17212451 17212460 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr19 17212451 17212462 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr19 17212451 17212465 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr19 17212452 17212461 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr19 17212452 17212463 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr19 17212453 17212462 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr19 17212453 17212464 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr19 17212454 17212463 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr19 17212454 17212465 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr19 17212455 17212464 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr19 17212455 17212466 +V_SP1SP3_Q4 3.76147e-06 + CCCCCCCCCCA
+chr19 17212456 17212465 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr19 17212462 17212471 -V_CACBINDINGPROTEIN_Q6 6.29506e-06 - GAGGCTGGG
+chr19 17212579 17212595 -V_S8_01 8.86506e-06 - TAAATTTAATTATCCT
+chr19 18848720 18848735 -V_IRF_Q6 3.90796e-06 - CACAGTTTCTGTTTT
+chr19 18848721 18848733 +V_ICSBP_Q6 3.08451e-06 + AAACAGAAACTG
+chr19 18848745 18848762 -V_HNF1_C 3.14213e-06 - AGGTAATGACTTACCAC
+chr19 21115348 21115366 -V_GCNF_01 5.5469e-06 - GTCAAGGACAAGGTTAAG
+chr19 21115357 21115369 -V_PXR_Q2 3.24502e-06 - AGGGTCAAGGAC
+chr19 21115433 21115448 +V_STAT5B_01 7.27184e-06 + CTTTTCCTGGAATAG
+chr19 21180849 21180863 -V_FXR_Q3 4.52217e-06 - CAGTGTGAATAACC
+chr19 21180918 21180931 +V_AP1_01 1.73228e-07 + GCGTGAGTCAGCG
+chr19 21180919 21180930 +V_BACH2_01 1.99103e-06 + CGTGAGTCAGC
+chr19 21180919 21180930 -V_AP1_Q6 8.21187e-06 - GCTGACTCACG
+chr19 21180920 21180929 +V_AP1_C 7.33929e-06 + GTGAGTCAG
+chr19 21180920 21180931 -V_NFE2_01 1.90408e-06 - CGCTGACTCAC
+chr19 21581948 21581963 +V_DMRT1_01 2.04559e-06 + TCGAAACATTGTTGC
+chr19 21581950 21581965 -V_DMRT1_01 6.88806e-07 - ATGCAACAATGTTTC
+chr19 21969520 21969538 +V_GCNF_01 5.15475e-06 + ATGCAAGTCAAGGTCAAC
+chr19 21969527 21969536 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr19 21969539 21969551 +V_ICSBP_Q6 9.64187e-06 + GAAGTGCAACTG
+chr19 22898040 22898049 +V_CKROX_Q2 3.66459e-06 + GCCCTCCCC
+chr19 22898041 22898049 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr19 22898041 22898050 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr19 23476427 23476439 -V_GLI_Q2 9.02849e-07 - TGTGGGTGGTCT
+chr19 23476428 23476437 -V_ZIC1_01 2.71739e-06 - TGGGTGGTC
+chr19 23476428 23476437 -V_ZIC2_01 4.94877e-06 - TGGGTGGTC
+chr19 23476428 23476437 -V_ZIC3_01 2.71739e-06 - TGGGTGGTC
+chr19 24704790 24704801 +V_EBF_Q6 8.2682e-06 + TTCCCTTAGGA
+chr19 24704818 24704828 +V_MYB_Q6 4.20952e-06 + GCCAACTGGC
+chr19 25062031 25062050 -V_PU1_Q4 9.43652e-06 - TTGCTCTACTTCCTTCTTC
+chr19 25062039 25062056 +V_PPARG_03 8.20535e-06 + AAGTAGAGCAAAGTGCA
+chr19 25062043 25062057 +V_HNF4_Q6_01 5.12243e-06 + AGAGCAAAGTGCAG
+chr19 25062085 25062100 -V_CP2_02 8.80423e-06 - GCTGGCTGGAGCAGG
+chr19 25065000 25065010 -V_PR_Q2 9.08563e-07 - GAGAGAACAG
+chr19 25065065 25065078 -V_FXR_IR1_Q6 7.35804e-06 - GGGAGAATAACCT
+chr19 25065098 25065110 -V_LMO2COM_01 2.05922e-06 - CCCCAGCTGCTG
+chr19 25065119 25065130 -V_RORA_Q4 2.9528e-06 - AAAGTGGGTCA
+chr19 25347850 25347872 -V_MEF2_02 9.62111e-07 - CACAGTGTTAAAAATAGCTCTG
+chr19 25347850 25347872 -V_MEF2_03 6.19856e-06 - CACAGTGTTAAAAATAGCTCTG
+chr19 25347851 25347867 -V_MEF2_01 2.22267e-06 - TGTTAAAAATAGCTCT
+chr19 25347853 25347865 +V_MEF2_Q6_01 6.78607e-07 + AGCTATTTTTAA
+chr19 25347889 25347902 -V_DMRT4_01 2.92761e-06 - AATGTTACAACTT
+chr19 25650101 25650115 -V_HNF4_Q6_01 4.332e-06 - GGAGCAGAGGCCAC
+chr19 25650206 25650234 -V_PAX5_02 7.27396e-06 - GAAATGTTGTACAAGGCGTGGCGACAGC
+chr19 27630450 27630462 +V_ELF1_Q6 3.39622e-06 + GAAAGAGGAAGA
+chr19 28242184 28242193 -V_RFX_Q6 3.30926e-06 - CTGTTGCCA
+chr19 28725534 28725544 -V_ESE1_Q3 8.80613e-06 - GGCTTCCTGT
+chr19 28725535 28725546 +V_FLI1_Q6 9.02891e-06 + CAGGAAGCCAC
+chr19 28725538 28725553 -V_ETS1_B 7.64126e-06 - AGAGGATGTGGCTTC
+chr19 28725540 28725552 +V_ETS_Q4 7.06097e-06 + AGCCACATCCTC
+chr19 29227244 29227260 -V_DMRT2_01 1.42163e-06 - GAGATAGATACAATGT
+chr19 29227266 29227282 +V_DMRT2_01 8.63243e-07 + TATTTAGATACATTGT
+chr19 29227267 29227282 +V_DMRT3_01 4.93902e-06 + ATTTAGATACATTGT
+chr19 29227270 29227285 +V_DMRT1_01 5.16865e-07 + TAGATACATTGTATC
+chr19 29227272 29227287 -V_DMRT1_01 6.88806e-07 - TAGATACAATGTATC
+chr19 29227275 29227291 -V_DMRT2_01 6.99666e-06 - AAGATAGATACAATGT
+chr19 29227326 29227344 +V_HNF3_Q6_01 4.00003e-06 + CTTCTTGTTTGCTTTGAC
+chr19 30103769 30103784 -V_OCT1_02 5.00859e-06 - GGGAATATTCAAAGA
+chr19 30329475 30329494 +V_PU1_Q4 2.63808e-06 + AGGCCTGTCTTCCTCTTTC
+chr19 30329482 30329494 -V_ELF1_Q6 3.39622e-06 - GAAAGAGGAAGA
+chr19 30329566 30329577 +V_EBF_Q6 1.89993e-06 + GTCCCCTGAGA
+chr19 30329575 30329590 -V_CP2_02 3.18594e-06 - GCTGGGTGGAGCCTC
+chr19 31996439 31996448 -V_SMAD_Q6 9.3359e-06 - AGACACCAC
+chr19 32092956 32092979 +V_COUPTF_Q6 6.88321e-07 + TAGTGTGACCTTTGCCCTTTCAA
+chr19 32092957 32092978 -V_PPARG_01 1.55728e-07 - TGAAAGGGCAAAGGTCACACT
+chr19 32092960 32092973 +V_HNF4ALPHA_Q6 4.2278e-07 + GTGACCTTTGCCC
+chr19 32092960 32092974 -V_HNF4_Q6_01 3.33633e-08 - AGGGCAAAGGTCAC
+chr19 32092961 32092974 +V_PPAR_DR1_Q2 9.96554e-08 + TGACCTTTGCCCT
+chr19 32092961 32092974 +V_HNF4_DR1_Q3 8.69767e-08 + TGACCTTTGCCCT
+chr19 32092961 32092974 +V_COUP_DR1_Q6 3.28001e-07 + TGACCTTTGCCCT
+chr19 32092961 32092974 -V_RXRLXRB_01 3.39229e-07 - AGGGCAAAGGTCA
+chr19 32092961 32092974 -V_DR1_Q3 9.73878e-08 - AGGGCAAAGGTCA
+chr19 32092961 32092975 +V_COUP_01 6.73205e-08 + TGACCTTTGCCCTT
+chr19 32092961 32092978 -V_PPARG_03 7.34378e-07 - TGAAAGGGCAAAGGTCA
+chr19 32269494 32269502 -V_CACD_01 9.89755e-06 - CCACACCC
+chr19 32269518 32269528 +V_SOX5_01 1.64093e-06 + TTAACAATAC
+chr19 32269549 32269563 -V_ERR1_Q2 4.94927e-06 - TCCTCGAGGTCAAA
+chr19 32269559 32269578 +V_GR_Q6 2.36045e-06 + AGGATTCCCAGTGTTCTTA
+chr19 32315207 32315216 -V_T3R_Q6 3.30926e-06 - CCTGTCCTT
+chr19 32330047 32330056 +V_AP1_C 7.33929e-06 + GTGAGTCAG
+chr19 34978756 34978770 +V_NFY_C 7.62778e-06 + TCTGATAGGTTAAT
+chr19 36473067 36473079 +V_LMO2COM_01 3.00307e-06 + CCGCAGCTGCAG
+chr19 36473196 36473206 +V_TAL1_Q6 4.87508e-06 + GCCAGCTGCC
+chr19 38138797 38138807 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr19 38138797 38138809 -V_PAX4_03 5.03061e-07 - AAGCCCCACCCC
+chr19 40537430 40537451 -V_PPARG_01 5.47701e-06 - GTTAGGCTCACAGGTCATGCT
+chr19 40537503 40537518 -V_SREBP_Q6 1.37849e-06 - CCCACCACCTCAGGG
+chr19 40537503 40537518 -V_SREBP1_Q5 8.44178e-06 - CCCACCACCTCAGGG
+chr19 40537510 40537524 -V_KROX_Q6 4.94478e-06 - GCCACCCCCACCAC
+chr19 40537513 40537524 +V_EGR_Q6 5.40581e-06 + GTGGGGGTGGC
+chr19 40537556 40537565 -V_CACBINDINGPROTEIN_Q6 6.29506e-06 - GAGGCTGGG
+chr19 40537592 40537610 +V_SRF_01 2.75771e-06 + ATAACCATATAAGGGAAA
+chr19 40537592 40537610 -V_SRF_01 9.25434e-07 - TTTCCCTTATATGGTTAT
+chr19 40537592 40537611 -V_SRF_Q5_02 2.40174e-06 - TTTTCCCTTATATGGTTAT
+chr19 45363379 45363391 +V_LRH1_Q5 3.06315e-07 + CTGGCCTTGAAC
+chr19 45363379 45363393 +V_PAX6_Q2 8.3884e-07 + CTGGCCTTGAACTC
+chr19 45363384 45363395 +V_PAX_Q6 8.43097e-06 + CTTGAACTCAC
+chr19 53911363 53911380 -V_PU1_01 1.63037e-06 - GAAAACGGGAACTGGCT
+chr19 55222229 55222239 -V_IK_Q5 4.33614e-06 - GGTGGGAGGG
+chr19 55222274 55222282 -V_CACD_01 9.89755e-06 - CCACACCC
+chr19 55900033 55900044 +V_SMAD_Q6_01 1.69696e-06 + TGGGCAGACAC
+chr19 55900100 55900109 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr19 55900101 55900109 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr19 55900101 55900110 -V_CKROX_Q2 3.66459e-06 - GCCCTCCCC
+chr19 55900110 55900139 +V_MYOGNF1_01 3.05178e-07 + TGGCAGCCTCATTTGGCTTTCTGCCATCT
+chr19 57242828 57242841 -V_MAZR_01 4.08366e-06 - GGGGGAGGGGTCG
+chr19 57242829 57242842 -V_SP1_Q6 1.24491e-06 - AGGGGGAGGGGTC
+chr19 57242830 57242840 -V_SP1_Q6_01 9.74073e-06 - GGGGAGGGGT
+chr19 57242831 57242840 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr19 57242831 57242841 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr19 57242832 57242840 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr19 57242832 57242841 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr19 57242875 57242890 +V_DMRT3_01 5.47989e-06 + CGATGGATACATTGT
+chr19 57242878 57242892 +V_DMRT7_01 6.04797e-06 + TGGATACATTGTTT
+chr19 57242878 57242893 +V_DMRT1_01 4.22638e-08 + TGGATACATTGTTTC
+chr19 57242880 57242895 -V_DMRT1_01 6.06059e-07 - TGGAAACAATGTATC
+chr19 57242881 57242911 +V_PAX4_04 7.0256e-06 + ATACATTGTTTCCATTCCCCCCCCCCCCCC
+chr19 57242891 57242906 -V_SPZ1_01 2.99035e-06 - GGGGGGGGGAATGGA
+chr19 57242894 57242907 -V_MAZR_01 1.59255e-06 - GGGGGGGGGGAAT
+chr19 57242896 57242911 -V_VDR_Q3 5.07321e-06 - GGGGGGGGGGGGGGA
+chr19 57242897 57242906 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr19 57242897 57242908 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr19 57242897 57242911 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr19 57242898 57242907 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr19 57242898 57242909 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr19 57242898 57242912 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr19 57242899 57242908 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr19 57242899 57242910 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr19 57242899 57242913 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr19 57242900 57242909 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr19 57242900 57242911 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr19 57242900 57242914 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr19 57242901 57242910 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr19 57242901 57242912 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr19 57242902 57242911 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr19 57242902 57242913 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr19 57242903 57242912 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr19 57242903 57242914 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr19 57242904 57242913 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr19 57242904 57242915 +V_SP1SP3_Q4 3.76147e-06 + CCCCCCCCCCA
+chr19 57242905 57242914 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr19 57242920 57242944 -V_COMP1_01 5.04326e-06 - TGTAGGCATTGGCTACAACCCGGG
+chr19 57242972 57242985 -V_FXR_IR1_Q6 9.14095e-06 - AGGTGAATGCCCT
+chr19 57291784 57291799 +V_DMRT1_01 4.26013e-07 + TAGATACAATGTAGC
+chr19 57291786 57291801 -V_DMRT1_01 4.79884e-08 - TTGCTACATTGTATC
+chr19 57291787 57291801 -V_DMRT7_01 6.47571e-06 - TTGCTACATTGTAT
+chr19 57291789 57291804 -V_DMRT3_01 3.15338e-06 - GGATTGCTACATTGT
+chr19 57291789 57291805 -V_DMRT2_01 2.23447e-06 - AGGATTGCTACATTGT
+chr19 57291807 57291815 -V_CACD_01 9.89755e-06 - CCACACCC
+chr19 57291856 57291879 -V_COUPTF_Q6 8.52398e-06 - CCCCCTGGCCTTTGAGGAAGGCC
+chr19 58268686 58268699 +V_IRF1_01 1.17272e-06 + GAAAAGCGAAAGG
+chr19 58268686 58268699 +V_IRF2_01 2.01573e-07 + GAAAAGCGAAAGG
+chr19 58268707 58268722 +V_OCT4_01 3.04012e-06 + TATTCTCATGTAAAG
+chr19 58268746 58268757 -V_EBF_Q6 4.00905e-06 - CTCCCCAGGGA
+chr19 58518255 58518270 +V_CP2_02 9.32088e-06 + ACTGGGTCCTGCTGC
+chr19 59494473 59494491 -V_CDX_Q5 4.91219e-06 - GATAAACAAAGTCGTAAG
+chr19 59494556 59494574 -V_SRF_Q4 2.31342e-06 - GCCACAAAAGGCCATGGA
+chr19 59494558 59494573 -V_SRF_Q5_01 4.73512e-06 - CCACAAAAGGCCATG
+chr19 59494558 59494577 +V_SRF_Q5_02 9.77927e-07 + CATGGCCTTTTGTGGCCAG
+chr19 59494586 59494596 +V_TAL1_Q6 4.87508e-06 + TCCAGCTGGT
+chr19 60265281 60265300 -V_NRSF_Q4 8.64281e-06 - ACACTGTCCAGGGGGCTGC
+chr2 4142993 4143007 +V_OCT1_05 2.08366e-06 + CTAATTAGCATTTT
+chr2 4143039 4143052 +V_OCT_C 4.05866e-06 + CTCATTAGCATAG
+chr2 4518279 4518287 -V_CACD_01 9.89755e-06 - CCACACCC
+chr2 4518358 4518373 +V_IRF_Q6 2.9879e-06 + TAGACTTTCACTTTT
+chr2 4518360 4518374 -V_BLIMP1_Q6 2.72511e-06 - AAAAAGTGAAAGTC
+chr2 4518361 4518374 -V_IRF2_01 5.64882e-06 - AAAAAGTGAAAGT
+chr2 4518362 4518373 -V_IRF_Q6_01 9.77502e-07 - AAAAGTGAAAG
+chr2 6094315 6094326 +V_SMAD_Q6_01 6.47055e-06 + TGGCCAGACTC
+chr2 6094346 6094361 -V_TATA_01 9.83763e-06 - CTATAAAAGTGCCTG
+chr2 6094352 6094362 -V_TATA_C 5.97675e-06 - GCTATAAAAG
+chr2 6173488 6173501 -V_CEBP_01 3.27631e-07 - TGTGTGGAAAGGC
+chr2 6380402 6380414 -V_HNF6_Q6 8.1906e-06 - CAAAGTCAATGA
+chr2 6380410 6380424 +V_MTF1_Q4 9.78336e-06 + TTTGCAGCCAGCCC
+chr2 6380441 6380459 +V_MYOD_Q6_01 3.73988e-06 + CCAGGGCAGCTGACGCAG
+chr2 6380478 6380492 -V_KROX_Q6 1.32522e-07 - CCCGCCCCCGCATC
+chr2 6380479 6380491 +V_EGR1_01 3.9416e-07 + ATGCGGGGGCGG
+chr2 6380480 6380491 -V_SP1SP3_Q4 5.39613e-06 - CCGCCCCCGCA
+chr2 6380481 6380492 +V_EGR_Q6 1.78186e-06 + GCGGGGGCGGG
+chr2 6380482 6380495 +V_SP1_Q6 1.6527e-07 + CGGGGGCGGGGTG
+chr2 6380483 6380493 -V_SP1_Q2_01 3.39206e-07 - CCCCGCCCCC
+chr2 6380484 6380493 -V_CKROX_Q2 6.67377e-06 - CCCCGCCCC
+chr2 6380484 6380494 +V_SP1_Q6_01 1.0915e-06 + GGGGCGGGGT
+chr2 6380485 6380500 -V_SREBP1_Q5 8.44178e-06 - CCCCTCACCCCGCCC
+chr2 6380490 6380505 +V_VDR_Q3 4.22722e-06 + GGGTGAGGGGGTTCC
+chr2 9626335 9626350 -V_DMRT1_01 4.26013e-07 - TGGTTACATTGTATC
+chr2 9626336 9626350 -V_DMRT7_01 6.91627e-06 - TGGTTACATTGTAT
+chr2 9626366 9626381 +V_DMRT1_01 1.79174e-06 + TGGATACAATGTAAC
+chr2 9626368 9626383 -V_DMRT1_01 4.26013e-07 - TGGTTACATTGTATC
+chr2 9626369 9626383 -V_DMRT7_01 6.91627e-06 - TGGTTACATTGTAT
+chr2 9626399 9626414 +V_DMRT1_01 4.43941e-06 + TAGATACAATGTAAC
+chr2 9626401 9626416 -V_DMRT1_01 4.26013e-07 - TGGTTACATTGTATC
+chr2 9626402 9626416 -V_DMRT7_01 6.91627e-06 - TGGTTACATTGTAT
+chr2 13126527 13126538 -V_SP1SP3_Q4 8.91927e-06 - CCCCCCCCCGT
+chr2 13126528 13126539 -V_SP1SP3_Q4 6.44809e-06 - CCCCCCCCCCG
+chr2 13126529 13126538 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr2 13126529 13126540 -V_SP1SP3_Q4 3.39206e-07 - CCCCCCCCCCC
+chr2 13126529 13126544 +V_VDR_Q3 6.38003e-06 + GGGGGGGGGGGGGCA
+chr2 13126530 13126539 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr2 13126530 13126541 -V_SP1SP3_Q4 3.39206e-07 - CCCCCCCCCCC
+chr2 13126531 13126540 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr2 13126531 13126542 -V_SP1SP3_Q4 3.39206e-07 - CCCCCCCCCCC
+chr2 13126531 13126544 +V_MAZR_01 7.66218e-06 + GGGGGGGGGGGCA
+chr2 13126532 13126541 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr2 13126532 13126543 -V_SP1SP3_Q4 7.59003e-06 - GCCCCCCCCCC
+chr2 13126532 13126545 +V_MAZR_01 1.26741e-07 + GGGGGGGGGGCAC
+chr2 13126532 13126546 -V_KROX_Q6 8.74919e-06 - TGTGCCCCCCCCCC
+chr2 13126533 13126542 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr2 13126573 13126588 +V_STAT5A_01 1.0127e-06 + GATTTCCAGGAATCA
+chr2 13126573 13126588 +V_STAT5B_01 1.57551e-06 + GATTTCCAGGAATCA
+chr2 13126573 13126588 -V_STAT5A_01 7.66712e-07 - TGATTCCTGGAAATC
+chr2 13126573 13126588 -V_STAT5B_01 7.70266e-07 - TGATTCCTGGAAATC
+chr2 13126588 13126599 -V_MAF_Q6_01 4.06732e-06 - TGTTGAGTCAG
+chr2 13138540 13138551 +V_TGIF_01 2.62257e-06 + AGCTGTCAAAA
+chr2 17525365 17525380 +V_OCT4_01 4.28625e-06 + TTTTATAATGCAAAG
+chr2 17525377 17525393 +V_MAF_Q6 6.87271e-06 + AAGAAGGGAGTGTGCT
+chr2 17525465 17525483 -V_HNF3_Q6_01 2.28386e-06 - GTTTTTGTTTGTTTTCTC
+chr2 17525468 17525481 -V_FOX_Q2 1.93154e-06 - TTTTGTTTGTTTT
+chr2 17525468 17525481 -V_HFH4_01 3.17054e-06 - TTTTGTTTGTTTT
+chr2 17525469 17525481 -V_FOXD3_01 9.53633e-06 - TTTTGTTTGTTT
+chr2 17910891 17910907 +V_NFKB_Q6_01 1.9877e-07 + GCCTGGGAAAATCCCA
+chr2 17910894 17910908 -V_NFKB_Q6 8.01393e-06 - ATGGGATTTTCCCA
+chr2 17910895 17910907 -V_NFKB_C 3.77632e-06 - TGGGATTTTCCC
+chr2 17910896 17910906 -V_NFKAPPAB65_01 9.69629e-06 - GGGATTTTCC
+chr2 17910896 17910906 -V_NFKAPPAB_01 9.4096e-06 - GGGATTTTCC
+chr2 17910910 17910924 +V_ETS2_B 8.89838e-07 + TACAGGAAGTCTGT
+chr2 18236282 18236293 +V_HELIOSA_02 8.07231e-06 + TCAAGGAAAAC
+chr2 18236351 18236381 -V_PAX4_04 6.10305e-07 - AAAAAAAAAACAAAAACCTGACCTGACACT
+chr2 18236367 18236376 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr2 18236368 18236388 +V_FOXP1_01 1.26832e-06 + TTGTTTTTTTTTTCTTTTTT
+chr2 18293746 18293764 -V_HNF3_Q6_01 2.03155e-06 - TTGTTTGTTTGTTCATTT
+chr2 18293748 18293761 +V_HNF3_Q6 1.80471e-06 + ATGAACAAACAAA
+chr2 18293750 18293762 -V_FOXD3_01 3.58476e-06 - GTTTGTTTGTTC
+chr2 18293752 18293765 +V_HNF3_Q6 8.74112e-06 + ACAAACAAACAAA
+chr2 18293753 18293766 -V_HFH4_01 5.28594e-06 - TTTTGTTTGTTTG
+chr2 18293754 18293766 -V_FOXD3_01 9.53633e-06 - TTTTGTTTGTTT
+chr2 18293812 18293828 -V_HAND1E47_01 3.36416e-06 - TATTGGGTCTGGATTC
+chr2 19314696 19314710 -V_KROX_Q6 4.02412e-06 - TCAGCCCCCACTCC
+chr2 19524467 19524484 -V_PPARG_03 5.76105e-06 - AACTGGGATAAAATTCA
+chr2 19856618 19856629 -V_IRF_Q6_01 8.39845e-06 - GAAAGGGAAAG
+chr2 19856729 19856744 +V_DMRT5_01 5.79033e-06 + TACTGTTACATTGTA
+chr2 19856731 19856746 +V_DMRT1_01 7.56504e-06 + CTGTTACATTGTACC
+chr2 20131193 20131207 +V_KROX_Q6 6.53311e-06 + CCCACCCACACCCA
+chr2 20131198 20131206 +V_CACD_01 9.89755e-06 + CCACACCC
+chr2 20131225 20131236 +V_NFY_Q6 9.1733e-06 + GGACCAATCAC
+chr2 21314456 21314475 +V_NRSF_Q4 8.90289e-06 + TCAGTCTCCATACTGCTGA
+chr2 21314586 21314601 +V_OCT4_02 6.55103e-06 + ATTGTGTTGTAGATG
+chr2 21966716 21966729 -V_SOX_Q6 5.73528e-06 - TTCATTGTTATGA
+chr2 21966851 21966866 +V_OCT4_02 1.37411e-06 + ATTCACTTGCAAATT
+chr2 25024226 25024237 +V_GATA_C 9.83488e-06 + AGATAAGAACT
+chr2 25024325 25024340 -V_VDR_Q3 7.16583e-06 - GAGGGAGGGGGGAGG
+chr2 25024334 25024343 +V_CKROX_Q2 8.90515e-06 + TCCCTCCCC
+chr2 25024335 25024343 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr2 25024339 25024348 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr2 25024339 25024349 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr2 25024340 25024348 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr2 25024340 25024349 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr2 25024340 25024354 +V_KROX_Q6 2.61668e-06 + CCCTCCCCCACACC
+chr2 25911038 25911048 -V_NUR77_Q5 8.43564e-06 - CTGACCTTTG
+chr2 26198705 26198715 -V_NUR77_Q5 2.98426e-06 - CTGACCTTGC
+chr2 26198713 26198726 -V_AP2_Q6_01 9.50631e-07 - CGGTCCCCAGGCT
+chr2 26198782 26198797 -V_OCT4_02 8.50894e-06 - ATTCTGATGTTAATA
+chr2 26444257 26444270 +V_ZEC_01 8.71102e-06 + CTGGCTTGGTTGC
+chr2 26444282 26444295 -V_SP1_Q6 2.76363e-06 - TCTGGGCGGGGCC
+chr2 26444283 26444293 -V_SP1_Q6_01 1.50459e-06 - TGGGCGGGGC
+chr2 26444284 26444294 +V_SP1_Q2_01 6.40385e-06 + CCCCGCCCAG
+chr2 27252309 27252319 -V_KAISO_01 9.08563e-07 - TTCCTGCTAG
+chr2 27252380 27252389 +V_AP2ALPHA_01 9.68294e-06 + GCCCGAGGG
+chr2 27252380 27252389 +V_AP2GAMMA_01 7.85065e-06 + GCCCGAGGG
+chr2 27500432 27500456 +V_BRACH_01 8.98588e-06 + AGAGAGAAAACTAGGAGTGACAAT
+chr2 27500468 27500482 +V_NFKB_Q6 6.0589e-07 + AGGGGAATTTCCAT
+chr2 27500469 27500481 +V_NFKB_C 4.31069e-07 + GGGGAATTTCCA
+chr2 27500469 27500485 -V_NFKB_Q6_01 1.19645e-06 - GAAATGGAAATTCCCC
+chr2 27500470 27500480 +V_NFKAPPAB65_01 9.08563e-07 + GGGAATTTCC
+chr2 27500470 27500480 +V_CREL_01 7.08941e-06 + GGGAATTTCC
+chr2 27500470 27500480 +V_NFKAPPAB_01 1.65463e-06 + GGGAATTTCC
+chr2 27500544 27500563 -V_GR_Q6 4.06623e-06 - TGGCTTGCCTGTGTCCTAC
+chr2 27752853 27752866 +V_MAZR_01 5.14471e-06 + TGGGGAGGGGCAG
+chr2 27752854 27752862 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr2 27752854 27752863 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr2 27752854 27752864 +V_SP1_Q6_01 2.74385e-06 + GGGGAGGGGC
+chr2 27752892 27752901 +V_T3R_Q6 8.74404e-06 + CCTGTCCTC
+chr2 27752973 27752987 -V_MTF1_Q4 4.47259e-06 - TTTGCAATCGGCCC
+chr2 28931290 28931301 -V_NFE2_01 9.17794e-06 - AGCTGAGGCAC
+chr2 28931310 28931323 +V_HNF4ALPHA_Q6 6.68176e-06 + CTGAGCTTTGCAT
+chr2 28931395 28931415 +V_FOXP1_01 2.13015e-06 + TTTTTTTTTTTTTTTTTTTT
+chr2 28931396 28931416 +V_FOXP1_01 2.13015e-06 + TTTTTTTTTTTTTTTTTTTT
+chr2 28931397 28931417 +V_FOXP1_01 2.13015e-06 + TTTTTTTTTTTTTTTTTTTT
+chr2 28931399 28931419 +V_FOXP1_01 9.49635e-06 + TTTTTTTTTTTTTTTTTTGT
+chr2 28953707 28953722 +V_OCT4_02 1.18248e-06 + ATTGACTTGCTAAAA
+chr2 29007711 29007726 -V_OCT4_02 3.02765e-06 - ATTGTTATGTTAATG
+chr2 29007712 29007722 -V_POU3F2_02 1.99833e-06 - TTATGTTAAT
+chr2 29007712 29007727 -V_OCT4_01 9.436e-07 - TATTGTTATGTTAAT
+chr2 29007718 29007732 +V_FOXJ2_02 9.77296e-06 + ATAACAATATTGAT
+chr2 29356677 29356692 -V_OCT4_02 4.9622e-06 - ATTCTCATTATAATG
+chr2 29356779 29356792 -V_IK1_01 4.01069e-06 - ACGTGGGAATGCT
+chr2 29356784 29356796 +V_NMYC_01 2.84492e-07 + TCCCACGTGCCA
+chr2 29356786 29356794 +V_USF_C 9.89755e-06 + CCACGTGC
+chr2 29585099 29585110 -V_NFY_Q6 7.17826e-06 - GAGCCAATCAC
+chr2 29585100 29585113 -V_NFY_Q6_01 5.96025e-06 - AATGAGCCAATCA
+chr2 29585110 29585120 -V_POU1F1_Q6 1.99833e-06 - ATGAATAAAT
+chr2 29585179 29585190 -V_EBF_Q6 2.28749e-06 - CTCCCCTGGGA
+chr2 29691279 29691294 +V_OCT4_02 7.51249e-06 + ATTCACTTGTAAATG
+chr2 30190995 30191009 +V_NFY_C 9.88528e-06 + TCTGATGGGTTAAC
+chr2 30191017 30191029 +V_GLI_Q2 1.40827e-06 + CCTGGGAGGTCC
+chr2 30191038 30191053 +V_OCT4_01 9.65557e-06 + TTTTTTAATGGAAAT
+chr2 30191098 30191110 +V_AP1_Q2_01 4.21731e-06 + TGACTCAAAGTG
+chr2 30191117 30191127 -V_SP1_Q2_01 9.56538e-06 - CCCCACCCCT
+chr2 30191118 30191148 -V_PAX4_04 1.47136e-06 - AGTTAACACCCCTCCCAGCCTCCCCACCCC
+chr2 30492395 30492411 -V_AP2_Q3 3.22678e-06 - GCCCCAGGGCTGGGGA
+chr2 30717733 30717741 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr2 30717817 30717840 +V_COUPTF_Q6 4.16159e-06 + GGGGCTGACCTGTAACCTCAGCA
+chr2 30717821 30717835 +V_PAX6_Q2 3.04054e-06 + CTGACCTGTAACCT
+chr2 30717822 30717835 -V_RXRLXRB_01 1.64968e-06 - AGGTTACAGGTCA
+chr2 30717864 30717882 +V_GCNF_01 1.25223e-07 + GAGAAGTTCAAGGTCATC
+chr2 30717867 30717881 -V_PAX6_Q2 2.80439e-06 - ATGACCTTGAACTT
+chr2 30717868 30717882 +V_ERR1_Q2 2.07148e-06 + AGTTCAAGGTCATC
+chr2 30717869 30717881 -V_LRH1_Q5 3.77826e-06 - ATGACCTTGAAC
+chr2 30717870 30717893 +V_PPARG_02 5.6331e-06 + TTCAAGGTCATCTTCAGCTACAT
+chr2 30717870 30717893 -V_PPARG_02 2.01575e-06 - ATGTAGCTGAAGATGACCTTGAA
+chr2 30717871 30717880 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr2 30924243 30924263 -V_FOXP1_01 6.91049e-06 - TGTTTTGGGTTTTTTTGTTT
+chr2 30924303 30924318 +V_OCT4_02 1.37411e-06 + ATTCACTTGCTAAAC
+chr2 30924320 30924334 -V_CDX2_Q5 9.18428e-06 - AGCCTTTTATAGCC
+chr2 30924321 30924331 +V_TATA_C 5.97675e-06 + GCTATAAAAG
+chr2 31293559 31293573 -V_MTF1_Q4 6.56269e-06 - TCTGCACTCGGAAG
+chr2 31811317 31811332 -V_SREBP1_Q5 9.31948e-06 - CCCGCCACTCCAGCC
+chr2 31811381 31811394 +V_ZEC_01 8.56162e-06 + CTAGGGTGGTGGC
+chr2 31811433 31811447 -V_E2A_Q2 6.24606e-06 - CCACCTGTTACTGA
+chr2 31811545 31811557 +V_GLI_Q2 5.13911e-06 + TGTGGGTGGACC
+chr2 31811576 31811584 -V_CACD_01 9.89755e-06 - CCACACCC
+chr2 31811585 31811598 +V_SP1_Q6 5.65055e-06 + TGAGGGCGGGGTT
+chr2 31811586 31811596 -V_SP1_Q2_01 2.74385e-06 - CCCCGCCCTC
+chr2 31811587 31811597 +V_SP1_Q6_01 8.48538e-06 + AGGGCGGGGT
+chr2 33316698 33316717 -V_PU1_Q4 2.29683e-06 - CCCAGTCTCTTCCTCCTTC
+chr2 33316713 33316726 +V_SP1_Q6 7.54104e-06 + TGGGGGTGGGGTG
+chr2 33316714 33316723 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr2 33316714 33316724 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr2 33316716 33316731 -V_SREBP_Q6 4.69758e-06 - CTCCCCACCCCACCC
+chr2 33316716 33316731 -V_SREBP1_Q5 7.63808e-06 - CTCCCCACCCCACCC
+chr2 33316728 33316738 +V_PR_Q2 7.23e-06 + GAGAGGACAG
+chr2 33316730 33316739 -V_T3R_Q6 8.74404e-06 - CCTGTCCTC
+chr2 33316749 33316758 +V_CACBINDINGPROTEIN_Q6 2.23138e-06 + GAGGGTGGG
+chr2 33316789 33316799 -V_SP1_Q2_01 9.56538e-06 - CCCCACCCCT
+chr2 33450437 33450446 +V_CACBINDINGPROTEIN_Q6 2.23138e-06 + GAGGGTGGG
+chr2 33450511 33450528 +V_PPARG_03 1.72743e-07 + TAGTGGGGCAGAGGTCA
+chr2 33450515 33450528 +V_DR1_Q3 5.73781e-07 + GGGGCAGAGGTCA
+chr2 33450515 33450528 -V_PPAR_DR1_Q2 2.30569e-07 - TGACCTCTGCCCC
+chr2 33450515 33450528 -V_HNF4_DR1_Q3 1.24434e-06 - TGACCTCTGCCCC
+chr2 33450515 33450528 -V_COUP_DR1_Q6 6.12107e-07 - TGACCTCTGCCCC
+chr2 33450515 33450529 +V_HNF4_Q6_01 4.62711e-07 + GGGGCAGAGGTCAC
+chr2 33450529 33450543 -V_E2A_Q2 8.03505e-06 - ACACCTGGCCCAGT
+chr2 33450541 33450553 +V_PAX4_03 3.63034e-06 + GTCCCCCACCCC
+chr2 33450544 33450554 +V_SP1_Q2_01 8.14617e-06 + CCCCACCCCG
+chr2 34426113 34426129 +V_NFKB_Q6_01 7.12923e-06 + GGCCTGGAGACTCCCT
+chr2 35276341 35276352 -V_EVI1_02 4.94338e-06 - TGACAAGATAG
+chr2 35276341 35276352 -V_EVI1_05 6.50785e-06 - TGACAAGATAG
+chr2 38342120 38342136 +V_MAF_Q6 9.01376e-06 + ATGAGGGGAGTTGGCA
+chr2 38342224 38342235 -V_LEF1TCF1_Q4 1.86451e-06 - CCTTTGTTGTT
+chr2 38342226 38342236 +V_LEF1_Q2_01 9.48141e-06 + CAACAAAGGG
+chr2 38342263 38342280 -V_HSF1_Q6 2.12976e-06 - TTTCTGGGAATTTCTGG
+chr2 38342266 38342279 -V_IK3_01 9.28085e-06 - TTCTGGGAATTTC
+chr2 38342267 38342282 +V_STAT5A_01 4.26697e-06 + AAATTCCCAGAAATC
+chr2 38342267 38342282 +V_STAT5B_01 4.0278e-06 + AAATTCCCAGAAATC
+chr2 38342267 38342282 -V_STAT5A_01 1.28122e-06 - GATTTCTGGGAATTT
+chr2 38342267 38342282 -V_STAT5B_01 1.77164e-07 - GATTTCTGGGAATTT
+chr2 38378013 38378023 +V_EBOX_Q6_01 7.18016e-06 + CCACCTGACT
+chr2 38378079 38378088 +V_T3R_Q6 8.74404e-06 + CCTGTCCTG
+chr2 38378088 38378098 +V_ESE1_Q3 5.33438e-06 + AGTTTCCTGA
+chr2 38524482 38524495 -V_SP1_Q6 1.24491e-06 - GAGGGGCGGGGCA
+chr2 38524483 38524493 -V_SP1_Q6_01 3.39206e-07 - GGGGCGGGGC
+chr2 38524484 38524493 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr2 38524484 38524494 +V_SP1_Q2_01 1.0915e-06 + CCCCGCCCCT
+chr2 38524487 38524500 -V_SP1_Q6 2.76363e-06 - GGTGGGAGGGGCG
+chr2 38524489 38524499 +V_SP1_Q2_01 9.56538e-06 + CCCCTCCCAC
+chr2 38524490 38524500 -V_IK_Q5 4.33614e-06 - GGTGGGAGGG
+chr2 38524616 38524632 -V_DMRT2_01 5.71485e-06 - CATATTGCTACCTTGA
+chr2 43221466 43221478 +V_TTF1_Q6 1.93572e-06 + CCCTCAAGAGAC
+chr2 43221498 43221513 -V_OCT4_02 1.90479e-06 - ATTCTCATGGAAATG
+chr2 43221499 43221514 -V_OCT4_01 3.26181e-06 - AATTCTCATGGAAAT
+chr2 44359938 44359952 -V_KROX_Q6 1.18892e-06 - CCAGCCCCCACACC
+chr2 44359941 44359952 +V_EGR_Q6 6.55683e-06 + GTGGGGGCTGG
+chr2 44359944 44359953 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr2 44359984 44359996 -V_ETS_Q4 7.06097e-06 - AGCTACTTCCTC
+chr2 44360015 44360028 -V_AP1_01 8.76324e-06 - GGATGTGTCAGCA
+chr2 45592003 45592015 -V_OCT1_07 6.27936e-06 - GTTATGTTAATT
+chr2 45592003 45592018 -V_OCT4_02 9.10747e-06 - ATTGTTATGTTAATT
+chr2 45592004 45592014 -V_POU3F2_02 1.99833e-06 - TTATGTTAAT
+chr2 45592004 45592019 -V_OCT4_01 7.49108e-07 - CATTGTTATGTTAAT
+chr2 45592008 45592021 -V_SOX_Q6 2.73292e-06 - CTCATTGTTATGT
+chr2 45592034 45592049 +V_OCT1_Q6 8.77396e-06 + AGACATGCAAATAGG
+chr2 50769219 50769230 -V_TGIF_01 5.10679e-06 - AGCTGTCAGCA
+chr2 50904836 50904848 -V_ICSBP_Q6 4.57675e-06 - AAAATGAAACCA
+chr2 50904949 50904962 +V_COUP_DR1_Q6 8.22308e-06 + TGACCTTTGTGAC
+chr2 51609170 51609183 -V_IRF1_01 9.83295e-06 - GAAAACTCAAACC
+chr2 52241758 52241773 -V_CP2_02 2.27143e-06 - TCTGGGTCCGGCTGG
+chr2 52241776 52241795 -V_PU1_Q4 6.58035e-06 - CGCCCTCCCTTCCCCATCC
+chr2 52241796 52241810 -V_FOXO1_02 9.97629e-06 - AGCTTGTTTACACC
+chr2 52241798 52241810 +V_FOXO3A_Q1 5.66203e-06 + TGTAAACAAGCT
+chr2 52241799 52241810 +V_FOXO4_01 5.04013e-06 + GTAAACAAGCT
+chr2 52559516 52559530 +V_STAT3STAT3_Q3 5.95016e-06 + TTGAAGGGAAACCC
+chr2 52559542 52559557 -V_OCT4_02 5.69461e-06 - ATTCTCATGGTGATG
+chr2 52559630 52559660 -V_PAX4_04 4.24941e-06 - CAACAAAACCACACCTACTAGTACCACTCC
+chr2 57108947 57108962 -V_OCT4_02 3.74554e-06 - TTTGTGTTTCAAAAG
+chr2 57108991 57109010 +V_PU1_Q4 6.58035e-06 + TCCACTGACTTCCTGTCTC
+chr2 57108992 57109007 -V_ETS1_B 6.33731e-07 - ACAGGAAGTCAGTGG
+chr2 57108994 57109006 +V_ETS_Q4 9.46272e-06 + ACTGACTTCCTG
+chr2 57108994 57109008 -V_ETS2_B 1.18015e-07 - GACAGGAAGTCAGT
+chr2 57108995 57109006 -V_FLI1_Q6 2.65254e-06 - CAGGAAGTCAG
+chr2 57109058 57109069 -V_E12_Q6 3.65339e-06 - GACAGGTGCCA
+chr2 57109059 57109069 +V_MYOD_Q6 5.43478e-06 + GGCACCTGTC
+chr2 57724223 57724237 +V_FOXO3_01 7.44178e-06 + TCCTTGTTGACATT
+chr2 57724239 57724255 +V_NFKB_Q6_01 1.88211e-06 + TCAGTGGGAATTCCCA
+chr2 57724240 57724253 +V_IK1_01 8.16025e-06 + CAGTGGGAATTCC
+chr2 57724242 57724256 +V_NFKB_Q6 6.66476e-06 + GTGGGAATTCCCAA
+chr2 57724242 57724256 -V_NFKB_Q6 5.15179e-06 - TTGGGAATTCCCAC
+chr2 57724243 57724255 +V_NFKB_C 4.19055e-06 + TGGGAATTCCCA
+chr2 57724243 57724255 -V_NFKB_C 4.19055e-06 - TGGGAATTCCCA
+chr2 57724243 57724259 -V_NFKB_Q6_01 7.04469e-07 - GCCTTGGGAATTCCCA
+chr2 57724244 57724254 +V_NFKAPPAB65_01 7.87917e-06 + GGGAATTCCC
+chr2 57724244 57724254 +V_NFKAPPAB_01 7.46065e-07 + GGGAATTCCC
+chr2 57724244 57724254 -V_NFKAPPAB65_01 7.87917e-06 - GGGAATTCCC
+chr2 57724244 57724254 -V_NFKAPPAB_01 7.46065e-07 - GGGAATTCCC
+chr2 57724245 57724258 -V_IK1_01 1.89225e-06 - CCTTGGGAATTCC
+chr2 57724296 57724304 -V_CACD_01 9.89755e-06 - CCACACCC
+chr2 57724318 57724330 -V_FOXO3A_Q1 2.54447e-06 - TGAAAACAAGTT
+chr2 58564153 58564164 -V_ER_Q6_02 5.98444e-06 - CAGGTCACAGC
+chr2 58564258 58564268 +V_TAL1_Q6 3.01332e-06 + TCCATCTGCC
+chr2 59563391 59563401 +V_NKX22_01 1.34745e-06 + TTAAGTGGTT
+chr2 59563419 59563433 +V_STAT3STAT3_Q3 6.11235e-06 + ATGCTGGGAACTGC
+chr2 59563493 59563503 +V_TITF1_Q3 3.36246e-06 + ACTCAAGTAT
+chr2 59668342 59668354 +V_ETS_Q4 7.92948e-06 + TGCTACTTCCTG
+chr2 60333389 60333404 -V_DMRT3_01 6.71672e-06 - ATTTTGTTACAAAAT
+chr2 60457938 60457951 -V_STAT_Q6 8.60737e-06 - GTCTTTTCTGGGG
+chr2 63837957 63837968 +V_AP1_Q4 2.788e-06 + AGTGACTCACT
+chr2 63838070 63838084 -V_FXR_Q3 6.85764e-06 - CAGTGTGAGTAACC
+chr2 65259606 65259615 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr2 65259888 65259899 +V_AP1FJ_Q2 1.36855e-06 + GGTGACTCAGC
+chr2 65259888 65259899 +V_AP1_Q6 5.77866e-07 + GGTGACTCAGC
+chr2 65259888 65259899 +V_AP1_Q4 2.788e-06 + GGTGACTCAGC
+chr2 65259888 65259901 -V_NRF2_Q4 2.95916e-07 - CTGCTGAGTCACC
+chr2 65259889 65259900 -V_NFE2_01 2.04834e-07 - TGCTGAGTCAC
+chr2 65259889 65259900 -V_MAF_Q6_01 4.72643e-06 - TGCTGAGTCAC
+chr2 65259996 65260007 -V_OCT1_Q5_01 7.81079e-06 - TAATTTACATA
+chr2 68886058 68886075 +V_PPARG_03 7.84978e-06 + TTCTAGGCTAAGGGTGA
+chr2 68886068 68886090 +V_MEF2_04 3.7739e-06 + AGGGTGACTTGAAATAGAACTC
+chr2 70116779 70116793 +V_ETS2_B 6.72567e-06 + GGCAGGAAGCAGGA
+chr2 71225996 71226005 -V_AP2ALPHA_01 9.68294e-06 - GCCCGAGGC
+chr2 71226003 71226021 +V_MYOD_Q6_01 7.30593e-06 + GCCAGACAGGTGGCCAGA
+chr2 71226007 71226017 -V_MYOD_Q6 5.43478e-06 - GCCACCTGTC
+chr2 71226007 71226018 +V_E12_Q6 4.37943e-06 + GACAGGTGGCC
+chr2 71226013 71226024 +V_SMAD_Q6_01 3.73033e-07 + TGGCCAGACAG
+chr2 71226015 71226033 +V_MYOD_Q6_01 7.54855e-07 + GCCAGACAGGTGGCGGGC
+chr2 71226018 71226030 +V_MYOD_01 1.48949e-06 + AGACAGGTGGCG
+chr2 71226019 71226029 -V_MYOD_Q6 5.43478e-06 - GCCACCTGTC
+chr2 71226019 71226030 +V_E12_Q6 1.70208e-06 + GACAGGTGGCG
+chr2 71226022 71226037 -V_SMAD4_Q6 6.67979e-06 - GCCGGCCCGCCACCT
+chr2 71226048 71226058 -V_P53_DECAMER_Q2 2.10476e-06 - AGGCAAGTCC
+chr2 71226048 71226068 +V_P53_01 9.02648e-07 + GGACTTGCCTGGACTTGCCC
+chr2 71226048 71226068 -V_P53_01 5.708e-07 - GGGCAAGTCCAGGCAAGTCC
+chr2 71226058 71226068 -V_P53_DECAMER_Q2 6.84641e-06 - GGGCAAGTCC
+chr2 71565138 71565147 -V_HNF4_Q6 7.33929e-06 - AAGGTCCAA
+chr2 71565387 71565406 -V_PPARA_02 5.21998e-06 - TCAGGTCATTTAGGTTGGC
+chr2 71565406 71565415 -V_SMAD_Q6 9.3359e-06 - AGACACCCT
+chr2 71857055 71857070 +V_OCT4_01 6.02107e-06 + CATTCAAATGCTAAA
+chr2 72353899 72353914 -V_OCT4_01 1.09956e-06 - CATTGAAATGGAAAT
+chr2 72584637 72584649 -V_PBX_Q3 4.79292e-06 - GATTGAAGGCTG
+chr2 72617503 72617513 -V_EBOX_Q6_01 6.43409e-06 - CCACCTGGCC
+chr2 72617521 72617537 -V_NFY_01 6.75944e-07 - GGCAGCCAATCAGAAA
+chr2 72617523 72617537 +V_NFY_C 5.20945e-07 + TCTGATTGGCTGCC
+chr2 72617524 72617535 -V_ALPHACP1_01 5.77866e-07 - CAGCCAATCAG
+chr2 72617572 72617582 -V_P53_DECAMER_Q2 6.84641e-06 - GGGCAAGTCC
+chr2 72843846 72843860 -V_MEIS1AHOXA9_01 6.99292e-06 - TGACAGGTTTTAAA
+chr2 72843852 72843863 +V_TGIF_01 5.10679e-06 + ACCTGTCAGAA
+chr2 72843927 72843937 -V_ESE1_Q3 2.21291e-06 - TGTTTCCTGT
+chr2 75372526 75372539 -V_ZEC_01 6.34943e-07 - CAAGCTGGGTTGC
+chr2 75376347 75376366 +V_OCT1_01 7.53757e-06 + ATTTCTATGCAAATTTGTG
+chr2 75376350 75376362 +V_OCT1_07 2.0591e-06 + TCTATGCAAATT
+chr2 75376352 75376362 +V_OCT1_B 7.0832e-06 + TATGCAAATT
+chr2 75376352 75376363 -V_OCT_Q6 7.92146e-06 - AAATTTGCATA
+chr2 75663862 75663882 -V_YY1_02 1.30952e-06 - TCAGGGCCATGTGCCCTGGA
+chr2 75663885 75663896 +V_EVI1_05 9.70501e-06 + AGATAAGAAAG
+chr2 75918865 75918875 -V_LEF1_Q2_01 1.81713e-06 - CATCAAAGGG
+chr2 76280219 76280242 +V_OCT1_04 4.39411e-07 + TTATGGTTATGCAAATGTTATTA
+chr2 76280257 76280267 -V_PR_Q2 7.23e-06 - GAAAGAACAT
+chr2 76280265 76280275 +V_TAL1_Q6 4.87508e-06 + TCCAGCTGGT
+chr2 76280323 76280337 -V_ERR1_Q2 1.10419e-06 - ATATGAAGGTCACA
+chr2 76280385 76280403 -V_RFX1_02 2.74139e-07 - AGGTTGCCCAGGCAACCA
+chr2 76526326 76526335 +V_ZIC2_01 9.89755e-06 + GGGGTGGTG
+chr2 76526349 76526359 +V_KAISO_01 8.69798e-06 + TTCCTGCTAT
+chr2 77424667 77424676 +V_CKROX_Q2 8.90515e-06 + TCCCTCCCC
+chr2 77424668 77424676 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr2 77424668 77424677 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr2 77424669 77424680 -V_EGR_Q6 7.1239e-06 - GTGGGGGGAGG
+chr2 77424702 77424715 -V_ALX4_01 9.59891e-06 - ACTGAGAACAATC
+chr2 77424734 77424758 -V_COMP1_01 5.24802e-06 - TCTTTAGAATAGCAAGAAAAAGCT
+chr2 77424877 77424890 -V_MAZR_01 3.8307e-06 - GGGTGGGGGGACA
+chr2 77424920 77424930 +V_BCL6_Q3 4.03003e-06 + GTTTCTAGGT
+chr2 77551965 77551976 -V_EVI1_05 9.70501e-06 - AGATAAGAAAG
+chr2 84470393 84470412 +V_SRF_Q5_02 2.26112e-06 + CACACCCATATTTGGCCAC
+chr2 84470396 84470410 -V_SRF_Q6 1.27154e-06 - GGCCAAATATGGGT
+chr2 84470397 84470412 +V_SRF_C 5.56783e-06 + CCCATATTTGGCCAC
+chr2 84470397 84470415 +V_SRF_Q4 1.96829e-06 + CCCATATTTGGCCACACT
+chr2 84470484 84470498 -V_ERR1_Q2 3.64695e-06 - GCCTGAAGGTCACA
+chr2 85891096 85891111 +V_HES1_Q2 5.00052e-06 + AGCCCTGGTGGGCAG
+chr2 85891226 85891239 -V_OCT_C 1.22146e-06 - CTTATTTGCATGT
+chr2 85891227 85891238 -V_OCT1_Q5_01 6.50785e-06 - TTATTTGCATG
+chr2 85891227 85891238 -V_OCT_Q6 6.34669e-06 - TTATTTGCATG
+chr2 86206665 86206678 -V_AP2_Q6_01 5.96661e-07 - CCCCCCTCAGGCC
+chr2 86206786 86206796 -V_PR_Q2 8.13856e-06 - GAAAGGACAG
+chr2 87440777 87440786 -V_AP1_C 7.33929e-06 - GTGAGTCAG
+chr2 90548854 90548866 +V_OCT1_07 3.83276e-06 + TCTATGTAAATT
+chr2 90548862 90548874 +V_CEBPDELTA_Q6 8.62872e-06 + AATTGCTTAACT
+chr2 90548887 90548906 -V_OCT1_01 3.49896e-06 - ATACATATGCAAATCACTC
+chr2 90548889 90548902 +V_OCT_C 1.90294e-06 + GTGATTTGCATAT
+chr2 90548889 90548903 +V_OCT1_05 1.80594e-06 + GTGATTTGCATATG
+chr2 90548889 90548904 -V_OCT1_Q6 4.83659e-07 - ACATATGCAAATCAC
+chr2 90548890 90548901 +V_OCT1_Q5_01 3.69944e-07 + TGATTTGCATA
+chr2 90548890 90548901 +V_OCT_Q6 3.69944e-07 + TGATTTGCATA
+chr2 90548891 90548901 -V_OCT1_B 1.34745e-06 - TATGCAAATC
+chr2 90548892 90548907 -V_OCT4_01 2.83977e-06 - TATACATATGCAAAT
+chr2 91099221 91099236 -V_SRF_Q5_01 6.57455e-06 - CCATAGAAGGAAATT
+chr2 91099224 91099238 -V_SRF_Q6 6.58624e-06 - GTCCATAGAAGGAA
+chr2 91099284 91099299 -V_SMAD4_Q6 7.63557e-06 - GACATGCAGCCTCCT
+chr2 91796130 91796143 -V_IRF1_01 9.57197e-06 - GAAAACTGAAGCC
+chr2 93092944 93092955 +V_LEF1TCF1_Q4 5.90916e-06 + CCTTTGAACTT
+chr2 93092965 93092980 -V_OCT4_01 9.05006e-06 - TTTTATTTTGCAAAT
+chr2 93711781 93711791 +V_LEF1_Q2_01 5.84716e-06 + GATCAAAGGC
+chr2 93711832 93711844 +V_LMO2COM_01 2.05922e-06 + CCCCAGCTGCAG
+chr2 93767910 93767931 +V_DR3_Q4 2.81777e-06 + GATGACCCTTCTGATCTTCCT
+chr2 93767960 93767968 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr2 93767960 93767970 -V_MYOD_Q6 7.66616e-06 - GGCACCTGCC
+chr2 93767960 93767971 +V_E12_Q6 1.03082e-06 + GGCAGGTGCCA
+chr2 93768040 93768054 -V_BLIMP1_Q6 2.97987e-06 - TGAAAGGGAATGGA
+chr2 94330310 94330330 -V_PPARA_01 8.51836e-06 - GAAAACTAGGTCAACAGACA
+chr2 94330317 94330328 -V_RORA_Q4 4.57758e-06 - AAACTAGGTCA
+chr2 94330343 94330352 -V_FOXM1_01 8.06007e-06 - AGATGGAGT
+chr2 97814098 97814109 -V_NFE2_01 4.11193e-06 - TGCTGAGGCAT
+chr2 97814098 97814109 -V_MAF_Q6_01 2.65014e-06 - TGCTGAGGCAT
+chr2 97814154 97814162 +V_CACD_01 9.89755e-06 + CCACACCC
+chr2 97814365 97814382 +V_PU1_01 3.87664e-07 + CAAAAGGGGAAGTGCCT
+chr2 97814366 97814385 -V_PU1_Q4 3.95346e-06 - GAAAGGCACTTCCCCTTTT
+chr2 97814399 97814411 +V_ELF1_Q6 1.64054e-06 + GGTAGAGGAAAT
+chr2 97814419 97814434 +V_SPZ1_01 6.9171e-07 + GCAGGAGGGATGGGG
+chr2 97814443 97814457 +V_ETS2_B 5.87575e-07 + GAGAGGAAGTACTT
+chr2 99398529 99398547 +V_SRF_Q4 8.04174e-06 + CCCATGAAAGGCCATCCC
+chr2 99398579 99398596 -V_DR4_Q2 2.94346e-06 - GGTCCCCCAGTGACCCC
+chr2 101596617 101596637 -V_FOXP1_01 3.48675e-06 - TGTTTTGTTTTGTTTTTTTT
+chr2 101596620 101596629 +V_FOXO1_Q5 7.27852e-06 + AAAAACAAA
+chr2 103027286 103027304 +V_MYOD_Q6_01 2.3682e-06 + AGGCCACAGGTGCTGGGG
+chr2 103027289 103027301 +V_MYOD_01 2.71479e-06 + CCACAGGTGCTG
+chr2 103027289 103027301 +V_LMO2COM_01 1.86997e-06 + CCACAGGTGCTG
+chr2 103261428 103261441 +V_HSF_Q6 7.18997e-06 + TTTCAGGGGTTTC
+chr2 103261481 103261494 -V_AP2_Q6_01 9.55245e-06 - GCCCCCTCGGGCT
+chr2 103261482 103261491 +V_AP2ALPHA_01 9.68294e-06 + GCCCGAGGG
+chr2 103261482 103261491 +V_AP2GAMMA_01 7.85065e-06 + GCCCGAGGG
+chr2 103261521 103261536 +V_DMRT1_01 3.71498e-06 + CTGCTACAATGATGC
+chr2 103261523 103261538 -V_DMRT1_01 7.56504e-06 - TTGCATCATTGTAGC
+chr2 103261528 103261540 -V_CEBPDELTA_Q6 2.95866e-06 - CATTGCATCATT
+chr2 103833286 103833301 +V_OCT4_01 2.11448e-06 + TATTTTCATGCAGAT
+chr2 104212000 104212018 -V_CART1_01 2.50781e-06 - ACTTAATTTCCATTAGAG
+chr2 104212019 104212034 -V_OCT4_01 8.06422e-07 - TTTTGAAATGCAAAA
+chr2 104212045 104212059 +V_COUP_01 2.73931e-06 + TGACCTTTGAAAAT
+chr2 104212096 104212111 -V_PEBP_Q6 3.67856e-06 - GCTGACCACAGGATG
+chr2 104888687 104888699 +V_SREBP_Q3 3.94882e-06 + GGCCTCACCCTA
+chr2 105451500 105451513 +V_SP1_Q6 3.23457e-06 + GCGGGGTGGGGCC
+chr2 105451501 105451511 -V_SP1_Q2_01 8.14617e-06 - CCCCACCCCG
+chr2 105451501 105451514 +V_MAZR_01 2.15395e-06 + CGGGGTGGGGCCA
+chr2 105451502 105451512 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr2 105451569 105451586 +V_HSF1_Q6 2.803e-07 + ATGCTGGAAACTTCTCA
+chr2 106401935 106401944 +V_T3R_Q6 8.74404e-06 + CCTGTCCTC
+chr2 106401988 106402005 +V_FOXP3_Q4 5.24137e-06 + GAAGATTTGTCACAGAG
+chr2 106402076 106402087 -V_CP2_01 4.70416e-06 - GCTAGACCCAG
+chr2 116069182 116069192 +V_PARP_Q3 6.05736e-06 + TAGGAAATAG
+chr2 117020136 117020155 -V_PU1_Q4 1.02828e-06 - AGCCTGCTCTTCCTCCTTT
+chr2 117020147 117020162 -V_SMAD4_Q6 4.06719e-06 - GAGGGCCAGCCTGCT
+chr2 117020204 117020219 +V_ETS1_B 8.48353e-06 + AGAGGAAATGGTTTC
+chr2 117020207 117020219 -V_NANOG_01 7.60378e-06 - GAAACCATTTCC
+chr2 117020219 117020232 -V_SOX_Q6 8.71426e-06 - CCCTTTGTTAGGA
+chr2 117162768 117162780 -V_AP1_Q2_01 7.5907e-06 - TGACTCAGGCTC
+chr2 118355071 118355081 +V_SP1_Q2_01 7.32e-06 + ACCCGCCCCC
+chr2 118355072 118355083 -V_EGR_Q6 6.21659e-06 - GAGGGGGCGGG
+chr2 118355072 118355086 +V_KROX_Q6 1.18516e-08 + CCCGCCCCCTCCCC
+chr2 118355073 118355084 +V_SP1SP3_Q4 9.31298e-08 + CCGCCCCCTCC
+chr2 118355076 118355086 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr2 118355077 118355086 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr2 118355078 118355086 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr2 118355087 118355098 -V_PAX_Q6 6.77407e-06 - CTGGGACTTAC
+chr2 118355322 118355336 +V_MTF1_Q4 7.96123e-06 + TCTGGACACAGCCC
+chr2 118355333 118355349 -V_AP2_Q3 4.16477e-06 - GGCCCCAGGGGATGGG
+chr2 118355725 118355740 +V_PEBP_Q6 2.65415e-06 + GGTCACCACACAGGT
+chr2 118355822 118355832 -V_SP1_Q2_01 6.40385e-06 - CCCCTCCCCT
+chr2 118355823 118355831 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr2 118355823 118355832 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr2 118355823 118355833 +V_SP1_Q6_01 9.74073e-06 + GGGGAGGGGT
+chr2 118548542 118548555 -V_AP2_Q6_01 8.86342e-06 - CGGGCCACAGGCT
+chr2 118548569 118548581 -V_GATA4_Q3 5.81595e-06 - AGATAGGAGGCA
+chr2 118548613 118548622 +V_AP2ALPHA_01 9.68294e-06 + GCCCGAGGC
+chr2 119289743 119289758 +V_OCT4_01 4.91956e-06 + TATTGTAATGCTGAA
+chr2 119289808 119289823 +V_OCT4_01 6.46423e-06 + CTTTGTTGTGCAAAC
+chr2 119556583 119556595 +V_GABP_B 7.90118e-06 + GCGGGAAGTGCT
+chr2 119683239 119683253 -V_E2A_Q2 1.9257e-07 - CCACCTGCCTCTGT
+chr2 119683244 119683252 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr2 119683244 119683254 -V_MYOD_Q6 6.66004e-06 - TCCACCTGCC
+chr2 119683286 119683301 +V_OCT4_02 3.02765e-06 + ATTCAGATGCTGATT
+chr2 119683292 119683306 +V_GATA1_03 7.51361e-06 + ATGCTGATTACTGC
+chr2 119683388 119683404 -V_NFY_01 1.58231e-06 - ATTAACCAATCAGAAG
+chr2 120069901 120069917 +V_NFY_01 1.25937e-06 + ATGAGCCAATGGGGGC
+chr2 120069917 120069935 +V_PIT1_Q6 4.43795e-06 + CATTCATATTCAAAACCA
+chr2 120340193 120340211 +V_MYOD_Q6_01 3.40954e-07 + ACAAACCAGGTGGCGGAG
+chr2 121303337 121303352 +V_OCT1_02 4.47014e-08 + ATGAATATGCACATA
+chr2 121303387 121303400 +V_IK1_01 1.89225e-06 + TCTTGGGAATGTC
+chr2 121303387 121303400 +V_IK3_01 4.21791e-06 + TCTTGGGAATGTC
+chr2 121303465 121303479 -V_KROX_Q6 8.32366e-06 - GCCACCCCCCCACC
+chr2 123211476 123211488 -V_ELF1_Q6 7.75166e-06 - ATTACAGGAAAT
+chr2 125626262 125626274 +V_GATA4_Q3 2.87109e-06 + AGATCAAAGGGA
+chr2 125626263 125626273 +V_LEF1_Q2_01 1.81713e-06 + GATCAAAGGG
+chr2 125626380 125626398 -V_NF1_Q6 5.86126e-06 - CCTTGGCTTCCAGCCCTG
+chr2 126433464 126433479 -V_IRF_Q6 1.92022e-06 - TACAGTTTCTGTTTC
+chr2 126433465 126433477 +V_ICSBP_Q6 3.08451e-06 + AAACAGAAACTG
+chr2 126433526 126433538 -V_SRY_02 2.38689e-06 - TAAAACAATAGA
+chr2 126781583 126781598 +V_CP2_02 3.39312e-06 + GCTGGTTCCAGCGTG
+chr2 127275594 127275607 -V_MAZR_01 3.32118e-06 - GGGGGAGGGGCAG
+chr2 127275595 127275608 -V_SP1_Q6 7.04257e-06 - TGGGGGAGGGGCA
+chr2 127275596 127275606 -V_SP1_Q6_01 2.74385e-06 - GGGGAGGGGC
+chr2 127275597 127275606 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr2 127275597 127275607 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr2 127275598 127275606 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr2 127275598 127275607 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr2 127275608 127275621 -V_DEC_Q1 7.9256e-06 - GCGCACCTGAAGC
+chr2 127275662 127275672 +V_SP1_Q2_01 9.56538e-06 + CCCCTCCCAC
+chr2 127275666 127275676 +V_NKX25_Q5 3.30926e-06 + TCCCACTTGC
+chr2 127275706 127275720 +V_KROX_Q6 5.9833e-06 + GGCTCCCCCACCCC
+chr2 127275708 127275720 +V_PAX4_03 3.63034e-06 + CTCCCCCACCCC
+chr2 127275709 127275724 +V_SREBP_Q6 6.48026e-06 + TCCCCCACCCCACCC
+chr2 127275709 127275724 +V_SREBP1_Q5 4.09665e-06 + TCCCCCACCCCACCC
+chr2 127275714 127275727 -V_SP1_Q6 4.19627e-06 - AGGGGGTGGGGTG
+chr2 127275716 127275726 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr2 127275717 127275726 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr2 127941527 127941536 +V_CKROX_Q2 8.90515e-06 + TCCCTCCCC
+chr2 127941528 127941536 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr2 127941557 127941570 +V_NRF2_Q4 2.95916e-07 + CTGCTGTGTCATG
+chr2 127941558 127941569 +V_MAF_Q6_01 6.24509e-06 + TGCTGTGTCAT
+chr2 128182197 128182205 -V_CACD_01 9.89755e-06 - CCACACCC
+chr2 128535116 128535134 +V_HNF3_Q6_01 9.93411e-06 + AGCCTTGTTTGTTTTGGA
+chr2 128535119 128535132 -V_HNF3_Q6 9.93672e-06 - CAAAACAAACAAG
+chr2 128535182 128535197 +V_PEBP_Q6 6.38397e-06 + ACTAACCGCAGACCG
+chr2 128535185 128535204 -V_SEF1_C 7.98437e-06 - AGGAGGCCGGTCTGCGGTT
+chr2 129095147 129095162 -V_OCT4_01 5.24325e-06 - CTTTGTAATGTTAAC
+chr2 129521750 129521765 -V_OCT4_02 6.99193e-06 - ATTGTGATGTTAAAT
+chr2 129521855 129521866 +V_ALPHACP1_01 2.32172e-06 + CACCCAATGAG
+chr2 129521857 129521869 -V_AP1_Q2_01 9.71015e-07 - TGACTCATTGGG
+chr2 129521859 129521872 +V_AP1_01 7.1696e-06 + CAATGAGTCAGGA
+chr2 129521861 129521870 +V_AP1_C 4.03003e-06 + ATGAGTCAG
+chr2 129624262 129624275 +V_SP1_Q6 3.06772e-06 + GGGGGGTGGGGTG
+chr2 129624263 129624272 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr2 129624263 129624273 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr2 129624269 129624281 -V_PAX4_03 1.38116e-07 - AATCCCCACCCC
+chr2 129624287 129624302 +V_VDRRXR_01 5.76999e-06 + AAGTCATCAGGTTCA
+chr2 129707726 129707741 -V_OCT4_01 1.66292e-06 - CTTTGAGATGTAAAT
+chr2 129707751 129707765 +V_KROX_Q6 9.17068e-06 + CCCACCCACCCACC
+chr2 129707765 129707778 +V_PPAR_DR1_Q2 6.6417e-06 + AAACCTTTGACCC
+chr2 130128892 130128901 -V_WT1_Q6 6.67377e-06 - CCCTCCCGC
+chr2 130128918 130128937 -V_OCT1_01 3.8208e-06 - ATGAATATGCTAATGAGAG
+chr2 130128920 130128933 +V_OCT_C 7.96357e-07 + CTCATTAGCATAT
+chr2 130128920 130128934 +V_OCT1_05 2.72043e-07 + CTCATTAGCATATT
+chr2 130128923 130128933 -V_POU3F2_02 7.27852e-06 - ATATGCTAAT
+chr2 130129015 130129024 +V_ZIC2_01 7.66616e-06 + AGGGTGGTC
+chr2 130553928 130553947 +V_PU1_Q4 4.50585e-06 + TGACCTCAGTTCCTCTTTA
+chr2 130553931 130553948 -V_PU1_01 5.34363e-06 - TTAAAGAGGAACTGAGG
+chr2 131870540 131870554 -V_BLIMP1_Q6 4.97194e-06 - AGTGAGTGAAAGGA
+chr2 131959281 131959290 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr2 131959281 131959291 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr2 131959281 131959292 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr2 131959282 131959294 -V_PAX4_03 2.40392e-07 - CACCCCCACCCC
+chr2 131959282 131959296 -V_KROX_Q6 2.21131e-07 - CCCACCCCCACCCC
+chr2 131959285 131959296 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr2 131959286 131959299 +V_SP1_Q6 8.76141e-06 + TGGGGGTGGGGGG
+chr2 131959287 131959296 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr2 131959287 131959297 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr2 131959287 131959298 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr2 131959288 131959300 -V_PAX4_03 5.05761e-06 - ACCCCCCACCCC
+chr2 131959290 131959305 +V_SPZ1_01 5.95976e-06 + GGTGGGGGGTAGAGG
+chr2 131959297 131959309 +V_ELF1_Q6 9.73492e-07 + GGTAGAGGAAGT
+chr2 131959334 131959349 +V_OCT4_01 6.91054e-06 + ATTTATCATGCAAAA
+chr2 132815664 132815675 +V_BACH2_01 1.82283e-06 + CATGAGTCACC
+chr2 132815664 132815675 -V_AP1_Q6 9.43393e-06 - GGTGACTCATG
+chr2 132815723 132815734 -V_EBF_Q6 7.15927e-06 - GTCCCCTGAGG
+chr2 132815762 132815780 -V_MYOD_Q6_01 4.80053e-06 - CTGGGGCAGGTGCAGTCA
+chr2 132815765 132815776 -V_E12_Q6 3.31699e-06 - GGCAGGTGCAG
+chr2 132815765 132815777 -V_LMO2COM_01 1.39092e-06 - GGGCAGGTGCAG
+chr2 132815766 132815776 +V_MYOD_Q6 6.66004e-06 + TGCACCTGCC
+chr2 132815767 132815781 +V_E2A_Q2 6.80211e-07 + GCACCTGCCCCAGA
+chr2 132815768 132815776 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr2 132815784 132815796 +V_FOXO3A_Q1 9.47139e-06 + TGTAAACAAAAC
+chr2 132815809 132815817 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr2 134786537 134786547 +V_TBX5_Q5 5.68466e-06 + TTCACACCTG
+chr2 135623698 135623714 -V_S8_01 6.58224e-06 - GCAAGTCAATTAGCCT
+chr2 135623761 135623773 +V_AP2_Q6 8.15619e-06 + CGCCCCCAGGCT
+chr2 135623778 135623792 +V_DMRT7_01 5.18644e-06 + TTGCAACAGTGTTT
+chr2 135623778 135623793 +V_DMRT1_01 9.21473e-06 + TTGCAACAGTGTTTT
+chr2 136201254 136201269 +V_OCT4_01 1.79634e-06 + CATTGTTATGGAAAC
+chr2 138257865 138257880 +V_ETS1_B 2.00417e-06 + AGAGGAAGGGAGTGG
+chr2 142415328 142415341 +V_AP2_Q6_01 5.59926e-06 + GAGCCCCCAGGCA
+chr2 142415330 142415346 +V_AP2_Q3 1.51951e-06 + GCCCCCAGGCAGCAGT
+chr2 142707028 142707041 +V_AP2_Q6_01 7.38468e-06 + CCCTCCCGAGGCC
+chr2 142707145 142707161 -V_AP2_Q3 8.07615e-06 - GGCCCCGGGCAGTCAC
+chr2 142707151 142707160 +V_AP2ALPHA_01 3.00918e-06 + GCCCGGGGC
+chr2 142707151 142707160 +V_AP2GAMMA_01 3.00918e-06 + GCCCGGGGC
+chr2 142707151 142707160 -V_AP2ALPHA_01 6.01835e-06 - GCCCCGGGC
+chr2 142707151 142707160 -V_AP2GAMMA_01 6.01835e-06 - GCCCCGGGC
+chr2 142707185 142707199 -V_ATF3_Q6 3.96109e-06 - ATCTGATGTCATCC
+chr2 144541170 144541182 -V_IPF1_Q4 1.66645e-06 - GTTCTAATGACC
+chr2 144541219 144541231 -V_SRY_02 1.60347e-06 - CAAAACAATAGG
+chr2 146706140 146706153 -V_IRF2_01 9.05003e-06 - GCAAAGGGAAACC
+chr2 146744552 146744564 -V_GLI_Q2 5.13911e-06 - CCTGGGTGGTTC
+chr2 146744632 146744647 +V_VDRRXR_01 2.15195e-06 + GGGTCAAGGGCTTCG
+chr2 146837316 146837331 -V_OCT4_01 6.91054e-06 - CATTTAAATGCTAAT
+chr2 149808997 149809018 -V_PAX6_01 7.24772e-06 - TATTGTCATGGATGACTTGCC
+chr2 149809074 149809089 +V_OCT4_01 8.48593e-06 + TATTCATATGAAAAT
+chr2 150463914 150463928 +V_OCT1_05 6.86039e-06 + CTACTTAGCATATG
+chr2 150463967 150463980 -V_OCT_C 9.35619e-06 - CTCATTTGCCTGC
+chr2 150463989 150464002 +V_MAZR_01 7.66218e-06 + GGAGGAGGGGACC
+chr2 151583054 151583067 -V_IK3_01 7.57723e-06 - TCTAGGGAACACT
+chr2 152552359 152552370 +V_PAX_Q6 8.43097e-06 + CTAGAACTCAC
+chr2 152552383 152552395 +V_LRH1_Q5 2.59537e-06 + CTAGCCTTGAAC
+chr2 152552409 152552420 -V_NFE2_01 6.57151e-06 - AGCTGAGTCAA
+chr2 152552409 152552420 -V_MAF_Q6_01 7.4031e-06 - AGCTGAGTCAA
+chr2 152552438 152552448 -V_TBX5_Q5 1.65463e-06 - CTCACACCTG
+chr2 152835401 152835415 -V_ERR1_Q2 4.46186e-06 - CCCTCAAGGTCATC
+chr2 152835403 152835412 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr2 153196796 153196811 +V_OCT4_02 2.77311e-06 + ATTCTGATGTAAATG
+chr2 153196814 153196837 +V_OCT1_04 2.90521e-06 + GGATTGATATGTAAAATAAAAGA
+chr2 153348127 153348141 +V_BLIMP1_Q6 3.386e-06 + AGAAGGGGAAAGGG
+chr2 153348191 153348209 +V_MYOD_Q6_01 9.72371e-06 + GGCCAGCAGGTGGAAGGG
+chr2 153348195 153348205 -V_TAL1_Q6 7.11328e-06 - TCCACCTGCT
+chr2 153348237 153348253 +V_AP2_Q3 3.22678e-06 + GCCCTCGGGCAAGGGC
+chr2 153348238 153348247 -V_AP2ALPHA_01 9.68294e-06 - GCCCGAGGG
+chr2 153348238 153348247 -V_AP2GAMMA_01 7.85065e-06 - GCCCGAGGG
+chr2 153348260 153348275 -V_SREBP_Q6 2.30063e-08 - CCGCCCACCCCAGGC
+chr2 153348260 153348275 -V_SREBP1_Q5 9.71403e-08 - CCGCCCACCCCAGGC
+chr2 153348262 153348273 -V_CP2_01 8.6781e-06 - GCCCACCCCAG
+chr2 153348266 153348279 +V_SP1_Q6 5.65055e-06 + GGTGGGCGGAGGC
+chr2 153379729 153379744 -V_DMRT5_01 7.45969e-06 - TTTTGTGACTTTGGC
+chr2 153379768 153379778 -V_SP1_Q2_01 9.56538e-06 - CCCCACCCCT
+chr2 153379854 153379868 +V_PAX6_Q2 1.5537e-08 + CTGTCCTGGAACTC
+chr2 153379859 153379870 +V_PAX_Q6 2.73139e-06 + CTGGAACTCTC
+chr2 154795860 154795878 +V_NF1_Q6 9.30221e-06 + TGTTGGCAAGAGTTCCAG
+chr2 154795959 154795968 +V_AP2ALPHA_01 9.68294e-06 + GCCCGAGGC
+chr2 156251494 156251509 -V_OCT4_02 4.9622e-06 - TTTGAAATGCAAATG
+chr2 156251495 156251510 -V_OCT4_01 9.73507e-08 - TTTTGAAATGCAAAT
+chr2 156251516 156251528 +V_LMO2COM_01 3.81592e-06 + CTCCAGGTGGTG
+chr2 157248655 157248685 +V_PAX4_04 6.64961e-06 + GAAGAGTATCCACCCTCCCCTCCCCTCCCT
+chr2 157248667 157248675 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr2 157248671 157248680 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr2 157248671 157248681 +V_SP1_Q2_01 6.40385e-06 + CCCCTCCCCT
+chr2 157248672 157248680 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr2 157666577 157666587 +V_NCX_01 5.32427e-06 + TGGTAATTGG
+chr2 157666625 157666640 +V_OCT4_01 9.05006e-06 + TATTGTAATTGAAAT
+chr2 157666648 157666663 -V_OCT4_01 2.28618e-06 - TTTTATTATGCAAAC
+chr2 158912672 158912695 -V_COUPTF_Q6 2.31388e-06 - TGGTGTGACCTGTGACCTTCTCT
+chr2 158912673 158912694 +V_PPARG_01 9.10442e-07 + GAGAAGGTCACAGGTCACACC
+chr2 158912726 158912749 -V_OCT1_04 6.1322e-06 - GCATTAATATGCTAATGAACAGT
+chr2 158912730 158912743 +V_OCT_C 3.87618e-06 + TTCATTAGCATAT
+chr2 158912733 158912743 -V_POU3F2_02 7.27852e-06 - ATATGCTAAT
+chr2 158912733 158912748 -V_OCT4_01 4.01204e-06 - CATTAATATGCTAAT
+chr2 158912809 158912820 -V_E12_Q6 3.31699e-06 - GGCAGGTGCTG
+chr2 158912810 158912820 +V_MYOD_Q6 2.71739e-06 + AGCACCTGCC
+chr2 158912811 158912825 +V_E2A_Q2 1.48735e-06 + GCACCTGCCACAGC
+chr2 158912812 158912820 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr2 158912833 158912843 -V_POU1F1_Q6 7.63593e-06 - ATGCATAAAT
+chr2 159937151 159937166 +V_OCT4_01 3.49929e-06 + CTTTGTAATGGTAAT
+chr2 159937167 159937187 -V_FOXP1_01 1.63326e-07 - TTGTTTGTATTTTTTTGTAA
+chr2 159937200 159937214 -V_ERR1_Q2 6.98967e-06 - TCCTGAAGGTCACC
+chr2 160186142 160186157 -V_OCT4_02 2.77311e-06 - TTTCAGATGCAAAAC
+chr2 160186143 160186158 -V_OCT4_01 4.57831e-06 - CTTTCAGATGCAAAA
+chr2 160186164 160186176 +V_NFKB_C 3.16552e-06 + AGGGAATCTCCA
+chr2 160186228 160186236 -V_CACD_01 9.89755e-06 - CCACACCC
+chr2 160186239 160186250 +V_AP1_Q4 8.85541e-06 + AGTGACTGAGT
+chr2 160482065 160482079 -V_NFY_C 7.62778e-06 - TCAGATTGGTTAAT
+chr2 160482167 160482182 -V_OCT4_02 8.38472e-07 - ATTCAGATGCTGATG
+chr2 160482204 160482217 -V_SP1_Q6 6.05961e-06 - TGGGGGAGGGGGT
+chr2 160482205 160482215 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr2 160482205 160482216 +V_SP1SP3_Q4 2.8432e-06 + CCCCCTCCCCC
+chr2 160482206 160482215 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr2 160482206 160482216 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr2 160482207 160482215 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr2 160482207 160482216 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr2 162857663 162857678 -V_OCT4_02 6.55103e-06 - ATTGTAATGCTAAAT
+chr2 162857664 162857679 -V_OCT4_01 1.40241e-06 - TATTGTAATGCTAAA
+chr2 162857733 162857747 +V_BLIMP1_Q6 9.49741e-06 + AGAAAGGGAGAGGC
+chr2 162857747 162857759 -V_AP1_Q2_01 6.13341e-06 - TGACTCAGGCTG
+chr2 162887863 162887874 +V_AP1FJ_Q2 7.39364e-06 + GGTGACTCCAA
+chr2 162887952 162887967 -V_OCT4_01 7.94702e-06 - TTTTGTTGTGCAAAC
+chr2 162887984 162887999 -V_OCT4_01 9.65557e-06 - TATTATAATGCTAAC
+chr2 162888009 162888026 +V_DR4_Q2 5.78925e-06 + TAACCTCGACCAACCCC
+chr2 164783235 164783250 +V_OCT4_01 6.91054e-06 + CTTTCATATGCTAAA
+chr2 164783236 164783251 +V_OCT4_02 7.51249e-06 + TTTCATATGCTAAAC
+chr2 164783261 164783272 -V_EGR_Q6 6.55683e-06 - GTGGGGGCTGG
+chr2 164783321 164783331 -V_LEF1_Q2_01 9.48141e-06 - GAACAAAGGG
+chr2 165731964 165731982 -V_FOXJ2_01 2.41928e-06 - TTACAAACAAACATTCTT
+chr2 165732028 165732042 +V_ETS2_B 9.24814e-06 + GGGAGGAAACGCTT
+chr2 165732096 165732110 -V_KROX_Q6 8.74919e-06 - CCCTCCCCCACTGC
+chr2 165732100 165732113 +V_SP1_Q6 1.00798e-06 + TGGGGGAGGGGCG
+chr2 165732101 165732110 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr2 165732101 165732111 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr2 165732101 165732114 +V_MAZR_01 3.32118e-06 + GGGGGAGGGGCGC
+chr2 165732102 165732110 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr2 165732102 165732111 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr2 165732102 165732112 +V_SP1_Q6_01 2.74385e-06 + GGGGAGGGGC
+chr2 165732202 165732215 -V_CEBPGAMMA_Q6 8.42919e-06 - CTGATTTCTAAAT
+chr2 165732227 165732236 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr2 165732228 165732236 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr2 165732228 165732237 -V_CKROX_Q2 8.90515e-06 - TCCCTCCCC
+chr2 165768778 165768787 -V_T3R_Q6 8.74404e-06 - CCTGTCCTC
+chr2 165768845 165768857 +V_OCT1_07 2.0591e-06 + TCTATGCAAATT
+chr2 165768847 165768857 +V_OCT1_B 7.0832e-06 + TATGCAAATT
+chr2 165768847 165768858 -V_OCT_Q6 9.41564e-06 - CAATTTGCATA
+chr2 165953327 165953342 +V_DMRT5_01 7.94465e-06 + TTCTGTTACTTTGTT
+chr2 165953329 165953344 +V_DMRT1_01 1.51207e-06 + CTGTTACTTTGTTGC
+chr2 165953371 165953387 +V_DMRT2_01 3.03478e-06 + TAGTTTGTTACTTTGT
+chr2 165953372 165953387 +V_DMRT3_01 3.33554e-06 + AGTTTGTTACTTTGT
+chr2 165953373 165953388 +V_DMRT5_01 1.76793e-06 + GTTTGTTACTTTGTT
+chr2 165953375 165953389 +V_DMRT7_01 7.24493e-07 + TTGTTACTTTGTTG
+chr2 165953375 165953390 +V_DMRT1_01 8.47921e-07 + TTGTTACTTTGTTGC
+chr2 166116930 166116940 -V_TBX5_Q5 9.08563e-07 - CTCACACCTT
+chr2 167548584 167548604 +V_FOXP1_01 1.40446e-06 + TTATTGTTGTTGTTTTATTT
+chr2 167859557 167859572 -V_VDR_Q3 2.76308e-06 - GGGTGGGGGAGGAGA
+chr2 167859559 167859573 +V_KROX_Q6 2.01857e-06 + TCCTCCCCCACCCC
+chr2 167859561 167859573 +V_PAX4_03 3.63034e-06 + CTCCCCCACCCC
+chr2 167859564 167859574 +V_SP1_Q2_01 8.14617e-06 + CCCCACCCCG
+chr2 167859646 167859658 -V_LMO2COM_01 5.97756e-06 - CTGCAGGTGCTC
+chr2 167898352 167898365 +V_AP2_Q6_01 1.66582e-06 + CAGGCCCCAGGCT
+chr2 167898361 167898376 -V_SMAD4_Q6 6.97552e-06 - CTGAGCGAGCCAGCC
+chr2 167898416 167898425 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr2 167898416 167898430 +V_KROX_Q6 5.90472e-07 + CCCACCCCCTCCCC
+chr2 167898417 167898428 +V_SP1SP3_Q4 4.25103e-06 + CCACCCCCTCC
+chr2 167898420 167898430 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr2 167898421 167898430 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr2 167898422 167898430 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr2 168039733 168039745 -V_FOXD3_01 6.65549e-06 - GAATGTTTGTGT
+chr2 168039807 168039822 -V_OCT4_01 6.90794e-07 - CTTTGAAATGCTAAT
+chr2 168058829 168058852 -V_COUPTF_Q6 5.51542e-06 - CGTGGTGGCCTTTGATCCCAGCA
+chr2 168058830 168058851 +V_PPARG_01 6.77586e-06 + GCTGGGATCAAAGGCCACCAC
+chr2 168058863 168058883 +V_FOXP1_01 3.16865e-06 + TTTTTTATGTAGGCATTTTT
+chr2 168058879 168058897 -V_FOXJ2_01 1.11381e-06 - ATGCAAATAAACATAAAA
+chr2 168058886 168058899 +V_OCT_C 8.94137e-06 + TTTATTTGCATAG
+chr2 168058887 168058898 +V_OCT1_Q5_01 2.46139e-06 + TTATTTGCATA
+chr2 168058887 168058898 +V_OCT_Q6 1.64093e-06 + TTATTTGCATA
+chr2 168058888 168058898 -V_OCT1_B 4.33582e-06 - TATGCAAATA
+chr2 168100454 168100463 +V_AP2ALPHA_01 9.68294e-06 + GCCCGAGGC
+chr2 168590249 168590261 -V_LMO2COM_01 4.26141e-06 - CCGCAGGTGGTC
+chr2 168633396 168633408 +V_NFAT_Q6 5.53405e-06 + CAGAGGAAAACA
+chr2 168982444 168982452 +V_STAT3_02 9.89755e-06 + GGCTTCCC
+chr2 168982514 168982527 +V_HNF3_Q6 4.17324e-06 + ATGAGCAAACACA
+chr2 169119063 169119082 +V_OCT1_01 9.8471e-06 + TTGGCTATGCAAATGTTTG
+chr2 169119068 169119078 +V_OCT1_B 4.33582e-06 + TATGCAAATG
+chr2 169119068 169119079 -V_OCT_Q6 7.02042e-06 - ACATTTGCATA
+chr2 169876109 169876122 -V_NRF2_Q4 5.58469e-07 - CTGCTGAGTCAGA
+chr2 169876110 169876121 -V_MAF_Q6_01 4.54281e-07 - TGCTGAGTCAG
+chr2 169876155 169876164 -V_T3R_Q6 3.30926e-06 - CCTGTCCTT
+chr2 171057236 171057248 -V_GLI_Q2 6.68438e-06 - CCTGGGTGGTGT
+chr2 172394156 172394170 -V_STAT3STAT3_Q3 2.0443e-06 - GTGCTGGGAAAACC
+chr2 172444757 172444772 -V_OCT4_02 5.69461e-06 - ATTCAGATGCTAGTT
+chr2 172444785 172444794 -V_ZIC1_01 4.94877e-06 - GGGGTGGTC
+chr2 172444785 172444794 -V_ZIC2_01 2.23138e-06 - GGGGTGGTC
+chr2 172444841 172444856 +V_VDR_Q3 6.21229e-07 + GGGGCTGGAGGGTGA
+chr2 172444876 172444885 +V_T3R_Q6 8.74404e-06 + CCTGTCCTG
+chr2 172536375 172536403 +V_PAX5_02 8.68648e-06 + GATGTAGATTTTGGGGTGGGACAGTTCC
+chr2 172536463 172536491 -V_PAX5_01 6.53963e-06 - AACCAGAGCAGTGCTGGAGAGCCGGCTC
+chr2 172876148 172876162 +V_KROX_Q6 9.17068e-06 + CCCACCCCCATTCC
+chr2 172876221 172876233 +V_ETS_Q4 7.06097e-06 + GGCCACTTCCTG
+chr2 172876234 172876264 -V_HOX13_01 9.87496e-06 - TGCTCCCTCCCCCAGTGTTCTGAGGCACCT
+chr2 172876251 172876260 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr2 172876252 172876260 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr2 172876252 172876261 -V_CKROX_Q2 8.90515e-06 - TCCCTCCCC
+chr2 172876277 172876298 -V_PPARG_01 7.1849e-06 - TGAGAGGACAAAGGTCCAAGC
+chr2 172876279 172876288 -V_HNF4_Q6 7.33929e-06 - AAGGTCCAA
+chr2 172876281 172876294 +V_PPAR_DR1_Q2 2.43547e-06 + GGACCTTTGTCCT
+chr2 172876281 172876294 +V_HNF4_DR1_Q3 3.06132e-06 + GGACCTTTGTCCT
+chr2 172876281 172876294 +V_COUP_DR1_Q6 2.64605e-06 + GGACCTTTGTCCT
+chr2 172876281 172876294 -V_RXRLXRB_01 7.77466e-06 - AGGACAAAGGTCC
+chr2 172876281 172876294 -V_DR1_Q3 1.15696e-06 - AGGACAAAGGTCC
+chr2 172899261 172899290 +V_MYOGNF1_01 4.90078e-06 + TGGTTTTTGCCCCTGGCACAGGGCCAGCA
+chr2 174169783 174169805 +V_MEF2_03 7.44905e-06 + TAAGGATCTATTTATAGAATTG
+chr2 174169785 174169807 -V_MEF2_02 2.94164e-07 - CACAATTCTATAAATAGATCCT
+chr2 174169785 174169807 -V_MEF2_03 5.99273e-07 - CACAATTCTATAAATAGATCCT
+chr2 174169785 174169807 -V_MEF2_04 5.15082e-07 - CACAATTCTATAAATAGATCCT
+chr2 174169810 174169819 +V_RFX_Q6 3.30926e-06 + CTGTTGCCA
+chr2 174169810 174169828 +V_RFX1_02 1.01854e-08 + CTGTTGCCATGGCAACAT
+chr2 174169810 174169828 -V_RFX1_02 6.31913e-08 - ATGTTGCCATGGCAACAG
+chr2 174893642 174893661 -V_SEF1_C 5.09832e-06 - CAGAGGGAGTGCTGTGGTT
+chr2 174893664 174893683 +V_PU1_Q4 4.22218e-06 + GCCTCCTACTTCCTCCTAG
+chr2 174893665 174893680 -V_ETS1_B 6.14163e-06 - GGAGGAAGTAGGAGG
+chr2 177571013 177571023 -V_IK_Q5 8.83478e-06 - TTTGGGAGGT
+chr2 177571014 177571023 -V_LYF1_01 7.33929e-06 - TTTGGGAGG
+chr2 177571068 177571083 -V_OCT4_01 6.91054e-06 - CTTTTAAATGTAAAT
+chr2 178684021 178684031 -V_POU3F2_02 8.91945e-06 - TTATGGTAAT
+chr2 179723959 179723973 -V_NFY_C 9.63399e-06 - TCTAATTGGTTAAT
+chr2 180654991 180655012 +V_STAT1_01 1.51491e-06 + GACAACTTCCCGGAACTCTCC
+chr2 180654991 180655012 -V_STAT3_01 3.30891e-06 - GGAGAGTTCCGGGAAGTTGTC
+chr2 180654994 180655009 +V_STAT5A_01 4.6087e-06 + AACTTCCCGGAACTC
+chr2 180654994 180655009 -V_STAT5A_01 5.6082e-06 - GAGTTCCGGGAAGTT
+chr2 180654994 180655009 -V_STAT5B_01 6.50815e-06 - GAGTTCCGGGAAGTT
+chr2 180654997 180655006 +V_STAT_01 3.30926e-06 + TTCCCGGAA
+chr2 180655021 180655030 -V_EVI1_06 5.97675e-06 - ACAAGATAA
+chr2 180655021 180655032 -V_EVI1_02 2.55227e-06 - GGACAAGATAA
+chr3 7510232 7510247 -V_OCT4_02 6.93218e-07 - ATTGTCATTCTAAAC
+chr3 7510303 7510317 +V_DMRT7_01 8.98311e-06 + TTGTGACCTTGTTG
+chr3 7510304 7510318 -V_ERR1_Q2 4.94927e-06 - TCAACAAGGTCACA
+chr3 7579697 7579716 -V_OCT1_01 2.91073e-06 - AAGCTTATGCAAATGTAAT
+chr3 7579700 7579711 +V_OCT_Q6 7.02042e-06 + ACATTTGCATA
+chr3 7579701 7579711 -V_OCT1_B 4.33582e-06 - TATGCAAATG
+chr3 8001484 8001500 -V_ARNT_01 3.1401e-06 - GGATTCACGTGTTCTC
+chr3 8005870 8005880 -V_SP1_Q6_01 2.74385e-06 - GGGGCGGGGA
+chr3 8005871 8005880 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr3 8005871 8005881 +V_SP1_Q2_01 3.39206e-07 + CCCCGCCCCC
+chr3 9591873 9591891 -V_CEBP_C 4.01333e-06 - GGACTGAGGCAAGGTCTG
+chr3 9591943 9591958 -V_OCT4_02 6.14224e-06 - TTTGTGATGTAAAAG
+chr3 9591944 9591959 -V_OCT4_01 3.49929e-06 - CTTTGTGATGTAAAA
+chr3 9591957 9591972 +V_AML_Q6 2.4806e-06 + AGGGATGTGGTGACC
+chr3 10180333 10180345 +V_PAX4_03 3.63034e-06 + GAACCCCACCCC
+chr3 10180334 10180347 -V_SP1_Q6 8.76141e-06 - CGGGGGTGGGGTT
+chr3 10180336 10180346 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr3 10180337 10180346 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr3 10180423 10180434 -V_SMAD_Q6_01 7.46065e-07 - TGGGCAGACAG
+chr3 15007502 15007517 +V_OCT4_01 1.94673e-06 + ATTTGAAATGTAAAT
+chr3 18257671 18257685 -V_KROX_Q6 9.64613e-06 - CCCGCCCCCCCAAA
+chr3 18257673 18257684 -V_SP1SP3_Q4 2.93633e-06 - CCGCCCCCCCA
+chr3 18257675 18257688 +V_SP1_Q6 2.54389e-06 + GGGGGGCGGGGAG
+chr3 18257676 18257686 -V_SP1_Q2_01 3.39206e-07 - CCCCGCCCCC
+chr3 18257677 18257686 -V_CKROX_Q2 6.67377e-06 - CCCCGCCCC
+chr3 18257677 18257687 +V_SP1_Q6_01 2.74385e-06 + GGGGCGGGGA
+chr3 18257682 18257690 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr3 18257682 18257691 -V_CKROX_Q2 8.90515e-06 - TCCCTCCCC
+chr3 18597499 18597514 -V_OCT4_02 4.3087e-06 - ATTGTCATTTAAATG
+chr3 18597500 18597515 -V_OCT4_01 3.04012e-06 - TATTGTCATTTAAAT
+chr3 19467252 19467266 -V_COUP_01 2.34272e-06 - TGACCTCTGCCCAG
+chr3 19467253 19467266 +V_DR1_Q3 2.76991e-06 + TGGGCAGAGGTCA
+chr3 19467253 19467266 -V_PPAR_DR1_Q2 1.70612e-06 - TGACCTCTGCCCA
+chr3 19467253 19467266 -V_HNF4_DR1_Q3 5.33101e-06 - TGACCTCTGCCCA
+chr3 19467253 19467266 -V_COUP_DR1_Q6 3.95479e-06 - TGACCTCTGCCCA
+chr3 19467253 19467267 +V_HNF4_Q6_01 2.23852e-06 + TGGGCAGAGGTCAC
+chr3 20041777 20041788 -V_SMAD_Q6_01 7.46065e-07 - TGGGCAGACAG
+chr3 22889217 22889229 +V_PXR_Q2 7.73425e-06 + AAGGTTAATAAC
+chr3 22889218 22889231 +V_FXR_IR1_Q6 3.71753e-07 + AGGTTAATAACCC
+chr3 22889218 22889231 -V_FXR_IR1_Q6 5.34674e-06 - GGGTTATTAACCT
+chr3 22889220 22889232 -V_PXR_Q2 7.73425e-06 - GGGGTTATTAAC
+chr3 22889303 22889317 -V_ERR1_Q2 4.03886e-06 - GTCTGAAGGTCACA
+chr3 23263039 23263056 +V_PPARG_03 6.5877e-06 + AGGATGGGCAAAGGTTA
+chr3 23263042 23263056 -V_COUP_01 4.23296e-06 - TAACCTTTGCCCAT
+chr3 23263043 23263057 +V_HNF4_Q6_01 8.95172e-06 + TGGGCAAAGGTTAT
+chr3 25221491 25221506 +V_DMRT1_01 9.55793e-06 + TAGTTACTTTGTAGC
+chr3 27635302 27635311 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr3 27635302 27635312 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr3 27635303 27635311 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr3 27635303 27635312 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr3 27635307 27635317 -V_SP1_Q2_01 6.40385e-06 - CCCCTCCCCT
+chr3 27635308 27635316 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr3 27635308 27635317 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr3 27635312 27635322 -V_SP1_Q2_01 6.40385e-06 - CCCCTCCCCT
+chr3 27635312 27635325 +V_MAZR_01 4.80613e-06 + AGGGGAGGGGCAG
+chr3 27635313 27635321 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr3 27635313 27635322 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr3 27635313 27635323 +V_SP1_Q6_01 2.74385e-06 + GGGGAGGGGC
+chr3 27660060 27660069 -V_T3R_Q6 3.30926e-06 - CCTGTCCTT
+chr3 27660078 27660087 -V_T3R_Q6 3.30926e-06 - CCTGTCCTT
+chr3 27679274 27679283 -V_T3R_Q6 8.74404e-06 - CCTGTCCTG
+chr3 27679329 27679342 -V_HFH3_01 2.98548e-06 - TCTTGTTTATTTA
+chr3 27679329 27679343 -V_FOXO3_01 6.18578e-06 - TTCTTGTTTATTTA
+chr3 27679331 27679341 +V_FOXO1_01 7.37669e-06 + AATAAACAAG
+chr3 27679397 27679410 +V_SP1_Q6 6.51994e-06 + GAGGGGTGGGGCT
+chr3 27679398 27679408 -V_SP1_Q2_01 9.56538e-06 - CCCCACCCCT
+chr3 27679399 27679409 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr3 27679399 27679411 -V_PAX4_03 5.03061e-07 - AAGCCCCACCCC
+chr3 27834764 27834779 -V_OCT4_01 3.74251e-06 - CATTCAAATTCAAAT
+chr3 27834797 27834805 -V_CACD_01 9.89755e-06 - CCACACCC
+chr3 27834836 27834848 +V_ELF1_Q6 1.1403e-06 + ATTAGAGGAAGT
+chr3 27834838 27834852 +V_ETS2_B 3.49025e-06 + TAGAGGAAGTGTGT
+chr3 27834839 27834854 +V_ETS1_B 5.1099e-06 + AGAGGAAGTGTGTCA
+chr3 28116127 28116136 -V_PAX2_02 4.03003e-06 - CATAAACCC
+chr3 28551606 28551617 +V_GAF_Q6 3.96396e-06 + CACATTCCCAT
+chr3 28551650 28551665 +V_OCT4_01 3.04012e-06 + CTTTATTATGCAAAG
+chr3 28551687 28551701 +V_COUP_01 9.24456e-06 + TGAACCTTGAAGAT
+chr3 28551721 28551736 +V_AML_Q6 7.40012e-06 + GTGCTTGTGGTTTGA
+chr3 31304906 31304921 +V_SREBP_Q6 9.90089e-06 + TCTCTCACTCCAGGG
+chr3 31304906 31304921 +V_SREBP1_Q5 6.2466e-06 + TCTCTCACTCCAGGG
+chr3 31472979 31472992 +V_HNF4ALPHA_Q6 6.68176e-06 + CTGAGCTTTGCAT
+chr3 31472990 31473011 -V_PAX6_01 1.89903e-06 - AATATTTACACATGAGTTAAT
+chr3 32529277 32529291 +V_STRA13_01 4.56756e-06 + CCATCACGTGATGT
+chr3 32529325 32529336 +V_FOXO4_01 3.75885e-06 + CTAAACAAGCC
+chr3 32658006 32658025 -V_NRSF_Q4 6.61005e-06 - GTTCTGTACATGGTGGTCA
+chr3 34552970 34552985 +V_OCT4_01 2.11448e-06 + CATTGTGATGCATAT
+chr3 34553004 34553023 -V_NRSF_Q4 6.66898e-07 - GAACTGTCGACTGTGCTCA
+chr3 37310931 37310947 +V_ARNT_01 3.51547e-06 + GGGGTCACGTGTTTTC
+chr3 37310931 37310947 -V_ARNT_01 4.8569e-06 - GAAAACACGTGACCCC
+chr3 37310932 37310946 +V_USF_01 9.79746e-06 + GGGTCACGTGTTTT
+chr3 37310932 37310946 +V_USF_02 9.6652e-06 + GGGTCACGTGTTTT
+chr3 37310932 37310946 -V_USF_01 9.79746e-06 - AAAACACGTGACCC
+chr3 37310932 37310946 -V_USF_02 9.6652e-06 - AAAACACGTGACCC
+chr3 37310933 37310945 -V_USF_Q6_01 1.82823e-06 - AAACACGTGACC
+chr3 37552973 37552983 -V_GATA6_01 2.4539e-06 - AAAGATAAGC
+chr3 37552981 37552999 +V_FOXJ2_01 1.40736e-06 + TTCAAAACAAACATTTAC
+chr3 37552983 37552996 +V_HNF3_Q6 3.26963e-06 + CAAAACAAACATT
+chr3 37552984 37552997 -V_HFH4_01 2.9856e-06 - AAATGTTTGTTTT
+chr3 37552985 37552997 -V_FOXD3_01 8.64709e-07 - AAATGTTTGTTT
+chr3 37553017 37553031 -V_NFKB_Q6 1.83043e-06 - AGGGGAACTTCCTC
+chr3 37553067 37553078 -V_EGR_Q6 7.49326e-06 - GTGGGGGTGAC
+chr3 37553067 37553081 +V_KROX_Q6 4.02412e-06 + GTCACCCCCACCCC
+chr3 37553069 37553081 +V_PAX4_03 2.40392e-07 + CACCCCCACCCC
+chr3 37553072 37553082 +V_SP1_Q2_01 9.56538e-06 + CCCCACCCCT
+chr3 37738060 37738088 -V_PAX5_01 7.78234e-06 - CCCCAGGGCTGGGATGTGGGAAGGCTCT
+chr3 37738073 37738089 -V_AP2_Q3 7.62107e-06 - GCCCCAGGGCTGGGAT
+chr3 37874384 37874400 +V_AP2_Q3 9.06701e-07 + AGCCCCGGGCTGTGAG
+chr3 37874385 37874394 +V_AP2ALPHA_01 6.01835e-06 + GCCCCGGGC
+chr3 37874385 37874394 +V_AP2GAMMA_01 6.01835e-06 + GCCCCGGGC
+chr3 37874385 37874394 -V_AP2ALPHA_01 3.00918e-06 - GCCCGGGGC
+chr3 37874385 37874394 -V_AP2GAMMA_01 3.00918e-06 - GCCCGGGGC
+chr3 37874481 37874495 -V_CDX2_Q5 3.05854e-07 - CAACTTTTATGGCC
+chr3 37874510 37874525 +V_SREBP_Q6 5.81609e-06 + CCACTCAGCCCAGGG
+chr3 37874510 37874525 +V_SREBP1_Q5 6.2466e-06 + CCACTCAGCCCAGGG
+chr3 38342600 38342613 -V_AP2_Q6_01 6.01724e-06 - CTTCCCCCAGGCC
+chr3 38342650 38342674 -V_STAT5A_02 6.02621e-06 - TTCCCAGATAGCTACTTCCTGGGA
+chr3 38342653 38342665 -V_ETS_Q4 1.51985e-06 - AGCTACTTCCTG
+chr3 51027611 51027623 -V_GCM_Q2 8.99535e-06 - CACACCCACATT
+chr3 51027653 51027665 -V_GLI_Q2 3.63816e-06 - CTTGGGGGGTCC
+chr3 51027654 51027663 -V_ZIC1_01 9.41154e-06 - TGGGGGGTC
+chr3 51027654 51027663 -V_ZIC3_01 7.18016e-06 - TGGGGGGTC
+chr3 51027667 51027681 +V_NFKB_Q6 1.33876e-06 + ATGGGAATTTCCTT
+chr3 51027668 51027680 +V_NFKB_C 9.50027e-06 + TGGGAATTTCCT
+chr3 51027668 51027684 -V_NFKB_Q6_01 8.55659e-06 - CTGAAGGAAATTCCCA
+chr3 51027669 51027679 +V_NFKAPPAB65_01 9.08563e-07 + GGGAATTTCC
+chr3 51027669 51027679 +V_CREL_01 7.08941e-06 + GGGAATTTCC
+chr3 51027669 51027679 +V_NFKAPPAB_01 1.65463e-06 + GGGAATTTCC
+chr3 51027680 51027690 -V_ESE1_Q3 5.33438e-06 - AGTTTCCTGA
+chr3 51927817 51927826 -V_SMAD3_Q6 4.03003e-06 - TGTCTGTCT
+chr3 53317339 53317353 +V_FXR_Q3 8.7899e-06 + CAGGGTGAGTGGCC
+chr3 53317412 53317427 -V_SRF_Q5_01 8.51955e-06 - CCACATAGGGAGAGT
+chr3 55392180 55392201 +V_DR3_Q4 1.7376e-06 + GCTGCCCTGGCTGACCCTCGG
+chr3 57755562 57755578 +V_NFKB_Q6_01 5.20206e-06 + AACTGGGGAACTCCCT
+chr3 57755565 57755579 +V_NFKB_Q6 7.6961e-06 + TGGGGAACTCCCTG
+chr3 57755592 57755603 +V_LEF1TCF1_Q4 3.42525e-06 + CCTTTGTTCTT
+chr3 57755626 57755639 -V_STAT_Q6 4.9181e-06 - GCAGTTTCTGGGA
+chr3 57755677 57755692 -V_DMRT1_01 9.21473e-06 - AGGATACTTTGTAGC
+chr3 60386762 60386777 -V_TATA_01 8.80773e-06 - GTATAAAAAGACTGC
+chr3 60386778 60386798 +V_YY1_02 3.43383e-06 + CTTAGGCCATCTTGCCTGGC
+chr3 60386783 60386792 +V_YY1_Q6 3.30926e-06 + GCCATCTTG
+chr3 61600168 61600191 -V_COUPTF_Q6 6.23491e-08 - TTCCATGACCTTAGCCCTTTGAC
+chr3 61600169 61600190 +V_PPARG_01 3.70685e-06 + TCAAAGGGCTAAGGTCATGGA
+chr3 61600172 61600186 -V_COUP_01 2.42875e-06 - TGACCTTAGCCCTT
+chr3 61600173 61600186 +V_RXRLXRB_01 7.77466e-06 + AGGGCTAAGGTCA
+chr3 61600173 61600186 +V_DR1_Q3 5.94376e-06 + AGGGCTAAGGTCA
+chr3 61600173 61600186 -V_PPAR_DR1_Q2 6.37174e-06 - TGACCTTAGCCCT
+chr3 61600173 61600186 -V_HNF4_DR1_Q3 1.30595e-06 - TGACCTTAGCCCT
+chr3 61600173 61600187 +V_HNF4_Q6_01 6.48063e-06 + AGGGCTAAGGTCAT
+chr3 61600174 61600187 -V_HNF4ALPHA_Q6 8.75211e-06 - ATGACCTTAGCCC
+chr3 61600242 61600256 -V_FOXO3_01 2.15672e-06 - TCTTTGTTTACAAA
+chr3 61600244 61600256 +V_FOXO3A_Q1 9.47139e-06 + TGTAAACAAAGA
+chr3 65461446 65461461 -V_OCT1_Q6 8.17489e-06 - TGAAATGCAAAGCAC
+chr3 65461449 65461464 -V_OCT4_01 8.76645e-07 - TATTGAAATGCAAAG
+chr3 65461464 65461476 +V_NANOG_01 7.60378e-06 + GAGACCATTTAC
+chr3 65708777 65708792 +V_BACH1_01 3.0201e-06 + TGGGTGAGTCATGGC
+chr3 65708779 65708790 +V_BACH2_01 2.44531e-06 + GGTGAGTCATG
+chr3 65708794 65708806 +V_CEBP_Q3 1.5189e-07 + GAATTTGGCAAA
+chr3 65766742 65766754 -V_GATA4_Q3 2.87109e-06 - AGATCAAAGGGA
+chr3 65766743 65766753 -V_LEF1_Q2_01 1.81713e-06 - GATCAAAGGG
+chr3 65766744 65766755 +V_LEF1TCF1_Q4 1.56074e-06 + CCTTTGATCTC
+chr3 65766785 65766801 -V_GRE_C 3.14765e-06 - GTCATCATGTGTCCTG
+chr3 65766795 65766809 -V_ERR1_Q2 2.07148e-06 - AGCTGAAGGTCATC
+chr3 69462250 69462258 -V_CACD_01 9.89755e-06 - CCACACCC
+chr3 69462309 69462325 +V_HAND1E47_01 6.45162e-06 + GAGGGGGTCTGGAAAC
+chr3 69462346 69462374 +V_PAX5_01 3.06809e-06 + GCCTCAGGCCAGGTGGCAGGGCAGCTCC
+chr3 69462352 69462362 -V_EBOX_Q6_01 6.43409e-06 - CCACCTGGCC
+chr3 69805633 69805656 -V_COUPTF_Q6 2.04937e-06 - TTCCCTGACCTCCCCCCACGCCT
+chr3 69805637 69805648 +V_EGR_Q6 7.1239e-06 + GTGGGGGGAGG
+chr3 72662662 72662677 -V_OCT4_01 8.48593e-06 - TATTATAATGTAAAA
+chr3 72662722 72662734 -V_GATA4_Q3 5.08916e-06 - AGAAAAAGGGGA
+chr3 72662899 72662909 -V_NKX25_Q5 5.12638e-06 - TGCCACTTCA
+chr3 72662963 72662971 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr3 78758546 78758563 +V_DR4_Q2 9.38508e-06 + TGTCCTTCCCTGTCCTC
+chr3 78758554 78758563 +V_T3R_Q6 8.74404e-06 + CCTGTCCTC
+chr3 79239025 79239038 -V_PPAR_DR1_Q2 9.61169e-06 - GGACCTGTGGCCT
+chr3 79239025 79239038 -V_COUP_DR1_Q6 6.2921e-06 - GGACCTGTGGCCT
+chr3 79239033 79239044 -V_GATA_C 6.82081e-06 - GGATAAGGACC
+chr3 79239077 79239089 +V_NANOG_01 5.79837e-06 + GGGGCCATTGTC
+chr3 79239082 79239097 +V_OCT4_01 2.64195e-06 + CATTGTCATTCAAAC
+chr3 79239083 79239098 +V_OCT4_02 9.71581e-06 + ATTGTCATTCAAACC
+chr3 79655958 79655966 -V_CACD_01 9.89755e-06 - CCACACCC
+chr3 79656050 79656063 +V_AP2_Q6_01 6.01724e-06 + CCTGCCTCAGGCC
+chr3 79656059 79656071 +V_USF_Q6_01 4.40024e-06 + GGCCAGGTGACA
+chr3 80825829 80825842 -V_SP1_Q6 3.85413e-06 - GAGGGGCGGGATC
+chr3 80838830 80838842 +V_GLI_Q2 2.78663e-06 + TGTGGGTGGTCA
+chr3 80838832 80838841 +V_ZIC1_01 2.71739e-06 + TGGGTGGTC
+chr3 80838832 80838841 +V_ZIC2_01 4.94877e-06 + TGGGTGGTC
+chr3 80838832 80838841 +V_ZIC3_01 2.71739e-06 + TGGGTGGTC
+chr3 80838919 80838928 -V_HNF4_Q6 7.33929e-06 - AAGGTCCAG
+chr3 82222448 82222460 +V_OCT1_07 4.78768e-06 + ATTATGTTAATT
+chr3 82222449 82222459 +V_POU3F2_02 1.99833e-06 + TTATGTTAAT
+chr3 82222509 82222521 +V_NANOG_01 7.60378e-06 + AGAACCATTTCC
+chr3 82222511 82222523 +V_ETS_Q4 2.93415e-06 + AACCATTTCCTG
+chr3 84235016 84235030 -V_KROX_Q6 4.70749e-06 - CCCACCCCCACAGC
+chr3 84235019 84235030 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr3 84235021 84235030 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr3 84235021 84235031 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr3 84235021 84235034 +V_MAZR_01 9.79421e-06 + GGGGGTGGGGAAG
+chr3 84235022 84235034 -V_PAX4_03 4.004e-06 - CTTCCCCACCCC
+chr3 84235028 84235056 +V_PAX5_01 3.55598e-06 + GGGAAGGCCAAGGATGTGGGGCCAGCAG
+chr3 84576014 84576028 +V_CREB_Q2_01 7.34784e-06 + GGTGTCGTCACCTC
+chr3 84576044 84576057 +V_SP1_Q6 7.54104e-06 + TGGGGGTGGGGTG
+chr3 84576045 84576054 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr3 84576045 84576055 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr3 84576052 84576060 -V_CACD_01 9.89755e-06 - CCACACCC
+chr3 84576067 84576079 +V_MEIS1_01 4.98874e-06 + CAGTGACAGAGG
+chr3 84576099 84576109 +V_GATA6_01 9.61771e-06 + ACAGATAAGC
+chr3 84576126 84576137 -V_MAF_Q6_01 2.65014e-06 - TGCTGAGGCAG
+chr3 85182412 85182424 +V_NMYC_01 3.7355e-07 + CCCCACGTGCCC
+chr3 85182414 85182422 +V_USF_C 9.89755e-06 + CCACGTGC
+chr3 85182414 85182424 +V_EBOX_Q6_01 4.06927e-06 + CCACGTGCCC
+chr3 85182521 85182549 +V_PAX5_01 3.2023e-07 + GTGTGGGGCAGGGGAGGGGAGCAAGACC
+chr3 85182530 85182540 -V_SP1_Q2_01 6.40385e-06 - CCCCTCCCCT
+chr3 85182530 85182543 +V_MAZR_01 9.36507e-06 + AGGGGAGGGGAGC
+chr3 85182531 85182539 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr3 85182531 85182540 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr3 86754843 86754862 -V_PU1_Q4 3.46223e-06 - TCTCTCCATTTCCCCTCTC
+chr3 87161867 87161883 -V_AP2_Q3 5.02857e-06 - GGCCTCAGGCAGTGGT
+chr3 87161903 87161921 -V_MYOD_Q6_01 2.07226e-06 - CCCAGGCAGCTGACGATG
+chr3 88035279 88035293 -V_E2A_Q2 9.11856e-06 - CCCCCTGCCTCTGC
+chr3 88035285 88035300 -V_SREBP_Q6 8.95186e-06 - CAGCTCACCCCCTGC
+chr3 88035320 88035335 -V_CP2_02 2.79448e-06 - ACTGGGTCTGGCTAG
+chr3 88035323 88035334 +V_CP2_01 2.42582e-06 + GCCAGACCCAG
+chr3 88035399 88035409 -V_NKX25_Q5 5.12638e-06 - TCCCACTTCA
+chr3 88085624 88085645 +V_NRSE_B 7.74965e-06 + CTTAGGACTTAGGACAGTACC
+chr3 88375872 88375881 -V_ZIC1_01 4.94877e-06 - GGGGTGGTC
+chr3 88375872 88375881 -V_ZIC2_01 2.23138e-06 - GGGGTGGTC
+chr3 88375919 88375933 -V_CHX10_01 2.27523e-06 - AGCTAATTAGCTGG
+chr3 88375921 88375935 +V_CHX10_01 1.10785e-06 + AGCTAATTAGCTGA
+chr3 88375946 88375960 -V_NFY_C 8.88045e-06 - CCTGTTTGGTTAAT
+chr3 88379680 88379691 +V_MYB_Q3 3.40516e-06 + ACTGGCAGTTG
+chr3 88379682 88379691 -V_MYB_Q5_01 8.74404e-06 - CAACTGCCA
+chr3 88736150 88736161 +V_IRF_Q6_01 3.86751e-06 + AAAACTGAAAG
+chr3 88736150 88736165 -V_IRF_Q6 3.19596e-06 - CCCCCTTTCAGTTTT
+chr3 88736160 88736169 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr3 88736160 88736170 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr3 88736160 88736171 -V_SP1SP3_Q4 2.8432e-06 - CCCCCTCCCCC
+chr3 88736161 88736169 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr3 88736161 88736170 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr3 88736161 88736171 +V_SP1_Q6_01 8.48538e-06 + GGGGAGGGGG
+chr3 89270760 89270774 +V_BLIMP1_Q6 5.48422e-06 + AGGCAGGGAATTGA
+chr3 89270858 89270873 +V_CP2_02 1.26983e-06 + ACTGGCTTGCTCTGG
+chr3 89382910 89382919 +V_AP2ALPHA_01 6.01835e-06 + GCCCCGGGG
+chr3 89382910 89382919 +V_AP2GAMMA_01 4.51376e-06 + GCCCCGGGG
+chr3 89382911 89382920 -V_AP2ALPHA_01 6.01835e-06 - GCCCCGGGG
+chr3 89382911 89382920 -V_AP2GAMMA_01 4.51376e-06 - GCCCCGGGG
+chr3 89382945 89382957 -V_LMO2COM_01 7.876e-06 - GCCCAGCTGCTG
+chr3 89382970 89382984 +V_PAX6_Q2 1.51625e-06 + CTGACCTGTGACTA
+chr3 89382971 89382984 +V_COUP_DR1_Q6 3.77778e-06 + TGACCTGTGACTA
+chr3 89630394 89630408 +V_FXR_Q3 4.30883e-06 + CAGGGTCAGTTACC
+chr3 89630420 89630434 -V_NFY_C 2.79094e-06 - GTTGATTGGTTGCT
+chr3 89630461 89630476 -V_OCT4_01 6.46423e-06 - CTTTGTTGTGCAAAC
+chr3 89630488 89630502 +V_POU3F2_01 7.71434e-06 + AAGAATTCATTCAT
+chr3 89955399 89955408 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr3 89955475 89955503 -V_PAX5_01 2.6428e-06 - CCAACAGGCATGGGTGGAGAGCATGCCT
+chr3 90472927 90472936 +V_AP2ALPHA_01 9.68294e-06 + GCCCGAGGC
+chr3 90472937 90472955 -V_NF1_Q6 2.75309e-06 - GCTTGGCCAGCTGCCCAC
+chr3 90472940 90472950 -V_TAL1_Q6 4.87508e-06 - GCCAGCTGCC
+chr3 90472960 90472970 +V_TATA_C 2.98837e-06 + TCTATAAAAG
+chr3 90472961 90472976 +V_TATA_01 3.13103e-06 + CTATAAAAGCAGCTG
+chr3 90834228 90834240 -V_PXR_Q2 7.73425e-06 - AGGGTTAATAGA
+chr3 90834509 90834521 +V_HNF6_Q6 6.78715e-06 + CAAAATCAATCT
+chr3 94470129 94470138 +V_AP2ALPHA_01 9.68294e-06 + GCCCGAGGG
+chr3 94470129 94470138 +V_AP2GAMMA_01 7.85065e-06 + GCCCGAGGG
+chr3 94859000 94859016 -V_MAF_Q6 3.8473e-06 - AGGAAGGATGTGGCCT
+chr3 94859121 94859137 -V_LXR_DR4_Q3 9.50208e-06 - TTCCCTGATGTAACCC
+chr3 98999921 98999938 +V_PPARG_03 5.76105e-06 + AACTGGGATAAAATTCA
+chr3 101210128 101210136 -V_CACD_01 9.89755e-06 - CCACACCC
+chr3 101212981 101212994 -V_SP1_Q6 5.65055e-06 - TGGGGGAGGAGCC
+chr3 101399290 101399307 +V_PU1_01 3.40964e-06 + ACAATGGGGAAGTTGTA
+chr3 101767570 101767591 +V_PPARG_01 7.8357e-06 + ACAAAGGTCACAGGACACGCC
+chr3 101767574 101767587 +V_RXRLXRB_01 6.42396e-06 + AGGTCACAGGACA
+chr3 101767574 101767587 +V_DR1_Q3 8.65089e-06 + AGGTCACAGGACA
+chr3 101767594 101767608 +V_MTF1_Q4 9.78336e-06 + TGTGAACACAGCCC
+chr3 101767631 101767644 +V_P50P50_Q3 7.83857e-06 + GAGGGATTTCCAG
+chr3 101767718 101767729 -V_PITX2_Q2 9.46105e-06 - ACTAATCCCAG
+chr3 101767718 101767731 -V_CRX_Q4 5.63941e-07 - CCACTAATCCCAG
+chr3 102409358 102409373 +V_OCT4_01 6.46423e-06 + TATTCATATGCTAAA
+chr3 102409359 102409374 +V_OCT4_02 6.14224e-06 + ATTCATATGCTAAAT
+chr3 102409429 102409444 +V_OCT4_01 1.79634e-06 + CTTTATTATGCAAAC
+chr3 102522028 102522043 +V_OCT4_01 1.40241e-06 + TATTGTAATGCTAAA
+chr3 102522029 102522044 +V_OCT4_02 6.55103e-06 + ATTGTAATGCTAAAT
+chr3 102522090 102522105 +V_OCT4_01 1.94673e-06 + TTTTGTTGTGCAAAT
+chr3 103654538 103654553 -V_OCT4_01 5.63049e-06 - CTTAGACATGCAAAC
+chr3 103654693 103654706 +V_HNF4ALPHA_Q6 5.02179e-06 + CTGATCTTTGCCT
+chr3 104110278 104110296 -V_RFX1_02 5.5622e-06 - CCGTCAGCATGGCAACAA
+chr3 104110336 104110353 +V_HSF1_Q6 6.63507e-07 + ATTCCCGGAGTTTCTCG
+chr3 104110337 104110350 +V_HSF_Q6 3.92835e-07 + TTCCCGGAGTTTC
+chr3 104617926 104617936 -V_KAISO_01 9.08563e-07 - TTCCTGCTAG
+chr3 105231008 105231021 -V_SP1_Q6 8.76141e-06 - TGGGGGTGGGGGG
+chr3 105231009 105231020 +V_SP1SP3_Q4 8.91927e-06 + CCCCCACCCCC
+chr3 105792700 105792719 -V_PPARA_02 3.76248e-06 - CTAGGCCATTTGGGTGAGA
+chr3 105792747 105792760 +V_P50P50_Q3 1.06962e-06 + TAGGGAATCCCCC
+chr3 105792748 105792760 +V_NFKB_C 8.754e-06 + AGGGAATCCCCC
+chr3 105792748 105792764 -V_NFKB_Q6_01 8.55659e-06 - CTCAGGGGGATTCCCT
+chr3 105792749 105792759 -V_NFKAPPAB_01 3.62595e-06 - GGGGATTCCC
+chr3 107181899 107181914 -V_STAT5B_01 8.9266e-06 - GAGTTCTTGGAATAC
+chr3 107380660 107380672 +V_LMO2COM_01 8.35505e-06 + CTCCAGCTGCAG
+chr3 107380737 107380752 -V_CP2_02 4.34296e-06 - TCTGGGTGGAACTGG
+chr3 107380763 107380786 -V_COUPTF_Q6 2.31388e-06 - CTGGCTGACCCCTCCCCAGGTCT
+chr3 107380768 107380781 +V_MAZR_01 2.79447e-06 + TGGGGAGGGGTCA
+chr3 107380769 107380777 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr3 107380769 107380778 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr3 107380769 107380779 +V_SP1_Q6_01 9.74073e-06 + GGGGAGGGGT
+chr3 107380773 107380788 +V_SMAD4_Q6 1.48951e-06 + AGGGGTCAGCCAGCT
+chr3 108673719 108673728 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr3 108673752 108673767 -V_EVI1_04 4.53861e-06 - GGTTAAGACTGGATA
+chr3 108673821 108673832 -V_ER_Q6_02 4.31756e-06 - CAGGTCAAGGT
+chr3 112042644 112042654 +V_P53_02 6.68297e-06 + AGGCATGTCT
+chr3 112042644 112042654 -V_P53_02 9.08563e-07 - AGACATGCCT
+chr3 112042713 112042728 +V_OCT4_01 2.64195e-06 + TATTCTAATGTTAAT
+chr3 112042751 112042765 -V_NFKB_Q6 8.78215e-06 - TGGGGACTCTCTCC
+chr3 116426146 116426161 +V_CP2_02 1.26983e-06 + ACTGGCTTGCTCTGG
+chr3 121229182 121229201 -V_SEF1_C 4.95793e-06 - AACAGGGAGCTCTGCGGCT
+chr3 122814331 122814340 +V_FOXO1_Q5 7.27852e-06 + AAAAACAAA
+chr3 122814591 122814607 -V_AP2_Q3 7.62107e-06 - GCCCCAAGGCAAAGAG
+chr3 124309171 124309186 +V_OCT4_01 6.02107e-06 + TTTTCATTTGCAAAT
+chr3 124309172 124309187 +V_OCT4_02 4.618e-06 + TTTCATTTGCAAATG
+chr3 124309188 124309202 +V_BLIMP1_Q6 2.72511e-06 + AGAGAGTGAATGGG
+chr3 124309227 124309237 -V_POU3F2_02 5.63759e-06 - ATATGTTAAT
+chr3 124309227 124309242 -V_OCT4_01 5.63049e-06 - CTTTCATATGTTAAT
+chr3 127247761 127247777 -V_MMEF2_Q6 1.73671e-06 - CTCTTTAAAAAAAATC
+chr3 127247833 127247844 +V_HELIOSA_02 3.44301e-06 + AAAAGGAAAAA
+chr3 127247864 127247887 +V_PPARG_02 9.457e-06 + ACCCAGGTCCCCAGGACCTACTT
+chr3 127247864 127247887 -V_PPARG_02 6.7077e-06 - AAGTAGGTCCTGGGGACCTGGGT
+chr3 127625271 127625286 -V_CP2_02 1.70662e-06 - GCTGGGCTGGGCTTG
+chr3 127625289 127625313 +V_COMP1_01 3.0805e-06 + AGGTTAGAATGAGGACAAGCGGTC
+chr3 128983518 128983533 +V_DMRT1_01 3.71498e-06 + AAGAAACAATGTTTC
+chr3 128983520 128983535 -V_DMRT1_01 1.07818e-07 - CTGAAACATTGTTTC
+chr3 130065977 130065992 +V_DMRT3_01 9.50989e-06 + AAGTGGTTACATTCT
+chr3 130065980 130065995 +V_DMRT1_01 7.06381e-06 + TGGTTACATTCTTGC
+chr3 130318855 130318866 -V_EVI1_02 7.03917e-06 - AGATAAGACAG
+chr3 130318974 130318987 -V_AP2_Q6_01 3.36599e-06 - CTCCCCCCAGGCT
+chr3 130805350 130805358 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr3 130952600 130952609 +V_LRF_Q2 8.50606e-06 + GGGACCCCC
+chr3 133020533 133020543 +V_TITF1_Q3 4.46892e-06 + AGTCAAGTGT
+chr3 133020553 133020562 +V_LYF1_01 7.33929e-06 + TTTGGGAGA
+chr3 133020565 133020577 +V_NANOG_01 1.11816e-06 + GAGACCATTTCC
+chr3 133181923 133181935 +V_ELF1_Q6 3.08919e-06 + GCTAGAGGAAGT
+chr3 133181926 133181941 +V_ETS1_B 4.81407e-06 + AGAGGAAGTGTGGCC
+chr3 133181957 133181972 -V_IRF_Q6 5.07439e-06 - TTGGCTTTCAGTTCT
+chr3 133181967 133181977 +V_MYB_Q6 5.43478e-06 + GCCAACTGCC
+chr3 133181969 133181978 +V_MYB_Q5_01 8.74404e-06 + CAACTGCCA
+chr3 133195692 133195713 -V_HNF1_Q6_01 1.55823e-06 - CTCTGTTACAAATTAACTTAG
+chr3 133195742 133195752 +V_MYB_Q6 8.47717e-06 + GTTAACTGGC
+chr3 133195756 133195772 -V_MAF_Q6 1.30126e-06 - TGAGGGGAAGTAGCCT
+chr3 134995743 134995758 -V_ETS1_B 3.39747e-06 - ACAGGAAGTTTTTGG
+chr3 134995855 134995872 +V_PU1_01 5.34363e-06 + AGAAAGAGGAAGGGAGG
+chr3 134995856 134995875 -V_PU1_Q4 5.01979e-07 - CCTCCTCCCTTCCTCTTTC
+chr3 135351025 135351040 +V_AML_Q6 9.50186e-06 + AACTATGTGGTTTTC
+chr3 135370560 135370570 -V_GATA1_05 5.81636e-06 - ACAGATAACA
+chr3 135370601 135370612 +V_MYB_Q3 8.33763e-06 + AGGGACAGTTG
+chr3 136597295 136597316 -V_DR3_Q4 6.89772e-06 - GAAGCACTTTCTGCCCTTTAG
+chr3 136597684 136597695 -V_HELIOSA_02 3.44301e-06 - TAAAGGAAAAA
+chr3 137496178 137496195 +V_PU1_01 8.64552e-07 + GGAAGGGGGAAGTTGGG
+chr3 137496179 137496198 -V_PU1_Q4 1.85682e-06 - CTCCCCAACTTCCCCCTTC
+chr3 137496180 137496196 +V_MAF_Q6 2.33338e-07 + AAGGGGGAAGTTGGGG
+chr3 137496207 137496220 -V_STAT_Q6 8.60737e-06 - CTTACTTCTGGGA
+chr3 137496293 137496305 -V_NFKB_C 6.01374e-06 - TGGGATTCCCCA
+chr3 138015299 138015319 +V_FOXP1_01 3.5996e-06 + TTTTTTTTGTTTTGTTTTGT
+chr3 138313786 138313804 +V_LXR_Q3 4.63977e-06 + TGGGTTCAGCAGGGTTCA
+chr3 138313787 138313799 -V_VDR_Q6 4.53853e-06 - CCTGCTGAACCC
+chr3 138313797 138313809 -V_VDR_Q6 5.57988e-06 - CCCATTGAACCC
+chr3 138313826 138313837 +V_CP2_01 3.35857e-06 + GCTCAAACCAG
+chr3 141512351 141512366 +V_OCT4_01 5.63049e-06 + TTTAGAGATGCAAAT
+chr3 143172709 143172722 -V_AP2_Q6_01 9.55245e-06 - CTTGCCCCAGGCC
+chr3 143172736 143172749 -V_SOX_Q6 1.4467e-06 - CTCTTTGTTTTGC
+chr3 143172780 143172789 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr3 144075686 144075699 +V_SP1_Q6 4.83523e-06 + AGGGGGTGGGGGG
+chr3 144075687 144075696 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr3 144075687 144075697 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr3 144075687 144075698 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr3 144075691 144075702 +V_EGR_Q6 6.21659e-06 + GTGGGGGGAAC
+chr3 144075750 144075766 +V_AHRARNT_01 8.02518e-06 + GTAGAGACGCGTGCAG
+chr3 144076053 144076065 +V_MEIS1_01 3.29616e-07 + CTGTGACAGGGC
+chr3 144076064 144076077 +V_FOX_Q2 8.50378e-06 + CACTGTTTGCTTT
+chr3 144076081 144076104 +V_OCT1_04 2.66425e-06 + GCAAAGACATGCAAATAAAGACA
+chr3 144076087 144076100 -V_OCT_C 5.21366e-06 - TTTATTTGCATGT
+chr3 144076088 144076099 -V_OCT1_Q5_01 6.50785e-06 - TTATTTGCATG
+chr3 144076088 144076099 -V_OCT_Q6 6.34669e-06 - TTATTTGCATG
+chr3 144076928 144076946 -V_GCNF_01 2.9359e-06 - GGAGAGGTCAAGGGCACT
+chr3 144076931 144076954 +V_COUPTF_Q6 6.23491e-08 + GCCCTTGACCTCTCCACCTCGCC
+chr3 144306499 144306508 -V_SMAD3_Q6 4.03003e-06 - TGTCTGTCT
+chr3 145452520 145452532 -V_GATA4_Q3 9.72874e-06 - AGATCAAAGGCA
+chr3 145452521 145452531 -V_LEF1_Q2_01 5.84716e-06 - GATCAAAGGC
+chr3 145452522 145452533 +V_LEF1TCF1_Q4 1.10645e-06 + CCTTTGATCTT
+chr3 153022952 153022961 -V_SMAD3_Q6 7.33929e-06 - TGTCTGCCT
+chr3 156984904 156984919 -V_OCT4_01 5.31494e-07 - CATTGTAATGTAGAT
+chr3 156984969 156984983 -V_DMRT7_01 7.83627e-06 - TTGTTACCACGTTG
+chr3 157529900 157529909 +V_AP1_C 7.33929e-06 + GTGAGTCAG
+chr3 157584441 157584453 +V_NFKB_C 3.77632e-06 + TGGGATTTTCCC
+chr3 157584441 157584457 -V_NFKB_Q6_01 5.51246e-07 - TGCAGGGAAAATCCCA
+chr3 157584442 157584452 +V_NFKAPPAB65_01 9.69629e-06 + GGGATTTTCC
+chr3 157584442 157584452 +V_NFKAPPAB_01 9.4096e-06 + GGGATTTTCC
+chr4 4716632 4716641 -V_CKROX_Q2 8.90515e-06 - TCCCTCCCC
+chr4 4716734 4716751 -V_HSF1_Q6 6.25214e-06 - ATTCTGGGAGATTCCTC
+chr4 5306564 5306579 -V_STAT5B_01 7.66421e-06 - CCTTTCCTGGAATTA
+chr4 5306609 5306628 +V_PU1_Q4 4.24609e-07 + TGCATCAACTTCCTCATTC
+chr4 5306616 5306628 -V_ELF1_Q6 9.35761e-06 - GAATGAGGAAGT
+chr4 6896076 6896091 +V_OCT4_01 4.01204e-06 + TTTTGTCTTGCAGAT
+chr4 6896077 6896092 +V_OCT4_02 6.36693e-07 + TTTGTCTTGCAGATG
+chr4 6896193 6896208 -V_OCT1_Q6 8.77396e-06 - AGAGATGCAAATACC
+chr4 9044607 9044627 -V_PPARA_01 6.56046e-06 - CAGCACAGGGGCAAAGCTCT
+chr4 9044673 9044685 -V_PAX4_03 9.67001e-06 - CACATCCACCCG
+chr4 9044977 9044987 -V_KAISO_01 7.59153e-06 - ATCCTGCTAG
+chr4 9045058 9045069 +V_AP1_Q2 7.33929e-06 + ACTGACTAAGT
+chr4 9045058 9045069 +V_AP1_Q4 5.85286e-06 + ACTGACTAAGT
+chr4 13023479 13023491 +V_OCT1_07 4.08015e-06 + TTTATGGAAATT
+chr4 13023509 13023524 -V_OCT4_02 1.50435e-06 - ATTGACATTCAGATG
+chr4 13023510 13023525 -V_OCT4_01 4.91956e-06 - CATTGACATTCAGAT
+chr4 13493110 13493122 -V_GATA4_Q3 2.87109e-06 - AGATCAAAGGGA
+chr4 13493111 13493121 -V_LEF1_Q2_01 1.81713e-06 - GATCAAAGGG
+chr4 13493122 13493136 +V_ETS2_B 3.31607e-06 + GGCAGGAAGCACGC
+chr4 13733615 13733628 +V_HFH8_01 3.35937e-06 + ACTTGTTTATTTG
+chr4 13733616 13733626 -V_FOXO1_01 7.37669e-06 - AATAAACAAG
+chr4 13733748 13733759 +V_FOXO4_01 9.75039e-06 + ATAAACAATTC
+chr4 16015448 16015463 +V_OCT4_02 3.74554e-06 + TTTGTCTTTCTAATT
+chr4 17510069 17510085 +V_MAF_Q6 9.37112e-06 + TAGGGGGAAGGTGGGC
+chr4 17510118 17510132 +V_ETS2_B 7.56374e-07 + GGCAGGAAGCCCTT
+chr4 17510122 17510137 -V_VDRRXR_01 3.85335e-06 - GGGTCAAGGGCTTCC
+chr4 17510196 17510213 -V_PPARG_03 1.95083e-06 - AACTGGGGTAAAATTCA
+chr4 19949521 19949534 +V_HNF4_DR1_Q3 9.09944e-06 + TGAACTTTGTGCA
+chr4 19949532 19949547 +V_OCT4_01 2.64195e-06 + CATTGTAATGGTAAT
+chr4 19949597 19949612 +V_OCT4_02 1.18248e-06 + TTTGTCTTTCAAATG
+chr4 20900688 20900699 -V_E12_Q6 8.542e-06 - CGCAGGTGGCA
+chr4 20900718 20900732 +V_E2A_Q2 5.45571e-06 + ACACCTGCTGCAGT
+chr4 20900768 20900783 -V_AR_Q2 2.46616e-06 - AGAAGCTTTTGTACT
+chr4 24364557 24364570 -V_OCT_C 6.71556e-06 - CTCCTTTGCATTT
+chr4 24364594 24364604 -V_POU3F2_02 1.99833e-06 - TTATGTTAAT
+chr4 25723456 25723471 -V_HES1_Q2 6.50005e-06 - GGGGCTTGTGGCTAC
+chr4 25723529 25723540 -V_PAX_Q6 9.42649e-06 - CTGGGAATCAC
+chr4 25723584 25723593 -V_LYF1_01 7.33929e-06 - TTTGGGAGA
+chr4 26281125 26281146 +V_PPARG_01 9.81973e-06 + AATGGGGAGAAAGTTCACAAG
+chr4 26281147 26281156 +V_ZIC2_01 7.66616e-06 + AGGGTGGTC
+chr4 26281169 26281184 -V_OCT4_02 3.61302e-07 - ATTCTGATGCTAATT
+chr4 26281170 26281185 -V_OCT4_01 1.94673e-06 - TATTCTGATGCTAAT
+chr4 26281215 26281227 +V_MEIS1_01 4.40868e-06 + CCCTGACAGGGG
+chr4 26281222 26281237 -V_TAXCREB_02 5.06447e-06 - GTGACTCACACCCCT
+chr4 26281227 26281238 -V_AP1_Q4 7.9984e-06 - AGTGACTCACA
+chr4 32938060 32938070 +V_EBOX_Q6_01 6.43409e-06 + CCACCTGGCC
+chr4 32940936 32940944 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr4 32940936 32940945 -V_CKROX_Q2 8.90515e-06 - TCCCTCCCC
+chr4 32940977 32940989 -V_LRH1_Q5 7.04044e-06 - GAGACCTTGGAC
+chr4 32941009 32941028 -V_SEF1_C 5.09832e-06 - AGCAAGCAGATCAGCGGTT
+chr4 32941046 32941059 -V_MAZR_01 7.66218e-06 - GGGGGTGGGGTAA
+chr4 32941049 32941059 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr4 32941050 32941059 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr4 32941061 32941076 +V_IRF_Q6 8.71346e-06 + GCTGGTTTCTGTTTC
+chr4 33072003 33072017 +V_KROX_Q6 2.61668e-06 + ACCGCCCACCCCCC
+chr4 33072004 33072019 +V_SREBP_Q6 2.612e-06 + CCGCCCACCCCCCAG
+chr4 33072004 33072019 +V_SREBP1_Q5 5.62649e-06 + CCGCCCACCCCCCAG
+chr4 33072005 33072020 -V_SPZ1_01 7.19322e-06 - GCTGGGGGGTGGGCG
+chr4 33072007 33072016 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr4 33072008 33072023 -V_VDR_Q3 4.22722e-06 - GGGGCTGGGGGGTGG
+chr4 33072014 33072023 -V_CACBINDINGPROTEIN_Q6 8.12736e-06 - GGGGCTGGG
+chr4 33995897 33995907 -V_TITF1_Q3 4.46892e-06 - AGTCAAGTGT
+chr4 33995961 33995974 -V_SP1_Q6 3.06772e-06 - TGGGGGCGGGGGA
+chr4 33995962 33995972 -V_SP1_Q6_01 6.78413e-07 - GGGGCGGGGG
+chr4 33995962 33995973 +V_SP1SP3_Q4 3.19906e-06 + CCCCCGCCCCC
+chr4 33995963 33995972 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr4 33995963 33995973 +V_SP1_Q2_01 3.39206e-07 + CCCCGCCCCC
+chr4 34682012 34682024 +V_NFAT_Q6 8.79182e-07 + CAGAGGAAAAAC
+chr4 35064900 35064913 -V_DEC_Q1 4.05819e-06 - CTGCAAGTGAAGG
+chr4 35064916 35064928 -V_LMO2COM_01 7.876e-06 - GGCCAGGTGCTT
+chr4 35064956 35064970 +V_POU3F2_01 5.85714e-06 + ATGCATTTATTTCT
+chr4 35064961 35064979 -V_CDX_Q5 8.08449e-06 - AATTCAAAGAGAAATAAA
+chr4 35083407 35083416 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr4 35083407 35083417 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr4 35083407 35083418 -V_SP1SP3_Q4 2.8432e-06 - CCCCCTCCCCC
+chr4 35083408 35083416 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr4 35083408 35083417 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr4 35083408 35083418 +V_SP1_Q6_01 8.48538e-06 + GGGGAGGGGG
+chr4 40729292 40729302 -V_ESE1_Q3 2.21291e-06 - TGTTTCCTGT
+chr4 40729356 40729368 +V_CEBP_Q2_01 7.29068e-06 + CTTGCACAACCA
+chr4 41000612 41000621 -V_AP2ALPHA_01 9.68294e-06 - GCCCGAGGG
+chr4 41000612 41000621 -V_AP2GAMMA_01 7.85065e-06 - GCCCGAGGG
+chr4 41000654 41000664 +V_ESE1_Q3 5.33438e-06 + TGTTTCCTGA
+chr4 41276649 41276663 -V_NFY_C 4.45006e-06 - TCTGATTGGTGAAT
+chr4 41276651 41276662 +V_NFY_Q6 9.1733e-06 + TCACCAATCAG
+chr4 41276676 41276695 +V_PPARA_02 4.81437e-06 + CAAGGTCACAAAGGTCACT
+chr4 41276680 41276693 -V_COUP_DR1_Q6 8.22308e-06 - TGACCTTTGTGAC
+chr4 41617074 41617086 +V_VDR_Q6 9.41602e-06 + CTGTCTGAACCT
+chr4 44568566 44568583 +V_PU1_01 7.57258e-06 + CTAAAGAGGAAGTGAGA
+chr4 44568567 44568586 -V_PU1_Q4 1.90632e-07 - AGTTCTCACTTCCTCTTTA
+chr4 44568570 44568585 +V_ETS1_B 6.49821e-06 + AGAGGAAGTGAGAAC
+chr4 44568644 44568659 -V_OCT4_01 1.94673e-06 - CTTTGAAATGTAGAT
+chr4 44568666 44568678 -V_MEIS1_01 7.43558e-06 - CCATGACAGGCC
+chr4 45211345 45211368 -V_COUPTF_Q6 2.178e-06 - CCTAGTGGCCTTTACCCCCAACC
+chr4 45211350 45211363 -V_HNF4_DR1_Q3 7.1247e-06 - TGGCCTTTACCCC
+chr4 45211350 45211364 +V_HNF4_Q6_01 3.0083e-06 + GGGGTAAAGGCCAC
+chr4 45211371 45211383 -V_FOXD3_01 9.66278e-07 - GTTTGTTTGTTT
+chr4 45211371 45211389 +V_FOXJ2_01 1.76112e-06 + AAACAAACAAACAAATAA
+chr4 45211371 45211391 -V_FOXP1_01 3.83907e-06 - TTTTATTTGTTTGTTTGTTT
+chr4 45211372 45211390 +V_CDX_Q5 6.79733e-07 + AACAAACAAACAAATAAA
+chr4 45211373 45211386 +V_HNF3_Q6 8.74112e-06 + ACAAACAAACAAA
+chr4 45211374 45211387 -V_HFH4_01 2.42952e-06 - ATTTGTTTGTTTG
+chr4 45211375 45211387 -V_FOXD3_01 4.65347e-06 - ATTTGTTTGTTT
+chr4 45802639 45802657 -V_NF1_Q6 1.51659e-07 - TGTTGGCAGGGATCCAGC
+chr4 45802640 45802657 +V_NF1_Q6_01 1.13923e-07 + CTGGATCCCTGCCAACA
+chr4 45802686 45802696 +V_GATA1_05 8.02927e-06 + CCTGATAACA
+chr4 46199004 46199017 +V_AP2_Q6_01 2.99785e-06 + CCGGCCGCAGGCA
+chr4 46199039 46199049 +V_FOXO1_01 7.37669e-06 + AATAAACAAG
+chr4 46199039 46199051 +V_FOXO3A_Q1 9.47139e-06 + AATAAACAAGTT
+chr4 47142741 47142756 -V_OCT1_Q6 2.42215e-06 - AGAAATGTAAATCAG
+chr4 47142742 47142753 +V_OCT1_Q5_01 6.95837e-06 + TGATTTACATT
+chr4 47142759 47142770 -V_PAX_Q6 2.73139e-06 - CTGGAACTCTC
+chr4 47142794 47142806 +V_NMYC_01 6.32434e-06 + CCCCACGTGTGG
+chr4 48285007 48285019 +V_ICSBP_Q6 8.75679e-06 + AAAGTGCAACTG
+chr4 54386614 54386623 -V_SMAD3_Q6 7.33929e-06 - TGTCTGCCT
+chr4 54386618 54386634 +V_EVI1_01 4.14478e-07 + AGACAAGATTAGAGAC
+chr4 54386693 54386706 -V_MAZR_01 2.57012e-06 - GGGGGAGGGGCTC
+chr4 54386694 54386707 -V_SP1_Q6 5.66938e-07 - GGGGGGAGGGGCT
+chr4 54386695 54386705 -V_SP1_Q6_01 2.74385e-06 - GGGGAGGGGC
+chr4 54386696 54386705 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr4 54386696 54386706 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr4 54386697 54386705 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr4 54386697 54386706 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr4 54386698 54386717 -V_PPARA_02 2.16304e-06 - CAGGGGCCTTGGGGGGAGG
+chr4 55154242 55154252 +V_TITF1_Q3 3.36246e-06 + ACTCAAGTAT
+chr4 55154244 55154259 -V_ETS1_B 7.24631e-06 - ACAGGAAATACTTGA
+chr4 55154293 55154304 +V_NFE2_01 6.32206e-06 + CACTGAGTCAT
+chr4 55154294 55154305 -V_AP1_Q6 8.21187e-06 - CATGACTCAGT
+chr4 55154295 55154304 -V_AP1_Q6_01 4.03003e-06 - ATGACTCAG
+chr4 55154351 55154365 +V_EFC_Q6 4.56902e-06 + AGACACCAGGCACC
+chr4 57176379 57176392 +V_OCT_C 8.41527e-06 + CTTATTAGCATGT
+chr4 57176381 57176396 -V_OCT4_02 1.64457e-07 - ATTGACATGCTAATA
+chr4 57176382 57176397 -V_OCT4_01 3.90219e-07 - CATTGACATGCTAAT
+chr4 57556848 57556860 +V_FOXD3_01 9.53633e-06 + TTTTGTTTGTTT
+chr4 57556848 57556861 +V_FOX_Q2 1.93154e-06 + TTTTGTTTGTTTT
+chr4 57556848 57556861 +V_HFH4_01 3.17054e-06 + TTTTGTTTGTTTT
+chr4 57556849 57556862 -V_HNF3_Q6 4.17324e-06 - AAAAACAAACAAA
+chr4 57556853 57556862 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr4 57556914 57556932 +V_NF1_Q6 4.05732e-06 + ATTTGGCTAGTAGCCCTT
+chr4 57815497 57815506 -V_FOXM1_01 8.06007e-06 - AGATGGACT
+chr4 57815514 57815532 +V_HNF3_Q6_01 9.63475e-07 + GTCATTGTTGGCCTTGTC
+chr4 59270639 59270648 +V_T3R_Q6 3.30926e-06 + CCTGTCCTT
+chr4 59270728 59270739 -V_SMAD_Q6_01 6.8135e-06 - CGGGCAGACAG
+chr4 59286371 59286385 -V_OCT1_05 5.61051e-06 - AGCCTTTGCATAAT
+chr4 59286416 59286432 +V_AP2_Q3 3.67897e-06 + GGCCCCAGGCAAGGCT
+chr4 61975621 61975636 +V_OCT4_02 7.51249e-06 + ATTCTGTTGCAGAAA
+chr4 61975740 61975755 +V_OCT4_01 9.436e-07 + CTTTGTTATGTAAAA
+chr4 63165054 63165063 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr4 63165114 63165127 +V_PPAR_DR1_Q2 1.19273e-06 + TGACCTGTGGCCT
+chr4 63165114 63165127 +V_COUP_DR1_Q6 1.12381e-06 + TGACCTGTGGCCT
+chr4 63165114 63165127 -V_RXRLXRB_01 4.41868e-06 - AGGCCACAGGTCA
+chr4 63165114 63165127 -V_DR1_Q3 1.66147e-06 - AGGCCACAGGTCA
+chr4 63165114 63165131 -V_PPARG_03 4.80614e-06 - TCTCAGGCCACAGGTCA
+chr4 65081742 65081755 -V_STAT1STAT1_Q3 8.92589e-06 - CTTTCTCGGAAAC
+chr4 65081756 65081775 +V_PU1_Q4 1.02828e-06 + ACTACTCACTTCTCCTTTT
+chr4 65081818 65081827 +V_CKROX_Q2 8.90515e-06 + TCCCTCCCC
+chr4 65081819 65081827 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr4 65081833 65081845 +V_LRH1_Q5 3.06315e-07 + CTGGCCTTGCAC
+chr4 65081843 65081866 +V_OCT1_04 1.29644e-06 + ACATGCTAATGCAAATCACTCCT
+chr4 65081844 65081859 +V_OCT4_01 4.01204e-06 + CATGCTAATGCAAAT
+chr4 65081847 65081862 +V_OCT1_Q6 4.08435e-06 + GCTAATGCAAATCAC
+chr4 65081850 65081860 +V_OCT1_B 8.43065e-06 + AATGCAAATC
+chr4 65081850 65081861 -V_OCT1_Q5_01 7.39888e-07 - TGATTTGCATT
+chr4 65081850 65081861 -V_OCT_Q6 2.01087e-06 - TGATTTGCATT
+chr4 65081854 65081866 +V_GFI1B_01 4.82127e-06 + CAAATCACTCCT
+chr4 66143900 66143917 -V_NF1_Q6_01 1.65285e-06 - TGGGATCACTGCCAAGG
+chr4 66143900 66143918 +V_NF1_Q6 1.8283e-06 + CCTTGGCAGTGATCCCAG
+chr4 66143976 66143989 -V_ALX4_01 5.12378e-06 - CCTGAGAAGAAAC
+chr4 68695427 68695443 -V_AP2_Q3 5.02857e-06 - GGCCCCAGGCTACACT
+chr4 68695432 68695445 -V_AP2_Q6_01 4.11454e-06 - CTGGCCCCAGGCT
+chr4 70977809 70977824 +V_OCT4_01 1.66292e-06 + TTTTCAAATGCAAAC
+chr4 70977864 70977872 +V_STAT3_02 9.89755e-06 + GGCTTCCC
+chr4 71665723 71665741 +V_MYOD_Q6_01 6.49155e-06 + TCAGGCCAGGTGGTGGGG
+chr4 71665726 71665736 -V_EBOX_Q6_01 6.43409e-06 - CCACCTGGCC
+chr4 71665726 71665738 +V_LMO2COM_01 2.70597e-06 + GGCCAGGTGGTG
+chr4 71665744 71665760 -V_NFY_01 5.71761e-06 - GGCAGCCAATCGGTAG
+chr4 71665804 71665819 +V_STAT5A_01 7.2812e-06 + TAGTTCTTGGAAACA
+chr4 71665849 71665867 -V_NF1_Q6 3.84452e-07 - CCTTGGCAGGCTTCCAAT
+chr4 75660240 75660255 +V_OCT4_01 1.01602e-06 + CTTTGTAATGCTGAT
+chr4 75660241 75660256 +V_OCT4_02 7.51249e-06 + TTTGTAATGCTGATG
+chr4 75660442 75660460 -V_CART1_01 9.85675e-06 - AATTAATTATAATTACAA
+chr4 75660450 75660460 -V_LHX3_01 9.29908e-06 - AATTAATTAT
+chr4 75660483 75660498 -V_VDRRXR_01 4.84975e-06 - GGGTTGTGAGGTTCA
+chr4 75660514 75660535 -V_DR3_Q4 8.8841e-06 - AAAGCCCTTTGTCACCTTGGT
+chr4 81135045 81135068 -V_COUPTF_Q6 1.50366e-06 - GCACGAGGCCCTTGCCCCTGGCT
+chr4 82076828 82076844 +V_NFKB_Q6_01 8.55659e-06 + GATTGGGAAAGTCCAT
+chr4 82076831 82076845 -V_NFKB_Q6 9.10996e-06 - GATGGACTTTCCCA
+chr4 83756121 83756132 +V_LEF1TCF1_Q4 2.36341e-06 + CCTTTGTTGTC
+chr4 83756174 83756189 -V_VDR_Q3 6.38003e-06 - GGGGCCAAGGGGACA
+chr4 83819503 83819518 -V_HES1_Q2 2.90414e-06 - GAGCCTTGTGCCTCA
+chr4 83819537 83819550 -V_SOX_Q6 7.76302e-06 - CTCTTTGTTCTAG
+chr4 84308328 84308348 -V_FOXP1_01 4.50341e-06 - TTTTTAGTCTTGTTTTGTTT
+chr4 84308371 84308386 -V_OCT4_01 6.46423e-06 - CTTTGTTTTGCAAAG
+chr4 84308389 84308400 +V_PAX_Q6 8.43097e-06 + CTAGAACTCAC
+chr4 84308687 84308702 +V_IRF_Q6 8.68896e-07 + CTCAGTTTCCCTTCC
+chr4 84308689 84308701 -V_ICSBP_Q6 6.18962e-06 - GAAGGGAAACTG
+chr4 84308689 84308703 -V_BLIMP1_Q6 1.19543e-06 - GGGAAGGGAAACTG
+chr4 84308694 84308709 -V_SPZ1_01 7.19322e-06 - ACAGGAGGGAAGGGA
+chr4 84308704 84308713 +V_T3R_Q6 8.74404e-06 + CCTGTCCTC
+chr4 84308724 84308740 -V_MAF_Q6 7.10251e-06 - TGAGGGGAGGTTGGGG
+chr4 84308736 84308746 +V_TBX5_Q5 3.66964e-06 + CTCACACCTA
+chr4 84308813 84308832 -V_ER_Q6 7.76671e-06 - CTGGGTTTCCTTGACCTGC
+chr4 84854590 84854605 -V_OCT4_02 7.51249e-06 - ATTCAGATGTTAATC
+chr4 84854633 84854644 -V_CP2_01 7.66122e-06 - GCTCAAGCCAG
+chr4 84854884 84854904 -V_FOXP1_01 3.96581e-06 - TTGTTTAAGTTGTTCAGTTT
+chr4 85887869 85887883 -V_OCT1_05 3.30551e-06 - ATGATTACCATATT
+chr4 85887948 85887963 +V_OCT4_02 4.618e-06 + ATTGTGAGGCAAATG
+chr4 85887979 85887992 +V_OCT_C 6.42763e-06 + CTCATTTACATAC
+chr4 85888028 85888046 +V_FOXJ2_01 3.86688e-07 + AAATAAATAAACACAGAA
+chr4 85888028 85888046 -V_HNF3_Q6_01 4.45363e-06 - TTCTGTGTTTATTTATTT
+chr4 87344838 87344850 +V_LRH1_Q5 8.26289e-06 + CTGGCCTTGGCC
+chr4 87344874 87344884 +V_NUR77_Q5 8.43564e-06 + TTGACCTTCC
+chr4 87344894 87344910 -V_EVI1_01 7.40857e-06 - TGATGAGATTAGCTAA
+chr4 87344956 87344970 -V_FOXJ2_02 5.68368e-06 - CTCACAATGTTTTT
+chr4 89679615 89679628 +V_SP1_Q6 9.41334e-06 + TAGGGGAGGGGTC
+chr4 89679616 89679626 -V_SP1_Q2_01 6.40385e-06 - CCCCTCCCCT
+chr4 89679616 89679629 +V_MAZR_01 2.57012e-06 + AGGGGAGGGGTCA
+chr4 89679617 89679625 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr4 89679617 89679626 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr4 89679617 89679627 +V_SP1_Q6_01 9.74073e-06 + GGGGAGGGGT
+chr4 89679622 89679634 +V_PXR_Q2 6.30169e-06 + GGGGTCAATCAC
+chr4 89679623 89679636 +V_FXR_IR1_Q6 2.08122e-06 + GGGTCAATCACCC
+chr4 89679623 89679636 -V_FXR_IR1_Q6 3.73724e-06 - GGGTGATTGACCC
+chr4 94845308 94845322 -V_PAX6_Q2 5.16503e-06 - CTGAGATGGAACAC
+chr4 94845379 94845393 -V_ATF3_Q6 6.79245e-06 - CCCTGATGTCATGC
+chr4 94845398 94845416 +V_SRF_01 5.21291e-06 + ATGACCAAATATAGGGAT
+chr4 94845398 94845417 -V_SRF_Q5_02 6.64334e-06 - CATCCCTATATTTGGTCAT
+chr4 94845447 94845458 +V_ELF5_01 7.04512e-06 + ATAAGGAAATT
+chr4 95132844 95132862 +V_AHR_01 5.25035e-06 + CCTGGGGCTAGGGTGGGT
+chr4 95132853 95132883 -V_PAX4_04 5.32499e-06 - GGAAAACTGCTCTCCCTCCATACCCACCCT
+chr4 95132858 95132873 +V_VDR_Q3 2.43449e-06 + GGGTATGGAGGGAGA
+chr4 99308721 99308732 +V_NFE2_01 5.51939e-06 + TGCTGAGTTAC
+chr4 101562164 101562179 -V_OCT4_01 8.48593e-06 - CATTTTGATGCTAAT
+chr4 101907982 101908012 +V_PAX4_04 3.18907e-06 + AAACATGAGCAGTTTACCCCCACCCACCCC
+chr4 101908001 101908016 +V_SREBP_Q6 2.0576e-06 + CCACCCACCCCACCC
+chr4 101908001 101908016 +V_SREBP1_Q5 8.79017e-07 + CCACCCACCCCACCC
+chr4 101908006 101908019 -V_SP1_Q6 7.54104e-06 - TGGGGGTGGGGTG
+chr4 101908008 101908018 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr4 101908009 101908018 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr4 101908009 101908020 -V_EGR_Q6 8.04446e-06 - GTGGGGGTGGG
+chr4 101908009 101908023 +V_KROX_Q6 2.21131e-07 + CCCACCCCCACCCC
+chr4 101908011 101908023 +V_PAX4_03 2.40392e-07 + CACCCCCACCCC
+chr4 101908014 101908024 +V_SP1_Q2_01 9.56538e-06 + CCCCACCCCT
+chr4 101908029 101908042 +V_SOX_Q6 5.25102e-06 + GTCTTTGTTATGA
+chr4 101908091 101908101 -V_POU3F2_02 7.27852e-06 - ATATGCTAAT
+chr4 103511214 103511233 -V_OCT1_01 7.83092e-06 - GTTGTTATGCAAATGCGAC
+chr4 103511216 103511229 +V_OCT_C 3.7644e-06 + CGCATTTGCATAA
+chr4 103511216 103511230 +V_OCT1_05 1.34806e-06 + CGCATTTGCATAAC
+chr4 103511217 103511228 +V_OCT_Q6 4.86692e-06 + GCATTTGCATA
+chr4 103511218 103511228 -V_OCT1_B 4.33582e-06 - TATGCAAATG
+chr4 103511218 103511233 -V_OCT4_02 8.50894e-06 - GTTGTTATGCAAATG
+chr4 103511219 103511234 -V_OCT4_01 8.76645e-07 - CGTTGTTATGCAAAT
+chr4 103511270 103511285 +V_IRF_Q6 7.15837e-07 + CCCTGTTTCACTTTC
+chr4 103511272 103511284 -V_ICSBP_Q6 8.9236e-06 - AAAGTGAAACAG
+chr4 103511274 103511285 -V_IRF_Q6_01 6.07558e-07 - GAAAGTGAAAC
+chr4 105238541 105238559 -V_GCNF_01 6.88534e-06 - GGGAAGTTAAAGTTCAGA
+chr4 105238542 105238555 +V_HNF4ALPHA_Q6 9.80985e-06 + CTGAACTTTAACT
+chr4 105238649 105238661 +V_CEBP_Q3 8.62923e-07 + GGATTTGGCAAT
+chr4 105581028 105581043 -V_OCT4_02 9.71581e-06 - CTTGTCATGCAAAAG
+chr4 107035563 107035578 -V_OCT4_01 7.94702e-06 - CTTTATTATGTAAAA
+chr4 107764828 107764836 +V_CACD_01 9.89755e-06 + CCACACCC
+chr4 107764869 107764883 +V_COUP_01 7.84802e-06 + TGAACCTAGGACCT
+chr4 107764882 107764901 +V_OCT1_01 9.8471e-06 + TCACATATGCTAATCACTA
+chr4 107764885 107764899 -V_OCT1_05 4.95753e-06 - GTGATTAGCATATG
+chr4 107764886 107764896 +V_POU3F2_02 7.27852e-06 + ATATGCTAAT
+chr4 115068958 115068971 -V_P50P50_Q3 6.86436e-06 - TAGGGAATCCCAC
+chr4 115069063 115069072 -V_ZIC1_01 4.94877e-06 - GGGGTGGTC
+chr4 115069063 115069072 -V_ZIC2_01 2.23138e-06 - GGGGTGGTC
+chr4 115069108 115069120 -V_ICSBP_Q6 6.81092e-06 - AAGGTGAAACTG
+chr4 115230629 115230640 +V_SMAD_Q6_01 6.8135e-06 + TAGGCAGACTC
+chr4 115546085 115546098 -V_NFY_Q6_01 8.20597e-06 - CTTTGGCCAATGA
+chr4 115627446 115627460 -V_KROX_Q6 7.56123e-06 - CCCACCCACTCTCC
+chr4 115627505 115627520 +V_OCT4_01 7.41924e-06 + CATTGTTTTGGAAAT
+chr4 115627506 115627521 +V_OCT4_02 5.69461e-06 + ATTGTTTTGGAAATG
+chr4 115627521 115627541 +V_ARNT_02 1.07594e-06 + GAAAAATCACGTGCTCCCTG
+chr4 115627521 115627541 -V_ARNT_02 1.07594e-06 - CAGGGAGCACGTGATTTTTC
+chr4 115627523 115627539 +V_ARNT_01 2.48799e-06 + AAAATCACGTGCTCCC
+chr4 115627525 115627537 +V_CMYC_01 7.13863e-06 + AATCACGTGCTC
+chr4 118384488 118384498 -V_NUR77_Q5 2.98426e-06 - CTGACCTTGC
+chr4 118384547 118384555 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr4 118384591 118384603 -V_LRH1_Q5 3.77826e-06 - CAGACCTTGAAC
+chr4 119076198 119076221 -V_COUPTF_Q6 5.61078e-07 - TCCCTTGACCCCAGCCCCTTGAT
+chr4 119076203 119076212 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr4 119076220 119076233 +V_NRF2_Q4 9.9544e-07 + ATGCTGATTCATG
+chr4 119076221 119076232 +V_MAF_Q6_01 9.11965e-06 + TGCTGATTCAT
+chr4 119076239 119076256 +V_PU1_01 6.15878e-06 + TTAAAAGGGAACTGGGG
+chr4 119076252 119076267 -V_IPF1_Q4_01 7.76788e-06 - TCAGTCATTACCCCC
+chr4 119843226 119843240 -V_CDX2_Q5 5.62073e-06 - AGAAGTTTATTGCC
+chr4 119843263 119843281 -V_HNF1_Q6 1.96468e-06 - TGGTTATTTATCAACACT
+chr4 119843265 119843280 -V_HNF1_01 4.66545e-06 - GGTTATTTATCAACA
+chr4 119843299 119843318 -V_NRSF_Q4 9.72581e-06 - CCTCTGTCTGCGCAGCTCA
+chr4 120028127 120028141 -V_NFKB_Q6 6.17466e-06 - GGGGAAATTTCCTA
+chr4 120285065 120285076 -V_E12_Q6 1.14424e-06 - GGCAGGTGGCC
+chr4 120285066 120285076 +V_MYOD_Q6 7.66616e-06 + GCCACCTGCC
+chr4 120285068 120285076 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr4 120285121 120285135 +V_ERR1_Q2 6.19815e-07 + ACCTCAAGGTCATT
+chr4 120285124 120285133 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr4 120285169 120285178 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr4 123519701 123519714 -V_IK3_01 1.80063e-06 - GATAGGGAATACC
+chr4 123519707 123519716 -V_LMO2COM_02 3.30926e-06 - CAGATAGGG
+chr4 123519733 123519742 +V_ZIC2_01 9.89755e-06 + GGGGTGGTG
+chr4 123731662 123731672 -V_TITF1_Q3 6.68182e-06 - ACTCAAGTAG
+chr4 124821930 124821945 -V_AR_Q2 2.50163e-07 - AGAACCTGCTGTTCT
+chr4 124880679 124880692 +V_SP1_Q6 3.23457e-06 + TGGGGGAGGGGTG
+chr4 124880680 124880689 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr4 124880680 124880690 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr4 124880681 124880689 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr4 124880681 124880690 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr4 124880681 124880691 +V_SP1_Q6_01 9.74073e-06 + GGGGAGGGGT
+chr4 124880683 124880713 -V_PAX4_04 4.01413e-06 - AAAGATTAACACTTCCACACCCACCCCTCC
+chr4 124880686 124880698 -V_PAX4_03 2.70808e-06 - CACACCCACCCC
+chr4 124880691 124880699 -V_CACD_01 9.89755e-06 - CCACACCC
+chr4 124880699 124880720 -V_HNF1_Q6_01 8.05704e-06 - TGAGGCTAAAGATTAACACTT
+chr4 124880702 124880719 +V_HNF1_C 9.45717e-06 + TGTTAATCTTTAGCCTC
+chr4 124880716 124880734 -V_MYOD_Q6_01 9.19422e-06 - CTAAGACAGGTGTCTGAG
+chr4 124880789 124880801 -V_LRH1_Q5 5.34492e-06 - CTGGCCTTGAAA
+chr4 125250373 125250386 +V_NKX61_01 8.94803e-06 + TTCTTAATGGGTA
+chr4 125250382 125250394 -V_NKX62_Q2 7.5322e-06 - GAGATAATTACC
+chr4 125250456 125250474 +V_AHR_01 7.33376e-06 + TCTCAGGGTCACGTGAGT
+chr4 125250461 125250475 +V_STRA13_01 2.35887e-06 + GGGTCACGTGAGTG
+chr4 125250461 125250475 -V_STRA13_01 2.54118e-06 - CACTCACGTGACCC
+chr4 125250471 125250485 +V_NFY_C 3.68961e-06 + AGTGATTGGCCAGC
+chr4 125250472 125250483 -V_NFY_Q6 3.12147e-06 - TGGCCAATCAC
+chr4 125276944 125276959 +V_OCT4_01 6.39105e-07 + ATTTGTCATGTAAAT
+chr4 125276945 125276960 +V_OCT4_02 6.99193e-06 + TTTGTCATGTAAATA
+chr4 126681735 126681755 +V_P53_01 2.78821e-06 + GGACAATTCCAGGCAAGTCC
+chr4 126681735 126681755 -V_P53_01 4.2418e-06 - GGACTTGCCTGGAATTGTCC
+chr4 126681745 126681755 +V_P53_DECAMER_Q2 2.10476e-06 + AGGCAAGTCC
+chr4 126681821 126681839 -V_MYOD_Q6_01 9.72371e-06 - AGGAAGCAGCTGAGGAAG
+chr4 126681872 126681883 -V_EGR_Q6 6.55683e-06 - GTGGGGGCTGG
+chr4 126681872 126681886 +V_KROX_Q6 7.21197e-06 + CCAGCCCCCACAAC
+chr4 129643732 129643747 +V_OCT4_01 3.04012e-06 + CCTTGTTATGCAAAT
+chr4 129643733 129643752 +V_OCT1_01 2.64279e-06 + CTTGTTATGCAAATGTAGG
+chr4 129643738 129643748 +V_OCT1_B 4.33582e-06 + TATGCAAATG
+chr4 129643738 129643749 -V_OCT_Q6 7.02042e-06 - ACATTTGCATA
+chr4 129643747 129643760 -V_OCT_C 4.29306e-06 - CTCATTTGCCTAC
+chr4 129647564 129647587 -V_OCT1_04 9.79816e-06 - CCAAAGAAATGCAAATTAGAACT
+chr4 129647568 129647581 +V_OCT_C 3.87618e-06 + CTAATTTGCATTT
+chr4 129647568 129647582 +V_OCT1_05 1.2815e-06 + CTAATTTGCATTTC
+chr4 129647568 129647583 -V_OCT1_Q6 3.60611e-07 - AGAAATGCAAATTAG
+chr4 129647569 129647580 +V_OCT1_Q5_01 2.46139e-06 + TAATTTGCATT
+chr4 129647569 129647580 +V_OCT_Q6 3.88942e-06 + TAATTTGCATT
+chr4 129647670 129647685 -V_SPZ1_01 8.91733e-07 - TGAGGAGGGTGTGGC
+chr4 129647671 129647679 +V_CACD_01 9.89755e-06 + CCACACCC
+chr4 129647673 129647688 -V_VDR_Q3 4.52515e-06 - GGTTGAGGAGGGTGT
+chr4 129845606 129845621 -V_SPZ1_01 1.27474e-06 - GAAGGAGGGTGTGGC
+chr4 129845607 129845615 +V_CACD_01 9.89755e-06 + CCACACCC
+chr4 129845649 129845658 -V_T3R_Q6 3.30926e-06 - CCTGTCCTT
+chr4 129845677 129845687 -V_USF_Q6 9.67414e-06 - GTCACGGGAC
+chr4 129845685 129845714 -V_MYOGNF1_01 1.8908e-06 - CTGCTGTTTGTCTTGGCGGCCTGCCTGGT
+chr4 129845686 129845704 -V_NF1_Q6 8.31384e-06 - TCTTGGCGGCCTGCCTGG
+chr4 129845755 129845774 -V_ER_Q6 8.78889e-06 - CAAGGCCAGGGTGACCAGC
+chr4 130358050 130358064 +V_DMRT7_01 1.43161e-06 + TGGATACAATGTTG
+chr4 130358050 130358065 +V_DMRT1_01 3.23848e-08 + TGGATACAATGTTGC
+chr4 130358052 130358067 -V_DMRT1_01 3.53013e-07 - CTGCAACATTGTATC
+chr4 130358075 130358084 +V_CKROX_Q2 8.90515e-06 + TCCCTCCCC
+chr4 130358076 130358084 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr4 130358076 130358085 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr4 130358076 130358090 +V_KROX_Q6 5.42711e-07 + CCCTCCCCCACCCC
+chr4 130358078 130358090 +V_PAX4_03 3.63034e-06 + CTCCCCCACCCC
+chr4 130358080 130358091 +V_SP1SP3_Q4 8.91927e-06 + CCCCCACCCCC
+chr4 130358081 130358091 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr4 130358081 130358100 -V_PPARA_02 3.31972e-06 - ATAGGTAAGGGGGGTGGGG
+chr4 130358082 130358091 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr4 130390172 130390184 -V_LRH1_Q5 9.2187e-06 - TTGGCCTTGGAG
+chr4 130394092 130394105 -V_MAZR_01 2.98074e-06 - AGGGGGGGGGAGG
+chr4 130394095 130394104 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr4 130394095 130394106 +V_SP1SP3_Q4 2.26051e-06 + CCCCCCCCCTC
+chr4 130394096 130394107 +V_SP1SP3_Q4 2.26051e-06 + CCCCCCCCTCT
+chr4 130394107 130394122 +V_DMRT1_01 2.82419e-06 + CAGAAACAATGTATC
+chr4 130394109 130394124 -V_DMRT1_01 6.88848e-09 - TTGATACATTGTTTC
+chr4 130394110 130394124 -V_DMRT7_01 1.30327e-06 - TTGATACATTGTTT
+chr4 130394112 130394127 -V_DMRT3_01 1.87777e-06 - GACTTGATACATTGT
+chr4 130394112 130394128 -V_DMRT2_01 2.77309e-06 - GGACTTGATACATTGT
+chr4 130682051 130682061 -V_TAL1_Q6 7.11328e-06 - TCCACCTGCT
+chr4 132465821 132465836 +V_SREBP1_Q5 6.9181e-06 + GCCTTCACCCCACCT
+chr4 132465875 132465884 -V_SMAD3_Q6 4.03003e-06 - TGTCTGTCT
+chr4 132509616 132509633 -V_RFX1_01 6.16934e-06 - AGGTTACAAGGTAACAA
+chr4 132509667 132509683 -V_NFY_01 4.44608e-07 - ACCAGCCAATGGGAGT
+chr4 132509670 132509681 -V_ALPHACP1_01 4.48665e-06 - CAGCCAATGGG
+chr4 132538930 132538944 -V_ERR1_Q2 4.03886e-06 - GTCTGAAGGTCACA
+chr4 132538985 132538995 -V_SP1_Q6_01 8.48538e-06 - AGGGCGGGGT
+chr4 132539036 132539055 +V_PU1_Q4 8.38434e-06 + CCCAGGCACTTCCTCTCTG
+chr4 132539037 132539052 -V_ETS1_B 2.41591e-07 - AGAGGAAGTGCCTGG
+chr4 132539039 132539051 +V_ETS_Q4 3.41629e-06 + AGGCACTTCCTC
+chr4 132539039 132539053 -V_ETS2_B 1.42527e-06 - GAGAGGAAGTGCCT
+chr4 132539274 132539292 -V_SRF_01 7.69153e-06 - ATGCCCATCTCTGGTGCC
+chr4 135666532 135666545 -V_SP1_Q6 5.65055e-06 - GGGGGGAGGGACT
+chr4 135666534 135666543 +V_CKROX_Q2 8.90515e-06 + TCCCTCCCC
+chr4 135666535 135666543 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr4 135666535 135666544 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr4 135666626 135666635 -V_AP1_C 4.03003e-06 - ATGAGTCAG
+chr4 135666626 135666637 -V_MAF_Q6_01 5.48449e-06 - TGATGAGTCAG
+chr4 137438952 137438964 -V_NANOG_01 4.89365e-06 - GAACCCATTTCC
+chr4 137438979 137438995 +V_AP2_Q3 5.34192e-06 + AGCCCCAGGCCAGGGG
+chr4 137561850 137561864 +V_DMRT7_01 2.62625e-06 + TTGTAACATTGATG
+chr4 138000933 138000946 +V_PPAR_DR1_Q2 6.37174e-06 + GGAACTTTGTCCC
+chr4 138000933 138000946 +V_HNF4_DR1_Q3 4.37494e-06 + GGAACTTTGTCCC
+chr4 138000933 138000946 +V_COUP_DR1_Q6 7.90564e-06 + GGAACTTTGTCCC
+chr4 138000933 138000946 -V_DR1_Q3 4.90971e-06 - GGGACAAAGTTCC
+chr4 138000980 138000995 -V_OCT4_01 1.18992e-06 - TATAGACATGCAAAT
+chr4 138001013 138001025 -V_PAX4_03 9.67001e-06 - AAACCTCACCCG
+chr4 138001049 138001066 +V_DR4_Q2 2.46932e-06 + TGACCTCTTGTGCCCTA
+chr4 138080028 138080042 +V_ERR1_Q2 6.19815e-07 + TGCTCAAGGTCACT
+chr4 138080031 138080040 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr4 138204132 138204147 +V_OCT4_02 2.05222e-06 + TTTGTCATTCTAAAC
+chr4 138204183 138204194 -V_NFY_Q6 4.23487e-06 - TGGCCAATCAG
+chr4 138204229 138204238 +V_RFX_Q6 3.30926e-06 + CTGTTGCCA
+chr4 139145717 139145730 +V_AP2_Q6_01 2.39401e-06 + CTGCCCCCAGGCT
+chr4 139145719 139145735 +V_AP2_Q3 1.63469e-06 + GCCCCCAGGCTAGAAC
+chr4 139145775 139145790 -V_ETS1_B 8.95766e-06 - CCAGGAAGGGGCAGG
+chr4 139371837 139371848 -V_EVI1_02 8.20464e-07 - AGATAAGATAA
+chr4 139371837 139371848 -V_EVI1_03 4.5052e-07 - AGATAAGATAA
+chr4 139371837 139371848 -V_EVI1_05 8.20464e-07 - AGATAAGATAA
+chr4 139371878 139371893 -V_STAT5B_01 5.48058e-06 - TGTTTCTTGGAATCA
+chr4 139558165 139558180 -V_OCT4_01 1.28133e-06 - CATTTAAATGCAAAT
+chr4 140202744 140202760 +V_NFKB_Q6_01 8.55659e-06 + GAGTTGGGAAGCCCCA
+chr4 140202749 140202757 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr4 140202749 140202759 -V_NFKAPPAB_01 4.87508e-06 - GGGGCTTCCC
+chr4 140202852 140202873 -V_STAT1_01 4.88874e-06 - CAACAATTCCGGTAATTAGGC
+chr4 140721998 140722010 +V_LRH1_Q5 5.34492e-06 + CTGGCCTTGAAT
+chr4 140838646 140838660 -V_BLIMP1_Q6 5.74624e-06 - TGGAAGGGAAAGGT
+chr4 140840512 140840526 +V_NFKB_Q6 5.82335e-06 + ATTGGAATTTCCCC
+chr4 140840513 140840527 -V_NFKB_Q6 8.78215e-06 - TGGGGAAATTCCAA
+chr4 140840513 140840529 -V_NFKB_Q6_01 8.55659e-06 - CCTGGGGAAATTCCAA
+chr4 140840514 140840524 +V_NFKAPPAB65_01 5.16177e-06 + TGGAATTTCC
+chr4 140840514 140840526 -V_NFKB_C 6.70077e-06 - GGGGAAATTCCA
+chr4 140840515 140840525 -V_NFKAPPAB_01 7.14234e-06 - GGGAAATTCC
+chr4 140840542 140840556 +V_BLIMP1_Q6 1.70439e-06 + GAGAAGGGAAAGGC
+chr4 140840558 140840571 +V_STAT_Q6 2.21622e-06 + TACCCTTCTGGGA
+chr4 140840564 140840574 +V_IK_Q5 4.33614e-06 + TCTGGGAGGG
+chr4 140840612 140840621 -V_ZIC2_01 7.66616e-06 - AGGGTGGTC
+chr4 140840653 140840668 +V_SPZ1_01 4.92705e-06 + GTGGGTGGGTATGGG
+chr4 141733182 141733197 -V_DMRT1_01 1.51207e-06 - CGGATACTTTGTTGC
+chr4 141733199 141733208 +V_FOXO1_Q5 7.27852e-06 + AAAAACAAA
+chr4 141733209 141733224 +V_ETS1_B 1.74168e-06 + GCAGGAAGGGAGGGG
+chr4 141800044 141800065 +V_PPARG_01 6.19353e-06 + CCTGGGCTCCAAGGTCAGATG
+chr4 141800048 141800061 -V_COUP_DR1_Q6 9.5269e-06 - TGACCTTGGAGCC
+chr4 141800050 141800062 -V_LRH1_Q5 3.22157e-06 - CTGACCTTGGAG
+chr4 141800052 141800061 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr4 141800052 141800062 -V_NUR77_Q5 2.98426e-06 - CTGACCTTGG
+chr4 141800075 141800086 -V_ER_Q6_02 5.98444e-06 - GAGGTCAGGGT
+chr4 141800126 141800141 +V_VDR_Q3 2.13625e-06 + GGGGCAGGGGAGTCA
+chr4 141800534 141800542 +V_CACD_01 9.89755e-06 + CCACACCC
+chr4 141800598 141800609 -V_PAX_Q6 8.43097e-06 - CTAGAACTCAC
+chr4 142267791 142267806 +V_DMRT1_01 8.47921e-07 + CAGTTACAATGTTGC
+chr4 142267793 142267808 -V_DMRT1_01 2.47268e-06 - CTGCAACATTGTAAC
+chr4 144414691 144414710 +V_PPARA_02 7.17762e-06 + AGAGGCCATTGAGGTTTGG
+chr4 144414793 144414808 +V_OCT4_01 7.94702e-06 + TTTTGTTGTGCAAAC
+chr4 144596027 144596040 +V_NFY_Q6_01 1.64014e-06 + GCTTAGCCAATGG
+chr4 144596297 144596312 -V_OCT4_01 3.26181e-06 - CATTCTCATGGAGAT
+chr4 144861685 144861700 +V_OCT4_01 7.41924e-06 + TATTCAAATGCTAAA
+chr4 144861721 144861733 +V_PAX4_03 5.65167e-06 + TACCTCCACCCC
+chr4 145105858 145105873 +V_SPZ1_01 8.55807e-06 + GGTGGGGGGAAGGGA
+chr4 145105859 145105870 +V_EGR_Q6 9.33802e-06 + GTGGGGGGAAG
+chr4 145105864 145105878 +V_BLIMP1_Q6 2.97987e-06 + GGGAAGGGAATTGA
+chr4 145105952 145105967 +V_OCT4_01 1.94673e-06 + CATTGATATGTTAAT
+chr4 145105957 145105967 +V_POU3F2_02 5.63759e-06 + ATATGTTAAT
+chr4 146932369 146932384 +V_OCT4_01 1.94673e-06 + CATTGATATGTTAAT
+chr4 146932374 146932384 +V_POU3F2_02 5.63759e-06 + ATATGTTAAT
+chr4 146932377 146932392 +V_HNF1_01 8.94735e-06 + TGTTAATAGTTACCC
+chr4 146932423 146932436 -V_HNF4ALPHA_Q6 5.26844e-07 - CTGAACTTTGAAG
+chr4 147440319 147440335 +V_LXR_DR4_Q3 8.2407e-08 + TGACCTCTGGTGACCC
+chr4 147440319 147440336 +V_DR4_Q2 2.64389e-08 + TGACCTCTGGTGACCCC
+chr4 147440319 147440337 -V_LXR_Q3 1.84212e-09 - TGGGGTCACCAGAGGTCA
+chr4 147440333 147440342 -V_CACBINDINGPROTEIN_Q6 6.29506e-06 - GAGGCTGGG
+chr4 147440417 147440431 -V_ERR1_Q2 2.53861e-07 - ACCTCAAGGTCAGA
+chr4 147440418 147440432 +V_PAX6_Q2 7.71568e-06 + CTGACCTTGAGGTC
+chr4 147440419 147440428 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr4 148007792 148007804 -V_NANOG_01 6.30438e-06 - AAGACCATTTCC
+chr4 148112915 148112929 +V_BLIMP1_Q6 1.25786e-06 + AGGAAGGGAAAGAA
+chr4 148112933 148112951 -V_PIT1_Q6 2.04669e-06 - CATTCATAATCACACCCA
+chr4 148112940 148112964 +V_COMP1_01 1.47702e-06 + GATTATGAATGCCAAGTAGAAGGG
+chr4 148113006 148113021 -V_VDR_Q3 3.98432e-06 - GGGGAAACAGGTTCA
+chr4 148113023 148113036 -V_HNF3_Q6 7.04647e-06 - CAGAATAAACAGT
+chr4 148714986 148714999 +V_SP1_Q6 2.54389e-06 + CAGGGGCGGGGCA
+chr4 148714987 148714997 -V_SP1_Q2_01 1.0915e-06 - CCCCGCCCCT
+chr4 148714988 148714997 -V_CKROX_Q2 6.67377e-06 - CCCCGCCCC
+chr4 148714988 148714998 +V_SP1_Q6_01 3.39206e-07 + GGGGCGGGGC
+chr4 148715042 148715051 +V_CACBINDINGPROTEIN_Q6 6.29506e-06 + GAGGCTGGG
+chr4 148715055 148715067 +V_ELF1_Q6 6.25224e-06 + GGATGAGGAAGT
+chr4 148715055 148715074 -V_PU1_Q4 9.794e-08 - GCCTTTCACTTCCTCATCC
+chr4 148715060 148715074 +V_BLIMP1_Q6 1.99431e-07 + AGGAAGTGAAAGGC
+chr4 148715061 148715072 +V_IRF_Q6_01 2.5744e-06 + GGAAGTGAAAG
+chr4 148715061 148715076 -V_IRF_Q6 6.09465e-06 - CTGCCTTTCACTTCC
+chr4 148715084 148715101 +V_PPARG_03 6.0242e-06 + CTCAGGGTCAAGGGTCA
+chr4 148715084 148715105 +V_PPARG_01 1.08694e-07 + CTCAGGGTCAAGGGTCAAGGA
+chr4 148715087 148715101 -V_COUP_01 1.28082e-07 - TGACCCTTGACCCT
+chr4 148715088 148715101 +V_RXRLXRB_01 8.03231e-07 + GGGTCAAGGGTCA
+chr4 148715088 148715101 +V_DR1_Q3 7.20305e-08 + GGGTCAAGGGTCA
+chr4 148715088 148715101 -V_PPAR_DR1_Q2 2.13471e-07 - TGACCCTTGACCC
+chr4 148715088 148715101 -V_HNF4_DR1_Q3 1.81134e-07 - TGACCCTTGACCC
+chr4 148715088 148715101 -V_COUP_DR1_Q6 3.35007e-08 - TGACCCTTGACCC
+chr4 148715088 148715102 +V_HNF4_Q6_01 1.40116e-06 + GGGTCAAGGGTCAA
+chr4 148715094 148715106 +V_PXR_Q2 7.73425e-06 + AGGGTCAAGGAA
+chr4 148852105 148852125 -V_FOXP1_01 5.78539e-06 - TTCTTTGTGTTGTCTTGGTG
+chr4 149468279 149468292 -V_MAZR_01 3.32118e-06 - GGGGGAGGGGCGC
+chr4 149468280 149468293 -V_SP1_Q6 2.94457e-07 - GGGGGGAGGGGCG
+chr4 149468281 149468291 -V_SP1_Q6_01 2.74385e-06 - GGGGAGGGGC
+chr4 149468281 149468296 -V_SPZ1_01 7.83729e-06 - GGGGGGGGGAGGGGC
+chr4 149468282 149468291 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr4 149468282 149468292 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr4 149468283 149468291 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr4 149468283 149468292 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr4 149468283 149468297 +V_KROX_Q6 1.5817e-06 + CCCTCCCCCCCCCC
+chr4 149468284 149468297 -V_MAZR_01 1.93317e-06 - GGGGGGGGGGAGG
+chr4 149468287 149468296 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr4 149468287 149468298 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr4 149468288 149468297 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr4 149468288 149468299 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr4 149468289 149468298 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr4 149468289 149468300 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr4 149468290 149468299 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr4 149468290 149468301 +V_SP1SP3_Q4 3.76147e-06 + CCCCCCCCCCA
+chr4 149468291 149468300 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr4 149468291 149468302 +V_SP1SP3_Q4 7.42043e-06 + CCCCCCCCCAC
+chr4 149468291 149468302 -V_EGR_Q6 2.33306e-06 - GTGGGGGGGGG
+chr4 149468352 149468371 -V_PPARA_02 2.92443e-06 - GAGGTTCATGGGGGTCAGT
+chr4 149468352 149468373 +V_DR3_Q4 9.26073e-06 + ACTGACCCCCATGAACCTCTC
+chr4 149468354 149468369 -V_VDRRXR_01 5.54887e-06 - GGTTCATGGGGGTCA
+chr4 149468571 149468581 +V_E2F1_Q6_01 8.28561e-06 + TTTTGGCGCC
+chr4 149529544 149529559 -V_DMRT5_01 6.58136e-06 - ATCTGTTACAGAGTC
+chr4 149529584 149529602 +V_GCNF_01 3.28925e-06 + CTGAGGGTCAAGGTCTGC
+chr4 150034147 150034161 +V_E2A_Q2 8.03505e-06 + TCACCTGTCACTGC
+chr4 150034286 150034295 +V_SMAD_Q6 9.3359e-06 + AGACACCCT
+chr4 150122630 150122644 +V_KROX_Q6 3.23929e-06 + CCAGCCCCCCCTCC
+chr4 150122631 150122644 -V_MAZR_01 4.80613e-06 - GGAGGGGGGGCTG
+chr4 150122632 150122647 -V_VDR_Q3 3.52857e-06 - GGGGGAGGGGGGGCT
+chr4 150122633 150122644 +V_SP1SP3_Q4 6.44809e-06 + GCCCCCCCTCC
+chr4 150122635 150122648 -V_SP1_Q6 1.37941e-06 - GGGGGGAGGGGGG
+chr4 150122636 150122646 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr4 150122636 150122647 +V_SP1SP3_Q4 2.8432e-06 + CCCCCTCCCCC
+chr4 150122637 150122646 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr4 150122637 150122647 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr4 150122638 150122646 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr4 150122638 150122647 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr4 150153597 150153607 -V_EBOX_Q6_01 7.18016e-06 - CCACCTGACT
+chr4 150153597 150153609 +V_MYOD_01 7.90686e-06 + AGTCAGGTGGTG
+chr4 150153638 150153650 +V_PBX_Q3 6.11371e-07 + GATTGATGGCTG
+chr4 150156964 150156978 -V_E2A_Q2 6.24606e-06 - TCACCTGTCCCGTC
+chr4 150156987 150157015 +V_PAX5_01 1.42971e-06 + GCGAGGCTCAGCTGGGAGTGGCCTGACC
+chr4 150157005 150157028 +V_COUPTF_Q6 3.50155e-06 + TGGCCTGACCTCTCATCTCCCCG
+chr4 150262800 150262809 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr4 150262801 150262809 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr4 150262804 150262813 +V_CACBINDINGPROTEIN_Q6 2.23138e-06 + GAGGGTGGG
+chr4 150262831 150262844 +V_CEBPGAMMA_Q6 4.63846e-06 + CTGATTTCAGATA
+chr4 150269375 150269383 +V_CACD_01 9.89755e-06 + CCACACCC
+chr4 151462477 151462487 -V_IK_Q5 2.47439e-06 - GCTGGGAGGG
+chr4 151462481 151462490 -V_CACBINDINGPROTEIN_Q6 6.29506e-06 - GAGGCTGGG
+chr4 151462532 151462545 +V_STAT_Q6 4.9181e-06 + CTCCCTTCTGGGA
+chr4 151713906 151713914 +V_CACD_01 9.89755e-06 + CCACACCC
+chr4 151713944 151713957 +V_HFH3_01 3.09439e-07 + GCTTGTTTGTTTA
+chr4 151713945 151713958 -V_HNF3_Q6 3.64504e-06 - CTAAACAAACAAG
+chr4 151713994 151714002 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr4 152715150 152715164 -V_NFKB_Q6 7.35667e-06 - TGGGGAAATTCCAG
+chr4 152715151 152715161 +V_NFKAPPAB65_01 5.16177e-06 + TGGAATTTCC
+chr4 152715151 152715163 -V_NFKB_C 6.70077e-06 - GGGGAAATTCCA
+chr4 152715152 152715162 -V_NFKAPPAB_01 7.14234e-06 - GGGAAATTCC
+chr4 152715181 152715196 +V_OCT4_01 2.19035e-07 + CATTATCATGCAAAT
+chr4 152715194 152715204 +V_POU3F2_02 5.63759e-06 + ATATGTTAAT
+chr4 153204342 153204372 +V_HOX13_01 2.3437e-06 + TGATTCTTTCTCCATTTGTGCAGGACTCCT
+chr4 153204406 153204418 -V_AP1_Q2_01 9.83435e-06 - TGACTCACAGGA
+chr4 153204409 153204420 -V_AP1FJ_Q2 5.39606e-06 - GGTGACTCACA
+chr4 153204409 153204420 -V_AP1_Q6 9.43393e-06 - GGTGACTCACA
+chr4 153204409 153204420 -V_AP1_Q4 4.84535e-06 - GGTGACTCACA
+chr4 153204789 153204797 +V_CACD_01 9.89755e-06 + CCACACCC
+chr4 153204841 153204853 +V_LRH1_Q5 2.30644e-06 + CAGGCCTTGAAC
+chr4 153205361 153205372 -V_PAX4_02 9.8103e-06 - GAAAAATTTCC
+chr4 153205383 153205402 -V_PU1_Q4 7.89869e-06 - AGTTCCTGCTTCCCCTTGT
+chr4 153205432 153205442 -V_CETS1P54_01 6.77271e-06 - ACCGGATGTC
+chr4 153205498 153205508 -V_SP1_Q2_01 5.07461e-06 - CCCCTCCCCG
+chr4 153205499 153205507 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr4 153205499 153205508 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr4 153205499 153205509 +V_SP1_Q6_01 8.48538e-06 + GGGGAGGGGG
+chr4 153205499 153205513 -V_KROX_Q6 5.9833e-06 - CCCCCCCCCTCCCC
+chr4 153205501 153205512 -V_SP1SP3_Q4 2.62733e-07 - CCCCCCCCTCC
+chr4 153205502 153205513 -V_SP1SP3_Q4 2.26051e-06 - CCCCCCCCCTC
+chr4 153205502 153205517 +V_VDR_Q3 7.16583e-06 + GAGGGGGGGGGGAGA
+chr4 153205503 153205514 -V_SP1SP3_Q4 2.8432e-06 - CCCCCCCCCCT
+chr4 153205504 153205513 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr4 153205504 153205517 +V_MAZR_01 6.96932e-07 + GGGGGGGGGGAGA
+chr4 153205504 153205518 -V_KROX_Q6 7.56123e-06 - CTCTCCCCCCCCCC
+chr4 153205505 153205514 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr4 153205689 153205698 +V_SMAD3_Q6 4.03003e-06 + TGTCTGTCT
+chr4 153206386 153206409 -V_COUPTF_Q6 1.60088e-06 - TCATGTGACCTTTGCCCTGTGGA
+chr4 153206387 153206404 +V_PPARG_03 2.26255e-06 + CCACAGGGCAAAGGTCA
+chr4 153206387 153206408 +V_PPARG_01 2.81055e-07 + CCACAGGGCAAAGGTCACATG
+chr4 153206390 153206404 -V_COUP_01 2.67709e-07 - TGACCTTTGCCCTG
+chr4 153206391 153206404 +V_RXRLXRB_01 3.39229e-07 + AGGGCAAAGGTCA
+chr4 153206391 153206404 +V_DR1_Q3 9.73878e-08 + AGGGCAAAGGTCA
+chr4 153206391 153206404 -V_PPAR_DR1_Q2 9.96554e-08 - TGACCTTTGCCCT
+chr4 153206391 153206404 -V_HNF4_DR1_Q3 8.69767e-08 - TGACCTTTGCCCT
+chr4 153206391 153206404 -V_COUP_DR1_Q6 3.28001e-07 - TGACCTTTGCCCT
+chr4 153206391 153206405 +V_HNF4_Q6_01 3.33633e-08 + AGGGCAAAGGTCAC
+chr4 153206392 153206405 -V_HNF4ALPHA_Q6 4.2278e-07 - GTGACCTTTGCCC
+chr4 153206457 153206465 +V_CACD_01 9.89755e-06 + CCACACCC
+chr4 153206491 153206505 -V_CEBPB_01 4.06038e-06 - GGGTGGGGAAATCT
+chr4 153206494 153206507 -V_MAZR_01 4.53707e-06 - GGGGGTGGGGAAA
+chr4 153206497 153206507 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr4 153206497 153206516 -V_PPARA_02 7.17762e-06 - TGAGGGGGTGGGGGTGGGG
+chr4 153206498 153206507 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr4 153206498 153206509 -V_EGR_Q6 8.04446e-06 - GTGGGGGTGGG
+chr4 153206498 153206512 +V_KROX_Q6 2.21131e-07 + CCCACCCCCACCCC
+chr4 153206500 153206512 +V_PAX4_03 2.40392e-07 + CACCCCCACCCC
+chr4 153206501 153206514 -V_SP1_Q6 7.54104e-06 - AGGGGGTGGGGGT
+chr4 153206502 153206513 +V_SP1SP3_Q4 8.91927e-06 + CCCCCACCCCC
+chr4 153206503 153206513 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr4 153206504 153206513 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr4 153456258 153456273 -V_OCT4_01 2.28618e-06 - CTTTGTAATGGAGAT
+chr4 153456273 153456286 +V_AP2_Q6_01 2.71709e-06 + CCTTCCCCAGGCC
+chr4 153456323 153456341 -V_AHR_01 8.93808e-06 - GCCTGGGCTAGCCTGAGA
+chr4 153456368 153456392 -V_STAT5A_02 7.28722e-07 - TTCCCAGAGCTCAGGTTCCTTGAA
+chr4 154056645 154056658 -V_HNF4ALPHA_Q6 6.68176e-06 - CTGAGCTTTGCAT
+chr4 154689452 154689463 +V_LEF1TCF1_Q4 1.56074e-06 + CCTTTGATCTC
+chr4 154698764 154698779 -V_SMAD4_Q6 2.13404e-06 - GTGAGCCAGACTGCT
+chr4 154698772 154698786 +V_STRA13_01 6.21204e-06 + GGCTCACGTGAGAC
+chr4 154698772 154698786 -V_STRA13_01 3.61044e-07 - GTCTCACGTGAGCC
+chr4 154698826 154698841 +V_SREBP_Q6 2.612e-06 + GCTCTCACCTCAGGG
+chr4 154698826 154698841 +V_SREBP1_Q5 4.09665e-06 + GCTCTCACCTCAGGG
+chr4 155451061 155451075 -V_FOXO4_02 9.64244e-06 - ACTTTGTTTTCCTG
+chr4 155451085 155451105 +V_FOXP1_01 6.71406e-06 + AGATTTTTGTTTTTGTTTGT
+chr4 155451090 155451099 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr4 155451168 155451183 +V_ETS1_B 8.48353e-06 + CCAGGAAGTGGCTCT
+chr4 155451169 155451181 -V_ETS_Q4 1.02417e-07 - AGCCACTTCCTG
+chr4 155454709 155454721 +V_GATA4_Q3 3.87593e-06 + AGATAGCAGTGA
+chr5 5588753 5588762 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr5 5588807 5588816 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr5 5588819 5588833 -V_KROX_Q6 2.61668e-06 - CCCTCCCCCACTCC
+chr5 5588824 5588833 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr5 5588824 5588834 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr5 5588824 5588835 -V_SP1SP3_Q4 2.8432e-06 - CCCCCTCCCCC
+chr5 5588825 5588833 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr5 5588825 5588834 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr5 5588825 5588835 +V_SP1_Q6_01 8.48538e-06 + GGGGAGGGGG
+chr5 5588825 5588839 -V_KROX_Q6 3.42108e-06 - GCCTCCCCCTCCCC
+chr5 5588875 5588893 +V_HNF3_Q6_01 3.21517e-06 + CAGTTTGTTTACTTTTGC
+chr5 5588876 5588890 +V_FOXO1_02 3.23597e-06 + AGTTTGTTTACTTT
+chr5 5588876 5588890 +V_FOXO4_02 2.83075e-06 + AGTTTGTTTACTTT
+chr5 5588876 5588890 +V_FOXO3_01 3.19881e-06 + AGTTTGTTTACTTT
+chr5 5588877 5588890 +V_FOX_Q2 2.40118e-06 + GTTTGTTTACTTT
+chr5 5824537 5824551 -V_KROX_Q6 2.32952e-06 - CCCACCCCCACCCA
+chr5 5824540 5824551 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr5 5824542 5824551 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr5 5824542 5824552 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr5 5824542 5824555 +V_MAZR_01 5.68389e-06 + GGGGGTGGGGACT
+chr5 5824543 5824555 -V_PAX4_03 3.30124e-06 - AGTCCCCACCCC
+chr5 5824616 5824630 -V_FXR_Q3 1.75925e-06 - CAAGGGCAATAAAC
+chr5 5824673 5824687 +V_NFY_C 6.7165e-06 + TCTAATTGGCTACC
+chr5 8242162 8242177 -V_STAT5A_01 6.37009e-06 - TGTTTCTTGGAAACT
+chr5 8242162 8242177 -V_STAT5B_01 2.49995e-06 - TGTTTCTTGGAAACT
+chr5 8242163 8242176 +V_STAT1STAT1_Q3 3.202e-06 + GTTTCCAAGAAAC
+chr5 12944523 12944534 -V_EBF_Q6 4.83306e-06 - CTCCCTTGAGA
+chr5 12944564 12944580 +V_DMRT2_01 6.20805e-06 + AATAAGGATACAATGT
+chr5 12944568 12944583 +V_DMRT1_01 4.00094e-07 + AGGATACAATGTTGC
+chr5 12944570 12944585 -V_DMRT1_01 2.55408e-06 - AGGCAACATTGTATC
+chr5 13470682 13470700 -V_NF1_Q6 8.31384e-06 - TATTGGCCCAAGGCCTAG
+chr5 13470689 13470708 +V_PPARA_02 2.80256e-06 + TTGGGCCAATAGGGTGGGG
+chr5 13470699 13470711 -V_PAX4_03 9.67001e-06 - GAGCCCCACCCT
+chr5 21332262 21332275 +V_IRF1_01 2.92306e-06 + CAAAAGGGAAACC
+chr5 21332262 21332275 +V_IRF2_01 8.31512e-06 + CAAAAGGGAAACC
+chr5 21332263 21332278 -V_IRF_Q6 9.24077e-06 - TCTGGTTTCCCTTTT
+chr5 21332301 21332324 +V_OCT1_04 2.04591e-06 + GCATTAAAATGCAAATTTATTTG
+chr5 21332302 21332317 +V_OCT4_01 8.06422e-07 + CATTAAAATGCAAAT
+chr5 21332392 21332404 -V_IK2_01 6.4166e-06 - ATTTGGGAAAGC
+chr5 24155255 24155265 +V_IK_Q5 6.81053e-06 + TGTGGGAGGG
+chr5 24155357 24155368 +V_PITX2_Q2 1.22695e-06 + TTTAATCCCAG
+chr5 27018684 27018705 +V_DR3_Q4 8.5209e-06 + CATCGACCCAGTGCCCCTTCT
+chr5 27018732 27018751 +V_SEF1_C 5.09832e-06 + AGCACGCACGCCTGCTGTT
+chr5 27018754 27018766 +V_LMO2COM_01 6.87463e-07 + CCCCAGGTGGTG
+chr5 27018825 27018840 +V_HMGIY_Q3 6.87308e-06 + ACTGGAATTTCCCAT
+chr5 27018826 27018842 -V_NFKB_Q6_01 2.79669e-06 - GGATGGGAAATTCCAG
+chr5 27018827 27018837 +V_NFKAPPAB65_01 5.16177e-06 + TGGAATTTCC
+chr5 27018828 27018838 -V_NFKAPPAB_01 7.14234e-06 - GGGAAATTCC
+chr5 27355314 27355329 +V_OCT4_01 6.46423e-06 + TATTCTTATTTAAAT
+chr5 27355314 27355332 +V_PIT1_Q6 9.55797e-06 + TATTCTTATTTAAATTCA
+chr5 28140956 28140979 +V_OCT1_04 9.79816e-06 + TCAGGGAAATGCAAATCAAAACC
+chr5 28140960 28140975 +V_OCT1_Q6 2.42215e-06 + GGAAATGCAAATCAA
+chr5 28140962 28140975 -V_OCT_C 9.70046e-06 - TTGATTTGCATTT
+chr5 28140963 28140973 +V_OCT1_B 8.43065e-06 + AATGCAAATC
+chr5 28140963 28140974 -V_OCT1_Q5_01 7.39888e-07 - TGATTTGCATT
+chr5 28140963 28140974 -V_OCT_Q6 2.01087e-06 - TGATTTGCATT
+chr5 28141015 28141026 -V_LEF1TCF1_Q4 7.79522e-06 - ACTTTGATCTT
+chr5 28506788 28506805 -V_DR4_Q2 2.19408e-07 - TAACCTTCAGTGACCTC
+chr5 28506920 28506928 +V_STAT3_02 9.89755e-06 + GGCTTCCC
+chr5 32919101 32919116 +V_DMRT5_01 6.17101e-06 + GTTTGCTACTTTGGC
+chr5 32919120 32919135 +V_OCT4_01 9.05006e-06 + TATTCTTATGTTAAC
+chr5 32919176 32919194 -V_CDX_Q5 2.48189e-06 - TACAATTCAAGACATAAA
+chr5 34047951 34047966 -V_SMAD4_Q6 1.44834e-06 - GCCAGCCAGCCAGCT
+chr5 34782748 34782761 +V_CEBP_01 1.78211e-06 + TGTTTGGTAAATT
+chr5 34782758 34782770 -V_ELF1_Q6 6.85423e-06 - ACTAGAGGAAAT
+chr5 36194305 36194327 -V_MEF2_02 7.76526e-06 - TCATATGCTAAATATAGGATCT
+chr5 36194315 36194330 -V_OCT4_01 8.48593e-06 - TTTTCATATGCTAAA
+chr5 36727864 36727873 +V_T3R_Q6 8.74404e-06 + CCTGTCCTC
+chr5 36727883 36727896 -V_MAZR_01 7.66218e-06 - GGGGGTGGGGTAA
+chr5 36727886 36727896 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr5 36727887 36727896 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr5 36727904 36727917 -V_IRF1_01 9.57197e-06 - GAAACCTGAAACC
+chr5 36728007 36728017 -V_ESE1_Q3 5.33438e-06 - AGTTTCCTGA
+chr5 37294210 37294226 -V_GRE_C 2.05932e-06 - TGCACCAGGTGTCCTC
+chr5 37294224 37294248 +V_BRACH_01 8.73774e-06 + CATTGAACACCTAGGTGCCATTAG
+chr5 37294224 37294248 -V_BRACH_01 1.76041e-08 - CTAATGGCACCTAGGTGTTCAATG
+chr5 37294252 37294267 +V_OCT4_01 1.40241e-06 + CTTTGTAATGCAGAG
+chr5 37294259 37294272 +V_NRF2_Q4 8.37215e-07 + ATGCAGAGTCAGG
+chr5 37294260 37294271 +V_MAF_Q6_01 4.72643e-06 + TGCAGAGTCAG
+chr5 37294332 37294343 -V_YY1_Q6_02 4.18118e-06 - GCTGCCATTTT
+chr5 37322556 37322565 -V_FOXM1_01 8.06007e-06 - AGATGGAGT
+chr5 37322657 37322675 -V_GCNF_01 2.71814e-06 - CCCCAGGTCAAGGCCAAG
+chr5 37322661 37322672 -V_ER_Q6_02 9.65928e-06 - CAGGTCAAGGC
+chr5 37389477 37389490 -V_AP2_Q6_01 8.86342e-06 - CCAGCCCCAGGCT
+chr5 37389488 37389498 +V_IK_Q5 4.33614e-06 + GGTGGGAGGG
+chr5 37389489 37389499 -V_SP1_Q2_01 9.56538e-06 - CCCCTCCCAC
+chr5 37389498 37389513 +V_AR_01 1.58003e-06 + GGAACGCCTTGTTCT
+chr5 37389498 37389513 -V_AR_01 7.84655e-06 - AGAACAAGGCGTTCC
+chr5 37389581 37389593 +V_CEBP_Q2_01 7.71281e-07 + ATTGCCCAATTC
+chr5 37389581 37389593 -V_CEBP_Q3 5.50595e-06 - GAATTGGGCAAT
+chr5 38896849 38896864 -V_VDR_Q3 9.46585e-06 - GGGGGAGGGAAGAGA
+chr5 38896854 38896863 +V_CKROX_Q2 8.90515e-06 + TCCCTCCCC
+chr5 38896855 38896863 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr5 38896855 38896864 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr5 53751349 53751363 +V_MTF1_Q4 2.04812e-06 + TCTGCACTCTGGCC
+chr5 53751367 53751386 +V_PPARA_02 8.06812e-06 + CAGGGTCACAGGAGTCTCG
+chr5 53751379 53751395 -V_AP2_Q3 8.07615e-06 - GTCCCCAGGCGAGACT
+chr5 53751384 53751397 -V_AP2_Q6_01 1.66582e-06 - CAGTCCCCAGGCG
+chr5 53896801 53896816 -V_ETS1_B 6.913e-07 - GGAGGAAGTACGTGC
+chr5 53896803 53896817 -V_ETS2_B 1.99939e-06 - TGGAGGAAGTACGT
+chr5 65073810 65073827 -V_NF1_Q6_01 3.85394e-07 - TTGGACAGCTGCCAAAC
+chr5 65073810 65073828 +V_NF1_Q6 4.59425e-06 + GTTTGGCAGCTGTCCAAA
+chr5 65073839 65073850 +V_MYB_Q3 9.34682e-06 + AGGGGCAGTTC
+chr5 65073863 65073877 +V_GATA1_03 6.4708e-06 + ATCAAGATTAGGGC
+chr5 65073876 65073888 +V_LRH1_Q5 4.03654e-06 + CCGGCCTTGGAG
+chr5 68024750 68024765 +V_OCT4_01 1.25077e-07 + CATTGTCATGCTAAT
+chr5 68024751 68024766 +V_OCT4_02 1.41735e-09 + ATTGTCATGCTAATG
+chr5 68024756 68024771 -V_IPF1_Q4_01 3.39872e-06 - TCTGTCATTAGCATG
+chr5 69880352 69880375 -V_COUPTF_Q6 4.88553e-07 - TTTTATGACCTTAGCCCCTTGAC
+chr5 69880353 69880374 +V_PPARG_01 4.37601e-06 + TCAAGGGGCTAAGGTCATAAA
+chr5 69880356 69880370 -V_COUP_01 1.18543e-06 - TGACCTTAGCCCCT
+chr5 69880357 69880370 +V_DR1_Q3 3.99966e-06 + GGGGCTAAGGTCA
+chr5 69880357 69880370 -V_PPAR_DR1_Q2 3.33435e-06 - TGACCTTAGCCCC
+chr5 69880357 69880370 -V_HNF4_DR1_Q3 6.54496e-07 - TGACCTTAGCCCC
+chr5 69880357 69880370 -V_COUP_DR1_Q6 5.72793e-06 - TGACCTTAGCCCC
+chr5 69880357 69880371 +V_HNF4_Q6_01 4.332e-06 + GGGGCTAAGGTCAT
+chr5 69880358 69880371 -V_HNF4ALPHA_Q6 8.75211e-06 - ATGACCTTAGCCC
+chr5 69880365 69880379 -V_CDX2_Q5 9.18428e-06 - AGCATTTTATGACC
+chr5 69880602 69880611 -V_HNF4_Q6 7.33929e-06 - AAGGTCCAA
+chr5 69880615 69880628 -V_HNF3_Q6 9.93672e-06 - TCAAACAAACAGA
+chr5 69880629 69880638 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr5 69880833 69880849 +V_NFKB_Q6_01 2.21649e-06 + AGATGGGAAAATCCCA
+chr5 69880836 69880850 -V_NFKB_Q6 8.01393e-06 - TTGGGATTTTCCCA
+chr5 69880837 69880849 -V_NFKB_C 3.77632e-06 - TGGGATTTTCCC
+chr5 69880838 69880848 -V_NFKAPPAB65_01 9.69629e-06 - GGGATTTTCC
+chr5 69880838 69880848 -V_NFKAPPAB_01 9.4096e-06 - GGGATTTTCC
+chr5 73140044 73140054 -V_IK_Q5 4.8392e-06 - GCTGGGAGGC
+chr5 73759261 73759276 -V_OCT4_01 5.63049e-06 - CATTCTTATTCAAAC
+chr5 73886713 73886727 +V_DMRT7_01 6.91627e-06 + TGGTTACATTGTAT
+chr5 73886713 73886728 +V_DMRT1_01 4.26013e-07 + TGGTTACATTGTATC
+chr5 73886715 73886730 -V_DMRT1_01 1.44151e-06 - CTGATACAATGTAAC
+chr5 73886756 73886770 +V_DMRT7_01 6.91627e-06 + TGGTTACATTGTAT
+chr5 73886756 73886771 +V_DMRT1_01 4.26013e-07 + TGGTTACATTGTATC
+chr5 73886758 73886773 -V_DMRT1_01 1.44151e-06 - CTGATACAATGTAAC
+chr5 74083374 74083388 +V_MTF1_Q4 9.1469e-06 + TCTGCCCACGGCTC
+chr5 74083409 74083424 +V_STAT5A_01 5.96415e-06 + GAATTCCCAGAAACT
+chr5 74083409 74083424 +V_STAT5B_01 3.55219e-06 + GAATTCCCAGAAACT
+chr5 74083409 74083424 -V_STAT5A_01 5.27854e-06 - AGTTTCTGGGAATTC
+chr5 74083409 74083424 -V_STAT5B_01 3.55219e-06 - AGTTTCTGGGAATTC
+chr5 74083434 74083449 -V_OCT4_01 5.63049e-06 - CATTCTCATTCAAAC
+chr5 74196169 74196179 +V_IK_Q5 4.8392e-06 + GCTGGGAGGC
+chr5 74196284 74196299 -V_OCT4_01 7.41924e-06 - CATTTTCATTCAAAT
+chr5 74196314 74196327 +V_OCT_C 7.89827e-06 + CATATTTGCATGC
+chr5 75356549 75356557 +V_CACD_01 9.89755e-06 + CCACACCC
+chr5 75356595 75356607 +V_GATA4_Q3 6.27162e-06 + TGATAAAAGGGA
+chr5 75481305 75481318 -V_OCT_C 3.56696e-06 - GTCATTTGCATAG
+chr5 75481306 75481316 +V_OCT1_B 4.33582e-06 + TATGCAAATG
+chr5 75481306 75481317 -V_OCT1_Q5_01 1.56035e-06 - TCATTTGCATA
+chr5 75481306 75481317 -V_OCT_Q6 7.39888e-07 - TCATTTGCATA
+chr5 75481384 75481399 -V_OCT4_01 1.18992e-06 - CTTTGTCATGCAGAG
+chr5 75997636 75997666 -V_HOX13_01 9.87496e-06 - GGCCAGCCCCTGCAGTAGTGGTTGGCTCCT
+chr5 75997716 75997732 +V_DMRT2_01 7.03073e-07 + TTAATTGCTACATTGT
+chr5 75997717 75997730 -V_DMRT4_01 4.89777e-07 - AATGTAGCAATTA
+chr5 75997717 75997732 +V_DMRT3_01 2.50568e-06 + TAATTGCTACATTGT
+chr5 75997720 75997735 +V_DMRT1_01 6.06059e-07 + TTGCTACATTGTAAC
+chr5 75997722 75997737 -V_DMRT1_01 1.2457e-07 - TTGTTACAATGTAGC
+chr5 75997723 75997737 -V_DMRT7_01 2.92067e-07 - TTGTTACAATGTAG
+chr5 75997724 75997739 -V_DMRT5_01 2.54381e-06 - GTTTGTTACAATGTA
+chr5 75997725 75997740 -V_DMRT3_01 1.09116e-06 - TGTTTGTTACAATGT
+chr5 75997725 75997741 -V_DMRT2_01 5.03993e-06 - GTGTTTGTTACAATGT
+chr5 80255751 80255774 -V_COUPTF_Q6 5.82975e-06 - CCTACTGATCCTTGACCACCTAC
+chr5 80255757 80255770 -V_HNF4ALPHA_Q6 5.73189e-06 - CTGATCCTTGACC
+chr5 80255787 80255797 -V_NUR77_Q5 2.98426e-06 - CTGACCTTGC
+chr5 80255820 80255829 +V_LYF1_01 7.33929e-06 + TTTGGGAGG
+chr5 80255820 80255830 +V_IK_Q5 8.83478e-06 + TTTGGGAGGT
+chr5 89108601 89108613 +V_PAX4_03 2.40392e-07 + GACCCCCACCCC
+chr5 89108602 89108617 +V_SREBP_Q6 8.95186e-06 + ACCCCCACCCCACCC
+chr5 89108602 89108617 +V_SREBP1_Q5 6.9181e-06 + ACCCCCACCCCACCC
+chr5 89108630 89108645 -V_OCT4_01 2.28618e-06 - CTTTCAAATGCAAAG
+chr5 89108686 89108695 -V_RFX_Q6 3.30926e-06 - CTGTTGCCA
+chr5 91604962 91604975 +V_STAT1STAT1_Q3 7.34142e-06 + CTTTACAGGAAAA
+chr5 91605044 91605059 +V_DMRT5_01 9.57435e-06 + TTTTGTTTCTGTTTT
+chr5 91948687 91948701 -V_CEBPB_01 8.00001e-06 - GGATTGAGCAATGC
+chr5 91948689 91948701 +V_CEBP_Q2_01 5.69135e-06 + ATTGCTCAATCC
+chr5 91948699 91948708 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr5 91948699 91948709 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr5 91948700 91948708 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr5 91948700 91948709 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr5 91948707 91948721 -V_E2A_Q2 4.92457e-07 - CCACCTGGCTCTGG
+chr5 91967851 91967865 -V_CREB_Q2_01 1.34097e-06 - GTTGACGTCATTGG
+chr5 91967852 91967863 +V_CREB_Q4_01 5.77805e-06 + CAATGACGTCA
+chr5 92036832 92036841 -V_SMAD3_Q6 4.03003e-06 - TGTCTGTCT
+chr5 92036924 92036935 -V_E12_Q6 8.12765e-06 - AACAGGTGGCC
+chr5 92036926 92036940 +V_E2A_Q2 6.24606e-06 + CCACCTGTTCCTTT
+chr5 92039051 92039069 +V_PAX8_B 6.85814e-06 + GCACACTTGCATGAGCAC
+chr5 92917585 92917603 -V_NF1_Q6 9.30221e-06 - CCTTGGCAACAGTCCCTT
+chr5 92917586 92917603 +V_NF1_Q6_01 5.38936e-06 + AGGGACTGTTGCCAAGG
+chr5 92917591 92917600 +V_RFX_Q6 3.30926e-06 + CTGTTGCCA
+chr5 93331139 93331162 -V_COUPTF_Q6 5.82975e-06 - CCCTGTGACCTTTGGATCAGGCA
+chr5 93555757 93555772 +V_OCT4_02 9.71581e-06 + ATTGTTATTCTGATA
+chr5 93555823 93555842 +V_OCT1_01 3.49896e-06 + AGCTGTATGCTAATTCTGG
+chr5 93555826 93555838 +V_OCT1_07 2.03138e-07 + TGTATGCTAATT
+chr5 97277259 97277277 -V_MYOD_Q6_01 4.51565e-06 - CAGAGGCAGGTGTCCTTG
+chr5 97277262 97277273 -V_E12_Q6 1.97832e-06 - GGCAGGTGTCC
+chr5 97277264 97277278 +V_E2A_Q2 2.05728e-06 + ACACCTGCCTCTGC
+chr5 97277265 97277273 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr5 97632785 97632796 -V_CP2_01 7.66122e-06 - GCTCAAGCCAG
+chr5 97632806 97632821 +V_TAXCREB_02 3.88998e-06 + ATGAAGCCCACCCCC
+chr5 97632812 97632821 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr5 97632865 97632879 -V_GATA1_03 4.82813e-07 - AGGGAGATTATGGC
+chr5 98268421 98268435 +V_KROX_Q6 8.32366e-06 + CCCGCCTACTCGCC
+chr5 98268437 98268448 -V_NFY_Q6 4.23487e-06 - GAACCAATCAC
+chr5 98268465 98268482 -V_DR4_Q2 7.60906e-07 - TGACCTCTTGTGAACCA
+chr5 98268466 98268482 -V_LXR_DR4_Q3 1.07931e-06 - TGACCTCTTGTGAACC
+chr5 98867842 98867856 -V_E2A_Q2 1.73147e-06 - GCACCTGTCTCTTG
+chr5 98867843 98867861 +V_MYOD_Q6_01 4.51565e-06 + AAGAGACAGGTGCTGTAC
+chr5 98867846 98867858 +V_MYOD_01 4.12991e-06 + AGACAGGTGCTG
+chr5 98867847 98867857 -V_MYOD_Q6 1.49213e-06 - AGCACCTGTC
+chr5 98867847 98867858 +V_E12_Q6 9.04659e-06 + GACAGGTGCTG
+chr5 98867886 98867896 +V_GATA1_01 4.96582e-06 + CCTGATGGGG
+chr5 98867891 98867904 +V_P50P50_Q3 8.8244e-06 + TGGGGACTTTCAC
+chr5 98867892 98867904 +V_NFKB_C 7.79971e-06 + GGGGACTTTCAC
+chr5 98867893 98867908 +V_IRF_Q6 4.18064e-06 + GGGACTTTCACTTTT
+chr5 98867896 98867909 -V_IRF1_01 3.77173e-06 - TAAAAGTGAAAGT
+chr5 98867896 98867909 -V_IRF2_01 5.64882e-06 - TAAAAGTGAAAGT
+chr5 98867897 98867908 -V_IRF_Q6_01 9.77502e-07 - AAAAGTGAAAG
+chr5 98867970 98867979 +V_ZIC2_01 7.66616e-06 + AGGGTGGTC
+chr5 99350815 99350830 +V_OCT4_01 1.28133e-06 + CTTTGATATGGAAAT
+chr5 100167262 100167282 +V_FOXP1_01 2.46882e-06 + TTTGTTGTATTTTTTATTGT
+chr5 101967236 101967247 -V_FLI1_Q6 9.02891e-06 - CAGGAAGCCAC
+chr5 103951579 103951602 +V_COUPTF_Q6 2.38001e-07 + GAGGCTGACCTTTGACCTTCACC
+chr5 103951580 103951601 -V_PPARG_01 2.29603e-08 - GTGAAGGTCAAAGGTCAGCCT
+chr5 103951583 103951593 +V_NUR77_Q5 8.43564e-06 + CTGACCTTTG
+chr5 103951583 103951596 +V_HNF4ALPHA_Q6 1.75932e-07 + CTGACCTTTGACC
+chr5 103951583 103951597 -V_HNF4_Q6_01 1.75594e-07 - AGGTCAAAGGTCAG
+chr5 103951584 103951597 +V_PPAR_DR1_Q2 4.89408e-08 + TGACCTTTGACCT
+chr5 103951584 103951597 +V_HNF4_DR1_Q3 6.16195e-08 + TGACCTTTGACCT
+chr5 103951584 103951597 +V_COUP_DR1_Q6 4.89408e-08 + TGACCTTTGACCT
+chr5 103951584 103951597 -V_RXRLXRB_01 1.54401e-08 - AGGTCAAAGGTCA
+chr5 103951584 103951597 -V_DR1_Q3 2.81187e-08 - AGGTCAAAGGTCA
+chr5 103951584 103951598 +V_COUP_01 4.69218e-08 + TGACCTTTGACCTT
+chr5 103951584 103951601 -V_PPARG_03 2.34412e-07 - GTGAAGGTCAAAGGTCA
+chr5 103951589 103951603 -V_ERR1_Q2 8.28315e-06 - GGGTGAAGGTCAAA
+chr5 103951595 103951614 -V_PPARA_02 9.54888e-07 - TGTGGTCAAGTGGGTGAAG
+chr5 103951598 103951608 -V_HMX1_01 2.98426e-06 - CAAGTGGGTG
+chr5 104140648 104140663 +V_DMRT1_01 5.35835e-06 + CTGCTGCATTGTAGC
+chr5 104140664 104140673 +V_LYF1_01 7.33929e-06 + TTTGGGAGG
+chr5 104167726 104167735 +V_AP2ALPHA_01 6.01835e-06 + GCCCCGGGC
+chr5 104167726 104167735 +V_AP2GAMMA_01 6.01835e-06 + GCCCCGGGC
+chr5 104167726 104167735 -V_AP2ALPHA_01 3.00918e-06 - GCCCGGGGC
+chr5 104167726 104167735 -V_AP2GAMMA_01 3.00918e-06 - GCCCGGGGC
+chr5 106208453 106208466 -V_AP1_01 8.76324e-06 - TGGTGACTCAGCC
+chr5 106208454 106208465 -V_AP1FJ_Q2 1.36855e-06 - GGTGACTCAGC
+chr5 106208454 106208465 -V_AP1_Q6 5.77866e-07 - GGTGACTCAGC
+chr5 106208454 106208465 -V_AP1_Q4 2.788e-06 - GGTGACTCAGC
+chr5 106208529 106208542 -V_HNF4ALPHA_Q6 9.11603e-06 - CAGAACCTTGACT
+chr5 106208577 106208588 -V_HELIOSA_02 5.08394e-06 - TTAAGGAAAAT
+chr5 107539183 107539198 -V_OCT4_01 2.83977e-06 - CATTGTTATGTTGAT
+chr5 109525588 109525604 +V_NFKB_Q6_01 6.24418e-07 + TCCAGGGGAATTCCCA
+chr5 109525591 109525604 +V_P50P50_Q3 2.78188e-06 + AGGGGAATTCCCA
+chr5 109525591 109525605 +V_NFKB_Q6 2.23293e-06 + AGGGGAATTCCCAT
+chr5 109525591 109525605 -V_NFKB_Q6 3.25815e-06 - ATGGGAATTCCCCT
+chr5 109525592 109525602 +V_CREL_01 5.43478e-06 + GGGGAATTCC
+chr5 109525592 109525604 +V_NFKB_C 1.08442e-06 + GGGGAATTCCCA
+chr5 109525592 109525604 -V_NFKB_C 7.38002e-06 - TGGGAATTCCCC
+chr5 109525592 109525605 -V_P50P50_Q3 2.3569e-06 - ATGGGAATTCCCC
+chr5 109525592 109525608 -V_NFKB_Q6_01 1.31686e-06 - TGGATGGGAATTCCCC
+chr5 109525593 109525603 +V_NFKAPPAB65_01 7.87917e-06 + GGGAATTCCC
+chr5 109525593 109525603 +V_NFKAPPAB_01 7.46065e-07 + GGGAATTCCC
+chr5 109525593 109525603 -V_NFKAPPAB65_01 7.87917e-06 - GGGAATTCCC
+chr5 109525593 109525603 -V_NFKAPPAB_01 7.46065e-07 - GGGAATTCCC
+chr5 109525747 109525761 -V_BLIMP1_Q6 4.33883e-06 - AGACAGTGAAACTA
+chr5 110845025 110845038 +V_SP1_Q6 8.37935e-07 + AGGGGGAGGGGCT
+chr5 110845026 110845035 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr5 110845026 110845036 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr5 110845026 110845039 +V_MAZR_01 4.80613e-06 + GGGGGAGGGGCTG
+chr5 110845027 110845035 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr5 110845027 110845036 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr5 110845027 110845037 +V_SP1_Q6_01 2.74385e-06 + GGGGAGGGGC
+chr5 110866784 110866801 +V_HSF1_Q6 7.56785e-06 + CTTCCAGAGGGTGCTCC
+chr5 110866837 110866856 -V_OCT1_01 2.51462e-06 - TTTCTTATGCAAATGTTGT
+chr5 110866840 110866851 +V_OCT_Q6 7.02042e-06 + ACATTTGCATA
+chr5 110866841 110866851 -V_OCT1_B 4.33582e-06 - TATGCAAATG
+chr5 110866841 110866856 -V_OCT4_02 1.18248e-06 - TTTCTTATGCAAATG
+chr5 110866842 110866857 -V_OCT4_01 6.45919e-08 - TTTTCTTATGCAAAT
+chr5 110900462 110900471 +V_CACBINDINGPROTEIN_Q6 6.29506e-06 + GAGGCTGGG
+chr5 111599596 111599611 +V_OCT4_01 8.76645e-07 + CATTGTTATGCAGAG
+chr5 111599714 111599726 +V_TTF1_Q6 2.60851e-06 + CTCTCAAGTGCC
+chr5 111867545 111867557 -V_PAX4_03 6.56043e-06 - CAGCTCCACCCC
+chr5 111867563 111867573 -V_SP1_Q2_01 9.56538e-06 - CCCCACCCCT
+chr5 111867564 111867576 -V_PAX4_03 1.24639e-06 - TACCCCCACCCC
+chr5 113503301 113503316 +V_DMRT1_01 9.92712e-06 + ATGATACAATGATGC
+chr5 113503356 113503371 +V_SMAD4_Q6 4.23765e-06 + GAAAGGCAGCCACCT
+chr5 113503395 113503411 +V_DMRT2_01 1.29957e-06 + TAGTGTGATACAATGT
+chr5 113503399 113503414 +V_DMRT1_01 1.17062e-06 + GTGATACAATGTTGC
+chr5 113503401 113503416 -V_DMRT1_01 6.80276e-06 - TCGCAACATTGTATC
+chr5 113551458 113551480 +V_MEF2_02 9.54821e-06 + CCTCAGGCAATAAATAGCTTTC
+chr5 113551480 113551495 +V_DMRT1_01 9.40379e-07 + CAGATACATTGTATC
+chr5 113551482 113551497 -V_DMRT1_01 6.57878e-07 - ATGATACAATGTATC
+chr5 113551485 113551501 -V_DMRT2_01 7.90403e-06 - GATGATGATACAATGT
+chr5 113551575 113551586 -V_EBF_Q6 8.6046e-06 - TTCCCCAGGGT
+chr5 113619556 113619565 -V_CACBINDINGPROTEIN_Q6 6.29506e-06 - GAGGCTGGG
+chr5 113619615 113619625 -V_NCX_01 8.69798e-06 - CCGTAAGTGG
+chr5 113774912 113774926 +V_STAT3STAT3_Q3 1.57156e-06 + TTGCCGGGGACTCC
+chr5 113774975 113774989 -V_NFY_C 3.68961e-06 - TTTGATTGGTAAAT
+chr5 113775050 113775060 -V_POU3F2_02 1.99833e-06 - TTATGTTAAT
+chr5 113871326 113871336 +V_TAL1_Q6 4.87508e-06 + GCCAGCTGCC
+chr5 113871327 113871341 +V_E2A_Q2 4.74359e-06 + CCAGCTGCCACTGC
+chr5 113871365 113871374 -V_CACBINDINGPROTEIN_Q6 6.29506e-06 - GAGGCTGGG
+chr5 113991418 113991428 +V_TAL1_Q6 7.72591e-06 + TCCAGCTGGC
+chr5 113991430 113991445 +V_IRF_Q6 8.68896e-07 + TTCACTTTCAATTCC
+chr5 114087189 114087210 -V_DR3_Q4 9.65243e-06 - AGAGGACGTTCTTCACCGCTT
+chr5 114429547 114429562 +V_VDRRXR_01 4.06631e-06 + AGGTCATCAGGCTCA
+chr5 114429613 114429628 -V_DMRT1_01 1.27344e-06 - TGGATACTTTGTTTC
+chr5 114429627 114429642 +V_VDRRXR_01 4.06631e-06 + AGGTCATCAGGCTCA
+chr5 114456341 114456351 +V_TAL1_Q6 4.87508e-06 + TCCAGCTGGT
+chr5 114456397 114456407 -V_IK_Q5 6.81053e-06 - TGTGGGAGGG
+chr5 114456412 114456427 +V_DMRT3_01 3.75586e-06 + GCTTTGATACAATGT
+chr5 114456415 114456429 +V_DMRT7_01 1.54252e-06 + TTGATACAATGTTT
+chr5 114456415 114456430 +V_DMRT1_01 1.21515e-08 + TTGATACAATGTTTC
+chr5 114456417 114456432 -V_DMRT1_01 6.01487e-06 - AAGAAACATTGTATC
+chr5 114456448 114456463 +V_IRF_Q6 1.76188e-06 + CCCCCTTTCACTTTT
+chr5 114461337 114461355 +V_GCNF_01 4.12631e-06 + AGCAAGGTCAAGGCCTTT
+chr5 114461338 114461348 -V_NUR77_Q5 8.43564e-06 - TTGACCTTGC
+chr5 114461367 114461380 +V_AP2_Q6_01 5.04624e-06 + CAGGCCCCAGGCA
+chr5 114623112 114623127 -V_BACH1_01 5.55381e-06 - GGCATGAGTCACCTT
+chr5 114623113 114623126 -V_AP1_01 5.13952e-06 - GCATGAGTCACCT
+chr5 114623114 114623125 +V_AP1_Q6 9.43393e-06 + GGTGACTCATG
+chr5 114623114 114623125 -V_BACH2_01 1.82283e-06 - CATGAGTCACC
+chr5 114623127 114623138 +V_PITX2_Q2 5.53227e-07 + TGTAATCCCAG
+chr5 114623141 114623150 +V_LYF1_01 7.33929e-06 + TTTGGGAGG
+chr5 114623141 114623151 +V_IK_Q5 3.22045e-06 + TTTGGGAGGC
+chr5 114623152 114623167 +V_VDR_Q3 2.95306e-06 + GAGGCAGGAAGGTCA
+chr5 114623158 114623168 -V_NUR77_Q5 2.98426e-06 - CTGACCTTCC
+chr5 114623168 114623182 -V_PAX6_Q2 5.16503e-06 - CTGGCCTCGAACTC
+chr5 114646174 114646194 +V_P53_01 3.6588e-06 + TGACATGCCTGGGCTTTCCT
+chr5 114646174 114646194 -V_P53_01 4.95981e-06 - AGGAAAGCCCAGGCATGTCA
+chr5 114646183 114646193 +V_CREL_01 7.83548e-06 + TGGGCTTTCC
+chr5 114646247 114646268 +V_NRSE_B 4.51279e-06 + TGTAGCTCCAAGGGGCTAGCC
+chr5 114646319 114646330 +V_LEF1TCF1_Q4 5.90916e-06 + CCTTTGTTCCT
+chr5 115252015 115252028 -V_MAZR_01 1.72459e-07 - TGGGGGGGGGCAA
+chr5 115252018 115252027 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr5 115336445 115336457 -V_FOXD3_01 5.95872e-06 - AAATATTTGTTT
+chr5 115348963 115348979 +V_NFKB_Q6_01 4.87745e-06 + GAAATGGAAACTCCCA
+chr5 115348968 115348978 -V_NFKAPPAB65_01 4.05532e-06 - GGGAGTTTCC
+chr5 116308828 116308843 +V_DMRT5_01 4.43693e-06 + TTCTGTTACATTGTA
+chr5 116308830 116308845 +V_DMRT1_01 2.36549e-06 + CTGTTACATTGTAAC
+chr5 116704814 116704829 -V_BACH1_01 1.37736e-06 - AACATGAGTCATGAA
+chr5 116704816 116704827 -V_BACH2_01 2.44531e-06 - CATGAGTCATG
+chr5 116704868 116704883 -V_DMRT5_01 3.12818e-06 - GGTTGTTACATTGTA
+chr5 116704869 116704884 -V_DMRT3_01 2.6473e-06 - TGGTTGTTACATTGT
+chr5 116704895 116704908 +V_IK1_01 3.36629e-06 + GCTTGGGAAGGCC
+chr5 116704914 116704929 +V_DMRT1_01 1.51207e-06 + CTGCTACAATGTAAC
+chr5 116704916 116704931 -V_DMRT1_01 8.06116e-08 - TTGTTACATTGTAGC
+chr5 116704917 116704931 -V_DMRT7_01 2.34554e-07 - TTGTTACATTGTAG
+chr5 116704918 116704933 -V_DMRT5_01 3.12818e-06 - GGTTGTTACATTGTA
+chr5 116704919 116704934 -V_DMRT3_01 2.6473e-06 - TGGTTGTTACATTGT
+chr5 117229586 117229599 -V_SP1_Q6 8.16238e-06 - GATGGGCGGGACC
+chr5 117229641 117229656 -V_DMRT1_01 1.27344e-06 - TTGATACTTTGTATC
+chr5 118402155 118402169 +V_GATA1_02 8.42748e-06 + GAGGAGATAGGGCT
+chr5 118402171 118402189 +V_MYOD_Q6_01 4.24384e-06 + CCAGCACAGGTGGCCAAT
+chr5 118402193 118402204 +V_EVI1_03 1.7215e-06 + AGATAAGATAT
+chr5 118402193 118402204 +V_EVI1_05 1.27098e-06 + AGATAAGATAT
+chr5 118402210 118402225 +V_AML_Q6 5.76916e-06 + ATTCTTGTGGTTACC
+chr5 118402210 118402225 -V_PEBP_Q6 2.84305e-06 - GGTAACCACAAGAAT
+chr5 118402239 118402247 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr5 118402239 118402248 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr5 118402239 118402249 +V_SP1_Q6_01 8.48538e-06 + GGGGAGGGGG
+chr5 118402288 118402300 -V_LMO2COM_01 5.26561e-06 - CGCCAGCTGCTC
+chr5 118402289 118402299 -V_TAL1_Q6 3.62595e-06 - GCCAGCTGCT
+chr5 118414900 118414917 +V_HSF1_Q6 5.36429e-06 + CTTCTGGAAGCTTCGGT
+chr5 118414901 118414914 +V_HSF_Q6 9.23599e-06 + TTCTGGAAGCTTC
+chr5 118414906 118414919 -V_HSF_Q6 7.63847e-06 - TTACCGAAGCTTC
+chr5 118414922 118414939 -V_NF1_Q6_01 3.71867e-06 - CTGGCCATGGGCCAAGG
+chr5 118414922 118414940 +V_NF1_Q6 3.57123e-06 + CCTTGGCCCATGGCCAGC
+chr5 118414974 118414997 +V_COUPTF_Q6 1.92769e-06 + TTCTCTGACCCTTCTCCCTCCCT
+chr5 118414979 118414992 -V_DR1_Q3 8.65089e-06 - GGGAGAAGGGTCA
+chr5 118414979 118414994 -V_VDR_Q3 3.3177e-06 - GAGGGAGAAGGGTCA
+chr5 118415021 118415030 +V_PAX2_02 7.33929e-06 + CACAAACCC
+chr5 118424740 118424759 +V_PPARA_02 4.43478e-06 + TTTGGGGATGGGGGTGGGG
+chr5 118424744 118424758 -V_KROX_Q6 2.32952e-06 - CCCACCCCCATCCC
+chr5 118424748 118424761 +V_SP1_Q6 8.76141e-06 + TGGGGGTGGGGGG
+chr5 118424749 118424758 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr5 118424749 118424759 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr5 118424749 118424760 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr5 118424750 118424762 -V_PAX4_03 9.67001e-06 - GCCCCCCACCCC
+chr5 118424751 118424765 -V_KROX_Q6 1.2477e-06 - TCCGCCCCCCACCC
+chr5 118424753 118424764 -V_SP1SP3_Q4 5.13339e-06 - CCGCCCCCCAC
+chr5 118424756 118424766 -V_SP1_Q2_01 3.57003e-06 - CTCCGCCCCC
+chr5 118424791 118424805 +V_PAX6_Q2 1.5537e-08 + CTGTCCTGGAACTC
+chr5 118424796 118424807 +V_PAX_Q6 2.04834e-07 + CTGGAACTCAC
+chr5 118471817 118471832 +V_DMRT1_01 5.77282e-07 + TTGAAACATTGTTAC
+chr5 118471819 118471834 -V_DMRT1_01 4.82232e-07 - CTGTAACAATGTTTC
+chr5 118471822 118471835 -V_DMRT4_01 6.48786e-06 - ACTGTAACAATGT
+chr5 118471825 118471839 +V_DMRT7_01 6.0186e-08 + TTGTTACAGTGTGG
+chr5 118471842 118471855 -V_DMRT4_01 3.65283e-06 - AATGTTTCAATGT
+chr5 118471845 118471860 +V_DMRT1_01 5.77282e-07 + TTGAAACATTGTTAC
+chr5 118471847 118471862 -V_DMRT1_01 4.82232e-07 - CTGTAACAATGTTTC
+chr5 118471850 118471863 -V_DMRT4_01 6.48786e-06 - ACTGTAACAATGT
+chr5 118471853 118471867 +V_DMRT7_01 6.0186e-08 + TTGTTACAGTGTGG
+chr5 118471873 118471888 +V_DMRT1_01 5.77282e-07 + TTGAAACATTGTTAC
+chr5 118471875 118471890 -V_DMRT1_01 4.82232e-07 - CTGTAACAATGTTTC
+chr5 118471878 118471891 -V_DMRT4_01 6.48786e-06 - ACTGTAACAATGT
+chr5 118471881 118471895 +V_DMRT7_01 6.0186e-08 + TTGTTACAGTGTGG
+chr5 118471897 118471913 +V_DMRT2_01 7.60933e-06 + GACATTGAAACATTGT
+chr5 118471898 118471911 -V_DMRT4_01 3.65283e-06 - AATGTTTCAATGT
+chr5 118471901 118471916 +V_DMRT1_01 5.77282e-07 + TTGAAACATTGTTAC
+chr5 118471903 118471918 -V_DMRT1_01 4.82232e-07 - CTGTAACAATGTTTC
+chr5 118471906 118471919 -V_DMRT4_01 6.48786e-06 - ACTGTAACAATGT
+chr5 118471909 118471923 +V_DMRT7_01 6.0186e-08 + TTGTTACAGTGTGG
+chr5 118471929 118471943 +V_DMRT7_01 9.87218e-07 + TTGAAACATTGTTG
+chr5 118471929 118471944 +V_DMRT1_01 1.89847e-08 + TTGAAACATTGTTGC
+chr5 118471931 118471946 -V_DMRT1_01 1.87081e-07 - CTGCAACAATGTTTC
+chr5 118471937 118471951 +V_DMRT7_01 7.24493e-07 + TTGTTGCAGTGTGG
+chr5 118471957 118471972 +V_DMRT1_01 7.2905e-06 + TTGAGACATTGTTAT
+chr5 118471965 118471979 +V_DMRT7_01 9.63794e-06 + TTGTTATAGTGTAG
+chr5 118801538 118801548 +V_HSF1_01 5.68466e-06 + AGAACATTCG
+chr5 118801568 118801584 -V_NFY_01 5.89708e-07 - ATGAGCCAATGGGAGC
+chr5 118904750 118904760 +V_SP1_Q6_01 1.91768e-06 + AGGGCGGGGC
+chr5 119251740 119251753 +V_AP2_Q6_01 7.81175e-06 + CCTCCCTCAGGCT
+chr5 119251760 119251772 +V_PAX4_03 9.67001e-06 + AGGCCCCACCCC
+chr5 119251760 119251773 -V_MAZR_01 2.79447e-06 - GGGGGTGGGGCCT
+chr5 119251761 119251774 -V_SP1_Q6 1.00798e-06 - AGGGGGTGGGGCC
+chr5 119251762 119251772 -V_SP1_Q6_01 4.32232e-06 - GGGGTGGGGC
+chr5 119251763 119251773 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr5 119251764 119251773 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr5 119251776 119251793 +V_PPARG_03 2.65068e-07 + TCCTGGGTCATAGGTCA
+chr5 119251776 119251797 +V_PPARG_01 1.00713e-06 + TCCTGGGTCATAGGTCATATT
+chr5 119251780 119251793 +V_RXRLXRB_01 1.25325e-07 + GGGTCATAGGTCA
+chr5 119251780 119251793 +V_DR1_Q3 5.73781e-07 + GGGTCATAGGTCA
+chr5 119251780 119251793 -V_PPAR_DR1_Q2 4.31177e-07 - TGACCTATGACCC
+chr5 119251780 119251793 -V_HNF4_DR1_Q3 1.44379e-06 - TGACCTATGACCC
+chr5 119251780 119251793 -V_COUP_DR1_Q6 1.12381e-06 - TGACCTATGACCC
+chr5 119251827 119251839 -V_PAX4_03 6.56043e-06 - GAGCTCCACCCG
+chr5 119251840 119251851 +V_AP1_Q6 5.6407e-06 + CCTGACTCAGT
+chr5 119252033 119252047 -V_FXR_Q3 6.50443e-06 - CAAGGTCAGTGTCC
+chr5 119252037 119252051 -V_ERR1_Q2 3.31639e-06 - AGTTCAAGGTCAGT
+chr5 119252037 119252055 -V_GCNF_01 1.08437e-07 - TGGAAGTTCAAGGTCAGT
+chr5 119252038 119252050 +V_LRH1_Q5 5.2397e-07 + CTGACCTTGAAC
+chr5 119252038 119252052 +V_PAX6_Q2 2.43898e-07 + CTGACCTTGAACTT
+chr5 119252039 119252048 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr5 119252080 119252089 +V_T3R_Q6 8.74404e-06 + CCTGTCCTG
+chr5 120038468 120038484 -V_AP2_Q3 1.22389e-06 - GCCCTCAGGCTGTAGG
+chr5 120038511 120038522 -V_GATA_C 1.62999e-06 - AGATAAGGACT
+chr5 120088544 120088559 -V_BACH1_01 9.90707e-06 - GTGATGAGTCACCCA
+chr5 120088545 120088558 +V_AP1_01 4.64041e-06 + GGGTGACTCATCA
+chr5 120088546 120088557 +V_AP1_Q6 2.98654e-06 + GGTGACTCATC
+chr5 120088546 120088557 -V_BACH2_01 3.19137e-06 - GATGAGTCACC
+chr5 120088547 120088558 -V_NFE2_01 5.51939e-06 - TGATGAGTCAC
+chr5 120130063 120130074 +V_MYB_Q3 8.33763e-06 + GCTGCCAGTTG
+chr5 120130066 120130076 -V_MYB_Q6 4.20952e-06 - CCCAACTGGC
+chr5 121434187 121434200 -V_DMRT4_01 2.92761e-06 - AATGTTGCAAGTT
+chr5 121434190 121434204 +V_DMRT7_01 3.09746e-06 + TTGCAACATTGTTT
+chr5 121434190 121434205 +V_DMRT1_01 4.79884e-08 + TTGCAACATTGTTTC
+chr5 121434192 121434207 -V_DMRT1_01 2.47268e-06 - AAGAAACAATGTTGC
+chr5 121434202 121434222 +V_FOXP1_01 3.83907e-06 + TTCTTTTAATTGTCTTGTTT
+chr5 121434217 121434233 +V_DMRT2_01 8.22882e-06 + TGTTTTGCTACAATCT
+chr5 121547603 121547621 +V_FOXJ2_01 7.26098e-06 + AATGAAACAAACAATTAA
+chr5 121547605 121547626 +V_HNF1_Q6_01 7.5154e-06 + TGAAACAAACAATTAACCTTG
+chr5 121547607 121547619 -V_FOXD3_01 7.41018e-07 - AATTGTTTGTTT
+chr5 121547672 121547690 +V_FOXJ2_01 5.17183e-06 + AATTCAATAAACATTCCC
+chr5 121549877 121549892 -V_DMRT1_01 1.11988e-06 - ATGTTACATTGTATC
+chr5 121549880 121549895 -V_DMRT3_01 8.22204e-06 - GGAATGTTACATTGT
+chr5 121549880 121549896 -V_DMRT2_01 9.37618e-07 - GGGAATGTTACATTGT
+chr5 121550028 121550047 -V_OCT1_01 9.1206e-06 - GGAGATATGCAAAAGTGAG
+chr5 123461578 123461591 +V_AP2_Q6_01 4.11454e-06 + CAGCCCTCAGGCT
+chr5 123461580 123461596 +V_AP2_Q3 1.41644e-06 + GCCCTCAGGCTATGGC
+chr5 125637462 125637473 +V_EBF_Q6 9.10919e-06 + TTCCCCTGAGG
+chr5 125637481 125637495 -V_STAT3STAT3_Q3 5.71717e-06 - TTGCTGGGAACTGA
+chr5 125637503 125637512 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr5 125637503 125637513 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr5 125637503 125637516 +V_MAZR_01 8.77447e-07 + GGGGGAGGGGACA
+chr5 125637504 125637512 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr5 125637504 125637513 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr5 125637591 125637604 -V_MAZR_01 3.93822e-07 - GGGGGGGGGGAAC
+chr5 125637594 125637603 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr5 125637594 125637605 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr5 125637595 125637604 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr5 125637595 125637606 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr5 125637596 125637605 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr5 125637596 125637607 +V_SP1SP3_Q4 3.76147e-06 + CCCCCCCCCCA
+chr5 125637597 125637606 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr5 125906879 125906891 -V_AP1_Q2_01 2.1613e-06 - TGACTCACAGGC
+chr5 125906885 125906900 +V_VDR_Q3 2.95306e-06 + GAGTCAACAGGGACA
+chr5 125906900 125906928 +V_PAX5_02 7.95894e-06 + GAAGGGAATGCTAGAGCCTGGCCCTGGC
+chr5 125906926 125906941 -V_BACH1_01 4.98171e-06 - GGCGTGAGTCATTGC
+chr5 126818514 126818531 +V_PU1_01 4.61424e-06 + AAATAGAGGAAGTTCTG
+chr5 126818515 126818527 +V_ELF1_Q6 2.57537e-06 + AATAGAGGAAGT
+chr5 126818518 126818533 +V_ETS1_B 8.05749e-06 + AGAGGAAGTTCTGGC
+chr5 127616913 127616926 +V_IK1_01 1.73672e-06 + ATCTGGGAATGCC
+chr5 127616913 127616926 +V_IK3_01 8.31072e-06 + ATCTGGGAATGCC
+chr5 127616998 127617021 +V_COUPTF_Q6 6.50749e-06 + TCAGCTGACCTTGGCTCTCCTTC
+chr5 127617002 127617012 +V_NUR77_Q5 2.98426e-06 + CTGACCTTGG
+chr5 127617003 127617012 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGG
+chr5 128184449 128184463 -V_FOXO1_02 9.07468e-06 - GTTTTGTTTTCTTG
+chr5 128184499 128184508 +V_ZIC2_01 9.89755e-06 + GGGGTGGTG
+chr5 128184501 128184524 +V_COUPTF_Q6 4.40544e-06 + GGTGGTGGCCTTTGCTCATTCAC
+chr5 128184505 128184519 -V_HNF4_Q6_01 2.58532e-06 - TGAGCAAAGGCCAC
+chr5 128713678 128713693 -V_CP2_02 9.87124e-06 - GCAGGGTGGCTCTGG
+chr5 128713796 128713810 -V_BLIMP1_Q6 4.2457e-06 - GAAAAGGGAAAGTC
+chr5 128713797 128713810 -V_IRF2_01 2.58224e-06 - GAAAAGGGAAAGT
+chr5 129788298 129788313 +V_OCT4_01 9.05006e-06 + CATTAAAATGGAAAT
+chr5 130430495 130430507 +V_NANOG_01 8.86042e-06 + GAGCCCATTTGC
+chr5 130430528 130430546 -V_MYOD_Q6_01 1.70927e-08 - CTGGGGCAGGTGGCCAAG
+chr5 130430531 130430542 -V_E12_Q6 1.14424e-06 - GGCAGGTGGCC
+chr5 130430532 130430542 +V_MYOD_Q6 7.66616e-06 + GCCACCTGCC
+chr5 130430533 130430543 +V_EBOX_Q6_01 6.43409e-06 + CCACCTGCCC
+chr5 130430533 130430547 +V_E2A_Q2 1.91151e-08 + CCACCTGCCCCAGG
+chr5 130430534 130430542 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr5 130430536 130430549 +V_AP2_Q6_01 3.58329e-06 + CCTGCCCCAGGCT
+chr5 131333766 131333781 -V_DMRT1_01 8.47921e-07 - TTGTTACTTTGTTGC
+chr5 131333767 131333781 -V_DMRT7_01 7.24493e-07 - TTGTTACTTTGTTG
+chr5 132325680 132325691 -V_CP2_01 2.42582e-06 - GCCAGACCCAG
+chr5 132325800 132325815 -V_IPF1_Q4_01 6.24932e-06 - TCTGTCATTAGTTGC
+chr5 134194557 134194572 -V_SREBP1_Q5 5.07585e-06 - CCAGCCACCCCATGA
+chr5 134194618 134194627 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr5 134194618 134194633 +V_SPZ1_01 8.55807e-06 + GGGGGAGGGAATGCA
+chr5 134194619 134194627 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr5 134194619 134194628 -V_CKROX_Q2 8.90515e-06 - TCCCTCCCC
+chr5 134194679 134194694 +V_OCT4_01 4.7383e-08 + CTTTGACATGCAAAT
+chr5 134194680 134194695 +V_OCT4_02 2.36019e-07 + TTTGACATGCAAATC
+chr5 134194682 134194697 +V_OCT1_Q6 2.61033e-06 + TGACATGCAAATCAG
+chr5 134194683 134194697 -V_OCT1_05 1.1984e-06 - CTGATTTGCATGTC
+chr5 134194684 134194697 -V_OCT_C 6.43366e-07 - CTGATTTGCATGT
+chr5 134194685 134194695 +V_OCT1_B 5.44227e-06 + CATGCAAATC
+chr5 134194685 134194696 -V_OCT1_Q5_01 2.76517e-06 - TGATTTGCATG
+chr5 134194685 134194696 -V_OCT_Q6 2.61843e-06 - TGATTTGCATG
+chr5 134220057 134220070 +V_GATA1_04 5.21518e-06 + GGCAGATAGGAGG
+chr5 134220068 134220091 -V_COUPTF_Q6 9.47737e-06 - GGGGCTGGACTTTGAAACCTTCC
+chr5 134220196 134220209 +V_HFH4_01 6.7208e-06 + CTGCGTTTGTTTT
+chr5 135439551 135439562 -V_EBF_Q6 4.4234e-06 - TTCCCCTGGGG
+chr5 135439609 135439620 -V_FLI1_Q6 1.42541e-06 - CAGGAAGTCAC
+chr5 135439617 135439629 +V_CREB_02 2.10867e-06 + CTGATGACGTCA
+chr5 135439617 135439631 -V_CREB_Q2_01 2.39562e-07 - GGTGACGTCATCAG
+chr5 135439618 135439629 +V_CREB_Q4_01 9.22102e-06 + TGATGACGTCA
+chr5 135439618 135439632 +V_ATF3_Q6 2.21771e-06 + TGATGACGTCACCC
+chr5 135439619 135439631 -V_CREB_Q2 4.53608e-06 - GGTGACGTCATC
+chr5 135439619 135439631 -V_CREB_Q4 4.38815e-07 - GGTGACGTCATC
+chr5 135439619 135439633 +V_CREB_Q2_01 6.82756e-06 + GATGACGTCACCCC
+chr5 135439621 135439630 -V_CREBATF_Q6 3.30926e-06 - GTGACGTCA
+chr5 135439621 135439633 -V_CREB_02 4.53904e-07 - GGGGTGACGTCA
+chr5 135439663 135439673 -V_PR_Q2 2.92358e-06 - GAGAGAACAC
+chr5 135439674 135439687 -V_SP1_Q6 3.06772e-06 - AGGGGGCGGGCGG
+chr5 135439675 135439685 -V_SP1_Q6_01 9.74073e-06 - GGGGCGGGCG
+chr5 135439676 135439685 +V_CKROX_Q2 6.67377e-06 + GCCCGCCCC
+chr5 135439676 135439686 +V_SP1_Q2_01 4.32232e-06 + GCCCGCCCCC
+chr5 135439677 135439688 -V_EGR_Q6 6.21659e-06 - GAGGGGGCGGG
+chr5 135439677 135439691 +V_KROX_Q6 1.5817e-06 + CCCGCCCCCTCCTG
+chr5 135439678 135439689 +V_SP1SP3_Q4 9.31298e-08 + CCGCCCCCTCC
+chr5 135439681 135439692 +V_SP1SP3_Q4 7.42043e-06 + CCCCCTCCTGC
+chr5 135459908 135459917 -V_T3R_Q6 8.74404e-06 - CCTGTCCTG
+chr5 135459924 135459938 +V_BLIMP1_Q6 9.49741e-06 + AACAAGGGAAAGTG
+chr5 135767179 135767195 -V_AP2_Q3 4.44136e-06 - GCCCCCAGGCCACAAC
+chr5 135977868 135977882 +V_ETS2_B 7.93504e-06 + TACAGGAAGCCAGC
+chr5 135977869 135977879 -V_ESE1_Q3 8.80613e-06 - GGCTTCCTGT
+chr5 135977877 135977892 -V_CP2_02 5.58152e-07 - GCTGGGCTGGGCTGG
+chr5 136119343 136119353 +V_TAL1_Q6 7.46065e-07 + TCCAGCTGCT
+chr5 136119363 136119383 +V_PPARA_01 8.27697e-06 + GGCCAATAGGTAAAAGGTCA
+chr5 136119366 136119383 +V_PPARG_03 4.00213e-06 + CAATAGGTAAAAGGTCA
+chr5 136119366 136119387 +V_PPARG_01 8.51429e-07 + CAATAGGTAAAAGGTCAAGGT
+chr5 136119370 136119383 +V_RXRLXRB_01 5.6548e-07 + AGGTAAAAGGTCA
+chr5 136119370 136119383 +V_DR1_Q3 3.04643e-06 + AGGTAAAAGGTCA
+chr5 136119370 136119383 -V_PPAR_DR1_Q2 3.88575e-06 - TGACCTTTTACCT
+chr5 136119370 136119383 -V_COUP_DR1_Q6 6.0379e-06 - TGACCTTTTACCT
+chr5 136133131 136133142 -V_SMAD_Q6_01 3.30698e-06 - CAGCCAGACAG
+chr5 136133167 136133179 +V_VDR_Q6 9.41602e-06 + GCGGTTGAACCC
+chr5 136133216 136133231 +V_OCT4_01 2.11448e-06 + TATTGTAATGCTAAG
+chr5 136133247 136133263 +V_NFY_01 5.22884e-06 + CTGCGCCAATGGGCGG
+chr5 136478727 136478749 +V_MEF2_02 7.76526e-06 + TTCTGTGCTAATTATAGAACCC
+chr5 136478727 136478749 +V_MEF2_03 7.11676e-06 + TTCTGTGCTAATTATAGAACCC
+chr5 136478729 136478751 -V_MEF2_02 7.8249e-07 - CTGGGTTCTATAATTAGCACAG
+chr5 136478729 136478751 -V_MEF2_03 2.33285e-06 - CTGGGTTCTATAATTAGCACAG
+chr5 136478824 136478835 +V_EBF_Q6 3.11689e-06 + GTCCCCTGGGG
+chr5 136478842 136478856 +V_GATA1_03 4.1196e-06 + AGGAAGATTAGGAC
+chr5 137076482 137076497 +V_DMRT1_01 2.82419e-06 + AAGATACATTGTATC
+chr5 137076484 137076499 -V_DMRT1_01 4.82232e-07 - CGGATACAATGTATC
+chr5 137076514 137076529 -V_DMRT1_01 9.21473e-06 - TTGATACAGTGTGTC
+chr5 137076515 137076529 -V_DMRT7_01 4.72677e-06 - TTGATACAGTGTGT
+chr5 137416869 137416882 +V_AP1_01 1.54268e-07 + GAATGAGTCAGCA
+chr5 137416870 137416881 -V_AP1_Q2 7.83818e-06 - GCTGACTCATT
+chr5 137416870 137416881 -V_AP1_Q6 2.98654e-06 - GCTGACTCATT
+chr5 137416871 137416880 +V_AP1_C 4.03003e-06 + ATGAGTCAG
+chr5 137416871 137416882 -V_NFE2_01 1.48643e-06 - TGCTGACTCAT
+chr5 137416887 137416898 -V_PAX_Q6 1.53104e-06 - CTGGAAATCAC
+chr5 137416951 137416963 +V_GATA4_Q3 2.08127e-07 + AGATAAAAGGGA
+chr5 137416976 137416986 +V_IK_Q5 4.33614e-06 + GGTGGGAGGG
+chr5 138072542 138072565 +V_COUPTF_Q6 6.50749e-06 + TCCTGTGCCCCTGAGCCCTGCCT
+chr5 138072684 138072698 -V_E2A_Q2 5.14964e-06 - ACACCTGCCTCTTC
+chr5 138072685 138072703 +V_MYOD_Q6_01 8.69034e-06 + AAGAGGCAGGTGTTGGGC
+chr5 138072688 138072700 +V_MYOD_01 7.90686e-06 + AGGCAGGTGTTG
+chr5 138072689 138072697 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr5 138072689 138072700 +V_E12_Q6 7.75461e-06 + GGCAGGTGTTG
+chr5 139486790 139486811 +V_DR3_Q4 4.50811e-07 + GGTGCCCTCCCTGCCCTGGGG
+chr5 139486796 139486812 -V_AP2_Q3 4.44136e-06 - GCCCCAGGGCAGGGAG
+chr5 139486796 139486819 +V_COUPTF_Q6 8.98752e-07 + CTCCCTGCCCTGGGGCCACTGCT
+chr5 139486804 139486832 +V_PAX5_01 6.09617e-06 + CCTGGGGCCACTGCTGTATCACCAGTCT
+chr5 139486851 139486860 +V_T3R_Q6 8.74404e-06 + CCTGTCCTC
+chr5 139486852 139486862 -V_PR_Q2 7.23e-06 - GAGAGGACAG
+chr5 139486861 139486870 +V_T3R_Q6 8.74404e-06 + CCTGTCCTG
+chr5 139486869 139486878 +V_CKROX_Q2 3.66459e-06 + GCCCTCCCC
+chr5 139486870 139486878 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr5 139557502 139557517 -V_DMRT3_01 7.42577e-06 - CTGTTGTTACATTCT
+chr5 139557543 139557552 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr5 139557543 139557553 -V_NUR77_Q5 8.43564e-06 - TTGACCTTGG
+chr5 140420788 140420801 -V_SP1_Q6 4.47623e-06 - GGGAGGAGGGGCG
+chr5 140420791 140420804 -V_SP1_Q6 8.76141e-06 - GGGGGGAGGAGGG
+chr5 140420796 140420807 -V_EGR_Q6 3.00131e-06 - GTGGGGGGGAG
+chr5 140420821 140420844 +V_OCT1_04 3.74994e-06 + GCACAAATATGCAAATGGTATAA
+chr5 140420823 140420842 +V_OCT1_01 3.05141e-06 + ACAAATATGCAAATGGTAT
+chr5 140420826 140420840 -V_OCT1_05 4.95753e-06 - ACCATTTGCATATT
+chr5 140420828 140420838 +V_OCT1_B 4.33582e-06 + TATGCAAATG
+chr5 140420828 140420839 -V_OCT_Q6 8.67576e-06 - CCATTTGCATA
+chr5 140420848 140420861 +V_HFH3_01 9.38866e-06 + TGTTATTTGTTTT
+chr5 140420853 140420868 +V_OCT4_02 9.10747e-06 + TTTGTTTTGCTGATA
+chr5 140420873 140420888 +V_OCT4_01 4.28625e-06 + GTTTGAAATGCAAAT
+chr5 140420874 140420889 +V_OCT4_02 4.9622e-06 + TTTGAAATGCAAATG
+chr5 140492978 140492990 -V_MYOD_01 1.24875e-06 - CCACAGGTGTTG
+chr5 140492978 140492990 -V_LMO2COM_01 6.99984e-06 - CCACAGGTGTTG
+chr5 140800120 140800132 +V_FOXD3_01 9.53633e-06 + TTTTGTTTGTTT
+chr5 140800120 140800133 +V_HFH4_01 5.28594e-06 + TTTTGTTTGTTTG
+chr5 140800142 140800155 -V_IK3_01 4.81877e-06 - TTCTGGGAATGCT
+chr5 140800199 140800211 +V_LRH1_Q5 3.06315e-07 + CTGGCCTTGAAC
+chr5 140800199 140800213 +V_PAX6_Q2 8.3884e-07 + CTGGCCTTGAACTC
+chr5 140800221 140800230 +V_T3R_Q6 8.74404e-06 + CCTGTCCTG
+chr5 140800230 140800240 -V_IK_Q5 3.22045e-06 - TTTGGGAGGC
+chr5 140800231 140800240 -V_LYF1_01 7.33929e-06 - TTTGGGAGG
+chr5 140800235 140800248 +V_GFI1_Q6 7.38877e-06 + CCAAATCACTTGT
+chr5 142846911 142846920 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr5 142846918 142846926 -V_CACD_01 9.89755e-06 - CCACACCC
+chr5 142846970 142846978 -V_CACD_01 9.89755e-06 - CCACACCC
+chr5 142846988 142846999 -V_E12_Q6 7.75461e-06 - GGCAGGTGCTC
+chr5 142846989 142846999 +V_MYOD_Q6 2.71739e-06 + AGCACCTGCC
+chr5 142846991 142846999 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr5 142943659 142943672 -V_AP2_Q6_01 3.58329e-06 - GGCCCCTCAGGCT
+chr5 142943679 142943692 -V_MAZR_01 6.86006e-06 - GGAGGAGGGGCCG
+chr5 142943680 142943693 -V_SP1_Q6 3.53849e-06 - GGGAGGAGGGGCC
+chr5 142943699 142943711 -V_LRH1_Q5 2.30644e-06 - ATGACCTTGGAC
+chr5 142943701 142943710 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr5 142943702 142943716 +V_FXR_Q3 2.23271e-06 + CAAGGTCATTGGCC
+chr5 142943705 142943719 -V_FXR_Q3 2.84079e-06 - CAAGGCCAATGACC
+chr5 142943718 142943727 +V_AP2ALPHA_01 6.01835e-06 + GCCCCGGGC
+chr5 142943718 142943727 +V_AP2GAMMA_01 6.01835e-06 + GCCCCGGGC
+chr5 142943718 142943727 -V_AP2ALPHA_01 3.00918e-06 - GCCCGGGGC
+chr5 142943718 142943727 -V_AP2GAMMA_01 3.00918e-06 - GCCCGGGGC
+chr5 142943776 142943784 -V_CACD_01 9.89755e-06 - CCACACCC
+chr5 143052919 143052932 -V_AP2_Q6_01 1.66582e-06 - CTGGCCCCAGGCC
+chr5 143598707 143598721 +V_MTF1_Q4 2.04812e-06 + AGTGCACCCTGCCC
+chr5 143598714 143598728 +V_KROX_Q6 7.56123e-06 + CCTGCCCCCAACGC
+chr5 143598742 143598753 -V_EGR_Q6 5.40581e-06 - GTGGGGGTGGC
+chr5 143598758 143598779 +V_NRSE_B 8.83183e-06 + GCCAGCAGCTCAGACAGAGCC
+chr5 143598759 143598778 -V_NRSF_Q4 2.02038e-06 - GCTCTGTCTGAGCTGCTGG
+chr5 143598797 143598817 -V_PPARA_01 9.55693e-06 - CAAAAGCAGGCCTCAGGCCA
+chr5 143598798 143598811 -V_AP2_Q6_01 2.99785e-06 - CAGGCCTCAGGCC
+chr5 143598816 143598828 +V_MYOD_01 8.19551e-06 + GGACAGCTGCTG
+chr5 143994762 143994775 +V_NFY_Q6_01 9.50338e-07 + CATTAGCCAATCA
+chr5 143994763 143994777 -V_NFY_C 1.50183e-07 - ACTGATTGGCTAAT
+chr5 143994765 143994776 +V_ALPHACP1_01 5.68927e-06 + TAGCCAATCAG
+chr5 143994765 143994776 +V_NFY_Q6 1.60535e-06 + TAGCCAATCAG
+chr5 145007417 145007429 +V_PAX4_03 9.67001e-06 + TATCCTCACCCC
+chr5 145007421 145007435 +V_KROX_Q6 4.02412e-06 + CTCACCCCCCCCCC
+chr5 145007422 145007435 -V_MAZR_01 1.39054e-06 - GGGGGGGGGGTGA
+chr5 145007424 145007435 +V_SP1SP3_Q4 3.19906e-06 + ACCCCCCCCCC
+chr5 145007425 145007434 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr5 145007425 145007436 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr5 145007426 145007435 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr5 145007426 145007437 +V_SP1SP3_Q4 3.76147e-06 + CCCCCCCCCCA
+chr5 145007426 145007445 -V_PPARA_02 6.12488e-06 - CCAGGGGATGGGGGGGGGG
+chr5 145007427 145007436 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr5 145007442 145007457 +V_DMRT1_01 1.2457e-07 + TGGATACAATGTAGC
+chr5 145007444 145007459 -V_DMRT1_01 1.58987e-07 - TGGCTACATTGTATC
+chr5 145007496 145007514 +V_AHR_01 2.77749e-06 + CCTGGAGCTGGCGTTAGA
+chr5 147491214 147491232 +V_GCNF_01 2.82479e-06 + GCCCGGTTCAAGGTCACA
+chr5 147491218 147491232 +V_ERR1_Q2 1.82748e-06 + GGTTCAAGGTCACA
+chr5 147491219 147491231 -V_LRH1_Q5 2.30644e-06 - GTGACCTTGAAC
+chr5 147491221 147491230 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr5 147660630 147660642 +V_LRH1_Q5 9.2187e-06 + ATGGCCTTGGAG
+chr5 147660639 147660652 +V_AP1_01 5.13952e-06 + GAGTGAGTCAGAT
+chr5 147660641 147660650 +V_AP1_C 7.33929e-06 + GTGAGTCAG
+chr5 147660662 147660674 +V_LMO2COM_01 6.99984e-06 + CTGCAGGTGTTG
+chr5 148109351 148109364 +V_STAT_Q6 7.7371e-06 + GACACTTCTAGGA
+chr5 148109417 148109428 +V_ER_Q6_02 3.60157e-06 + CAGGTCAGGGC
+chr5 148228522 148228535 -V_HNF4_DR1_Q3 7.61558e-06 - TGAGCCTTGTCCT
+chr5 148732730 148732754 +V_STAT5A_02 5.45619e-06 + TTCCTGGAATGTAGCCTTCCAGAG
+chr5 148732769 148732783 +V_DMRT7_01 6.61071e-07 + ATGTTACAATGTTG
+chr5 148732769 148732784 +V_DMRT1_01 4.00094e-07 + ATGTTACAATGTTGC
+chr5 148732829 148732841 -V_SRY_02 2.9821e-06 - ATAAACAATAGA
+chr5 148732829 148732847 -V_FOXJ2_01 5.6435e-06 - TGCAAAATAAACAATAGA
+chr5 148732830 148732840 -V_SOX5_01 9.25861e-06 - TAAACAATAG
+chr5 148732831 148732843 +V_FOXD3_01 4.65347e-06 + TATTGTTTATTT
+chr5 148732831 148732844 +V_FOX_Q2 6.74059e-07 + TATTGTTTATTTT
+chr5 148732856 148732871 -V_DMRT1_01 6.49273e-06 - CTGATACATTGTAAA
+chr5 149172897 149172910 -V_NFY_Q6_01 5.29946e-06 - CCTTCGCCAATCA
+chr5 149172997 149173015 -V_RFX1_02 4.02208e-06 - TAATACCCATGGCAACCA
+chr5 149173041 149173052 -V_HELIOSA_01 7.75319e-06 - TATAGGGATTA
+chr5 149247368 149247377 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr5 149247383 149247398 -V_DMRT5_01 1.76793e-06 - CTTTGTAACAGTTTC
+chr5 149247448 149247459 +V_NFE2_01 8.09548e-06 + AACTGAGTCAT
+chr5 149247449 149247460 -V_AP1_Q6 8.21187e-06 - CATGACTCAGT
+chr5 149247450 149247459 -V_AP1_Q6_01 4.03003e-06 - ATGACTCAG
+chr5 150258166 150258177 +V_ALPHACP1_01 4.48665e-06 + CAGCCAGTGAG
+chr5 150258237 150258253 +V_DMRT2_01 4.64242e-06 + CAGAGAGATACAATGT
+chr5 150718215 150718230 -V_DMRT1_01 6.01487e-06 - TTGATATATTGTATC
+chr5 150718267 150718282 -V_DMRT1_01 4.22638e-08 - TTGATACATTGTATC
+chr5 150718269 150718284 -V_DMRT5_01 3.59263e-06 - TTTTGATACATTGTA
+chr5 150718270 150718285 -V_DMRT3_01 3.47935e-08 - ATTTTGATACATTGT
+chr5 150718270 150718286 -V_DMRT2_01 2.74808e-08 - TATTTTGATACATTGT
+chr5 150718272 150718285 +V_DMRT4_01 1.44269e-06 + AATGTATCAAAAT
+chr6 4711595 4711604 +V_ZIC2_01 9.89755e-06 + GGGGTGGTG
+chr6 4711604 4711621 +V_PU1_01 3.68232e-06 + TATAAGGGGAAGTGTAG
+chr6 4711605 4711617 +V_ELF1_Q6 7.9902e-06 + ATAAGGGGAAGT
+chr6 4711605 4711624 -V_PU1_Q4 1.19604e-06 - AACCTACACTTCCCCTTAT
+chr6 4711624 4711643 -V_PU1_Q4 8.38434e-06 - GCTCCTCCCTTCCCCTTAT
+chr6 4711628 4711643 +V_VDR_Q3 6.79734e-06 + GGGGAAGGGAGGAGC
+chr6 4711702 4711715 +V_SP1_Q6 6.51994e-06 + AAGGGGAGGGGTG
+chr6 4711703 4711713 -V_SP1_Q2_01 6.40385e-06 - CCCCTCCCCT
+chr6 4711704 4711712 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr6 4711704 4711713 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr6 4711704 4711714 +V_SP1_Q6_01 9.74073e-06 + GGGGAGGGGT
+chr6 4711721 4711734 +V_SP1_Q6 6.51994e-06 + AAGGGGAGGGGTG
+chr6 4711722 4711732 -V_SP1_Q2_01 6.40385e-06 - CCCCTCCCCT
+chr6 4711723 4711731 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr6 4711723 4711732 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr6 4711723 4711733 +V_SP1_Q6_01 9.74073e-06 + GGGGAGGGGT
+chr6 4711747 4711756 +V_ZIC2_01 9.89755e-06 + GGGGTGGTG
+chr6 4887977 4887987 +V_P53_DECAMER_Q2 3.01332e-06 + AGACAAGTCC
+chr6 4888000 4888015 +V_DMRT1_01 9.55793e-06 + TAGCAACAATGTAAC
+chr6 4888002 4888017 -V_DMRT1_01 9.92712e-06 - GAGTTACATTGTTGC
+chr6 4888047 4888057 +V_NKX25_Q5 1.81713e-06 + TGCCACTTGA
+chr6 4888058 4888072 +V_NFKB_Q6 1.05839e-06 + TGGGGACTCTCCAC
+chr6 4888059 4888071 +V_NFKB_C 2.16177e-07 + GGGGACTCTCCA
+chr6 4888059 4888075 -V_NFKB_Q6_01 7.12923e-06 - GATGTGGAGAGTCCCC
+chr6 4968264 4968276 +V_PBX_Q3 3.10639e-06 + GATGGATGGGTG
+chr6 4968304 4968322 +V_LXR_Q3 5.52015e-07 + CAGGGTCAGTGTGGGGCA
+chr6 4968305 4968322 -V_DR4_Q2 6.45833e-06 - TGCCCCACACTGACCCT
+chr6 4968306 4968322 -V_LXR_DR4_Q3 8.49614e-07 - TGCCCCACACTGACCC
+chr6 5049130 5049143 +V_MAZR_01 8.35903e-06 + GGAGGAGGGGCAA
+chr6 7996705 7996715 -V_TAL1_Q6 4.87508e-06 - TCCAGCTGGT
+chr6 10042114 10042129 -V_OCT4_01 5.63049e-06 - TTTTGTAATGCATAA
+chr6 10042115 10042133 -V_CEBP_C 3.26639e-07 - TGTCTTTTGTAATGCATA
+chr6 12041891 12041908 +V_PU1_01 4.95611e-08 + AAAAAGGGGAAGTGCCT
+chr6 12041892 12041911 -V_PU1_Q4 3.95346e-06 - GAAAGGCACTTCCCCTTTT
+chr6 12765491 12765504 +V_CEBP_01 1.51712e-06 + TCTGTGGTAAGTT
+chr6 12765520 12765535 +V_OCT4_01 1.40241e-06 + TATTGTAATGCTAAA
+chr6 12765521 12765536 +V_OCT4_02 6.55103e-06 + ATTGTAATGCTAAAT
+chr6 12765592 12765607 +V_OCT4_01 7.94702e-06 + TTTTGTTGTGCAAAC
+chr6 15773428 15773444 -V_MAF_Q6 8.80129e-06 - ATAAAGGAAGTTTGGG
+chr6 17028100 17028113 +V_GFI1_Q6 3.59901e-06 + CCAAATCATGGCT
+chr6 18175184 18175196 +V_ETS_Q4 4.90737e-06 + AACCTCTTCCTG
+chr6 18590117 18590129 -V_SRY_02 1.60347e-06 - TTAAACAATAGA
+chr6 18590118 18590128 -V_SOX5_01 9.25861e-06 - TAAACAATAG
+chr6 18590163 18590175 -V_AP1_Q2_01 6.13341e-06 - TGACTCACAGTT
+chr6 18590167 18590176 +V_AP1_C 7.33929e-06 + GTGAGTCAG
+chr6 18590194 18590210 -V_AP2_Q3 9.75043e-07 - GCCCTCGGGCTATGGC
+chr6 18590200 18590209 +V_AP2ALPHA_01 9.68294e-06 + GCCCGAGGG
+chr6 18590200 18590209 +V_AP2GAMMA_01 7.85065e-06 + GCCCGAGGG
+chr6 18772945 18772973 +V_PAX5_01 6.09617e-06 + GCCTGAGGCCAGGTAGCAGGGCAACTTC
+chr6 18772981 18772991 -V_P53_DECAMER_Q2 2.10476e-06 - AGGCAAGTCC
+chr6 18772981 18773001 +V_P53_01 9.97063e-06 + GGACTTGCCTGGAACTGCCC
+chr6 18772981 18773001 -V_P53_01 6.63715e-06 - GGGCAGTTCCAGGCAAGTCC
+chr6 18772985 18772999 +V_STAT3STAT3_Q3 2.42992e-06 + TTGCCTGGAACTGC
+chr6 22317982 22317990 -V_CACD_01 9.89755e-06 - CCACACCC
+chr6 22318050 22318062 +V_USF_Q6_01 4.40024e-06 + GGCCAGGTGACA
+chr6 22318099 22318114 +V_STAT5A_01 6.81283e-06 + CAGTTCTTGGAAACA
+chr6 22367256 22367271 +V_HES1_Q2 8.82762e-06 + AAGCCTGGTGGCTCT
+chr6 22367269 22367280 -V_SMAD_Q6_01 8.17406e-06 - AGGCCAGACAG
+chr6 22367351 22367369 -V_SRF_Q4 1.25759e-06 - GCCAAATAAGGGAATAGA
+chr6 22367353 22367368 -V_SRF_Q5_01 5.01188e-06 - CCAAATAAGGGAATA
+chr6 22367353 22367372 +V_SRF_Q5_02 7.9442e-07 + TATTCCCTTATTTGGCCAC
+chr6 22367354 22367369 -V_SRF_C 8.2074e-06 - GCCAAATAAGGGAAT
+chr6 22367354 22367372 +V_SRF_01 2.16461e-06 + ATTCCCTTATTTGGCCAC
+chr6 22367354 22367372 -V_SRF_01 9.26184e-06 - GTGGCCAAATAAGGGAAT
+chr6 22367356 22367370 -V_SRF_Q6 4.91031e-07 - GGCCAAATAAGGGA
+chr6 22367357 22367372 +V_SRF_C 8.92759e-06 + CCCTTATTTGGCCAC
+chr6 22367365 22367381 -V_MAF_Q6 2.6445e-06 - GAGGAGGAAGTGGCCA
+chr6 22367366 22367383 -V_PU1_01 6.15878e-06 - AGGAGGAGGAAGTGGCC
+chr6 22367370 22367382 -V_ELF1_Q6 3.87486e-06 - GGAGGAGGAAGT
+chr6 23040544 23040565 +V_HNF1_Q6_01 4.55962e-06 + TTCAGTAACTAATTAACATTT
+chr6 23040643 23040658 -V_OCT4_01 7.41924e-06 - TTTTCTTATGGAAAA
+chr6 28853344 28853359 +V_DMRT1_01 1.44151e-06 + CTGATACAATGTAAC
+chr6 28853346 28853361 -V_DMRT1_01 6.49273e-06 - TCGTTACATTGTATC
+chr6 28853349 28853364 -V_DMRT3_01 7.84334e-06 - CAGTCGTTACATTGT
+chr6 29570257 29570272 +V_VDR_Q3 9.09802e-07 + GGGGGAGGGGGGAGG
+chr6 29570272 29570284 +V_EGR2_01 7.57802e-06 + AGGAGTGGGCGT
+chr6 29570278 29570290 -V_CREB_02 1.22819e-06 - GTGGTGACGCCC
+chr6 29570336 29570348 +V_CMYC_02 6.55801e-06 + GGGCACGTGCTT
+chr6 29570336 29570348 -V_CMYC_01 2.31872e-06 - AAGCACGTGCCC
+chr6 29570336 29570348 -V_CMYC_02 4.59628e-06 - AAGCACGTGCCC
+chr6 29570364 29570378 +V_CEBPB_02 2.27259e-07 + AGCTTGCACAACTG
+chr6 29581812 29581826 -V_ETS2_B 4.30291e-06 - TGGAGGAAGTATGT
+chr6 30109673 30109684 +V_HELIOSA_02 8.07231e-06 + TCAAGGAAAAC
+chr6 30109778 30109788 +V_P53_DECAMER_Q2 6.84641e-06 + GGACAAGCCC
+chr6 30222547 30222561 +V_GATA1_03 7.17727e-07 + ATGCAGATTACGGC
+chr6 31177536 31177551 -V_OCT4_02 6.14224e-06 - ATTGATATGTAAATG
+chr6 31177537 31177552 -V_OCT4_01 1.18992e-06 - AATTGATATGTAAAT
+chr6 31177584 31177598 -V_GATA1_03 3.29658e-06 - ATGCTGATTAGAGG
+chr6 31177597 31177620 +V_COUPTF_Q6 8.98752e-07 + TTCCGTGACCCCAGCTCCCTGAT
+chr6 31898288 31898303 -V_OCT4_02 5.88393e-08 - TTTGTGATGCAAATG
+chr6 31898289 31898304 -V_OCT4_01 5.31494e-07 - ATTTGTGATGCAAAT
+chr6 31898343 31898358 -V_ETS1_B 4.95894e-07 - GCAGGAAGGGACTGC
+chr6 31898385 31898404 +V_PU1_Q4 1.19604e-06 + TCACTGTACTTCCTCCTTT
+chr6 31898388 31898405 -V_PU1_01 9.50289e-07 - CAAAGGAGGAAGTACAG
+chr6 31898392 31898404 -V_ELF1_Q6 9.35761e-06 - AAAGGAGGAAGT
+chr6 32152804 32152818 -V_KROX_Q6 1.8783e-06 - CCCACCCCCACCTC
+chr6 32152807 32152818 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr6 32152809 32152818 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr6 32152809 32152819 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr6 32152809 32152822 +V_MAZR_01 9.79421e-06 + GGGGGTGGGGAGC
+chr6 32152867 32152882 -V_OCT4_01 4.57831e-06 - CATTAAAATGCTAAT
+chr6 32152917 32152932 -V_OCT4_01 4.57831e-06 - CATTTAAATGCAGAT
+chr6 34137640 34137655 +V_TAXCREB_02 6.45494e-06 + ATGACACACTTCCCC
+chr6 34137758 34137767 -V_ZIC1_01 9.41154e-06 - TGGGGGGTC
+chr6 34137758 34137767 -V_ZIC3_01 7.18016e-06 - TGGGGGGTC
+chr6 34137760 34137773 +V_AP2_Q6_01 7.38468e-06 + CCCCCCACAGGCT
+chr6 34294228 34294239 -V_ER_Q6_02 1.49026e-06 - AAGGTCACGGT
+chr6 34294237 34294254 +V_HSF1_Q6 1.88941e-07 + TTTCCAGAACCTTCTTC
+chr6 34294238 34294251 +V_HSF_Q6 4.57735e-06 + TTCCAGAACCTTC
+chr6 34294366 34294377 +V_EGR_Q6 8.85524e-06 + GTGGGGGCATC
+chr6 34357491 34357500 +V_FOXO1_Q5 7.27852e-06 + AAAAACAAA
+chr6 34570397 34570407 +V_NKX22_01 4.33582e-06 + TTAAGTAGTT
+chr6 34570414 34570422 -V_CACD_01 9.89755e-06 - CCACACCC
+chr6 34570422 34570443 -V_HNF1_Q6_01 7.00741e-06 - CTGAGATAATGATCAACCAGA
+chr6 34570454 34570463 -V_YY1_Q6 3.30926e-06 - GCCATCTTG
+chr6 34570539 34570551 +V_GLI_Q2 9.40421e-06 + CCTGGGTGGCCT
+chr6 37571752 37571761 -V_SMAD3_Q6 7.33929e-06 - TGTCTGCCT
+chr6 37571769 37571781 -V_MYOD_01 4.12991e-06 - GGACAGCTGGCG
+chr6 37807684 37807699 +V_HMGIY_Q3 1.28381e-06 + CTTGGAATTTCCTGA
+chr6 37807686 37807696 +V_NFKAPPAB65_01 5.16177e-06 + TGGAATTTCC
+chr6 37977981 37977996 +V_IRF_Q6 7.74377e-06 + GGTGCTTTCACTTCT
+chr6 37977984 37977997 -V_IRF1_01 7.58634e-06 - GAGAAGTGAAAGC
+chr6 37977984 37977997 -V_IRF2_01 2.11362e-06 - GAGAAGTGAAAGC
+chr6 37977985 37977996 -V_IRF_Q6_01 5.29553e-06 - AGAAGTGAAAG
+chr6 39383573 39383584 -V_EVI1_03 6.70634e-06 - AGAGAAGATAA
+chr6 39383621 39383630 -V_ZIC1_01 2.71739e-06 - TGGGTGGTC
+chr6 39383621 39383630 -V_ZIC2_01 4.94877e-06 - TGGGTGGTC
+chr6 39383621 39383630 -V_ZIC3_01 2.71739e-06 - TGGGTGGTC
+chr6 39689441 39689454 +V_AP1_01 8.76324e-06 + TCTTGAGTCAGCC
+chr6 39690076 39690086 +V_NKX25_Q5 5.12638e-06 + TCCCACTTCA
+chr6 47203211 47203219 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr6 47316443 47316464 -V_PPARG_01 5.82642e-06 - TGCTGGGTGTAAGGTCAACTG
+chr6 47925112 47925123 -V_FLI1_Q6 9.02891e-06 - CAGGAAGCCAC
+chr6 47925154 47925167 -V_AP2_Q6_01 7.38468e-06 - GAGCCCTCAGGCT
+chr6 49172001 49172012 +V_FOXO4_01 2.58623e-06 + ATAAACAAGTC
+chr6 49172032 49172041 +V_AP2ALPHA_01 3.00918e-06 + GCCCGGGGC
+chr6 49172032 49172041 +V_AP2GAMMA_01 3.00918e-06 + GCCCGGGGC
+chr6 49172032 49172041 -V_AP2ALPHA_01 6.01835e-06 - GCCCCGGGC
+chr6 49172032 49172041 -V_AP2GAMMA_01 6.01835e-06 - GCCCCGGGC
+chr6 49172130 49172148 -V_AHR_01 6.00169e-06 - GTTCCAGCTTGCCTGACT
+chr6 49250988 49251006 -V_NF1_Q6 5.86126e-06 - ACTTGGCTTGGAGCCCCC
+chr6 49251093 49251110 -V_PPARG_03 8.94742e-06 - TGCTTGGGAAAAGGTCT
+chr6 49251099 49251113 -V_EFC_Q6 5.04342e-06 - AGTTGCTTGGGAAA
+chr6 49302967 49302983 -V_HAND1E47_01 2.01502e-06 - AATGGCTTCTGGCAAT
+chr6 49303034 49303049 +V_SREBP_Q6 4.69758e-06 + CTTCTCACCCCAGAG
+chr6 49303068 49303084 -V_HAND1E47_01 8.05914e-06 - GATGGCTTCTGGCAAT
+chr6 50336012 50336026 +V_DMRT7_01 1.189e-06 + TTGAAACAATGTTG
+chr6 50336012 50336027 +V_DMRT1_01 3.23848e-08 + TTGAAACAATGTTGC
+chr6 50336014 50336029 -V_DMRT1_01 1.58987e-07 - TGGCAACATTGTTTC
+chr6 50336025 50336035 +V_TAL1_Q6 4.87508e-06 + GCCAGCTGCC
+chr6 51026936 51026951 +V_VDR_Q3 3.12027e-06 + GGGTGAATGGGGACC
+chr6 51027003 51027019 -V_AP2_Q3 9.58219e-06 - GGCCCTGGGCAGGGCA
+chr6 51027023 51027044 +V_DR3_Q4 5.55774e-06 + GCTCTCCCCCATCACCCCTCT
+chr6 51027025 51027040 -V_VDR_Q3 8.52845e-06 - GGGTGATGGGGGAGA
+chr6 51027029 51027039 -V_GATA1_01 3.85013e-06 - GGTGATGGGG
+chr6 51455897 51455908 -V_SP1SP3_Q4 8.91927e-06 - CCCCCGCCTGC
+chr6 51455898 51455912 -V_KROX_Q6 4.24911e-06 - CCTGCCCCCGCCTG
+chr6 51455901 51455912 +V_EGR_Q6 5.17898e-06 + GCGGGGGCAGG
+chr6 51455910 51455918 -V_CACD_01 9.89755e-06 - CCACACCC
+chr6 51455920 51455934 +V_BLIMP1_Q6 8.21933e-06 + AGAAAGGGAAGGGC
+chr6 51897877 51897886 +V_EVI1_06 5.97675e-06 + ACAAGATAA
+chr6 54161388 54161409 +V_PPARG_01 4.8239e-06 + CCTGGGGCCAAGGGTGACACG
+chr6 54161392 54161405 +V_DR1_Q3 3.68055e-06 + GGGCCAAGGGTGA
+chr6 54161392 54161405 -V_PPAR_DR1_Q2 4.57755e-06 - TCACCCTTGGCCC
+chr6 54161392 54161405 -V_HNF4_DR1_Q3 6.41844e-06 - TCACCCTTGGCCC
+chr6 54161392 54161405 -V_COUP_DR1_Q6 8.56248e-06 - TCACCCTTGGCCC
+chr6 55109468 55109487 -V_OCT1_01 8.13542e-06 - ATGGTTATGCTAATGCAGC
+chr6 55109473 55109483 -V_POU3F2_02 3.63926e-06 - TTATGCTAAT
+chr6 55109473 55109488 -V_OCT4_01 9.65557e-06 - TATGGTTATGCTAAT
+chr6 55109523 55109532 -V_AP1_Q6_01 8.93783e-06 - ATGACTCAA
+chr6 56261151 56261171 -V_FOXP1_01 2.13015e-06 - TTTTTTTTTTTTTTTTTTTT
+chr6 58143740 58143757 +V_PPARG_03 5.76105e-06 + AACTGGGATAAAATTCA
+chr6 58143791 58143800 +V_HNF4_Q6 7.33929e-06 + AAGGTCCAA
+chr6 58143820 58143839 +V_ER_Q6 9.34334e-06 + CAAGGGCTTTGTGACCTTG
+chr6 60703133 60703144 -V_EVI1_02 4.94338e-06 - TGACAAGATAG
+chr6 60703133 60703144 -V_EVI1_05 6.50785e-06 - TGACAAGATAG
+chr6 60703240 60703253 +V_SOX_Q6 1.4467e-06 + CTCTTTGTTCTGT
+chr6 60703259 60703275 +V_NFKB_Q6_01 8.55659e-06 + GACAAGGGAACTCCCC
+chr6 61921154 61921170 +V_MEF2_01 2.10528e-06 + GCCTCAAAATAACTCT
+chr6 61921186 61921203 +V_HSF1_Q6 2.803e-07 + CTTCTAGCACTTTCTCG
+chr6 65220790 65220809 +V_ER_Q6 4.06944e-06 + TGAGGGCTATGTGACCTTC
+chr6 65524543 65524556 +V_RXRLXRB_01 2.29281e-06 + AGGTTGAAGGTCA
+chr6 65524544 65524558 +V_ERR1_Q2 8.28315e-06 + GGTTGAAGGTCAGA
+chr6 65524610 65524620 +V_P53_02 8.65429e-06 + GGGCATGCCT
+chr6 65524610 65524620 -V_P53_02 4.11978e-06 - AGGCATGCCC
+chr6 65524610 65524620 -V_P53_DECAMER_Q2 4.12901e-06 - AGGCATGCCC
+chr6 65524654 65524670 +V_EVI1_01 6.56471e-07 + AGACTAGATAAGAAAA
+chr6 65883396 65883406 +V_OCT1_B 8.43065e-06 + AATGCAAATC
+chr6 67186630 67186645 -V_OCT1_Q6 8.77396e-06 - AGAAATGTAAATAAC
+chr6 67186668 67186681 -V_NKX61_01 9.47725e-06 - TATTTAATTGACT
+chr6 67186693 67186706 +V_NFY_Q6_01 5.96025e-06 + CCCCAGCCAATGG
+chr6 67186694 67186710 +V_NFY_01 2.68498e-06 + CCCAGCCAATGGGGAA
+chr6 67186696 67186707 +V_ALPHACP1_01 4.48665e-06 + CAGCCAATGGG
+chr6 67186712 67186724 -V_NANOG_01 5.79837e-06 - GTGACCATTTCC
+chr6 68802906 68802916 -V_NFKAPPAB65_01 1.65463e-06 - GGGGATTTCC
+chr6 68802906 68802916 -V_CREL_01 1.3587e-06 - GGGGATTTCC
+chr6 68802906 68802916 -V_NFKAPPAB_01 4.37202e-06 - GGGGATTTCC
+chr6 68802928 68802941 -V_DEC_Q1 2.37756e-06 - GGCCAAGTGAAGA
+chr6 68803292 68803305 +V_HNF3_Q6 7.97369e-06 + AAAGACAAACAGT
+chr6 68803301 68803317 +V_S8_01 8.86506e-06 + CAGTCTCAATTAACCT
+chr6 71576129 71576144 +V_OCT1_Q6 5.39975e-06 + CAGAATGCAAAGAAC
+chr6 71576160 71576179 +V_OCT1_01 3.19659e-06 + TTACATATGCTAATTAGAG
+chr6 71576163 71576175 +V_OCT1_07 6.48249e-06 + CATATGCTAATT
+chr6 71576163 71576177 -V_OCT1_05 1.1984e-06 - CTAATTAGCATATG
+chr6 71576164 71576174 +V_POU3F2_02 7.27852e-06 + ATATGCTAAT
+chr6 71576164 71576177 -V_OCT_C 3.34139e-06 - CTAATTAGCATAT
+chr6 71576167 71576181 +V_CHX10_01 9.92707e-06 + TGCTAATTAGAGTA
+chr6 72040084 72040099 -V_SREBP_Q6 4.19274e-06 - CCCCTCACACCACCT
+chr6 72040084 72040099 -V_SREBP1_Q5 1.64512e-06 - CCCCTCACACCACCT
+chr6 72072716 72072730 -V_MEIS1AHOXA9_01 6.45131e-06 - TGTCAGTTTAACGG
+chr6 72072716 72072730 -V_MEIS1BHOXA9_02 7.22837e-06 - TGTCAGTTTAACGG
+chr6 72072770 72072786 +V_DMRT2_01 7.42061e-07 + GAGAAGGATACATTGT
+chr6 72072774 72072789 +V_DMRT1_01 7.31766e-07 + AGGATACATTGTAGC
+chr6 72072776 72072791 -V_DMRT1_01 1.87081e-07 - CTGCTACAATGTATC
+chr6 72072849 72072861 +V_SREBP_Q3 7.64343e-06 + ATGATCACCCTA
+chr6 72410492 72410506 -V_FOXO3_01 4.79165e-06 - TGCTTGTTTATATT
+chr6 72410495 72410506 +V_FOXO4_01 3.20562e-06 + ATAAACAAGCA
+chr6 72410548 72410560 +V_LMO2COM_01 7.876e-06 + GGCCAGGTGCTT
+chr6 73318721 73318736 -V_OCT4_02 1.90479e-06 - TTTGTCATGTTAATG
+chr6 76589792 76589807 -V_OCT4_01 9.65557e-06 - TGTTCTAATGCAGAT
+chr6 76589799 76589818 -V_GR_Q6 5.54808e-06 - GAAGCTCCCTCTGTTCTAA
+chr6 76589816 76589839 -V_OCT1_04 3.74994e-06 - CATTCTTTATGCAAATGAATAGA
+chr6 76589818 76589837 -V_OCT1_01 8.77863e-06 - TTCTTTATGCAAATGAATA
+chr6 76589820 76589833 +V_OCT_C 1.45627e-06 + TTCATTTGCATAA
+chr6 76589821 76589832 +V_OCT1_Q5_01 1.56035e-06 + TCATTTGCATA
+chr6 76589821 76589832 +V_OCT_Q6 7.39888e-07 + TCATTTGCATA
+chr6 76589822 76589832 -V_OCT1_B 4.33582e-06 - TATGCAAATG
+chr6 82781460 82781488 -V_PAX5_01 3.42772e-06 - CCTCAGCCCAGTGAGGAGCAGCCTCAGG
+chr6 83646690 83646702 +V_GABP_B 9.67301e-06 + CCAGGAAGGGCA
+chr6 83646696 83646714 +V_RFX1_02 2.15773e-06 + AGGGCACCACAGCAACCT
+chr6 83843736 83843746 -V_NUR77_Q5 2.98426e-06 - CTGACCTTGC
+chr6 83843738 83843749 +V_ER_Q6_02 7.31305e-06 + AAGGTCAGGGT
+chr6 83843866 83843880 -V_ERR1_Q2 9.65657e-06 - GGTTAAAGGTCAAA
+chr6 83843868 83843881 +V_PPAR_DR1_Q2 4.41267e-06 + TGACCTTTAACCA
+chr6 83843868 83843881 +V_HNF4_DR1_Q3 8.70895e-06 + TGACCTTTAACCA
+chr6 83843868 83843881 -V_RXRLXRB_01 1.64968e-06 - TGGTTAAAGGTCA
+chr6 83843868 83843881 -V_DR1_Q3 3.04643e-06 - TGGTTAAAGGTCA
+chr6 83843868 83843882 +V_COUP_01 1.41012e-06 + TGACCTTTAACCAT
+chr6 83843868 83843885 -V_PPARG_03 6.0242e-06 - GTGATGGTTAAAGGTCA
+chr6 84246153 84246172 -V_PU1_Q4 1.49472e-06 - AGTATCTGGTTCCTCTTTT
+chr6 85894035 85894049 -V_FOXO4_02 7.08786e-06 - CCTTTGTTTACCCT
+chr6 86078877 86078896 -V_PPARA_02 9.41237e-06 - CAAGGTCACTGGGAGGAGG
+chr6 86078886 86078900 -V_ERR1_Q2 4.46186e-06 - ATTTCAAGGTCACT
+chr6 86078888 86078897 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr6 86078923 86078936 -V_ALX4_01 9.59891e-06 - CCTGTGAATAAAC
+chr6 86900975 86900986 +V_EBF_Q6 4.00905e-06 + CTCCCCAGGGA
+chr6 86900997 86901012 -V_OCT4_01 4.28625e-06 - CTTTCAAATGTAGAT
+chr6 86942866 86942878 +V_SRY_02 1.60347e-06 + GAAAACAAAAGG
+chr6 86942938 86942953 +V_SRF_C 3.72534e-06 + ACCCTTTAAGGCCAG
+chr6 86942990 86942999 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr6 87495803 87495815 -V_FOXO3A_Q1 8.18086e-06 - TGTAAATAAATG
+chr6 87495808 87495823 -V_OCT4_01 1.18992e-06 - AATTGATATGTAAAT
+chr6 87495820 87495832 -V_FOXO3A_Q1 9.47139e-06 - TGTAAATAAAAT
+chr6 87495825 87495840 -V_OCT4_01 3.90219e-07 - CTTTGATATGTAAAT
+chr6 87495851 87495866 -V_OCT4_01 1.18992e-06 - AATTGATATGTAAAT
+chr6 87495886 87495898 -V_SRY_02 7.75651e-06 - ATAAACAAAAGG
+chr6 87495899 87495912 -V_NRF2_Q4 1.6217e-06 - ATGCTGATTCAGG
+chr6 87495900 87495911 -V_MAF_Q6_01 9.11965e-06 - TGCTGATTCAG
+chr6 89076090 89076103 -V_SP1_Q6 1.21453e-07 - TGGGGGCGGGGCT
+chr6 89076091 89076101 -V_SP1_Q6_01 3.39206e-07 - GGGGCGGGGC
+chr6 89076092 89076101 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr6 89076092 89076102 +V_SP1_Q2_01 3.39206e-07 + CCCCGCCCCC
+chr6 89076102 89076121 -V_OCT1_01 3.8208e-06 - CTGAATATGCAAAAATGTT
+chr6 89076106 89076121 -V_OCT1_02 1.79138e-06 - CTGAATATGCAAAAA
+chr6 89076123 89076136 -V_HFH3_01 4.77876e-06 - TGGTGTTTATTTT
+chr6 90585749 90585760 +V_OCT1_Q5_01 3.58564e-06 + TTATTTGCATT
+chr6 90585749 90585760 +V_OCT_Q6 3.88942e-06 + TTATTTGCATT
+chr6 90585789 90585798 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr6 90585789 90585799 +V_SP1_Q2_01 6.40385e-06 + CCCCTCCCCT
+chr6 90585790 90585798 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr6 92446178 92446193 +V_TST1_01 1.95939e-07 + GTGGAATTAGACTGC
+chr6 92856073 92856088 +V_ETS1_B 2.43138e-06 + AGAGGAAGTGGGGGA
+chr6 92856074 92856086 -V_ETS_Q4 4.36344e-06 - CCCCACTTCCTC
+chr6 92856113 92856132 -V_PPARA_02 2.92443e-06 - GTGGGTCATGGAGGGGGTG
+chr6 92856122 92856141 -V_PPARA_02 2.57121e-06 - GAAGGCCATGTGGGTCATG
+chr6 92856135 92856149 -V_PAX6_Q2 7.96818e-06 - CTGGGCTGGAAGGC
+chr6 94763876 94763891 +V_IPF1_Q4_01 3.95561e-07 + TCAGTCATTAGAGCC
+chr6 94799887 94799902 -V_VDR_Q3 9.72998e-07 - GGTGGAGTGGGGAGA
+chr6 95053870 95053885 +V_OCT4_01 3.26181e-06 + TATTCTAATGCTAAA
+chr6 95304007 95304019 -V_PXR_Q2 4.02944e-06 - TGGGTTAGTGAC
+chr6 97051775 97051788 +V_HFH4_01 6.29512e-06 + GAGGGTTTGTTTA
+chr6 97051858 97051867 +V_CACBINDINGPROTEIN_Q6 2.23138e-06 + GAGGGTGGG
+chr6 97052045 97052069 +V_STAT5A_02 4.69306e-06 + TGCCCGGAATTGATTTGCATAGAG
+chr6 97052054 97052067 +V_OCT_C 5.64798e-06 + TTGATTTGCATAG
+chr6 97052054 97052069 -V_OCT1_Q6 9.35394e-06 - CTCTATGCAAATCAA
+chr6 97052055 97052066 +V_OCT1_Q5_01 3.69944e-07 + TGATTTGCATA
+chr6 97052055 97052066 +V_OCT_Q6 3.69944e-07 + TGATTTGCATA
+chr6 97052056 97052066 -V_OCT1_B 1.34745e-06 - TATGCAAATC
+chr6 97052078 97052101 -V_COUPTF_Q6 3.7102e-06 - GCCTCTGATCTTTGCTCTGTCCT
+chr6 97052415 97052427 -V_PAX4_03 6.56043e-06 - CAGCTCCACCCC
+chr6 97052445 97052459 -V_BLIMP1_Q6 1.45354e-06 - GAGGAGGGAAAGGG
+chr6 97052465 97052480 +V_OCT4_01 1.66292e-06 + CTTTCAAATGCTAAT
+chr6 97052555 97052569 +V_OCT1_06 8.86248e-06 + CTTATTTACATGTC
+chr6 97052555 97052570 -V_OCT1_Q6 9.35394e-06 - AGACATGTAAATAAG
+chr6 97052558 97052573 -V_OCT4_01 4.91956e-06 - TATAGACATGTAAAT
+chr6 97901847 97901859 -V_PAX4_03 9.67001e-06 - AGCCTCCACCCC
+chr6 97901872 97901887 +V_OCT4_02 1.18248e-06 + TTTGTCATGCAAAGG
+chr6 98433529 98433547 -V_GCNF_01 7.13378e-06 - CTTTAGTTCAAGGGCAAG
+chr6 99977680 99977695 +V_OCT4_01 3.49929e-06 + TTTTGTCATGGAAAA
+chr6 99977681 99977696 +V_OCT4_02 4.3087e-06 + TTTGTCATGGAAAAG
+chr6 100042929 100042940 +V_EBF_Q6 7.15927e-06 + GTCCCCTGAGG
+chr6 100737450 100737463 -V_SP1_Q6 2.54389e-06 - CAGGGGCGGGGCA
+chr6 100737451 100737461 -V_SP1_Q6_01 3.39206e-07 - GGGGCGGGGC
+chr6 100737452 100737461 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr6 100737452 100737462 +V_SP1_Q2_01 1.0915e-06 + CCCCGCCCCT
+chr6 100979549 100979562 +V_SP1_Q6 3.06772e-06 + TGGGGGAGGGGGC
+chr6 100979550 100979559 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr6 100979550 100979560 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr6 100979550 100979561 -V_SP1SP3_Q4 2.8432e-06 - CCCCCTCCCCC
+chr6 100979551 100979559 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr6 100979551 100979560 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr6 100979551 100979561 +V_SP1_Q6_01 8.48538e-06 + GGGGAGGGGG
+chr6 100979551 100979564 +V_MAZR_01 3.8307e-06 + GGGGAGGGGGCAA
+chr6 100979551 100979565 -V_KROX_Q6 3.08349e-06 - CTTGCCCCCTCCCC
+chr6 100979596 100979610 +V_E2A_Q2 6.24606e-06 + GCAGCTGCTGCAGG
+chr6 102696325 102696336 -V_SMAD_Q6_01 5.09972e-06 - CAGGCAGACAG
+chr6 102696326 102696335 +V_SMAD3_Q6 7.33929e-06 + TGTCTGCCT
+chr6 102696381 102696394 +V_HFH4_01 4.06855e-06 + TTGTGTTTGTTTG
+chr6 102696562 102696579 +V_PU1_01 7.57258e-06 + CAAAAGGGGAAGCACTT
+chr6 102696615 102696638 -V_COUPTF_Q6 3.11579e-06 - TCCTATGCCCCTTCCCTCCTGCT
+chr6 102696616 102696631 +V_SPZ1_01 3.49797e-07 + GCAGGAGGGAAGGGG
+chr6 102696631 102696643 +V_NFAT_Q6 8.79182e-07 + CATAGGAAAAAT
+chr6 102696658 102696673 +V_SPZ1_01 6.9171e-07 + GCAGGAGGGATGGGG
+chr6 102696673 102696685 +V_NFAT_Q6 1.42475e-06 + CAGTGGAAAAAG
+chr6 102696679 102696696 +V_PU1_01 3.47628e-07 + AAAAAGAGGAAGTACTT
+chr6 102696680 102696692 +V_ELF1_Q6 9.17254e-07 + AAAAGAGGAAGT
+chr6 102696680 102696699 -V_PU1_Q4 2.63808e-06 - GAGAAGTACTTCCTCTTTT
+chr6 102696682 102696696 +V_ETS2_B 2.52603e-06 + AAGAGGAAGTACTT
+chr6 104934254 104934266 -V_GATA4_Q3 9.72874e-06 - AGATCAAAGGCA
+chr6 104934255 104934265 -V_LEF1_Q2_01 5.84716e-06 - GATCAAAGGC
+chr6 104934287 104934295 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr6 111322071 111322079 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr6 111322071 111322080 -V_CKROX_Q2 8.90515e-06 - TCCCTCCCC
+chr6 111322076 111322086 -V_NFKAPPAB_01 8.50103e-06 - GGGACATCCC
+chr6 112835383 112835394 +V_MYB_Q3 3.40516e-06 + AGGGCCAGTTA
+chr6 112835388 112835402 -V_PAX6_Q2 7.01918e-06 - CTGTGCTGTAACTG
+chr6 112835413 112835423 -V_LEF1_Q2_01 1.81713e-06 - CATCAAAGGG
+chr6 119274876 119274889 -V_ZEC_01 7.63279e-06 - CTTGCTAGGTTGC
+chr6 119288261 119288275 +V_NFKB_Q6 8.78215e-06 + CGGGGACCTTCCTT
+chr6 119288354 119288369 +V_OCT4_01 1.09956e-06 + CATTCAAATGCAAAA
+chr6 119476651 119476664 +V_SP1_Q6 2.31776e-06 + AGTGGGCGGAGCC
+chr6 119476652 119476663 +V_EGR_Q6 9.84646e-06 + GTGGGCGGAGC
+chr6 119476672 119476687 -V_DMRT1_01 1.02233e-06 - CTGATACTTTGTTTC
+chr6 119615772 119615782 -V_NUR77_Q5 2.98426e-06 - CTGACCTTGC
+chr6 119615802 119615814 +V_ELF1_Q6 3.08919e-06 + AGAACAGGAAGT
+chr6 120144602 120144617 -V_SREBP_Q6 9.43867e-07 - GCGACCACCCCACCG
+chr6 120144602 120144617 -V_SREBP1_Q5 1.28926e-06 - GCGACCACCCCACCG
+chr6 120144605 120144617 -V_SREBP_Q3 4.0111e-06 - GCGACCACCCCA
+chr6 120144606 120144615 +V_ZIC1_01 4.94877e-06 + GGGGTGGTC
+chr6 120144606 120144615 +V_ZIC2_01 2.23138e-06 + GGGGTGGTC
+chr6 120144649 120144662 +V_AP2_Q6_01 2.39401e-06 + CTCGCCCCAGGCC
+chr6 120144685 120144707 -V_MEF2_02 6.62572e-06 - CCTAGGGGTTAAAATAGCACCC
+chr6 122292331 122292345 +V_FXR_Q3 5.4984e-06 + GAAGGTCATTAGCC
+chr6 122292333 122292346 -V_FXR_IR1_Q6 8.89682e-06 - AGGCTAATGACCT
+chr6 122574647 122574670 -V_OCT1_04 4.4301e-06 - TTATTAAGATGCAAATTCTCACA
+chr6 122574651 122574665 +V_OCT1_05 5.61051e-06 + AGAATTTGCATCTT
+chr6 122574654 122574669 -V_OCT4_01 3.26181e-06 - TATTAAGATGCAAAT
+chr6 122574672 122574682 +V_TAL1_Q6 4.87508e-06 + TCCAGCTGGT
+chr6 122574697 122574712 -V_OCT4_02 6.36693e-07 - TTTGACATGCAAATT
+chr6 122574698 122574713 -V_OCT4_01 4.7383e-08 - CTTTGACATGCAAAT
+chr6 122727402 122727417 +V_AML_Q6 3.274e-07 + AGCTCTGTGGTTAGC
+chr6 122727402 122727417 -V_PEBP_Q6 2.25458e-08 - GCTAACCACAGAGCT
+chr6 124904528 124904543 +V_OCT4_01 1.40241e-06 + TATTGTAATGCTAAA
+chr6 124904529 124904544 +V_OCT4_02 6.55103e-06 + ATTGTAATGCTAAAT
+chr6 124904549 124904563 +V_ERR1_Q2 8.28315e-06 + ACCTGAAGGTCAGG
+chr6 125690390 125690401 +V_SP1SP3_Q4 2.26051e-06 + CCCCCCCCCTC
+chr6 125690391 125690402 +V_SP1SP3_Q4 5.39613e-06 + CCCCCCCCTCG
+chr6 125690429 125690440 +V_SMAD_Q6_01 8.17406e-06 + TGTGCAGACAG
+chr6 125690450 125690464 +V_MEIS1BHOXA9_02 5.99442e-06 + TGAGACTTTTATGG
+chr6 125690509 125690532 +V_COUPTF_Q6 3.7102e-06 + CTCCCTGACCTCTGGATCTTTAC
+chr6 125690514 125690528 +V_COUP_01 8.81413e-06 + TGACCTCTGGATCT
+chr6 127053646 127053660 -V_OCT1_05 7.22059e-06 - GGAATTAGCATTTT
+chr6 127053653 127053667 -V_PAX6_Q2 7.20633e-07 - CTGTCCTGGAATTA
+chr6 127053659 127053668 -V_T3R_Q6 8.74404e-06 - CCTGTCCTG
+chr6 127053772 127053795 -V_COUPTF_Q6 9.98924e-06 - TCCAGAGATCCCTGCCCCCTGAT
+chr6 127286953 127286972 -V_OCT1_01 4.5231e-06 - ATGAAAATGCAAATGTGGG
+chr6 127286999 127287009 -V_LEF1_Q2_01 4.03003e-06 - CATCAAAGTG
+chr6 127606178 127606194 +V_HAND1E47_01 8.05914e-06 + GATGGCTTCTGGCAAT
+chr6 127606263 127606276 -V_CRX_Q4 2.86299e-06 - TTCCTAATCCCCT
+chr6 127606272 127606287 -V_IRF_Q6 9.74361e-06 - CTAAGTTTCTTTTCC
+chr6 127658325 127658349 -V_STAT5A_02 2.6539e-06 - TTCAAAGTACTTCTGTTCCCTGAG
+chr6 127658420 127658438 -V_HNF3_Q6_01 1.41138e-06 - CCCCTTGTTTGCTTTGCT
+chr6 127658433 127658446 +V_SP1_Q6 3.53849e-06 + AGGGGGCGGGGAG
+chr6 127658434 127658444 -V_SP1_Q2_01 3.39206e-07 - CCCCGCCCCC
+chr6 127658435 127658444 -V_CKROX_Q2 6.67377e-06 - CCCCGCCCC
+chr6 127658435 127658445 +V_SP1_Q6_01 2.74385e-06 + GGGGCGGGGA
+chr6 128211682 128211692 +V_MYOD_Q6 6.66004e-06 + TCCACCTGCC
+chr6 128211683 128211697 +V_E2A_Q2 1.9257e-07 + CCACCTGCCTCTGT
+chr6 128211684 128211692 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr6 129314123 129314138 -V_OCT4_01 5.63049e-06 - CATTCTCATTCAAAC
+chr6 129314139 129314151 +V_TTF1_Q6 8.45617e-06 + CCCCCAAGGGCT
+chr6 129314149 129314162 +V_OCT_C 7.52368e-06 + CTCATTTGAATAC
+chr6 129314200 129314210 -V_TBX5_Q5 9.35431e-06 - GTCACACCTT
+chr6 133913520 133913535 +V_OCT4_01 3.26181e-06 + CATTGTCATGCTTAT
+chr6 133913521 133913536 +V_OCT4_02 8.50894e-06 + ATTGTCATGCTTATC
+chr6 133937013 133937023 +V_GATA1_05 9.8464e-06 + GCTGATAACC
+chr6 133937385 133937415 +V_PAX4_04 7.0256e-06 + AACAATACCACCCTCTTCCACCTCCACCCC
+chr6 133937403 133937415 +V_PAX4_03 1.74945e-06 + CACCTCCACCCC
+chr6 135250613 135250621 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr6 135250644 135250653 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr6 135250716 135250726 -V_GATA6_01 2.4539e-06 - AAAGATAAGC
+chr6 135823438 135823453 -V_OCT4_01 4.01204e-06 - CTTTGAAATGTAAAG
+chr6 135823598 135823612 +V_DMRT7_01 9.63794e-06 + TTGAAACAATGTAG
+chr6 135823598 135823613 +V_DMRT1_01 1.17062e-06 + TTGAAACAATGTAGA
+chr6 136100233 136100241 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr6 136100273 136100287 -V_OCT1_05 9.34101e-06 - CTCATTTCCATTTC
+chr6 136100374 136100388 -V_PAX6_Q2 1.03567e-06 - CTGACCTGGCACCC
+chr6 137118868 137118880 -V_IK2_01 9.85542e-07 - CTTTGGGAATCC
+chr6 137118901 137118913 +V_ELF1_Q6 8.19566e-06 + GCAACAGGAAAT
+chr6 137118903 137118917 +V_ETS2_B 6.44463e-06 + AACAGGAAATGTCT
+chr6 137118967 137118980 -V_AP1_01 3.63092e-06 - CAGTGAGTCACCA
+chr6 137118968 137118979 +V_AP1FJ_Q2 3.49199e-06 + GGTGACTCACT
+chr6 137118968 137118979 +V_AP1_Q6 1.40518e-06 + GGTGACTCACT
+chr6 137118968 137118979 +V_AP1_Q4 1.41718e-06 + GGTGACTCACT
+chr6 137618202 137618220 -V_FOXJ2_01 3.58897e-06 - AAGCAAACAAACAAAAAA
+chr6 137618204 137618216 +V_FOXD3_01 9.53633e-06 + TTTTGTTTGTTT
+chr6 137618204 137618217 +V_HFH4_01 5.28594e-06 + TTTTGTTTGTTTG
+chr6 137618206 137618224 +V_HNF3_Q6_01 1.09651e-06 + TTGTTTGTTTGCTTTTTA
+chr6 137618206 137618224 -V_FOXJ2_01 2.41928e-06 - TAAAAAGCAAACAAACAA
+chr6 137618208 137618221 +V_FOX_Q2 1.93154e-06 + GTTTGTTTGCTTT
+chr6 137618209 137618222 -V_HNF3_Q6 7.04647e-06 - AAAAGCAAACAAA
+chr6 137618238 137618248 +V_SP1_Q2_01 6.40385e-06 + CCCCGCCCAG
+chr6 137618523 137618531 +V_CACD_01 9.89755e-06 + CCACACCC
+chr6 137889493 137889506 -V_OCT_C 8.94137e-06 - CTCATTAGCATGG
+chr6 142701502 142701515 -V_SOX_Q6 2.73292e-06 - CTCTTTGATATGT
+chr6 142701599 142701615 -V_AP2_Q3 5.34192e-06 - GCCCCTGGGCTGGAGA
+chr6 143797252 143797262 -V_NUR77_Q5 8.43564e-06 - TTGACCTTCC
+chr6 144341888 144341906 -V_CMYB_01 4.39308e-06 - CCCTGAGGCAGTTAGCGG
+chr6 145427714 145427725 +V_FLI1_Q6 3.37651e-06 + CAGGAAGTGCC
+chr6 145427714 145427726 -V_ETS_Q4 6.38093e-07 - AGGCACTTCCTG
+chr6 146106824 146106843 +V_SEF1_C 3.81729e-06 + GACACAGAGAGCTGTGATT
+chr6 146106833 146106845 -V_GFI1B_01 1.21702e-06 - TAAATCACAGCT
+chr6 146106838 146106849 +V_OCT1_Q5_01 4.4061e-06 + TGATTTACATA
+chr6 146106838 146106849 +V_OCT_Q6 8.67576e-06 + TGATTTACATA
+chr6 146742075 146742093 +V_FOXJ2_01 2.78657e-08 + TAATAAATAAACAAACAA
+chr6 146742075 146742093 -V_HNF3_Q6_01 7.43361e-06 - TTGTTTGTTTATTTATTA
+chr6 146742078 146742091 -V_FOX_Q2 3.73483e-07 - GTTTGTTTATTTA
+chr6 146742078 146742091 -V_HFH3_01 1.70454e-06 - GTTTGTTTATTTA
+chr6 146742078 146742091 -V_HFH8_01 3.74592e-06 - GTTTGTTTATTTA
+chr6 146742078 146742091 -V_HFH4_01 8.44407e-06 - GTTTGTTTATTTA
+chr6 146742079 146742091 -V_FOXD3_01 2.97484e-06 - GTTTGTTTATTT
+chr6 146742079 146742097 +V_FOXJ2_01 3.2621e-06 + AAATAAACAAACAAACCC
+chr6 146742081 146742094 +V_HNF3_Q6 9.99776e-07 + ATAAACAAACAAA
+chr6 146742082 146742095 -V_FOX_Q2 3.05564e-07 - GTTTGTTTGTTTA
+chr6 146742082 146742095 -V_HFH3_01 7.99234e-07 - GTTTGTTTGTTTA
+chr6 146742082 146742095 -V_HFH4_01 6.7578e-07 - GTTTGTTTGTTTA
+chr6 146742083 146742095 -V_FOXD3_01 9.66278e-07 - GTTTGTTTGTTT
+chr6 146742149 146742163 -V_KROX_Q6 4.70749e-06 - CCCTCCCCCACCCA
+chr6 146742154 146742163 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr6 146742154 146742164 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr6 146742154 146742167 +V_MAZR_01 6.26113e-06 + GGGGGAGGGGTAC
+chr6 146742155 146742163 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr6 146742155 146742164 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr6 146742155 146742165 +V_SP1_Q6_01 9.74073e-06 + GGGGAGGGGT
+chr6 146742184 146742195 -V_EBF_Q6 2.42561e-06 - GTCCCTTGGGG
+chr6 147148062 147148075 -V_AP1_01 7.1696e-06 - CAGTGAGTCAGGC
+chr6 147148064 147148073 -V_AP1_C 7.33929e-06 - GTGAGTCAG
+chr6 147148065 147148077 +V_AP1_Q2_01 4.82754e-06 + TGACTCACTGTT
+chr6 147148169 147148181 +V_ICSBP_Q6 3.08451e-06 + AAACAGAAACTG
+chr6 149086598 149086619 -V_PPARG_01 3.13367e-06 - CACTAGGCCAAAGGTCACTGA
+chr6 149086601 149086614 +V_HNF4ALPHA_Q6 3.03606e-06 + GTGACCTTTGGCC
+chr6 149086601 149086615 -V_HNF4_Q6_01 1.05799e-07 - AGGCCAAAGGTCAC
+chr6 149086602 149086615 +V_PPAR_DR1_Q2 9.96554e-08 + TGACCTTTGGCCT
+chr6 149086602 149086615 +V_HNF4_DR1_Q3 8.69767e-08 + TGACCTTTGGCCT
+chr6 149086602 149086615 +V_COUP_DR1_Q6 1.55372e-07 + TGACCTTTGGCCT
+chr6 149086602 149086615 -V_RXRLXRB_01 3.39229e-07 - AGGCCAAAGGTCA
+chr6 149086602 149086615 -V_DR1_Q3 9.73878e-08 - AGGCCAAAGGTCA
+chr6 149086602 149086619 -V_PPARG_03 2.99542e-08 - CACTAGGCCAAAGGTCA
+chr6 149086602 149086622 -V_PPARA_01 6.10233e-07 - AGTCACTAGGCCAAAGGTCA
+chr6 149086615 149086626 +V_AP1_Q4 2.788e-06 + AGTGACTCACT
+chr6 149086617 149086629 +V_AP1_Q2_01 7.5907e-06 + TGACTCACTCTG
+chr7 3531001 3531010 +V_CACBINDINGPROTEIN_Q6 2.23138e-06 + GAGGGTGGG
+chr7 3531084 3531103 +V_NRSF_Q4 6.61005e-06 + GCTCAGCCCCTTGTCCTGG
+chr7 6730455 6730464 +V_MYB_Q5_01 2.71739e-06 + CAACTGCCC
+chr7 14283313 14283326 +V_AP2_Q6_01 5.04624e-06 + CAGGCCCCAGGCA
+chr7 14283315 14283331 +V_AP2_Q3 7.19772e-06 + GGCCCCAGGCAAGATC
+chr7 17187094 17187105 +V_NFE2_01 1.48643e-06 + AGCTGAGTCAC
+chr7 17187095 17187106 -V_AP1FJ_Q2 1.36855e-06 - GGTGACTCAGC
+chr7 17187095 17187106 -V_AP1_Q6 5.77866e-07 - GGTGACTCAGC
+chr7 17187095 17187106 -V_AP1_Q4 2.788e-06 - GGTGACTCAGC
+chr7 17187127 17187141 +V_BLIMP1_Q6 3.72722e-07 + GGAGAGGGAAAGGA
+chr7 17187199 17187217 -V_HNF1_Q6 8.49535e-06 - TTGTTACTATTTGTCAGA
+chr7 17406590 17406609 +V_PPARA_02 7.462e-06 + ACAGGGCAGATAGGTCAGG
+chr7 17406647 17406663 -V_AP2_Q3 3.38539e-07 - GGCCCCAGGCGGTGTT
+chr7 17406652 17406665 -V_AP2_Q6_01 2.07133e-06 - CTGGCCCCAGGCG
+chr7 17406666 17406677 +V_ER_Q6_02 7.31305e-06 + CAGGTCAGCCT
+chr7 17406684 17406693 +V_LYF1_01 7.33929e-06 + TTTGGGAGA
+chr7 17406700 17406710 -V_NKX22_01 2.69489e-06 - TTAAGTGCTT
+chr7 17406726 17406738 -V_ETS_Q4 9.83264e-07 - CCCCACTTCCTG
+chr7 18920911 18920926 -V_OCT4_02 1.90479e-06 - ATTCAGTTGCAAATT
+chr7 18920983 18920992 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr7 19524595 19524607 +V_AP2_Q6 3.8272e-06 + AGCCCACAGGCG
+chr7 19524605 19524624 -V_PU1_Q4 7.89869e-06 - TGGTCTCACTTCCTCATCG
+chr7 19524749 19524770 -V_PAX4_01 3.56855e-06 - TGCAGTCATGCGGACACCACT
+chr7 20513906 20513919 +V_FXR_IR1_Q6 2.65343e-06 + GGGTGACTGTCCT
+chr7 20513960 20513970 -V_NKX22_01 2.69489e-06 - TTAAGTGCTT
+chr7 20514001 20514016 +V_OCT4_01 6.02107e-06 + TATTGTGATGCTAAG
+chr7 20514002 20514017 +V_OCT4_02 4.76161e-07 + ATTGTGATGCTAAGG
+chr7 25302156 25302166 -V_IK_Q5 6.81053e-06 - TGTGGGAGGG
+chr7 25302257 25302272 +V_OCT4_01 9.05006e-06 + CATTCTTATTCAAAG
+chr7 25415367 25415381 +V_CREB_Q2_01 1.21903e-06 + GCTTACGTCATGGC
+chr7 25415369 25415380 -V_CREB_Q4_01 3.64236e-06 - CCATGACGTAA
+chr7 25730909 25730923 +V_PAX6_Q2 3.82895e-06 + CTGTCCTTGAGCTC
+chr7 25730924 25730936 -V_GABP_B 7.17043e-06 - GCAGGAAGAGCA
+chr7 25730988 25731002 +V_COUP_01 2.86979e-06 + TGACCTCTAAACCT
+chr7 25731038 25731053 -V_DMRT1_01 3.44311e-06 - TTGAAACATAGTTGC
+chr7 25731065 25731081 +V_DMRT2_01 1.13601e-06 + CAAATGGATACTTTGT
+chr7 25731069 25731084 +V_DMRT1_01 9.55793e-06 + TGGATACTTTGTGTC
+chr7 25732908 25732921 -V_SP1_Q6 5.21945e-06 - TGGGGGAGGGGTT
+chr7 25732909 25732919 -V_SP1_Q6_01 9.74073e-06 - GGGGAGGGGT
+chr7 25732910 25732919 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr7 25732910 25732920 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr7 25732911 25732919 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr7 25732911 25732920 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr7 25732911 25732925 +V_KROX_Q6 8.74919e-06 + CCCTCCCCCACAGC
+chr7 25869781 25869796 -V_CP2_02 3.39312e-06 - GCTGGGCTTGGCTGG
+chr7 25869844 25869853 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGG
+chr7 25869844 25869857 +V_PPAR_DR1_Q2 2.31043e-06 + TGACCTTGGGCCC
+chr7 25869844 25869857 +V_HNF4_DR1_Q3 9.09944e-06 + TGACCTTGGGCCC
+chr7 25869844 25869857 +V_COUP_DR1_Q6 2.48866e-06 + TGACCTTGGGCCC
+chr7 25869844 25869857 -V_DR1_Q3 3.04643e-06 - GGGCCCAAGGTCA
+chr7 25869844 25869858 +V_COUP_01 7.84802e-06 + TGACCTTGGGCCCT
+chr7 25869902 25869918 +V_AP2_Q3 8.56865e-06 + GGCCCCGGGCTGCCTC
+chr7 25869903 25869912 +V_AP2ALPHA_01 6.01835e-06 + GCCCCGGGC
+chr7 25869903 25869912 +V_AP2GAMMA_01 6.01835e-06 + GCCCCGGGC
+chr7 25869903 25869912 -V_AP2ALPHA_01 3.00918e-06 - GCCCGGGGC
+chr7 25869903 25869912 -V_AP2GAMMA_01 3.00918e-06 - GCCCGGGGC
+chr7 27491408 27491423 +V_HMGIY_Q3 3.97508e-06 + CGTGGAATTTCCTAA
+chr7 27491410 27491420 +V_NFKAPPAB65_01 5.16177e-06 + TGGAATTTCC
+chr7 27491441 27491452 -V_SMAD_Q6_01 8.79654e-06 - TATCCAGACAC
+chr7 28407377 28407392 +V_OCT4_01 7.94702e-06 + CTTTGGTATGCTAAT
+chr7 28407461 28407472 -V_E12_Q6 3.04076e-06 - GGCAGGTGTCA
+chr7 28407464 28407472 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr7 29545803 29545814 -V_PAX_Q6 1.94869e-06 - CTGGAACTCAA
+chr7 29545829 29545841 +V_SRY_02 9.08784e-06 + TAAAACAAAAGA
+chr7 29545922 29545932 +V_SP1_Q6_01 5.07461e-06 + GAGGCGGGGC
+chr7 31248821 31248830 +V_LRF_Q2 8.50606e-06 + GGGACCCCC
+chr7 31250022 31250032 -V_NUR77_Q5 2.98426e-06 - CTGACCTTCC
+chr7 31250029 31250047 +V_GCNF_01 3.97182e-06 + CAGGAGTTCAAGGTTATC
+chr7 31250071 31250086 +V_AML_Q6 7.82168e-06 + CACTCTGTGGTCAAC
+chr7 31250071 31250086 -V_PEBP_Q6 7.2777e-07 - GTTGACCACAGAGTG
+chr7 31677770 31677788 -V_SRF_Q4 1.51075e-07 - GCCAAATAAGGAAACAGA
+chr7 31677772 31677787 -V_SRF_Q5_01 7.72977e-07 - CCAAATAAGGAAACA
+chr7 31677772 31677791 +V_SRF_Q5_02 1.04701e-06 + TGTTTCCTTATTTGGCCAC
+chr7 31677773 31677788 -V_SRF_C 9.29583e-06 - GCCAAATAAGGAAAC
+chr7 31677775 31677789 -V_SRF_Q6 2.32445e-07 - GGCCAAATAAGGAA
+chr7 31677776 31677791 +V_SRF_C 1.04175e-06 + TCCTTATTTGGCCAC
+chr7 31842374 31842390 +V_AP2_Q3 7.62107e-06 + GCCCCCAGGGTGTGAC
+chr7 35444476 35444491 -V_HES1_Q2 8.2255e-06 - GAGGCTGGTGGCCTG
+chr7 35444585 35444598 +V_SP1_Q6 1.61497e-06 + GGGGGGTGGGGCT
+chr7 35444586 35444595 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr7 35444586 35444596 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr7 35444586 35444599 +V_MAZR_01 7.22993e-06 + GGGGGTGGGGCTG
+chr7 35444587 35444597 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr7 35444587 35444599 -V_PAX4_03 1.74945e-06 - CAGCCCCACCCC
+chr7 35444885 35444904 -V_GR_Q6 6.78487e-06 - ACAGAACCCTGTGTCCTAT
+chr7 35444904 35444918 +V_MEIS1BHOXA9_02 5.08725e-06 + TGACACTTTTGCAA
+chr7 35444944 35444958 -V_PAX6_Q2 1.17669e-06 - GTGACCTGTAACTC
+chr7 35444965 35444979 -V_HNF4_Q6_01 1.10089e-06 - AGACCAAAGGTCAC
+chr7 35444966 35444979 +V_PPAR_DR1_Q2 3.33435e-06 + TGACCTTTGGTCT
+chr7 35444966 35444979 +V_HNF4_DR1_Q3 3.56632e-06 + TGACCTTTGGTCT
+chr7 35444966 35444979 -V_RXRLXRB_01 9.21472e-06 - AGACCAAAGGTCA
+chr7 35444966 35444979 -V_DR1_Q3 5.44728e-06 - AGACCAAAGGTCA
+chr7 35444966 35444980 +V_COUP_01 3.35061e-06 + TGACCTTTGGTCTC
+chr7 35458373 35458384 -V_CP2_01 7.99762e-06 - GCCAGAACCAG
+chr7 35458384 35458403 +V_ER_Q6 2.02592e-06 + TCCAGTCAGGGTGACCTTC
+chr7 35458391 35458402 -V_ER_Q6_02 8.40206e-06 - AAGGTCACCCT
+chr7 35458393 35458414 +V_DR3_Q4 9.65243e-06 + GGTGACCTTCTTGGCTTTCTG
+chr7 35459031 35459044 -V_MAZR_01 6.58989e-06 - GGGGGAGGGGAAG
+chr7 35459034 35459043 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr7 35459034 35459044 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr7 35459035 35459043 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr7 35459035 35459044 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr7 35459044 35459060 -V_HAND1E47_01 3.6553e-06 - TTGAGGATCTGGCTTT
+chr7 35537655 35537668 +V_AP2_Q6_01 2.71709e-06 + GCTGCCCCAGGCC
+chr7 35739900 35739911 -V_PITX2_Q2 2.02962e-06 - AGTAATCCCAG
+chr7 35739901 35739920 +V_GR_Q6 2.94654e-06 + TGGGATTACTGTGTCCTAA
+chr7 35739943 35739956 +V_MAZR_01 7.22993e-06 + TGAGGTGGGGCCA
+chr7 36049360 36049371 +V_EBF_Q6 3.11689e-06 + GTCCCCTGGGG
+chr7 36049387 36049397 -V_NFKAPPAB65_01 8.78773e-06 - TGGGATTTCC
+chr7 36049387 36049397 -V_CREL_01 8.74404e-06 - TGGGATTTCC
+chr7 36049420 36049433 +V_GATA1_04 9.51553e-06 + GGAAGATAAGGGC
+chr7 36136293 36136305 -V_ICSBP_Q6 7.62927e-06 - AAAAAGAAACCG
+chr7 36136302 36136317 +V_OCT4_02 2.2199e-06 + TTTGAGATGCTAAAA
+chr7 36136396 36136410 +V_POU3F2_01 6.50128e-06 + ATTCATTCATTCAT
+chr7 36136400 36136414 +V_POU3F2_01 6.50128e-06 + ATTCATTCATTCAT
+chr7 36136404 36136418 +V_POU3F2_01 6.50128e-06 + ATTCATTCATTCAT
+chr7 36136415 36136428 -V_DEC_Q1 5.69274e-06 - CCCCAACTGAATG
+chr7 36252970 36252987 -V_HSF1_Q6 5.36429e-06 - CCTCTGGGAACTTCACA
+chr7 36253025 36253039 +V_MTF1_Q4 9.78336e-06 + ACTGCACACACCCC
+chr7 36802093 36802110 -V_NF1_Q6_01 3.71867e-06 - CTGGAAAACAGCCAATA
+chr7 37429436 37429451 +V_OCT4_01 7.41924e-06 + TATTCAAATGCTAAA
+chr7 37429507 37429522 +V_OCT4_01 7.94702e-06 + TTTTGTTGTGCAAAC
+chr7 37429548 37429565 +V_PPARG_03 8.20535e-06 + TACAAGGCTAAAGTTTA
+chr7 38030606 38030620 +V_GATA1_02 8.42748e-06 + TTGTAGATAGTGGA
+chr7 38030691 38030706 +V_DMRT3_01 7.84334e-06 + CATCTGATACATTGT
+chr7 38030694 38030709 +V_DMRT1_01 2.06681e-07 + CTGATACATTGTTTT
+chr7 38030711 38030726 +V_DMRT1_01 2.58051e-08 + CTGATACATTGTTTC
+chr7 38030728 38030743 +V_DMRT1_01 2.58051e-08 + CTGATACATTGTTTC
+chr7 38092278 38092295 +V_HSF1_Q6 6.7627e-06 + TTTCCAGGAACTTCATA
+chr7 38092387 38092402 -V_OCT4_02 4.03834e-06 - ATTGTCATGTAGATC
+chr7 38092388 38092403 -V_OCT4_01 4.36639e-07 - CATTGTCATGTAGAT
+chr7 38092397 38092413 -V_DMRT2_01 5.71485e-06 - GAGTATGTTCCATTGT
+chr7 38092419 38092431 +V_LMO2COM_01 5.97756e-06 + CTGCAGGTGGTG
+chr7 38251996 38252005 -V_EVI1_06 5.97675e-06 - ACAAGATAA
+chr7 38252052 38252080 +V_PAX5_01 6.77263e-06 + CTGGGGAGCAGAGTGGAGAAGAGGGCGC
+chr7 38260637 38260649 +V_LMO2COM_01 4.77141e-06 + GTCCAGGTGCAG
+chr7 38260762 38260774 +V_PAX4_03 5.05761e-06 + ACCCCCCACCCC
+chr7 38260763 38260776 -V_SP1_Q6 8.76141e-06 - TGGGGGTGGGGGG
+chr7 38260764 38260775 +V_SP1SP3_Q4 8.91927e-06 + CCCCCACCCCC
+chr7 38260765 38260775 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr7 38260766 38260775 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr7 38260766 38260777 -V_EGR_Q6 8.04446e-06 - GTGGGGGTGGG
+chr7 38260766 38260780 +V_KROX_Q6 9.17068e-06 + CCCACCCCCACACA
+chr7 38338805 38338816 -V_LEF1TCF1_Q4 2.36341e-06 - CCTTTGTTGTC
+chr7 38338815 38338828 -V_SP1_Q6 4.47623e-06 - GAGGGGCGGGAGC
+chr7 38338896 38338910 +V_GATA1_03 7.17727e-07 + AGGAGGATTAGAGC
+chr7 38338914 38338928 -V_BLIMP1_Q6 3.20734e-06 - GGGAAGAGAAAGGA
+chr7 38361629 38361641 +V_FOXD3_01 2.76774e-06 + GAATGTTTGCTT
+chr7 38361657 38361666 +V_LYF1_01 7.33929e-06 + TTTGGGAGG
+chr7 38361657 38361667 +V_IK_Q5 8.83478e-06 + TTTGGGAGGT
+chr7 38361668 38361678 +V_NFAT_Q4_01 4.46892e-06 + GTGGAAACTT
+chr7 38942051 38942066 -V_CP2_02 1.36514e-06 - GCTGGTCTGCTCTGG
+chr7 38942060 38942070 +V_TAL1_Q6 7.11328e-06 + ACCAGCTGCT
+chr7 38942150 38942167 -V_YY1_01 3.11631e-06 - CCACTCCATCTTTGCAG
+chr7 38942156 38942165 +V_FOXM1_01 8.06007e-06 + AGATGGAGT
+chr7 38942159 38942171 +V_EGR2_01 6.79884e-06 + TGGAGTGGGCGG
+chr7 38942162 38942175 +V_SP1_Q6 9.41334e-06 + AGTGGGCGGGGGA
+chr7 38942163 38942173 -V_SP1_Q2_01 1.91768e-06 - CCCCGCCCAC
+chr7 38942163 38942174 +V_EGR_Q6 5.17898e-06 + GTGGGCGGGGG
+chr7 38942164 38942174 +V_SP1_Q6_01 6.23999e-06 + TGGGCGGGGG
+chr7 38942179 38942196 +V_PPARG_03 1.37245e-06 + TGGCAGGTCAGAGGTCA
+chr7 38942179 38942200 +V_PPARG_01 9.73941e-07 + TGGCAGGTCAGAGGTCAAACT
+chr7 39043053 39043068 +V_SPZ1_01 8.55807e-06 + TGAGGTGGGTGTGGG
+chr7 39043059 39043067 -V_CACD_01 9.89755e-06 - CCACACCC
+chr7 39043078 39043101 -V_COUPTF_Q6 3.93002e-06 - TTGATTGCCCTTTGACCTCTCCA
+chr7 39043079 39043100 +V_PPARG_01 2.81055e-07 + GGAGAGGTCAAAGGGCAATCA
+chr7 39043083 39043096 +V_RXRLXRB_01 3.39229e-07 + AGGTCAAAGGGCA
+chr7 39043083 39043096 +V_DR1_Q3 1.39363e-06 + AGGTCAAAGGGCA
+chr7 39043083 39043096 -V_PPAR_DR1_Q2 4.43855e-07 - TGCCCTTTGACCT
+chr7 39043083 39043096 -V_COUP_DR1_Q6 3.95479e-06 - TGCCCTTTGACCT
+chr7 39043083 39043097 +V_HNF4_Q6_01 1.40116e-06 + AGGTCAAAGGGCAA
+chr7 39043131 39043140 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr7 39043131 39043141 -V_NUR77_Q5 2.98426e-06 - CTGACCTTGG
+chr7 47708055 47708066 -V_AP1FJ_Q2 7.56184e-06 - GGTGACTCCCA
+chr7 47708167 47708176 +V_CACBINDINGPROTEIN_Q6 2.23138e-06 + GAGGGTGGG
+chr7 48086387 48086395 +V_CACD_01 9.89755e-06 + CCACACCC
+chr7 48086396 48086415 -V_SRF_Q5_02 2.14565e-07 - CCTTGCCTTATTTGGTGTT
+chr7 48086398 48086412 +V_SRF_Q6 4.21962e-06 + CACCAAATAAGGCA
+chr7 48086399 48086414 +V_SRF_C 4.67205e-06 + ACCAAATAAGGCAAG
+chr7 48086399 48086417 +V_SRF_Q4 1.11746e-06 + ACCAAATAAGGCAAGGTT
+chr7 48086400 48086415 +V_SRF_Q5_01 2.65067e-07 + CCAAATAAGGCAAGG
+chr7 48184513 48184522 -V_HNF4_Q6 7.33929e-06 - AAGGTCCAA
+chr7 48837248 48837266 +V_RFX1_02 9.85627e-08 + TAGTCGCCTTGGCAACAG
+chr7 48837257 48837266 -V_RFX_Q6 3.30926e-06 - CTGTTGCCA
+chr7 48837275 48837299 +V_BRACH_01 1.45604e-07 + TCGCTGTCACCTAGGTGTGATGTT
+chr7 48837595 48837610 +V_OCT4_01 1.28133e-06 + CATTCTTATGCATAT
+chr7 49807304 49807314 -V_FOXO1_01 2.98837e-06 - CATAAACAAA
+chr7 50863358 50863381 -V_COUPTF_Q6 2.60895e-06 - TGAACTGCCCCCTCCTCTCTGCT
+chr7 50863471 50863479 +V_CACD_01 9.89755e-06 + CCACACCC
+chr7 50863489 50863504 +V_OCT4_01 8.06422e-07 + CTTTGTTATGTAAAC
+chr7 51072221 51072233 -V_GABP_B 7.90118e-06 - ACAGGAAGGGCA
+chr7 51072235 51072245 -V_IK_Q5 4.33614e-06 - TCTGGGAGGG
+chr7 51532238 51532251 +V_ALX4_01 2.15928e-06 + CCCGAGAATACTC
+chr7 51532284 51532294 +V_P53_DECAMER_Q2 2.10476e-06 + AGACAAGCCC
+chr7 51532310 51532326 +V_NFKB_Q6_01 6.69541e-06 + ACCCTGGAAAGCCCCA
+chr7 51532315 51532325 -V_NFKAPPAB65_01 7.1331e-06 - GGGGCTTTCC
+chr7 51532315 51532325 -V_CREL_01 6.1263e-07 - GGGGCTTTCC
+chr7 51532315 51532325 -V_NFKAPPAB_01 5.48771e-06 - GGGGCTTTCC
+chr7 51532318 51532330 +V_PAX4_03 5.03061e-07 + AAGCCCCACCCC
+chr7 51532320 51532330 -V_SP1_Q6_01 4.32232e-06 - GGGGTGGGGC
+chr7 51532321 51532331 +V_SP1_Q2_01 9.56538e-06 + CCCCACCCCT
+chr7 51532393 51532406 -V_IK3_01 5.45032e-06 - GCCAAGGAATACC
+chr7 52141930 52141941 -V_ELF5_01 5.31332e-06 - AAAAGGAAATA
+chr7 52141948 52141960 -V_SRY_02 9.08784e-06 - CAAAACAAAAGA
+chr7 52141957 52141971 -V_MEIS1BHOXA9_02 9.59338e-06 - TGACACCTTGACAA
+chr7 52142017 52142031 -V_ERR1_Q2 4.94927e-06 - AGTTCAAGGTCAGC
+chr7 52142017 52142035 -V_GCNF_01 1.4034e-06 - TGTGAGTTCAAGGTCAGC
+chr7 52142018 52142030 +V_LRH1_Q5 5.2397e-07 + CTGACCTTGAAC
+chr7 52142018 52142032 +V_PAX6_Q2 4.67224e-08 + CTGACCTTGAACTC
+chr7 52142019 52142028 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr7 52142023 52142034 +V_PAX_Q6 8.43097e-06 + CTTGAACTCAC
+chr7 52142054 52142066 +V_TTF1_Q6 5.63324e-06 + CTCTCAAGTGCT
+chr7 52142064 52142075 -V_PITX2_Q2 5.53227e-07 - TGTAATCCCAG
+chr7 52484962 52484980 -V_GCNF_01 7.57156e-07 - CTGGAGTTCAAGGCCAGC
+chr7 52484963 52484975 +V_LRH1_Q5 3.06315e-07 + CTGGCCTTGAAC
+chr7 52484963 52484977 +V_PAX6_Q2 8.3884e-07 + CTGGCCTTGAACTC
+chr7 52485007 52485018 -V_PITX2_Q2 9.46105e-06 - CTTAATCCCAG
+chr7 52485054 52485065 +V_GAF_Q6 2.41269e-06 + CAGATTCCCCT
+chr7 52485081 52485096 +V_CP2_02 2.11657e-06 + GCTGGTTTCTTCTGG
+chr7 52820271 52820291 +V_PPARA_01 9.2921e-06 + ACAAGCCAAGACAAAGTTCT
+chr7 52820303 52820316 +V_FOX_Q2 4.08159e-06 + TAATGTTTACTTA
+chr7 52820331 52820339 -V_CACD_01 9.89755e-06 - CCACACCC
+chr7 52854506 52854521 -V_DMRT1_01 2.20757e-06 - TTGCTACAAAGTTGC
+chr7 52854535 52854547 +V_EGR2_01 7.9511e-06 + GTGAGTGGGTGG
+chr7 52854584 52854593 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr7 52854591 52854599 -V_CACD_01 9.89755e-06 - CCACACCC
+chr7 52865237 52865252 -V_DMRT3_01 5.16699e-06 - GGTTTGTTACATATC
+chr7 52865261 52865276 +V_DMRT1_01 9.30708e-08 + CTGATACAATGTAGC
+chr7 52865263 52865278 -V_DMRT1_01 3.05518e-06 - GTGCTACATTGTATC
+chr7 53659051 53659061 -V_SP1_Q2_01 9.56538e-06 - CCCCACCCCT
+chr7 53659052 53659064 -V_PAX4_03 3.63034e-06 - CTCCCCCACCCC
+chr7 53659052 53659066 -V_KROX_Q6 5.42711e-07 - CCCTCCCCCACCCC
+chr7 53659057 53659066 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr7 53659058 53659066 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr7 53659211 53659219 +V_CACD_01 9.89755e-06 + CCACACCC
+chr7 56704118 56704129 +V_SP1SP3_Q4 2.26051e-06 + CCCCCTCCTCC
+chr7 56704150 56704164 +V_BLIMP1_Q6 6.21245e-06 + AGGAAGGGCAAGGC
+chr7 56704166 56704181 -V_OCT4_01 8.48593e-06 - TTTTCTCATGTATAT
+chr7 56704252 56704263 -V_FOXO4_01 7.64453e-06 - GAAAACAAGCC
+chr7 56800420 56800439 +V_PU1_Q4 3.89454e-07 + CTGACTTACTTCCCCTTTC
+chr7 56800423 56800440 -V_PU1_01 6.45521e-07 - AGAAAGGGGAAGTAAGT
+chr7 56800426 56800440 -V_BLIMP1_Q6 4.07265e-06 - AGAAAGGGGAAGTA
+chr7 56800465 56800478 -V_MAZR_01 3.68108e-06 - GGGGGAGGGGACT
+chr7 56800468 56800477 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr7 56800468 56800478 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr7 56800469 56800477 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr7 56800469 56800478 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr7 56800475 56800484 -V_CACBINDINGPROTEIN_Q6 6.29506e-06 - GAGGCTGGG
+chr7 56800486 56800498 +V_AP2_Q6 3.8272e-06 + GGCCCCCAGGCC
+chr7 56800552 56800566 -V_GATA1_02 4.98135e-06 - GAAGAGATAGGAGT
+chr7 72597312 72597321 -V_SMAD3_Q6 4.03003e-06 - TGTCTGTCT
+chr7 72597320 72597332 -V_AP1_Q2_01 2.1613e-06 - TGACTCACTGGT
+chr7 72597322 72597335 +V_AP1_01 1.84286e-06 + CAGTGAGTCATCC
+chr7 72597323 72597334 +V_BACH2_01 6.53539e-06 + AGTGAGTCATC
+chr7 72597323 72597334 -V_AP1_Q6 3.64565e-06 - GATGACTCACT
+chr7 72597365 72597388 -V_COUPTF_Q6 2.93773e-06 - CCTCCTGGCCTCAGGCAGCTGCT
+chr7 72873586 72873598 -V_ATF4_Q2 8.23388e-06 - CATGACGCCAGC
+chr7 72873588 72873599 -V_CREB_Q4_01 7.67228e-06 - CCATGACGCCA
+chr7 72873658 72873673 -V_DMRT1_01 9.09581e-07 - TGGCAACATTGTTGA
+chr7 72873659 72873673 -V_DMRT7_01 2.82482e-06 - TGGCAACATTGTTG
+chr7 72873680 72873698 +V_MYOD_Q6_01 7.30593e-06 + CTGCAGCAGGGGTAGGAG
+chr7 74287480 74287495 +V_SMAD4_Q6 6.67979e-06 + CTCGGGGAGCCACAT
+chr7 74287528 74287542 -V_KROX_Q6 2.22971e-06 - GCTGCCCCCGACCC
+chr7 74287582 74287595 +V_HFH4_01 1.38082e-06 + ATGTGTTTGCTTA
+chr7 74287701 74287718 -V_DR4_Q2 4.64252e-06 - TGACCTCCCCTGAGGCC
+chr7 74287725 74287738 -V_IK3_01 9.0323e-07 - TGCTGGGAATTCC
+chr7 74287725 74287739 -V_STAT3STAT3_Q3 3.50199e-06 - TTGCTGGGAATTCC
+chr7 74287769 74287782 -V_STAT_Q6 3.27105e-06 - CACCTTTCTGGGA
+chr7 79395354 79395373 +V_GR_Q6 8.25481e-06 + TGGGAGCCCTCTGTTGTTG
+chr7 79395413 79395426 -V_MAZR_01 9.79421e-06 - GGGGAAGGGGCCC
+chr7 79395413 79395429 -V_MAF_Q6 6.14259e-06 - TGGGGGGAAGGGGCCC
+chr7 79395416 79395431 -V_SPZ1_01 1.96252e-06 - GGTGGGGGGAAGGGG
+chr7 79395419 79395430 -V_EGR_Q6 9.33802e-06 - GTGGGGGGAAG
+chr7 79395422 79395437 +V_SREBP_Q6 4.65723e-07 + CCCCCCACCCCACCC
+chr7 79395422 79395437 +V_SREBP1_Q5 3.85951e-07 + CCCCCCACCCCACCC
+chr7 79395427 79395440 -V_SP1_Q6 3.06772e-06 - GGGGGGTGGGGTG
+chr7 79395429 79395439 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr7 79395430 79395439 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr7 79395859 79395878 +V_GR_Q6 3.6847e-07 + ACGGGTCACTCTGTTCTAT
+chr7 79395869 79395879 -V_PR_Q2 9.24501e-06 - GATAGAACAG
+chr7 79471067 79471082 +V_OCT4_01 1.47922e-07 + TATTGTAATGCAAAC
+chr7 80290467 80290476 -V_RFX_Q6 3.30926e-06 - CTGTTGCCA
+chr7 80290575 80290596 -V_DR3_Q4 3.55346e-06 - GGAGCCCTCCTTGACCTGGGG
+chr7 80748004 80748018 -V_ETS2_B 6.44463e-06 - GCCAGGAAGTAAGC
+chr7 82900975 82900983 +V_CACD_01 9.89755e-06 + CCACACCC
+chr7 82900993 82901005 +V_OCT1_07 7.71715e-06 + CATATGGTAATT
+chr7 82901009 82901026 -V_HSF1_Q6 7.8788e-06 - CTTCTAGAAGCTTGGTG
+chr7 82901042 82901055 -V_STAT1STAT1_Q3 4.71759e-07 - CTTTCCAGGAAAA
+chr7 84884064 84884080 -V_GRE_C 8.64606e-06 - CTTATCATCTGTCCTT
+chr7 84884096 84884105 +V_T3R_Q6 8.74404e-06 + CCTGTCCTG
+chr7 84884119 84884129 +V_TBX5_Q5 6.59322e-06 + ATCACACCTG
+chr7 84884133 84884152 +V_GR_Q6 8.25481e-06 + TAGACTCTCTGTGTCCAAG
+chr7 84884152 84884166 -V_ERR1_Q2 4.94927e-06 - AGTTCAAGGTCAGC
+chr7 84884152 84884170 -V_GCNF_01 6.65737e-07 - CCTGAGTTCAAGGTCAGC
+chr7 84884153 84884165 +V_LRH1_Q5 5.2397e-07 + CTGACCTTGAAC
+chr7 84884153 84884167 +V_PAX6_Q2 4.67224e-08 + CTGACCTTGAACTC
+chr7 84884154 84884163 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr7 84957063 84957073 +V_POU3F2_02 3.63926e-06 + TTATGCTAAT
+chr7 86403279 86403292 +V_SP1_Q6 7.57405e-07 + TGGGGGAGGGGCC
+chr7 86403280 86403289 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr7 86403280 86403290 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr7 86403280 86403293 +V_MAZR_01 4.32336e-07 + GGGGGAGGGGCCC
+chr7 86403281 86403289 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr7 86403281 86403290 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr7 86403281 86403291 +V_SP1_Q6_01 2.74385e-06 + GGGGAGGGGC
+chr7 86403307 86403319 +V_ETS_Q4 4.90737e-06 + AACAACTTCCTG
+chr7 86403326 86403341 -V_DMRT1_01 2.96272e-06 - TGGCTACAATGTTAT
+chr7 86443770 86443782 -V_NANOG_01 8.86042e-06 - TGGCCCATTACC
+chr7 86443784 86443795 +V_LEF1TCF1_Q4 1.56074e-06 + CCTTTGATCTC
+chr7 86443819 86443833 -V_PAX6_Q2 8.51401e-08 - CTGTCCTGGAACTT
+chr7 86543445 86543458 -V_SP1_Q6 8.37935e-07 - GAGGGGCGGGGTT
+chr7 86543446 86543456 -V_SP1_Q6_01 1.0915e-06 - GGGGCGGGGT
+chr7 86543447 86543456 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr7 86543447 86543457 +V_SP1_Q2_01 1.0915e-06 + CCCCGCCCCT
+chr7 86543484 86543499 +V_OCT4_01 3.74251e-06 + CTTTGTAATGTATAT
+chr7 86543575 86543596 -V_PPARG_01 1.89495e-06 - TCAGAAGTCCAAGGTCATCCT
+chr7 86543577 86543595 -V_GCNF_01 3.68477e-06 - CAGAAGTCCAAGGTCATC
+chr7 86543578 86543590 +V_LRH1_Q5 2.30644e-06 + ATGACCTTGGAC
+chr7 86543579 86543588 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGG
+chr7 87344946 87344958 +V_GLI_Q2 8.13602e-06 + ACTGGGTGGTTC
+chr7 87732676 87732692 +V_ARNT_01 2.21394e-06 + TGGGGCACGTGGCCGC
+chr7 87732677 87732691 +V_MYCMAX_01 4.92095e-06 + GGGGCACGTGGCCG
+chr7 87732677 87732691 +V_USF_01 3.4254e-06 + GGGGCACGTGGCCG
+chr7 87732677 87732691 -V_MYCMAX_01 4.92095e-06 - CGGCCACGTGCCCC
+chr7 87732677 87732691 -V_USF_01 3.4254e-06 - CGGCCACGTGCCCC
+chr7 87732678 87732688 -V_EBOX_Q6_01 4.06927e-06 - CCACGTGCCC
+chr7 87732678 87732690 +V_CMYC_02 3.01379e-06 + GGGCACGTGGCC
+chr7 87732678 87732690 -V_CMYC_01 2.87874e-06 - GGCCACGTGCCC
+chr7 87732678 87732690 -V_CMYC_02 9.14781e-07 - GGCCACGTGCCC
+chr7 87732679 87732689 -V_MYCMAX_B 3.25151e-06 - GCCACGTGCC
+chr7 87732680 87732688 -V_USF_C 9.89755e-06 - CCACGTGC
+chr7 87732693 87732705 +V_PAX4_03 6.56043e-06 + CAGCTCCACCCG
+chr7 87732823 87732834 +V_ALPHACP1_01 4.48665e-06 + CAGCCACTGAG
+chr7 87891442 87891453 -V_E12_Q6 6.12239e-06 - GACAGGTGTCC
+chr7 87891496 87891511 -V_OCT4_01 6.46423e-06 - CTTTGTCATGTACAT
+chr7 87964441 87964457 +V_NFY_01 2.96717e-06 + CAGAGCCAATCAGGAC
+chr7 87964443 87964454 +V_NFY_Q6 9.1733e-06 + GAGCCAATCAG
+chr7 87964470 87964482 +V_LMO2COM_01 6.22761e-08 + CGCCAGGTGCAG
+chr7 87964527 87964557 -V_PAX4_04 8.40578e-07 - AAAAAACAGGCTCAGACCCAGCCTCTCACC
+chr7 87964532 87964541 +V_CACBINDINGPROTEIN_Q6 6.29506e-06 + GAGGCTGGG
+chr7 88202701 88202713 +V_GLI_Q2 5.81723e-06 + TTTGGGTGGTGG
+chr7 88202715 88202723 -V_CACD_01 9.89755e-06 - CCACACCC
+chr7 88208280 88208295 +V_CP2_02 6.9729e-06 + GCTGGGTGTCTCTAG
+chr7 88208398 88208410 -V_MYOD_01 3.22607e-06 - GGACAGGTGGCT
+chr7 88208399 88208409 +V_MYOD_Q6 5.43478e-06 + GCCACCTGTC
+chr7 88208400 88208410 +V_EBOX_Q6_01 4.06927e-06 + CCACCTGTCC
+chr7 88208413 88208429 -V_NFKB_Q6_01 3.00811e-06 - TTCCTGGAAATCCCCG
+chr7 88208414 88208424 +V_NFKAPPAB65_01 1.65463e-06 + GGGGATTTCC
+chr7 88208414 88208424 +V_CREL_01 1.3587e-06 + GGGGATTTCC
+chr7 88208414 88208424 +V_NFKAPPAB_01 4.37202e-06 + GGGGATTTCC
+chr7 88208417 88208432 +V_STAT5B_01 9.87221e-06 + GATTTCCAGGAATGC
+chr7 88208417 88208432 -V_STAT5A_01 4.6087e-06 - GCATTCCTGGAAATC
+chr7 88208417 88208432 -V_STAT5B_01 3.10944e-06 - GCATTCCTGGAAATC
+chr7 88286640 88286655 -V_OCT4_02 6.55103e-06 - ATTGTAATGCTAAAT
+chr7 88286641 88286656 -V_OCT4_01 1.40241e-06 - TATTGTAATGCTAAA
+chr7 88335876 88335890 -V_GATA1_03 5.8872e-06 - AAGCAGATTAGAGC
+chr7 88625899 88625919 -V_FOXP1_01 1.60181e-06 - TTGTTTCTGTTTTTTTCTTT
+chr7 88625980 88625995 -V_OCT4_02 6.14224e-06 - ATTGTTTTGTAAATG
+chr7 88625981 88625996 -V_OCT4_01 2.83977e-06 - CATTGTTTTGTAAAT
+chr7 88626014 88626030 +V_NFY_01 7.41568e-06 + CATAACCAATCAGCAA
+chr7 88626016 88626027 +V_NFY_Q6 6.07558e-07 + TAACCAATCAG
+chr7 89368928 89368943 -V_VDR_Q3 1.14566e-06 - GAGGGAAGGAGGTGA
+chr7 89369056 89369067 -V_GATA_C 2.49448e-07 - AGATAAGGCCT
+chr7 96632504 96632527 +V_COUPTF_Q6 1.81259e-06 + GGCTGTGCCCTCAGGCCTTTGAC
+chr7 96632508 96632521 +V_AP2_Q6_01 7.38468e-06 + GTGCCCTCAGGCC
+chr7 97146231 97146246 -V_OCT4_02 8.01355e-06 - ATTCTGATGTTAATT
+chr7 97146232 97146247 -V_OCT4_01 7.41924e-06 - TATTCTGATGTTAAT
+chr7 97146335 97146358 +V_OCT1_04 1.42271e-06 + TTACAATTATGCAAATTATAGAG
+chr7 97146337 97146356 +V_OCT1_01 2.39047e-06 + ACAATTATGCAAATTATAG
+chr7 97146339 97146354 +V_OCT1_Q6 8.17489e-06 + AATTATGCAAATTAT
+chr7 97146340 97146352 +V_OCT1_07 7.06349e-06 + ATTATGCAAATT
+chr7 97146340 97146354 -V_OCT1_05 5.68648e-07 - ATAATTTGCATAAT
+chr7 97146341 97146354 -V_OCT_C 4.58343e-06 - ATAATTTGCATAA
+chr7 97146342 97146352 +V_OCT1_B 7.0832e-06 + TATGCAAATT
+chr7 97146342 97146353 -V_OCT1_Q5_01 1.19041e-06 - TAATTTGCATA
+chr7 97146342 97146353 -V_OCT_Q6 1.64093e-06 - TAATTTGCATA
+chr7 97146359 97146389 +V_PAX4_04 8.27552e-06 + ATAAGATACACGTAACACCCAGTCCACCCC
+chr7 102628767 102628780 +V_DMRT4_01 2.92761e-06 + AATGTAGCAATGA
+chr7 102628820 102628835 -V_OCT4_01 5.31494e-07 - TATTTTCATGCAAAT
+chr7 102628896 102628908 +V_MEIS1_01 1.66267e-06 + CAGTGACAGGCC
+chr7 103317527 103317535 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr7 103317545 103317558 -V_MAZR_01 3.32118e-06 - GGGGGAGGGGCAG
+chr7 103317546 103317559 -V_SP1_Q6 3.85413e-06 - AGGGGGAGGGGCA
+chr7 103317547 103317557 -V_SP1_Q6_01 2.74385e-06 - GGGGAGGGGC
+chr7 103317548 103317557 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr7 103317548 103317558 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr7 103317549 103317557 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr7 103317549 103317558 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr7 103317565 103317575 -V_IK_Q5 1.3587e-06 - TTTGGGAGGG
+chr7 103317566 103317575 -V_LYF1_01 7.33929e-06 - TTTGGGAGG
+chr7 103317619 103317627 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr7 103317620 103317635 -V_VDR_Q3 4.22722e-06 - GGGTGAAAGGGGAGG
+chr7 103317622 103317642 -V_PPARA_01 7.81615e-06 - CTGCACTGGGTGAAAGGGGA
+chr7 103317643 103317652 -V_PAX2_02 7.33929e-06 - CACAAACCC
+chr7 103317657 103317669 +V_OCT1_07 5.82884e-06 + CCTATGGTAATT
+chr7 103505081 103505094 +V_HNF4ALPHA_Q6 3.03606e-06 + CAGAACTTTGCCT
+chr7 103505090 103505099 -V_AP2ALPHA_01 9.68294e-06 - GCCCGAGGC
+chr7 103505111 103505120 -V_WT1_Q6 6.67377e-06 - CCCTCCCGC
+chr7 103505124 103505133 +V_CACBINDINGPROTEIN_Q6 6.29506e-06 + GAGGCTGGG
+chr7 103505129 103505147 -V_FOXJ2_01 6.75509e-07 - ATATAAACAAACAGCCCA
+chr7 103505131 103505144 +V_HFH3_01 5.8913e-07 + GGCTGTTTGTTTA
+chr7 103505132 103505145 -V_HNF3_Q6 3.26963e-06 - ATAAACAAACAGC
+chr7 103505135 103505148 +V_HFH8_01 6.53403e-07 + GTTTGTTTATATG
+chr7 103505151 103505164 +V_STAT_Q6 6.34573e-07 + GACACTTCTTGGA
+chr7 103804030 103804046 -V_AP2_Q3 7.62107e-06 - GGCCCTGGGCTGGATG
+chr7 103804045 103804053 +V_CACD_01 9.89755e-06 + CCACACCC
+chr7 103804081 103804096 +V_OCT4_01 7.41924e-06 + CTTTTTGATGCAGAT
+chr7 104232820 104232837 +V_DR4_Q2 6.45833e-06 + GGTCCTCTGGTGACCTC
+chr7 104232825 104232848 +V_COUPTF_Q6 8.52398e-06 + TCTGGTGACCTCAGCCTCCTTCT
+chr7 104867823 104867837 -V_KROX_Q6 3.62033e-06 - CTCGCCCCCGCAGG
+chr7 104867826 104867837 +V_EGR_Q6 2.33306e-06 + GCGGGGGCGAG
+chr7 106413279 106413294 -V_OCT4_01 7.41924e-06 - TTTTCTTATGCCAAT
+chr7 106518802 106518812 +V_NUR77_Q5 8.43564e-06 + CTGACCTTTG
+chr7 106518823 106518833 +V_NUR77_Q5 8.43564e-06 + CTGACCTTTC
+chr7 106518823 106518837 -V_HNF4_Q6_01 7.92317e-06 - GGGGGAAAGGTCAG
+chr7 106518824 106518837 +V_PPAR_DR1_Q2 9.42243e-07 + TGACCTTTCCCCC
+chr7 106518824 106518837 +V_COUP_DR1_Q6 5.72793e-06 + TGACCTTTCCCCC
+chr7 106518824 106518837 -V_DR1_Q3 3.04643e-06 - GGGGGAAAGGTCA
+chr7 106518824 106518841 -V_PPARG_03 5.8919e-07 - AGGTGGGGGAAAGGTCA
+chr7 106518824 106518844 -V_PPARA_01 7.36971e-06 - CTTAGGTGGGGGAAAGGTCA
+chr7 106518919 106518933 +V_PAX6_Q2 7.01918e-06 + CAGAGCTGGAGCTA
+chr7 106660404 106660416 +V_LMO2COM_01 2.36746e-06 + CCCCAGGTGCTT
+chr7 106660426 106660444 -V_GCNF_01 6.88534e-06 - TTTGAGTTCAAGGCCAGC
+chr7 106660427 106660439 +V_LRH1_Q5 3.06315e-07 + CTGGCCTTGAAC
+chr7 106660427 106660441 +V_PAX6_Q2 8.3884e-07 + CTGGCCTTGAACTC
+chr7 106660488 106660503 -V_HES1_Q2 3.16131e-06 - AAGGCTGGTGGCTCA
+chr7 106669446 106669461 -V_DMRT1_01 1.44151e-06 - CTGATACACTGTTGC
+chr7 106813541 106813554 -V_GFI1_Q6 2.74217e-06 - TGAAATCACTGGC
+chr7 106813595 106813605 +V_GATA1_01 4.96582e-06 + CCTGATGGGG
+chr7 106813601 106813616 +V_VDR_Q3 3.77809e-06 + GGGGGAGTGAGGAGT
+chr7 109349236 109349248 -V_LRH1_Q5 9.2187e-06 - GGGGCCTTGAAG
+chr7 109349242 109349255 -V_SP1_Q6 8.16238e-06 - GCTGGGAGGGGCC
+chr7 109349245 109349255 -V_IK_Q5 2.47439e-06 - GCTGGGAGGG
+chr7 109564552 109564567 +V_OCT4_01 1.94673e-06 + CTTTCTCATGTAAAC
+chr7 112000186 112000205 +V_SEF1_C 2.52635e-06 + AGCACCGCAGTCTATGGTC
+chr7 112633628 112633642 -V_PAX6_Q2 1.24937e-06 - CAGACCTTGAACTC
+chr7 112633630 112633642 -V_LRH1_Q5 3.77826e-06 - CAGACCTTGAAC
+chr7 112633651 112633662 -V_PAX_Q6 6.11495e-06 - CTGGAATTCAC
+chr7 112633653 112633667 -V_PAX6_Q2 4.98674e-07 - CTGTCCTGGAATTC
+chr7 112633700 112633715 +V_SPZ1_01 3.32152e-06 + GGAGGGGGGAGGGGG
+chr7 112633703 112633716 +V_SP1_Q6 8.76141e-06 + GGGGGGAGGGGGA
+chr7 112633703 112633718 +V_VDR_Q3 1.31117e-06 + GGGGGGAGGGGGAGA
+chr7 112633704 112633713 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr7 112633704 112633714 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr7 112633704 112633715 -V_SP1SP3_Q4 2.8432e-06 - CCCCCTCCCCC
+chr7 112633705 112633713 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr7 112633705 112633714 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr7 112633705 112633715 +V_SP1_Q6_01 8.48538e-06 + GGGGAGGGGG
+chr7 112633705 112633719 -V_KROX_Q6 6.2846e-06 - CTCTCCCCCTCCCC
+chr7 112633765 112633779 +V_HNF4_Q6_01 2.45857e-06 + AGACCAAAGGCCAT
+chr7 112672858 112672871 +V_AP1_01 7.1696e-06 + CATTGACTCAGCA
+chr7 112672859 112672872 -V_NRF2_Q4 8.50037e-06 - CTGCTGAGTCAAT
+chr7 112672860 112672871 -V_NFE2_01 2.40297e-06 - TGCTGAGTCAA
+chr7 112672860 112672871 -V_MAF_Q6_01 7.03729e-07 - TGCTGAGTCAA
+chr7 112672951 112672974 +V_COUPTF_Q6 6.16019e-06 + CCCACTGACCTTTACAGCTCAAT
+chr7 112672956 112672970 +V_COUP_01 8.21321e-06 + TGACCTTTACAGCT
+chr7 114351562 114351577 +V_OCT4_01 5.63049e-06 + CATTCTCATTCAAAC
+chr7 114492803 114492815 -V_NKX62_Q2 3.28186e-06 - GTAATAAATAGG
+chr7 117145659 117145671 -V_VDR_Q6 3.87245e-06 - CTGGCTGAACCA
+chr7 117149131 117149143 -V_NANOG_01 4.0942e-06 - AGGGTCATTTCC
+chr7 117149255 117149264 +V_CKROX_Q2 3.66459e-06 + GCCCTCCCC
+chr7 117149256 117149264 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr7 117156848 117156859 -V_SMAD_Q6_01 5.09972e-06 - CAGGCAGACAG
+chr7 117156849 117156858 +V_SMAD3_Q6 7.33929e-06 + TGTCTGCCT
+chr7 117862170 117862184 +V_ERR1_Q2 5.89079e-06 + ACCTGAAGGTCACC
+chr7 117862279 117862297 -V_GCNF_01 6.18313e-06 - GCCCAGGACAAGGTCACC
+chr7 118129520 118129543 +V_COUPTF_Q6 3.12801e-08 + CCATCTGACCTTTGACCTTTGAA
+chr7 118129521 118129542 -V_PPARG_01 8.77573e-09 - TCAAAGGTCAAAGGTCAGATG
+chr7 118129525 118129542 -V_PPARG_03 1.11777e-06 - TCAAAGGTCAAAGGTCA
+chr7 118129557 118129571 -V_FOXO4_02 7.08786e-06 - CTTTTGTTTTCCTG
+chr7 118129606 118129624 -V_NF1_Q6 7.86736e-09 - TCTTGGCAGGAAGCCATG
+chr7 118129607 118129624 +V_NF1_Q6_01 1.37923e-08 + ATGGCTTCCTGCCAAGA
+chr7 118888260 118888274 -V_FOXO1_02 7.6046e-06 - GTGATGTTTACAGC
+chr7 118888464 118888479 -V_SPZ1_01 7.77486e-07 - GCAGGTGGGAATGGG
+chr7 118888472 118888480 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr7 118888478 118888496 -V_NF1_Q6 8.75013e-07 - TGTTGGCAGATGGCCAGG
+chr7 118888479 118888496 +V_NF1_Q6_01 1.22938e-06 + CTGGCCATCTGCCAACA
+chr7 118888526 118888538 -V_PBX_Q3 3.10639e-06 - GATGGATGGCAG
+chr7 119606734 119606743 +V_CACBINDINGPROTEIN_Q6 6.29506e-06 + GAGGCTGGG
+chr7 119606787 119606799 +V_LMO2COM_01 6.44862e-06 + CCCCAGCTGCTC
+chr7 119606813 119606825 +V_SREBP_Q3 1.19813e-06 + AGGGTCACCCCA
+chr7 119606813 119606828 +V_SREBP_Q6 5.28997e-07 + AGGGTCACCCCAGGG
+chr7 119606813 119606828 +V_SREBP1_Q5 7.73938e-07 + AGGGTCACCCCAGGG
+chr7 119606852 119606871 +V_NRSF_Q4 5.35581e-06 + GCAGAGCCCGAGGTGCAGA
+chr7 119804108 119804130 -V_MEF2_02 8.18127e-06 - GGTCTTCCTAATAATAGCACAG
+chr7 119804108 119804130 -V_MEF2_03 3.67046e-06 - GGTCTTCCTAATAATAGCACAG
+chr7 119832094 119832124 -V_PAX4_04 4.49749e-06 - AAAAAAAAGCTGCGCCCCACCCCCCACAAG
+chr7 119832096 119832111 +V_SPZ1_01 8.55807e-06 + TGTGGGGGGTGGGGC
+chr7 119832099 119832112 +V_SP1_Q6 9.29757e-07 + GGGGGGTGGGGCG
+chr7 119832100 119832109 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr7 119832100 119832110 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr7 119832100 119832113 +V_MAZR_01 5.14471e-06 + GGGGGTGGGGCGC
+chr7 119832101 119832111 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr7 119832123 119832141 +V_HNF3_Q6_01 9.0308e-06 + TTCTCTGTTTATTTTCTA
+chr7 119832123 119832141 -V_FOXJ2_01 2.41928e-06 - TAGAAAATAAACAGAGAA
+chr7 119832196 119832211 -V_ETS1_B 6.49821e-06 - CCAGGAAATACCTGG
+chr7 119832198 119832212 -V_ETS2_B 8.24353e-06 - TCCAGGAAATACCT
+chr7 119832232 119832240 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr7 127261050 127261062 -V_GATA4_Q3 9.25891e-06 - AGATCACAGAGA
+chr7 127261088 127261102 +V_CEBPB_02 6.32911e-06 + AGATTGCTTAACTG
+chr7 128004620 128004635 +V_OCT4_01 6.02107e-06 + CTTAGAAATGTAAAT
+chr7 128004752 128004770 +V_CMYB_01 3.39028e-06 + CAGGGAGATGGTTGGGGG
+chr7 128004764 128004777 +V_SP1_Q6 8.76141e-06 + TGGGGGTGGGGGG
+chr7 128004765 128004774 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr7 128004765 128004775 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr7 128004765 128004776 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr7 128004766 128004778 -V_PAX4_03 9.67001e-06 - CCCCCCCACCCC
+chr7 128004769 128004780 +V_EGR_Q6 3.00131e-06 + GTGGGGGGGAG
+chr7 129383991 129384001 +V_GATA1_05 2.21291e-06 + GCTGATAACA
+chr7 129384077 129384088 -V_SP1SP3_Q4 8.683e-07 - CCCCCCCCTGC
+chr7 129384079 129384092 +V_MAZR_01 1.60706e-07 + AGGGGGGGGGCAA
+chr7 129384080 129384089 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr7 129384086 129384101 +V_DMRT1_01 4.43941e-06 + GGGCAACATTGTTGC
+chr7 129384088 129384103 -V_DMRT1_01 3.56682e-08 - TTGCAACAATGTTGC
+chr7 129384089 129384103 -V_DMRT7_01 6.61071e-07 - TTGCAACAATGTTG
+chr7 130355189 130355204 +V_OCT4_01 1.09956e-06 + CATTGTAATGCTAAA
+chr7 130355190 130355205 +V_OCT4_02 6.55103e-06 + ATTGTAATGCTAAAT
+chr7 131864678 131864690 -V_MEF2_Q6_01 6.45006e-06 - TGCTATATTAAG
+chr7 131864684 131864694 -V_KAISO_01 8.69798e-06 - TTCCTGCTAT
+chr7 131864686 131864700 +V_ETS2_B 3.88969e-06 + AGCAGGAAGTAGCT
+chr7 131864687 131864702 +V_ETS1_B 9.4683e-06 + GCAGGAAGTAGCTGT
+chr7 131864688 131864700 -V_ETS_Q4 1.51985e-06 - AGCTACTTCCTG
+chr7 133364193 133364223 +V_PAX4_04 8.7361e-06 + AAAAATCAACCAGGCTTTGTAGCACACACC
+chr7 133364235 133364249 -V_E2A_Q2 5.8661e-06 - CCACCTGCCTGAGT
+chr7 133364240 133364248 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr7 133364240 133364250 -V_MYOD_Q6 6.66004e-06 - TCCACCTGCC
+chr7 133364286 133364300 -V_BLIMP1_Q6 9.49741e-06 - GAAAAGGGAAATGC
+chr7 133364333 133364346 +V_OCT_C 2.09338e-06 + CTTATTAGCATAC
+chr7 133757730 133757740 -V_GATA1_01 3.85013e-06 - GGTGATGGGG
+chr7 134367689 134367704 -V_SRF_C 4.06523e-06 - GCCATGAATGGCCAT
+chr7 134367703 134367726 +V_COUPTF_Q6 2.31388e-06 + CTGTGTGACCTTGGACATCTTCC
+chr7 134367704 134367725 -V_PPARG_01 3.02999e-06 - GAAGATGTCCAAGGTCACACA
+chr7 134367707 134367719 +V_LRH1_Q5 1.22748e-06 + GTGACCTTGGAC
+chr7 134367708 134367717 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGG
+chr7 134367743 134367753 +V_GATA1_05 9.8464e-06 + GCAGATAACC
+chr7 134367809 134367822 +V_AP1_01 1.54268e-07 + GAATGAGTCAGCA
+chr7 134367810 134367821 -V_AP1_Q2 7.83818e-06 - GCTGACTCATT
+chr7 134367810 134367821 -V_AP1_Q6 2.98654e-06 - GCTGACTCATT
+chr7 134367811 134367820 +V_AP1_C 4.03003e-06 + ATGAGTCAG
+chr7 134367811 134367822 -V_NFE2_01 1.48643e-06 - TGCTGACTCAT
+chr7 136923591 136923605 -V_NFKB_Q6 4.40101e-06 - CGGGGAATCTCCTT
+chr7 136923592 136923604 -V_NFKB_C 7.11162e-06 - GGGGAATCTCCT
+chr7 136923627 136923644 -V_DR4_Q2 3.50068e-06 - TGCCCTGCAGTGCCCTA
+chr7 136923671 136923685 +V_CEBPA_01 9.88249e-06 + ACATTACAAAAGCA
+chr7 136923686 136923699 -V_FXR_IR1_Q6 5.33409e-07 - GGGTGTATGACCT
+chr7 136923687 136923701 -V_FXR_Q3 7.1872e-06 - CAGGGTGTATGACC
+chr7 137805964 137805978 -V_BLIMP1_Q6 2.60504e-06 - AGAAAGGGACAGGA
+chr7 138848051 138848063 -V_VDR_Q6 4.53853e-06 - CTCTGTGAACCT
+chr7 140242495 140242508 +V_HNF4ALPHA_Q6 8.27102e-06 + AAGAACCTTGCAC
+chr7 140242505 140242520 -V_ETS1_B 6.14163e-06 - GCAGGAAGTAGTGTG
+chr7 140242507 140242519 +V_ETS_Q4 6.33208e-06 + CACTACTTCCTG
+chr7 141138838 141138868 -V_HOX13_01 7.23716e-06 - TTCCTCTTCCTTCATCACTGCTGCAGCTCT
+chr7 141138858 141138870 +V_ELF1_Q6 2.15836e-06 + GGAAGAGGAAGA
+chr7 141138932 141138941 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr7 141214017 141214040 -V_OCT1_04 5.21912e-06 - ATTTGCAAATGCAGATATAATGA
+chr7 141214086 141214100 +V_FXR_Q3 6.81949e-07 + CAGGGGGAATGACC
+chr7 141214088 141214101 +V_FXR_IR1_Q6 3.15306e-06 + GGGGGAATGACCT
+chr7 141214093 141214107 -V_ERR1_Q2 1.27776e-06 - AGTTCAAGGTCATT
+chr7 141214093 141214111 -V_GCNF_01 1.99811e-07 - GAGAAGTTCAAGGTCATT
+chr7 141214094 141214106 +V_LRH1_Q5 3.77826e-06 + ATGACCTTGAAC
+chr7 141214094 141214108 +V_PAX6_Q2 2.80439e-06 + ATGACCTTGAACTT
+chr7 141214095 141214104 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr7 141953589 141953603 -V_NFY_C 4.45006e-06 - TCTGATTGGTGAAT
+chr7 141953589 141953605 +V_NFY_01 7.41568e-06 + ATTCACCAATCAGAAC
+chr7 141953591 141953602 +V_NFY_Q6 9.1733e-06 + TCACCAATCAG
+chr7 141953611 141953634 -V_COUPTF_Q6 1.41184e-06 - CCCTGTGACCCTGCTCCCCGCCC
+chr7 141953623 141953638 +V_VDRRXR_01 8.9475e-06 + GGGTCACAGGGTCTA
+chr7 141953659 141953674 -V_OCT4_01 2.11448e-06 - TATTGTAATGCTAAG
+chr7 143225472 143225483 -V_ER_Q6_02 5.98444e-06 - CAGGTCACAGC
+chr7 144942826 144942835 +V_CKROX_Q2 3.66459e-06 + GCCCTCCCC
+chr7 144942827 144942835 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr7 144942827 144942836 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr7 144942860 144942870 -V_IK_Q5 4.33614e-06 - GGTGGGAGGG
+chr7 144942885 144942903 +V_HNF3_Q6_01 8.45028e-07 + TTCTTTGTTTGTTTATCC
+chr7 144942887 144942900 +V_FOX_Q2 1.19654e-06 + CTTTGTTTGTTTA
+chr7 144942887 144942900 +V_HFH4_01 3.21065e-07 + CTTTGTTTGTTTA
+chr7 144942888 144942901 -V_HNF3_Q6 9.99776e-07 - ATAAACAAACAAA
+chr7 146041945 146041958 -V_CRX_Q4 4.43406e-07 - TTACTAATCTCCC
+chr7 146041956 146041971 +V_OCT4_01 7.94702e-06 + AATTGTGATGCTGAT
+chr7 146041957 146041972 +V_OCT4_02 8.07722e-08 + ATTGTGATGCTGATG
+chr7 146041997 146042008 -V_NFY_Q6 7.17826e-06 - GAGCCAATCAC
+chr7 146105687 146105700 -V_AP2_Q6_01 8.86342e-06 - CTGCCCTCAGGCT
+chr7 146105818 146105838 +V_YY1_02 1.7589e-06 + CCAAGGCCATTTTGGCTCTG
+chr7 146105819 146105836 +V_YY1_01 4.0033e-06 + CAAGGCCATTTTGGCTC
+chr7 146871343 146871352 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr7 146871344 146871352 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr7 146871344 146871353 -V_CKROX_Q2 8.90515e-06 - TCCCTCCCC
+chr7 146871396 146871415 +V_ER_Q6 3.55404e-06 + CCAAGGCTCAGTGACCCAG
+chr7 146871407 146871418 -V_RORA_Q4 9.54539e-06 - TATCTGGGTCA
+chr7 146979294 146979305 -V_LEF1TCF1_Q4 3.42525e-06 - CCTTTGAAGTT
+chr7 146979310 146979321 -V_NFY_Q6 7.89171e-06 - TGGCCAATGAC
+chr7 146979406 146979425 +V_SEF1_C 6.20043e-06 + AGAACAAATGTCTGTGGTT
+chr7 147379204 147379216 +V_ETS_Q4 4.90737e-06 + AACCACTTCCGG
+chr7 149417578 149417591 +V_AP1_01 3.30287e-06 + GAATGAGTCAGTA
+chr7 149417580 149417589 +V_AP1_C 4.03003e-06 + ATGAGTCAG
+chr7 149417580 149417591 -V_NFE2_01 6.32206e-06 - TACTGACTCAT
+chr7 149417596 149417607 -V_FLI1_Q6 4.3053e-06 - CAGGAAGTCAT
+chr7 149417602 149417625 +V_COUPTF_Q6 3.7102e-06 + TCCTGTGAACCTTCACCCCACCT
+chr7 149417603 149417624 -V_PPARG_01 1.9589e-06 - GGTGGGGTGAAGGTTCACAGG
+chr7 149417609 149417621 +V_PAX4_03 5.05761e-06 + AACCTTCACCCC
+chr7 149685364 149685378 +V_BLIMP1_Q6 8.88669e-06 + AGGGAATGAAAGGA
+chr7 149685423 149685435 +V_CMYC_02 8.14658e-06 + GACCAGGTGGCC
+chr7 149685423 149685435 +V_USF_Q6_01 9.55721e-06 + GACCAGGTGGCC
+chr7 150536758 150536768 +V_ESE1_Q3 8.06007e-06 + AGCTTCCTGT
+chr7 150536766 150536778 -V_LRH1_Q5 2.30644e-06 - CAGGCCTTGAAC
+chr8 4934153 4934172 -V_ER_Q6 2.51087e-06 - ATAAAACACTGTGACCTAA
+chr8 4934197 4934207 -V_NKX25_Q5 3.30926e-06 - TCCCACTTGC
+chr8 4934241 4934256 -V_OCT4_01 5.63049e-06 - CATTCTTATTCAAAC
+chr8 4934257 4934271 +V_KROX_Q6 5.23964e-06 + CCTGCCCCCAGCCC
+chr8 5756511 5756523 +V_OCT1_07 4.78768e-06 + ATTATGTTAATT
+chr8 5756512 5756522 +V_POU3F2_02 1.99833e-06 + TTATGTTAAT
+chr8 5756537 5756552 -V_OCT4_02 6.55103e-06 - ATTCTCATGTAGATG
+chr8 11482541 11482565 -V_STAT5A_02 7.69677e-06 - TTCTCAGAACTTCAGTTCCCAGTT
+chr8 11482582 11482593 +V_EBF_Q6 9.85663e-07 + GTCCCCAGGGA
+chr8 11530442 11530453 +V_MAF_Q6_01 7.15365e-06 + TGCTGAGTGAG
+chr8 11530469 11530484 -V_OCT4_01 9.65557e-06 - CATTGTCATGGAGAG
+chr8 11530493 11530517 -V_STAT5A_02 7.33225e-06 - TTCTGAGAAGGAAGATACACAGAG
+chr8 11704869 11704881 -V_TTF1_Q6 7.41671e-06 - ACCCCAAGTGCC
+chr8 11704875 11704894 +V_PPARA_02 3.36842e-07 + TGGGGTGGTGGGGGTGGGG
+chr8 11704876 11704885 +V_ZIC2_01 9.89755e-06 + GGGGTGGTG
+chr8 11704879 11704893 -V_KROX_Q6 1.8783e-06 - CCCACCCCCACCAC
+chr8 11704882 11704893 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr8 11704883 11704896 +V_SP1_Q6 7.54104e-06 + TGGGGGTGGGGTG
+chr8 11704884 11704893 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr8 11704884 11704894 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr8 11704886 11704901 -V_SREBP_Q6 2.612e-06 - TCCCTCACCCCACCC
+chr8 11704886 11704901 -V_SREBP1_Q5 7.73938e-07 - TCCCTCACCCCACCC
+chr8 11704916 11704930 +V_ERR1_Q2 2.97688e-06 + AACTCAAGGTCATT
+chr8 11704919 11704928 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr8 11705198 11705210 +V_LRH1_Q5 9.2187e-06 + GTGGCCTTGGAA
+chr8 11705211 11705219 -V_CACD_01 9.89755e-06 - CCACACCC
+chr8 11705231 11705239 -V_CACD_01 9.89755e-06 - CCACACCC
+chr8 11705265 11705273 -V_CACD_01 9.89755e-06 - CCACACCC
+chr8 11705282 11705291 +V_WT1_Q6 6.67377e-06 + CCCTCCCGC
+chr8 12545714 12545727 +V_STAT1STAT1_Q3 4.65803e-06 + CTTTCCCAGAAAG
+chr8 12760242 12760265 -V_COUPTF_Q6 6.50749e-06 - CTCTCTGACCTCTGCAGGCATCA
+chr8 12871523 12871537 +V_STAT3STAT3_Q3 6.47014e-06 + TTGCTGGGGACTCC
+chr8 12871565 12871595 +V_PAX4_04 7.83759e-06 + AAGACTTACCCAGCTAACAAGCCTGACACC
+chr8 14787253 14787261 -V_CACD_01 9.89755e-06 - CCACACCC
+chr8 15062248 15062257 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr8 15062324 15062335 -V_WHN_B 5.65269e-06 - AGTGACGCTTG
+chr8 17653989 17653998 -V_HNF4_Q6 7.33929e-06 - AAGGTCCAG
+chr8 17653994 17654012 +V_NF1_Q6 4.05732e-06 + CCTTGGCAGTCAGCCTCA
+chr8 17654011 17654028 +V_PU1_01 6.15878e-06 + AGGAGGAGGAAGTGGCC
+chr8 17654012 17654024 +V_ELF1_Q6 3.87486e-06 + GGAGGAGGAAGT
+chr8 17654013 17654029 +V_MAF_Q6 2.6445e-06 + GAGGAGGAAGTGGCCA
+chr8 17654022 17654037 -V_SRF_C 8.92759e-06 - CCCTTATTTGGCCAC
+chr8 17654022 17654041 -V_SRF_Q5_02 9.77927e-07 - TCTTCCCTTATTTGGCCAC
+chr8 17654024 17654038 +V_SRF_Q6 4.91031e-07 + GGCCAAATAAGGGA
+chr8 17654025 17654040 +V_SRF_C 6.07812e-06 + GCCAAATAAGGGAAG
+chr8 17654025 17654043 +V_SRF_Q4 1.25759e-06 + GCCAAATAAGGGAAGAGA
+chr8 17654026 17654041 +V_SRF_Q5_01 8.97242e-06 + CCAAATAAGGGAAGA
+chr8 18497586 18497597 +V_RORA_Q4 8.63683e-06 + TAGATAGGTCA
+chr8 18497686 18497695 -V_AP2ALPHA_01 9.68294e-06 - GCCCGAGGC
+chr8 18497704 18497715 -V_LEF1TCF1_Q4 9.40057e-06 - CCTTTGATGTG
+chr8 18567046 18567056 +V_ESE1_Q3 8.06007e-06 + TGCTTCCTGT
+chr8 18567057 18567072 +V_DMRT1_01 4.43941e-06 + TAGATACAATGTAAC
+chr8 18567059 18567074 -V_DMRT1_01 4.26013e-07 - TGGTTACATTGTATC
+chr8 18567060 18567074 -V_DMRT7_01 6.91627e-06 - TGGTTACATTGTAT
+chr8 18567062 18567077 -V_DMRT3_01 1.5251e-06 - AGTTGGTTACATTGT
+chr8 18567062 18567078 -V_DMRT2_01 7.03073e-07 - CAGTTGGTTACATTGT
+chr8 18567097 18567107 +V_ESE1_Q3 8.06007e-06 + TGCTTCCTGT
+chr8 18567108 18567123 +V_DMRT1_01 4.60942e-06 + TAGCTACAATGTAAC
+chr8 18567110 18567125 -V_DMRT1_01 2.48775e-07 - TGGTTACATTGTAGC
+chr8 18567111 18567125 -V_DMRT7_01 1.43161e-06 - TGGTTACATTGTAG
+chr8 18567149 18567159 +V_ESE1_Q3 8.06007e-06 + TGCTTCCTGT
+chr8 24011693 24011708 +V_OCT4_01 5.63049e-06 + CATTCTCATTCAAAC
+chr8 24664364 24664376 +V_NFAT_Q6 7.33968e-06 + CAAAGGAAAACT
+chr8 24664487 24664502 -V_OCT4_02 5.30392e-06 - ATTGTCATGCAGAGA
+chr8 24672333 24672363 -V_HOX13_01 9.54311e-06 - TTCTCAGGCCTTCATTAGCCTGCAGGACCT
+chr8 24672626 24672641 +V_OCT1_Q6 4.83659e-07 + GGGAATGCAAAGCAG
+chr8 24672628 24672641 -V_OCT_C 8.12e-06 - CTGCTTTGCATTC
+chr8 24672644 24672659 -V_OCT4_02 9.10747e-06 - ATTCAATTGCAAATG
+chr8 24672645 24672660 -V_OCT4_01 5.24325e-06 - TATTCAATTGCAAAT
+chr8 24672718 24672729 +V_EBF_Q6 2.28749e-06 + CTCCCCTGGGA
+chr8 24673155 24673168 -V_SP1_Q6 8.16238e-06 - GATGGGAGGGGCC
+chr8 24864703 24864717 +V_NFKB_Q6 7.6961e-06 + TGGGGACATCCCTG
+chr8 24864705 24864715 +V_NFKAPPAB_01 8.50103e-06 + GGGACATCCC
+chr8 26123492 26123501 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr8 26123493 26123501 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr8 26123493 26123502 -V_CKROX_Q2 8.90515e-06 - TCCCTCCCC
+chr8 26123493 26123508 +V_VDR_Q3 2.95306e-06 + GGGGAGGGAGGGTGA
+chr8 26565543 26565558 -V_SMAD4_Q6 6.25841e-06 - GGGGTGGGGCCAGCC
+chr8 26565546 26565559 -V_MAZR_01 5.89987e-07 - GGGGGTGGGGCCA
+chr8 26565547 26565560 -V_SP1_Q6 2.15093e-06 - TGGGGGTGGGGCC
+chr8 26565548 26565558 -V_SP1_Q6_01 4.32232e-06 - GGGGTGGGGC
+chr8 26565549 26565559 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr8 26565550 26565559 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr8 26565553 26565569 -V_NFY_01 8.06774e-06 - AGTAACCAATGGGGGT
+chr8 26565556 26565567 -V_NFY_Q6 6.30633e-06 - TAACCAATGGG
+chr8 26565560 26565577 -V_HNF1_C 8.3307e-06 - TCTTAATTAGTAACCAA
+chr8 26565561 26565579 +V_HNF1_Q6 1.96468e-06 + TGGTTACTAATTAAGAAA
+chr8 26565571 26565586 -V_HMGIY_Q3 8.28351e-06 - AGGGCATTTTCTTAA
+chr8 26565597 26565617 +V_FOXP1_01 8.3704e-06 + TTATGTAGGCTTTTTTTTTT
+chr8 26591066 26591080 -V_GATA1_02 3.50679e-06 - GCAAAGATAAGGGC
+chr8 26591068 26591078 -V_GATA6_01 6.25525e-06 - AAAGATAAGG
+chr8 27895008 27895022 +V_BLIMP1_Q6 9.49741e-06 + TAAAAGGGAAAGTC
+chr8 28298458 28298467 +V_CKROX_Q2 8.90515e-06 + TCCCTCCCC
+chr8 28298459 28298467 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr8 28298459 28298468 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr8 28298459 28298473 +V_KROX_Q6 5.43581e-06 + CCCTCCCCCTCTCC
+chr8 28298501 28298513 -V_NFKB_C 3.77632e-06 - TGGGATTCTCCA
+chr8 28298538 28298550 -V_GATA4_Q3 2.08127e-07 - AGATAAAAGGGA
+chr8 28298564 28298578 +V_KROX_Q6 7.21054e-07 + CCTGCCCCCCCCCC
+chr8 28298565 28298578 -V_MAZR_01 3.44004e-07 - GGGGGGGGGGCAG
+chr8 28298566 28298579 -V_MAZR_01 7.66218e-06 - GGGGGGGGGGGCA
+chr8 28298566 28298581 -V_VDR_Q3 6.38003e-06 - GGGGGGGGGGGGGCA
+chr8 28298567 28298578 +V_SP1SP3_Q4 7.59003e-06 + GCCCCCCCCCC
+chr8 28298568 28298577 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr8 28298568 28298579 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr8 28298569 28298578 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr8 28298569 28298580 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr8 28298570 28298579 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr8 28298570 28298581 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr8 28298571 28298580 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr8 28298571 28298582 +V_SP1SP3_Q4 3.76147e-06 + CCCCCCCCCCA
+chr8 28298572 28298581 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr8 28298572 28298583 +V_SP1SP3_Q4 7.42043e-06 + CCCCCCCCCAC
+chr8 28298572 28298583 -V_EGR_Q6 2.33306e-06 - GTGGGGGGGGG
+chr8 28298771 28298785 +V_NFKB_Q6 6.39997e-06 + TGGGGAATTTACTG
+chr8 28298789 28298806 -V_HSF1_Q6 3.6225e-07 - CTTCCAGAAGCTTCACA
+chr8 28298792 28298805 -V_HSF_Q6 1.00892e-07 - TTCCAGAAGCTTC
+chr8 28298832 28298848 -V_AP2_Q3 1.13801e-06 - GCCCTCAGGCAGTGGC
+chr8 28298870 28298880 +V_TAL1_Q6 3.62595e-06 + GCCAGCTGCT
+chr8 28298908 28298919 -V_ELF5_01 8.57585e-06 - ACCAGGAAGTA
+chr8 31087312 31087325 +V_SP1_Q6 4.19627e-06 + AGGGGGTGGGGTG
+chr8 31087313 31087322 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr8 31087313 31087323 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr8 31087315 31087330 -V_SREBP_Q6 4.69758e-06 - CTCCCCACCCCACCC
+chr8 31087315 31087330 -V_SREBP1_Q5 7.63808e-06 - CTCCCCACCCCACCC
+chr8 31087343 31087360 +V_PU1_01 9.25815e-06 + GCAAAGAGGAAGCAGGT
+chr8 31087344 31087363 -V_PU1_Q4 3.70004e-06 - TCTACCTGCTTCCTCTTTG
+chr8 31087403 31087418 +V_OCT4_01 1.94673e-06 + ATTTGAAATGTAAAT
+chr8 33187615 33187630 +V_DMRT1_01 4.93806e-06 + CTGTTACTTTGTATC
+chr8 33187645 33187654 -V_CACBINDINGPROTEIN_Q6 8.12736e-06 - GGGGCTGGG
+chr8 35142642 35142661 +V_NRSF_Q4 8.39296e-06 + CCACTGTTCGCTGTGAAGA
+chr8 35142661 35142672 +V_PAX_Q6 6.2248e-07 + CTGGGACTCAC
+chr8 37009601 37009612 -V_ER_Q6_02 5.98444e-06 - GAGGTCAGGGT
+chr8 37009605 37009619 +V_COUP_01 6.51424e-06 + TGACCTCTGCATCT
+chr8 37602642 37602653 -V_ALPHACP1_01 8.33823e-06 - CAGCGAATGAG
+chr8 40414717 40414726 -V_LMO2COM_02 3.30926e-06 - CAGATAGGG
+chr8 40414808 40414823 -V_ETS1_B 1.60879e-06 - ACAGGAAATGTGTGC
+chr8 40414810 40414824 -V_ETS2_B 2.38641e-06 - TACAGGAAATGTGT
+chr8 40414814 40414826 -V_ELF1_Q6 7.75166e-06 - ATTACAGGAAAT
+chr8 40414831 40414854 +V_OCT1_04 1.07374e-06 + GGAGGATTATGCAAATTAGTTGG
+chr8 40414833 40414852 +V_OCT1_01 1.82906e-06 + AGGATTATGCAAATTAGTT
+chr8 40414834 40414852 -V_CART1_01 5.98652e-06 - AACTAATTTGCATAATCC
+chr8 40414835 40414850 +V_OCT1_Q6 1.91341e-06 + GATTATGCAAATTAG
+chr8 40414836 40414848 +V_OCT1_07 7.06349e-06 + ATTATGCAAATT
+chr8 40414836 40414850 -V_OCT1_05 4.01534e-07 - CTAATTTGCATAAT
+chr8 40414837 40414850 -V_OCT_C 1.32119e-06 - CTAATTTGCATAA
+chr8 40414838 40414848 +V_OCT1_B 7.0832e-06 + TATGCAAATT
+chr8 40414838 40414849 -V_OCT1_Q5_01 1.19041e-06 - TAATTTGCATA
+chr8 40414838 40414849 -V_OCT_Q6 1.64093e-06 - TAATTTGCATA
+chr8 41527284 41527299 +V_DMRT1_01 3.71498e-06 + TTGCTACTTTGTTAC
+chr8 41527289 41527302 -V_DMRT4_01 8.86278e-06 - ACTGTAACAAAGT
+chr8 41527290 41527305 +V_DMRT5_01 3.48558e-07 + CTTTGTTACAGTGTC
+chr8 41527292 41527306 +V_DMRT7_01 5.18644e-06 + TTGTTACAGTGTCT
+chr8 46087078 46087091 +V_NRF2_Q4 5.51501e-06 + CTGTTGAGTCACT
+chr8 46087108 46087117 -V_PAX2_02 7.33929e-06 - CACAAACCC
+chr8 46087152 46087165 -V_AP2_Q6_01 2.71709e-06 - GCTGCCCCAGGCC
+chr8 46087154 46087168 -V_E2A_Q2 5.8661e-06 - ACAGCTGCCCCAGG
+chr8 46087155 46087173 +V_MYOD_Q6_01 1.18169e-06 + CTGGGGCAGCTGTAGAAG
+chr8 49264486 49264498 +V_LRH1_Q5 6.09185e-06 + CTCGCCTTGAAC
+chr8 49264594 49264613 +V_OCT1_01 6.72058e-06 + ATGGAAATGCAAATTTCCT
+chr8 52267252 52267263 -V_EVI1_03 1.7215e-06 - AGATAAGATAT
+chr8 52267252 52267263 -V_EVI1_05 1.27098e-06 - AGATAAGATAT
+chr8 55161823 55161838 +V_OCT4_01 2.11448e-06 + CTTTCTCTTGCAAAT
+chr8 55161824 55161839 +V_OCT4_02 4.76161e-07 + TTTCTCTTGCAAATG
+chr8 55161895 55161914 +V_GR_Q6 8.25481e-06 + TCTGGACCATCTGTCCTTC
+chr8 55161897 55161913 +V_GRE_C 1.26226e-06 + TGGACCATCTGTCCTT
+chr8 58697734 58697749 -V_OCT4_02 6.14224e-06 - ATTGATATGTAAATG
+chr8 58697735 58697750 -V_OCT4_01 1.18992e-06 - AATTGATATGTAAAT
+chr8 58697804 58697813 -V_CACBINDINGPROTEIN_Q6 6.29506e-06 - GAGGCTGGG
+chr8 63882344 63882354 -V_NUR77_Q5 2.98426e-06 - CTGACCTTGC
+chr8 63882345 63882364 +V_PPARA_02 5.21998e-06 + CAAGGTCAGGGGAGTGAAG
+chr8 63883281 63883291 +V_TAL1_Q6 7.72591e-06 + TCCAGCTGGC
+chr8 63883284 63883299 -V_SMAD4_Q6 1.35824e-06 - AGGAGGCAGCCAGCT
+chr8 63904107 63904122 -V_ETS1_B 2.60229e-06 - GCAGGATGTGGCAGG
+chr8 63904109 63904121 +V_ETS_Q4 7.92948e-06 + TGCCACATCCTG
+chr8 63904190 63904202 -V_GATA4_Q3 8.07533e-07 - AGATAACAGAGA
+chr8 63904251 63904266 -V_SPZ1_01 7.19322e-06 - TAAGGAGGGTGTGGG
+chr8 63904252 63904260 +V_CACD_01 9.89755e-06 + CCACACCC
+chr8 66887578 66887601 +V_COUPTF_Q6 3.19111e-07 + TGCCCTGACCTCTGCACCACACC
+chr8 66887582 66887596 -V_HNF4_Q6_01 2.45857e-06 - GGTGCAGAGGTCAG
+chr8 66887583 66887596 +V_PPAR_DR1_Q2 7.19742e-06 + TGACCTCTGCACC
+chr8 66887722 66887737 +V_OCT4_01 9.436e-07 + TTTTGTTATTCAAAT
+chr8 66887723 66887738 +V_OCT4_02 8.01355e-06 + TTTGTTATTCAAATT
+chr8 72123972 72123983 +V_RORA_Q4 6.07427e-06 + TTAGTGGGTCA
+chr8 72124040 72124054 +V_MEIS1AHOXA9_01 5.75423e-06 + TGACAGGTTTAGAA
+chr8 72124040 72124054 +V_MEIS1BHOXA9_02 2.7616e-06 + TGACAGGTTTAGAA
+chr8 72124080 72124093 +V_STAT1STAT1_Q3 5.18772e-06 + GTTTCACAGAAAC
+chr8 75236587 75236599 +V_ELF1_Q6 9.35761e-06 + AGAGGAGGAAAT
+chr8 75236590 75236605 +V_ETS1_B 7.64126e-06 + GGAGGAAATGGTTCA
+chr8 75236614 75236626 +V_AP2_Q6 5.22571e-06 + CACCCCCAGGCC
+chr8 75627850 75627862 +V_TTF1_Q6 4.68363e-06 + CCTTCAAGAGCC
+chr8 75628072 75628092 -V_FOXP1_01 6.91049e-06 - TTGTTTGTGTTGTAAATGAT
+chr8 75628086 75628106 -V_FOXP1_01 3.5119e-07 - TTACTTGTCTTTTTTTGTTT
+chr8 75628105 75628118 -V_NKX61_01 2.30763e-06 - CTTTTAATTGGCT
+chr8 75902182 75902204 +V_MEF2_02 7.20201e-08 + TCTTTTGCTATAAATAGCTTCT
+chr8 75902182 75902204 +V_MEF2_03 1.09447e-07 + TCTTTTGCTATAAATAGCTTCT
+chr8 75902182 75902204 +V_MEF2_04 8.3027e-08 + TCTTTTGCTATAAATAGCTTCT
+chr8 75902189 75902201 -V_MEF2_Q6_01 7.26043e-06 - AGCTATTTATAG
+chr8 76291219 76291233 +V_BLIMP1_Q6 7.96729e-06 + GGGAAGGGGAAGTG
+chr8 76291220 76291232 +V_ELF1_Q6 7.75166e-06 + GGAAGGGGAAGT
+chr8 77371383 77371393 +V_ESE1_Q3 2.21291e-06 + TGTTTCCTGT
+chr8 77371395 77371407 -V_NFKB_C 3.77632e-06 - TGGGATTCTCCA
+chr8 77371397 77371417 +V_P53_01 7.08333e-06 + GAGAATCCCAGGGCATCTCT
+chr8 77371478 77371496 -V_CMYB_01 3.86342e-06 - GCTTTCGGCAGTTGGGGG
+chr8 77371480 77371490 +V_MYB_Q6 5.43478e-06 + CCCAACTGCC
+chr8 77371482 77371491 +V_MYB_Q5_01 5.43478e-06 + CAACTGCCG
+chr8 77587327 77587342 +V_SMAD4_Q6 5.24442e-06 + GAGGGCCAGCCTCCC
+chr8 77587342 77587352 +V_NKX25_Q5 5.12638e-06 + TCCCACTTCA
+chr8 77587415 77587427 -V_CEBP_Q3 4.13513e-06 - GGCTTTGGCAAA
+chr8 77587460 77587475 -V_SMAD4_Q6 7.69322e-08 - GGGGGCCAGCCAGCC
+chr8 79997910 79997923 -V_SP1_Q6 2.58612e-08 - GGGGGGCGGGGCT
+chr8 79997911 79997921 -V_SP1_Q6_01 3.39206e-07 - GGGGCGGGGC
+chr8 79997912 79997921 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr8 79997912 79997922 +V_SP1_Q2_01 3.39206e-07 + CCCCGCCCCC
+chr8 79997913 79997927 +V_KROX_Q6 1.67588e-06 + CCCGCCCCCCAACC
+chr8 79997950 79997968 -V_SRF_Q4 7.32009e-06 - TCCATAAAAGGCCTTGGG
+chr8 79997952 79997967 -V_SRF_Q5_01 5.30156e-06 - CCATAAAAGGCCTTG
+chr8 79997953 79997968 -V_SRF_C 6.07812e-06 - TCCATAAAAGGCCTT
+chr8 80592590 80592602 +V_LMO2COM_01 2.70597e-06 + GGCCAGGTGCTC
+chr8 80592612 80592625 +V_DMRT4_01 5.97817e-06 + AATGTTTCAAGTT
+chr8 80592677 80592692 +V_CP2_02 1.83402e-06 + GCTGGCTGGAGCTGC
+chr8 81038749 81038757 -V_CACD_01 9.89755e-06 - CCACACCC
+chr8 82555982 82555992 -V_GATA1_05 5.81636e-06 - ACAGATAACA
+chr8 82556648 82556663 -V_SREBP_Q6 1.80893e-06 - CAGATCACCCCAGGA
+chr8 82556648 82556663 -V_SREBP1_Q5 3.28655e-06 - CAGATCACCCCAGGA
+chr8 82556651 82556663 -V_SREBP_Q3 1.8438e-06 - CAGATCACCCCA
+chr8 82556660 82556670 +V_NUR77_Q5 8.43564e-06 + CTGACCTTTC
+chr8 82557019 82557031 +V_PAX4_03 3.30124e-06 + AGTCCCCACCCC
+chr8 82557019 82557032 -V_MAZR_01 5.68389e-06 - GGGGGTGGGGACT
+chr8 82557022 82557032 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr8 82557023 82557032 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr8 82557023 82557034 -V_EGR_Q6 8.04446e-06 - GTGGGGGTGGG
+chr8 82557023 82557037 +V_KROX_Q6 1.8783e-06 + CCCACCCCCACCTC
+chr8 82557045 82557058 +V_HSF_Q6 5.65866e-06 + TTCTAGTGGCTTC
+chr8 82763199 82763209 +V_TAL1_Q6 4.87508e-06 + TCCAGCTGGT
+chr8 82889622 82889641 -V_GR_Q6 7.48457e-06 - GAGCCCCATTCTGTTCTCA
+chr8 82889656 82889679 -V_COUPTF_Q6 2.31388e-06 - TCCCCTGCCCTCTACTCCTTTCG
+chr8 84417326 84417341 -V_OCT4_01 7.41924e-06 - TTTTGTTATGTAACT
+chr8 85683690 85683704 -V_NFY_C 7.36566e-06 - CCTGACTGGTTAAT
+chr8 85683829 85683838 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr8 86343137 86343167 -V_PAX4_04 8.40578e-07 - AGAGAAACACCCCACCCCCACCCCCACCCC
+chr8 86343185 86343200 +V_OCT4_01 2.28618e-06 + AATTGTTATGTAAAC
+chr8 86343214 86343227 -V_SOX_Q6 5.84183e-06 - ATCTTTGTTAAGT
+chr8 86343226 86343236 +V_TAL1_Q6 7.11328e-06 + TCCACCTGCT
+chr8 86343227 86343241 +V_E2A_Q2 1.48735e-06 + CCACCTGCTTCTGA
+chr8 86343251 86343262 -V_PITX2_Q2 1.22695e-06 - TTTAATCCCAG
+chr8 87269551 87269564 -V_SP1_Q6 1.00457e-07 - AGGGGGCGGGGTG
+chr8 87269552 87269562 -V_SP1_Q6_01 1.0915e-06 - GGGGCGGGGT
+chr8 87269553 87269562 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr8 87269553 87269563 +V_SP1_Q2_01 3.39206e-07 + CCCCGCCCCC
+chr8 87269554 87269565 -V_EGR_Q6 6.21659e-06 - GAGGGGGCGGG
+chr8 87269554 87269568 +V_KROX_Q6 1.5817e-06 + CCCGCCCCCTCCAG
+chr8 87269555 87269566 +V_SP1SP3_Q4 9.31298e-08 + CCGCCCCCTCC
+chr8 87269640 87269654 -V_COUP_01 5.74208e-06 - TGACCCCTGACCAG
+chr8 87269641 87269654 +V_DR1_Q3 3.99966e-06 + TGGTCAGGGGTCA
+chr8 87269641 87269654 -V_PPAR_DR1_Q2 7.19742e-06 - TGACCCCTGACCA
+chr8 87269641 87269654 -V_COUP_DR1_Q6 2.97763e-06 - TGACCCCTGACCA
+chr8 87269662 87269674 -V_TTF1_Q6 2.60851e-06 - ACCTCAAGAGCC
+chr8 88022611 88022619 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr8 88022617 88022626 -V_CACBINDINGPROTEIN_Q6 8.12736e-06 - GGGGCTGGG
+chr8 88022621 88022637 +V_AP2_Q3 1.41644e-06 + GCCCCTGGGCTGGAGG
+chr8 88022643 88022657 -V_KROX_Q6 4.94478e-06 - CCCACCCCCTACCC
+chr8 88022647 88022660 +V_SP1_Q6 8.76141e-06 + AGGGGGTGGGGCA
+chr8 88022648 88022657 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr8 88022648 88022658 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr8 88022648 88022661 +V_MAZR_01 7.66218e-06 + GGGGGTGGGGCAT
+chr8 88022649 88022659 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr8 88022649 88022661 -V_PAX4_03 6.56043e-06 - ATGCCCCACCCC
+chr8 88022711 88022727 -V_HAND1E47_01 9.35685e-06 - AAGTGGGTCTGGCTGC
+chr8 88022743 88022756 +V_SOX_Q6 2.67168e-06 + CGCTTTGTTAGGC
+chr8 89273762 89273777 -V_DMRT1_01 5.16206e-06 - TTGTTACTTTGTTGA
+chr8 89273763 89273777 -V_DMRT7_01 7.24493e-07 - TTGTTACTTTGTTG
+chr8 89273764 89273779 -V_DMRT5_01 6.58136e-06 - TCTTGTTACTTTGTT
+chr8 89273849 89273861 -V_GATA4_Q3 7.75537e-06 - AGAAAGGAGGGA
+chr8 90463427 90463451 -V_STAT5A_02 2.51628e-06 - TTCCTGGAACTCAGGCACCCTGGA
+chr8 90463439 90463454 +V_STAT5A_01 8.22978e-06 + GAGTTCCAGGAAGCT
+chr8 90463439 90463454 -V_STAT5A_01 8.69429e-06 - AGCTTCCTGGAACTC
+chr8 90463460 90463471 -V_SP1SP3_Q4 4.25103e-06 - CCACCCCCTCC
+chr8 90463463 90463472 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr8 90463464 90463476 -V_PAX4_03 2.70808e-06 - CACACCCACCCC
+chr8 90463469 90463477 -V_CACD_01 9.89755e-06 - CCACACCC
+chr8 90463771 90463792 -V_STAT3_01 2.56653e-06 - TCGGGAATCCCGGAAGTGATT
+chr8 90463772 90463783 -V_FLI1_Q6 1.08246e-06 - CCGGAAGTGAT
+chr8 91600018 91600033 +V_OCT4_01 5.24325e-06 + CTTTCTCATGGAAAC
+chr8 91600071 91600087 +V_NFKB_Q6_01 7.12923e-06 + AGGAGGGGAAGCCCCT
+chr8 91600076 91600084 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr8 91600076 91600086 -V_NFKAPPAB_01 4.87508e-06 - GGGGCTTCCC
+chr8 91600102 91600120 -V_SRF_Q4 2.57328e-06 - GCCATAAAAGGGGACACT
+chr8 91600104 91600123 +V_SRF_Q5_02 2.12682e-06 + TGTCCCCTTTTATGGCCTT
+chr8 91600107 91600121 -V_SRF_Q6 6.58624e-06 - GGCCATAAAAGGGG
+chr8 91600108 91600123 +V_SRF_C 9.71445e-06 + CCCTTTTATGGCCTT
+chr8 91603114 91603124 +V_PR_Q2 7.23e-06 + GAAAGAACAT
+chr8 91603164 91603177 -V_RXRLXRB_01 9.21472e-06 - AGGTCAGAAGTCA
+chr8 91603170 91603180 +V_NUR77_Q5 2.98426e-06 + CTGACCTTGG
+chr8 91603171 91603180 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGG
+chr8 91603191 91603207 -V_MAF_Q6 2.76173e-06 - TGAGAGGAAGTTCCCT
+chr8 91691051 91691062 -V_EBF_Q6 4.4234e-06 - GTCCCCTGGGT
+chr8 91691097 91691109 +V_GLI_Q2 5.13911e-06 + AGTGGGTGGGCC
+chr8 91691121 91691136 +V_OCT4_01 2.64195e-06 + TATTCTAATGTTAAT
+chr8 91795637 91795652 +V_OCT4_01 6.02107e-06 + CATTTATATGCTAAT
+chr8 91795642 91795652 +V_POU3F2_02 7.27852e-06 + ATATGCTAAT
+chr8 91795754 91795769 -V_OCT4_02 3.96885e-07 - ATTGTTTTGCTAATC
+chr8 93346569 93346580 +V_CREB_Q4_01 9.66545e-06 + CCATGACGTCG
+chr8 93346605 93346616 -V_SMAD_Q6_01 1.1191e-06 - TGGCCAGACAC
+chr8 93346632 93346643 +V_LEF1TCF1_Q4 2.56824e-06 + CCTTTGATCCC
+chr8 93346673 93346684 +V_GATA_C 4.75146e-06 + AGATAAGTCCA
+chr8 93375608 93375623 +V_OCT4_02 2.41403e-06 + TTTGTTATTCTAATG
+chr8 93375621 93375634 -V_MAZR_01 2.79447e-06 - TGGGGAGGGGTCA
+chr8 93375623 93375633 -V_SP1_Q6_01 9.74073e-06 - GGGGAGGGGT
+chr8 93375624 93375633 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr8 93375625 93375633 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr8 93375645 93375655 +V_POU3F2_02 3.63926e-06 + TTATGCTAAT
+chr8 93428389 93428407 +V_PIT1_Q6 8.99316e-06 + ACTTCATAATCATGACAA
+chr8 93428414 93428432 -V_CMYB_01 2.90026e-07 - TCGGGTGGCAGTTGGGAG
+chr8 93428416 93428426 +V_MYB_Q6 5.43478e-06 + CCCAACTGCC
+chr8 93428418 93428427 +V_MYB_Q5_01 8.74404e-06 + CAACTGCCA
+chr8 93428418 93428429 -V_MYB_Q3 4.01779e-06 - GGTGGCAGTTG
+chr8 93428435 93428450 -V_OCT4_02 8.50894e-06 - ATTCAATTGCTAATG
+chr8 94216057 94216067 -V_NUR77_Q5 8.43564e-06 - TTGACCTTCC
+chr8 94567017 94567032 +V_OCT4_01 6.02107e-06 + CATTGGTATGCTAAT
+chr8 94567021 94567035 -V_OCT1_05 4.33219e-06 - GTCATTAGCATACC
+chr8 94567022 94567035 -V_OCT_C 3.21193e-06 - GTCATTAGCATAC
+chr8 94567049 94567061 +V_PBX_Q3 7.4367e-06 + GATGGATGGCCC
+chr8 96378623 96378636 +V_AP2_Q6_01 9.55245e-06 + CCTGCCCCAGGCA
+chr8 96378710 96378721 +V_HELIOSA_02 5.08394e-06 + TTAAGGAAAAT
+chr8 97726740 97726754 +V_HNF4_Q6_01 7.92317e-06 + AGGCTAAAGTCCAA
+chr8 97726831 97726844 -V_ZEC_01 1.81991e-06 - CTTGGTTGGTTGT
+chr8 97882695 97882710 -V_STAT5A_01 3.10626e-06 - GGATTCTTGGAAACA
+chr8 97882695 97882710 -V_STAT5B_01 6.50815e-06 - GGATTCTTGGAAACA
+chr8 103374294 103374305 -V_PITX2_Q2 9.46105e-06 - CTTAATCCCAG
+chr8 103374351 103374364 +V_NFY_Q6_01 9.89171e-06 + AATTAGCCAATGG
+chr8 103374369 103374384 -V_OCT1_Q6 7.6349e-06 - AGAGATGCAAATCCT
+chr8 103374396 103374409 -V_IRF1_01 3.77173e-06 - GGAAAGTGAAAGC
+chr8 103374396 103374409 -V_IRF2_01 5.5375e-07 - GGAAAGTGAAAGC
+chr8 103374397 103374408 -V_IRF_Q6_01 3.03779e-07 - GAAAGTGAAAG
+chr8 106617410 106617433 +V_OCT1_04 6.64092e-06 + GAGAAGCTATGCATATTCATATA
+chr8 106617415 106617430 -V_OCT1_02 2.45437e-06 - ATGAATATGCATAGC
+chr8 106617417 106617435 +V_PIT1_Q6 3.88193e-06 + TATGCATATTCATATACA
+chr8 106617418 106617433 +V_OCT1_02 7.8154e-06 + ATGCATATTCATATA
+chr8 106934877 106934892 +V_OCT4_01 2.83977e-06 + CTTTTTTATGCAAAC
+chr8 106934899 106934918 -V_NRSF_Q4 2.44818e-06 - GTACTGTTCCCTGGGCTGG
+chr8 109786131 109786146 -V_ETS1_B 2.97813e-06 - GCAGGAAGCAGTTCC
+chr8 109786133 109786145 +V_ETS_Q4 4.36344e-06 + AACTGCTTCCTG
+chr8 109786133 109786147 -V_ETS2_B 3.12849e-06 - TGCAGGAAGCAGTT
+chr8 109786146 109786167 -V_PPARG_01 2.16478e-06 - GCAGAGGTCAGAGGACAACGT
+chr8 109786150 109786163 +V_PPAR_DR1_Q2 5.84493e-06 + TGTCCTCTGACCT
+chr8 109786150 109786163 -V_RXRLXRB_01 6.42396e-06 - AGGTCAGAGGACA
+chr8 109786150 109786163 -V_DR1_Q3 5.94376e-06 - AGGTCAGAGGACA
+chr8 111130878 111130897 -V_GR_Q6 3.65698e-06 - TGTCCCCTCTCTGTTCTCC
+chr8 114325493 114325512 -V_NRSF_Q4 2.15312e-06 - GAGCTTTTCCTGCTGCTGA
+chr8 114325525 114325539 -V_ETS2_B 4.30291e-06 - TACAGGAAACAACT
+chr8 114325528 114325538 +V_ESE1_Q3 2.21291e-06 + TGTTTCCTGT
+chr8 116248124 116248137 -V_ZEC_01 5.66569e-06 - CAAGGTTGCTTGT
+chr8 116248150 116248169 +V_GR_Q6 4.82984e-07 + GGGGATCACTCTGTTCAGG
+chr8 116248206 116248219 -V_P50P50_Q3 3.39799e-06 - AAGGGAATTCCTC
+chr8 116640071 116640083 -V_NANOG_01 2.80149e-06 - GAGCTCATTTCC
+chr8 119097193 119097208 +V_OCT4_01 1.18992e-06 + AATTCTCATGCAAAC
+chr8 119097194 119097209 +V_OCT4_02 3.27036e-06 + ATTCTCATGCAAACG
+chr8 119541117 119541127 -V_NKX25_Q5 5.12638e-06 - TCCCACTTCA
+chr8 119636284 119636296 +V_AP2_Q6 4.04184e-06 + AGCCCCACGGCG
+chr8 119636297 119636307 +V_SP1_Q2_01 9.56538e-06 + CCCCTCCCAC
+chr8 119636298 119636308 -V_IK_Q5 4.33614e-06 - GGTGGGAGGG
+chr8 119636399 119636413 -V_HNF4_Q6_01 7.37368e-06 - AGGCCAAAGGCCTC
+chr8 119636400 119636413 +V_HNF4_DR1_Q3 8.70895e-06 + AGGCCTTTGGCCT
+chr8 119636400 119636413 -V_DR1_Q3 6.75098e-06 - AGGCCAAAGGCCT
+chr8 119636400 119636420 -V_PPARA_01 8.85233e-07 - CAGCCCTAGGCCAAAGGCCT
+chr8 119708722 119708740 -V_MYOD_Q6_01 1.68518e-06 - CGAGGGCAGGTGGCCTGG
+chr8 119708725 119708736 -V_E12_Q6 1.14424e-06 - GGCAGGTGGCC
+chr8 119708726 119708736 +V_MYOD_Q6 7.66616e-06 + GCCACCTGCC
+chr8 119708727 119708737 +V_EBOX_Q6_01 6.43409e-06 + CCACCTGCCC
+chr8 119708727 119708741 +V_E2A_Q2 1.48735e-06 + CCACCTGCCCTCGC
+chr8 119708728 119708736 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr8 119708746 119708762 -V_LXR_DR4_Q3 6.24603e-06 - TGACCTCACCTCACCC
+chr8 119746416 119746427 -V_PITX2_Q2 1.22695e-06 - TTTAATCCCAG
+chr8 119746466 119746480 +V_DMRT7_01 1.54252e-06 + TTGATACAATGTTT
+chr8 119746466 119746481 +V_DMRT1_01 1.21515e-08 + TTGATACAATGTTTC
+chr8 119746508 119746526 -V_NF1_Q6 1.5869e-06 - AGTTGGCAGCCACCCAAA
+chr8 119746509 119746526 +V_NF1_Q6_01 5.38936e-06 + TTGGGTGGCTGCCAACT
+chr8 119794931 119794940 +V_AP2ALPHA_01 9.68294e-06 + GCCCGAGGC
+chr8 119794975 119794987 -V_GFI1B_01 1.21702e-06 - TAAATCACAGCT
+chr8 120390708 120390721 +V_AP2_Q6_01 7.81175e-06 + CCTCCCTCAGGCT
+chr8 122115500 122115514 -V_ERR1_Q2 1.4372e-06 - TGATAAAGGTCATT
+chr8 122560226 122560234 -V_CACD_01 9.89755e-06 - CCACACCC
+chr8 122560270 122560286 +V_AP2_Q3 7.15703e-07 + GGCCCCAGGCAGGGGA
+chr8 122560280 122560294 +V_NFKB_Q6 2.84227e-06 + AGGGGAATTACCCG
+chr8 122560308 122560320 +V_VDR_Q6 7.92178e-06 + CCCACTGAACCT
+chr8 123081177 123081192 +V_DMRT1_01 2.58784e-07 + TGGCAACATTGTAGC
+chr8 123081179 123081194 -V_DMRT1_01 6.49273e-06 - GAGCTACAATGTTGC
+chr8 123081238 123081251 -V_MAZR_01 3.32118e-06 - GGGGGAGGGGCAG
+chr8 123081239 123081252 -V_SP1_Q6 2.76363e-06 - GGGGGGAGGGGCA
+chr8 123081240 123081250 -V_SP1_Q6_01 2.74385e-06 - GGGGAGGGGC
+chr8 123081241 123081250 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr8 123081241 123081251 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr8 123081242 123081250 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr8 123081242 123081251 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr8 124628672 124628686 +V_ETS2_B 6.44463e-06 + TACAGGAAGTCACC
+chr8 124628674 124628685 +V_FLI1_Q6 1.42541e-06 + CAGGAAGTCAC
+chr8 124628692 124628707 -V_SPZ1_01 9.3792e-06 - AAGGGAGGGTATGCG
+chr8 124628713 124628732 -V_OCT1_01 2.27046e-06 - ATTTTTATGCTAATTTCGC
+chr8 124628717 124628729 -V_OCT1_07 6.53658e-07 - TTTATGCTAATT
+chr8 124628718 124628728 -V_POU3F2_02 3.63926e-06 - TTATGCTAAT
+chr8 124628718 124628733 -V_OCT4_01 3.26181e-06 - TATTTTTATGCTAAT
+chr8 124752874 124752886 -V_LRH1_Q5 8.26289e-06 - CTGGCCTTGGGC
+chr8 124752928 124752943 -V_OCT4_01 3.04012e-06 - CTTTATCATGCAAAG
+chr8 124752942 124752955 -V_IK3_01 1.08541e-07 - TCCTGGGAACACC
+chr8 124752952 124752964 +V_ICSBP_Q6 9.64187e-06 + GGAGTGAAACTG
+chr8 124752992 124753001 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr8 125103009 125103021 -V_NANOG_01 8.2798e-06 - GGGCCCATTAGC
+chr8 125103073 125103089 -V_AP2_Q3 3.44455e-06 - ACCCCCAGGCTGTGAA
+chr8 125103078 125103091 -V_AP2_Q6_01 9.55245e-06 - GCACCCCCAGGCT
+chr8 126241531 126241544 -V_AP1_01 3.63092e-06 - CAGTGAGTCACCA
+chr8 126241532 126241543 +V_AP1FJ_Q2 3.49199e-06 + GGTGACTCACT
+chr8 126241532 126241543 +V_AP1_Q6 1.40518e-06 + GGTGACTCACT
+chr8 126241532 126241543 +V_AP1_Q4 1.41718e-06 + GGTGACTCACT
+chr8 126241555 126241574 -V_PPARA_02 9.41237e-06 - CAGGGTCACTGGGCTGTGT
+chr8 126281182 126281206 +V_BRACH_01 8.73774e-06 + CTCATCTCACCTGGCTGTAACTTT
+chr8 126281227 126281242 +V_DMRT1_01 5.16206e-06 + CTGCAACTTTGTATC
+chr8 126281249 126281279 +V_PAX4_04 4.01413e-06 + GGACATTGTCTCCTCCCCCCACCCCCCACC
+chr8 126379428 126379440 +V_SRY_02 5.02837e-06 + GAAAACAATAAA
+chr8 126487729 126487742 -V_OCT_C 6.71556e-06 - AACATTTGCATGC
+chr8 126487756 126487771 -V_DMRT1_01 4.79884e-08 - TTGATACATTGTTGT
+chr8 126487757 126487771 -V_DMRT7_01 1.65289e-07 - TTGATACATTGTTG
+chr8 126487759 126487774 -V_DMRT3_01 1.87777e-06 - ACATTGATACATTGT
+chr8 126487759 126487775 -V_DMRT2_01 3.03478e-06 - AACATTGATACATTGT
+chr8 126487761 126487774 +V_DMRT4_01 1.13767e-06 + AATGTATCAATGT
+chr8 126487781 126487796 -V_DMRT1_01 9.21473e-06 - TAGTTACACTGTTGC
+chr8 126487873 126487889 +V_MEF2_01 1.69805e-07 + TTCTAAAAAGAACTCT
+chr8 126842707 126842725 +V_NF1_Q6 5.86126e-06 + GCTTGGCTAGCACTCCGG
+chr8 126842760 126842775 +V_DMRT1_01 4.26013e-07 + TGGAAACATTGTATC
+chr8 126842762 126842777 -V_DMRT1_01 1.21515e-08 - TTGATACAATGTTTC
+chr8 126842763 126842777 -V_DMRT7_01 1.54252e-06 - TTGATACAATGTTT
+chr8 126842765 126842780 -V_DMRT3_01 5.0655e-07 - CAATTGATACAATGT
+chr8 126842765 126842781 -V_DMRT2_01 2.33602e-06 - GCAATTGATACAATGT
+chr8 126842786 126842797 +V_ALPHACP1_01 4.48665e-06 + CAGCCACTGAG
+chr8 126970313 126970328 +V_DMRT1_01 1.79174e-06 + TGGATACAATGTAAC
+chr8 126970315 126970330 -V_DMRT1_01 2.12704e-06 - CAGTTACATTGTATC
+chr8 126970645 126970660 -V_DMRT1_01 8.79038e-06 - TAGTTACTATGTTTC
+chr8 126970693 126970708 -V_DMRT1_01 3.71498e-06 - TGGTTACTATGTTTC
+chr8 126970732 126970755 +V_COUPTF_Q6 6.88321e-07 + CCCGCTGACCTCTGACCTTGTGC
+chr8 126970733 126970754 -V_PPARG_01 1.04142e-06 - CACAAGGTCAGAGGTCAGCGG
+chr8 126970736 126970750 -V_HNF4_Q6_01 1.6524e-06 - AGGTCAGAGGTCAG
+chr8 126970737 126970750 +V_PPAR_DR1_Q2 3.27463e-07 + TGACCTCTGACCT
+chr8 126970737 126970750 +V_HNF4_DR1_Q3 2.08574e-06 + TGACCTCTGACCT
+chr8 126970737 126970750 +V_COUP_DR1_Q6 4.91833e-07 + TGACCTCTGACCT
+chr8 126970737 126970750 -V_RXRLXRB_01 1.66123e-07 - AGGTCAGAGGTCA
+chr8 126970737 126970750 -V_DR1_Q3 4.22832e-07 - AGGTCAGAGGTCA
+chr8 126970737 126970751 +V_COUP_01 5.96038e-07 + TGACCTCTGACCTT
+chr8 126970737 126970754 -V_PPARG_03 1.11777e-06 - CACAAGGTCAGAGGTCA
+chr8 126970737 126970757 -V_PPARA_01 3.03617e-07 - CTGCACAAGGTCAGAGGTCA
+chr8 126970742 126970756 -V_ERR1_Q2 3.64695e-06 - TGCACAAGGTCAGA
+chr8 127231564 127231580 -V_NFY_01 7.41568e-06 - GCCAGCCAATGAGACA
+chr8 127231567 127231578 -V_ALPHACP1_01 2.04834e-07 - CAGCCAATGAG
+chr8 127231689 127231707 -V_HNF3_Q6_01 6.08391e-06 - GACACTGTTTGCATAGGT
+chr8 127231691 127231704 +V_HNF3_Q6 4.65532e-06 + CTATGCAAACAGT
+chr8 127281009 127281022 +V_AP1_01 9.37963e-07 + GCGTGACTCAGCA
+chr8 127281010 127281021 +V_AP1_Q6 5.6407e-06 + CGTGACTCAGC
+chr8 127281010 127281023 -V_NRF2_Q4 4.03856e-07 - TTGCTGAGTCACG
+chr8 127281011 127281022 -V_NFE2_01 2.04834e-07 - TGCTGAGTCAC
+chr8 127281011 127281022 -V_MAF_Q6_01 4.72643e-06 - TGCTGAGTCAC
+chr8 128040000 128040016 +V_S8_01 2.37644e-06 + AAAAGCCAATTAGCTT
+chr8 128189763 128189777 +V_ETS2_B 6.44463e-06 + TGCAGGAAGTGGGA
+chr8 128189764 128189776 +V_GABP_B 8.25185e-06 + GCAGGAAGTGGG
+chr8 128189764 128189779 +V_ETS1_B 2.97813e-06 + GCAGGAAGTGGGATG
+chr8 128189765 128189777 -V_ETS_Q4 1.1218e-06 - TCCCACTTCCTG
+chr8 128189767 128189777 -V_NKX25_Q5 8.11064e-06 - TCCCACTTCC
+chr8 128223546 128223560 -V_CEBP_Q2 4.29984e-06 - ATATTGCTTAAGGA
+chr8 128223583 128223594 -V_AP1FJ_Q2 4.57673e-06 - GGTGACTAAGA
+chr8 128223583 128223594 -V_AP1_Q2 2.65242e-06 - GGTGACTAAGA
+chr8 128223583 128223594 -V_AP1_Q4 2.788e-06 - GGTGACTAAGA
+chr8 128223594 128223611 +V_PU1_01 8.10558e-06 + AGAAGGGGGAACTGAAA
+chr8 128223595 128223614 -V_PU1_Q4 4.80518e-06 - ATGTTTCAGTTCCCCCTTC
+chr8 128426484 128426493 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGG
+chr8 128426617 128426626 +V_AP2ALPHA_01 6.01835e-06 + GCCCCGGGG
+chr8 128426617 128426626 +V_AP2GAMMA_01 4.51376e-06 + GCCCCGGGG
+chr8 128882039 128882054 -V_OCT4_02 7.53505e-07 - TTTGTTTTGCTAATG
+chr8 128882040 128882055 -V_OCT4_01 4.91956e-06 - CTTTGTTTTGCTAAT
+chr8 128882065 128882080 -V_SREBP_Q6 5.20933e-06 - CCAGCCACCCCAGTC
+chr8 129002837 129002852 +V_DMRT1_01 1.87081e-07 + CTGCAACAATGTTTC
+chr8 129002839 129002854 -V_DMRT1_01 1.95997e-06 - GTGAAACATTGTTGC
+chr8 129002874 129002889 +V_DMRT1_01 8.47921e-07 + CTGCAACAATGTTTT
+chr8 129002904 129002914 -V_GATA6_01 2.4539e-06 - AAAGATAAGC
+chr8 129002912 129002926 +V_DMRT7_01 3.5461e-06 + TTGCAACAATGTTT
+chr8 129002912 129002927 +V_DMRT1_01 4.26013e-07 + TTGCAACAATGTTTT
+chr8 129050915 129050943 +V_PAX5_01 1.48702e-06 + TGCATGGGCAGTGGAGAGGAAAGGCCCC
+chr8 129050999 129051011 -V_GLI_Q2 6.68438e-06 - CCTGGGTGGTGT
+chr8 129051034 129051043 +V_FOXO1_Q5 7.27852e-06 + AAAAACAAA
+chr8 129051047 129051055 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr8 129063347 129063360 -V_CHOP_01 1.61268e-06 - GGATGCAATCACC
+chr8 129063376 129063389 -V_MAZR_01 9.79421e-06 - GGGGGTGGGGAGC
+chr8 129063379 129063389 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr8 129063380 129063389 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr8 129063380 129063391 -V_EGR_Q6 8.04446e-06 - GTGGGGGTGGG
+chr8 129063380 129063394 +V_KROX_Q6 2.21131e-07 + CCCACCCCCACCCC
+chr8 129063382 129063394 +V_PAX4_03 2.40392e-07 + CACCCCCACCCC
+chr8 129063384 129063395 +V_SP1SP3_Q4 8.91927e-06 + CCCCCACCCCC
+chr8 129063385 129063395 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr8 129063386 129063395 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr8 129063417 129063430 +V_NRF2_Q4 8.50037e-06 + CTGCTGACTCATG
+chr8 129063418 129063429 +V_NFE2_01 1.48643e-06 + TGCTGACTCAT
+chr8 129063418 129063431 -V_AP1_01 8.40995e-08 - GCATGAGTCAGCA
+chr8 129063419 129063430 -V_BACH2_01 3.70252e-06 - CATGAGTCAGC
+chr8 129063420 129063429 -V_AP1_C 4.03003e-06 - ATGAGTCAG
+chr8 129283777 129283799 +V_MEF2_02 3.80628e-06 + TCCCAAACTAAAAATAGTGAAG
+chr8 129443305 129443316 +V_AP1_Q4 9.46297e-06 + GGTGACTAATT
+chr8 129443307 129443323 -V_S8_01 1.41429e-06 - ATTAACCAATTAGTCA
+chr8 129443333 129443344 +V_LEF1TCF1_Q4 5.90916e-06 + CCTTTGAAGCT
+chr8 129443398 129443409 -V_AP1FJ_Q2 2.02766e-06 - GCTGACTCAGA
+chr8 129443398 129443409 -V_AP1_Q2 8.19335e-07 - GCTGACTCAGA
+chr8 129443398 129443409 -V_AP1_Q6 4.26015e-06 - GCTGACTCAGA
+chr8 129443398 129443409 -V_AP1_Q4 7.9984e-06 - GCTGACTCAGA
+chr8 129443417 129443427 -V_IK_Q5 7.92622e-06 - GGTGGGAGGC
+chr8 129443437 129443452 +V_SMAD4_Q6 1.35824e-06 + CTGAGCCAGCCAGCC
+chr8 129504134 129504142 +V_CACD_01 9.89755e-06 + CCACACCC
+chr9 3215388 3215402 +V_KROX_Q6 6.2846e-06 + CTCTCCCCCTCCCC
+chr9 3215389 3215404 -V_VDR_Q3 1.31117e-06 - GGGGGGAGGGGGAGA
+chr9 3215391 3215404 -V_SP1_Q6 8.76141e-06 - GGGGGGAGGGGGA
+chr9 3215392 3215402 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr9 3215392 3215403 +V_SP1SP3_Q4 2.8432e-06 + CCCCCTCCCCC
+chr9 3215393 3215402 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr9 3215393 3215403 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr9 3215394 3215402 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr9 3215394 3215403 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr9 3215394 3215408 +V_KROX_Q6 1.5817e-06 + CCCTCCCCCCCCCC
+chr9 3215395 3215408 -V_MAZR_01 1.93317e-06 - GGGGGGGGGGAGG
+chr9 3215398 3215407 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr9 3215398 3215409 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr9 3215399 3215408 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr9 3215399 3215410 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr9 3215400 3215409 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr9 3215400 3215411 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr9 3215401 3215410 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr9 3215401 3215412 +V_SP1SP3_Q4 6.44809e-06 + CCCCCCCCCCG
+chr9 3215402 3215411 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr9 3216082 3216091 -V_AP1_Q6_01 4.03003e-06 - ATGACTCAG
+chr9 3216206 3216222 -V_MEF2_01 5.58815e-06 - CTCTAAAAAGGACCTT
+chr9 3521215 3521226 +V_LEF1TCF1_Q4 9.40057e-06 + CCTTTGATGTG
+chr9 7686349 7686359 +V_TBX5_Q5 8.44574e-06 + CTCACACCTC
+chr9 7686372 7686385 +V_HSF_Q6 9.40862e-06 + TTCAAGGAGCTTC
+chr9 8733664 8733675 -V_RORA_Q4 6.07427e-06 - TTACTGGGTCA
+chr9 8733692 8733703 -V_LEF1TCF1_Q4 4.49892e-06 - ACTTTGATGTT
+chr9 8733694 8733704 +V_LEF1_Q2_01 4.03003e-06 + CATCAAAGTG
+chr9 8733737 8733752 -V_OCT4_01 5.63049e-06 - TTTAGAGATGCAAAT
+chr9 12058664 12058673 -V_HNF4_Q6 7.33929e-06 - AAGGTCCAG
+chr9 12058716 12058727 +V_EBF_Q6 4.4234e-06 + GTCCCTAGGGG
+chr9 12058724 12058734 -V_P53_DECAMER_Q2 6.1263e-07 - AGGCAAGCCC
+chr9 12887401 12887415 -V_ERR1_Q2 2.97688e-06 - AGATAAAGGTCACC
+chr9 12887422 12887433 -V_EBF_Q6 2.83527e-06 - GTCCCTAGAGA
+chr9 12887427 12887439 +V_NFKB_C 4.56464e-06 + AGGGACATTCCA
+chr9 15882258 15882276 -V_MYOD_Q6_01 5.1029e-06 - GTGAGGCAGCTGCTGAGG
+chr9 15882270 15882288 -V_MYOD_Q6_01 5.42852e-06 - TCAGGCCAGGTGGTGAGG
+chr9 15882273 15882285 -V_LMO2COM_01 2.70597e-06 - GGCCAGGTGGTG
+chr9 15882275 15882285 +V_EBOX_Q6_01 6.43409e-06 + CCACCTGGCC
+chr9 15882413 15882427 +V_ERR1_Q2 2.97688e-06 + AGATAAAGGTCACC
+chr9 15882418 15882429 +V_ER_Q6_02 8.40206e-06 + AAGGTCACCCT
+chr9 18538802 18538813 +V_NFE2_01 1.48643e-06 + AGCTGAGTCAC
+chr9 18538802 18538815 -V_AP1_01 7.96108e-06 - GTGTGACTCAGCT
+chr9 18538886 18538899 -V_P50P50_Q3 6.38701e-06 - AGGGGAATTCCAT
+chr9 18538888 18538898 -V_CREL_01 5.43478e-06 - GGGGAATTCC
+chr9 20258324 20258345 +V_PPARG_01 5.82642e-06 + CAGGAGGGCAAAGGACAAGGA
+chr9 20258328 20258341 +V_RXRLXRB_01 7.77466e-06 + AGGGCAAAGGACA
+chr9 20258328 20258341 +V_DR1_Q3 1.54097e-06 + AGGGCAAAGGACA
+chr9 20258328 20258341 -V_PPAR_DR1_Q2 2.21229e-06 - TGTCCTTTGCCCT
+chr9 20258328 20258341 -V_HNF4_DR1_Q3 2.40262e-06 - TGTCCTTTGCCCT
+chr9 20258328 20258342 +V_HNF4_Q6_01 3.36869e-06 + AGGGCAAAGGACAA
+chr9 20258354 20258370 -V_ARNT_01 7.24792e-06 - GAAGTCACGTGTGTGC
+chr9 21154725 21154736 -V_PITX2_Q2 5.53227e-07 - TGTAATCCCAG
+chr9 21154735 21154750 -V_SMAD4_Q6 4.06719e-06 - GTGAGGCGGCCTCCT
+chr9 21154767 21154779 -V_VDR_Q6 3.87245e-06 - CTCTCTGAACCC
+chr9 22850086 22850097 -V_LEF1TCF1_Q4 5.53227e-07 - CCTTTGATGTC
+chr9 22850088 22850098 +V_LEF1_Q2_01 5.84716e-06 + CATCAAAGGC
+chr9 22850099 22850113 -V_KROX_Q6 9.17068e-06 - CCCACCCCCTCTGC
+chr9 22850104 22850113 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr9 22850104 22850114 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr9 22850109 22850122 +V_MAZR_01 9.79421e-06 + TGGGGAGGGGAAG
+chr9 22850110 22850118 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr9 22850110 22850119 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr9 22850139 22850153 +V_BLIMP1_Q6 4.97194e-06 + AGAGAGAGAAAGGA
+chr9 23342736 23342747 -V_ER_Q6_02 9.79111e-07 - CAGGTCAGGGT
+chr9 23965008 23965022 +V_KROX_Q6 4.24911e-06 + TCCTCCCCCTCCCC
+chr9 23965012 23965022 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr9 23965012 23965023 +V_SP1SP3_Q4 2.8432e-06 + CCCCCTCCCCC
+chr9 23965013 23965022 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr9 23965013 23965023 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr9 23965014 23965022 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr9 23965014 23965023 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr9 23965042 23965054 -V_OCT1_07 1.65282e-06 - TATATGTTAATT
+chr9 23965043 23965053 -V_POU3F2_02 5.63759e-06 - ATATGTTAAT
+chr9 23965061 23965074 -V_SOX_Q6 1.74599e-06 - CTCTTTGTTCCCA
+chr9 23965123 23965141 +V_HNF3_Q6_01 9.93411e-06 + TTCAGTGTTTGCCGTGGC
+chr9 24761178 24761190 -V_MEIS1_01 2.10527e-06 - TAGTGACAGGAC
+chr9 24761209 24761219 -V_LEF1_Q2_01 5.84716e-06 - CATCAAAGGC
+chr9 24761231 24761248 -V_FOXP3_Q4 4.05736e-06 - GAAGTGTTGAGACAGGG
+chr9 27361057 27361072 -V_AML_Q6 8.96093e-06 - CAGGCTGTGGTTTTT
+chr9 27361111 27361129 -V_MYOD_Q6_01 2.89007e-06 - TCAGGCCAGGTGGTGGAG
+chr9 27361114 27361126 -V_LMO2COM_01 2.70597e-06 - GGCCAGGTGGTG
+chr9 27361116 27361126 +V_EBOX_Q6_01 6.43409e-06 + CCACCTGGCC
+chr9 27371932 27371942 +V_SP1_Q2_01 9.56538e-06 + CCCCTCCCAC
+chr9 27371933 27371943 -V_IK_Q5 4.33614e-06 - GGTGGGAGGG
+chr9 27371952 27371970 +V_GCNF_01 3.82484e-06 + GGCTAGGTCAAGTTCCAT
+chr9 27634741 27634751 +V_KAISO_01 1.65463e-06 + CTCCTGCTAG
+chr9 27634811 27634821 +V_SP1_Q6_01 7.15614e-06 + AGGGCGGGGG
+chr9 27634811 27634825 -V_KROX_Q6 9.17068e-06 - CGAGCCCCCGCCCT
+chr9 29730427 29730446 +V_ER_Q6 8.2639e-06 + AGAGGTCTGCCTGACCTTC
+chr9 29730443 29730457 +V_ERR1_Q2 1.63433e-06 + TTCTCAAGGTCACT
+chr9 29730446 29730455 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr9 29730462 29730474 -V_LRH1_Q5 9.2187e-06 - GGGGCCTTGCAG
+chr9 29848157 29848167 +V_LEF1_Q2_01 5.84716e-06 + GATCAAAGGC
+chr9 29848165 29848182 -V_NF1_Q6_01 2.18952e-06 - TGGGACAAGTGCCAAGC
+chr9 29848165 29848183 +V_NF1_Q6 9.30221e-06 + GCTTGGCACTTGTCCCAG
+chr9 30775863 30775876 -V_NRF2_Q4 6.45994e-06 - CTGAAGAGTCATC
+chr9 30775900 30775910 -V_NUR77_Q5 8.43564e-06 - TTGACCTTCC
+chr9 30775916 30775934 -V_HNF3_Q6_01 8.19906e-06 - TGCTGTGTTGGCTTTGTT
+chr9 31070020 31070035 -V_HES1_Q2 4.66378e-06 - GGCCCTGGTGGCTAG
+chr9 31070033 31070051 -V_SRF_Q4 1.21815e-07 - GCCAAATAAGGAACTAGG
+chr9 31070035 31070050 -V_SRF_Q5_01 4.97726e-07 - CCAAATAAGGAACTA
+chr9 31070035 31070054 +V_SRF_Q5_02 7.92314e-08 + TAGTTCCTTATTTGGCCAT
+chr9 31070036 31070054 -V_SRF_01 1.23577e-06 - ATGGCCAAATAAGGAACT
+chr9 31070038 31070052 -V_SRF_Q6 2.32445e-07 - GGCCAAATAAGGAA
+chr9 31070039 31070054 +V_SRF_C 6.98151e-07 + TCCTTATTTGGCCAT
+chr9 31070052 31070064 -V_ELF1_Q6 6.25224e-06 - GGAGGAGGAAAT
+chr9 31070076 31070085 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr9 31070076 31070086 -V_NUR77_Q5 8.43564e-06 - TTGACCTTGG
+chr9 31070120 31070131 -V_ALPHACP1_01 7.72372e-06 - CAGCCAAAGAG
+chr9 31495473 31495486 -V_AP2_Q6_01 8.86342e-06 - CCAGCCCCAGGCT
+chr9 31495553 31495571 +V_NF1_Q6 5.19255e-06 + CCTTGGCAGAGGCCCTGC
+chr9 31903332 31903343 +V_ELF5_01 6.5946e-06 + ATCAGGAAGTT
+chr9 31903334 31903346 -V_ETS_Q4 4.90737e-06 - AACAACTTCCTG
+chr9 31903343 31903358 +V_OCT4_01 5.24325e-06 + GTTTGTCATGCAGAT
+chr9 31903344 31903359 +V_OCT4_02 1.18248e-06 + TTTGTCATGCAGATT
+chr9 32222679 32222691 +V_GLI_Q2 1.77433e-06 + TCTGGGTGGTGC
+chr9 32222740 32222758 +V_CART1_01 3.51458e-06 + TGCTAATTTGCATTACTA
+chr9 32222742 32222755 +V_OCT_C 9.93499e-06 + CTAATTTGCATTA
+chr9 32222742 32222756 +V_OCT1_05 5.90695e-06 + CTAATTTGCATTAC
+chr9 32222742 32222757 -V_OCT1_Q6 3.59681e-06 - AGTAATGCAAATTAG
+chr9 32222743 32222754 +V_OCT1_Q5_01 2.46139e-06 + TAATTTGCATT
+chr9 32222743 32222754 +V_OCT_Q6 3.88942e-06 + TAATTTGCATT
+chr9 32222745 32222760 -V_OCT4_01 3.90219e-07 - CATAGTAATGCAAAT
+chr9 32222750 32222764 +V_EFC_Q6 3.44057e-06 + CATTACTATGGAAA
+chr9 32528842 32528853 -V_MYB_Q3 3.40516e-06 - AGGGGCAGTTA
+chr9 32528847 32528863 +V_AP2_Q3 4.72602e-06 + GCCCCTGGGCTGGAAC
+chr9 32528851 32528865 +V_PAX6_Q2 2.24219e-07 + CTGGGCTGGAACTC
+chr9 32740856 32740868 +V_PAX4_03 9.67001e-06 + CAGCCCCACCCT
+chr9 32740877 32740899 +V_MEF2_03 3.49417e-06 + CTTTGTTCTAAAGATAGCCCTT
+chr9 32740882 32740898 +V_MEF2_01 4.04902e-06 + TTCTAAAGATAGCCCT
+chr9 32740961 32740975 +V_CEBPB_01 6.18472e-06 + GGATTGGGAAAGGG
+chr9 36872844 36872852 -V_CACD_01 9.89755e-06 - CCACACCC
+chr9 40047456 40047470 -V_HNF4_Q6_01 3.36869e-06 - TGGCCAGAGGTCAA
+chr9 40047457 40047470 +V_PPAR_DR1_Q2 1.70612e-06 + TGACCTCTGGCCA
+chr9 40047457 40047470 +V_HNF4_DR1_Q3 5.33101e-06 + TGACCTCTGGCCA
+chr9 40047457 40047470 +V_COUP_DR1_Q6 2.1801e-06 + TGACCTCTGGCCA
+chr9 40047457 40047470 -V_DR1_Q3 2.76991e-06 - TGGCCAGAGGTCA
+chr9 40047457 40047471 +V_COUP_01 3.35061e-06 + TGACCTCTGGCCAG
+chr9 40047457 40047474 -V_PPARG_03 8.20535e-06 - GTCCTGGCCAGAGGTCA
+chr9 40047467 40047486 -V_NRSF_Q4 8.64281e-06 - GCTCTCTTCCTTGTCCTGG
+chr9 40047543 40047558 -V_OCT4_01 3.26181e-06 - AATTCAAATGTAAAT
+chr9 40047558 40047568 +V_OCT1_B 8.43065e-06 + AATGCAAATC
+chr9 40048008 40048022 -V_KROX_Q6 7.56123e-06 - CCCTCCCCCTCCTC
+chr9 40048013 40048022 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr9 40048013 40048023 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr9 40048013 40048026 +V_MAZR_01 2.98074e-06 + GGGGGAGGGGAAA
+chr9 40048014 40048022 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr9 40048014 40048023 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr9 40048015 40048029 +V_BLIMP1_Q6 5.2171e-06 + GGGAGGGGAAAGGG
+chr9 40048071 40048083 +V_PXR_Q2 5.07494e-06 + AGGGTCAGGAAA
+chr9 40048106 40048116 -V_SP1_Q2_01 2.74385e-06 - CCCCGCCCTC
+chr9 40048144 40048159 -V_STAT5B_01 9.39014e-07 - GCTTTCCTGGAATTT
+chr9 41827227 41827239 -V_PAX4_03 5.05761e-06 - AACCTCCACCCT
+chr9 41827257 41827273 +V_DMRT2_01 2.89866e-06 + CAAATGGCAACATTGT
+chr9 41827261 41827275 +V_DMRT7_01 2.82482e-06 + TGGCAACATTGTTG
+chr9 41827261 41827276 +V_DMRT1_01 8.36868e-08 + TGGCAACATTGTTGC
+chr9 41827263 41827278 -V_DMRT1_01 4.45823e-07 - TAGCAACAATGTTGC
+chr9 42686648 42686660 +V_CEBP_Q3 2.82879e-06 + CAGTTTGGCAAA
+chr9 42999900 42999911 -V_ELF5_01 8.57585e-06 - ACCAGGAAGTA
+chr9 42999908 42999921 +V_CHOP_01 1.20053e-06 + GGTTGCAATCCCC
+chr9 43253000 43253011 -V_SMAD_Q6_01 1.1191e-06 - TGGCCAGACAC
+chr9 43537841 43537855 +V_HNF4_Q6_01 7.92317e-06 + GGGGCAGGGTCCAA
+chr9 43666303 43666317 +V_ETS2_B 9.24814e-06 + AACAGGAAATCTCT
+chr9 43666342 43666357 +V_VDR_Q3 1.74075e-06 + GGGGCAGGGAGGTGG
+chr9 43666940 43666958 -V_RFX1_02 5.5622e-06 - GAGGAGCTCTGGTAACAC
+chr9 43667030 43667042 -V_EGR2_01 8.36299e-06 - GGGCGTGGGAGT
+chr9 43667035 43667048 +V_AP2_Q6_01 2.39401e-06 + CACGCCCCAGGCT
+chr9 43667037 43667053 +V_AP2_Q3 1.41644e-06 + CGCCCCAGGCTGCAGC
+chr9 43667046 43667058 -V_LMO2COM_01 2.05922e-06 - CCCCAGCTGCAG
+chr9 43801901 43801914 -V_IK1_01 3.06456e-06 - TATCGGGAATACC
+chr9 43801901 43801914 -V_IK3_01 7.2564e-07 - TATCGGGAATACC
+chr9 43801977 43801992 -V_VDR_Q3 1.06886e-06 - GGGGCAAAGAGGAGA
+chr9 44403554 44403569 -V_OCT4_02 3.74554e-06 - TTTCACTTGCTAATA
+chr9 46700013 46700027 +V_OCT1_05 3.18061e-06 + GGGATTTGCATTTT
+chr9 46700013 46700028 -V_OCT1_Q6 6.7472e-06 - TAAAATGCAAATCCC
+chr9 46700014 46700025 +V_OCT1_Q5_01 7.81079e-06 + GGATTTGCATT
+chr9 46700015 46700025 -V_OCT1_B 8.43065e-06 - AATGCAAATC
+chr9 46700016 46700031 -V_OCT4_01 8.06422e-07 - CATTAAAATGCAAAT
+chr9 46700100 46700113 +V_SP1_Q6 2.31776e-06 + AGGGGGTGGGGCT
+chr9 46700101 46700110 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr9 46700101 46700111 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr9 46700101 46700114 +V_MAZR_01 3.32118e-06 + GGGGGTGGGGCTA
+chr9 46700102 46700112 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr9 46700102 46700114 -V_PAX4_03 5.65167e-06 - TAGCCCCACCCC
+chr9 46700119 46700129 -V_NUR77_Q5 2.98426e-06 - CTGACCTTGC
+chr9 47322521 47322533 +V_IK2_01 1.22274e-06 + GTTTGGGAAACC
+chr9 47322552 47322567 -V_OCT4_01 9.65557e-06 - CCTTGTGATGCAAAT
+chr9 47322579 47322594 +V_OCT4_01 4.28625e-06 + TTTACAAATGCAAAT
+chr9 47322580 47322599 +V_OCT1_01 6.72058e-06 + TTACAAATGCAAATTCCAG
+chr9 47322582 47322597 +V_OCT1_Q6 6.28245e-06 + ACAAATGCAAATTCC
+chr9 47322583 47322597 -V_OCT1_05 8.83657e-06 - GGAATTTGCATTTG
+chr9 47322600 47322610 -V_SP1_Q6_01 3.49614e-06 - GGGGCGGAGC
+chr9 47670033 47670048 +V_AML_Q6 3.60538e-06 + CAGCCTGTGGTGACC
+chr9 47670033 47670048 -V_PEBP_Q6 3.67856e-06 - GGTCACCACAGGCTG
+chr9 48586435 48586447 +V_IPF1_Q4 9.05091e-07 + GCTCTAATGACC
+chr9 48647790 48647800 +V_CREL_01 7.83548e-06 + TGGGCTTTCC
+chr9 48647832 48647856 +V_COMP1_01 9.80402e-07 + AGTTTTGAATGACAGTAAAACATC
+chr9 48647863 48647875 +V_TTF1_Q6 1.51693e-06 + CACTCAAGAGCT
+chr9 48647884 48647899 -V_OCT4_02 4.9622e-06 - ATTCACATGCAAGTA
+chr9 48647885 48647900 -V_OCT4_01 4.01204e-06 - CATTCACATGCAAGT
+chr9 48698349 48698363 -V_E2A_Q2 7.51334e-06 - CCACCTGTCTCTCC
+chr9 48698350 48698368 +V_MYOD_Q6_01 1.26853e-06 + GAGAGACAGGTGGAGAAC
+chr9 48698354 48698364 -V_MYOD_Q6 4.20952e-06 - TCCACCTGTC
+chr9 48799901 48799914 -V_SP1_Q6 5.21945e-06 - TGGGGGCGGGGAC
+chr9 48799902 48799912 -V_SP1_Q6_01 2.74385e-06 - GGGGCGGGGA
+chr9 48799903 48799912 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr9 48799903 48799913 +V_SP1_Q2_01 3.39206e-07 + CCCCGCCCCC
+chr9 48799904 48799915 -V_EGR_Q6 7.81764e-06 - CTGGGGGCGGG
+chr9 49914836 49914846 +V_POU3F2_02 7.27852e-06 + ATATGCTAAT
+chr9 49914836 49914849 -V_OCT_C 3.87618e-06 - TTCATTAGCATAT
+chr9 49914868 49914883 -V_SPZ1_01 2.6946e-06 - GGAGGGGGGTGTGTG
+chr9 50392985 50392997 -V_ETS_Q4 7.06097e-06 - AGCTACTTCCTC
+chr9 50393035 50393048 +V_AP2_Q6_01 8.86342e-06 + CTCGCCTCAGGCC
+chr9 50393044 50393054 -V_EBOX_Q6_01 6.43409e-06 - CCACCTGGCC
+chr9 50393048 50393061 +V_MAZR_01 9.36507e-06 + AGGTGGGGGGTCA
+chr9 50393051 50393060 +V_ZIC1_01 9.41154e-06 + TGGGGGGTC
+chr9 50393051 50393060 +V_ZIC3_01 7.18016e-06 + TGGGGGGTC
+chr9 50393074 50393084 -V_P53_DECAMER_Q2 2.10476e-06 - AGGCAAGTCC
+chr9 50393074 50393094 -V_P53_01 7.23896e-06 - GGGCAATTCCAGGCAAGTCC
+chr9 50841500 50841511 -V_AP1FJ_Q2 1.61799e-06 - AGTGACTCAGA
+chr9 50841500 50841511 -V_AP1_Q2 1.31823e-06 - AGTGACTCAGA
+chr9 50841500 50841511 -V_AP1_Q4 2.788e-06 - AGTGACTCAGA
+chr9 52086553 52086568 -V_OCT4_01 3.49929e-06 - TATTCTAATGTAAAG
+chr9 52086605 52086620 +V_OCT4_01 9.05006e-06 + TATTGTGATGGTAAT
+chr9 52086606 52086621 +V_OCT4_02 8.38472e-07 + ATTGTGATGGTAATG
+chr9 52086705 52086716 -V_HELIOSA_01 3.49757e-06 - TATAGGGATAG
+chr9 52557391 52557405 +V_USF_01 9.79746e-06 + GCACCACGTGATAG
+chr9 52557391 52557405 -V_USF_01 9.79746e-06 - CTATCACGTGGTGC
+chr9 52557392 52557404 +V_MYCMAX_02 8.16861e-06 + CACCACGTGATA
+chr9 52557415 52557426 -V_EBF_Q6 3.11689e-06 - GTCCCCTGGGG
+chr9 52557442 52557456 +V_NFY_C 2.25205e-06 + CCTGATTGGCAGCT
+chr9 56014835 56014851 +V_DMRT2_01 7.60933e-06 + CAGTTCGATACAATGT
+chr9 56014836 56014851 +V_DMRT3_01 2.81625e-06 + AGTTCGATACAATGT
+chr9 56014839 56014854 +V_DMRT1_01 1.22102e-06 + TCGATACAATGTTGC
+chr9 56014841 56014856 -V_DMRT1_01 1.58987e-07 - TTGCAACATTGTATC
+chr9 57651162 57651175 -V_GATA1_04 5.17426e-07 - ATCTGATAAGGGC
+chr9 57651194 57651213 -V_NRSF_Q4 9.44244e-06 - ACATTGTCCCTGGAGCTGC
+chr9 58303769 58303784 -V_OCT4_02 2.55124e-08 - ATTCTCATGCTAATG
+chr9 58303770 58303785 -V_OCT4_01 3.55466e-07 - CATTCTCATGCTAAT
+chr9 58369286 58369296 -V_MYOD_Q6 4.20952e-06 - TGCACCTGTC
+chr9 58369286 58369297 +V_E12_Q6 9.04659e-06 + GACAGGTGCAG
+chr9 58369341 58369356 +V_DMRT1_01 8.80703e-07 + CAGCAACAATGTTGC
+chr9 58369343 58369358 -V_DMRT1_01 3.08592e-07 - ATGCAACATTGTTGC
+chr9 58369344 58369358 -V_DMRT7_01 9.63794e-06 - ATGCAACATTGTTG
+chr9 58369370 58369378 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr9 59321151 59321166 -V_OCT4_01 3.74251e-06 - CTTTCATATGTAGAT
+chr9 60596169 60596187 +V_MYOD_Q6_01 1.80414e-06 + CCACCACAGGTGGTGCAG
+chr9 60596172 60596184 +V_MYOD_01 8.31028e-07 + CCACAGGTGGTG
+chr9 60596172 60596184 +V_LMO2COM_01 5.97756e-06 + CCACAGGTGGTG
+chr9 60596178 60596193 +V_SMAD4_Q6 7.63557e-06 + GTGGTGCAGTCTTCT
+chr9 60596206 60596221 +V_OCT4_01 1.40241e-06 + TATTGTAATGCTAAA
+chr9 60596207 60596222 +V_OCT4_02 6.55103e-06 + ATTGTAATGCTAAAT
+chr9 61070567 61070582 -V_OCT4_01 3.74251e-06 - CTTTCTTATGCACAT
+chr9 61070672 61070683 -V_SP1SP3_Q4 1.18826e-06 - CCGCCTCCTCC
+chr9 61070678 61070693 +V_SPZ1_01 1.96252e-06 + GGCGGAGGGAATTCC
+chr9 61070682 61070695 +V_P50P50_Q3 2.01374e-06 + GAGGGAATTCCAG
+chr9 61113247 61113265 +V_RFX1_02 4.29409e-06 + CCATCACAATGGCAACAA
+chr9 61113276 61113296 +V_PPARA_01 8.51836e-06 + TCTACCTAGGCCAAAGGTGA
+chr9 61113279 61113296 +V_PPARG_03 8.56995e-08 + ACCTAGGCCAAAGGTGA
+chr9 61113283 61113296 +V_RXRLXRB_01 7.77466e-06 + AGGCCAAAGGTGA
+chr9 61113283 61113296 +V_DR1_Q3 1.89346e-06 + AGGCCAAAGGTGA
+chr9 61113283 61113296 -V_PPAR_DR1_Q2 1.37101e-06 - TCACCTTTGGCCT
+chr9 61113283 61113296 -V_HNF4_DR1_Q3 3.4109e-06 - TCACCTTTGGCCT
+chr9 61113283 61113296 -V_COUP_DR1_Q6 9.5269e-06 - TCACCTTTGGCCT
+chr9 61113330 61113341 -V_TGIF_01 5.81052e-06 - ACCTGTCAGGA
+chr9 61113376 61113393 -V_HSF1_Q6 9.15188e-06 - CTTCTAGGTCATTCTTC
+chr9 61319129 61319144 -V_OCT4_01 1.40241e-06 - CTTTGTAATGCAGAG
+chr9 61319184 61319195 +V_MYB_Q3 8.33763e-06 + GCTGCCAGTTG
+chr9 61601641 61601669 +V_PAX5_01 8.6289e-06 + TTACAAAGCAAGGAGGCGGAGCGCCAGG
+chr9 61601651 61601664 +V_SP1_Q6 4.83523e-06 + AGGAGGCGGAGCG
+chr9 61601757 61601769 -V_AP2_Q6 9.71638e-07 - CACCCCCAGGCG
+chr9 61601777 61601796 -V_PU1_Q4 7.43608e-06 - TTCTCCTGCTTCCCCCTCT
+chr9 61749373 61749386 +V_AP2_Q6_01 1.88894e-06 + GTGCCCCCAGGCC
+chr9 61749375 61749391 +V_AP2_Q3 5.02857e-06 + GCCCCCAGGCCACAGT
+chr9 61800070 61800081 +V_EVI1_02 9.51473e-06 + CGACAAGATAG
+chr9 61800168 61800181 +V_ALX4_01 5.12378e-06 + CCAGAGAACAATC
+chr9 62041493 62041509 -V_AP2_Q3 7.62107e-06 - GCCCCAGGGCTAGAGC
+chr9 62327114 62327128 -V_KROX_Q6 7.21197e-06 - CCTGCCCCCACTTC
+chr9 62327117 62327128 +V_EGR_Q6 1.38101e-06 + GTGGGGGCAGG
+chr9 62327147 62327161 +V_BLIMP1_Q6 7.61005e-06 + AGAAATGGAAAGTG
+chr9 62327158 62327171 +V_AP2_Q6_01 4.54811e-06 + GTGCCCCCAGGCT
+chr9 62327160 62327176 +V_AP2_Q3 9.58219e-06 + GCCCCCAGGCTAGCCC
+chr9 62327179 62327191 +V_GLI_Q2 9.06878e-06 + CCTGGGTGTTCT
+chr9 62923221 62923238 +V_RFX1_01 1.5227e-06 + CCGGTGCCTAGCAACAA
+chr9 62923257 62923271 -V_HIF1_Q3 2.59862e-06 - GTGTACGTGCAGGC
+chr9 62923258 62923270 -V_HIF1_Q5 6.92258e-06 - TGTACGTGCAGG
+chr9 63864538 63864555 +V_NF1_Q6_01 9.5806e-06 + TCAGCCAGGAGCCAAGA
+chr9 63864575 63864590 -V_CP2_02 1.10092e-06 - GCTGGGTTGGGCAGG
+chr9 63864578 63864589 +V_CP2_01 6.65879e-07 + GCCCAACCCAG
+chr9 63864685 63864695 +V_NFKAPPAB65_01 7.1331e-06 + GGGGGTTTCC
+chr9 63864685 63864695 +V_CREL_01 3.33002e-06 + GGGGGTTTCC
+chr9 64209494 64209507 -V_GFI1_Q6 5.19482e-06 - CCAAATCAGAGGC
+chr9 64209505 64209518 +V_CHOP_01 8.68297e-07 + GGGTGCAACCCCC
+chr9 64209509 64209524 -V_VDR_Q3 3.98432e-06 - GGGGGAGGGGGTTGC
+chr9 64209512 64209525 -V_SP1_Q6 4.47623e-06 - CGGGGGAGGGGGT
+chr9 64209513 64209523 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr9 64209513 64209524 +V_SP1SP3_Q4 2.8432e-06 + CCCCCTCCCCC
+chr9 64209514 64209523 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr9 64209514 64209524 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr9 64209515 64209523 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr9 64209515 64209524 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr9 64209644 64209653 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr9 66099037 66099047 -V_TITF1_Q3 1.10645e-06 - ACTCAAGTGT
+chr9 66119779 66119787 -V_CACD_01 9.89755e-06 - CCACACCC
+chr9 66955910 66955919 +V_YY1_Q6 6.61851e-06 + GCCATGTTG
+chr9 66955920 66955933 -V_MAZR_01 7.66218e-06 - AGGGGAGGGGAGA
+chr9 66955923 66955932 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr9 66955923 66955933 +V_SP1_Q2_01 6.40385e-06 + CCCCTCCCCT
+chr9 66955924 66955932 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr9 66955995 66956007 +V_MEIS1_01 2.58112e-06 + CTCTGACAGGGC
+chr9 69935408 69935422 -V_E2A_Q2 4.48924e-06 - CCAGCTGTCTCCTC
+chr9 70108442 70108456 +V_ETS2_B 9.62665e-06 + AACAGGAAACCCCT
+chr9 70108443 70108453 -V_ESE1_Q3 3.12147e-06 - GGTTTCCTGT
+chr9 70122254 70122266 -V_LMO2COM_01 3.81592e-06 - CTCCAGGTGCTC
+chr9 70122280 70122299 -V_GR_Q6 7.48457e-06 - GCGGAACACTGTGTGCACA
+chr9 70122295 70122308 +V_AP2_Q6_01 1.25133e-07 + CCGCCCCCAGGCT
+chr9 70122296 70122308 +V_AP2_Q6 8.15619e-06 + CGCCCCCAGGCT
+chr9 70835228 70835243 -V_PEBP_Q6 7.64793e-06 - ATAGACCACAGAGGG
+chr9 70835244 70835255 -V_LEF1TCF1_Q4 9.40057e-06 - CCTTTGATGTG
+chr9 70835246 70835256 +V_LEF1_Q2_01 5.84716e-06 + CATCAAAGGC
+chr9 71075212 71075224 -V_MYOD_01 2.63895e-06 - AAACAGGTGTTG
+chr9 71075325 71075334 +V_CKROX_Q2 8.90515e-06 + TCCCTCCCC
+chr9 71075326 71075334 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr9 71075489 71075503 +V_GATA1_02 3.9709e-06 + GTAGTGATAGTGGG
+chr9 71209351 71209366 -V_OCT4_01 3.04012e-06 - CTTTGAAATGTTAAT
+chr9 71685283 71685298 -V_HNF1_01 8.94735e-06 - GGTTATTGATCAAAA
+chr9 71685317 71685338 +V_PAX6_01 5.25696e-06 + GCCTTTCACGCTTTAATGAGG
+chr9 71685334 71685343 -V_T3R_Q6 8.74404e-06 - CCTGTCCTC
+chr9 71685338 71685358 -V_YY1_02 5.84771e-06 - CCAGGGCCATCCTGCCCTGT
+chr9 71685364 71685387 -V_COUPTF_Q6 3.42983e-07 - TGCCCTGCCCTCTGGCCTCCGTC
+chr9 71685369 71685382 -V_PPAR_DR1_Q2 4.03749e-06 - TGCCCTCTGGCCT
+chr9 71685369 71685383 +V_HNF4_Q6_01 6.93604e-06 + AGGCCAGAGGGCAG
+chr9 71685379 71685397 -V_MYOD_Q6_01 9.72371e-06 - TCGGGCCAGGTGCCCTGC
+chr9 71685382 71685394 -V_LMO2COM_01 7.876e-06 - GGCCAGGTGCCC
+chr9 71983757 71983766 -V_SMAD_Q6 9.3359e-06 - AGACACCAC
+chr9 72103184 72103201 -V_HSF1_Q6 3.46315e-06 - CTTCTAGAAACTTGGCA
+chr9 72103237 72103252 +V_HMGIY_Q3 4.90156e-06 + AGTGGAAATTTCTGG
+chr9 72505602 72505615 +V_NFY_Q6_01 1.39331e-06 + TCTTAACCAATCA
+chr9 72505603 72505617 -V_NFY_C 2.79094e-06 - TCTGATTGGTTAAG
+chr9 72505603 72505619 +V_NFY_01 3.29049e-07 + CTTAACCAATCAGAGG
+chr9 72505605 72505616 +V_NFY_Q6 6.07558e-07 + TAACCAATCAG
+chr9 72505649 72505663 +V_ETS2_B 4.36467e-07 + GACAGGAAATGCTT
+chr9 72505650 72505665 +V_ETS1_B 1.60879e-06 + ACAGGAAATGCTTGA
+chr9 72505707 72505722 -V_OCT4_02 8.50894e-06 - ATTCATATGCTGATT
+chr9 72505708 72505723 -V_OCT4_01 4.57831e-06 - TATTCATATGCTGAT
+chr9 75116342 75116353 -V_AP1_Q4 8.85541e-06 - AGTGACTGAGT
+chr9 75116347 75116363 -V_AP2_Q3 3.02252e-06 - GCCCTCAGGCAGTGAC
+chr9 75116417 75116426 -V_SMAD3_Q6 4.03003e-06 - TGTCTGTCT
+chr9 75311317 75311332 -V_OCT4_01 6.90794e-07 - ATTTGTTATGCAAAC
+chr9 77464758 77464772 -V_ATF3_Q6 5.7333e-06 - CCCTGACATCACTG
+chr9 77464833 77464848 +V_OCT4_02 9.71581e-06 + ATTGTGATGTTGATT
+chr9 77464868 77464880 +V_ATF4_Q2 6.80291e-06 + CCTGACTTAAGG
+chr9 82955106 82955115 +V_FOXM1_01 8.06007e-06 + AGATGGACT
+chr9 82955115 82955132 -V_FOXP3_Q4 8.24931e-06 - GGAATGCTATCTCAGAC
+chr9 82955135 82955148 -V_SP1_Q6 1.79654e-07 - CAGGGGCGGGGCC
+chr9 82955136 82955146 -V_SP1_Q6_01 3.39206e-07 - GGGGCGGGGC
+chr9 82955137 82955146 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr9 82955137 82955147 +V_SP1_Q2_01 1.0915e-06 + CCCCGCCCCT
+chr9 83193759 83193778 -V_PPARA_02 5.21998e-06 - TTGGGTATTTGGGGTGGGG
+chr9 83193813 83193823 -V_NKX22_01 5.97675e-06 - TTAAGTACTT
+chr9 84133920 84133931 -V_PAX_Q6 7.52241e-06 - CTGTAACTCAC
+chr9 84134247 84134260 -V_STAT1STAT1_Q3 9.34459e-07 - GTTTCACAGAAAA
+chr9 84134374 84134389 +V_OCT4_02 7.53505e-07 + ATTCTGATTCAAATG
+chr9 84134471 84134489 +V_HNF3_Q6_01 8.19906e-06 + ACTATTGTTTGCACAGGC
+chr9 84737746 84737761 -V_OCT4_01 7.94702e-06 - TTTTGTTGTGCAAAC
+chr9 84737776 84737791 -V_SRF_C 8.56356e-06 - GCCTTGTAAGGGCTT
+chr9 85234084 85234099 -V_IRF_Q6 8.21296e-06 - GTTTGTTTCAGTTCC
+chr9 85234119 85234134 +V_ETS1_B 1.87346e-06 + AGAGGAAGGGGGTGG
+chr9 85234127 85234136 +V_ZIC2_01 9.89755e-06 + GGGGTGGTG
+chr9 85234154 85234175 +V_PPARG_01 3.35201e-06 + ACGAAAGTCAAAGGTCAGATC
+chr9 85234157 85234171 -V_COUP_01 2.02653e-06 - TGACCTTTGACTTT
+chr9 85234158 85234171 +V_RXRLXRB_01 6.78298e-07 + AAGTCAAAGGTCA
+chr9 85234158 85234171 +V_DR1_Q3 1.39363e-06 + AAGTCAAAGGTCA
+chr9 85234158 85234171 -V_PPAR_DR1_Q2 4.41267e-06 - TGACCTTTGACTT
+chr9 85234158 85234171 -V_HNF4_DR1_Q3 7.59509e-07 - TGACCTTTGACTT
+chr9 85234158 85234171 -V_COUP_DR1_Q6 3.15323e-07 - TGACCTTTGACTT
+chr9 85234158 85234172 +V_HNF4_Q6_01 6.93604e-06 + AAGTCAAAGGTCAG
+chr9 85234159 85234172 -V_HNF4ALPHA_Q6 8.9975e-07 - CTGACCTTTGACT
+chr9 85234162 85234172 -V_NUR77_Q5 8.43564e-06 - CTGACCTTTG
+chr9 87870467 87870484 -V_DR4_Q2 4.15062e-06 - TGAACTGCTCTGCCCCT
+chr9 87870473 87870496 -V_COUPTF_Q6 9.98924e-06 - TCATCTGAACCTTGAACTGCTCT
+chr9 87870477 87870491 -V_COUP_01 1.18543e-06 - TGAACCTTGAACTG
+chr9 87870478 87870492 +V_HNF4_Q6_01 8.37803e-06 + AGTTCAAGGTTCAG
+chr9 87870479 87870492 -V_HNF4ALPHA_Q6 8.9975e-07 - CTGAACCTTGAAC
+chr9 87870508 87870523 -V_AR_01 6.36571e-06 - GGAACGTTTTGTGCT
+chr9 87870570 87870585 +V_DMRT5_01 7.94465e-06 + TTCTGTTACTTTGTT
+chr9 87870572 87870587 +V_DMRT1_01 2.26736e-06 + CTGTTACTTTGTTTC
+chr9 87870578 87870593 +V_DMRT5_01 8.98763e-06 + CTTTGTTTCAGTGTC
+chr9 88214269 88214282 +V_MAZR_01 5.68389e-06 + AGGAGGGGGGACA
+chr9 88214270 88214285 +V_SPZ1_01 5.43563e-06 + GGAGGGGGGACAGGC
+chr9 88214301 88214309 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr9 88214301 88214310 -V_CKROX_Q2 3.66459e-06 - GCCCTCCCC
+chr9 94562305 94562320 -V_OCT4_01 7.41924e-06 - CTTAGTGATGTAAAT
+chr9 94562432 94562443 -V_LEF1TCF1_Q4 3.42525e-06 - CCTTTGAAGTT
+chr9 94562509 94562527 +V_FOXJ2_01 7.26098e-06 + TTTAAAACAAATAATTGA
+chr9 94562512 94562525 -V_HFH4_01 9.85665e-06 - AATTATTTGTTTT
+chr9 94562513 94562525 -V_FOXD3_01 5.33063e-06 - AATTATTTGTTT
+chr9 94562529 94562548 +V_PU1_Q4 4.80518e-06 + ACCCCTTTGTTCCTCTTCC
+chr9 94562531 94562541 -V_LEF1_Q2_01 9.48141e-06 - GAACAAAGGG
+chr9 94562532 94562543 +V_LEF1TCF1_Q4 5.90916e-06 + CCTTTGTTCCT
+chr9 94562597 94562609 -V_MEIS1_01 5.48151e-06 - TTCTGACAGGTC
+chr9 94562598 94562609 +V_TGIF_01 5.10679e-06 + ACCTGTCAGAA
+chr9 94562633 94562643 -V_LEF1_Q2_01 5.84716e-06 - GATCAAAGGC
+chr9 94562634 94562645 +V_LEF1TCF1_Q4 2.56824e-06 + CCTTTGATCCC
+chr9 95292668 95292681 +V_NRF2_Q4 1.35691e-06 + GTGCTGAGTCAGC
+chr9 95292669 95292680 +V_MAF_Q6_01 4.54281e-07 + TGCTGAGTCAG
+chr9 95292670 95292681 -V_AP1FJ_Q2 8.1176e-06 - GCTGACTCAGC
+chr9 95292670 95292681 -V_AP1_Q6 7.46065e-07 - GCTGACTCAGC
+chr9 95292676 95292696 -V_PPARA_01 1.19277e-06 - CAGAAGTGGGGCATAGCTGA
+chr9 95292686 95292699 +V_STAT_Q6 1.50589e-06 + CCCACTTCTGGGA
+chr9 95582692 95582707 +V_HES1_Q2 6.50005e-06 + AACGCTGGTGCCCCA
+chr9 95582719 95582732 +V_NRF2_Q4 8.01719e-06 + CTGCTGTGTCACA
+chr9 95582764 95582775 +V_HELIOSA_02 8.07231e-06 + AATAGGAAAAA
+chr9 95582775 95582784 +V_AP2ALPHA_01 3.00918e-06 + GCCCGGGGC
+chr9 95582775 95582784 +V_AP2GAMMA_01 3.00918e-06 + GCCCGGGGC
+chr9 95582775 95582784 -V_AP2ALPHA_01 6.01835e-06 - GCCCCGGGC
+chr9 95582775 95582784 -V_AP2GAMMA_01 6.01835e-06 - GCCCCGGGC
+chr9 95675327 95675342 +V_DMRT5_01 7.0094e-06 + GATGGATACAGTGTC
+chr9 95675413 95675429 +V_DMRT2_01 3.03478e-06 + TGGATGGATACAATGT
+chr9 95675414 95675429 +V_DMRT3_01 4.93902e-06 + GGATGGATACAATGT
+chr9 95675419 95675434 -V_DMRT1_01 3.71498e-06 - TGGTGACATTGTATC
+chr9 95675437 95675451 -V_KROX_Q6 4.94478e-06 - GCCACCCACTCCCC
+chr9 95675457 95675473 +V_DMRT2_01 3.03478e-06 + TGGATGGATACAATGT
+chr9 95675458 95675473 +V_DMRT3_01 4.93902e-06 + GGATGGATACAATGT
+chr9 95675463 95675478 -V_DMRT1_01 3.71498e-06 - TGGTGACATTGTATC
+chr9 96061353 96061365 +V_LRH1_Q5 6.8178e-06 + CTGACCTTGAAA
+chr9 96061354 96061363 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr9 96061398 96061414 -V_AP2_Q3 4.72602e-06 - GGCCTCAGGCAGGGCC
+chr9 96061465 96061476 +V_MYB_Q3 8.33763e-06 + GGGGTCAGTTG
+chr9 96130809 96130822 +V_NFY_Q6_01 5.96025e-06 + TATTAACCAATCA
+chr9 96130810 96130824 -V_NFY_C 1.19255e-07 - TCTGATTGGTTAAT
+chr9 96130810 96130826 +V_NFY_01 9.91219e-07 + ATTAACCAATCAGAGA
+chr9 96130812 96130823 +V_NFY_Q6 6.07558e-07 + TAACCAATCAG
+chr9 96130868 96130878 +V_NUR77_Q5 8.43564e-06 + TTGACCTTGC
+chr9 96130899 96130914 -V_OCT4_02 3.02765e-06 - ATTCAGATGCTGATT
+chr9 99105076 99105089 +V_COUP_DR1_Q6 3.41319e-06 + TGACCTTTGGGAC
+chr9 99301442 99301455 +V_AP2_Q6_01 1.37342e-06 + CCTGCCCCAGGCC
+chr9 99301569 99301585 +V_NFKB_Q6_01 1.88211e-06 + AAGAGGGAAATTCCCC
+chr9 99301571 99301584 +V_P50P50_Q3 4.2671e-06 + GAGGGAAATTCCC
+chr9 99301571 99301585 +V_NFKB_Q6 8.78215e-06 + GAGGGAAATTCCCC
+chr9 99301572 99301586 -V_NFKB_Q6 1.52827e-07 - TGGGGAATTTCCCT
+chr9 99301573 99301583 +V_NFKAPPAB_01 7.14234e-06 + GGGAAATTCC
+chr9 99301573 99301585 -V_NFKB_C 1.49079e-06 - GGGGAATTTCCC
+chr9 99301573 99301586 -V_P50P50_Q3 1.75855e-06 - TGGGGAATTTCCC
+chr9 99301574 99301584 -V_NFKAPPAB65_01 9.08563e-07 - GGGAATTTCC
+chr9 99301574 99301584 -V_CREL_01 7.08941e-06 - GGGAATTTCC
+chr9 99301574 99301584 -V_NFKAPPAB_01 1.65463e-06 - GGGAATTTCC
+chr9 99320446 99320469 +V_COUPTF_Q6 8.98927e-06 + TTAGCTGACCTTTGCTGTGGACC
+chr9 99320450 99320460 +V_NUR77_Q5 8.43564e-06 + CTGACCTTTG
+chr9 99320462 99320478 +V_NFY_01 7.41568e-06 + GTGGACCAATCGGATA
+chr9 99320493 99320505 +V_LRH1_Q5 6.8178e-06 + CTGACCTTGAAT
+chr9 99320493 99320507 +V_PAX6_Q2 1.36823e-06 + CTGACCTTGAATTC
+chr9 99320494 99320503 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr9 99320526 99320534 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr9 100349147 100349170 +V_COUPTF_Q6 6.16019e-06 + GTGGCTGCCCTCAGGCCACTTCG
+chr9 100349151 100349164 +V_AP2_Q6_01 4.11454e-06 + CTGCCCTCAGGCC
+chr9 100349166 100349185 +V_PU1_Q4 7.89869e-06 + TTCGTCTGTTTCCTCATTC
+chr9 100974599 100974609 +V_PR_Q2 8.13856e-06 + GAAAGGACAG
+chr9 100974661 100974675 +V_COUP_01 7.43468e-06 + TGACCCTAGCACTT
+chr9 100974668 100974680 -V_TTF1_Q6 1.21614e-06 - CCCCCAAGTGCT
+chr9 100974675 100974684 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr9 100974675 100974685 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr9 100974675 100974686 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr9 100974676 100974688 -V_PAX4_03 1.74945e-06 - ATCCCCCACCCC
+chr9 100974676 100974690 -V_KROX_Q6 8.32366e-06 - CCATCCCCCACCCC
+chr9 100974695 100974713 +V_GCNF_01 5.34973e-06 + CTGGAGCTCAAGGTTATC
+chr9 100974721 100974735 -V_PAX6_Q2 9.64555e-06 - CTGGCCTGGAAATG
+chr9 101164519 101164537 +V_GCNF_01 4.28212e-06 + CTAGAGGTCAAGGACAGA
+chr9 101164560 101164571 +V_EBF_Q6 3.11689e-06 + GTCCCCTGGGG
+chr9 101271886 101271898 -V_TTF1_Q6 1.51693e-06 - CACTCAAGAGCT
+chr9 101271905 101271918 +V_GATA1_04 5.17426e-07 + AGCTGATAAGGGC
+chr9 102571933 102571947 -V_OCT1_06 8.86248e-06 - CAAAATGTCATTCT
+chr9 103086790 103086805 -V_CP2_02 3.60911e-06 - GCTGGCTGGCTCTTG
+chr9 103086906 103086921 -V_ETS1_B 2.00417e-06 - ACAGGAAGGGTTTGG
+chr9 103389439 103389454 +V_VDR_Q3 7.57997e-06 + GGGTGAATGAGGAGG
+chr9 103389450 103389459 +V_CACBINDINGPROTEIN_Q6 2.23138e-06 + GAGGGTGGG
+chr9 103416415 103416424 +V_SMAD3_Q6 4.03003e-06 + TGTCTGTCT
+chr9 103416433 103416456 -V_OCT1_04 7.77296e-06 - CTTTACAAATGCAAATTAATCTT
+chr9 103416438 103416449 +V_OCT1_Q5_01 2.46139e-06 + TAATTTGCATT
+chr9 103416438 103416449 +V_OCT_Q6 3.88942e-06 + TAATTTGCATT
+chr9 103416440 103416455 -V_OCT4_01 4.28625e-06 - TTTACAAATGCAAAT
+chr9 103416517 103416532 +V_SMAD4_Q6 3.63904e-06 + GTGGGGCAGCCAGGC
+chr9 104005376 104005395 -V_OCT1_01 4.90831e-06 - AATGGTATGCAAATGTGAG
+chr9 104005378 104005391 +V_OCT_C 7.73458e-07 + CACATTTGCATAC
+chr9 104005379 104005390 +V_OCT_Q6 7.02042e-06 + ACATTTGCATA
+chr9 104005380 104005390 -V_OCT1_B 4.33582e-06 - TATGCAAATG
+chr9 104005401 104005416 +V_OCT4_01 9.436e-07 + TTTTCTCATGCAAAG
+chr9 104005402 104005417 +V_OCT4_02 4.9622e-06 + TTTCTCATGCAAAGC
+chr9 104005402 104005420 -V_PAX8_B 9.12898e-06 - TCAGCTTTGCATGAGAAA
+chr9 104005416 104005426 +V_NUR77_Q5 2.98426e-06 + CTGACCTTGC
+chr9 104005424 104005442 -V_NF1_Q6 3.13934e-06 - TCTTGGCAGGTGGACAGC
+chr9 104005425 104005442 +V_NF1_Q6_01 2.86423e-06 + CTGTCCACCTGCCAAGA
+chr9 104005428 104005438 +V_MYOD_Q6 6.66004e-06 + TCCACCTGCC
+chr9 104005430 104005438 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr9 104699210 104699221 +V_EBF_Q6 7.15927e-06 + CTCCCTAGAGA
+chr9 106322862 106322874 +V_CEBP_Q3 4.13513e-06 + AAATTTGGCAAG
+chr9 106322982 106323001 -V_ER_Q6 9.92854e-06 - GCAGGATGATGTGACCTTT
+chr9 106322993 106323016 +V_COUPTF_Q6 4.40544e-06 + CATCCTGCCCTCTCTCCCCTTCC
+chr9 107160878 107160887 +V_SMAD_Q6 9.3359e-06 + AGACACCAC
+chr9 107160922 107160935 +V_IK3_01 8.31072e-06 + TCCCAGGAATGCC
+chr9 107160990 107161000 -V_ESE1_Q3 2.21291e-06 - TGTTTCCTGT
+chr9 109820687 109820698 -V_GATA_C 2.1386e-06 - AGATAAGTCCT
+chr9 111478491 111478505 +V_KROX_Q6 3.62033e-06 + CCAGCCCACACACC
+chr9 111478530 111478545 +V_OCT4_02 2.2199e-06 + TTTGAGATGCTAAAA
+chr9 111478563 111478578 +V_SMAD4_Q6 7.63557e-06 + GGGGCTCAGCCACCT
+chr9 111782452 111782463 +V_SMAD_Q6_01 9.38894e-06 + TACCCAGACAG
+chr9 111782569 111782583 -V_BLIMP1_Q6 4.2457e-06 - AAGGAGTGAAAGTC
+chr9 112077399 112077420 -V_NRSE_B 2.37268e-06 - TTTATCTCCTGGGAGATCAGC
+chr9 112077435 112077446 -V_ALPHACP1_01 4.48665e-06 - CAGCCAGTGAG
+chr9 113102101 113102114 +V_NRF2_Q4 2.86036e-06 + CTGCTGTGTCACC
+chr9 113996672 113996685 -V_HSF_Q6 2.81328e-06 - TTCCAGAGTCTTC
+chr9 113996725 113996740 +V_OCT4_01 4.01204e-06 + TTTTGTCATTTAAAT
+chr9 113996744 113996757 -V_HFH4_01 6.29512e-06 - AATTGATTGTTTA
+chr9 113996755 113996764 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr9 114764405 114764420 +V_DMRT1_01 2.47268e-06 + AGGAAACATTGTATC
+chr9 114764407 114764422 -V_DMRT1_01 2.58784e-07 - TAGATACAATGTTTC
+chr9 114764410 114764426 -V_DMRT2_01 9.26879e-06 - GGGTTAGATACAATGT
+chr9 114764446 114764454 -V_CACD_01 9.89755e-06 - CCACACCC
+chr9 114764511 114764525 +V_CEBPB_02 6.32911e-06 + AGGTTGCGTCACTG
+chr9 114764512 114764524 -V_CREBP1_Q2 7.52465e-06 - AGTGACGCAACC
+chr9 114764512 114764526 +V_CREB_Q2_01 2.75427e-06 + GGTTGCGTCACTGC
+chr9 114859279 114859292 -V_DMRT4_01 5.41272e-06 - AATGTAGCAGAGT
+chr9 114859282 114859297 +V_DMRT1_01 2.69689e-08 + CTGCTACATTGTTTC
+chr9 114859284 114859299 -V_DMRT1_01 1.2457e-07 - TTGAAACAATGTAGC
+chr9 114859285 114859299 -V_DMRT7_01 9.63794e-06 - TTGAAACAATGTAG
+chr9 114859299 114859314 +V_AR_Q2 1.74659e-06 + AGTGGCTGCTGTTCT
+chr9 114859343 114859355 +V_GABP_B 6.8315e-06 + CCCGGAAGCTCA
+chr9 114859372 114859382 +V_IK_Q5 6.81053e-06 + CTTGGGAGGG
+chr9 114859384 114859402 +V_GCNF_01 5.75095e-06 + AGGCAGTTCAAGGCCAAC
+chr9 114859389 114859401 -V_LRH1_Q5 2.30644e-06 - TTGGCCTTGAAC
+chr9 115633310 115633324 +V_NFKB_Q6 2.23293e-06 + TAGGGAATTTCCTT
+chr9 115633311 115633323 +V_NFKB_C 6.70077e-06 + AGGGAATTTCCT
+chr9 115633311 115633327 -V_NFKB_Q6_01 6.69541e-06 - GAAAAGGAAATTCCCT
+chr9 115633312 115633322 +V_NFKAPPAB65_01 9.08563e-07 + GGGAATTTCC
+chr9 115633312 115633322 +V_CREL_01 7.08941e-06 + GGGAATTTCC
+chr9 115633312 115633322 +V_NFKAPPAB_01 1.65463e-06 + GGGAATTTCC
+chr9 115633354 115633366 -V_SRY_02 6.58101e-06 - AATAACAATAGG
+chr9 115633370 115633382 +V_OCT1_07 7.26663e-06 + CCTATGTTAATT
+chr9 116012822 116012830 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr9 116012830 116012842 -V_PAX4_03 7.48009e-06 - ATTCTCCACCCG
+chr9 116012848 116012863 +V_DMRT1_01 1.2457e-07 + TGGATACAATGTAGC
+chr9 116012850 116012865 -V_DMRT1_01 3.18884e-06 - TCGCTACATTGTATC
+chr9 116012853 116012868 -V_DMRT3_01 4.93902e-06 - AATTCGCTACATTGT
+chr9 116012853 116012869 -V_DMRT2_01 5.71485e-06 - TAATTCGCTACATTGT
+chr9 116012855 116012868 +V_DMRT4_01 1.44269e-06 + AATGTAGCGAATT
+chr9 116012874 116012885 -V_FLI1_Q6 8.77629e-07 - CCGGAAGTCAG
+chr9 116012880 116012900 +V_YY1_02 4.11358e-06 + TCCGGGCCATCTGGGAACAA
+chr9 116371452 116371470 +V_FOXJ2_01 1.76112e-06 + CCAAAAACAAACAAAACA
+chr9 116371454 116371463 +V_FOXO1_Q5 7.27852e-06 + AAAAACAAA
+chr9 116371454 116371467 +V_HNF3_Q6 4.17324e-06 + AAAAACAAACAAA
+chr9 116371455 116371468 -V_FOX_Q2 1.93154e-06 - TTTTGTTTGTTTT
+chr9 116371455 116371468 -V_HFH4_01 3.17054e-06 - TTTTGTTTGTTTT
+chr9 116371456 116371468 -V_FOXD3_01 9.53633e-06 - TTTTGTTTGTTT
+chr9 116371535 116371550 -V_EVI1_04 7.84617e-06 - GAATAAGAAAGGAAA
+chr9 116371554 116371563 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr9 116371572 116371587 -V_OCT4_01 4.01204e-06 - TATTGTAATGTTGAT
+chr9 118315406 118315421 -V_OCT4_01 7.94702e-06 - TTTTGTTGTGCAAAC
+chr9 118315472 118315487 -V_OCT4_02 6.55103e-06 - ATTGTAATGCTAAAT
+chr9 118315473 118315488 -V_OCT4_01 1.40241e-06 - TATTGTAATGCTAAA
+chr9 118446837 118446852 +V_ETS1_B 7.24631e-06 + GCAGGAAGGGCTGAG
+chr9 118446911 118446926 -V_VDR_Q3 4.22722e-06 - GGGTCAAGCAGGACA
+chr9 118447253 118447272 +V_PU1_Q4 5.45848e-06 + CTGCTGCACTTCCTCATTG
+chr9 118447256 118447273 -V_PU1_01 8.64552e-07 - ACAATGAGGAAGTGCAG
+chr9 118447265 118447278 +V_SOX_Q6 9.2201e-06 + CTCATTGTTAACA
+chr9 118562689 118562702 +V_IRF1_01 1.75029e-06 + GCAAAGTGAAACC
+chr9 118562689 118562702 +V_IRF2_01 4.82073e-07 + GCAAAGTGAAACC
+chr9 118562758 118562774 -V_AP2_Q3 3.44455e-06 - GGCCCTGGGCAGTGAC
+chr9 118562775 118562787 -V_TTF1_Q6 1.51693e-06 - CCCCCAAGAGTC
+chr9 118562782 118562791 -V_LRF_Q2 3.33688e-06 - AGGGCCCCC
+chr9 118772810 118772825 +V_OCT4_01 7.41924e-06 + CTTTGTTGTGCAAAA
+chr9 118772852 118772866 -V_E2A_Q2 1.54839e-07 - CCACCTGCCCCATG
+chr9 118772853 118772871 +V_MYOD_Q6_01 3.0826e-06 + ATGGGGCAGGTGGTATAG
+chr9 118772856 118772866 -V_EBOX_Q6_01 6.43409e-06 - CCACCTGCCC
+chr9 118772856 118772868 +V_MYOD_01 9.75956e-06 + GGGCAGGTGGTA
+chr9 118772857 118772865 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr9 118772857 118772867 -V_MYOD_Q6 2.71739e-06 - ACCACCTGCC
+chr9 118772888 118772896 -V_CACD_01 9.89755e-06 - CCACACCC
+chr9 119903517 119903528 +V_AP1FJ_Q2 8.1176e-06 + GCTGACTCAGC
+chr9 119903517 119903528 +V_AP1_Q6 7.46065e-07 + GCTGACTCAGC
+chr9 119903517 119903530 -V_NRF2_Q4 4.63559e-06 - AGGCTGAGTCAGC
+chr9 119903518 119903529 -V_MAF_Q6_01 1.07676e-06 - GGCTGAGTCAG
+chr9 120336551 120336562 -V_FOXO4_01 6.84186e-06 - GTAAACAAGCA
+chr9 120336576 120336592 -V_AP2_Q3 1.51951e-06 - AGCCCCAGGCTGAGTG
+chr9 120336602 120336612 +V_TBX5_Q5 8.44574e-06 + CTCACACCTC
+chr9 120336691 120336700 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr9 120590659 120590668 -V_AP2ALPHA_01 9.68294e-06 - GCCCGAGGC
+chr9 120590677 120590692 -V_VDRRXR_01 3.03513e-06 - AGGTCACAGGGTCCA
+chr9 120590703 120590716 -V_SP1_Q6 7.54104e-06 - TGGGGGTGGGGTG
+chr9 120590705 120590715 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr9 120590706 120590715 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr9 120590706 120590717 -V_EGR_Q6 8.04446e-06 - GTGGGGGTGGG
+chr9 120590706 120590720 +V_KROX_Q6 6.89701e-06 + CCCACCCCCACCCT
+chr9 120590708 120590720 +V_PAX4_03 2.70808e-06 + CACCCCCACCCT
+chr9 120599864 120599879 -V_OCT4_02 9.20547e-07 - TTTGAGATGCAGATG
+chr9 120599883 120599894 +V_RBPJK_01 2.4942e-06 + AGCGTGGGAAT
+chr9 120599919 120599934 -V_SREBP1_Q5 4.09665e-06 - CCCCACACCCCACCA
+chr9 120660295 120660303 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr9 120660358 120660376 -V_FOXJ2_01 7.26098e-06 - AAAAAAGCAAACAGCCCA
+chr9 120660388 120660403 +V_DMRT1_01 9.21473e-06 + AGGCTACAATGTAAC
+chr9 120660390 120660405 -V_DMRT1_01 8.06116e-08 - TTGTTACATTGTAGC
+chr9 120660391 120660405 -V_DMRT7_01 2.34554e-07 - TTGTTACATTGTAG
+chr9 120660393 120660408 -V_DMRT3_01 2.1162e-06 - ACATTGTTACATTGT
+chr9 120660393 120660409 -V_DMRT2_01 8.16548e-07 - CACATTGTTACATTGT
+chr9 120660395 120660408 +V_DMRT4_01 3.66086e-07 + AATGTAACAATGT
+chr9 120752836 120752848 -V_MEIS1_01 4.40868e-06 - CTATGACAGGTG
+chr9 120752870 120752885 -V_DMRT1_01 1.88888e-06 - TGGTTACTTTGTTGC
+chr9 120752871 120752885 -V_DMRT7_01 3.5461e-06 - TGGTTACTTTGTTG
+chr9 120800100 120800115 -V_DMRT1_01 2.20757e-06 - TGGTAACAATGTTTT
+chr9 120800101 120800115 -V_DMRT7_01 3.78668e-06 - TGGTAACAATGTTT
+chr9 120800144 120800153 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr9 120800154 120800177 -V_COUPTF_Q6 3.30357e-06 - CCTCATGGACTCTCCCCCTGGAC
+chr9 120800189 120800201 +V_PBX_Q3 3.10639e-06 + GATGGATGGCTG
+chr9 123340249 123340264 -V_OCT4_01 3.26181e-06 - TATTCTAATGCTAAA
+chr9 123640616 123640631 +V_OCT4_01 5.75922e-07 + CTTTGATATGCTAAT
+chr9 123640617 123640632 +V_OCT4_02 1.26855e-06 + TTTGATATGCTAATC
+chr9 123640621 123640631 +V_POU3F2_02 7.27852e-06 + ATATGCTAAT
+chr9 123640644 123640654 +V_POU3F2_02 5.63759e-06 + ATATGTTAAT
+chr9 123640696 123640708 -V_NFAT_Q6 5.53405e-06 - CATAGGAAAATA
+chrX 6775077 6775092 +V_SPZ1_01 4.92705e-06 + GTTGGAGGGAAGGGC
+chrX 6775168 6775179 +V_ELF5_01 8.57585e-06 + TCAAGGAAGTA
+chrX 6777790 6777799 +V_CKROX_Q2 8.90515e-06 + TCCCTCCCC
+chrX 6777791 6777799 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chrX 6777820 6777831 +V_GATA_C 2.89666e-06 + TGATAAGGCCC
+chrX 7342150 7342162 +V_ICSBP_Q6 8.75679e-06 + AAAGTGAACCTG
+chrX 7342173 7342186 +V_SOX_Q6 1.68475e-06 + CTCTTTGTGATGC
+chrX 7398968 7398998 +V_PAX4_04 7.42128e-06 + AAGAAACATCCACACTAGTCCCCCCTCCCC
+chrX 7398984 7398999 -V_VDR_Q3 5.65227e-07 - GGGGGAGGGGGGACT
+chrX 7398987 7399000 -V_SP1_Q6 3.85413e-06 - TGGGGGAGGGGGG
+chrX 7398988 7398998 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chrX 7398988 7398999 +V_SP1SP3_Q4 2.8432e-06 + CCCCCTCCCCC
+chrX 7398989 7398998 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chrX 7398989 7398999 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chrX 7398990 7398998 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chrX 7398990 7398999 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chrX 7398998 7399022 -V_COMP1_01 6.66077e-06 - GCTGTGGAAAGGCGGGGAGAAGTG
+chrX 7399014 7399030 -V_AP2_Q3 8.80988e-08 - GCCCCCAGGCTGTGGA
+chrX 7399019 7399032 -V_AP2_Q6_01 2.39401e-06 - CTGCCCCCAGGCT
+chrX 7399021 7399049 +V_PAX5_01 3.30356e-06 + CCTGGGGGCAGGGAGGGGACACAGCACT
+chrX 7399025 7399040 +V_VDR_Q3 1.06886e-06 + GGGGCAGGGAGGGGA
+chrX 7399030 7399058 -V_PAX5_01 5.88503e-06 - GAATGATGCAGTGCTGTGTCCCCTCCCT
+chrX 7399065 7399081 -V_AP2_Q3 8.07615e-06 - GCCCCAGAGCGGAGTG
+chrX 7399076 7399088 +V_NANOG_01 5.79837e-06 + GGGGCCATTAAC
+chrX 7399118 7399135 +V_FOXP3_Q4 1.02132e-06 + GTGCTGCTGATTCAGAC
+chrX 7399121 7399134 +V_NRF2_Q4 6.25751e-06 + CTGCTGATTCAGA
+chrX 7399122 7399133 +V_MAF_Q6_01 9.11965e-06 + TGCTGATTCAG
+chrX 7447164 7447176 -V_MYOD_01 7.90686e-06 - AAGCAGGTGGTG
+chrX 7745185 7745197 +V_NKX3A_01 4.38917e-06 + GTATAAGTATAA
+chrX 7760583 7760591 -V_CACD_01 9.89755e-06 - CCACACCC
+chrX 7786982 7786994 -V_CEBP_Q2_01 3.36862e-07 - ATTGCACAATCT
+chrX 7786982 7786996 +V_CEBPB_01 3.05692e-06 + AGATTGTGCAATTT
+chrX 7786982 7786996 -V_CEBPA_01 3.30014e-06 - AAATTGCACAATCT
+chrX 8656031 8656041 -V_SP1_Q6_01 1.91768e-06 - AGGGCGGGGC
+chrX 8656078 8656108 +V_HOX13_01 5.08067e-06 + TGCTCCAACACTCATTACTTCTGATGCCCT
+chrX 8656102 8656132 +V_HOX13_01 6.74767e-06 + TGCCCTGCCTCCCATTAGCCCTGGGGCTGC
+chrX 10324016 10324027 +V_ELF5_01 1.41361e-06 + ACAAGGAAGTA
+chrX 12400402 12400419 -V_HSF1_Q6 5.36429e-06 - TTGCTAGACAGTTCTCA
+chrX 14205863 14205878 -V_BACH1_01 9.90707e-06 - CTGATGAGTCACATT
+chrX 14205865 14205878 -V_NRF2_Q4 9.11585e-06 - CTGATGAGTCACA
+chrX 14205866 14205877 -V_NFE2_01 5.51939e-06 - TGATGAGTCAC
+chrX 18276420 18276435 +V_AR_Q2 6.7239e-07 + AGTGCTTGCTGTTCT
+chrX 18305216 18305227 -V_EBF_Q6 8.47547e-07 - TTCCCCTGGGA
+chrX 18305217 18305233 +V_NFKB_Q6_01 7.88839e-07 + CCCAGGGGAATTCCCT
+chrX 18305220 18305233 +V_P50P50_Q3 9.77769e-07 + AGGGGAATTCCCT
+chrX 18305220 18305234 +V_NFKB_Q6 9.22738e-07 + AGGGGAATTCCCTT
+chrX 18305220 18305234 -V_NFKB_Q6 5.15179e-06 - AAGGGAATTCCCCT
+chrX 18305221 18305231 +V_CREL_01 5.43478e-06 + GGGGAATTCC
+chrX 18305221 18305233 +V_NFKB_C 6.15227e-06 + GGGGAATTCCCT
+chrX 18305221 18305233 -V_NFKB_C 5.17264e-06 - AGGGAATTCCCC
+chrX 18305221 18305234 -V_P50P50_Q3 1.33286e-07 - AAGGGAATTCCCC
+chrX 18305221 18305237 -V_NFKB_Q6_01 4.87745e-06 - TGGAAGGGAATTCCCC
+chrX 18305222 18305232 +V_NFKAPPAB65_01 7.87917e-06 + GGGAATTCCC
+chrX 18305222 18305232 +V_NFKAPPAB_01 7.46065e-07 + GGGAATTCCC
+chrX 18305222 18305232 -V_NFKAPPAB65_01 7.87917e-06 - GGGAATTCCC
+chrX 18305222 18305232 -V_NFKAPPAB_01 7.46065e-07 - GGGAATTCCC
+chrX 21248102 21248111 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chrX 35633293 35633309 +V_DMRT2_01 5.25267e-06 + CAATCTGTTACAATGT
+chrX 35633294 35633307 -V_DMRT4_01 9.60733e-06 - ATTGTAACAGATT
+chrX 35633294 35633309 +V_DMRT3_01 6.06326e-06 + AATCTGTTACAATGT
+chrX 35633297 35633312 +V_DMRT1_01 1.79174e-06 + CTGTTACAATGTATT
+chrX 39042192 39042201 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chrX 39042302 39042315 +V_SP1_Q6 9.41334e-06 + CAGGGGCGTGGCC
+chrX 39042304 39042314 +V_SP1_Q6_01 8.48538e-06 + GGGGCGTGGC
+chrX 40820587 40820606 +V_ER_Q6 4.65006e-06 + TCAGGACCCTTTGACCCCA
+chrX 40820593 40820616 +V_COUPTF_Q6 4.40544e-06 + CCCTTTGACCCCAGCCCTTTTAT
+chrX 40820621 40820634 +V_IRF2_01 9.58215e-06 + GGAAAGGGAAAGC
+chrX 40820621 40820635 +V_BLIMP1_Q6 4.2457e-06 + GGAAAGGGAAAGCA
+chrX 40820622 40820633 +V_IRF_Q6_01 8.39845e-06 + GAAAGGGAAAG
+chrX 40820697 40820707 +V_FOXO1_01 1.34745e-06 + CATAAACAAG
+chrX 40820721 40820734 -V_STAT_Q6 5.58101e-06 - GGTAGTTCTGGGA
+chrX 45425363 45425384 +V_DR3_Q4 6.60853e-06 + GATGGCCCTGCTGCTCCTCCT
+chrX 45576095 45576110 +V_OCT4_01 7.41924e-06 + TATTCAAATGCTAAA
+chrX 45576145 45576156 +V_GAF_Q6 7.13471e-06 + CAAATTCCCAT
+chrX 46247256 46247271 +V_OCT4_02 3.02765e-06 + ATTCAGATGCTGATT
+chrX 47098480 47098491 -V_HELIOSA_02 8.07231e-06 - AATAGGAAAAA
+chrX 47098543 47098562 +V_OCT1_01 7.53757e-06 + TTGAAAATGCAAATGTGCT
+chrX 47098608 47098625 +V_PU1_01 3.97348e-06 + ACAATGGGGAAGCACAG
+chrX 48868129 48868159 -V_HOX13_01 7.49406e-06 - TCACACCACCCAAATCAGTGGGGCCCCCCT
+chrX 48868131 48868140 -V_LRF_Q2 1.50459e-06 - GGGGCCCCC
+chrX 48868148 48868163 -V_SREBP_Q6 8.07305e-06 - CCACTCACACCACCC
+chrX 48868148 48868163 -V_SREBP1_Q5 1.85171e-06 - CCACTCACACCACCC
+chrX 48868194 48868204 +V_LEF1_Q2_01 7.66428e-06 + CTTCAAAGGG
+chrX 48868210 48868221 +V_EBF_Q6 9.10919e-06 + TTCCCCTGAGG
+chrX 53983304 53983334 -V_PAX4_04 3.00909e-06 - AACAATTAGCACCACTTCAAGCAGCTCCCC
+chrX 53983351 53983364 -V_AP2_Q6_01 2.71709e-06 - TCCGCCCCAGGCC
+chrX 53983416 53983432 -V_HAND1E47_01 5.06161e-06 - ACTGAGGTCTGGTATT
+chrX 57422817 57422832 +V_SMAD4_Q6 2.72571e-07 + GGGGTTCAGACAGCT
+chrX 57422818 57422830 -V_VDR_Q6 3.87245e-06 - CTGTCTGAACCC
+chrX 57422843 57422858 +V_SMAD4_Q6 5.45681e-06 + CTGGGCCAGACACAT
+chrX 57422852 57422870 +V_PAX8_B 8.15746e-06 + ACACATTTGCATGGGTTG
+chrX 57422953 57422968 +V_OCT4_01 2.11448e-06 + CATTGTGATTCAAAT
+chrX 57422954 57422969 +V_OCT4_02 2.03326e-07 + ATTGTGATTCAAATG
+chrX 58981230 58981245 +V_OCT4_01 2.64195e-06 + TATTGTTATGCCAAT
+chrX 58981231 58981246 +V_OCT4_02 8.50894e-06 + ATTGTTATGCCAATT
+chrX 58981251 58981264 +V_STAT_Q6 7.7371e-06 + TGCTCTTCTGAGA
+chrX 67966307 67966317 -V_NUR77_Q5 2.98426e-06 - CTGACCTTCC
+chrX 68812683 68812693 +V_PR_Q2 5.13649e-06 + GAAAGAACAC
+chrX 68812684 68812703 -V_GR_Q6 2.94654e-06 - GGGCCTCCAAGTGTTCTTT
+chrX 68812697 68812709 +V_NANOG_01 7.60378e-06 + AGGCCCATTGAC
+chrX 68812703 68812718 +V_OCT4_02 4.618e-06 + ATTGACTTGAAAATT
+chrX 68812739 68812753 -V_OCT1_05 4.1196e-06 - ATGATTTCCATATG
+chrX 68812753 68812771 +V_HNF3_Q6_01 8.19906e-06 + TGCCCTGTTTGCTTTCTT
+chrX 70840576 70840584 +V_CACD_01 9.89755e-06 + CCACACCC
+chrX 70840621 70840634 +V_SP1_Q6 3.85413e-06 + TGGGGGAGGGGGG
+chrX 70840622 70840631 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chrX 70840622 70840632 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chrX 70840622 70840633 -V_SP1SP3_Q4 2.8432e-06 - CCCCCTCCCCC
+chrX 70840623 70840631 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chrX 70840623 70840632 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chrX 70840623 70840633 +V_SP1_Q6_01 8.48538e-06 + GGGGAGGGGG
+chrX 70840625 70840636 -V_SP1SP3_Q4 2.8432e-06 - ACCCCCCCTCC
+chrX 70840792 70840812 +V_PPARA_01 6.75518e-06 + TAGAAGCTGGACAAAGGTCT
+chrX 70840795 70840812 +V_PPARG_03 1.44563e-06 + AAGCTGGACAAAGGTCT
+chrX 70840799 70840812 +V_DR1_Q3 2.40864e-06 + TGGACAAAGGTCT
+chrX 70840799 70840812 -V_PPAR_DR1_Q2 2.43547e-06 - AGACCTTTGTCCA
+chrX 70840799 70840812 -V_HNF4_DR1_Q3 8.70895e-06 - AGACCTTTGTCCA
+chrX 70840799 70840812 -V_COUP_DR1_Q6 6.0379e-06 - AGACCTTTGTCCA
+chrX 70840889 70840900 -V_PAX_Q6 5.66067e-06 - CTGGAACTATC
+chrX 70841321 70841333 +V_MEIS1_01 6.42435e-06 + CTGTGACAGAAC
+chrX 70841361 70841372 +V_CP2_01 5.25662e-06 + GCCCTAGCCAG
+chrX 73299880 73299891 -V_IRF_Q6_01 5.29553e-06 - AGAAGTGAAAG
+chrX 73299906 73299915 -V_HNF4_Q6 7.33929e-06 - AAGGTCCAG
+chrX 74912883 74912898 +V_SMAD4_Q6 1.18767e-06 + GGCAGGCAGACTCCT
+chrX 74912958 74912970 -V_PAX4_03 9.67001e-06 - GACCTCCACCCT
+chrX 81689458 81689467 +V_FOXO1_Q5 7.27852e-06 + AAAAACAAA
+chrX 81689488 81689503 -V_AR_Q2 2.46616e-06 - AGAAGCTTTTGTACT
+chrX 81689523 81689538 +V_OCT4_01 4.28625e-06 + CATTCAATTGCAAAT
+chrX 83438909 83438921 -V_ICSBP_Q6 1.32749e-06 - AAAGAGAAACTG
+chrX 83438911 83438922 -V_IRF_Q6_01 5.29553e-06 - GAAAGAGAAAC
+chrX 83439006 83439016 +V_NKX25_Q5 3.30926e-06 + TGCCACTTGC
+chrX 83439037 83439050 -V_MAZR_01 7.46484e-08 - GGGGGGGGGGCAA
+chrX 83439039 83439050 +V_SP1SP3_Q4 7.59003e-06 + GCCCCCCCCCC
+chrX 90343045 90343057 +V_EGR2_01 9.93172e-06 + GTGTGTGGGTGG
+chrX 96752362 96752377 +V_OCT4_01 6.91054e-06 + CTTGGTCATGCAGAT
+chrX 98279687 98279702 -V_SPZ1_01 5.95976e-06 - GGTGGAGGGAGTGGG
+chrX 98279817 98279828 -V_PITX2_Q2 8.24871e-06 - TGTAATCCCCA
+chrX 98430958 98430970 -V_PAX4_03 9.67001e-06 - AAACCTCACCCC
+chrX 98431013 98431024 +V_SMAD_Q6_01 4.52186e-06 + TAGCCAGACTC
+chrX 98474153 98474169 -V_AP2_Q3 1.13801e-06 - GCCCCCAGGCCGTAAC
+chrX 101117836 101117847 +V_TGIF_01 3.12147e-06 + AGCTGTCAAGA
+chrX 101117914 101117943 +V_MYOGNF1_01 6.11601e-06 + CAGGTGTTCTCACTGGCCAGGCACCAGCT
+chrX 125272487 125272501 -V_NFY_C 1.78604e-06 - TTTGATTGGCTGCC
+chrX 125272487 125272503 +V_NFY_01 6.24707e-06 + GGCAGCCAATCAAAAG
+chrX 125272527 125272539 -V_USF_Q6_01 3.20896e-06 - GGCCAGGTGACC
+chrX 125272550 125272563 +V_AP1_01 3.50586e-07 + CAGTGAGTCAGCA
+chrX 125272551 125272562 -V_AP1_Q6 1.77821e-06 - GCTGACTCACT
+chrX 125272551 125272562 -V_AP1_Q4 7.9984e-06 - GCTGACTCACT
+chrX 125272552 125272561 +V_AP1_C 7.33929e-06 + GTGAGTCAG
+chrX 125272552 125272563 -V_NFE2_01 8.27314e-07 - TGCTGACTCAC
+chrX 134981289 134981302 -V_IK3_01 8.3508e-07 - TGCTGGGAATATC
+chrX 136534772 136534785 +V_DEC_Q1 1.47092e-06 + GCCCAAGTGAGGA
+chrX 136740482 136740495 +V_AP2_Q6_01 9.55245e-06 + CATCCCTCAGGCC
+chrX 140258719 140258729 -V_GATA6_01 6.25525e-06 - AATGATAAGC
+chrX 151640175 151640190 +V_OCT4_01 3.49929e-06 + TATTGAAATGCTAAA
+chrX 156619032 156619047 -V_SREBP_Q6 2.33414e-06 - CCACCCACCCCAGGA
+chrX 156619032 156619047 -V_SREBP1_Q5 1.13545e-06 - CCACCCACCCCAGGA
+chrX 156619098 156619118 -V_FOXP1_01 5.1135e-06 - TTATGTATGTCTTGTAGTTT
+chrX 156619111 156619124 -V_HFH8_01 6.03954e-06 - CTGTGTTTATGTA
+chrX 156619123 156619136 -V_CEBP_01 6.60967e-06 - ACTTTGGAAAGGC
+chrX 156887043 156887058 -V_CP2_02 1.97191e-06 - GCTGGGTCTGACTTG
+chrX 156887072 156887087 +V_DMRT5_01 1.18352e-06 + TATTGTAACTGTGTA
+chrX 156887159 156887170 -V_AP1FJ_Q2 5.39606e-06 - GGTGACTCCAT
+chrX 158315153 158315167 -V_KROX_Q6 6.89701e-06 - TCCGCCCACTGCCC
+chrX 158315157 158315170 +V_SP1_Q6 4.83523e-06 + AGTGGGCGGAGCT
+chrX 158315158 158315169 +V_EGR_Q6 9.84646e-06 + GTGGGCGGAGC
+chrX 158315197 158315208 -V_EBF_Q6 9.10919e-06 - TTCCCCTGAGG
+chrX 163841592 163841601 -V_AP1_Q6_01 4.03003e-06 - ATGACTCAG
+chrX 164579227 164579235 -V_CACD_01 9.89755e-06 - CCACACCC
diff --git a/docs/assets/reference/set-operations/reference_bedextract_nested_elements.png b/docs/assets/reference/set-operations/reference_bedextract_nested_elements.png
new file mode 100644
index 0000000..dde1c03
Binary files /dev/null and b/docs/assets/reference/set-operations/reference_bedextract_nested_elements.png differ
diff --git a/docs/assets/reference/set-operations/reference_bedextract_target.bed b/docs/assets/reference/set-operations/reference_bedextract_target.bed
new file mode 100644
index 0000000..cf1bfd2
--- /dev/null
+++ b/docs/assets/reference/set-operations/reference_bedextract_target.bed
@@ -0,0 +1 @@
+chr21 33031600 33031700
diff --git a/docs/assets/reference/set-operations/reference_bedextract_target.starch b/docs/assets/reference/set-operations/reference_bedextract_target.starch
new file mode 100644
index 0000000..b25b148
Binary files /dev/null and b/docs/assets/reference/set-operations/reference_bedextract_target.starch differ
diff --git a/docs/assets/reference/set-operations/reference_closestfeatures_a.starch b/docs/assets/reference/set-operations/reference_closestfeatures_a.starch
new file mode 100644
index 0000000..6bcaa9e
Binary files /dev/null and b/docs/assets/reference/set-operations/reference_closestfeatures_a.starch differ
diff --git a/docs/assets/reference/set-operations/reference_closestfeatures_b.starch b/docs/assets/reference/set-operations/reference_closestfeatures_b.starch
new file mode 100644
index 0000000..01e4cdf
Binary files /dev/null and b/docs/assets/reference/set-operations/reference_closestfeatures_b.starch differ
diff --git a/docs/assets/reference/set-operations/reference_nested_elements.png b/docs/assets/reference/set-operations/reference_nested_elements.png
new file mode 100644
index 0000000..f767f96
Binary files /dev/null and b/docs/assets/reference/set-operations/reference_nested_elements.png differ
diff --git a/docs/assets/reference/set-operations/reference_setops_bedops_chop_ab.png b/docs/assets/reference/set-operations/reference_setops_bedops_chop_ab.png
new file mode 100644
index 0000000..0064d09
Binary files /dev/null and b/docs/assets/reference/set-operations/reference_setops_bedops_chop_ab.png differ
diff --git a/docs/assets/reference/set-operations/reference_setops_bedops_chop_ab at 2x.png b/docs/assets/reference/set-operations/reference_setops_bedops_chop_ab at 2x.png
new file mode 100644
index 0000000..427fb42
Binary files /dev/null and b/docs/assets/reference/set-operations/reference_setops_bedops_chop_ab at 2x.png differ
diff --git a/docs/assets/reference/set-operations/reference_setops_bedops_complement_ab.png b/docs/assets/reference/set-operations/reference_setops_bedops_complement_ab.png
new file mode 100644
index 0000000..5fcfd14
Binary files /dev/null and b/docs/assets/reference/set-operations/reference_setops_bedops_complement_ab.png differ
diff --git a/docs/assets/reference/set-operations/reference_setops_bedops_complement_ab at 2x.png b/docs/assets/reference/set-operations/reference_setops_bedops_complement_ab at 2x.png
new file mode 100644
index 0000000..86aa4cf
Binary files /dev/null and b/docs/assets/reference/set-operations/reference_setops_bedops_complement_ab at 2x.png differ
diff --git a/docs/assets/reference/set-operations/reference_setops_bedops_difference_ab.png b/docs/assets/reference/set-operations/reference_setops_bedops_difference_ab.png
new file mode 100644
index 0000000..b9f1fde
Binary files /dev/null and b/docs/assets/reference/set-operations/reference_setops_bedops_difference_ab.png differ
diff --git a/docs/assets/reference/set-operations/reference_setops_bedops_difference_ab at 2x.png b/docs/assets/reference/set-operations/reference_setops_bedops_difference_ab at 2x.png
new file mode 100644
index 0000000..a2b709c
Binary files /dev/null and b/docs/assets/reference/set-operations/reference_setops_bedops_difference_ab at 2x.png differ
diff --git a/docs/assets/reference/set-operations/reference_setops_bedops_elementof_ab.png b/docs/assets/reference/set-operations/reference_setops_bedops_elementof_ab.png
new file mode 100644
index 0000000..fd0f229
Binary files /dev/null and b/docs/assets/reference/set-operations/reference_setops_bedops_elementof_ab.png differ
diff --git a/docs/assets/reference/set-operations/reference_setops_bedops_elementof_ab at 2x.png b/docs/assets/reference/set-operations/reference_setops_bedops_elementof_ab at 2x.png
new file mode 100644
index 0000000..f3db0ec
Binary files /dev/null and b/docs/assets/reference/set-operations/reference_setops_bedops_elementof_ab at 2x.png differ
diff --git a/docs/assets/reference/set-operations/reference_setops_bedops_elementof_ba.png b/docs/assets/reference/set-operations/reference_setops_bedops_elementof_ba.png
new file mode 100644
index 0000000..052c1b6
Binary files /dev/null and b/docs/assets/reference/set-operations/reference_setops_bedops_elementof_ba.png differ
diff --git a/docs/assets/reference/set-operations/reference_setops_bedops_elementof_ba at 2x.png b/docs/assets/reference/set-operations/reference_setops_bedops_elementof_ba at 2x.png
new file mode 100644
index 0000000..cd1af08
Binary files /dev/null and b/docs/assets/reference/set-operations/reference_setops_bedops_elementof_ba at 2x.png differ
diff --git a/docs/assets/reference/set-operations/reference_setops_bedops_everything.png b/docs/assets/reference/set-operations/reference_setops_bedops_everything.png
new file mode 100644
index 0000000..07b18c7
Binary files /dev/null and b/docs/assets/reference/set-operations/reference_setops_bedops_everything.png differ
diff --git a/docs/assets/reference/set-operations/reference_setops_bedops_everything at 2x.png b/docs/assets/reference/set-operations/reference_setops_bedops_everything at 2x.png
new file mode 100644
index 0000000..bfd2141
Binary files /dev/null and b/docs/assets/reference/set-operations/reference_setops_bedops_everything at 2x.png differ
diff --git a/docs/assets/reference/set-operations/reference_setops_bedops_inputs.png b/docs/assets/reference/set-operations/reference_setops_bedops_inputs.png
new file mode 100644
index 0000000..0ee7e1a
Binary files /dev/null and b/docs/assets/reference/set-operations/reference_setops_bedops_inputs.png differ
diff --git a/docs/assets/reference/set-operations/reference_setops_bedops_inputs at 2x.png b/docs/assets/reference/set-operations/reference_setops_bedops_inputs at 2x.png
new file mode 100644
index 0000000..b4b1e17
Binary files /dev/null and b/docs/assets/reference/set-operations/reference_setops_bedops_inputs at 2x.png differ
diff --git a/docs/assets/reference/set-operations/reference_setops_bedops_intersect_ab.png b/docs/assets/reference/set-operations/reference_setops_bedops_intersect_ab.png
new file mode 100644
index 0000000..51d62ce
Binary files /dev/null and b/docs/assets/reference/set-operations/reference_setops_bedops_intersect_ab.png differ
diff --git a/docs/assets/reference/set-operations/reference_setops_bedops_intersect_ab at 2x.png b/docs/assets/reference/set-operations/reference_setops_bedops_intersect_ab at 2x.png
new file mode 100644
index 0000000..a38406c
Binary files /dev/null and b/docs/assets/reference/set-operations/reference_setops_bedops_intersect_ab at 2x.png differ
diff --git a/docs/assets/reference/set-operations/reference_setops_bedops_merge_ab.png b/docs/assets/reference/set-operations/reference_setops_bedops_merge_ab.png
new file mode 100644
index 0000000..4de1c1f
Binary files /dev/null and b/docs/assets/reference/set-operations/reference_setops_bedops_merge_ab.png differ
diff --git a/docs/assets/reference/set-operations/reference_setops_bedops_merge_ab at 2x.png b/docs/assets/reference/set-operations/reference_setops_bedops_merge_ab at 2x.png
new file mode 100644
index 0000000..3c180c2
Binary files /dev/null and b/docs/assets/reference/set-operations/reference_setops_bedops_merge_ab at 2x.png differ
diff --git a/docs/assets/reference/set-operations/reference_setops_bedops_notelementof_ab.png b/docs/assets/reference/set-operations/reference_setops_bedops_notelementof_ab.png
new file mode 100644
index 0000000..0efc86c
Binary files /dev/null and b/docs/assets/reference/set-operations/reference_setops_bedops_notelementof_ab.png differ
diff --git a/docs/assets/reference/set-operations/reference_setops_bedops_notelementof_ab at 2x.png b/docs/assets/reference/set-operations/reference_setops_bedops_notelementof_ab at 2x.png
new file mode 100644
index 0000000..47a297e
Binary files /dev/null and b/docs/assets/reference/set-operations/reference_setops_bedops_notelementof_ab at 2x.png differ
diff --git a/docs/assets/reference/set-operations/reference_setops_bedops_partition_ab.png b/docs/assets/reference/set-operations/reference_setops_bedops_partition_ab.png
new file mode 100644
index 0000000..c18fe19
Binary files /dev/null and b/docs/assets/reference/set-operations/reference_setops_bedops_partition_ab.png differ
diff --git a/docs/assets/reference/set-operations/reference_setops_bedops_partition_ab at 2x.png b/docs/assets/reference/set-operations/reference_setops_bedops_partition_ab at 2x.png
new file mode 100644
index 0000000..f2af927
Binary files /dev/null and b/docs/assets/reference/set-operations/reference_setops_bedops_partition_ab at 2x.png differ
diff --git a/docs/assets/reference/set-operations/reference_setops_bedops_stagger_ab at 2x.png b/docs/assets/reference/set-operations/reference_setops_bedops_stagger_ab at 2x.png
new file mode 100644
index 0000000..a898992
Binary files /dev/null and b/docs/assets/reference/set-operations/reference_setops_bedops_stagger_ab at 2x.png differ
diff --git a/docs/assets/reference/set-operations/reference_setops_bedops_symmetricdifference_ab.png b/docs/assets/reference/set-operations/reference_setops_bedops_symmetricdifference_ab.png
new file mode 100644
index 0000000..9b999e9
Binary files /dev/null and b/docs/assets/reference/set-operations/reference_setops_bedops_symmetricdifference_ab.png differ
diff --git a/docs/assets/reference/set-operations/reference_setops_bedops_symmetricdifference_ab at 2x.png b/docs/assets/reference/set-operations/reference_setops_bedops_symmetricdifference_ab at 2x.png
new file mode 100644
index 0000000..34d5975
Binary files /dev/null and b/docs/assets/reference/set-operations/reference_setops_bedops_symmetricdifference_ab at 2x.png differ
diff --git a/docs/assets/reference/statistics/Makefile b/docs/assets/reference/statistics/Makefile
new file mode 100644
index 0000000..e5f0169
--- /dev/null
+++ b/docs/assets/reference/statistics/Makefile
@@ -0,0 +1,6 @@
+figures:
+ ./reference_bedmap_make_overlap_figures.Rscript reference_bedmap_map.bed reference_bedmap_reference.bed reference_bedmap_mapref.pdf
+
+padded_figures:
+ bedops --range 100 --everything reference_bedmap_reference.bed > reference_bedmap_reference_padded.bed
+ ./reference_bedmap_make_overlap_figures.Rscript reference_bedmap_map.bed reference_bedmap_reference_padded.bed reference_bedmap_mapref_padded.pdf
diff --git a/docs/assets/reference/statistics/reference_bedmap_inputs.png b/docs/assets/reference/statistics/reference_bedmap_inputs.png
new file mode 100644
index 0000000..d672de4
Binary files /dev/null and b/docs/assets/reference/statistics/reference_bedmap_inputs.png differ
diff --git a/docs/assets/reference/statistics/reference_bedmap_make_overlap_figures.Rscript b/docs/assets/reference/statistics/reference_bedmap_make_overlap_figures.Rscript
new file mode 100755
index 0000000..8b7761e
--- /dev/null
+++ b/docs/assets/reference/statistics/reference_bedmap_make_overlap_figures.Rscript
@@ -0,0 +1,107 @@
+#! /opt/local/bin/Rscript
+
+args <- commandArgs(TRUE)
+
+if (length(args) != 3) {
+ cat("Usage: reference_bedmap_make_overlap_figure.Rscript map.bed ref.bed figure.pdf\n")
+ q(status=-1)
+}
+mapFn <- args[1]
+refFn <- args[2]
+pdfFn <- args[3]
+#print(paste(mapFn, refFn, pdfFn, sep=" "))
+
+mapData <- read.table(mapFn, sep="\t", stringsAsFactors=TRUE)
+zeroes <- as.data.frame(rep(0, nrow(mapData)))
+#print(mapData)
+#print(zeroes)
+
+result <- system(paste("bedmap --echo --echo-map-id", mapFn, refFn, sep=" "), intern=TRUE, ignore.stderr=TRUE)
+splitResult <- strsplit(result, "|", fixed=TRUE)
+mappedRefs <- list(1:length(splitResult))
+mappedRefs <- unlist(lapply(splitResult, function(x) { if (length(x) > 1) { x[2:length(x)] } else { NA } }))
+mappedMatrix <- cbind(mapData$V2, mapData$V3, zeroes, mapData$V5, mappedRefs)
+mappedData <- as.data.frame(mappedMatrix, stringsAsFactors=FALSE)
+colnames(mappedData)[1] <- "x_start"
+colnames(mappedData)[2] <- "x_stop"
+colnames(mappedData)[3] <- "y_start"
+colnames(mappedData)[4] <- "y_stop"
+colnames(mappedData)[5] <- "categories"
+mappedData <- transform(mappedData,
+ x_start=as.numeric(x_start),
+ x_stop=as.numeric(x_stop),
+ y_start=as.numeric(y_start),
+ y_stop=as.numeric(y_stop))
+
+library(ggplot2)
+pdf(pdfFn, width=8, height=5)
+ggplot(mappedData) +
+ geom_rect(data=mappedData,
+ mapping=aes(xmin=x_start, xmax=x_stop, ymin=y_start, ymax=y_stop),
+ size=0.5,
+ fill="grey50",
+ color="white",
+ alpha=1) +
+ labs(x="Start position", y="Tag density", title="DNaseI hypersensitivity (all elements)") +
+ theme(axis.text.x=element_text(angle=90, vjust=0.5))
+
+dev.off()
+
+pdf(paste(pdfFn, ".ref1.pdf", sep=""), width=8, height=5)
+ggplot(mappedData) +
+ geom_rect(data=mappedData,
+ mapping=aes(xmin=x_start, xmax=x_stop, ymin=y_start, ymax=y_stop),
+ size=0.5,
+ fill="grey50",
+ color="white",
+ alpha=1) +
+ geom_rect(data=subset(mappedData, grepl("ref-1", categories)),
+ mapping=aes(xmin=x_start, xmax=x_stop, ymin=y_start, ymax=y_stop),
+ size=0.5,
+ fill="red",
+ color="white",
+ alpha=1) +
+ labs(x="Start position", y="Tag density", title="DNaseI hypersensitivity (ref-1 elements)") +
+ theme(axis.text.x=element_text(angle=90, vjust=0.5))
+
+dev.off()
+
+pdf(paste(pdfFn, ".ref2.pdf", sep=""), width=8, height=5)
+ggplot(mappedData) +
+ geom_rect(data=mappedData,
+ mapping=aes(xmin=x_start, xmax=x_stop, ymin=y_start, ymax=y_stop),
+ size=0.5,
+ fill="grey50",
+ color="white",
+ alpha=1) +
+ geom_rect(data=subset(mappedData, grepl("ref-2", categories)),
+ mapping=aes(xmin=x_start, xmax=x_stop, ymin=y_start, ymax=y_stop),
+ size=0.5,
+ fill="red",
+ color="white",
+ alpha=1) +
+ labs(x="Start position", y="Tag density", title="DNaseI hypersensitivity (ref-2 elements)") +
+ theme(axis.text.x=element_text(angle=90, vjust=0.5))
+
+dev.off()
+
+pdf(paste(pdfFn, ".ref3.pdf", sep=""), width=8, height=5)
+ggplot(mappedData) +
+ geom_rect(data=mappedData,
+ mapping=aes(xmin=x_start, xmax=x_stop, ymin=y_start, ymax=y_stop),
+ size=0.5,
+ fill="grey50",
+ color="white",
+ alpha=1) +
+ geom_rect(data=subset(mappedData, grepl("ref-3", categories)),
+ mapping=aes(xmin=x_start, xmax=x_stop, ymin=y_start, ymax=y_stop),
+ size=0.5,
+ fill="red",
+ color="white",
+ alpha=1) +
+ labs(x="Start position", y="Tag density", title="DNaseI hypersensitivity (ref-3 elements)") +
+ theme(axis.text.x=element_text(angle=90, vjust=0.5))
+
+dev.off()
+
+q(status=0)
diff --git a/docs/assets/reference/statistics/reference_bedmap_map.bed b/docs/assets/reference/statistics/reference_bedmap_map.bed
new file mode 100644
index 0000000..19cdd6e
--- /dev/null
+++ b/docs/assets/reference/statistics/reference_bedmap_map.bed
@@ -0,0 +1,66 @@
+chr21 33031165 33031185 map-1 1.000000
+chr21 33031185 33031205 map-2 3.000000
+chr21 33031205 33031225 map-3 3.000000
+chr21 33031225 33031245 map-4 3.000000
+chr21 33031245 33031265 map-5 3.000000
+chr21 33031265 33031285 map-6 5.000000
+chr21 33031285 33031305 map-7 7.000000
+chr21 33031305 33031325 map-8 7.000000
+chr21 33031325 33031345 map-9 8.000000
+chr21 33031345 33031365 map-10 14.000000
+chr21 33031365 33031385 map-11 15.000000
+chr21 33031385 33031405 map-12 17.000000
+chr21 33031405 33031425 map-13 17.000000
+chr21 33031425 33031445 map-14 17.000000
+chr21 33031445 33031465 map-15 17.000000
+chr21 33031465 33031485 map-16 16.000000
+chr21 33031485 33031505 map-17 20.000000
+chr21 33031505 33031525 map-18 19.000000
+chr21 33031525 33031545 map-19 13.000000
+chr21 33031545 33031565 map-20 19.000000
+chr21 33031565 33031585 map-21 21.000000
+chr21 33031585 33031605 map-22 26.000000
+chr21 33031605 33031625 map-23 27.000000
+chr21 33031625 33031645 map-24 29.000000
+chr21 33031645 33031665 map-25 31.000000
+chr21 33031665 33031685 map-26 31.000000
+chr21 33031685 33031705 map-27 37.000000
+chr21 33031705 33031725 map-28 40.000000
+chr21 33031725 33031745 map-29 50.000000
+chr21 33031745 33031765 map-30 58.000000
+chr21 33031765 33031785 map-31 76.000000
+chr21 33031785 33031805 map-32 82.000000
+chr21 33031805 33031825 map-33 96.000000
+chr21 33031825 33031845 map-34 115.000000
+chr21 33031845 33031865 map-35 131.000000
+chr21 33031865 33031885 map-36 153.000000
+chr21 33031885 33031905 map-37 165.000000
+chr21 33031905 33031925 map-38 160.000000
+chr21 33031925 33031945 map-39 157.000000
+chr21 33031945 33031965 map-40 156.000000
+chr21 33031965 33031985 map-41 151.000000
+chr21 33031985 33032005 map-42 138.000000
+chr21 33032005 33032025 map-43 116.000000
+chr21 33032025 33032045 map-44 95.000000
+chr21 33032045 33032065 map-45 72.000000
+chr21 33032065 33032085 map-46 53.000000
+chr21 33032085 33032105 map-47 44.000000
+chr21 33032105 33032125 map-48 37.000000
+chr21 33032125 33032145 map-49 16.000000
+chr21 33032145 33032165 map-50 13.000000
+chr21 33032165 33032185 map-51 8.000000
+chr21 33032185 33032205 map-52 7.000000
+chr21 33032205 33032225 map-53 6.000000
+chr21 33032225 33032245 map-54 3.000000
+chr21 33032245 33032265 map-55 3.000000
+chr21 33032265 33032285 map-56 2.000000
+chr21 33032285 33032305 map-57 2.000000
+chr21 33032305 33032325 map-58 3.000000
+chr21 33032325 33032345 map-59 4.000000
+chr21 33032345 33032365 map-60 4.000000
+chr21 33032365 33032385 map-61 4.000000
+chr21 33032385 33032405 map-62 5.000000
+chr21 33032405 33032425 map-63 6.000000
+chr21 33032425 33032445 map-64 5.000000
+chr21 33032445 33032465 map-65 5.000000
+chr21 33032465 33032485 map-66 6.000000
diff --git a/docs/assets/reference/statistics/reference_bedmap_map.starch b/docs/assets/reference/statistics/reference_bedmap_map.starch
new file mode 100644
index 0000000..41a4e3a
Binary files /dev/null and b/docs/assets/reference/statistics/reference_bedmap_map.starch differ
diff --git a/docs/assets/reference/statistics/reference_bedmap_mapref.pdf b/docs/assets/reference/statistics/reference_bedmap_mapref.pdf
new file mode 100644
index 0000000..2894363
--- /dev/null
+++ b/docs/assets/reference/statistics/reference_bedmap_mapref.pdf
@@ -0,0 +1,349 @@
+%PDF-1.5
%����
+2 0 obj
<</Metadata 13 0 R/OCProperties<</D<</ON[14 0 R]/Order 15 0 R/RBGroups[]>>/OCGs[14 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
13 0 obj
<</Length 16380/Subtype/XML/Type/Metadata>>stream
+<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060 61.134777, 2010/02/12-17:32:00 ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <rdf:Description rdf:about=""
+ xmlns:xmp="http://ns.adobe.com/xap/1.0/"
+ xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/">
+ <xmp:CreateDate>2013-09-08T20:28:29</xmp:CreateDate>
+ <xmp:CreatorTool>R</xmp:CreatorTool>
+ <xmp:ModifyDate>2013-09-08T20:30:31-07:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2013-09-08T20:30:31-07:00</xmp:MetadataDate>
+ <xmp:Thumbnails>
+ <rdf:Alt>
+ <rdf:li rdf:parseType="Resource">
+ <xmpGImg:width>256</xmpGImg:width>
+ <xmpGImg:height>160</xmpGImg:height>
+ <xmpGImg:format>JPEG</xmpGImg:format>
+ <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAoAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQV [...]
+ </rdf:li>
+ </rdf:Alt>
+ </xmp:Thumbnails>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
+ <pdf:Producer>R 3.0.1</pdf:Producer>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <dc:format>application/pdf</dc:format>
+ <dc:title>
+ <rdf:Alt>
+ <rdf:li xml:lang="x-default">R Graphics Output</rdf:li>
+ </rdf:Alt>
+ </dc:title>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/"
+ xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#"
+ xmlns:stFnt="http://ns.adobe.com/xap/1.0/sType/Font#"
+ xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/">
+ <xmpTPg:NPages>1</xmpTPg:NPages>
+ <xmpTPg:HasVisibleTransparency>False</xmpTPg:HasVisibleTransparency>
+ <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint>
+ <xmpTPg:MaxPageSize rdf:parseType="Resource">
+ <stDim:w>8.000000</stDim:w>
+ <stDim:h>5.000000</stDim:h>
+ <stDim:unit>Inches</stDim:unit>
+ </xmpTPg:MaxPageSize>
+ <xmpTPg:Fonts>
+ <rdf:Bag>
+ <rdf:li rdf:parseType="Resource">
+ <stFnt:fontName>AvenirNext-Regular</stFnt:fontName>
+ <stFnt:fontFamily>Avenir Next</stFnt:fontFamily>
+ <stFnt:fontFace>Regular</stFnt:fontFace>
+ <stFnt:fontType>TrueType</stFnt:fontType>
+ <stFnt:versionString>8.0d2e1</stFnt:versionString>
+ <stFnt:composite>False</stFnt:composite>
+ <stFnt:fontFileName>Avenir Next.ttc</stFnt:fontFileName>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stFnt:fontName>AvenirNext-DemiBold</stFnt:fontName>
+ <stFnt:fontFamily>Avenir Next</stFnt:fontFamily>
+ <stFnt:fontFace>Demi Bold</stFnt:fontFace>
+ <stFnt:fontType>TrueType</stFnt:fontType>
+ <stFnt:versionString>8.0d2e1</stFnt:versionString>
+ <stFnt:composite>False</stFnt:composite>
+ <stFnt:fontFileName>Avenir Next.ttc</stFnt:fontFileName>
+ </rdf:li>
+ </rdf:Bag>
+ </xmpTPg:Fonts>
+ <xmpTPg:PlateNames>
+ <rdf:Seq>
+ <rdf:li>Cyan</rdf:li>
+ <rdf:li>Magenta</rdf:li>
+ <rdf:li>Yellow</rdf:li>
+ <rdf:li>Black</rdf:li>
+ </rdf:Seq>
+ </xmpTPg:PlateNames>
+ <xmpTPg:SwatchGroups>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:groupName>Default Swatch Group</xmpG:groupName>
+ <xmpG:groupType>0</xmpG:groupType>
+ </rdf:li>
+ </rdf:Seq>
+ </xmpTPg:SwatchGroups>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/">
+ <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass>
+ <xmpMM:DocumentID>uuid:6773fd0b-b593-a940-bb39-d07c1601e17a</xmpMM:DocumentID>
+ <xmpMM:InstanceID>uuid:d8b66b36-1ec6-e047-8c97-22a3b8b21659</xmpMM:InstanceID>
+ </rdf:Description>
+ </rdf:RDF>
+</x:xmpmeta>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<?xpacket end="w"?>
endstream
endobj
3 0 obj
<</Count 1/Kids[7 0 R]/MediaBox[0 0 576 360]/Type/Pages>>
endobj
7 0 obj
<</ArtBox[0.0 0.0 576.0 360.0]/BleedBox[0.0 0.0 576.0 360.0]/Contents 16 0 R/LastModified(D:20130908203030-07'00')/Parent 3 0 R/PieceInfo<</Illustrator 17 0 R>>/Resources<</ExtGState<</GS0 18 0 R>>/Font<</TT0 11 0 R/TT1 12 0 R>>/ProcSet[/PDF/Text]/Properties<</MC0 14 0 R>>>>/Thumb 19 0 R/TrimBox[0.0 0.0 576.0 360.0]/Type/Page>>
endobj
16 0 obj
<</Filter/FlateDecode/Length 1067>>stream
+H��WMO
9����
(�������]�2R.��̈́I �*�~_��=m��2Ѡ~�r�իr����ÅV�j0J~
o��wWZ�<
Zi�cP6h��
�
?�W��d����_��
���~����)外Ol�Ť�#��7�+��b���-�Ơ)���Oģ��)��'�H<F����
#ި����Dz?L���+�
0��^a�A��&Fk�&O�\���Fo�1R�Xz����>���I���K�
u��?H�WQ��)[ͯ1ɞ�=*O&%�����
�9��;K�d���T�+u�{�:��5�)*��ʐͥ����sX;aɑ]ò!ְDޯ`F{
+n �����g,KVc
�9�Y�h����� qF�, at F��`"ӂ�� �8���;�0w�-�:游�d;�8�
Gͦ����
w&�"
+��Q�KFFt�,g�3���l �'
NZ�l�XAk;���s� ��Tg )����n�]��yC�'p0
}^�E�V�Y$5�QZ�LE7#����hT}�iѝ2
�zT�e �t�#��HLK��Q5o!�Cч M���8Gm�� <O�eI�2*��
+g�����V�"�����D�j�
+�����W4�L��Le)�d���&����S&nP��q����"?�uڒ�kzsF��8�3��qQ��]�ⲟ9k:w����q
T
�i\�e�ԘU�i;�HC��A`��n��QG~�RO��u��ü澈������L�7A�a;�Bs�D&Z�vN�7��f#W��
.��z�
+�m�dE&���~8�o6߆S逡8��������[W^���ƕo7&
��{�Q
=�������
�c�K{C؊A
�pE�v8*�ؑ���
�䖼��K��
L�aj־�~,r4���Ѹ%����S����H~�Kk�1��x
�6�Y�9#w(�-������Q��hu��}V?�?�>�~
��i�pF�DH:���fS��Ϥb~}�>o��Wq��
���+�uX�/�~ھW%����,M�~��>>_�����tr}w��w�����ӧ7���~���
1C�
endstream
endobj
19 0 obj
<</BitsPerComponent 8/ColorSpace 20 0 R/Filter[/ASCII85Decode/FlateDecode]/Height 45/Length 255/Width 72>>stream
+8;YQVd1(a_$pufsqfEqRkrOT!'ciCS%d-3h?\FM'**Ube'=-Y`SH;Ic46ns at 4gt@&
+Jhhf>3(ie8*1A6m\FV9<qkO$]ELNRh4P6:-@:<K0>UpE4S,Ct5DGtpIVW37,j<GQA
+&3P6+Ymg6rJ+,k:KKmfR`'+#RhFT_gZ$+7&Vi1jn;u;Jg$iON/+V/KY_NTi7i<4F.
+,s:oZT9c"&Hc<m;mKA_e+J5kN*V+DZ-(:gYUQWcl(CU4i9D'/&rMTHh~>
endstream
endobj
20 0 obj
[/Indexed/DeviceRGB 255 21 0 R]
endobj
21 0 obj
<</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
+8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0
+b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup`
+E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn
+6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1
+VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH<
+PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O(
+l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
endstream
endobj
14 0 obj
<</Intent 22 0 R/Name(Layer 1)/Type/OCG/Usage 23 0 R>>
endobj
22 0 obj
[/View/Design]
endobj
23 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 15.0)/Subtype/Artwork>>>>
endobj
11 0 obj
<</BaseFont/SRHFNQ+AvenirNext-Regular/Encoding/WinAnsiEncoding/FirstChar 48/FontDescriptor 24 0 R/LastChar 53/Subtype/TrueType/Type/Font/Widths[580 580 580 580 0 580]>>
endobj
12 0 obj
<</BaseFont/SRHFNQ+AvenirNext-DemiBold/Encoding/WinAnsiEncoding/FirstChar 32/FontDescriptor 25 0 R/LastChar 121/Subtype/TrueType/Type/Font/Widths[250 0 0 0 0 0 0 0 330 330 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 764 0 0 0 0 282 0 0 0 0 780 0 0 0 0 574 568 0 0 0 0 0 0 0 0 0 0 0 0 550 0 0 634 574 0 632 584 268 0 0 268 890 582 610 633 0 364 444 340 0 513 0 0 513]>>
endobj
25 0 obj
<</Ascent 957/CapHeight 708/Descent -250/Flags 32/FontBBox[-214 -250 1192 957]/FontFamily(Avenir Next Demi Bold)/FontFile2 26 0 R/FontName/SRHFNQ+AvenirNext-DemiBold/FontStretch/Normal/FontWeight 700/ItalicAngle 0/StemV 120/Type/FontDescriptor/XHeight 480>>
endobj
26 0 obj
<</Filter/FlateDecode/Length 6059/Length1 11911>>stream
+H��VmPT�~ν�.�캰����.�wa"���� ���D�m�Ƥ%�&i�dZ��6��M�Mj�E�1�ӎ���Nm���N�c�
�t�����
Z��W/s�s�s���y���`6�!�ymK�o��⓴\c����
��N
D5 ��u`P1�.N �?r>o���>c�x��;\�o��Ƿ9��� c/�ubGOg�ߒo�S�>�����sF��r\��o�����
H~c����QϙՀ;���:�ſ��N�W�;�zb���W���u`Ͼ���='�ҏ����=!Ӭ����Ӑ�e)�$�s�-G��u�@T)�$K�cʚ��D�Y�ش
+fߕ�O�^��OE?�����?���S`�@��_�r�ؓ
+`�R�UH��{WO?���~S��$aB2R��4�"S阃
�a�\z�Dl�FraG
�Q�y��'T�7���%�^��
�~T�Q��X�Ũ��`)jQ���
��˱�X�UX�5h�Z4c
֣��0"،G�(�Ў-���3x��s�^�k�!N�u�?�)����4��O�6~�(����
��{��}��>�y�{э
�0��.с�I.���]�'��l�WD��&z����Uщ7pO�
�b��}�}xBD��O�^sD�hkE�h�b
F�c�HT�6�.
������z�Al����kx
#�&^��8�o�;b/�8�OU�]ԉxLԋ�h�!�(���a����,��lH�� g��K�]��tI�.�,�)��/(V%W)P��[)W)��[������:%��9�iqf:s���
+g�����;����_�R<��e6Y?!�b�XM�l��D��
�\%[�S
}�砛��3��=�.�.���
�e�B�����q���CS�'ߛ<9�����'�&�� �D�s"�ƻ7Vߨ���F�x�x����
�-���k���]���i:�z&5���8�?'���X��n�u�
��3x�n ���<�bHi�#ıHLď�P�?�s&oi/�Ax%�[
H
�
��
�!*�ևՈ2��4v�(
ʎ�����r�g$R�D����ְ#Z��t{"�E�1h8
g$B�� ��:&�(ɳJ�����pt��
����
%��
�^��;"�2�D��'z�1������i��p��
Edddz�:��##���p�����ڄ�;�!ʮPL
7�SêîT��`��z�N�j ��#R��KV>�2�ʢT��<e1�y2bp_a+eE3ܦ5c��K�^cA��k!
%c4
+�;�g`O�W� X��,���++ܪ�h*�~_V��h�_���0
�?WUJ�MY�
k��tR�ϴ2h�q�������)�_�l��*gv�y�m�9�p�ǟ��ny�R�:�Z+bR��+��I3aL�n�*]�����5?\%$��̹�"$�lˌpnE hK��,��+
+ׄZ��-�n
���[���v���rS+���t��c
� �������M,�&l���a�Sf�E�!�_�A������(�"�rɁ�-�q�<�L�gᬅ�,�g�?."-F$����d�K�k����W�t1�&�0�i�4k"�LIJ�jc����H��t���W#UVx�37�
hh8��ɂ�k}��[�J
[��n{f��~[�}�ꎀu*K�X2����(��s��H�A���ܛզ�!��d�4�t�8ix.�Y�
�m�̎p�'oHd�2���/Nޠ
������OR5C�f���ˑٲ�,��{Z��of�Be��D�4tb**i1ߒ,�Ւ:y];�[R��{~�?�!�XU� c+e�<UɌ�NCM�K� ��~�t�U��h�D�:�*3��V�R�т3����}�%f�
���||Y&��Nf'��!�*�NCl�
��M��؊l�6J�+Tg:eQ �
+dM
�SW�?!�"/y���m�[]Y�B�U�8�7�W��.ޜ��8���z�
J�_)ml+�/��i6Wn�3ے���m�X��*��k-,N�-��s٭i�y�e�@�?�ힾ�QPRuaBݘv��/}%���K�4���IWȦZ��$�ׯJ�W�����������7�-~���I
����{�+�ާ������3�>��RP@�h�
�<�>c��L���f��pق
+s�Hs���X�is�f���x��VN�Q^%�yH���
�硓���y�rt
%d`�
,���2��<��t�t.��, f��3
�}�J�W�4��V�K:�WՕ�l5�wk��x�Ÿu��s��2�=��z_���}��ۓ�ә̂3m�(i;�L:�REU�`��JUh���*@�
+�R�o�����}@��R
P��PJDl�sν
'� �ѯ{���9���v��>�"��F��\�K�D��/K�IG��
�f��:��_�b��#��������-Vc�q�2��N`�y`H�@)=�*XO�x
�z־�d�L��n���z���z��
�#�z2$�X�
=����G<�+; E(l
�<$�x1o��!���/��e^䖤>?� @��tj� �v��>_o>�N���'�r�q�����ӓsU��%����S,ֶ��O��\���
�ۏ���H�5������4�γ�Ϯ�\Ur<hb�)V�u��:�ʹ�����x/?�0�J�@䊠�,�^��l
+����X��
+0���*\�a�
� $iL� ��������̀m6z�-��Y�9��!
dk�ʢ���^i�^��V��O.�4(&��zc�=.ŧ���m}ik��gV2��/ظY
�����҆��*g G�
�5��Uw�����
���!����AS����4�g��a:�%��B�/d;��\����Pa��!U]&�.���.��{��P7���u<�
����{�@��e+� �B�ֲ
+�Â�l[�dr҅�
+Ǘr�� �N=���x��M?P��3�$?�%V�[�-?�/��oVJ�u
�ml�S��Ӎ�f�� Y�UU�'���73Go�[�ҡ��WS��z�| �����s�V��r�D��J��p����bP֘
8߂|%?���j�����Uh��S�
�8�e���]IE�
+�P�eW&� P� � P���xN �L�
#)�%rŢB�WWJޮM�c�bt��e�Hz�~�l�g���1_%�gf��;�v�]W,0�yγ��u$-y��^WE�kÍ��4 �� ��� T�0�={m�
+��><F+6Z���\C��=6�]O)��T��
�`/�J�x�P����)D����n�[��]�]���X�P�5��Qi�Xcv�+�������{Q��=M4�%��
+X8�C0|�����sE�3s�+4�Ф"!�3�҉�t�ay/�
�&�,�
y2��m�����f$��o
���6
���]����h>��f"���{��E2�Xk�<:$�o&
f���
����������Ӊ�k�P�J���ar
�
b� �
{�ҳ
�(����N@�����
��+
#�&O
����
+tU]�P��
+tU�Y�*�U��
+tU����Tcv ffC5�j�<si
1�#S]@�n�b&�2�5穊tz�sGV�������kH�b[3�M>ؘ��,A^����Ex{ŋ<�
C�
+�X.�p�2dV��F
+�j�6�����d:�ҁ��t�M�T��:м��)ַ����y���&�F_c^o-l
L�n-,�^�fWN/�&ZnE��rDt7�tP�� V�+�_��!��
�x�y�
H����6Y%P
��d�0+4$�X���)
��{e�
��+<;\�L�i�frM�
Ԁ��i��i��i�k
[ɦӳ�tڱ@r���t���l:UǦ'�9�C
�IN�+ה�Xq>Yj���f�� ��K�w����T,�ʭ����Z+��
�}��a�W3��s�W�i#G˙v4��qB�WЎs�����hҴ=���n�yO��>c�E�~�y;5����f��Σ�9��)L+�����5�E߄MU�[91ƍI1��]��D��@:BΆ��rKP-��A�8�T���S�jU|�Z�s���X������+��
+�U`�{�m��&= G��
a�as�m>�?�)&/�F
�anF1�4z��J�j��H�M6�Z_֏x�r�H`�ٌ���dc5=�l�n���h4�y����v�S�n�S6�߭��65>����L�3����ƾH.]������D�e�@��t�])k��$a@�ޓ_SEHX8��X8��CP�ų���|}
��� F
�cmS��7��@��������I_ھti�o���z�f�T��
nߙ��gi�a�
+���S"㩫�W��^|��/�z���'d�$�{|� y���3��##�WLq�x�f&>��RF8�(��}���~�Ԋ
yW�=�L��驱 ��6ݺ{}��b9kQ�ըږ6�l���������HH��M����_���?smP
�,�(����|�W����&���-�H�w�X��Ho�w�>AN���$;J��
)(o�<�;��0�$
Y�$Qv�,R
�%��u�^
��7!k�%H
�� H
�R�e���G�b'5%A����r�!f�q=i����8�az�X�/p
@�c�r
��r�d�
��" ���ߓ{m��bco�����Y�Î�"Qp=���8�2�
˒,�6٠7�
����*�����,P���
���9���µKJ�CI\�R��U����ޡ����$�}'�8����
{a�r������ug�3����G��&��l{Y��%����5|r
g_����u���{t�Ԋ
Z'�;}�hQ�))-E����1FC�i���v�
�,te"Y4���$��h����.0�# +����9sgh�
㢽9sν��{���ǯ��{�?�T2���z���I����k
�(���i�H8_8�j���5ًз�j]��Ĺ�4��XJ�
�o
+Yq_��cRo��XN���?]2��~(&����g�XJ�B}m\�6�9w7��q�Q��o<a���O��yzu������0��=?��
���s���-}�6���i~X��#�S��.�n��~��N�+����[��<
���7�y�7;^�9�y�*'?-G����T���ۖ_O��|��g��b���Y��yF���A�B��U�})��f˩~˥:r��[ON���
B������Z�l��l�����l���\���/���kMT;�K���E����/��נ�::,�3�{Y��~Q�Ћi=���6|s��S�z/�A��i�k�S̽$;��"�U�<��P�f��:�|R
�q�mb]1@����'�E=�s�Fݺ��C1����d�(�μ��
��s��R
+e�q��>��!ߏ�����!��ɬo���0����O���yUٯ�>U����
���j�N��N�g
����21@ǍN۞��CN>g���&x�s��]�J��
2�l(g/���J����s_�e ���P
c����J���*�o�)��^��_H��5���!�7QC��
�d={
y�
;/x_�5��w���~�Ug�?��C�3+|S��I�_����(�O�bl��[a]D13ܜ
�o�?�ŗ�
Į���ևWlo�4����
+�L��/�'WkA��0
g���Hd�ډ��ү�&�;h�T�V��~�Vٷ���Z�?6}�U
����K�&ԧ���{Uȫn<���N�\��R+�^XN�-�u���'�����䀪��d���
A�qr�W�-
<����<����MNg����{�c#�2#]��#r\&eTRrH2�w���AZ+RS��(R
� �dXsD���qI�ViD>f��k5�0�qxT:�
�߰8e�$< ?����2��= �/1V��k&I�4뚤i��=�>ƪ�)yy�[��Z�T+ʯb0e�1��z�K���"�C/e�d
CE0j���!�~�0U�sƬg��i?��姰|�}�m�����'l�f��m$�~��v��;�O��n�,d�M�5��\�e? �V��H�y�\
+ďys$���<B�l�Mr��C�,6/%�mو̳l���%���)��v�le$�,(^6G&�R�tt�+���` ę4�
endstream
endobj
24 0 obj
<</Ascent 945/CapHeight 708/Descent -250/Flags 32/FontBBox[-205 -250 975 945]/FontFamily(Avenir Next)/FontFile2 27 0 R/FontName/SRHFNQ+AvenirNext-Regular/FontStretch/Normal/FontWeight 400/ItalicAngle 0/StemV 72/Type/FontDescriptor/XHeight 468>>
endobj
27 0 obj
<</Filter/FlateDecode/Length 4150/Length1 9246>>stream
+H��VmpTW~���f�������ݽ���&7_��@����{)�dH
�_��D-PVZ���*�(j���U�
�4U��3v�C��;:�q�q�v;��ܛl�Ԏ��;��s�s�9����g! ���;�ʅ�[C��!�n���L�8
+�E��m�ƺ����ٽ��l��Z��s���x~e
`�ر�������5 at 2���Aß-�H`�e�
v�
�[���oq����ۺ�z� � �����u��4�dq������F�h
�~�g�@������s�z���3p�����%���"n�SH�U�.�i99�-�G%�H��d<V
Yk��
�ϊ�U�
�|"Y>�|�k}(xj|���~ �+;���L��-���d����
��S����L���`C"]9
Ip�!*���"
���Y�Fr���pb�
|��
T�E(�<̇%�e�P�
+z�
+���X�:�c!�a�4���MhF
��mX��X��X��h��E�a=6`#�б �`3:��b+���c8��*�Njx��9|���8���^�%�?Ə���)~�˸�(��:F�n�
T�=� �;�.���Z<�o�]�/�� ���&zE�X)vc7�(�p��%l�
�S,}�}xB���qgD�H��j�!։v��b/�~�)��G�fq@
qD���&<���
+�A_�)|
��xA
�4��eF�?E�h�^�$�E
mb�X
�02i3��@e�,{R��Z�>)����M�����eT�Tf+.ţ)�J�Ҥ\rg�=�"w�G��<)�tO�g���)�z�zz
+��� �����"S�o�2Q'V�=Wz�쿟a�Pr�9�b��}{��fػg��E�����Fco�ވ�+�||���W&�M��xf|�������q�g<��O���n�X�ؖ�
c��:���V�5��%�9�x>�rR�~�6�_��}2�
ԫ���X���x���
|ˣ��
|]�g���
��i�0�����(�OQ�CM��
�G��͖ŧ�D,�-k�����p[wXiQvtuG���7zº�D�
�.�4�Ιf��ד�j�XM��N���
;MLpR�o����#CM�HC��t����h{02��t�:g�fv��'B��{N�m^6�S,
�H�3=
����P8�
�
��(F?c���a�@O����j7��T��0�n��}�M\{�oyG��;u�f�dݓ�a
+�,I%h�§E1��FQ�.�
��Y�Ӛ:��e�J�
X��XKFh,vF�ʖ`����_����ڀ�
X��E�ǖX
U��Y��D~�r��i����$'f��f&YK��Km���jjZ�
+m�7'��;�8�dɁ�y�ܴ����Y�*{k��E�_ugdVG�����D%O"�>vOJ�n��#Q��YT�1��'��F'�J�U�`�uVe-UY/U��#� �%�"1L�"��a������7)�M
+}�'���l���!Z�
D/q�8F�@�J\!�&�Nn�wl���:_���A�4�0r�iC�aHB�i�����l������K�#�D��A
&�&^$.Q�W�̥���2����\��\
�!��k�
�����<q��I�G���_
���
+Q钲2�%�S&��R�'�}�TU`�L��zMNN��x�^��]�/����,P��R�n7��57
54��67
5>\����ߣ���{���M�S��>�zYBl���j`܇ ��>��i�҇��+?!-����%�V���!��iW_�i�����%>�]n�{�%Q8��5�̸�3���SK;��θ�3��+;��θ�3��+;��θ�3���
Ƃ峍Mf�9H���2�����T^��2����L�e*/Sy���T^��2ב��l.mD��|��y��Z&Me��jZ��&
+Oj~nrvq՜�U����u�ޒ��jF�7'&-����Js�+Ռ��Ʌ
e��*��=��Z�}Y�'>�/�����J��%��l�-�?#�l��$��G��K�Eb��Eȝ���Ɇ
J�6��FN-Ω�S#�FN��95rj��ȩ�S#�FN�����.3�kgTI7DH��*�aP
UF�?��fp�ӟ��>����>��>��>��>��>�����0��$�0�����Q/}�e�z��^樗9�e�z��^樗9�e�z��^�7��^���ьx2�gCn[b�KL�nQq�K�'����f�܂���8���I�%�$�#�!���N�JB.��IC¥�LZJN ��⌵>����f���}냎bg��Qt�< 3ZE�`��c��u"����}ii���S��g��/k��{�쯰��r��_ٱ�e�X[YO���[6�V��
+�s�~���|}a��M���ٜ����֖=�h���ڱ/ۮ>�]�ȶ
=����u�
�[���u�����:�l��ס&@ u�颦�'$8r�q��x�m
n�p��8���6�q���m
n�p��8�ƃzӛT�-��X�,��o�6���.c� �o�-E{[�?�F�5`F_�Q���Lf�0��(�Da&
+3Q���Lf�!3Q������̐��xP��n4o����ڽ�EE��{��ж�����"��YR�S�i��sofe%���
�Q�ٴ��>V�Z\��"]�9�z܁�����?����ļJ�kC��U��/}!]�����^�\
|X���?��m��X�d�ez��ہ�G
� ��
+�dۥ�k���l55� ��U)�礏�J�Sj��)Y���`
+ԁ��
4�f�v�V|<�����x b�*+�32b/2�}d?���J��0B���l
+y��S��A�8#^� m�Rk��`��
�I�_K�}^��!v�,�_�'~���L��Q�ge����S����]|������ub�
�N�~���4��f�Q�O�JL�D��ܐ5���7ӲFus���"{����b�{��(��`��A�������B��]�Ƚ}��i&}˼@εmJ�A��H
v��������c~��-
J��\��wEV:.�.�H�/��H�]�7�Z
���9'���P.���cϚ�E����>�!��?���ț�m�_3��B�
����r�U�~5�By1��qR��Y'W;��i��ҝ�Ӌ�
_�Y���r�g���
��>���"5�
+\�'�Zz>����sȪ��ipr�J���e����
�y�O�I���~��dy wi
j
|��>]�,�z64�(]mS_z�
�a�Sg��v�[������BM���a1��
^�ߕ
{C�]M�q� �V�Y�|�#0�P���]�e3M�:d4���*��i�V��v��a}��e���8�:�ݯ��a��P��w��9�ǔs�[���Mp_)��Q*�-�}�Li��2d�N�����
|��Y�|���K�{��dMo����n�ᷙ�w%�}�jn�
+sI�N��>I�d���u��cs���u�:���<�kbZZX�gt}��P�3�q�����;���q���wQW�~fӿ�6�_�^�>T��:�/��\S�
+��wrnϗ]
|���a`�-z^��3��e�3�����b�ė�L�dl�˟�e�T_��yp9����2�=y��[%�yϺ}�e
+|����gZz]�i٠��е�n�ƹԵ�p�4��^��}C�
o�A�{��\�Y�
��g��࿖xY�z��U�_���8
+���3��E8�Ds��S��+�'��l����i�Bt�ϥ�
x�
+U'�c"��%KX����%,a �
��29&��?��]A�x�"��ՠ��{-
A�zZ-�&�
�����z�[�6y����
������|�g������ξ=�m���S}�өʁ䑓�M}�yH&�)9#S2.G䨤$!��R�o=Z圵
�a�M0'Ŝ�$IK�
�'�ܪ@����"q�����XǑ i���'��D&���;��A������
�m�}�9S�$�4�*���I�
��^����̘?&�_��!��>ľ�dI�}��I�Č�Y;⼤\�4s 7^=
u���\j���r�S.��w�ȏy
?���p���A>�Z?)�aגb�oO��=?I.�ܼQ!��IF�`��_[�r��������'�ܜ�J�*Pz9��R"�Z��r��1��&�A�jm�=�.ঔ�$WV����2|e�(�qv<��_
�|
endstream
endobj
18 0 obj
<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>>
endobj
17 0 obj
<</LastModified(D:20130908203030-07'00')/Private 28 0 R>>
endobj
28 0 obj
<</AIMetaData 29 0 R/AIPDFPrivateData1 30 0 R/AIPDFPrivateData2 31 0 R/AIPDFPrivateData3 32 0 R/AIPDFPrivateData4 33 0 R/ContainerVersion 11/CreatorVersion 15/NumBlock 4/RoundtripVersion 15>>
endobj
29 0 obj
<</Length 966>>stream
+%!PS-Adobe-3.0
%%Creator: Adobe Illustrator(R) 15.0
%%AI8_CreatorVersion: 15.0.2
%%For: (Alex Reynolds) ()
%%Title: (reference_bedmap_mapref.pdf)
%%CreationDate: 9/8/13 8:30 PM
%%Canvassize: 16383
%%BoundingBox: 0 0 576 360
%%HiResBoundingBox: 0 0 576 360
%%DocumentProcessColors: Cyan Magenta Yellow Black
%AI5_FileFormat 11.0
%AI12_BuildNumber: 399
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%RGBProcessColor: 0 0 0 ([Registration])
%AI3_Cropmarks: 0 0 576 360
%AI3_TemplateBox: 287.5 180.5 287.5 180.5
%AI3_TileBox: -90 -108 644 468
%AI3_DocumentPreview: None
%AI5_ArtSize: 14400 14400
%AI5_RulerUnits: 0
%AI9_ColorModel: 1
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 1
%AI9_OpenToView: -278 569 1 1134 765 26 0 0 47 129 0 0 0 1 1 0 1 1 0 1
%AI5_OpenViewLayers: 7
%%PageOrigin:-18 -216
%AI7_GridSettings: 72 8 72 8 1 0 0.952941 0.952941 0.952941 0.976471 0.976471 0.976471
%AI9_Flatten: 1
%AI12_CMSettings: 00.MS
%%EndComments
endstream
endobj
30 0 obj
<</Length 14929>>stream
+%%BoundingBox: 0 0 576 360
%%HiResBoundingBox: 0 0 576 360
%AI7_Thumbnail: 128 80 8
%%BeginData: 14806 Hex Bytes
%0000330000660000990000CC0033000033330033660033990033CC0033FF
%0066000066330066660066990066CC0066FF009900009933009966009999
%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
%6666006666336666666666996666CC6666FF669900669933669966669999
%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
%9933009933339933669933999933CC9933FF996600996633996666996699
%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
%000011111111220000002200000022222222440000004400000044444444
%550000005500000055555555770000007700000077777777880000008800
%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
%524C45FDAAFFA8FD7EFFA8FD047DA8FD04FF7DFF52FFFFFFA8FFFFFFA8FF
%FFFFA8FFA8A87DFFA87DA8FFFFA8A8FF52A8FFFF7DFFFFFFA8FFFFFFFD05
%A8FD49FF7D5252FD072752A8522752525227272752272752272752272727
%52F85227A8525227277D7D2752F8522752272727522727527DFD49FFA87D
%A8A87D7D52FD047DFFA87D527D7DA87DA87D7D7DA87D7D7DA87DA87DA87D
%52FFFD047DFFFD057DA8A87D7DA87DA8527D7DFD56FFA8FFA8FD11FFA8FD
%BFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%FFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFFFFFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFF7D7DFFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF7D7D7DA8A8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFA87D7D7DA87DA8FFFFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FD09FFFD04A8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A87D7D52FD047DFFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FD08FFA8A87DA8A8FFA8FFFFFFA8FFFFFFA8
%FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFF
%FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFA852FD087DFFFFFFA8FF
%FFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFF
%A8FFFFFFA8FFFFFFA8FD0AFFA8FFA8FFA8A8A8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8A8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD097DA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8
%A8FFA8A8A8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFFFA8FD057DA87D7D7DFFFFFFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD
%0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FD097DA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFD0B7DFFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA87D7D7D52FD077DA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8A8FD0B7DFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA87D527D7D7D52FD
%077DA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFD0D7DFFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FD0EFFA8A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FD0B7D527DA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8A8FD0EFFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFD077DA8FD057DFF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8A8FD0F7DA8A8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0F7D
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FD06FFA8FD07FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A852FD057D52FD077D52A8A8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FD05FFA87DFD07FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FD0F7DA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD06FF52
%52A8A87DA87DFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8A852FD057D52FD077D52A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD04FFA8
%2752FFFFFFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FD0F7DA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD06FF2752FD06FFA8A8
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF7D7D52FD0E7D
%A87DFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8A8A8FD05FF5252FD07FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFD0A7DA8FD087DFFFFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FD06FF7DA8FD06FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFFD137DFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD05FF7D52FD07FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD137DA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FD05FFA8F852FD06FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8A852FD077D52FD0A7DFFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD05FF7D
%7DFD07FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFA8FD14
%7DA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FD06FFA8A8FD06FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8A87D7D52FD077D52FD0A7DFFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FD05FF7D27A8FD06FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFFFFF52FD157DA8A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD06FF5252A8FD05FFA8A8A8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA87D7D7D527D52FD127DFFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8A8A8FD04FFA85252FD07FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFFFFF7DA8FD0B7DA8FD077DA87DA8A8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD05FF7D27
%7DFD06FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD187D
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FD04FFA8FD09FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFFD167D52A8FFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FD057D52FD077D52FD0C7DFFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FD0AFFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFFFD
%197DA8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FD0AFFA8A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFFD067D52FD077D52FD0D7DA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD1B7D52FFFFFFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFF
%A8A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A852FD057D527D52FD147D
%A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8A8A8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFA8FD057D
%A8FD0B7DA8FD077DA87DA87D7D7DFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8A8FD1E7D527D7DA8A8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFFFA852FD1C7DA8FD047DA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8A87DA8FD0A7D52FD077D52FD0F7D52A8A8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8A8A8FD0A7DA8FD177DA8FD047DA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FD117D52FD077D52FD0F7D52A8A8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FF7D
%A8FD267D527D7D7DA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FD0EFFA8A8A8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFFD09A87D7D7DA8A87D7D52FD077D52FD097D527D52FD137D
%527D52A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8A8A8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8
%7DA87DA8FD057DA87D7D7DFFA8FD127DA8FD0B7DA8FD077DA87DA8FD057D
%A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF52FD0F7D52
%FD2F7DA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8FD057DA8FD
%077DA8FD2B7DA8FD077DA8A8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFFFFFA8
%FFFFFFA8FFA8FFA8FFA8FD0CFFA8FFA8FFA8FFA8FFFD08A87D7D527D527D
%52FD057D527D52FD077D527D7D7D527D7D7D527D527D527D527D527D7D7D
%527D527D527D7D7D527D7D7D527D7D7D52FD057D527D527D7D7D527D7D7D
%52FD04A8FFFD08A87D7D7DA87DA852A8A8FFA8FFA8FD0AFFA8A8A8FFFFFF
%A8FFFFFFFD08A87DA87DA87DA8A8A87DA87DA87DA8A8A87DA87DFD05A87D
%FD05A87DA87DA8A8A87DA87DFD05A87DFD07A87DA8A8A87DA8A8A87DA87D
%A87DA8A8A87DA87DFD05A87DFFA8FFA8A87DA87DA87DA87DA87DA87DA8A8
%FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD10
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD2CFFA8FD27
%FFA8FD56FFA8A87DFD25FF7D7DA8FD25FF7DA8FD2FFF7DA8FD25FFA87DFD
%26FFA8A8FD2FFFA8A8FD25FFA8A8A8FD25FF7DA8FD2FFF7DA8FD25FFA87D
%FD26FFA8A8FD2FFFA8A8FD25FFA8A8A8FD25FFA8A8FD2FFFA8A8FD26FFA8
%FD26FFA8A8FD2EFFA8A8A8FD25FFA8A8A8FD25FF7DA8FD2FFF7DA8FD25FF
%A87DFD26FF7DA8FD2EFFA8A8A8FD25FFA8A8A8FD25FFA8A8FD2FFFA8A8FD
%26FFA8FD26FFA8A8FD42FF7DA8A8FFA8A8FD04FFA8A8A8FD72FFA8522752
%277D52A8275252522727527D52FD70FF7DA87D52A8A85252FD087DA8FDFC
%FFFD36FFFF
%%EndData
endstream
endobj
31 0 obj
<</Filter[/FlateDecode]/Length 13237>>stream
+H��Wms�6�?�����{�H���$��U/�5��K���@$$� $
+��
$�8���Iz��.��g��^�#��G��O�/N5g����R�D�"˵!
�I�k�O��R��3��c�j��|eV�% 3�I���Crp�%O�%�< �|����s���J��aet��
�#:�A�
�;>�^6K�Y���`�ΰډ*�H$��pL|��}��[3�=�?Sa�$�j�,;UR�옜nXB.�
+
F~�R�w�D��mc�+��
��D�K������LC�M��� �X{�yģ��0��毄�s�r�DƓ�=?)��.�x�q ��Ȑ;s��mO��`>�A��y����ُ'� �@���6
�o��Z�Ҙ�٣x�
�S�ó�n�
�>~�R�X���O�H��.�����=~/��cr��B0����@�����qf���6�sk<�\��K���_I��*/���az�s`G�"�V; Ưن�n���'7�k�Q{0$��ʂ��%�>
�[�� ڣz�`��5FI�}�S�✮�X���(B{�w'���� m2t?և֨�
u�݃A�;�1p� *yΓ�5����uq
�Γ�T��h2�}�G�H�r�zl9X^�ޝ��?
+��
�$'�>]iv��!
G%!
k��i�#!%��,,rN/s`�ӫJ̣��
+�D��FY(4P�D��l+��3�<��s�ң�-卥�^*�z�dDCF�2�U�Q�d��U
YU�*gJ�D
'ZlE=ZԲ[���
䜆�7�r���"��%]R�L��k�1K��D��M]h�h��
p��)R9�&y���ޮ��<�K:>�W�d�ګI)�X$�V��nxB��1��H��*
-Q��p3�Y�L*z��ό��z�P�J�!�%B&��^�D���c3V����
+W�2��\$P�Ej<�Rr:v�1.�V~Ω2I"�Dyl?��UZM�N;��
1�� �Z
�_��R3w��V�R�)��vf�yt)�p �LS�"{��<[���� D�*2@ģ�D��C�ymܹ
���'M�Nj���rBW
}��WN��I�6��:VdN
+�;m�v�P��2�b,� �R�e�G�E�b��%+r�!4dX�ݜ�"��y~��V�^&��-S�I�L�pL��ǻ��;�C��X�����f���V�F�f��ϱ�j v� �V���{Xw��`С8L�G�$&}*�%�9�4J�9 at +�
+�^�0/�R�R��H,��ƶ���VQ�� h�ME���^�|ň�ze�d= F�R,x(�
��h��A�L5���<Yq���FX"��כx�䜺���\����2��w�z�՝���*�I�Tށ�o��&LW��Q��㖄��9o1�
>�W���1��N�������v���'�\����� �ɿ�N�W=�,~-���Z�Ξ2�h�{K�C)Z���]��q�6xB���c#��ѳ�pg�n7��pG{^�uh:#MNt��ɍR�V�!��^�-��{L��*q�x�R��Nh���] ��
�����2t�e�
v��
�� ˖<��[<5(SS�Cɯ7h㧴�h��G ��n[kU����z�Rnu��WV�V�3�K��
=]|G�c^{�G����r
��p�Ks�G�^�������[���6���`�v��o������ny
�a^��d�����;������73+�͓+�/=��g���p#=c^7[V���n��i��(p����v
���w��B�=mw�83f��z����'��� ���x^S�w�{f��bok�f��m����@��
ӽi�MOj3���
�_C]�>��
+|N
�c��7j�V�����K[��r��g,gދ9�� �� ��az��c��f'k0�d�mBg�ɩ�^ ��Y!���;��@2eu����ɥ�D�=M�O
D��O�f
��,�ls���c���F��IVi*#�]��q�[Kf\ި���Z5U�0�[n�Vl�9�U6t��� ܢ��o�
��K�~�%x�j����""�x�u��hS`
f�ׇ٬
��
IELf<S�(��8��D@�3��y���HN�s�w
��6n�O�[�*��Ġr!JE둱
�ϣ3�R�?��YV�d�_E<eQtX�mB�E�Ȍ���uL蛋חpm'���!� �GpN�ޣ�-M�~e_@C*\
B�⚟|���9�G����^��7E�,*YC�>!��X(-�>��E������·<�'2������@CC�=|8��.՟��)�����D�d$��_���� ��S�Ɖ
Y�⯕��*v|��sFt(=
g̴ߦ�B��
ǯ���;2��!K����6��i�I��k���u��S�n�9�ͷ��{��J��+�������9oމ(_��Q)�m���x��Ok.V�}�x-�m��߉�rh�rt:������q$�����*O�F6eɲg�d+�h7����<d�R IXQ
e;_�
�RH'�/)G<ht7�O���GA��� �������|���-OY���}�N�
"q2�g���I?�� =֫q
�����h���=�d��8�D��X�Z��G��3;qQ��t�]�M�H��2�� I^d?d"�E�Y�ADcp%9_� [�#?1
���y��XH�c:�
�Dni�)��g,HBđ ~$"�G�E`W�ח��Y��;̎8Y����\�Ǘc��^�wqQ�j
�l�$�p��f)_�8��:5��G̶)���q�l}Q���TƩ�
31
Z�XC9��!�ا����ᡢ$�X"��P�N��`���
�;��m�Y�ӪQ?
+�CD$1�=�����/�g
^
����2y9�\M,���sq[u]>\���/��|�D�
�|
��6��P��a
c;X��㠬�k�f�&7�avd��k����z&k
kT�͵��a�����}�
u����j�Xc_��ٟL<�F��#�'�h��~0.��D�L#"2�0g!yY�������$|d��g�pFY�N�d�|�ŏq��崛F�Ln�pݥ7�}�*u�Y�f���D�1�*�'A^_M�U���V#k7�#�8 S���;L�
+��'�Ќ�U�w
�"{ӱ�ZOىDKc�G.лq1�
�#0[�?:HKK��k�IHQ�V�*�j�����k�F�:�[1���UZ�l�V�%�ٳ�qu�
]�k��.�}v���!X���}E�8yS���՝�όcʂXۚ�I�n�ȝ��T<ըBG�������f.������59��b�>*<af"�)�&��Y1�����)x�
�WJ$�}�5��T�^��cC��U�r�Ն�2������`���
�K�բD��E�3�����m�lK�Fݩm�.�&��6Q#
�~����{�A�*}�Ne�T�Twz2K���� ƫ�Q��%�ЂH�N�Ⱥ}4�a\�
�B"h�
��i�fn;��~���SE��C��SI���08����o�,$�� Mv����π�b�
��:9X�\�R OEN���y�<��b����(��qVV��~���?V���0�C��������_�q�G�7�ɚ'W%9��mO�"`Ƹ���
�l� Π%d����Z��ɍ-H���M�9�
)�ȲK@�A��
��7��$U�f�� �Qk�����k�!�m
r'9s���;�I-m8F�����O�;KH�$��09HR?q����Q,6�
7XE8W��T�s�b�(�J�F�zM�
�<vԇn�M>Q���� 4H���$e�R�jk���/�t1�6J�{�
��mx;�9�/s�k<nk�*p�#.|,��Vkѵ06��t����x
cgû�F)�cñ5��l�.{����MBi at o����iu ��Q������T
g�C�z^ �]�����vt�
�I
+�:
`� `.��0q�d��
;���w�-��u�a+��mn*���"Q((�x���|m8.��h� �Rg�\Z����tLQ��f��7�8�Z$/��@c��E3�SttA,��n��E>OY��v?�
IB��+��9`0��E
zNA�ۑ�P�������r���P~�Vn�� l\�H㛑l���
��@��0���fB[7+� ��4*�g��1
�TmשD�ו���6�U�U}�琪t"�3_g��
;
���
�Sy�+��
�;:��=-ԏhZ
@3�I>W�}���7t���% ��z�8,��1�.̶
����
��EB��
�B&{����1_���A)At�+�N�R�O��A$�!�_�Q�j
����h˪�k1���� �tk��@�*i������j�uAW�~��v�Qv���
H
+Y�҃�0�
S�
ՙ� �ϰ6d�+1��R�V�#Ƃ�R�8=������췥f�������~S
*�
�ĝǑ�xpkn�kAj5���K��jx��0+�9�K5ͳ#�μ
b@��Nj����3K�!�HU^�.P��
+�S�v
$ɋ��H�E����3
�?�6��qg�Tǖ��+!F��;�U"/�%�t~�
S�-q��~��
���-��j|O�� �����=$j*�3�[C�Xn�m�ZH�Y $
+>.xD�&�a��,j�t|n�=t��)���7zA�l���߇m;��}�JQM}X��^I�BA?�ْ�G���ͼ� 4G2
����_�蕏z�LG�I[��-;�J���|�8
�V9�����L��d�z��
z����4=�ۡ'���G�F����@�ݏQ�Nߌ$�fK�ٻ#gTy�D��aV�%������GZ(�
�u<�
��p#/K��$�c�;�DI�cP�1��M��-c�h}CѾW]��w8�z�����V%=FG)2T��y�w�?
�䎠|�B�
+!A�;�P���0C�nW/�p�~���'.@!�T� �.U&�ߺ�W���AӐ,S����S�h� ��<� Z$�2D�ca�&�C(��!�4�)��
ڍnYe&��ABS�o��i�R�gP�~D�Ac����[�Ȅ�^��2�65�@�{A��
y3��T��~z���Z�������r��3ξ+w���-����$V_�䃠�Վ?�AÊ�,0��▓���_�#��{��Z�a�Տ���ޕ�AW�~��������H/��d}.��_Z\����mAp�Q�����V���a(�I������@������<��BAgW�OڨT*<{���E��
+M��GN���F���_z �G1��m�fr�}��%�R�fdMx�� A����Y�I�U?X�^r�$�PA
8 z��$�a���}�>�0!���=T�
�>]��8Q�� �
$3e��́�u� ?]I��J.����̦�����������m%J|l�iF����%�
Yy8���)�3y��J
$R���'�@�e�6 �W
D��7��BN�AWzY" *�&���H��i�|���b�=��|�95�]Y
@v���J�)��=~b�9�ߤѧ�<Aw'" -k-M���O&��2L��6��(��叧�R�-©��t�h���&�@�=Y֓rfm�C!Ǧ]� �3���~�,�|P�����>��~�o�^
+��
�ix��CFw�fISǒ?��J���
�OT��؉:��[hr���:�
�8h���
�]�К �W�_GCIO*&
�((�6�Nѱ��;���P�? ��!�N�]x���u(�/y��q�Y�/�K�˩}�R��J� ?���[s��Y�lc&���زʩ��Z����o��P
g�������cH9;
{
��Xh�
+�.
�E�LςB��*�]_�S=��������'3 at Cy_f?�ѩ"�:�y
J�!b��i
+)7Y�e�n�������Zw��\C�b�:Hw��Y�G�f�8}O�>hP�
4?ݞw���-�c�xa^n�>����DP�6
�Ђ�$��/
+
++L�c���6h)���1�!Z�Z�&eEI:Ԩ��Zۅ�ڪD�3
4
�`EA
��Y��˩?�4�;I
�Юw5���
H�:T[c6�e�z������
}w��"
+� !v���B\�mbd�FB'��
ݭ��:�A�k
U�L.g�P��8{�FU�j�eB�ς�m*�9C��y�ݞ41��I@��w�Z��5�{M���&���:T;_6Q�m���C�e�>S�-M W�9
����j�|�HG
+)����
4���2}
�=KʬJ�CL*ݖ���C
��FHg���b��M+���� �5�6�ﻤ�1��N�|k/\M��~����.�v�qK��υ-~�������Q�7M*��EU-/��&�
9Q���ݱ<H�r�c����2H�r3��Q����O��,Ep_K�B<
��
j/��-zq�LAK�
1_i��\4ڙ�
CJ��
+�� �'�ь�W�<�v���o3
vk���ٱ�x<?D�p_W�sD�p�:�
Ƕ����
�{?���#��ҸhL:q�@�42�b�S� �KaLt�e�3���.\��(X�-��p1_���}�D�>��^r�
O>���q���=� ���wT^x���o�OD0�IQ{�c��� ������`�5p�1��o�WQ)�o�7>X�R{�M��C��'��{R��W3y��W3UM3d&t�HJ;���/�ف���E�/�$�J����?���g�6��il���<���ָ�t�C�n�*§�!{'��K�k�rgu�ޒ
�N^vbu۹�:YO�
8_wj��b}
��d�ء�|�g�:�+�SY��P���
+��[e����[F�3�^A�n�˂��u�@9��|o]���Zwqc��{
�[T=͘ ��6
4
��#
{�u��B{�,��
,�v��`���]�B���B�J�:��ZG2�Aw9u�h��2�y
�}��_�Ǐʨ��:f�W7�4�[�\�a�6�r� K�P2���)���Q\��r�
+?�0t��/��n��S@�5S�iF}jC4/sh�˞{�MN��[�0iF�@1L��CK��u�nj��d�����r��f��u��O7i>����B�am]��0���C��]M9%�惮�
w���\�-�
+�`?vm��bh�ʒ�.�4(XW Ԕ.� ���Z����(�i�������t�����W�x�Qnk���N��O4���u�
NO���J��d|�
��`���Y7C]���ѿ�W�=��[��=�����+����s��б���~��b�{_3
�fݖ���Vz�����
���ِ5��.�{�������D{ק���F�����.G�1�R
u [��aW�
��4S*��ʋ�?H
�~a4XՃn�Z�{�˹��gUnCz�Od�:l����g�/��ߞ
���Jn[�~��l��`m�)S�9m��`u�̵sY������
+R~7��c�wG����jv��w��D
�drz��^�B_j���
c���X�>��Ü<�C�
�O����`��5'u=3
+�`�
+x��C�����.컔�_w)����ց/>�5
U������ȋ�ߜ���&L~�]\���'�������i%�7K[�^��I�� ZD����|;%���'��N�J��WkW;��#fy�U�ҋ� HE
���j��7ɼ��3� _�\��������-�����f�����'��g�
\��x4�n<
�����qo;�E�3E�e-c�欿��It]��=�[��ha+�����lq6��|��[B6��Q��ꧠK�<��)�
+T
+(��Ȗ���,ūMY4�A�Ǟ�X�B�y�:+� �`��:��N��P.2PP
+$�_Iҫ
D�(M!��Ɓ /���k�]gb�\��A��t�m�XH��9���
��
{u�y�@(0�����:h���v��;����
h+��^��C� ��Q?$������* h6��: �/8�E�\��\H"���
?���/�+��n�����w�E}!�����*����g[*���C+@�À�E����o�+
i���^��Gc�Q�#ѝ����
P���W^;�e����k�lx�`f�a�`�@��̍S��B��i�Jm�q
)�;�e��Ҝ���)��қl��d4;
�zk��^� ����d� ���0
+`YXBm���8�WLJ�$,�K���Hi��~�����$��MVJ��E^�R7�F�� �1��<�'�ഉ��!�u���=MZ�����_�9�})^�̷^B�>8��i� �\a� ��>*
Gu��ȵ,�
Kt�$+iYy��8��^V��[��˙�������:6¬*x����ݺl�Miz�ײܔ�~�e6��:&�ɩP�`R���%�k�a��rVhLc'*G) 줶��
�B09$� ����dlJ��C"��7�hqߎ/6g�D
+6o��R�nġ5�lB7�]�#���rP�mP
.哑�(��<
+��N���h�[ѻ�6S���i25�e�ƈ���ƶ�h� �h�(��x�V����X~����ڌI��)D�)ؑ��B4���d;�7�N�e�<u�H�؆%Ya�gg,U�;Xs��U�=
��g�z�
�&�r�/W��j�*V�/@�Rf���� �� �# KT�ƪ
�5/AS��r4�Y�i���֔�n_p�ו�ĊH�{3�{�)D�
og3�g�C����Hrޘ`
9S���G�k%y6
E.n�(V26�J������)
+fL�
�g��
VJ���"���(��
+�!;*�#e1d'�
Cv�[�N�BMdž�a{kp!s��lX��VذWiDžb��B�[@;�-;^t3����yd��9M#cJ�/$��
~����a�
�t���Ɣ�[a^��À��:.Q'{���t� �}��&b5$�b\P9��P��|�?�Cc� }�=W &9-
|ZB��BLWT7��;IK�����R"�Q^���6Z1e���9O+Q
~
cmӄ�:T��!."Fp'5��ɀ^Z�wձ�V��}�q�����T�'B-�{JBa/!�
[��k���fjC�8;
�Q_>?Ϯ^���Ѱ}ZVkDZo�k��v�[fa��:�/��mmЩ�V��ѷl�����i&��S���
�Y³h�$�K�=��գ���;?�L����fN���ϯ;w����Wo��8��I#���u�M���3����<�9|I��{�b�u�
���_w&b���>�4R{�pN��u�fk��5��0�_��AN�Z{��V>F�w�9/&������<q�Z��F���1M��~.ri�i����
��0�
.��N�w�ιe
+���fk�Ntj\�_�|�(��vz���;�~����jz�p2�r�^�*ZW�=�˙�b����;�<Q�����D���{Y�/��ɯ�nm���O��'H["$�?�p �F����ERۘ����8�מ
� ����-�ւ�^F�}��U]ۘq,��0�Q̬������sV�go�4�>4J��n!��t� '�8�d'(V���ݶms�k���BשP�uZ�u�.>�N
��s^v8�:�����V�i����2
�o0
��}AP��T
ihcf�
��/�
7��kғ���2�쎫�Ǡ��]�U�-��g5
�"��B�Zhz�(�r��B�߃j��6]�m�\������*��tѮ�F�>J�>*��~n�@��Ѱ�e���=;��A��9�|* �\I(�JZ�J�ӆ/��6k~��<㷪g��:D������7�~�։����x�O8����Y�+��c~��k��|;G�a
ɾ+���ƚ�
����| �$����z,$<L�#k��$3/��)B�j�~��gT��!v[l�/)J桿,\��&r���E���d�e^�t��qߎ�JPS�/
+��2�&Ahe�J�X2�K�I�8��>
�PLCxo�xO�tu�=����x/�\Y��\p�u��W�_oO�-Ս�U�r9�Xf�$1#;Ʋ۫Xn��o�b�M�$tJi����z��
�?u�VWҲu�.{�Ҳ�9����
l@�e&d�C�;�ۨ/�0�:�%�n;�̩gȄ!����0����`e��
���'*/��b���D�
�տ�����_X�r�� O�ջ,'&%X���Uu��F���H�b���E�dD�;�
t*�^�����e��Ӆ|�����wH���xT'ɺj�u*�z�V�:�Ur/
�NV�}#PY�Ga������SՐP_��
+=O����s'��uʗo�j�Ԕ��
l�v�k,�/:~�v�{o䪿�hA<�V���B��_��
+��+t�������<�A���`�$5�]�Rۏ�FN]þw�@��ѰK�r���&��A��9�|pB�.ꖓ��<;�3n�
������U���#QAY�a.uB.���+Tdd'W�2�by�d���XF}A�i�by�a(^�`5=��R(u���N�v'���Ѽ�4�����5&��ByA�I��N(��x��sӄv�R�"
̺m�W���8qa�b��\I�:���;Yu��3u-b�4}��N2���Z���?����y/�Py� ���lj:�ALy��c�L`,�Ld���f3����|��q㛒
V}����v���
-��R���
�KF����VBK�+5�U��w�3��qvϕ-dL��D�N�+<
����Ŗ��˓�Ϩ�?"�J��A[�N{A_��`���_����&�t�b
+?����r%��6�tۦ)2�f���x�Q�D�jk��P�wC� Ί�;���+F3�rV�
c�~*M�k�l�=;߲�E7�L��P��g�ܷ�� �}���� ��:�h)���#2p�qag���&�- I�R������/���TH����/|�ϼ%�fy�
���,jCL�5�X��/�m�_PmH5�"Ն��ҌԆTzw�'L�s���*ŧq�A26���qڐ�ҝǾ^���6��(�r"�!�Ƒ�O@{O�xMu4s�p���V�?�I��
��MYT�@��`�v�
k0k0�k���ϱ'
+tb`��
�_x��9 at X�u��hr��`Y�u��y
�����&�}h@)�l}�f_R�p������3J���^��/�
��q
[-�%7a��E���?�k^����c�P4�G�
���6�mH5��I�!��y�kC�-Flnr�U3|�$0�2BC9\ ��I +��
{��[�R���+�<�
++�N[7au�a
:b�Ϲ+A&��w%gp���K���Eh�dE����z�����{�0DW�x-M�(�t/
�>�I��p���x e�7�E��@������L�o_�پȮ��c����6d&�0��Z���1����1^����1l��� ����E��Zz{-���J�p�
��.� ��`�_�(}�FvϹ�N�C�tR_T�c��^�Qs'���m�U�������P�?������
5�
���싻����`H����_�=������v��K��K7���'�8 ���'킉�x�J�صs�̵��/��,�(����Gf��̂����|���k���l�+w[bj=��d�O�t�Q�(��cJ��ajm{�����'�䲲
xJ�����J�)<���
�����d������
����삭���SJ
�����*5/�Gi%��
+�1O�H���&l��U�Z��Nr���d�1P
+|!l�6��TVa��z���۷�쳿�KNd$&��T��m�
δ`y"�wP�k\�k#C�S�Iu�A�U2諸���
h��"����ꜺTY�Z���^tq9cz�t��e�W0�|)aT�I+�I�-�XƏ]��
�/�u
�_g����F�S[�Y
D��*�g�IO�MR��D/z�䂋
�x
0��i
8wz��|QE�;¤�{ח= � ��b�$L�{U���g�I�������<�2 �E'�Ny��ϡ�^�}c!>���j �r�[i�̈Y��
��
�/�
�>c��=F�K�������Z��i�&�k�$rͿ�اDڹKx�H��σ���ŞO ��v�2l1v�8�I;��N�7{�_X�T`���v|P�
o�縗� �y �F
%n�^�m��і�r�$�z���V�̄��D���9ip������jh�x����汰ct��
h%n���V����q�:E��
Di�Cf�V-��`���M67
+N6$ް�;;ل-��삽ψ#0�u+���j#�F�"�!9%L�$x&�#k��B�(j��&�h����Ar���)'_�pR��O`|7'Q
�&),�Dv�l ��#E����gF��3#V�#�]�n�����l�_M�uF���o��Я�>�5}Մ|kS}ha�玈q� ^� 1L9B������W��e[olɄ�p3T���{S�dO�����eEp|[�[�"��4/&�d:��f�d"�vw.�/>�0�����Jn8���ޔ)��J� G��C.С2r��UJC)nR��h�."��> k��P��-�_I�+�
8
v�B�"
+]�u����&).Hi���������*�.��T��ߒ̿o�>B�w0�(�(���z�;u��
+]�D]�Mz/&�,�-r���MbMhya����^D���Y�����{��l��
��R����+��]ɋ��k?��ץ}��Vl�����$�X���V�Ů)�s,�J��[�k�a;v3W���
.M�89^M��4Ԯwv8�㋌C滾�Q��;-�hZRi��I���\�{��8-��`w����ᕜ
�9�+�F�X��7�П/0kk��*T t����/T�W�q��E!7>a��C{�P�^�H��d<�0��eb��B,�H�����J��P��R
��'[vi̲�D�J?,���
Lذ�0�h�_��|���{I�=ȠO�/������Zu��9
��e�� ����)P���ǭ����BsʂǛN�Aag��5��k�5��n���~��°�(9$�FH
+���RV�YR|Rb�!OX�
X�n�V�\Q��V# #QӜL'j��w�`����o�j��ۆ��f��t�'!E�DxPXVj����=7/�B���\���x
~�!��wo���2qaZ�Y�5<�(8����G�$X
.>)� �j�%��eI�Vl������wr�ȁ*
B�b����Է+���Oq�ّb��mH�q�C�"#�l�#\�Qϸ����D�.
� T6^�����5(H~"�
+�0��~NZ��Մ �Q۰+цT��
),FR����6�_� ��-'
endstream
endobj
32 0 obj
<</Filter[/FlateDecode]/Length 16347>>stream
+H��W�Z�:}�>��\*P��
��0�
q<r�����
m�&M �d�\{�ok��
Ǖi!W�^�Ϛ
+���j����@9z�]e�7�bo�L%��x�>�g���v*���dOo���BUUT��˖/�:�m����
�SJ��
ò���GQTnj��k{�`(էU�BVv����N� �8i���pp�l
�=+�#/w��8应.��5a,{���ӹ��9
+����l�ˆ�+��.���X�_:�����ۤJ�g�$���zѾ�9���`%��U&�
�[S�����a�6�U5�o(oX��
�x5f3�`���u��W��RT&��:�!�$��{�Mq�V���c(*�;�jo;����� ��қ �/�3�Kx��B����QY56\�8�v��9OM��$����K��u���v�H|e��X�m?
X5d�tӵA�!���dbٱ
�K�64J�b�ͩ8�c
2�0��9 �۫�蚆�<�S����8���
*,0 �0�:O��,�s\�M%�2$�X1��0���&��d~��$���hؕ�
�|$�gAEXy�k")�
���p�"�X��`����Q��>{�GU�]z
���㴆Y�S[�lx�%F��P����G�
c�� <"*�+R)��
f~���6��H��Aeg�b
�L��u)��0��w�ܭ)1�A&� �m��`��
�KOT
� c�Si�S������q�Ӳ�M�+B�]����:
����Q37o�w�9��I4F�S��}"s�
;��(�-6\�N:��u��-W����3���6?�ՏF6���\>���z*y��,��A
�{=u� �Q0s�UE]n�GxuF��7
��B��������k�����U��nr��j��n�F5�9��e�̾�foØ��J���M
�FW���;�2��E��>�kt�5
+�=Ks��j��/�QE�b
w>���RFO�H��U�o�n<��~�P���7���@����2
+��[p�
+�?
�Y�����DD˿_>X�
+����ǧ�[h�ڿ���ͪ;8�њ,�����m]��#��Y�,���Yt֣���T�
��k�߷�B�f�MJ�fEu�39�+�ڪ�>>7�
qc=�~ڋq��CZ�U��)�H�K�� ��
��Q���@�j+�"P����F��]x�ryr��v���%ri��,95���$�:�ܥ��8J�Y��U���I�k�)5YM�)(k&{"�w�S|��8E)o
�b���<�t�R9��5�rbr]Bޠ��C
+�*�w\���yJ�_��
�E��sT�ʋ-��Z�`=�1�1ƪ����f���
Z��ʜ0�S�uy`hG!*40aJ?5�Nhh�xY�^���쨈��K�s������)[
ü��-��K"M���]Z��3\
r���
N���x���ܣB��5a<Q�M�Q�� �{a,�y
d��d't� �$>���u�BA3��(�6��>ׯ���Wz�.��5���
+�(Y��@�#�3�����������Pv]۵���Ҋ�,���n��Xn**�m��ߗ�P��d��F�-5��
+\c�վ+i��u�Wr�\�g�I�q©�OQ�;��0fe���^%���/S�ݵ��ٌ�d����Qf2� �����)��`f��^;̆bT�ތ�����*��Y{ c�L���O�R�ǘ�����fx��߆�(���A�C�8�nx�+�ǧ?��.j�Z#����6X�{�|P��3
(%:����.�uQ� <�RQX ��6�#0�х)��zoFMq[[�V
SQ�K�!�T�A�J@�prx��x�G~Sd�~�
��L�Pv�s4��۩��#O�t�Q���,-���X�i�w�۾
A���.�b���dk����t��[̽�Ȓ��;h��
���
��wYRԝxb .O.K�]I�D����@e튉m�K:�ui0�pI�
�ڥ�X.�[��s���KBPJI�� �{�moȱmg��s���[4��C�\wZ~4IUH߹詷4�^Ȅ�0
�6;/;�xM-, �
�Px�T����f&|Һ<0�l��^��؆��G�O��Hj2v�QE5Ŏ�]� ��1�W@�EFQ�k�~&� �''���ゕs�E�j�3���
9�_P�l��Cv-�
�* {��
+���H��5 %�[�`�62U>�$1�o(oX
+�
�
=F�D��]�ϥ�t|�]
��u��������O��B[���GれOV�{kZ�Z�7��ĐUD�[�LJ6n˲B�I61!W���y-'
ĕ��_;�-"�������g�b`�1z�m���r��?�����1śU�~���'�2�P�j��gf�u+��v��|���XY�x�
�Qb��K����f���8ƗDuD�xn1���.�u
XB�%
+�1����(��`��ї�9ĥ72�V`;+<�5a�gR�
�]\*_�tR*/�#:X��Q��˵>��(��c�)�眎��v���
+��WS:jY%��2�%F൮���_������2����ݯ�JO�}I��|'o컒�#��rޠ&�v%v�&�nU�p�������W�n�o����,Y-�!^��mX},�RT�6
�wjC�ح�����H}Q(�s�s�׆ ,s��|?�-��Մ��8�6��z�pvlC��}I�<�pۄ�_v���x��B���e�V0>���9�}T����62���f/�Q��:��{W��WB��ʜ{ ���
f�.�<B�
��)���{N*4���0��X�nj��k;y��O�
01�QXo�o1!y
�q�A�����
�j
�ZN<�S��Y�&���4��a=�Mh�}�
�Ko��vnC� � Sq=�ymH� w���2�/Q|�YB`+������
#H�����=mJ-Q��Aegܮ
.3�֥��uHƾ}�] 2٣�T���3����v7ah�
]�����RpD C`����K$��;�,�
N��T`,
��G|
P���-���gQ��N^J�EX�}U{�ZI��
W9~���n
3��7m��
nb��p�$o.S�Ѱ+ �Y�D�Zy��Y�N��D���*]L �O���
���7ȥ��F�x����[44��ݝ?J�tU��}Up%���o3����pC�ӯ� �~OPfw(��ꢎ.�@�N�9/�kwt�(fG��`��E�y9_{�ͧO,,/���ޘ4K^�_�e¼߰X���
#C���\�^��Nj�e�[�"{�V$.��ȓy��?���{�i7�
0!�����X��V-��Ad��V�iovHU�,R��4Ҫ�>6&��(2��12��j�-��&��]�tQ�^�.:���(wFO�.��#
g��zKȱqK8���#ѤF=X����q���{�:�SԑL�솠u�,�DF7s�a��e�;|^�P��
�2or���WB�]���:�{
��b�1�
n{J6
��T�<!Α�x}�CNH� Ik��(��û�Ǐ���<�
�G"�ޚDT����%/qɵk&��t
�q>�IvD[V=����8�c�YD�\���|� �Q����%f1� W_��2�T��ژ����v�c븪��XD�U�m��n����t��3��=q
+t�
'�,�%`0Q���b�],��*���k�no��$̉H�g�߲fzH���
���<c�f�
��Li3e9۪q1c���<=~r��*O�Z4c!��|1|V��BT��K��H�g��.�pƠ�|�*�<0��q�i*j/��Ҍ;"l8�������2���Q�>=
N"��mK>I{[��s���4P�]6JQo���;��F��6��ZI����5������k�z)r�q�Y/��ۑ0Pـ)~�
�g�hqx���B�C��fѓ=�M"��"�'a�2F
+S��f
+�I�l �H�L���p��
���
[{� p�
��g��>
+b{��M�1��� >�
U�i6�^��
-�ƷW�� ��{�̚���}M��#�'yv���*�HWRbJ䢭��9�~���o�g�H�QF���oc��^�i���^��5�N\"���;��n��z���e�^8��eg#>/�y��l*\��q,�
���QL߰����c���ٍ�l��y�>��p�1"��6�_���v���� �+��R�ň^�� �!���)g������o�x
���n;�
x�ž����r!N�<M��Ӝ����@�-���r��SW
��L��մI-(^72���6σ�|�3�q//��f�߲o!I�C|\}�]����,f�"{�,�F�����l�
+�h�K��{��k'��;h�W�n���dN}���@F(��GU
+�����2j�g�n�2 �z�Qv������r�
cU �1�`�:\ ����������u X2�tJ��/?N��Qq`�&d{
��{���k�X����"��F�*�ue O_��}C
+0k���|�%��"&��w��d'ͅB�S��^���S��6 �Iq���e�Ъ��
������e�Y�"�T��4���60�Wv�w{�?vxn�if�z���E�eAzz*C��ʁͳ�����^������@�i���S~��l��|GF�4��.{.�tKn�ó\El�wl��u����x�ftF���<�*z�B�D���
ɞ^p���6JL*�K���a��"T)��Pl��5C�:�Qօ@�Ks��pޡk�E�gl��
r�k
��xx
�
+�?��#e�N:"~���.����9�d�py6!�B
Uv���
�S�����tw��]�-��U�`�N�W���n�
����ٿ�V����J�����&Af��M����
<�bVL��iZņ��9T͐M�H���v�� �%�-@">w�
L�r� ����0�]
���N7�&���q�Q��{}�g=��0
x��-�u�r����K���7[u�8����1Y�S��X�f���\��w��=���0�ʐɅ�f� �W��Y%#�(�OV�'u
/����_D���Vq��B��?j��>��]0s^�#r,nu����%M��/�Ha8�� ]3�[�~$(��� -����.����p�JJy�9j�'���]}\�\��c
�e��6��R�Qe6�k��}�2
��I�gb}L
���N�dL}���x�-�3~"�ÒMj,������'�ŔX,���OC����Z?�sE�?��oU�r�^ep����;y�ٗ�ӈ�X$�i��^l�
E=�?ͅL>�M�����Is�P���vR[�����
[x�g��_9��s�D��L��tS'�X���!�W��k&����X�h!��%{��a��q��C��XeMpB<�,�-\�GbH*h
| [...]
+��r��U1���j�TR�F�3�ݓn�u5��������9��Oy����TS
�f���
�<����W��<a�������ͻgo႗e��¸��"Y���Ō�=�
3`lm�0��xj���|b,�X�0�1S����pP�X(.��^H�z��O��p jK�k��K�h��(�
+��{)[�n.�b�?�HX�֡h��
�L��&�DŽ�>4��
+e�+�$2�`ܒq>zE���K8��I�qKr�����82��wI�u�%�����^WХ�H��M�ٳ�0�HQ}
�
�2�����pJ�D������L����e�h��}tՠC�RH�Ɂ2�aՀ�&s�iw�?{�ɿ�]R�g�P�;��ݼx�g�N jm��c/�f
^zz�֟��&C�N]�R�����DPA&��U���8�.��lTθ7������a;{@�o�}�o���s��_j�����[�с�NP>3�v�i����*�g��fsWʳ3z�D^�q�)�$�
�9�&����E�jH�7�@_���ݣ5��P���?�H��5�{2�H7��_����\r�5n�_
\o����6�A�xW'|�ך>��_�
��ܕ���˳�p�3`�0����r��aI��������zŽ�v
܆���
�
+=�$<��!�"(���?��~�����
��=�
����1\��?Ma��4��\?�1�E��\�b�_s�9̚���i�C
�>���~�X��k A2�f9��5�X-t�M^��ITo>;���Q��>��2Ƽ3��(b=���
]�r�N9n���#g̻'�L�j�-�덇\)�T~1{�|%�.��6�T����V
j�ɯ#t�%(���ٌ% ��D��D��Pu�?�gG��ҩ�D������L���
|�����'b��1��/��Wă�p��Q1x������Q]���X瞠�M�oWoh�r5�|��\n3�#�)��Hr��C#9�P6���v��7�ke�R�X��ѧ���q�ic����?�
���~
���N��Pf���H��
rw�����l�O�
O'��Ym���=���}��
+��q���<��v�T�기�Ă
mȋ�F���W��x�*&��S<9��&i�r��s���b?��en��»��~
+��NP{.<.;���
����=
����\x\v��s�=�Px\v��Mjo��
�9v���Uhi���
$�v �
+�{_�����j��A�v���Dͱ��mKG�ӂ��
�X(�
�v�n�a����^
� 6V
��Jt�)[���*�*ŕ>���
+���BI�e�Ѩ�
��˔3�3|� 4��! &�#��0�9��Mp��k
��'��:��
�~X
� ��}���T�]`7��
�b0���͵��<��Qӑ���w@/1�>6 h���W�L�:���v�yX�1�RI�dU�/9%�
.ڑUW2
tp����W��&7YfLc.�d���$Bo�p_�M��JV���[����e���w
�)�j�|���Lk�c/��\
��p"ڒ�o���$�m�q<�1�0N����J���O
+���$,��IX�%a{
+�p��7���7�]�$H_�G
���7�̵f�J=
�
,
�bKC۠D���uPr�p`����l"��
`�L�A:�6�OK/aă�w%����~���TN��[�f���jSoԶ��b
Ll5|�p܆;��`2�`�q�
R�+7VCV�4�41Pn�&~ �����ݷ��2 ������क������e��
��#��D�T�o�H�7Y��90�Kb�M �
��\0�ە���v
C�ծ+v�0!
Cڈ1�
��?ߡtxv�gM�lRvmd�
���A���2��N�A広���D���6��F�6��]�\��Gu�ř0���.md� #SA�ng��AM[��V�s��
�qRrW'KM��apѡ��f�tE���OҒ�Zj�P��;�����,a!��$3)�H~�@O���ze.R�t�X�U�m��MsVX�
u����z�#�p�!
+M�56[���Y���
!�M�.��� #>��W�
-�,Vq,��k�y�e3\�od�q�R�;�f֦�21�,I�V��q(�J
�-/ƴ��/*k)9u2j)M���!�{Ӷ��S�x
�O�
m
�HPR��U�_���,�E�#]U�*�E�,6n�RZ���\��g�Z
8%��u at P�R�+9� �k�<���Oh�=2w�t|9�*bI5��lր�T9
��U�O�b�1�Y�\2�T�RT���_�h^����h)�jӅ����QԐ5� 'ѿ_�?WD�����h����=@_���9T?wɪ�A@äL}-
+b�:�"3��X�:������
���z_�.\���M߆b�̉�nCe�KC�*��cjѩ�?�P��c��Fs討���mB������"+w����ZU� j�����f��!W��~�a��;��"��H���c� 2Qv���Hօ��<�9? 5���j�������pYB<e:���x�I����Z�J�����B $�
��8 �.�;�����F at G�30>Y�������S�Iӗ)�u/�.�h����e��w�_�T�s_`�g����tmŰ�y�~��sډ����?�� ���+��� <��N�V1k
'�p���������r�����O�$���{��H����ԗ�U�}�.�5��
+
�
r��n��U_JNJ�/�bZ]ۘ��j����|�t�ňs�n5P��)�c� i3x8Ƒ��v$��G�K���;#
��1}^��`�xH��ƋU�x�
�
��R ;�VUvJ��f�pY��n���c|n6�*�+Z�F�4��g`+�M->�X�m0�TU��g9YH��R}�RW�>J
I
+F��(�*�T7�E0
+�,>=
�._����^ե�3����O
'�#)��gD' �(��X-D-3k�f�Q�N����
�
���c ��&�Ā�õ�
px����0� �
�?� S�|�6=�t7�j
Р_��ñ
�mVV*L\��O����7o�
p49_~��C� �|x0@']����xc�f������Mm����xj�OH�ի
uܭ��'�8R.>�*z�E'����VÓwX�A����i8ߓ�|� ������2�C9�#N-�WΆ�bc0���ňmf��x���B��^�o�wu���2;>U���m�]'�*
?05���l\�SJIؐx���
���%l
�)nЦ7�+�'��Z�Q ���3��G�~6U.����BZ:�
����'�~^
��d4�����r����o#�v��`;�c��8
J�t
����=7V9;�@�X�Q<��\�/Ϋ7�Ź����Ӵ�oXA��3"Qa
+oG�P�ɍ��Nh�� ��ж��4t66�C���, at N��o��xh �c���Հ�������� Cꌗ I�(-b_�R��gC��B�Ji����Ï�+7��S�0��]��뮷
`2���Q�$�'M��#�F�&�J��B$Y����i��6e�?
x������V�"�Ht,`�ҵ������M���ban���b�f�T7┅S�
�qW�c3T�,�!��#�I�8+m�[w|S��|�RzK
%p�G�
#�Lz~�sΰٶ�&֞o�,�]��1
���)�}[!r6õ���o6�B�9�ѦF�~(
��z��v
%~��t�pDp�(��}�%�
"�J�}�
+�P��
0�.��S@'��������#@,�!�Ә�|� ��_�ϯJx�sqH 2d!����U�q��N˛Â<�|�d�feB�xq��*��xR�`�H���뵂u~���K
ݧ�[f�\�8�D��#�$���<�4pT�.|�S�T�5*
��rX�kT�XJIU�*��
�D�j"|���� [g���p��,���pj�����{�3%E��7.�&�0�Tn��!�f�Hb�OԖ�_:��Ā���
o���o���
_�)[B�7����'0�����8�
+VF
+h�A���l�\��喱�9"
S�w��#)�Yh
�ųI�Z�2��d��=�
+���*X���e�)�l&^R})9����sGr���*۪��J
�K�(���7���z�i8F��d��hI�l,f9p
� �鐃t��r��zk ��!��!Y��O=�3�@5�E$ �,bwU�J`��Cv3(�S��Q(���+�WJ�-��m�65�
;�s�!��w���oP�
+����B�b������*�������@���D�4����2��K���ڊac��)�ocӛv"����4���b�2.3\k�r�#�=ފU^���Hgp����`�-8�oVo;ޝ�r��Z�4Fzi�.��U��+4��{��K��B�4+Dۺݬ�=^P�����j,�c�:^d�&\�C,��C|[G�S~@��c��,�p�
*[i
�O�u��6�"���.2C�E���m���kbQx#�Q�ϽĶ� ES
.a�b����
i�C�=L�
���Il�@-�N<��\�V�j��y�
�����/��>�J��X~ض��
��n��)�����
+N��ȣ�oL#�EX��s N|ۓ ��k���3��1�dDM����/B@�@D�`ح,�y��I��A�e��%�XI�>���W����M@�Pnf��[�`1$@�фT����M
�
+����f��j����|'���L<
��.�'Χ���U�<}ِ
A�w>s� ��O2X�dS�%��$0ŀ��!C҇:����PٛU�#yJ�h$��QٳYF)
�p�S|*��1mAw�;�]��
�TÈ!܊��rþ���q]�&��?C眇�K^-��`�����e���t�H
�ʛڢ&
�;\����59Tz�JR0rq�i21Ϣq8U��c����a�EG%}��74��9�
3�Йc��#*9�1�D�؞
+����`�Qۥ����7'� m�Y�1#rb��m���\�b��k!�I�E����ޙε=��(�5��$:
�3�D�.���cAm\�O?��=��w����xhe
+�Xb��K at 5��Zy���g�#���)q��ݔ�vd�"fF���ί���@i6 �A��)���<?�����8�F}��X�ħ�P%�TY-�\�d!X���"�hR���hhu�v�
��c�ʺ��/�?tT�@�0
a&L
+�Ѐ���
+Ȱ��t��:�dP[��^��d%9I��v���MT���w�'XK��I{Ű��R^��X
)%�� �������
��"\�x�Z��hlRb�3.
�ՈOII��/r���
+l8���\;QK��邅5s�v����"V�=4��ο�:�~�V�2_Pg��%CK�s)A��
+�
��8E�6�w�S��U�Iuh5{�3U(4
eym �%`�����Y~\�i$;�g�,m
ɢ
Y�v%��qG�*0t[��%�����xl��K�W�
�Ar>�ㄷm�e��=��p�u�KY����O�A�0�ś�Ddw����B�3�Y����?���ِ �#��c>��
�堳�5����P���fC���[���B���{�o���-�*���\(5�f�$��=((�ۅ�_���yP���Az�$�R�:�q
+֝���҅��]%�����h�.T�H��V���A���=(��Tǃz��Bɢ4��A���_�TUs,)�(�$牞p
2��3��=��s߀�f� �4�F �����%<jq��/�8@Ό2gz��������o��hD�
R�����L��� 1���SPLwe1l\X��X��U�.�
9�vІ
���b�����u��8Pu��kY�HJd9S��)�{����x��al=ӽ���f���S^�w2J���C
-���
+j��0�Y�Q��3#�|k^����y���r�Xi��
[������c8:�6"�>t��W�j���&!"xU�?�X*�<�W,�U�8d��)�}��`V��ww���#���Z��ު�ÃA)zђ|��:�,�{=�� �D���"�6���@N���c2��W��ȋF��Xv�����
�NUɽn{���`
5b�3�ށ���g�4���(���f'c�S��0�9k���c&#f:�s�
R���a�*�y
A��a���f[%�
*����C7�*�B��>y�1�C
�#N�(��2� �
;$l�&Gn�����J��oBĔ��d��p�eb�2�c^��(OS�����)�J�gG,��]��?�mQK��������T��8��8)Zq�Z�*7�Y��X��9V>��j!�F�}pU�_�N �0��i����
�YS�^ ����#3��^3�0�U�$��X3U
�2����<L@��4��$��������խbݍ
d͈n�լ�k`��w(�umr����z��z�Ř_
��f�%~w�"�||�V�lȹ�(Q�<�${�{
��0V�=LU�n�9_2txZM��-y�<�O.ʓ
o��i쳇�g��S�
�=
� ��d������6¸��D��&O��A�-Ĩ���"��F"ܮ��܈���,H�%h�c
+��w �$,��B'�P��5�:�D��u�:0Kl���ƀ��%�B��Qq/uP�X�R��r�w�P�Ȭ�!'VW
��f�-J;+#r����T�
�/u��nzR�R:"$�����/'k[��b ��Įd�:s����XB ���1��>�,v��������9�ȹ��v��My�X�,�97������#�C�]��x������9�a��@`�d�տ���}�˄�������R�z
��+i�j�;�B�*��'<>��d)q�c�.zENT.4�w~��� ����� %Nʛ�O]��<���H�r�����'�F���)�7�p����ܿ)�s�{�z�)�����]
�PpT�|���e�K���=. NOp5��c�ւ]��
��bp���tu l��8[Y
�q��
�z����됒�?ݏ��D�G �g�}Ļ�lU(V
�
P�Y�WD��L���g[�
�"�?ʡR�W��
���y
������5�
�*�4N����[�Gnz5ʒk`t
g�sy ��f�'����R���w�m�
5
�v�̆% fSA�1a6;�9�
�Q$RΨ�U�d��d��jHT�i��j+`(f*\��أa�^�ԥi���3Y�WI&Cn��oJl�')ё�~[�U<���#vWUv��B��;�
c�m�&��I
C�68$����'����6�&�����PK4kK���E��MO��&��_�ޓ����D9�
K��!B= u���!L���[�D�S\M5��� �~�
h
"�^f�9ʕ�;-�'�E/>/q\
���)7�2�і
һҰ�w�u
t�N��C���^+/ťw��fS�^8W�)�n�uZD���^�s� w�Z�0�$�##�-
�i����X���^r��J?��<��ke�C��/)�����6̗no��D��VX�U���#�+ޢ�ֆ�qoΘq�����I�g�C{����(�"s�0
+s��S��c2�VΞ
��]��#�e~��B�7��L5�Ҁ�%
�q
^���
+��X
��9Re=���N���U��w˖
�0{��
���2
¶�k���O��0�Z���#�Ŝ�qh�.Ej�mR�G��,�A���&���y8��H������_gݲma[�
֥Kn�J�@�}�����2e����w"���V��}��:��t�����^�[�;M� ���$tg����
���(*2�Q����ٿ�N�� Q3cr�$7��[��*U���� �������0h
��O^Qz��p�Ҧ�*h|�E�T
z�̩�B-�`&��c&jU�5��'똦S�T9��,��'��h|��w�fÎ^v:���
�۵�pE�+m~C�C|���혠b��!��� �)�� y4�=�w��q��jQ�
+!���r\��|)7�m�w����|��мb�Y;�����&�N��vwڨ�ӛ$lNC�Ӗ�N&��k`qr
�<=�:�M�7���/ד���GP�
+?s.E��
�<8% 6��3�`E�}2��0q�D���C �5�H�<�0`�
+c!*\S*�$��H�8b��6H
��z>�E� ��vG~`��o\��
e���I@��X
P� �{ם��
~'��M��{�w
��'1�� ��7������.���c7~�g�$%����~͍��$� >0q8W�Ǡ�
\� j�Ա2�gg~���8����n�햓��7�J_�0�S(�rx/"����&Dcq%r���R<�����v�b[4qi% ������Wr��Pq:H���J~S���5f*��a�z�E��5�q��9UзW���d���ȫ�âPuB1�T��� �
+�0]�����t��4 ~V&vc#�R��t
��F����Ɔ����XҌ�X�W?�0\�bn`C)�
��\>��8����w9�/�{,|���*�v��ʗ2�[YT>��|�?,\]��OU�8qQ���M?+�co��2\��=��W�ϧW�]���S���o�t6@�]��Q���m�-aGe�^ӽ��
�
�a����#7�m6��9
��n�
+{�Ym��m�Lg[a���ա4�/�d�3��#nY|�*w�����������v��#(�%��K"vX�av�g�}��?P�C����5�$�I at n�j��DS� {�mH��ެ�bq�f�Ot�#�E"b�xw�w�7�l{�c������)�w��a��P�N�� �*/�̓]�������K��ݟ�Ʒ͉0����G�`˵��:1E�����}:"P����\�G�q���*��Ś1����/�����[�n��v�p�����J�Q��Rc��]
o,[<T�+�����:)�U��`��L�Ǡ����c��~"W��=k�&ܞU��N�
�Y��Kc�
1;gB��W��
�s������������&:$�m����YG��FGy�&��/>����
+��Ji_��{�ƅl�M�;D�
�sz\$W�_�t�T�W��:A�>{ͫ��z�l���Z��N�X���)
+L��G�(4;2�Y��ד[2�d���ĎB� |~���U~�?���r�Ȑ���s�
��6�}^�����T�w�72�F� ����۵�Nu2c��
����ʏ���)aՠv����U�
+�|��ȥz�p,��75wr�
.8
�h�~��z�-=��_���a��#Ҳ�,6mc��@��!s�;^��U*��)Z���il-<!���������2ۇ*`�u8���-I�Rau�����{�Q������B�����,0:�^�nк��J8��C����
V�jpc�u#��
�s��T�TW���]wt�4�
�����:�l��r������
��jx$�fa
0�H(�
+�O~K/�#�
�'�N�%��5�f
.����(�Ν_��-y���(�Ih�_�$W����yK� ���]V��-� �
+2s��z�$|�t,
�=�����1�ZA�m8z.L]���A�JX*�c#͉� ytS�,��Y�b�&V
�19�
+ M�͠{�C�-���4
�dc��6�
�tt�c�T�{�54���*(l!M�ɱ�t,t��
Z�!�"�$R���Y�R4
��C��jY���&Xȡ�B���r
a!�B
�C�
-��6���3(��a����B5G�E-Z������Ͷ!|
rO3ME��t��C����)v
1B���U���k�&^ ��
�� zA˅��R0|���8UK�ؿ�<*��
q�l|P=x��f�״� qz�l
�"8ؑ!�t��g�ٽ;�Wm2�5me
,,
��bnz�C�F�1j#�6�웶:aN��V
](f-�<ü�1�>�&�]SW&|h
��C��!�g���]�2�=m�ƘY�*�&R� GS0Fz���q
~.T����S�!�(6�
����`��g�}�
�/�JYm��F^@U5���
�Fػq>&Q*S���t5]d
+w���C��b�!ƻ*e�m�������p�3�&��x�ߺ�������Dh����CY��us�<L R��P[ lз���AA��^�79�[K�Y�R�,��j���Hx� 7���eM!u͢�a'����Hv�7��ze�}�Z9�![f���P�n�w��$Je�y�:E�Y[%��
F��&p���8?��5��5���0Q��
+�X��O���q~&�+��S�*̌P��F
����
Kt�G�q(�����dE
��
�C0�*��5=���q~&Q+c
+ik�Q 5=*
B�]9$
0S8�1kI4˜B�E��Q�
+pcC�md���17���eM!}�"�0̧��CXU��
2w�an��I4˘B�E�aM�v�
ª��V� s�|M�Y�R�,��(�)s#�F!'|̍�5�fYSH]�(;B�
+��>�U�K��Sč�1�V���\� a z��
+E��a���;��ȂE��Rc5Z?�<�#�Eّ�ԡ����m%!����H*M �q� P�������Vg
��FP�L�
��ؑo"���,������B^����"�صh�͛���rY�-9|`
ǝM�吝�e�����#�
e;n��p�p)u�s!/���YI2��}U.!,AA:q�C�`��|.�e�����;���
�7K�˹�p+u�s!/���Y ��'Ц
+��nj��ф��
�Vg>W�2F���EG� �
�%���x��~�
�}"
endstream
endobj
33 0 obj
<</Filter[/FlateDecode]/Length 1317>>stream
+H����j�6ş@��/�����V�)�]
l�l�|+q�)ʤ�
�ݷ��ؒ�k���D�9�u�X���d�r�T'TO
g��$hcO�`�ۑ? �~����_~�o���8e}�y{�3��S12��PnG
+NP�=aTs���URI)�l0|V
�0��{��
0�s�#�|��I���� �ׂٜ�Z#��
���T�1�,Hs�Ql�cIV�JW�(�L)��q1��$����[��{�n��Ԯx��
�6)���N�� If�(W�ʠ��lEi�F���`�4�f�%�4�1��E�9�%�5F���`-�{ɽy�L-\��Y�W��ճ�d �3x)�͊`�$�@��_��ʠٜς�Z#T�
�9�2�n�^��5�7�`�k6� ���3Ct <h�L�{I(xksd�k6�$���3�t <
+�%I@�c��^�9���F���s�fs(�m0��E�9�y�,_?+�H��C��n�^�Gn�)�T�T���s�d�D1 �2�_�����pMb�k6� ���3��0g�[�
�x5�5����̚#T�
�9�w�A�l�I.��j�k6� ���3��D ��� q�Z�K#�X4��Z�Yc��a: �
w�A��μ}��K6� �� ���lw�
s�����3
,���,ȫ-@��F|8Qp�E�r������Cp�H6�$�� ���l�
�X�)ɰ�8,<[�y����p�n��
d���_�⹊�j
P=/��p��g�²�#z/ٜǂ����Ӑ
IԠp��JlBo��JRjT�zF�
PG�9�x)Z���h�o=$��z^��C��
�C�l�cAV���i�
<�i�/�� ���+ɩY��9a�g���
p�j�ns�
+rjW�vN.�jp�$���c�E�9��Ϊ1@��
>bh���7Hk˼:-s�gI^M���@D��¼���1�����/�n/��(�� ���l�
'Q��)��l�gA^m���
�;� E�Cp�>[�y�8E]7
��
�:=��
4��[%)F*�rj�/
��̵#��Gr ��}�}w��\��r�a�r�~��w�i������0�?O���������r�꿋��]ws8?�����tx�'rI������o^A4� _Y����Ӓ�&�j�>>fa]twa�=e��hX��qBhj$��u\��q�ь>D���qwD�
Gy��BX�wD�=�-��Z�h�V�\4n��q�7Q�����}�r��d�м�ؼ�ye������V�������oސ��_��Ӈ���NG�x��3u����?O����t�ZSw����)p�~u���;� ���(
endstream
endobj
15 0 obj
[14 0 R]
endobj
34 0 obj
<</CreationDate(D:20130908202829Z)/Creator(R)/ModDate(D:20130908203031-07'00')/Producer(R 3.0.1)/Title(R Graphics Output)>>
endobj
xref
0 35
0000000000 65535 f
+0000000000 00000 f
+0000000016 00000 n
+0000016606 00000 n
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000016679 00000 n
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000019305 00000 n
+0000019490 00000 n
+0000000148 00000 n
+0000019118 00000 n
+0000078305 00000 n
+0000017024 00000 n
+0000030907 00000 n
+0000030794 00000 n
+0000018161 00000 n
+0000018557 00000 n
+0000018605 00000 n
+0000019189 00000 n
+0000019220 00000 n
+0000026300 00000 n
+0000019883 00000 n
+0000020157 00000 n
+0000026561 00000 n
+0000030981 00000 n
+0000031189 00000 n
+0000032205 00000 n
+0000047186 00000 n
+0000060496 00000 n
+0000076916 00000 n
+0000078330 00000 n
+trailer
<</Size 35/Root 2 0 R/Info 34 0 R/ID[<A24C3851F4684087B762BDE8A0E772F0><A24C3851F4684087B762BDE8A0E772F0>]>>
startxref
78470
%%EOF
diff --git a/docs/assets/reference/statistics/reference_bedmap_mapref.pdf.ref1.pdf b/docs/assets/reference/statistics/reference_bedmap_mapref.pdf.ref1.pdf
new file mode 100644
index 0000000..738d5d6
--- /dev/null
+++ b/docs/assets/reference/statistics/reference_bedmap_mapref.pdf.ref1.pdf
@@ -0,0 +1,377 @@
+%PDF-1.5
%����
+2 0 obj
<</Metadata 14 0 R/OCProperties<</D<</ON[15 0 R]/Order 16 0 R/RBGroups[]>>/OCGs[15 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
14 0 obj
<</Length 19969/Subtype/XML/Type/Metadata>>stream
+<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060 61.134777, 2010/02/12-17:32:00 ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <rdf:Description rdf:about=""
+ xmlns:xmp="http://ns.adobe.com/xap/1.0/"
+ xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/">
+ <xmp:CreateDate>2013-09-08T20:28:29</xmp:CreateDate>
+ <xmp:CreatorTool>R</xmp:CreatorTool>
+ <xmp:ModifyDate>2013-09-08T20:33:36-07:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2013-09-08T20:33:36-07:00</xmp:MetadataDate>
+ <xmp:Thumbnails>
+ <rdf:Alt>
+ <rdf:li rdf:parseType="Resource">
+ <xmpGImg:width>256</xmpGImg:width>
+ <xmpGImg:height>160</xmpGImg:height>
+ <xmpGImg:format>JPEG</xmpGImg:format>
+ <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAoAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQV [...]
+ </rdf:li>
+ </rdf:Alt>
+ </xmp:Thumbnails>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
+ <pdf:Producer>R 3.0.1</pdf:Producer>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <dc:format>application/pdf</dc:format>
+ <dc:title>
+ <rdf:Alt>
+ <rdf:li xml:lang="x-default">R Graphics Output</rdf:li>
+ </rdf:Alt>
+ </dc:title>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/"
+ xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#"
+ xmlns:stFnt="http://ns.adobe.com/xap/1.0/sType/Font#"
+ xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/">
+ <xmpTPg:NPages>1</xmpTPg:NPages>
+ <xmpTPg:HasVisibleTransparency>False</xmpTPg:HasVisibleTransparency>
+ <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint>
+ <xmpTPg:MaxPageSize rdf:parseType="Resource">
+ <stDim:w>8.000000</stDim:w>
+ <stDim:h>5.000000</stDim:h>
+ <stDim:unit>Inches</stDim:unit>
+ </xmpTPg:MaxPageSize>
+ <xmpTPg:Fonts>
+ <rdf:Bag>
+ <rdf:li rdf:parseType="Resource">
+ <stFnt:fontName>AvenirNext-Regular</stFnt:fontName>
+ <stFnt:fontFamily>Avenir Next</stFnt:fontFamily>
+ <stFnt:fontFace>Regular</stFnt:fontFace>
+ <stFnt:fontType>TrueType</stFnt:fontType>
+ <stFnt:versionString>8.0d2e1</stFnt:versionString>
+ <stFnt:composite>False</stFnt:composite>
+ <stFnt:fontFileName>Avenir Next.ttc</stFnt:fontFileName>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stFnt:fontName>AvenirNext-DemiBold</stFnt:fontName>
+ <stFnt:fontFamily>Avenir Next</stFnt:fontFamily>
+ <stFnt:fontFace>Demi Bold</stFnt:fontFace>
+ <stFnt:fontType>TrueType</stFnt:fontType>
+ <stFnt:versionString>8.0d2e1</stFnt:versionString>
+ <stFnt:composite>False</stFnt:composite>
+ <stFnt:fontFileName>Avenir Next.ttc</stFnt:fontFileName>
+ </rdf:li>
+ </rdf:Bag>
+ </xmpTPg:Fonts>
+ <xmpTPg:PlateNames>
+ <rdf:Seq>
+ <rdf:li>Cyan</rdf:li>
+ <rdf:li>Magenta</rdf:li>
+ <rdf:li>Yellow</rdf:li>
+ <rdf:li>Black</rdf:li>
+ </rdf:Seq>
+ </xmpTPg:PlateNames>
+ <xmpTPg:SwatchGroups>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:groupName>Default Swatch Group</xmpG:groupName>
+ <xmpG:groupType>0</xmpG:groupType>
+ </rdf:li>
+ </rdf:Seq>
+ </xmpTPg:SwatchGroups>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/">
+ <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass>
+ <xmpMM:DocumentID>uuid:d8155e27-4160-2a4e-b66c-002dbe781a88</xmpMM:DocumentID>
+ <xmpMM:InstanceID>uuid:1a95d9d8-6aa4-eb4d-8391-b51482ef3e30</xmpMM:InstanceID>
+ </rdf:Description>
+ </rdf:RDF>
+</x:xmpmeta>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<?xpacket end="w"?>
endstream
endobj
3 0 obj
<</Count 1/Kids[7 0 R]/MediaBox[0 0 576 360]/Type/Pages>>
endobj
7 0 obj
<</ArtBox[0.0 0.0 576.0 360.0]/BleedBox[0.0 0.0 576.0 360.0]/Contents 17 0 R/LastModified(D:20130908203336-07'00')/Parent 3 0 R/PieceInfo<</Illustrator 18 0 R>>/Resources<</ExtGState<</GS0 19 0 R>>/Font<</C2_0 13 0 R/TT0 11 0 R/TT1 12 0 R>>/ProcSet[/PDF/Text]/Properties<</MC0 15 0 R>>>>/Thumb 20 0 R/TrimBox[0.0 0.0 576.0 360.0]/Type/Page>>
endobj
17 0 obj
<</Filter/FlateDecode/Length 1155>>stream
+H��WMoG
�ﯘcz��|E�S��"��
#q��S E�}wg���T��B0���7�p
�G����9}�"sv�2�{�N/.��<dȄ��d
��O�}�꽹�f�.���x��ϯ�_{9�
�����|�)��m�&��Y�gS�7ݷ �9����"
���x�{�4
6�,acěș�c��CuM����������0�u\�1�&4�ћHJ6�
n��O�<k�'u��r�,�m�_��܋( �8����`�;(O��-����x�s�I��.�Y�?�������^C"�5&Y*��+c7�
�
+IK�cmŲ�nV����6�=S��/�h�X��&�ĊM�hVvc�
�;�f;� �"�����̖[pV�!X���(
o
X:�`�
s2����:�$i=N Ħ���
�:�8kE����E�X
+2B
�R�ۀ�6��օ��I˞K6͠s
{������E
++���[������6I-���T,f0��Veђ�����X7���� ]?S��PW�������D�:oE&�!1-��1C��
j}p��ܗ ;�sB!�}
�s�h��Q��(�p����UYmkTKmF!`-���:G��uLpf4�L��xf)��� ��3����b�A��s�%ݰ�*
+խ'g}�Wo��{
7��9u4.Zҋ�X\�wܱ�UB�r�!�`Ɛ����,{�����L�v�4���-[�
�A
u6l��� 1�[X �x3Z���7��*��
+�&��L��m�N
�8`��8`��8`��<`�ֻ������v� �i��K=�^�B#8rf};���_�U�8z����U�_�oQ\����x5�|�+�wý��1�=�T�Ç�A�����u�
��X���`5Q��w��
��
�3`�c)A���dF�~���K�@5���Ѕ�6@Ʒ�
�z2�XE%0Q#�0�~
rT�v��LWM�"BT�=�1�ߧ�'ׂ�)`1:]�+*;�TP�[^>]�����!G4�}2}{�������NF_�
�Y�$�A�b�����z_��Ս�x}������U���jze4?�����3F�^OW�G%M�O���HV�8"�qǩC��\�O�^���
*��l�S_�#0�و��~��h�7M�i���=�߬�� ��R{
endstream
endobj
20 0 obj
<</BitsPerComponent 8/ColorSpace 21 0 R/Filter[/ASCII85Decode/FlateDecode]/Height 45/Length 258/Width 72>>stream
+8;YQVd1(a_$pufsqfJIbVsAl_.h[rr%[TPmihIYB&!p>hrda>r2)d6B?t]0$25dT@
+5EDIr?TO4i4=j"bM&YkFMu*G>rfUGYTHYHF%r.J602>iS,+^ahZgHOKnblQ1&+p/\
+am_gY_.CV?cI;g0'BKT#4NeE4nB6&(jZLQ:-23uB&'pR8Qe%K!U[V2'h$1ZI,k,KA
+4K8D-IEeZ_cGR?T at 5N035r=[!R#)=K4"_18b4AT3b+BK.r-B/p*<7sVpj2~>
endstream
endobj
21 0 obj
[/Indexed/DeviceRGB 255 22 0 R]
endobj
22 0 obj
<</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
+8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0
+b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup`
+E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn
+6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1
+VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH<
+PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O(
+l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
endstream
endobj
15 0 obj
<</Intent 23 0 R/Name(Layer 1)/Type/OCG/Usage 24 0 R>>
endobj
23 0 obj
[/View/Design]
endobj
24 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 15.0)/Subtype/Artwork>>>>
endobj
13 0 obj
<</BaseFont/PPDNXW+AvenirNext-DemiBold/DescendantFonts 25 0 R/Encoding/Identity-H/Subtype/Type0/ToUnicode 26 0 R/Type/Font>>
endobj
11 0 obj
<</BaseFont/PPDNXW+AvenirNext-Regular/Encoding/WinAnsiEncoding/FirstChar 48/FontDescriptor 27 0 R/LastChar 53/Subtype/TrueType/Type/Font/Widths[580 580 580 580 0 580]>>
endobj
12 0 obj
<</BaseFont/PPDNXW+AvenirNext-DemiBold/Encoding/WinAnsiEncoding/FirstChar 32/FontDescriptor 28 0 R/LastChar 121/Subtype/TrueType/Type/Font/Widths[250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 764 0 0 0 0 282 0 0 0 0 780 0 0 0 0 574 568 0 0 0 0 0 0 0 0 0 0 0 0 550 0 0 634 574 0 632 584 268 0 0 0 0 582 610 633 0 364 444 340 0 0 0 0 513]>>
endobj
28 0 obj
<</Ascent 957/CapHeight 708/Descent -250/Flags 32/FontBBox[-214 -250 1192 957]/FontFamily(Avenir Next Demi Bold)/FontFile2 29 0 R/FontName/PPDNXW+AvenirNext-DemiBold/FontStretch/Normal/FontWeight 700/ItalicAngle 0/StemV 120/Type/FontDescriptor/XHeight 480>>
endobj
29 0 obj
<</Filter/FlateDecode/Length 5696/Length1 11171>>stream
+H��V}T���ݛ����M^�TH $$E
+
+~ �b�����
+���ڕҭ�[j]�uk�f{��uݚv]
j��<��Ύǿv�
l;���m��l��y�Dt��_��K��������Ͻ` r0
z{�j��5/<I�kԇ����Y�� kT�m=0)
+����;�/��>�
����ٷ}���"W�t
+P��w���9�-@����v��p^M��4��1>y�w��� ���=[�����( � �|�`Hhb���zqbx|�L�/�_%{���웜��s�J����췀�
+?��H����0i�$�u�A�\���r���^�+�j���{ "�6W}2�"�� � ���9�)�Ds"p0�=ŏ$n��g)������N6��ݒ_�h�4���
d"
dS�r��|h�C�Z�"P��2�Ä
+��
$T�
+�x �P�j8�D
j�B
E��zx�
h�b,A����X��hC;:����J��j�A7zЋ�X�>���c#b6�!
`c�d��x_ų�:^�k�.N�u|��I���4���~��Ə�������9��
�{1�Q�� �;a��\|�b����a!l��V����5l7v�l�pOb+&�N������8
RL���x��|��zX[�z�Z̰G�!�6�6���~v�mģl
��6����xa|
��
�7�M6��p
�+��ZY'
am��u��b+�2�hE1i�,�)�l�U3?�N�������_W��zCu^uQԋ��I��6�%.��7�f��f��p�ڒg�Y
+-�����i��Zu���#q�'
+[r(��Y
kd� �������^ �e���7~���K�G�����L�4q1�A����u���C����Oğ�?7�d�a�?���U�Y�Jfߙ]=�<�d�>6
���6��b��5�֘5��|t2�ݬH�~�����o�WG(_��D>
�Y����EǪ(2{o3v4e��Q����9S=<茂9D�}�-h�
��2��r�
��c]@
+�a1�5;�
�#�����h8X+F�����HKи ��� G�q'
$��)��
+�iQ�c�Q�zk��6c��-h4������@�b��
�*������Xq��t�Y]EBF�/i1F
��#�
���a�#5���}
+��-)EBFTYۣl�W����FY!�%3�l��3
���d�9�T�%U>~��DE�]Q8j�(��ȏ�v�z�
U4�&i�g�zɒ���VB�>GJF�N��I�:��SX�����߬���$�:���<�B�:��
+
Z��Q�}���i��Y���©v����:JlV����vy
��/߯m(�)��
+���uOFg�&�+�
��Q>����N�B��&�EQJ�託�? PۚI��Ѭ����
+�� -"��H#�@R�⨚>2^������q�"��
L)4�Busp�N;O}j �UW�q�x�>�S�q7so}
I����GB
�#�?����v�l��*��x�ф�?عzȧ�/R.
��&_T�='��B���e�͑��J�SS�R�)��/��F�M�PQ�^��煔�
��|���Q�e�Z�>�ȒY��,y@�
���,�'%�F�ђ�L"[O�.>u|>�e�op]��K��2�7x.�
]�F�#[%�>��I�;��dm���AD͠�5��PR(��(�%Z�DKJ�%�P�x�%��B�/x��v��AV����c%��3H(�� ��m@��6%��I0P�S�S\utH�\���L*�
��f���\$)b�������}���Qi�Kn��k���c�����M���j��RG�Yl�ή�o�"�*�4ki��X��)��o��P�q���Ҕ��ˬF�&��f����)�ْ�"�'^�����*�~���� ��2d�
Ĵ+�M�k.�L^��]W�x��D��\^l����]���8
+�;��.�\�L�3e�=��Y2-&"����,�Ӝ�N��i����J
+����-��D��Y���.7+dE��8G8F�3����&�;�sP�
��9h��J�
�U%
+�R4�
tD
�@���*�R�k���{���d�����e{U�^O��^i����V���мh����U���_e^�)��e��(Oj��X4��j��e�U.��Q��¨5䪗5*�:�)w�d���O�L`�.)�L�)P�+�
+�$YsE�cI}!��f�jcۺ��9��#q����w��8��v⬎�KҤ� ��/�[K�t!E��P�6�La�N�@��TڟMH?��j ?����L�aD�&i
�*ۨ���=�^�I��D��s�9����}���'X1Xl$�>�h�
�Q�
�Q��ӆ!�ڣ��__Wve3����dc$�
>L�[��ȼ�����>���%�c ���5\�nH�� ƞ��W'�S�3�US�x���z�?<���3��O�����b���Z��Y�yC17?��V|�
,7�7��2� �)
��*�U
�� M0%*tN�=ݙֽad�^�˷!
&��� �PG��,��-9;���-H��
; ��E:Lu���`
��\"�p��ܙ�0�vt�Ưx�D�!?Ϸ~$�ٱ��L���.M�]��V��
���P�8��U�=��X)9�J̮鳫�b>������O��<��_e��o�B
��s
(h�#��
�
�P`5yh�F]B���ۓ��QL�`��:M��@_e3;��:u軩���0�I��^
O/��O/���oRb�Z�U
W1\�p�$h�U�>(������O�x
&V�T��
q�
;{
+ք� �śr�CAR���9���<H��6��՚��q
�'�s���S#�u��
�W?5=��>Y���������աT-d����Cs_:�w4u5�G�Si]��
���Y���'"���D��Zr�1Θ߆|g?&��X�F�
�kL�=!<��lݍD�;t���J
���3�2)
@� T@��P��<�FZ��I���3
+�2_
+4
��H��ͦp�G���Rf�/�'8���2���������D��xNY���������:Wm%�Q�G]�K��g.� �K\ش�M;��yϺ�r�ʽ7m���x�(�Q{�4��R*52�J��!��D��LJF얱!���
�6خ�SBl�"(O3���`n�����t�����n�Q8UK0*�Z�Q�
�T�MkV!�Q!�Q�`hq�Yw��ø+��O
�Ѻ� �|���7�f�]��L$��D�>6s}
ب��5�eF��o�ghX��j�fV*T[�v�J_P# j@���H4(�ѳ�.����5.Q+�D�q�XP�8��>Jn�
+t �)
H�
3��
��qB�
Kk���R��p6��8-{r�`:}pur��|6;v�N�xy"
o���(�2r�a`������$j��
�O�;�U�|�$�Q�_�M�ۊ� j'�m�#�m��^*�t�����fqM�4�k��A
j��i��i�&�&�)�`�w
+'aX�0
� �h,*8�t"�͡���-r�QyC�Mk��c3���Gâ�/�V��|"��-���V
��ֆ����a���7q P�0��>ԭ����%�^�����uwRv�?)S���&�P8h^� �gD`y��s��=�}q�y�8��yEhŲg�E{�n
+�鶑4o�
�Ȍ�GJ��9 9$��I, �%A���ZK�T��
��q'�\6ʴ��
�-����b8f�#z�@����
�@�^��l�e�o"��U#�T�Pn�����l�3�o4��H���
?��k�d$
�
��zy:�/dWb�Oȧ�<59:�ߟHg$?�և|Q|�\6�B���3*X!Oj
N��]8�JY����ҹa�M��6�p
7�p
������A�Z�vu #
V�ڙ�ʉo4��;�g�cS��g���
����`eZߤ}1�#�7��� �+c���:����~��"n�Y��ݿ��WU�+�JW,���=ӣ'�ޤ�����@Og�|��k���S6�W���26�Wم��?��w�?,�ܢ#����|�������*�
�ה_�Wf$�+���KP��}���|Oן(�D~�|��� v��`��1V묠����=6�c�_ai�,���+l��X�ϲ<�>~���7`��YX��`#�*l?���l ��;����Ɣ!6$~��X\bG�$>�_�M�#�
�7��������-���
�8�*'XF<��̰� [...]
<�ǩ��<��/`<)�cc}�/��Y�>�|�M��9!q���B��2�f,L�֦�E��6�&b��Ӱ���S,��bA�{m��
�<Dz23�
1x��
�w����F�Zgi�nC,(���~�;=�.���'�O���%�ʟ�%��{{�:���`�W�s�_�}���<�7�
�G��
�F$N�Ol{�$}��;�o�G��ij������6�F�7}�� � �`O}J���ץ��_Oږ�">Q,-�Cg��z득߇~� ���t��aQ�[����/X����JM
�ZҠ-��CS���1�)�*�+���O��d9�:�e_l��cC��{��)A9���
�/ A�4���qG� ��c������y
�
9 �J���lX
�9
���~ռDE�s�{��} SHhƠ��i�l�47��
Zh����86γ�e
+��&pӢm%�"
+ -\HAPAED���-��w��y��
�h��;��{>��~</�x^F-�1
�?)f$��LM���T���W��+
�
+�<�6�F�1�.�:c {�8�R�ٌ���ڍ{k5��1C���̭z͢ւ�X{��纸YT#
��#�n��ᐟ�-�eZ�
�
�.!���'��%�T �V�Ƚ��;�h_�>DkQ��� ��`�LxA�
��I���˂C^~.�
�h�@]y|��W*W� �K�Řɾb��0�WpY�9��5
�c,�|�{���2Ǻ��2�W*����=��Zd��U�;���M�ڏ�� ��
<�7��y�9���$ �U��x���O�J�M)��
��*?oY�B
G�X�����1f�������������v��ػ\�m=�W�G�
+�z
+d�Q�GZa2�Y�VcQ}ќ�̣;ő��_2�/�_���������!|Sx���� ���n�7Q)���&Ux6�
+-� E�U���ԭe���Z6h�:�e�f�����e�[Z.V��R<
���
�N��d�۞v�Q{<�椆���vrh�f(CIJ�(���h�t
��z'!�`���
� �1�E�4����W���z�:Bo
<H��g���
n�O�w�qP��S����i�d0f�4���ۈ��6DO���]�< ��D�W>k���e
�\��gk��%�94�%�y��
���s�Q�>L{e��JvW�����&��"��
I��%�g�et��C2��>�wt5<�1�SF��%��_V������C�M�
p^�Y2��
��EuTM������$�HEtx�-���$U�_��a��H���趀�hQq��
ד�� �|�7
endstream
endobj
27 0 obj
<</Ascent 945/CapHeight 708/Descent -250/Flags 32/FontBBox[-205 -250 975 945]/FontFamily(Avenir Next)/FontFile2 30 0 R/FontName/PPDNXW+AvenirNext-Regular/FontStretch/Normal/FontWeight 400/ItalicAngle 0/StemV 72/Type/FontDescriptor/XHeight 468>>
endobj
30 0 obj
<</Filter/FlateDecode/Length 4152/Length1 9246>>stream
+H��VmpTW~���f�������ݽ���&7_��@����{)�dH
�_��Z���b��U�Q�u�B)U��3v�CEj�
��8���c'Y�{�����w�{�{�>��y��, C��}e�V9�ws��;��-}]�I�� ���e���_[w��
��;��Ϧ��e�>��ݺ�P��� ���
�z����_$���m4�����_a�`[���ݥۯ��6��ٿ�
��
�����XXNJ�+���zn����M?��~���`I�@=n���8�t at g��{`7� $�*]�´
����$G�E2
+���CY��gYۊ��_>�,N<ϵ><5�i���H���
��A&�ǖ�MJ2gaj�?����G��~&i�
+ �!����$8��JF
+R��tdp�,d#���L81
��B>��*
+P�"c��P�2h(G=P�j�Q�Z�C
�1
�0�Ј�X�&4��ъ6,�R,�r��J�cV�k��
A�G��G�]��
�1|/�%����
����=��y|��~�ᇈ�
�?�E\B�q#x��:*؍
�D�m
`�،��N-��7���b [q at l��G,;�_]8�+x
+[�Kl
D��F�:}�%
�)�"R�
+�Rt�5�]�°؍��_t�M��Q���z
��Z�O�8��g�Wq_�s�:^�8��x�Q��(Z�[4�fт�D�X,�*�L�Ho&P#˞%���O��%�tC�)�o9i9o�j��d*3��Q��r�^iR.�3�
w���#yl�O�'�3���xZ=�==������?�D���h����D���Ȟ+�C��M�g(��,E1��>�=��y������"�Q���b�co�ތ�
+�x|ⱉ���ό�vl�ؼ�ڱ���1�g,���.��;�n�h���u�kG;F�G��6��&�:�p6�bRľ�6�_��}2�
ԫ���X���x���
|K���
|C���
��i�0�����(�OQ�CM��
�G��͖ŧ�D,�-������p[wXiQ�uuG���7zº�D�
�&�4���f��ד�j�XM��N��S
�M�sR�o���W#CM�HC��t������`�z�ӭ�e��)���N�9�{�yٰO�t#
��px���#C�3�sL������g
Sz�`�6G�P�94����Au�n�So��3|K;��ܩ[/5�%��.SPeI*A[>-�Y�/5���m���z���a�.�Uz����Z2B�`�3ZV�[����,MT�Dm��.R=��
���ʴ%�N���%91;-53�Z��_j�L\RSӒWTh��5�-ޝ��E����˓g���d��(��U�[/P��;#�:*��OI��+y ��{R�t���X
�bϢj� ��3���:��*�[VY�U�Y��Te�T"Lj����0q��;��{��Cߤ�7)�
~��66��"��h!���~��"�q�x��;��߲�gB�d|�w�
\4�Ҝ��Ч
I�! ��bdB�O�߳�W�c
��F.1��G�Abq�x�x�8GD�_2�N"���s�ns��r1 \��\�k\�O\��.
�����e�a
�1X:�+D�K��L�TO��H9�d�]RUe��2Ix�5995��EzMvv��H
$'��@AJJA@��:��|8��:��|$��p��~��^W�����7�O^�{��e ��n���q&.K����J^1������
+���X\[%z[�|�
}�'M�*�
0�<�`�w��D�Nx� 3��θ����N-�+;��θ�3��+;��θ�3��+;��θ���7
���66����� �����T^�+/Sy���T^��2����L�e*/Sy���\G�In�W��ek$k�4����)S�[<��/<������U��V8'zK��ޜ�8�T��)�ͯT3�&6��̫h+��Wk9��eE�����#�/+����������D����h#t"D
"�/�a�&!w^��'r(eڤ&9�8�FN��95rj��ȩ�S#�FN��95rjf���\��V%�!�S���A5T1�HV���N:��8��#����8����8����8����8����8���+:���<����<�Jfo<G��9�e�z��^樗9�e�z��^樗9�e�z���x�z��^3G3��8]�
�m�Y.1��Eŵ.�T"n�������������
�
� ��`�/� �G� 8
+}�pHh�<(�B��NӺd]���^4���d��4�����l��͚l/���p&[3�)�ζv�]�������Gi�.�^�rιι�|��_qIk�:忺kmۆ�����
�
j�Ծ��?]ԙ���E͕�wn,6���$mٸ���D��X]w��}�v����G����kh^[�T�ykI�_�M����M��
j�Q/j�F�#�
�q������6�q���m
n�p��8���6�q���m<�7�I���9~K���y��iC���2V�p����R����H������^f����(�Da&
+3Q���Lf�0��(�Da&2���{n�鸏%k�����-+h(���^R�>������5}��mU�x펲�ޒl3n�3''�2��ap{鮖�U�������U�k��q���
��^y<��}�y7��׆�������LC&�{�{sy�ae���� ���{c��V��jn&u<�'�wd�V�F�)�^����d��Ȩ���e^�b{N�i�6;�����e���@�*@h�`;h��`��a�J�� 櫲�>+#�"��G&A��xT"o�b��w$f�Ȼ����r���z���5J��ƃ��2d'��~#��Yc��u�k|]32I����L��Q�ge� ���&S�����|������ub�
�N�~���
��a�Q�O��L�D��ܐ����3ӲZus���"�!���0��� ��`��A�am���g�\5���{{��i&s˼HεmJ*A��H
�����Υ����c~��#]ʱk\��wEV:.�L$��E$�.�\�
+yX������|(pf��g��"����m��������A�M�6����a!����x9�*u�s����8�g�������{����Ed�/���y
d9�3����Cr_���{4�
+\�'}Zz>����sȚ��ir��ʝ��B�Ź��x���t{W�z�3��@���:�XI}�Y(�lh��P�ڦ��<9.���R�0>�s-�-�3j���0��b&s�n�'y��Ժ�j�
|Q���"�"���G`܃��3����� fZ�t�hF���롽G�Rۭf��i�_I�
����Xw��������bI��
��<����:��m��JQ
7�Renɐ��fK�
�!�w�6N�n��#��j����K�]ߧkz��]vc���Vbޕ(�Y��)+�%�;��$5��+��ߏ�9ϼ�����?�,��iic}���9L�á��'�����w�u�n}`�6����f~�mȿj��}����v%>^r9��2�6���ܞ/�<��5������x�eG�����Ϳ���P�/͙�U��
�?��<���
�C��r��u�e�{�۷Jx�s�|�������ϴ�Ӳ^%��k}�|�s�k���i�u�����T:�ޖ��������RƵ����=�r���۫�,���q�ug��/�p^���!��ۗ9O�#��|}?�|�����K�;�~�N"�D���#G���%,a KX��+^rL�E����6��E�A���Z8&�
�,�zzMd9�9�
tC��@��k
+��-�)�#胁���B�g�"��d����`eǩ���T�t�z u��CS��C
�IyZ�Ȕ��9*iI�A���ۈV=gmE{�q�I3�iI��-��I>��п�~kHܽ�j�0�qdB:�=��(� g��)�)��22�o'�Od��m�k�`�m)9ͼj
�)|���!��>���nj�c�սi�C�;E�tܗh���O̸��#�K��N3�p���Q7z���2��s�EO��n��E"?J�1�
v
���k��؇]K��=�F����r�F]�4'u�5z~me~[��B��S@��Js�*1�\@��$7J�j�V�z��Z��M����
���r�|Y�O;/��]I�D����� 0 n��{
endstream
endobj
25 0 obj
[31 0 R]
endobj
26 0 obj
<</Filter/FlateDecode/Length 310>>stream
+H�\��j�0��<Ź\/�&��6���`n`�c�1��·_�)
LP�������=�F{H��$;�0h�
���I�3^�a\�����r�-KB�[f�ck��U$aq�n��G5�qÒ7��is�����@�]�������E/�}�G�$ƶ�
+��/ې���\,���9)�m/��悬J�UCu
+W�Ш뼤�y�߽��P��"���H{RC:D�,jǣ�}T����D��rى�D�)�H�g��9I�
+ҎT�2u/�{N��؝k�\�qܾ{
L8?�O]^�
��
'��X��v�R��~ $�Z
endstream
endobj
31 0 obj
<</BaseFont/PPDNXW+AvenirNext-DemiBold/CIDSystemInfo 32 0 R/CIDToGIDMap/Identity/DW 1000/FontDescriptor 33 0 R/Subtype/CIDFontType2/Type/Font/W[3[250]11 12 330 20[610]72[574 324]76[268]79[268 890 582]83[633]85[364 444 340]89[513]92[513]359[666]]>>
endobj
32 0 obj
<</Ordering(Identity)/Registry(Adobe)/Supplement 0>>
endobj
33 0 obj
<</Ascent 957/CIDSet 34 0 R/CapHeight 708/Descent -250/Flags 4/FontBBox[-214 -250 1192 957]/FontFamily(Avenir Next Demi Bold)/FontFile2 35 0 R/FontName/PPDNXW+AvenirNext-DemiBold/FontStretch/Normal/FontWeight 700/ItalicAngle 0/StemV 120/Type/FontDescriptor/XHeight 480>>
endobj
34 0 obj
<</Filter/FlateDecode/Length 15>>stream
+H�j`
0 � �
endstream
endobj
35 0 obj
<</Filter/FlateDecode/Length 4139/Length1 8541>>stream
+H��W[l��3�\J2I�ZR��X�rŇ$J�E��
Y���e���ZI�Xvd�/�I�"h�"
Z�A�}�@?Z�E?�槴e�nџ �!�� �F����P),��.)+����ܙ;�w�=�̝!1"�C�$Q�����j���m����_��_�_�(�ѳW^����)�?��ʅ���0<a"�;"��ʙ��9�x��u�+P| �V����w�\|��w��_&j�ͅ˧��pc�Q��_��T�"�O�b/a�~i��?^y`��5"��+W�\�t�~��0�m��]>O��m�����}H+|�S��#��fI?L��
�!������[?���%�.��C�W��$����2ݠ
+��mۋ����x[�({�Fͳ�`�{��~�F���Lҩ��5bY]�<7Qe���,�ZRV��Jɩ/͛e}M_;���O�+K�U9i=1pf��ӫt|�
~���h9��<S.�
Yؑ-;keX8_�p �0ɑ=�W�������ՉHut�
1
}�zgv�zg"b�˘��x��7΅�>;�ҍF�m��|u4R��ښ�3����Zd
q��5����*F�
+ !,J��[���VM#"�a�<����G��O�S�܋��É�YMJS
�Q6W�($�Qj��I�$oB�II��{����N�{֡d�a�d�Z�{K��@�J#�4"
RfBq�GX~�=�W���>�� ��ng���o�{��^e�y�X��H%�O[����6>��o��
�U_s��l�iz��>h��P��
����h ����e��b�!b�{�`��z�n��=$�C�P,=,�o:�X��ɹ����ɣL�S���VVޛ+��
�Q�LY6�ׅ=r��X3��D�N���, ���o����%���� ֘�����'��-� �br
��En¬k�\W8��A�H�&:H��Ò�t)�3Y��/V�����>F���y{@M��_�(��$
Lb�q
9v[�mB��b�
=�5c^�^�X:A-;���"$|Y�"qY�'��A� ���A2�!Q_����a'AHR��
����g
Q�44)?�d)f��Fx~@��g�hO�xDf��֏x0��
��
�����tzb�8���`����MަpO�͈�.��
��?5�4Ɩ,o�ϗ%�]X4�����;�
l4b�"T�+�v�hߥ
E��S��5�h�׀iH�� ����
��?3��1��>�ĉj��!���t�u�r�r��.
�6%��$��T۱ŭUk�������`G+�X����N
����P"/ܲ����{.� D�NzI@�"r
+�s�� (B��
+�Hv��ȲYv#�n+�*�(���7�Õ���0z{
����������x�����@�
�D,ںp�S{��]�⛏\�i
9E�9�I�{q�
�֙#ZJ}��HC�r`�n���I�P���Z�(�퀡�5�]`<�NF(2��P(6:�B
+u�B
+�V�~ls�A?E��0�>�4d
��@�
i�hC����
����� �L���<v3�h��Io��r�=���7c�L�U��d:ܕ��)��
��f��8���;k �%C�T.�� K�>�̅����m�í]ٜ�C�s�"L��(���D�*mؤ
Y��"��
�,�݀�e�4�&c
��
+�P�v��!
u�W _GW�j]n�@W�*|V��
+tU��]��Ω�����@u�*��w0�uG<@�Yڍ���;���G�M���
�hN��'� ���Ykc���m e�6
ַ
�O��Q����~L��_3�6�v���w�c�O(|����i�Ok�!
�i�O~�Ӏ��4�Y�q,�Y��y�.���
�}�>�r���R +fl�mng� �Ҩ�>Gp���9�ץ�X���q$a
x��!�+�/Q0�BRU��,$|���'lMO|eppa���sk�o<����hv(Z68��"/~QA�v6�y��YDl���+�
�b�{��)VS��A��`�>%�q�t�ӫ�|M]�0n����%�k�Y�ֶ��u�!�b�џk�"�!��(�!n �yy�:%�N�)���r��Z
��jqP-nQ-�=�r���5��ݡVV��}F�Y�������x%�+Y�U�84���
a�#
z��ۀ]W5Mj�w*Aq��')�����|��5J��C���h�
zJ�H>2����1����ѠK�{�쁔�+u8�P��^-�V�x_"�?�֙��!m��M�������-~8����{E!n��D�l���Ӂa;7�mM��t
�p
�pY�hͦn`G�0����
� ��^�T�Wt������M7�ׯ/�S�v8N*�H�y�~��
��4��!
�����)Y���*����7��د��(�(|f����b[�-�,J��K
K�mKi֥Dİ�K�E���0��| ��I�K
}(%
+!&R$���BJ�s�ߥ]
+
�NNϙ�3sf�s�wv��~��j�#�M �=��I�
�N"$R\d �Rx �+���$>���}�cH��S{���v^M�sV��NHz6!=;-%.��X�r���3
+�
s�iħ�ϕ;TӀ^�|��L_�/��KG�_����S�����zKwvf��Z�e�
�w���:�Q��b�#�7��K��UF��~T�����GB�������n��;�W�ju�V�*�>�b
�"}���l���D�|�=��CT�L�T�|��c݂�,P
h>(44T��*S�T
*�
ES
9�I��K^����>�\�1�_%/��US���0�!( �
��5V�$�k�)K�&S�R��g�4�S�ޏ~���n�ܣJ�!�
�5��2�
]H��
�W��o��O�r�N��0�D�*ɺ��E�7v`�Z����;ɥڨN}M�����[���Y�Ų� ��@�q�z��ua��>Zhc7�u��8�E��ޤi�*O��zl�V�z?�'x9���r�ݍ�|�I�wb}!���iS����d���/|�/lR���E�ut�J�!�p�煳/�����
�q��mT(��
N����
���C4q|�h��b(��k�|_��qw�� �1�q��
�I���x�|0�X�x�y0>�{� �x?������'q�����Dn�
��(rDp
+��a����Џa�1~�
>��έ�hn��!#�8�m�c�\�Ar��H4r?*�ܖ��xb_�s
yv�Y���?�Ag$��gȕ��,��t]Fq��JN-�\�Cn��T���#�L���,A�^i���
+�kA��d9�_*�
�+�}��U�k"۹F��=�/�8�r��v�0�PG�e��V;��~�&A���
�U�7k�ϐ�諾�D �G�`�u�į�J�y؛��Յ��@�0��pF����@_}
��S�1��ϕ��5h�f��_�k���� ,+������s1�T
��/pvߏ ����&j�-c})�5��Y?[x����
+�f�,�I�~��%�+�߹
���A�R��.���@{��ɞ��CH>#�}{�Ϙ�s���U�i��2��`��3�+�n4��
+.C8�%}Ɓ1��
+��������7���'Un��D��ܪ�&b �
�
+����&��ː7�#�
�Ep�y�5�
u>����mWn�����M+w�F:7to�Qx����L}3�.�1�l=��D�
��Ӌ��|.�a�a�v�z�ڍ'��;������d8���qs7ڟ1��[.탧�i��
}�����!|��ij�K�v�G�>�M�@o��eGtL�ٶ
�
�ʌG�ymYa�ߖ5��
[6P5���t�-�B�oˣT��ihp{W�t-��oo���;�%n��օ���Ǚ�E�M��:��Zh=�A����T�rH%��,H
�cMk6�#�i#��V)��MZ)��UJ��mw�̶�߳�Yz~p?�V�o�f�������*
oǚ����J0�Ǯ����a�
�����8;<�5C�
����_�y��;��� 5?�z-�KP0d
��;����r�@v���Xm�#X^
+��اQvk��vp��>�v�������7�O
��I,�? ��Tz��� �AڥN !4
�Ji��tJFVŹ�)�&�n,[Ls y.e�J�[B /3���@��4�ӎ����� ��,�
endstream
endobj
19 0 obj
<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>>
endobj
18 0 obj
<</LastModified(D:20130908203336-07'00')/Private 36 0 R>>
endobj
36 0 obj
<</AIMetaData 37 0 R/AIPDFPrivateData1 38 0 R/AIPDFPrivateData2 39 0 R/AIPDFPrivateData3 40 0 R/AIPDFPrivateData4 41 0 R/ContainerVersion 11/CreatorVersion 15/NumBlock 4/RoundtripVersion 15>>
endobj
37 0 obj
<</Length 975>>stream
+%!PS-Adobe-3.0
%%Creator: Adobe Illustrator(R) 15.0
%%AI8_CreatorVersion: 15.0.2
%%For: (Alex Reynolds) ()
%%Title: (reference_bedmap_mapref.pdf.ref1.pdf)
%%CreationDate: 9/8/13 8:33 PM
%%Canvassize: 16383
%%BoundingBox: 0 0 576 360
%%HiResBoundingBox: 0 0 576 360
%%DocumentProcessColors: Cyan Magenta Yellow Black
%AI5_FileFormat 11.0
%AI12_BuildNumber: 399
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%RGBProcessColor: 0 0 0 ([Registration])
%AI3_Cropmarks: 0 0 576 360
%AI3_TemplateBox: 287.5 180.5 287.5 180.5
%AI3_TileBox: -90 -108 644 468
%AI3_DocumentPreview: None
%AI5_ArtSize: 14400 14400
%AI5_RulerUnits: 0
%AI9_ColorModel: 1
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 1
%AI9_OpenToView: -278 569 1 1134 765 26 0 0 47 129 0 0 0 1 1 0 1 1 0 1
%AI5_OpenViewLayers: 7
%%PageOrigin:-18 -216
%AI7_GridSettings: 72 8 72 8 1 0 0.952941 0.952941 0.952941 0.976471 0.976471 0.976471
%AI9_Flatten: 1
%AI12_CMSettings: 00.MS
%%EndComments
endstream
endobj
38 0 obj
<</Length 15981>>stream
+%%BoundingBox: 0 0 576 360
%%HiResBoundingBox: 0 0 576 360
%AI7_Thumbnail: 128 80 8
%%BeginData: 15858 Hex Bytes
%0000330000660000990000CC0033000033330033660033990033CC0033FF
%0066000066330066660066990066CC0066FF009900009933009966009999
%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
%6666006666336666666666996666CC6666FF669900669933669966669999
%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
%9933009933339933669933999933CC9933FF996600996633996666996699
%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
%000011111111220000002200000022222222440000004400000044444444
%550000005500000055555555770000007700000077777777880000008800
%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
%524C45FDA8FFA8FD7EFFA8FD047DA8FD04FF7DA87DFFFFFFA8FFA8FD05FF
%A8FFA8A87DFFA87DA8FFFFA8A8FFA87DA8FF7D7DFFFF7DA8FFFFA8FFFFFF
%A8A8A8FF7DFD45FF7D5252FD0727527D2727522752272727522727275227
%5227272752F85227A852522727277D7D7D52FFF852272752FD042752F852
%52527DFD44FFA87D7DA87D7D52FD047DFF7D7D527D7DA87DA87D7D7DA87D
%7D7DA87DA87DA87D52FF7D7DA852A8FFFFA8A8FFFD047DA87DA8527D7DA8
%7D7D7DFD52FFA8A8A8FD11FFA8FFA8FDBFFFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFAFFFA8FFA8FFA8FFFFFFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA1CAA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFAFBCB5FFAFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFB5B5B5C4AFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFFFBCB5B5B5BCBCC3AFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD09FF
%FD04A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA1BCB5B5FCB5FCFCB5CBA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD
%08FFA8A87DA8A8FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FF
%FFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFF
%A8FFFFFFA8FFAFCAFCB5B5B5FCB5FCB5B0CAFFFFA8FFFFFFA8FFFFFFA8FF
%FFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFF
%A8FD0AFFA8FFA8FFA8A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA1B0B5B5FCB0FCFCB5FCA1FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8A8FF
%A8A8A8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFAFCAFCBCB5B5B0B5FCB5FCCAAFFFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD
%0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA1B5B5B5FCB5B0B0B5B5A1CAA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFAFCA
%FCB5B5B5B0B5FCFD04B5FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA1B5B5B5FC
%B5B0FCB5B5FCB5A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFBCBCFD04B5B0B5FCBC
%B5B5B5FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8B5FCB5B5B5FCB5B0FCFD04B5A8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFFD06B5FCB5FCFD04B5FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FD0EFFA8A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8B5FCB5B5B5FCB0FCFCB5B5FCB5AFAFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%A8A8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFB5B5B5BCB5B5B0B5FCFD04B5CAA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8CAFD06
%B5FCB5B0B0FD04B5FCC4A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFC3FCFD06B5B0B5FCFD05
%B5C3FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FD06FFA8FD07FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8C3FCB5FCB5B5B5FCB5B0FCFD04B5
%FCCAA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FD05FFA87DFD07FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFC3FD07B5B0B5FCBCFD04B5C3FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FD06FF5252A8A87DA87DFFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFAFC4FCFD05B5FCB5B0FCFD04B5FC
%CAAFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FD04FFA82752FFFFFFA8FFFFFFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFAEFFC3FD07B5FCB5FCFD05
%B5C3FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FD06FF2752FD06FFA8A8A8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFB0B5FCFD05B5FCB0FCFCB5B5FCB5
%FCBC9AFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8A8A8FD05FF5252FD07FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFCAFCFD05B5BCB5B5B0B5FCFD07B5AF
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FD06FF7DA8FD06FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFFCB5FCFD05B5FCB5B0B0FD07B5FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FD05FF7D52FD07FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA9B0FD08B5B0B5FCFD07B5A8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD05FF
%A8F852FD06FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A1BCFCB5FCB5FCB5B5B5FCB5B0FCFD04B5B0B5B5FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FD05FF7D7DFD07FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%AFBCFCFD09B5B0B5FCBCFD06B5A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD06FFA8A8FD06FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA2BCB5B5FCB5B0FD
%05B5FCB5B0FCFD07B5FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD05FF7D27A8FD06FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFAFCAFCB5B5B0FD08B5FCB5FC
%FD06B5B6BCC4A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FD06FF5252A8FD05FFA8A8A8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA1FCFCB5FCB5FCFD05B5FCB0FCFCB5B5
%FCFD04B5FCB5FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8A8A8FD04FFA85252FD07FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFAFCAFCB5B5B0FD05B5BCB5B5B0B5FCFD06
%B5BCFCBCAFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FD05FF7D277DFD06FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FCFCB5FCB5FCFD05B5FCB5B0B0FD07B5FC
%B6FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FD04FFA8FD09FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8CAFCB5B0FD09B5B0B5FCFD06B5BCFCBCAFFFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8BCB5B5FCB5FC
%B5FCB5FCB5B5B5FCB5B0FCFD04B5B0B5B5FC94FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0AFF
%A8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFAFFFFD0EB5B0B5FC
%BCFD05B5BCFCBCBCFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0AFFA8A8A8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8CABCB5B5B5FCB5FCB5B0FD05B5FCB5B0FCFD08B5
%FCFCCAFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%C3B0B5B5FCB5B5B0FD08B5FCB5FCFD06B5BCB5B5FCFFAFFFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFF
%A8A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFAFCAFCB5B5B5FCB5FCB5FCFD
%05B5FCB0FCFCB5B5FCFD05B5B0FCB5C3A8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8A8FD0EFFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFAFC3BCFD06B5B0FD05B5BCB5B5B0B5FCFD06B5BC
%B5B5FCB5B5FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA1BC
%B0FD05B5FCB5FCB5FCFD05B5FCB5B0B0FD08B5B0FCFCB5BCCAA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0E
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFAFC3FCFD07B5B0FD09B5B0B5FCFD09
%B5FCB5B5B5CAFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8AFA8FFA8C3B5BCB5B5B0
%FD05B5FCB5FCB5FCB5FCB5B5B5FCB5B0FCFD04B5B0B5B5B5FCFCFCB5FCCA
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFAFFFCAC3BCB5B5B5FCFD06B5BCFD0CB5B0B5
%FCBCFD05B5BCB5B5FCB5B5B5CAFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFC3B5B0B5
%B5B5FCB0FD08B5FCB5FCB5B0FD05B5FCB5B0FCFD08B5B0B0B5B5FCCAA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFAFFFAFFF
%AFFFA8FFCACAA8FFA8CABCBCFD06B5FCFD07B5FCB5B5B0FD08B5FCB5FCFD
%06B5BCB5B5FCB5B5B5A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8A8A8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFAFFFA8C4A1C3A1CAA1CAA1B5B5B0AFC3FCB5FCFD05B5FCFCFC
%B5B5B5FCB5B5B5FCB5FCB5FCFD05B5FCB0FCFCB5B5FCFD05B5B0FCFCB5FC
%CAA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8A8A8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFCAC3BCC3B5
%B5FCFD04B5BCB5BCFCFFBCFCFD08B5FCFD0AB5B0FD05B5BCB5B5B0B5FCFD
%06B5BCB5B5FCFD04B5BCCAFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFAFCAFCB5B5B5B0FCFCFD06B5B0FCB5FCFD06B5BCFCFCFCFD07B5FCB5
%FCB5FCFD05B5FCB5B0B0FD08B5B0FCFCFD05B5C3FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8
%FFAFFFA8FFAFFFC3CACAC3BCFD05B5FCFD06B5BCFCB5B0FD09B5FCFD09B5
%B0FD09B5B0B5FCFD09B5FCFD05B5FCC3BDCAA8CAA8FFA8FFA8FFA8FFAFFF
%A8FFAFFFA8FFFFFFA8FFA8FFA8FFA8FD0CFFA8FFA8FFA8FFA8FFA8CAA1CA
%A8CAA8C3B6FCFCB5FCB5FCB5B5B5FCFCFCB5FCB5B0B5B5FCFCB0FCB5FCB5
%FCB5FCB5FCFCFCB5FCB5FCB5FCB5FCB0FCB5FCB5FCB5FCB5FCB0FCFCFCB5
%FCB5FCB5B5B5FCFCFCB5FCB5B0B5FCFCFCB5FCCAA8CAA8FFA8CAA1C3A1C3
%A1C3B5A17DA87DA852A8A8FFA8FFA8FD0AFFA8A8A8FFFFFFA8FFFFFFBCC3
%BCC3BCC3BCBCB6C3BCBCBCC3BCC3BCC3BCBCBCC3BCC3BCC3FD07BCC3BCBD
%FD05BCC3BCBCBCC3FD07BCC3BCC3BCBCBCBDB6C3BCBCBCC3BCC3BCC3BCBC
%BCC3BCC3BCC3FD05BCC3BCCAC3CAC3BCB6BCBCC3BCBCA1A87DA87DA8A8FF
%A8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFAFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD10FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD2CFFA8FD27FF
%A8FD56FFA8A87DFD25FF7D7DA8FD25FF7DA8FD2FFF7DA8FD25FFA87DFD26
%FFA8A8FD2FFFA8A8FD25FFA8A8A8FD25FF7DA8FD2FFF7DA8FD25FFA87DFD
%26FFA8A8FD2FFFA8A8FD25FFA8A8A8FD25FFA8A8FD2FFFA8A8FD26FFA8FD
%26FFA8A8FD2EFFA8A8A8FD25FFA8A8A8FD25FF7DA8FD2FFF7DA8FD25FFA8
%7DFD26FF7DA8FD2EFFA8A8A8FD25FFA8A8A8FD25FFA8A8FD2FFFA8A8FD26
%FFA8FD26FFA8A8FD42FF7DA8A8FFA8A8FD04FFA8A8A8FD72FFA852275227
%7D52A8275252522727527D52FD70FF7DA87D52A8A85252FD087DA8FDFCFF
%FD36FFFF
%%EndData
endstream
endobj
39 0 obj
<</Filter[/FlateDecode]/Length 13242>>stream
+H��W�r�6��;`dǞ�Rw9��KZuc[#��t=
DB�`Aұ��� )�Ql5�L�
�E��p������^�#��G��O�/N5g����R�D�"˵!
�I�k�O��R��3��c�j��|e�ƒ?��$JF�!98�F䒃���k��|��Q��9�Ak�Ѳ�o`��/0~�r���
2<�t��°YrϲL�3�w�
�NT�D"Y���c��7�N�8����� ��
+��'�T��g٩�Jg��t�r�V�0�+�R�#'��o*�T�Ct|��/�C~4�B2
�6�g<'�HC���G�aa<��_ ɑ��$�'A{~R]�c':��!w�6��
� (36��|�r��
Y�&�O�Ip����
|
ؔ�K�Z�1�o�G�4�
��g��
Z=
}�6ƥ$�RG#�
���]��
{�7�^�w��R%ܥ`��k�n��ݯ��
+��m"r�x2r9�P����_I�ʪ(���az�s`G�"�PV+ ǯن�n���'7���Q{0$��Ƃ��%�>�[�� ڣz�`��
3�He}�]�b���X���(�z�w;���vm2t?6�֨�
u�݃A�;�1p� +yΓ24����uq
�Γ�T�fk2s���Бj�x��r�^�ޝ��?
+��
�$'�>]ivϑ�!
G�!
k��i�#!%��,,rN/s`�ӫJ̣��s"�Z�,�Y�Q��q��+��jz�;U�P嵪p慓
Q�$ּG��UNV5dU-��+�-�h��hQ�Fl��Fp�s"�4˹�&����tQH�s�2m2��)4b�D
�,i{ta-��J7��:�8�7��:��Z��#���sz�I������B�ERl���'4.
���䪯���, 7�ea!ͤ`����Q���w ��d�
]"d
+��G\$��BU�<V����v�2��.Ry���ӱیq ��sN��H�%�c��@F���j�l�ٖ� u���Z����
=/���ړR�mg֜G�����4�:*2 �{�=g
���A;�h�VE�xt܀�yc<v�8��;w��8�� �I-4qBWN�a����I�:�ۦ�[NJ�N�z�
m�1
��;.+�B{ ܑv'ڣ�"Y1]Ē9�!4d��n�m���<��p�l/��ܖ��$T�G8&���]W�
�!Hw�z���c����٤�s<�Z��m�Ud�K}��~P!
:���(�ĤOE��a�7�a6�
+�£�:��
����T�`2�%E���+h�UT��csS�a~8�W1_1��
E�2���e)
J/FCz�%�v�-�J�{��8iw}#,q��כx�䜺���\��H��2��w�z�����*�I�Tށk�op^M������- ��u!r�b"=|��\͉cB�N����g|�Vp����=�*m��)8���L�ϛ�J� ��^[~-pgOr�����a�Mj��ʹG
<!�`�����Q��ڶ�~踣=o�:4��&'����F)Y���U[/ɖj俏5�V!�J\�>^�x�Z��nHz0�g�
݇m�D�k�
�z%��3��%Od�O
�Ԕ�P��
���)k&���h���[��@i�^��[�������
���Ҭ�GGOߑ��^�����%h �
#�D!
�Ŝ���k��'��>���֠��#�?��
;���y��A�[�o�W=1�`�3���>� w��$���
+�A���K���Y��7�Mϸ���ֆ�n���t�0
+
e4�;�
����
����oO��x����
��u� �-6 �-2��הᝄ�Yu���ۃ��}Diۧ -6���tozӓڍj�?��0�܁����s�߱ܡ7f�V�a���K_��r��g,gދ9�� �� ��az��c��f'k0�d�mBg�ɩ�Z ��Y!���;��@2eu���H L�&�)�h�~r` ��|B'p��Ld�d�
�o
# �5�
L��R��ro�Ǿn=�qy�f�
��Te¸o��ڰQ s<�|���78���o
�M��ˠ�~�%x�j����""�x�
��hS`
f�ׇY�L��
IELf<S�(��8��D@�=��y���HN`s�w
��6o�w�[�*��Ġ
+!JE둳
�ϣ=�R�?��YV�d�_e<eQtX�mB�E�Ȍ���uN蛋חm'�����#����җ&h���/`�!��� ��Sq�O�I��
�#���Lg/��j��L���g��Kj,��d��������H�T�[
퓙J�
�s�Z�!���
�
8��?_S�
m������L��`
�������zXd����Q�+U�����3��C����8c��6
�ؾp����|G��?��l��;����1Ȥ����o�:U
��@7�l��[WBy�
��:��`���~�\4�D�������Qu��z.�5��>u����Q���O��/�ն�6�D�`�U[[��ȦlY�Γl�
�ڱVR���V
+$! +
+`��l���@� ��a�%���F���\��y k�$膲>�
��?���<��)
����vaO$A���?���B
�{�z5��9�M9�]�G�l�'��
�>B
��(Uf'Ί��̼3��� #�TF�$ɫ�L��=
8�h��$�+d~�'F�U�:�;��X����@C@�=�A�Eq�s�
�q ����d����yit�g��N��{�2������W㝝���B?ۇ $��q�Y@ʗ(Nx�p�NMc��&���<N㜭�jU��8�
ua&�C�"
+(�1��4���4<T�$�`K�@D��� �1
젖��x�xg��m:���vZ5�Gas蜈$�נr/h�MQ��x���лp �+��������87UPW�õ��*�η!oI������j�w�����0����O1�*��h|}1̎�9t�b�V��P�d�c�*����
9��ҙ��]�OW�>-�;��*Af��c�Qw��3�l����,�,҈�L8�XH^�$�,|g [...]
+��g�Ќ�U�w
�"{ױ�ZOىDKc�G�ЇQ1�
�#0[�?:HKK��k�NHQ�V�*�j�_���6��F��u&�b2�C��4��
\�vKڳg[��}qޯͪ�h�ى7�
��`�Mfwi��L��Wwv>3Z�)
belk^'���#���A�D�
+
v.Bf��t��O\�>��H���%zP
+x"$�,�DRSP�+��b2����s&�n��H��k�U�ƽ����N��,�b�
fij����$����?�S
ܕ�U�E�>���g
+V}OSU�^ږ
+��U��m�M,�m��F��D��)��^�*}�Ne�T�Twz2K���]#ƫ�Q��%�ЂH�N�Ⱥ}4�aT�
s�J"h�5��q�fn;��~���SE��B��SI��`?�þ��o��,$��� Mv����π�b�
�o�:9X�\n���R OE����y�<��b����(��qVV��~���?����0�C��������_�a�G�״ɚGW%9��mO�"`Ƹ���
�l� Π%d����Z��ɍ,H���M�9�
)�ȲK@�A���
�����$U�f�� �Qk����#�k�!�m
r'9s���;�I-m8F6����O�;KH$�Y39HR?q����Q,��
7XE8���T���b�(�J�F�zM�
�<vԇn�u>Q����4H���$e�R�jk���/�t1�6J�{�
��mx;�9�/s�k<nk�*p�#.|,��Vkѵ06��t����xcgͻ�F)�cÑ5����.{����MBi at o�=���iu �oQ������T
g�C�z
^ �]�����vp�
�I
+�8
`� `.��0q�d��
;���w�)��u�a+��mn*���"Q((�x���|m8.��h� �Rg�\Z����tLQ��f��7�8�Z$/�)YCc��CS�SttA,��n��E>OY��v?�
IB7�+��9`0��E
zNA�ے�P�������r���P~�Vn�tl\�H��
7ؘ1ޕZɁ`5a��V_̈́�nV���iT��j�c(��>ڮS�ί+3��m �z-����!U�Dg�N��;v0��;��lW0�]�7t2�y
��Ѥ8��4ȓ|������?��'.$�"V�9㰀nǠ�0�tt�
+�C7H�� Q>{�
+��h
,�vnX�|Q���l�e��;iK�ܟ�HzG��(��
���іU��|z�m�J��_��Q�쁲���j�UA�����V�ܿ(
�]��e�BV�t�3L#�T�3Cu�sB�3�
��J�]�Ԭ���� ��4�CO� ��4�M�ه��,��dI���T�
+>�1q��B�<�1�Á���G��}�����n�^�>��;��BM��ȹ3o��><���"*sS����#R��ŧ3T,��T�
I�*�<�~��+�<{�[����?o�Y<ձEc��J��p�Nq���v�=�]��TƩD
�� �ߵ�B=�mK*�ߑ�${9=i5u������Ɛ6�u̅�3 ���s
Ѣ�;fXa"�n
��s�F�l
+(��^� ���a�byߙRTք�FЏd�d�^u�nޞ�����X>�7"z���=�Qe�V���Ҫ�*�[�B�U�B(#�����$��;����f��|}$!M�F�v��8�����#+i<�d�c���7%��ْg��3�<�T�1+���Z���[ܣ?-�b�:��Sz������LB�1>
@"���1(����i���S���h?��`�[
c=�鏍�Jit��
������qV[��DrKP�W!�D����-a(��?�!S��F8Q?OB����
*`�@�*��o��OQ
σ�iH�)}ufn�)C�v�?\V
e-�\��R�1�0|��!�MIl�{3�F7�2��� �)x����4A)�1(�A?"Ӂ��AD��-`dBxo�v@�u�F��
+I�����
b�y�Q}?=@zl-��_��L�K����gߖ�ai�s�xd�/r/h�m��/�Ӱb3
�Ḹ�hy�헿�����Ӽ֧Xb���}��we+��ŷ_t�#�<�Sǁ0|��b�
�b:1��^Bo�
B ��6FJrv��![��o�����b�����bQ�֪O�T*<�ҽe��*M�7'N���f����_Z Υ;'1��o
�Vr�{��5�R�VdCx� A�K��Y�E�5?X�_r�$�PQ
8 z��"�Q����6�0��5�#{���|�>Oq�� �ad7L����+3� Aa��*J*���Co+���j�����S!�t�(!(�v�vvR��I�9�`�O����
~P� �Z}\!IB
(#�M��0
+U�����p�� ���PeU���E:H�LS�}��2��1%�A���I�xrCyБ�O�(��+�A�&�>E� �7-! �Yk���A�Va���� |'��.<�r��oNe���HE
�6AGb�ɱ��3g{%:
+y6�*L���rr���ď=e�!�a�C|[��2��'�\����͉�)M�d�� W�T*O��DhP~�jڠ*��N��l��@���� ��id��A
��eh��J��1:�z��LzR�쨄�R�>a�j
q�z�Z
�C ��:�߅�O.�@A���Rp��������2 at +���l��$�g��q�ҚU�.f@
�-���
m4(\�K�v)��I�����)?��S�0�V�P�B#5w�/�T`�&R,ؚ�w}E�U��:�2ZH���
�}���G����a,�妈�F\dX�M(��du�}�������z�EB�M��U� �"hdUo�M��
=��B�w��lw٩�;�R�M
� �y����h(?Ae�|DC�γP�((�0��u��ڠ��ׁ�@GhW��hh��Vd9MhP�&[�v�oE,�]�t�8h��4��:ȣ�puV3
ipo�<b�=�zv�A��9�5���lZ+���,:�;S,��٩�(����qLs
+mp�����5 �N�3,t�N{�hPy�u\s��CC�.�쟚ETQj�]r>
+k��m��_�t�
�){�Ĕ3�*���֓ޯ���@hR��4���֠�����m{�|
9_5(+��myh�6ʫ��]�����&{2���,I�A]k�+�7��Ƴ����=IJ��R���Bm�BC���L
+��@l��i%X��1��fЦ�}���:4ݭTn텫�}�7P�7���{�l�si�_�g7��vt���M�
+�qQE�˲�����BJ�%=zw,����X-z�
Ӡ�J�Z���������YP%�\T��b��:�g��ݞ0_�h��\4:��
CJ��
+�� (g�ш�W��u��
�o3
vk�?��ű�x<?D�p_��sD��
0t=NlQӱ�;��~���G0y�q�(�v�
.���Yd��g
+����D�l]��=���-�L��,a�~�3�-����|����9�~v���5{l
_I먼�&�-�F��`!�ң��Ǟ`�'|�
�}c*��i�*ߵ,�l��2n|����U���ڥON%�v9ӯf�x-b�f��f�L���ʝ��@�\�R"��|�f�P�����gб�P���<�m�]��Y��ם��cd��PU���;d��]v`i}M\אַ�[r���)��N�a;�'�I6��N�j)�Vhx�'�
�}�AZ�Ny�B���(l��o�:�nI��| j���n� U�1�x�r6{����@����`��
+��&T9ϙ ��6
4
S�c{�u��B{w,��
L�z��`ջ�
+]�B���B�JV;��jG2�A�w9u�h��2�y
�}��_�Ǐ+���:f������[�\�a�6�|� +�(k��EK��?��\��.~�a�.C_#�"���~��
��iN}�C��sh�˞{�NN����0�F�@)L��CM賵o7 ��lr��Q�^��Ji���
���4
�~�z�P�i�[�>�1�䘷8˔Si<��^wG��/��4��,�ǬZ�C�u�TpI�AѼ��t}9%u���?
G�Oc
mfV��(�m�kC_���F��ɺ��>���!�ǾԱo28;�/��oD(}�k���s�2�q�/ͺ�����`�Z�����]�a�����s���C�~v��e���c�}�,�?̺-=�����Ї�U�_fCRe�-\'
������ںD{7�O��F�����.O�1�R�[��aW��
��4S���ʫ���p��h�n�j��%h���Ϫܺ*�b�J`}�>�ٿ�����p{Bp�
+�/�m��M�r����E����yJ���2��u%����#j(H��`���9�
�K�
��A�;���6Z�&����zU�Z��FM�_
������ ����=zm@}O����E�1)��(̂]��5
aD���Guaߥ���K�VP���|�i���5?t�z^����u�~0a�{��*�,
<��֞��vO�(�Y���:�_L���������)��z�v��C�_0?B`f@��Z�*�
�T�@Am�X�V����+ 9�
�%�5
��콏��$�(��:���Ÿ�Q���l4P����$�B��}���
��ݍ��026�:�mg��p���e�ٜ��V1��
W��b�vK�-l��S7Ԡ�-�f��/�
A�f�0��O]�t �DZ:"�B]A`�J%���V֓�x�)��<H��3� �S��4/CUg%��
[�:ô©�9��E
+J�d�+Iz���HP �)���8�E��tM���L̚��9�v�.�
?5g����#!�
�c�n4�FUp�Um�����c�0"��m%]��
_x�D�"�d�~~= �P ͆� x�P ?�g�H�k�
I�X~���xe��-��T��^���/$��<VE�#��lKł��~�bZ`�W<����
vŁ#�w0؋�bl7
+�b$"�s���j����kG���wT�rM��
��l8,
(���qj�^(�:-Y�-;n!bdzlpV���6 ��@^z�M"��f�cUo
�K�65�,� ��@���"
K�-qu
����P���t��^)��ҏ���w�8����JiѾ�kW����hxD3a�'B�Dr�6Ѿ0D�ξ�����Bk�՝6y�
=�/��
���KH��\�0- �+l |�G��NX��ŵa��d%-k"�Q�����
}��s9�����`"�T'�F�Uo��9�[��)M��Z�����O������S�d�49
+L*�ܷD|M;��]�
+��a�$CE�(%���V��#V&�d>�������M�xH$V�f-���E��
�H����V�ۍ8���M膻+qd��S��
���|2����G���r��
}+zW�fJ��U at 4M�氬�ѐ�ض�7�m
��
��
+[�}Է
���>��R�1��=�h4;�P�Fӱ�
c����ɼL����� ۰$+,�쌥�qkN[�J���]|��AOyA߄P�����[MX����Q��S�:�`Vd{d���X�cc��%hJ�U��3k0-�z�֚R��
�X {o���a�9�h
���bf}�|(w�XI��!gJS���x�$φ�ȥ�M��BƆ?C�{���7���=2%�B������
����JI��\�`sEZ[a1dG�}�,��d��b�Nv+�Ɂ\����5l/`
.d�W�
���
+�*��P��P(w
h��eNjn&�_��"�,�b<��`dL)��d� �C�Op�5=�v#c��.�֘�v+�K1~P�P�%�dV�����O���D��dW�
*�6J��/�{�b,1����
+�$���OK�W���:���R�s'iI���\J�0��u���F+��
�0�i%j��c�m�P\�J��2��A����2�K���:ܪ{�o=����*�D��tOI(�%�za�Sz-�_�Lm(
g��1�����Ջ��7V�O�j�8��w�s֮~�,��Z��eP��
:����4����������3�$2�c�{���;Kx-��~i��3�z�;�{燒i
}���i���u�.]�|���tg�@7i�:?�.���~F�����7�/ɓ�Z
�`��Ӄ�]���D�tЇ�FjO�)V���l�S��
F���Z#��C�Sk���'�N?����sZ`�
���/�'�S�/S�H�v��#�����C.
:M~=y��
F��������N�9�L����lm��N���˓��¸
�N��_�a���wX^M�}N�P��+]E��'9s^
�
�}�'J��/�~�hۿs/����?��խ-����8�iKĀ��\�H~`7�HjPt{\����c��Ur���Z����/S��k3�Ŕ��4��������xy.`�J������ӇF���m#�Z��=��B"����_y��۶m�p�s�R�:J�N+�N~���#zz���S'<�}sT��<M���tQ�A�
���û/J>�j!
m��,�a�����ƺ��bMz��5��T&��q��4����꯹%;���A�W$�Q�W
M�Q\Yh�{PM���&�K�m�K��p�Q��]%�Ԕ.�����G��G�z���
Hv<v��|
ðgg�0HV�B=g�O%��+ %TI�\I�v��%9ߦ`ͯ^��b�V�
��@�6v��[���O�:u��� '"��r9
�s%xx�/5}ͳ�o�(2��!�w����X���cU�՚�"�D�q~\�����|d�<�d�e�<E(XMُ�〉�=�n���%E�<�
S�DN�?~��r1�L��
��6�!����"X j��E��^�$��]iK��v 1ICG�ݧ��i�-
�鐮n�֡w_�A��+럝
��.������ɵ����j\.#�l�$fd�Xv{�m�b�mV��I��N)m�"�v\���C��.��JZ����`�RZv1��1�׃
h�̄
p�v�w�f[�ޢ$�mg�9�
�0ds �fq6����b�C�2~
�D�%Sl�՛(�a��ww���
�Z�� �zW���Ĥ�ސrk~�оjB��t҈W>}�V����B�����sG}��N��
��B��ҹ,�y��o��
{� ��0��$YWM�N�R��
+U'�J�ea��j�oc*
�(�S���`��KpP��I�}�$Y�N���qC
aV���Z��t����r�e�E���.0c�\����-���j�\���KUQ�7x�����w��Н��3h}��B��&�+Qj����ȩk��.Hv<vIV.�{��d�0HV�B=g�NH�E�r:��g�~��yy���
+v��p$*(
�1̥N��X
v�ꀌ����OfU,O��X^u ˨/�:M^,�1
�k
l����Z
+��S�I��d0#7Q#������S#��Ƅ6W(/h>�\� E=��~n��YJ]��Y�M����j�°
'.LT�7�+ U��<}'���v��E���/^�IF_�Y�]��u��"�%
*��Ք�8Q�>�)�_Xc̙ ���L��l�p�s���9�b|S��������������Ԛ�Pj���S�Cq�(�����Jh c�f"��{�wf5�� �H�ir��#S3���R2}y2����G$"X a"�<H`��i/�kq,������ބ��[La��o��9
A�$����T�.`�4E�0�����>���XmMW��n(9�Y��b��}�hS�
+5ca���BE��
v
���g�[v����r�J
��!
+�"(����ࢥ(:"�+��Dž�������$$iJ��zz�w���ǂ[E�
$��TH����/|�ϼ%�fy�
���,jCL�5�X��/�m�_PmH5�"Ն��ҌԆTzw�'L�s���*ŧq�A26���qڐ�ҝǾ^���6��(�r"�!�Ƒ�O@{O�xMu4s�p���V�?�I��
��MYT�@��`�v�
k0k0�k���ϱ'
+tb`��
�_x��9 at X�u��hr��`Y�u��y
�����&�}h@)�l}�f_R�p������3J���^��/�
��q
[-�%7a��E���?�k^����c�P4�G�
���6�mH5��I�!��y�kC�-Flnr�U3|�$0�2BC9\ ��I +��
{��[�R���+�<�
++�N[7au�a
:b�Ϲ+A&��w%gp���K���Eh�dE����z�����{�0DW�x-M�(�t/
�>�I��p���x e�7�E��@������L�o_�پȮ��c����6d&�0��Z���1����1^����1l��� ����E��Zz{-���J�p�
��.� ��`�_�(}�FvϹ�N�C�tR_T�c��^�Qs'���m�U�������P�?������
5�
���싻����`H����_�=������v��K��K7���'�8 ���'킉�x�J�صs�̵��/��,�(����Gf��̂����|���k���l�+w[bj=��d�O�t�Q�(��cJ��ajm{�����'�䲲
xJ�����J�)<���
�����d������
����삭���SJ
�����*5/�Gi%��
+�1O�H���&l��U�Z��Nr���d�1P
+|!l�6��TVa��z���۷�쳿�KNd$&��T��m�
δ`y"�wP�k\�k#C�S�Iu�A�U2諸���
h��"����ꜺTY�Z���^tq9cz�t��e�W0�|)aT�I+�I�-�XƏ]��
�/�u
�_g����F�S[�Y
D��*�g�IO�MR��D/z�䂋
�x
0��i
8wz��|QE�;¤�{ח= � ��b�$L�{U���g�I�������<�2 �E'�Ny��ϡ�^�}c!>���j �r�[i�̈Y��
��
�/�
�>c��=F�K�������Z��i�&�k�$rͿ�اDڹKx�H��σ���ŞO ��v�2l1v�8�I;��N�7{�_X�T`���v|P�
o�縗� �y �F
%n�^�m��і�r�$�z���V�̄��D���9ip������jh�x����汰ct��
h%n���V����q�:E��
Di�Cf�V-��`���M67
+N6$ް�;;ل-��삽ψ#0�u+���j#�F�"�!9%L�$x&�#k��B�(j��&�h����Ar���)'_�pR��O`|7'Q
�&),�Dv�l ��#E����gF��3#V�#�]�n�����l�_M�uF���o��Я�>�5}Մ|kS}ha�玈q� ^� 1L9B������W��e[olɄ�p3T���{S�dO�����eEp|[�[�"��4/&�d:��f�d"�vw.�/>�0�����Jn8���ޔ)��J� G��C.С2r��UJC)nR��h�."��> k��P��-�_I�+�
8
v�B�"
+]�u����&).Hi���������*�.��T��ߒ̿o�>B�w0�(�(���z�;u��
+]�D]�Mz/&�,�-r���MbMhya����^D���Y�����{��l��
��R����+��]ɋ��k?��ץ}��Vl�����$�X���V�Ů)�s,�J��[�k�a;v3W���
.M�89^M��4Ԯwv8�㋌C滾�Q��;-�hZRi��I���\�{��8-��`w����ᕜ
�9�+�F�X��7�П/0kk��*T t����/T�W�q��E!7>a��C{�P�^�H��d<�0��eb��B,�H�����J��P��R
��'[vi̲�D�J?,���
Lذ�0�h�_��|���{I�=ȠO�/������Zu��9
��e�� ����)P���ǭ����BsʂǛN�Aag��5��k�5��n���~��°�(9$�FH
+���RV�YR|Rb�!OX�
X�n�V�\Q��V# #QӜL'j��w�`����o�j��ۆ��f��t�'!E�DxPXVj����=7/�B���\���x
~�!��wo���2qaZ�Y�5<�(8����G�$X
.>)� �j�%��eI�Vl������wr�ȁ*
B�b����Է+���Oq�ّb��mH�q�C�"#�l�#\�Qϸ����D�.
� T6^�����5(H~"�
+�0��~NZ��Մ �Q۰+цT��
),FR���
�` ��-�
endstream
endobj
40 0 obj
<</Filter[/FlateDecode]/Length 16237>>stream
+H��W�Z";}�~��YZ�gTp�a�A��x�*���$
���t�'3©�S۩L��9�| ݞ����I>[�\'��!
<�P�>앏}��Mf���
+�Q"���nb�Z�.t�Z�D�6�9�ɥɿ�+����7��X�(��o�t����17�!�7���8V��^��@�<-k
+��;�0h�w�0��I�䅃��㘭i~~���G�ХT�w�c�
,?��Μ_��_�Ŋ��/
+��>�����X�7
S����۸
Hg������LP^�s^"_5i",��1�J����Ʊ�'�
�L��k����,��}0صa���0P��_�C�y ɺ��
mS�u����F ���N-[���݃��?v��t���+��g
+�h��q~pT��
'�J98����Ut6�G�yY� k��ė'd�%ަ�3ЁS�
A7]�L��:
^� �
�p��hC��(&~��9�!�c��C.����X��<xS������� ���<0 ��0�;O��,�sT�M�2��X!w�0���:��dn.�$���p�Q
�\8�gAE���5�Pp
+�¾BE�d�s,c� ���~�MY��Ê�.�Fto�qR%���-�^֢�R��](\�ۣ 䅳P�Q
��%�xz��>�`O�bS&_��2S�,
<i^��4L)�݃1wk*Lb��A�{�k$��?��ғU��%��TJ��rp�7��D�� sEI���b�Z}����;jd�>���>��?��,�K/�A'u!�9g�
~���bg�oo���/��
�
���G<��Q��S���g����H&�z�����^O
{H`�\E����Y
���i����@�3��o4����5?av鯾[B����[�ѐ���3
+bf_�X3�A��_�[��K(p�.ocw��z���
)�}�-*�H_h�{�MV��_<���b
�?R6�2F�O�H��eFl�f>w�~I3���7��S_����3
+�뷓� ��?
�QY
g7���p""��/���|����S��-0�S�]I�w����d�&� �ǟ��t[,����ꬮ�q�,:�h:�jA����f�>��ݼ}�R�Y���LO�2�����ύ�AϰW������P�VH�+q��%Z��.iXlü�m>���Rt�H�.�a���Js�"B�ܽ��b{�Ĉ\֥
KN��y:���+w�CoR� ���r�>�~M=%���=�f�V����v�OxY ��-"]�ؕ��]*���_N,�K�|���a�E
�
W*{�t�W`��G5�-�
������)حk���c�ǮO~���m��9�p'
��j^
�Q�
L��O���!�d�Y�^ȣ
+�QQw%Q� �L���S6�{՚!�.�4��9wi��RL�`q��BW28� ��A>[�-2J͙ ��ڄV��p��b�W����O~BGi�J"�[��0
+��DV����v��~���R�T�w��^�f�>?�����Kf�c��C�u ��c�1-� ]@5/�v�Fnj:�mX�ߗ�T�yd���F��-5��
+\�վ+Y��u�Ur���c�)�qʩ��HQ�;���0�2���m%a��/]���ٌ�d����Qf*� �x���%��`V��^=̆�T�ތYàQ�*��Y{ ch�}
c��u�)b��ـ���3���ߺw�h���ΪC�8���vWֽ�Oo
0�^H�8Z#�����y�oI���e�(%6�����/�U!� liK)D~)
.�<;��X(Nd�B�j�)3�mm�[-\E�*��SIH�+
�ɱEK�k.��!���
�#��2���1���N]f
EڤÏ�VO�py��Yc���ߕh�rn�
�O��a�A�����o1���K��{h��/���ohpxb;�eI�w�'P�<�,�w%�s��[�+&6���ԶK���K��o��.��s��b[���<�$��Ty
�����
�v��;�l���>��u��G�V�읋�Z3$�
�`.
$���f�e��;�I�!
+�!
?x�F�3����4/
-��W�&6��� ��-t$9
:Ҩ"!͎�_� ��1�W@�yZӽk�~���HN4���9/�.-�1�*��9v87g��t%d��Z;U@
�#�5
�3kҒ}ۀ�`o�����L9xC�F��Ŀ���
n�r�]��w�;�����wM���%��ޕ�ZD�>c�
+mnm�=d|��ܣi)k]π|
+CV��n��ڸMd�^�|b����Z�?�+YԿv�D8#
����g�b��1v�m���
+��;�����1%��~���'�2�P�j���`f�u+S�v��|[��XIC<�Ɓ(QY�qb{z���
�K�:bP�n1���.�W5X\�%��
FK�H��|�s��K��
�R�Y|���
+M��0#w��ʗP*����E���qb�r���rS�a��8g�����ӝ�;����儍ZUIp�,5mIxm"���>��ֿ�
p��^�+�B�ʲ��ӟ��}Wrpd2^�܄Į$���x�I�*�N4���$����M|�m;Ӝ%���
��Q�
+�%o��ֆ��Nm�;��@�����!�b;G>�Dm�҇�q��c��B�&����j�ݯW��cr�X�Kڰ��
7M�eGi��FK
�
+ߕ,c�����/�����Ê��nM��Qy�T +dy
���2Gt�RB�S��+�
ME�`0�y��
+�؆�t�{��sR�y`��
� ��8V��^���}��K�
�F]~�Iq��0E���0.�X\���
V
h��R����ύ�&�W7�ٱL��;4����6
,��|�s2MhO���a%jCJ�[���$��0{��[
��
��R*
:/� 1���S
��.6e%
��
+�r�HO��20�֡��Uw%�d�=R��J���yn�݄!�c]�&�$
S�^����J���{�(�g��p0!K
A��T�a,u� G|
p���-�&�gQ���eA^��yP�}u{��$G�*�V\}�����
+���lk�Qwx8W�v.��ᠣ&X�x�<���f���*[LT �_���
��
+� ��1j4q���D��[44��̝�i��k;��
��hp%������3=\����+9������C �\\�q�9hّX��T�tGG�M1;B]? �}-b�˹���u>}`a9�
l
��Y���2.���r�(�����z�,�=8^-+���c�,s��{���T�I�=ܚL�9��� $\� G暈e�2hI��"�I��L{�{G��e���JH���H�T�q'FQ�T���r�/�5�� "j�6]�9�����/�;ʞ�C�K��H�FÙ��F��rl��h"�H4�Qw�ei�u����ֵN�u �!�!h
-�?����l�uqY�WD8�5��l���z��D�N�_����j�n�۞� �}>�:M�S�#^���~B���
+,����-��q�
��Yo�DT����%�qɶk&�")?8K��;N{4Ɍh˪G��X�{LF
HW*
+җ�ed4�0W
���,&TE��kL6UB�>&�`�i���:��~�6�/�t]>��D�^qj�\�w�?��8�:S�Q��0��D at M�D�.�we���� �9V�7�DT�D��3���o�3ݧ��n�^��<c�f�
�tq3e9۪q!]%,
]�k)x���"�U��{�h�B���b��_�Q1/A
�"���b���fr�w�xr��K�]JT�^F�e5Q�=��"boKH~}�
����P�(�kڶ䒴�uiA.�\lL��y��6x屓?o�Xo:���iip�[#Y��F6콻�l#��R
�
�
����a{���'>?-�;�h<�c�$�;=b�.{�`4��0XZM
5 ��
��6�i�
�p��6�`~ak�;N�������g at A������Y��x���4�VodG�h��d:�j��γ���zfߪx�����<��spK�˩;1e�r�VK�,�VS�ǝ��3j$x�)�T�闱�M��4�i��K/��Q'.pk�
^tX7�g=�ͪ%��8��eg#>'�x��l*���q,�
���QL߰����c�'��ٍ�l�Vs�}vs�bcDc}L?U�Imtmٽ&0�JJH�#zY\'���ɂwk_?�`�u
�~�;��0v��T���q�8�+P�4��Os
w�_E����6��}n�]=L���n�W�'��x��`"��<�rُ�ǽ��g4��d�|��B�|\{P�]��ʈ��
f�{���F�����ld�h͋ò����U�����u[~u#nw s�+Ӹ�Ο 2B�Ǡ?�P�
�]�Ѻ=�v� �I��[��+����
��d���q %j�B�.vچ�G论�9`Ɍ�)Z>};a.G��}���1�s~�-.B�Y�c��ʂ��G�+��<}����
)���Ny��\d�\�i���\�k����<���
{m�fWm���
�
��UN�#�9c��˘�4V-g�Hi !m`-����p���ܦ����Q�O�'ٖ���s+
6�no�B�j�y-3l:
�����kO���c���:
+�H\����-��OJ��~ܱ��ׁ�����i���
*IZ�5vctd{Nx�i����(1)��M�v����P�4��C �E'�k�"�u0�d����V�
�Х �"�3���9�9��`��
<Vy�}�{��
+O'
��A�
��48�XU��lB΅:*� _:v�������P
:O[�S�N�F
���n�
��O�ٟ
�*%v�N%aJ2>�$g�IUP�a�*�R�s��}O��Rhq�V���@U�dz��2�]a2H,C�o
;�j��<���3ߌ}�*�*��j� ajr�l� �䞟�O��;�
hxK��\��+�R4u����D
��F2Y'x�M��T�8���)6�x�]+cO�O�̤
+dr������UR6k�l&��(ʤ��%�*��E�
�h�m.���.�os
�ӧU.���V(8l���n����c0�
�5c����G�����PT�r�8hfs��2+����AW_8G������<m
�0h,3W��J���<��v��J/Dk'ߟ��M0�7[Um:%c��ܷ�C
hI��|mRc��G�4?�,��b�}|
r�ty�����}L�"�T�˽F�����Ro�
f_O#^c��K��{�Qvu��4�ӹ�͟���;��J@
�����mU�{N�
�;����p�r�?�ؑ��M�����N��,c�C�Q�
���L���c���CV�K���w����釮���T� ;�p-
�!��y�M�����W���6T�?��?ޫ|/q.�>A�H�tQZ���tD�DDž}�/��2�-
��nIn���
��
ѳ뱬?U���B�
�h
�g�������:̠;�����1zz�:]��1zsEP����,���O�&g�%-e$�xc�9��ƙ��|�W�"��8>Q�)0�7����o����4��}D�z�8:���;O� �"���t���[��e�c�0n��0O�2������c����Yl
K��w�O��
�:fJ>���
�b
Ņ6��
iY�1���.Am x-�v�M~E^�W�1v'bk���!f.
+�ϸ�i
����ɔ�S$���G���B��ʰ9��=7dL�^�\��b3��nސ<�i���%��%c
�ye�ظ���-��Ut�0R#e�s�l�!#rE9�D���$b�D&�Ź>�U��cAO$z�an��~�>��j�!�T-���@���j �R���;�=��_�n<k�˳s��-i�*���������6`���j�
��f������S���k ��=T���u�A�o$����1��3�)�D1����
Є�[n_�{Ʊ�����A��@g4]I3:0� �g���=-5�� [E������`�JyfJ[�K+F;�l�!�#��e�7`��ӰZF���/�W��?�whM�i-�F��B2��$�7:zO!c�־��s ����A���-�K����3���F�����S��z��b����~�p�ҵ�|y�.�b
��W-��r�
=�b_�X��7�n��0V�_"�D�����?�P����8�/�"��=��6�����^;�KP��I [...]
+�o�5�.y����1��Ё���g3� d��»�C�́��
��R���\��=�D���8��h��
�?��xP�5x ��"
����ߌ:�����G�����o��:��o�}�zC�����B�Srw�b�
�L�>�$��>r$/��W:��u���V�)�/���}�ʿ
?>olp�r��'���^��ûo@�� �(���u�!{��CP[*m�6�T��tb��ն�~ܳhZ�7m����������'�������E%]hC^�4Z�ο�m��V11��bl�<MPT99�|%w�?��.�Sx\v��-��[������㲃J�o�q*���S�q� jυ�e'�=��~���e7{ߤ�־�L��cL)[������� >�iYX���D@��|���r�ڥ",;(uǎ�k�-
IL
+6W�7�b�|6�ܥ�Yd� �n�3\&�|X5,*ө�b�#�P(���t���G5
+6!%>���D�Yͮ
�ы�3�S|� 4��! &
S"�0�y�؉�k�l���
�]��0/�5 $��r
$
ߩ���n~C0��,`p�ʵ(T�C����ut�+�ݱ}�fȘ}��d��Zm?�5�p �]*�/��M"��Y��y;��J����*ۡ��Nj��K<p*��_��
+��a\%���}FV��fEn�}~�J=���*Mg
+8�
{e�3e�LdKB�~�Y&nc��ُ)`�8
6Ω�O{?��>3��pj&aQ���)P©�t�
W>��I��%�8,`7ɉ`�)��Zm+� \�p��-
m�uJ��A�e�i�Yg W߳ v�;��_��t2�o���^I%�J&
4
a�
��5
�?��$���oզ�&�m�ͳ
Ll5|����;��`2�`�q�
R�+7VC�j4�0�W+N?��UN���[�Az�\y�|�Wo����с�\�P�2�xO`��*<V��ś�?��M�ƶE%���a@���1L�x�vl !���}��]8LHAÐ7b�k�
��w(
�]�9��,�P\Y��mw��uw��m��ӄgP��`md9
�����ƾ��
.yש�l�aD�cq&��K�z�HW�����_ϭ�PK��ԍe
�8)�����[�0���XH3t�$|�Փ�ࠖ�:��D���a��KX��"A�LH4�
����R�2�Z*Y,dk��~yNހ�9+,������*=�{M�����:�)^F�
LI���"�%���������+���Pk8H�5/�>�.�7��8tW)������R&�%��h�>eUͣ��%67��E�\RI�
��DU����i[d�IQ:����~���E$(�ww_^'҉�"�%�3U��4�&��"�Xl���ޤ(��>��7��W#\�*��(�e�3(m��rB
��ـ��å�M�J�q�e24@���Hݮ
�t/���f�B��Q�*��
�yy��ߣ�
���s�8!�F
%'
de���
%'�T��(�7�轼�����6�z���ݝC��g� �P������L:-���&gJD�������w��~eR���T:&�Ҡ��8U�S��)��H�Z<���K�K��p
f�Yt�����6!��xPceF;�*��`/�P�j
B�P�S��6;���Aُ0L�}�U[�ٗ�P>B}wl
@&ʎִ�ɺ�⠘�1����5����:�a��
���I�i��=�s�?��t-q%�W�ED!!$�
��8 �.�:*#�����F at Gf����d�zK��T��y�lݏzK@:Ze�Af�~��
j�j���-,#>=����/�o�=ᷩ>g�({�*�C#��jy������
�k��p����H��,�Ư�����}b$�
��9�=p"��$z�@�V�O��B�23;4�4ȹZQ�y��i%%?\?j�i�
cN�i,����=�!���
���D�
+�`��"����"
+V�U���Z
o.u�����W6���C
~�B���*/�H�2
tAOK�V��e8盃�e��{
�@+�
�q�$�\�h���4���E��:t���"�kj53�+bz����z�Qn�r(z�FAV1�y,�Qh��ᰠ�b
���!?��'���|�8�
I�=':�x�e��aj��x3d5ۍ�w��`�-/Xl��p
���6A`'�
�Ϳ� ��,�' � �§`)��O1����1���P�
�rc4Q���+j�IP���b ������ '�+��`��к.�#>
0H�a00_��Cc��zS�B,��kl8Q����l��@
�j��9�5�OLs�Qx6H,Z����
VyP�/f�Z��$�ܟ����|;e·���P��S ճQ��
/�a)ꘙ.?p��TE�����!�~W'��^.s�S��-�cm����U�����>�]�P�kk�B)�O�{������ �
���B�"�Cv
>���(8øu%��ҕҀ��*f� �!����d��q_Hń%���[G��h��9�c��
����d$˳I,�k5��D㝔�cq�,�oJ�rq^��/�]�ܶ��M��}��c�@�w�*���X��F;���m+T�@gcZ)�h����h��f����P��:p7��Z���`H�� ��E
�T~�l*�9H�uS-��s�}�|冫c>u#��e 8��z�5 &{,�<J�$��i�t��h��p�dIq=L�%K�XșimS���`�W�����~0lm �L�V(_{q�n��+�h�d���)�,w
],�̛�Eݲp��g3ުtm��݅e<dZ|�2�Q ge
���n`f^�O�˯ɣ$��ýcěi� ��6v��X�k߷A�
����#��T㾣9[��e�J
�ZN����hS�V?��
����� �?�]�{8&�D�|����H\%�=F�M�F��X��3H|c�����"���gH�6&<_�o�� ��Ve� [...]
n\.��
+ְ�_*�Y0�y�P�2Y\��i���t%�e��r�b�_�r��Y<)9Qr��i��!��L�8*�*�ƩDn��8,�5*@,唦���\R�����
`�
���l����k�������æ3�
�{�
���\l���R�e8S1+�2�&��jmK�t�ى�m':#�پa��ߴ@�;�
P���o�wgOb�9����8ƊȉvF�h�!������"N��-�k
+$6D���wG��O�u��Φq{Q�
g�
�4�C^$����� �`�_�:W�'����DY
��4�����
�m
�^Hil���G�u�/��r_��z��u�Q�ƲYx�(VV�E%���y
\G6��C:��:!��7��Z�2ÈgHV��S���.P�;jIB�� S�:^��a�t�@��b%�ʙ�2+"�
<5ze�Jٳ%��Mі��a� �b�8�>}��K���
+5��(� :,$+ޏzz�"
��� �L?���l5�F������L�З
�7��D��Mo֍�?�~�p���e۸�p�i�k��
+�x;Ve�r%��k.
�W����t�Y��Do�[6jwR���BVї�Ј��u� �^�YҬmN���xA�����
��̎�B���"
,05��
bq�
��D���
#�g��g���j�Xzz
�P�i}�)Z��!3pmB8Wn3��4�^����V��On{
P4����6,EIh�0˰.?p��oD�wHb�jqu���2�Z�RG7��`uXQ��T�p =�i\�m����v�BHX���uu[�My�-Z����Wp�NE
�|c��,�z&�p�۞�_j~�ܞ����'#j*Ĭ-|���"�&
3�,�y��I��A�y��!��I�>���W�R�M@�Po� �[�b1$Aر��Mά�M
�
+����f��n����|'���-<C�.�'.d���U�:}�T�!�w>s
�t��'�}���2�ϋ2�"g"x(������?4�f�E��B�2, �Ud4�l�Uˣ5��Հƪ�hL_�]�i�}7��0��|��tn,�t\W���
���9��\�J����$��QE�s7��+b�NW���f] ��k�
���C��zZ�L��иL���X�qE
<�H0Ҧ��1
��:�a�]� �YJ�a��#*9�1�D�d�3 {ѱ�F��G�w��%nN� �
�0c�#�"�����f��r�b���a�Y��B�����γ=����5( �$��pm0�d�)i��c!mRuN?��=��w���he*�Xb��K@���^y���{�#���)q�����vd�&fF���Ώ���@i��U@�S�-���0v����ˠ>o,d�So�C��x���N�ӊ���x�i��}�t4��m
+;مg�1_f[�kK~�aE -}��(H�
�4c���j�$D�b�����d$�Iͦ����M�����ƑX�
�I{eƪ�_J����<JJ���K���'���r��߭��
*�xƠ�~C��j1�)!��ty��ˠ&��S�Rʅ\��
GXX3Gpkny��X��� (��:�~�V�&_��/�
$í�җ��7$��q�,@��m&���n''U���콍�`��J��h
�/;���W
�ۗP�ŗ��A��>p��Ѷ�,�T��
D�k!��#i�趪�Y5��k��tl�p�/�W��M���\� ~lk
/^>}ֶ&��g�T�@��.����Z9��z'��i ���W��+z60�w}c�/D�$��� �IW��(��DZ_|�V��,��?��YI�Y �y�� y3��� �?�'�
�I�22�?�(�hc ���cC���,�� D��g�A
�s����N^���u'By���E��(R�{2�p��a�(�Ug�]�VŸ�u�� ��9���BQsI�,��W�
���m-`��@��pP'�G)*�
��/�x}
mG�����J&<*q`�e-�2�&�>��ǃj?f����o���������آ��8�Hj%��Y��y�z\�|i�����Ӄ)={��f����_
0 {f/����@ZM�a�b��W@���2T)�X�5��U
��'��&O
o��'
+���"+�u�-Y�
ܮ���u�Ec�E&
��J�Z1H�'�%��V����
+a���aW�J at -
��(ͬ|�������aN��?�C�k��1�� �4>6[�
gKMl�QړF�����5
��l���X�8H�I$#կ�EABB�1
����I��j��$
Dž`ѿ���O^�
�G�FZ�H2�㦐Fr<}��gAr��CT��4��T��������Ai=��;&���A�PK���EfnH��Sy�nh��F�bd���8>�О�C�s`���h�_�F"Q$��5i��ֶ}����2O�r��1�Q.U_� �I��v�@֧��I�N
M��ޣ
*'x%�[
+ at x��`�����&��k
+N!]�`��RR��Na�A�֨z��m`E<k����HN���t���E�V�F���>*�\�1#���h�
vIH\�S()�q�n��#,����}�Jګ�4ġ�F̻eK1J�En�
{���"�&"��s/�{)�(�����0m��
Y=ű�aj�f� ;ҽ�
{�.�
+S~),@�&�^�0��r�%�G�'���vv�b�������4��J+L�*Mļ�G��w!��J���z��/�ˋ��h>]�|���x�z�����6�R
���YYr�!�p
=�|g ���j�ŭPku@��[�)\�']��XxCć��I|d@
+��r���6�gY��ʁ�3�K��v�fOH�R�~s�
*W�A���T$!A����
=���jE�"�j�$Q.��mAү� >��$�q��nZN�����M�d�/n���D%l�M9��˅������
�mR�(Qn���b )�+
�)���q9��w������+���,���Mi7�5g
��业����D�P��#�l����s<�a�V���z�C�x��W^�'������s��~i2.T�`��a�{��nz &��
+Cù���{&x��^�V$1��}s'�z����^��6���4�����N͌����*WM��x9� �6�p��{�Iz��m�2Zfq[;��jo���!�1 ;x��=(��:��]�������v�
0��Re��
���s��Y�u�
rq��'G���g�Du�2ӍX��L�7�:�X�
��y�C��Y��~|�!�8
$i��'/
+�@s��Q<ed(���M
Q�>{�}i��%����4��)�L{�D�0T
�� g
ԤӀsz#I��s�l��*3p�m��ӱ��v�&�Bf�%ԣ U.�h)h��yH� %� �x��vG�|�r[�Gf�sې��9|ۡf!_�� ��<g!@�xf)�)s�n]0g!1��
�y�%Z��qw��ĵ��ٕ}��IW�m����bn�%9���I��75,�Ī[���H6)�G� "���IǮV͐
^C�ǵ���
a�f�P6t�ލ.ڄS�����4=�+B(�+��t�x!�b����0/�E�ۚ�ލ<������b�f
�[Yk
-¥�r��ۋ�{�F��0��8J{���e��.���ܿ����
)m�a}��]�%���3�"�|X��w؎�;Ǻ�y�仁��D{��R���&0F:� kՎ�v�.�.�OJu�b�H��K�vB
A�G�j�-
Aig
�==���F����7��C��*�-w�9�-狒�L�jk�X�;OZ9ʌ�����@�b��$?P�� ����� ����~
I� $v_K���?�������>�
_���Qn=�AB�q���
��yڊ��
���.��~�ī8K�a�9����ۿ��
!\�VҔ]�]fCE���]��&��bI|+�D7tbxu3lޣ[&&�ȋ�1 �:�L��:T9D���^�[m�L� ��'đlyc_�Ұ����)`�p��?߳#ْ%ǀ[��Sb_ɣ;W��
-�!�����X|7��Ƨى���ǎ��כ����4��U99�g��e��>9qg�������H84�mHڅu��|�d
+%��6{P���Ro� 6M6�WgN�Xv���X��-xx�
+{���ѢW�먹�
�l���Y�c��
�K`qx �<:a:�E����p^.��r�GR�
?
+�d��6�
� Y�[�K0k�:��P�
:�"�f,�s��r�̌��s j�1E��!Z��m�,�L�y��@K^N�މ���~���W!�ʩ1|��%`�c �bp���Q��8~#��MDn��7
��g1�r���?G�j�9�访�N��n�
��}JJ����mbd�U�1�7��Ǡ�
��"f��2��FU�����3�tӻ[�j"݀߯}.��J���ᭈ�*J��c��9
�Í�vFw���� �$��l���T �%I&zS�Ϝ
VB��U2_z��*f&^��W� g�v�l=I���h^�NJ9#��x.�l�>����ZޫJYG����@u�
o�VI��r�$C��+��� �Nef7VʳͿ?�J��4Z�Sn�8m�F�e=�+3;�
���XX!}coR����Y��z��e�^����b�x�T ��U�m|��_5�����7���Y����?4��j����T�mo�o�Q���q�^4_
џ�ק�ڎ��է��~a��nP���4Yu�hͮ@m +�왭�Z.�(](@m�FM�B
�
+e�=ź�Q�`O��u�����%sݫ��V�?GuM��W]
���ŭ����h�gnW
4�.�'���!H�5�6j2�W��v6��
�!
�����ez�i at n�l9���
�e�p���c����m[`�
/��[_����*�mG_l�1����
�zס_|�0�� 4l�I���]e��ߙ�^mn��g{����.X� �#������j�ك��;�E`
M}�5����iS�nO ��v��]>=�zs�����[�z���5O_�f�/�5��,
^߈���+B�틹��@�A��ؾ<����<�D������%�Hh`i���F�ڹb�d߲;F�αm�yv��
[���my����G����r�
��
2���Ҙ�ñF��('�_��g'r(�C9,4j;��*o��F���Eߤ����*}���d�J4s�G(JR�l������j-��{�B
�·q@�Wd�.J
+���br����"�O���cP7(��/t�)v�;���,
A&�u�3����]�l���)���l�y=u��n���~��[�$�i��'�'
8������sW��^�0qqʧQ��^hP�U����v>�o��
v��_Y8���a��?�G!�<���^�K���^싇ü�ʃ���
�����(I�L5����;��.�[��
��g�� [��imB�̭b�Y����_�����{��*@v���G:���w{���?�g
���ѿ�_¦W2m^l��/�*�[�z�}�U:����U������Oi�B������x)�ہ��*�A
�
Czi
�Î�Js����?�*�hy���BC��^�����%�J륓ST�A��a_�i��P���r�b�ok?�w'��
x�`�@N�wF[/2������{m[�KU�tx��6���>)��CL�~}d�����
�����8���^�%��!L8ذ}�P;�,�3,�a�C��Z�\D��ȴ��H����L�x�-���&(�"K�)���O����L
y��P)T�F'b�
+�H�bW3]�p���L$61<����R&�XZ����T�sH��v@��`
S�0m÷@xY
�)}��,U[�1�<ϐ���{��&��4)mb6�m9B9������
�X�%? ��!A�4���p�I2�v���q��T��
�x'{��Q̺/y��p��<�
��8t����{0�Wm
+X5oe(,�,}l�l��1C�E�1i#�6Ŭ��:*'��6��Y[ 1O�w0�����j��$8ы�6
�l��$� �A�w*p���`d�i��L5|���{i
~,T��箓ʋ�
+{# ��}�.z�>�A�2�T���k��TM'\^��!�j�}��c�
+%��^In@�"2Sx�]�
b�.�)�eP��es�Fb�p�Ԉ�;�~��#�$�� L�k�J���%�Sa����y�A��)��"�@ض�nU��C������_
+,��M��)�Y�
v�d=+ ��A��4+�B�%�Q¾Z�F�Lv�� ��
z�|�Z�j�]'Y�
+H��:
��E���]�$3 �Y��0��HX��DX��g�����fIv@:*��� �> 8���A�"��]+����
�������@��>fP������M6&"�X@�=��i~fQ�`
+ykRQ�
�
!eUI,���x�Z�
+���fIv��o`�dal�C��D�i�fЬh
+�k�`��?MT�¦ wv��� �i�fѬ`
+�k�d�-+Y!
���I'",H�5�fES�]�$; LP�RF��'",H�5�fES�]�$;J�Uk��&���
�|̠UQK篑��#�M�5��$�2�`з,
+�p��$YQ'+ca
*���<ǂ43(U4��5K���=�F� L�&�P�
�X��g��\>����h �چg���2ȁ�� �*p��wr�
��
ؾ���oRt�\A�9
+T��|S�x~��W�Bxg֎��dONJ�h����]NG_�ˇwe�X���";�ęC[������;�v�p+��2�@i�
�"c���W���]�߫�M;�o�*"�M�?\
l�rz�JV���a����
� �x^
endstream
endobj
41 0 obj
<</Filter[/FlateDecode]/Length 2910>>stream
+H���_�ݶ�?���}1�
������i��[��o
�u�k4ɷ��J
�#;u40
�
_���\�:4����l��b���Ѷh�+��ߵ�kqQ�j�פ/����s����d.�����/Nj
v�}�߁�
��OZ�&��_���;��tHfUx����a`.��� G���o�]��!�n���Ѭ�̤�ό����_Z�Up��-���ь����OϨ�Lg�
�kA��̢�Y��
�*�8#%9��s*s�a�Z��G�餢�(W�����ҒF8?3B��i�f\%�g�ؔ�!6-�f�d&�pzf��g�~i
p�ʛǺ~���Gs2�?=+J����2|Y
l�l
+���%^�D-��d�%�pzf�� G�u��V ^�0���UˣY�I#����0+���%��m�UˣY9� #����hiKF�B�In�xq���Ѭ�̤Nό��t8�TɀR;¦�ќ��$���
+0�-$-Е�m�J�kR�����J����Oω�=L^;��`���d|P
\�
P�<����4�ٙ
� �hږQ2.��o��UˣY_�L
���(]�-�dt�EnEh�jy4+#3i��3
�p⭧�%S�u��f�MˣY9� #���`ghkF �5�y�v�*�Ѥ��dNϋ��H3Ji��g'ؤ<����,��yEz8�p�%m��լ��'ؤ<����(��yQ6��S,i�(%��N��q8���K�� Ę~�-uP�n��za�K�b�%
pz^����3Wa���*�ь������)�G<�ɻ��v��8'%!��3�\��� R��֯6��qFFR� ��E�
+n<
B���
+=�MȣYə��S<
<��ЃG�vԎ=����$f~zN��a���
%D���h>FNr�g�t�*��6_���n�7)�f|9+a���J�1��6_��ʼO��y0''/Q���* ��Za]�a��J��[/l�^�+/Y���l�
'Q�|Qjp�y4'#/Y���l7��R�8���p����,��̞�K1�����m
+�l{�G�ks�!Te�y�5{����.�ʛ���=0��լ�����+vg�gb_�̽8C����ޔݽ��ڗ'�pe�K�
&���.:�w̌��y�� �@�q-�*��N������͙��n�
���rD jr2���L���Ԍ٥���7 �˺hP��0�9g~Q f
+� \�b,��P��&��n�̘]9�k;��@�{�J��*��
\��f���tO�ԩ�Geb�U��~�ڴ<�f�.��M�4� 0�:Q�5Tɔ[\�z%j��/ af�0K�J-�-�&`$!��L�z��w�MhXyD�HAҞ�@�k�
mQ(u=V>�s�3gNO� !�C����Q����w�M�#zF��$�'`@��k�*�a&XU�#zF
+���z�e�J�q.!�kS�1��9w�@��՞�+��̡lZ_҈U�<��d ��Kb5�^��պ[
����+���' qfԳ`$et�t�d̬|�s��iy4# in�0��A�J�Zx�_�U-�&�$!��L�z�s�}�d�S1P�Mˣ IH#0�����5ma(��검O��iy4# ifԳ`���m�����Aݔ<"g$ e͝<��Ξ�/��(�9s�3��^`�ںP2���V�w���9c~ifԳ`ľm����cU-��)H�s��}�� !�*��������v�\�Z>��KA����hi�B�,A�
lU��=3�p���J&Y�u��bU-��)H#0���#(�R�b���pf
-ئ�=#I{n��arp�өo�B�Zx�u{B���='a^O�0F٨�m%��|ۢU-�&x9 qfԳ`DڼP�KZ�h�V�<����47�Hk��s��6���Y7P��G������^`�,�^(9��h��7���#5cv9s [...]
+��\BJ���������$��IPO��s ��U��f��R�V�<����43 �Y0ҡ�VɀR
�)yD�HAҞ� ,�=�iY�
@�
<{֤P�%ӕx�3��~��z,�����A-pM�U�<�gd ��K�� F�&��qAE��Ѫ�G���83 �Y0mb(
�O���V�<����47�@묷�62�L�m���n�6-�&�$!��L�z�3����
N4KKV�<�g�
�L�:�H�Ji��6)��)�pS���z8��&�R�j��
�\��G�D�)PG��3
+ia(%�7$ri�!��d�)�����S)%�ߞ��@�
�+Y f
+Ա@���Ua���*�9#9s��/�>x��v�A��3��5sr� �
�k����^��|Gr��� ��c����Z�dT�nB
�3�3�NU^���Vi��3��9sz��0���v��DyD͘^Μ7��� $ڪPJ��eڤ<"9a��f�W!@?�=b���b�\�E��v�٨ܼ�y�
Qʇ������S��Ꮧ�?N�5��_.���=]��|������������_���}���[��^^���<~�t�?�?z��_�[��?L���`�
����J���f�f��Q��;��tHfUR�.
~��85۾�n7�~ӽ�O�Z�Ӯ�J�笅C��;w�
J���9��4���R��)� nhx%�\�F}7�eQ�<%��v�����-��s��|��%z���>�_}���7�"��
��C�J���N��������oקo��^������O����i��|���������/����\>>]���zy���/E�K��_������ 0 ���^
endstream
endobj
16 0 obj
[15 0 R]
endobj
42 0 obj
<</CreationDate(D:20130908202829Z)/Creator(R)/ModDate(D:20130908203336-07'00')/Producer(R 3.0.1)/Title(R Graphics Output)>>
endobj
xref
0 43
0000000000 65535 f
+0000000000 00000 f
+0000000016 00000 n
+0000020195 00000 n
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000020268 00000 n
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000023138 00000 n
+0000023323 00000 n
+0000022997 00000 n
+0000000148 00000 n
+0000022810 00000 n
+0000089645 00000 n
+0000020625 00000 n
+0000039698 00000 n
+0000039585 00000 n
+0000021850 00000 n
+0000022249 00000 n
+0000022297 00000 n
+0000022881 00000 n
+0000022912 00000 n
+0000034256 00000 n
+0000034281 00000 n
+0000029760 00000 n
+0000023706 00000 n
+0000023980 00000 n
+0000030021 00000 n
+0000034660 00000 n
+0000034924 00000 n
+0000034993 00000 n
+0000035280 00000 n
+0000035363 00000 n
+0000039772 00000 n
+0000039980 00000 n
+0000041005 00000 n
+0000057038 00000 n
+0000070353 00000 n
+0000086663 00000 n
+0000089670 00000 n
+trailer
<</Size 43/Root 2 0 R/Info 42 0 R/ID[<273B44E794D442D0B402888DB5F15C39><273B44E794D442D0B402888DB5F15C39>]>>
startxref
89810
%%EOF
diff --git a/docs/assets/reference/statistics/reference_bedmap_mapref.pdf.ref2.pdf b/docs/assets/reference/statistics/reference_bedmap_mapref.pdf.ref2.pdf
new file mode 100644
index 0000000..6cbb421
--- /dev/null
+++ b/docs/assets/reference/statistics/reference_bedmap_mapref.pdf.ref2.pdf
@@ -0,0 +1,376 @@
+%PDF-1.5
%����
+2 0 obj
<</Metadata 14 0 R/OCProperties<</D<</ON[15 0 R]/Order 16 0 R/RBGroups[]>>/OCGs[15 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
14 0 obj
<</Length 16874/Subtype/XML/Type/Metadata>>stream
+<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060 61.134777, 2010/02/12-17:32:00 ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <rdf:Description rdf:about=""
+ xmlns:xmp="http://ns.adobe.com/xap/1.0/"
+ xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/">
+ <xmp:CreateDate>2013-09-08T20:28:29</xmp:CreateDate>
+ <xmp:CreatorTool>R</xmp:CreatorTool>
+ <xmp:ModifyDate>2013-09-08T20:32:42-07:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2013-09-08T20:32:42-07:00</xmp:MetadataDate>
+ <xmp:Thumbnails>
+ <rdf:Alt>
+ <rdf:li rdf:parseType="Resource">
+ <xmpGImg:width>256</xmpGImg:width>
+ <xmpGImg:height>156</xmpGImg:height>
+ <xmpGImg:format>JPEG</xmpGImg:format>
+ <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAnAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQV [...]
+ </rdf:li>
+ </rdf:Alt>
+ </xmp:Thumbnails>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
+ <pdf:Producer>R 3.0.1</pdf:Producer>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <dc:format>application/pdf</dc:format>
+ <dc:title>
+ <rdf:Alt>
+ <rdf:li xml:lang="x-default">R Graphics Output</rdf:li>
+ </rdf:Alt>
+ </dc:title>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/"
+ xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#"
+ xmlns:stFnt="http://ns.adobe.com/xap/1.0/sType/Font#"
+ xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/">
+ <xmpTPg:NPages>1</xmpTPg:NPages>
+ <xmpTPg:HasVisibleTransparency>False</xmpTPg:HasVisibleTransparency>
+ <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint>
+ <xmpTPg:MaxPageSize rdf:parseType="Resource">
+ <stDim:w>8.000000</stDim:w>
+ <stDim:h>5.000000</stDim:h>
+ <stDim:unit>Inches</stDim:unit>
+ </xmpTPg:MaxPageSize>
+ <xmpTPg:Fonts>
+ <rdf:Bag>
+ <rdf:li rdf:parseType="Resource">
+ <stFnt:fontName>AvenirNext-Regular</stFnt:fontName>
+ <stFnt:fontFamily>Avenir Next</stFnt:fontFamily>
+ <stFnt:fontFace>Regular</stFnt:fontFace>
+ <stFnt:fontType>TrueType</stFnt:fontType>
+ <stFnt:versionString>8.0d2e1</stFnt:versionString>
+ <stFnt:composite>False</stFnt:composite>
+ <stFnt:fontFileName>Avenir Next.ttc</stFnt:fontFileName>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stFnt:fontName>AvenirNext-DemiBold</stFnt:fontName>
+ <stFnt:fontFamily>Avenir Next</stFnt:fontFamily>
+ <stFnt:fontFace>Demi Bold</stFnt:fontFace>
+ <stFnt:fontType>TrueType</stFnt:fontType>
+ <stFnt:versionString>8.0d2e1</stFnt:versionString>
+ <stFnt:composite>False</stFnt:composite>
+ <stFnt:fontFileName>Avenir Next.ttc</stFnt:fontFileName>
+ </rdf:li>
+ </rdf:Bag>
+ </xmpTPg:Fonts>
+ <xmpTPg:PlateNames>
+ <rdf:Seq>
+ <rdf:li>Cyan</rdf:li>
+ <rdf:li>Magenta</rdf:li>
+ <rdf:li>Yellow</rdf:li>
+ <rdf:li>Black</rdf:li>
+ </rdf:Seq>
+ </xmpTPg:PlateNames>
+ <xmpTPg:SwatchGroups>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:groupName>Default Swatch Group</xmpG:groupName>
+ <xmpG:groupType>0</xmpG:groupType>
+ </rdf:li>
+ </rdf:Seq>
+ </xmpTPg:SwatchGroups>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/">
+ <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass>
+ <xmpMM:DocumentID>uuid:27fecabc-2f2f-514b-9a36-8bc82f28e1d0</xmpMM:DocumentID>
+ <xmpMM:InstanceID>uuid:21a04c35-c2fd-db4e-bfe6-4985115d1ed4</xmpMM:InstanceID>
+ </rdf:Description>
+ </rdf:RDF>
+</x:xmpmeta>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<?xpacket end="w"?>
endstream
endobj
3 0 obj
<</Count 1/Kids[7 0 R]/MediaBox[0 0 576 360]/Type/Pages>>
endobj
7 0 obj
<</ArtBox[0.0 0.0 576.0 360.0]/BleedBox[0.0 0.0 576.0 360.0]/Contents 17 0 R/LastModified(D:20130908203242-07'00')/Parent 3 0 R/PieceInfo<</Illustrator 18 0 R>>/Resources<</ExtGState<</GS0 19 0 R>>/Font<</C2_0 13 0 R/TT0 11 0 R/TT1 12 0 R>>/ProcSet[/PDF/Text]/Properties<</MC0 15 0 R>>>>/Thumb 20 0 R/TrimBox[0.0 0.0 576.0 360.0]/Type/Page>>
endobj
17 0 obj
<</Filter/FlateDecode/Length 1115>>stream
+H��WMo7����=x4�&���i�i�X@���8n��ilE�}��II�|�-0����rW��������ZMZ����zs���qb��Ǡl`�p3}����~S���ݛI��?����^M�NL)'�^1�
���|R^;JFo)�:�!���˪�"
&oK<��$
��Y��� ��V�q7Gz7��c=`��;���Y$�L43Y��2[�l�&&F
+����8��c�Ϛ�I=��H��ֶ��b�"ʍ�-���dOɞ�'����ld
�9��;K^g���T���bwEu
*�)2����d�\
Tab�9�-Xrd�aY�
ǰD��4{
+��X�6m�e�[,KVc>t�@��h����ǂ8-oРd�`"݃�� �L:3�ցy �c�3��Lv`�D�����ԁ����N��4�(�#��Y��n�L
fY_08�ٳ�b�
�s,�^@<���0��k@���=�)�"�@��fQ�D�WeI-`�тi��&3ЧU_)BZxP��P���� J�:2fA-�S��AT�[H��P�CE�(Am%�E�
5��F��FeD���Y��<��**m�רH��h`=�F
+�F��
Lfp�+�F&Qf����L���&32��3��L�C�{k���X��|q�ؒ����4��-f��@cS�θ�Ŷ�9�w���4p
T
��lڲCj�Q��;�HC
��A`�����
+�#���H\b��y�a��X�ۭ�s
kxK��A�a;��ML"=i;�ˆ.;�}��>�u�������j��3��N]���6����
�7w���4�
uaV7L�Og~|=�E��\^��2���(pm�ܘ�
���������/�g
���3��
+8bP��-۟�g��_ '����k���;��|N��ރ)46���E�J�α�DT�$S�\�m�J/Ü��,%���9��p
+eʫ�k1<{�+�+�<�}R~��������g_��N����Dlp���s��_ߪ�7�p����-A8X��J�'�ã�_�|�x�#�S������&g��x}����Yf�pǪ}(Ϻ<
�=��;(��b��Y`B9����q�����y�v��� vp
endstream
endobj
20 0 obj
<</BitsPerComponent 8/ColorSpace 21 0 R/Filter[/ASCII85Decode/FlateDecode]/Height 45/Length 258/Width 72>>stream
+8;YQVd1(a_$pufsqfJIbVsAl_.h[rr%[TPmihIYB&!p>hrda>r2)d6B?t]0$25dT@
+5EDIr?TO4i4=j"bM&YkFMu*G>rfUGYTHYHF%r.J602>iS,+^ahZgHOKnblQ1&+p/\
+am_gY_.CV?cI;g0'BKT#4NeE4nB6&(jZLQ:-23uB&'pR8Qe%K!U[V2'h$1ZI,k,KA
+4K8D-IEeZ_cGR?T at 5N035r=[!R#)=K4"_18b4AT3b+BK.r-B/p*<7sVpj2~>
endstream
endobj
21 0 obj
[/Indexed/DeviceRGB 255 22 0 R]
endobj
22 0 obj
<</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
+8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0
+b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup`
+E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn
+6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1
+VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH<
+PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O(
+l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
endstream
endobj
15 0 obj
<</Intent 23 0 R/Name(Layer 1)/Type/OCG/Usage 24 0 R>>
endobj
23 0 obj
[/View/Design]
endobj
24 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 15.0)/Subtype/Artwork>>>>
endobj
13 0 obj
<</BaseFont/RPXZZS+AvenirNext-DemiBold/DescendantFonts 25 0 R/Encoding/Identity-H/Subtype/Type0/ToUnicode 26 0 R/Type/Font>>
endobj
11 0 obj
<</BaseFont/RPXZZS+AvenirNext-Regular/Encoding/WinAnsiEncoding/FirstChar 48/FontDescriptor 27 0 R/LastChar 53/Subtype/TrueType/Type/Font/Widths[580 580 580 580 0 580]>>
endobj
12 0 obj
<</BaseFont/RPXZZS+AvenirNext-DemiBold/Encoding/WinAnsiEncoding/FirstChar 32/FontDescriptor 28 0 R/LastChar 121/Subtype/TrueType/Type/Font/Widths[250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 764 0 0 0 0 282 0 0 0 0 780 0 0 0 0 574 568 0 0 0 0 0 0 0 0 0 0 0 0 550 0 0 634 574 0 632 584 268 0 0 0 0 582 610 633 0 364 444 340 0 0 0 0 513]>>
endobj
28 0 obj
<</Ascent 957/CapHeight 708/Descent -250/Flags 32/FontBBox[-214 -250 1192 957]/FontFamily(Avenir Next Demi Bold)/FontFile2 29 0 R/FontName/RPXZZS+AvenirNext-DemiBold/FontStretch/Normal/FontWeight 700/ItalicAngle 0/StemV 120/Type/FontDescriptor/XHeight 480>>
endobj
29 0 obj
<</Filter/FlateDecode/Length 5698/Length1 11171>>stream
+H��V}T���ݛ����M^�TH $$E
+J"�(��
+
+**H���ѭ�[j]�uk�f{��uݚv]�Z�y���
��lg�:`�9�_�s�m��=ε�k�s�s�{��}>~��
@��BwWO�{���Is������q}V��� �+[L�«� ���˶�oU���i|���۾��mѫ>
�G���;��������J�};HqU8���fW��8��[k�i�% ���=[{��� � �wt�������zqlpt���fo���dϖ�=�&&����������@z�@u����]�!�A��y�4G���:� T�IWq� S at m7ĕH��
�]�s��>��������;�
��_�9
8���G7Aͳ�UH��m�V'��n�/U�C�HG2�
�)S��C>��v-D
(F JaD�aB�f�*a�
v<�E�B5
p��p��"�A=����4b1�� KьтV,�r�!� V�
X�UX�5�D���Ѓ�^lDal�f<�>��a
`��O�kx��Kx��I����8���C�������ś� ~���bx�q����^
a#,���.Ʊ�
� vR.��o�]����ql��V��
�5l7v�l�q�c+��N��F�Fq��)�_����X>�d]���g�l-��#��yY�g��Cl?;�6�Q��m`��IG�<���g�
�����
8���e��
��6`A
b
l[��(&-��2�M�j��I�<7�_�_��T��Ϋ.�z�T4��&���b�����l1��5nQ[�,:K���b�T[�-�a�o]���$n�DBaKe��a�l5��_���
�b�L���@�z���:#t��{����'�K�IX��?4�;�N�d���3sK���s�9�\՜e�d���ճͳKf�gg�gzg6���tϬ�i�����h><��vV4c�z�N���鉫C����]"��,r���b�cU
�ݡ7;��đ�ʧ霩
�w��
�i��p)��$�
b0��ׅ��#
C1(�
�
+V�&�#�Z1����_2G[��q8
^L8��#(8�0!�L!�T N��
�Ĩ��
Z�N��-ma��,��CыmFs8L��
�������d�����$JO(�b�"
�$G�9:�#�Gj
���
�+ZR
+�����bl�[����FY!�%3�n��3
�zB��
v*�*�L�P��T��
�1�Qw��`�B�v�*�p����T�d�y�
+�\^+!T�#%�r'KI�$W���)�e��f�oVy�m�E�nof
wQ�^�N��Y˨����sҋ���,�YQ�T��W�|��U�~~�]������kJrʵy�mfe�Ó��I�J�}}���_���n������ɦC1��/:���Զf�t4��"��B���G��=5��=�T�8����ר"�?5NSIJ��)�FVh�nO�i�O
$��
+<n/��r*0�f!I�y;pt<
?��qݖ.��kK��T���Pߓ���
����>�|�r�/�
��B�99�4�?�
.+�l���Vꜜ��MI
~�p4x:�l���z�BDh�8/�<�\p>��d�p�B-+���)E��Ȓg�zdhu�g <)�62���d�z�u���Q.�|���M\�_�����s���b� �*Q��mN��I�� k[e�
"j]�t���OI�D��(�%ZR-��:�C/!xe~��S�l��
�
�t�M�(���AB1��7�o�6д)9�N��������窣�@��-L�`R��,6��D�"I{
�fN�����wX�
���6Y:�ګ����'�6�n�*��J
Mf��#:;�\�=���T���Ŗb]���&X߸����^_Y�)���Y�zMVY�r���Sb�%5D(^O�HG�9�U��J����e6Ȕ(�iW(���\H��~���N�ޱ�����7ٟ�
�
k�q
.�wn�]�(��$g�z%z�ͳdZ&LDY�Y��9��L�)�v�!哕x-�[Ha�li ��'�]nVȊ
+Yq�
p��gB5-�M
w���9�A�s�&g��9�J�h�#�:��NɳUʥD�p%��V?* Z�~�
�����tݞ���ҁ�
�N[�мh����U0�-�ʼbS^s�RqQ��X�k�h��բ��f�\�^9��4m�Qk�U/kT�yu�S��7�&�)���t]R
�,S�TW��I��\ǒ�B���x�ƶu��s��G�ر�����q����i
�I��I�A��_Z����B���
+m���N�@��TڟMH?��j ?����L�aD�&i
�*�Tm1�{�4
�^��s|�9��<�yO�b��H�}>��D=
+ԣ@=
+ԣ&�!�
C��G�������fB�
���H
|���p�c�y�?��!|2/sKJ�u� ���k�ݐA�=#���6NM��g
���s�^����x\O�gT53��LJ���raq�V;���bn~�ӭ�D9>Xn�Mo
�e`? �S��5��
��`JT� \{6�3�{��ʽ��oC8L
wA����YR�[rv��[��1nv at b�!�t��D#
��&S�D��ǹ3�)`d#�膍_��K���6~�o�X��c������]�8���-���?6��pqH���{|=�Rr ��]�gW:��|&5��6y6��Ʀ��|�@Lc�P�*
F��@;P��j��0z���D
�'����4
+�G��Q�u�:!���fv
d
Xu��wS���a��6U��^���^��ߤ�P����b���I�(��}P�
�ߝ�����:L�Ω�a1,��lv�4� {7將��:��s��y�L�m���5g;��cC�O-%�
/�GJ�^;��~zz85}�^=
?JUuUիC�Z&Ȍ�ͭ��t8�
+h�jJ���Һ��/<Q
?��/��OF
+C�z)-6��D1b�1+�
�(�~B
+@!\�j�D;�י*{BxR�� �5��w�v%�:T��gTeR
���
�ꑡ��y
���7�5�+f�he�h:T=�(���M�
L��R����_yOp$ eF#[��ݭ�p?��_�M$-/{�
�?t��J��.����Q�\��\! � ��i�ޛvR��u妕�o�(
��Q���Xi6��Tjd$�*!�C�{�R!�,���-cC����(�l�]7Z��ؠEP�f,"7��2�ƭ�3���pS��+��£p��`TF��b*��b�*֬B0*�B0*�J���T��
VۇqWԗ��cu#���`�o
I7̀����H8]�l}l��:�Q!��ˌ��~�а|
���
ͬT�(�J퀕��F ��9�hPh�g'(�]`y��k\>�VƉ"�D��(2�qD�}��L�@JR:��%!f��9���,��������/�lL�q&Z����t������lv��$����D<�(ʓQ�e��#�
+5 5IԬ?�T�XwL�*
�,VI�� �4�m,�N"F۪G��ꑽT���S���5���i�4�A���5
\��5
\��5MrM�SF���,N4°
�a,A|�(XTpR�D"�C)�[�4��қ(�R��g(M7���E�_�Y�����D؛[8[��.��
����
+
��o���L5`���}�[�X!�K�����ձ
���xpR�JϳM��pм4A�ϊ����p�{
+��.��xq��
�Њe�V���m��/cO�/�m#i�2rT�g����s at rH�a�� XTK�jII�$��/�V�*�Nҹl�i{�=�[~�}Q�p̢G
�
1�#ֹ/:����n�����1�D*1V�6F����ė�c�ٜg0��h
V�T}!=~>�ׂ�H<
v;�}zy:�/dWb�Oȧ�<59:�?�Hg$?�և|Q|�\1�B���3*X!Oj
N��]8�JY����ҹa�M��6�p
7�p
������A�Z�vu #
V�ڙ���o4��;�g�cS��w�ʕ���s�`eZߤ}1�#�7��� �+c���:����~��"n�Y��=���WU�+�JW,�K?��G+N�I��
v�������W���Q�
(��mJ�W�el(���}��ީ���r���ߝ��u�7��b��r�^S~��^��䯔�[/A�ob��k�=]�H�]��
�'�~���YE����
+ˋ������a���,.��nc>�������G�߀-�faIX�������
+/�%X
�8�6'S�ؐ�}�cq�
В�~
6͎*v<�bG������_����S�v㘫�d�
~3âb���
�,~��Py�9�Kx����8�t�c�_b
+�Q|�0��D�eŷ�
+���]d%����T���w�I�n�#����\���`��&|���W�2�5�Kc
��Ʒ�����l�u�w����_����]g�L�|4~k�;� �o�}�J��{q߲���/xS1yk_�xR�����_���}V�>+���sB�~��Z�d,��X��c�M�X�m�-��c�a�a]G��Xtł��,ڄ�}Ly�ee,f�b�6���+;�����2݆XP�����7wz�]~/O
%�`�үK�?�K>7���u����o�����o�
��?(y(0/nB4��!9
+�H�
���|Y�
<�)v��N����Vy��)h�m�8o����A���
����oHM-����-�E|�XZ��v���';����'�#�
Z�âh�`7`�_�
���:!��A[,{�c�S�U�W#W����r
u$,˾�*?/Ɔ0���B�S�r"}�=6#^@���i.���RA
=Ϟ@��m���r�(��ٰbs
�����y�*����
�@��ЌA��Le����`0�)0��ql>l|�B�� ܴh[����EB
RTA�"�eD�p��3w^*�B"Z���9���u�����u�t��@�I#���Ԍ�}D�x
�jqw�0��6�y�N#Ljq��@_=�1�6[p�r^�qo��0f�w��U�Y�V��A �9/n� �?��[�~d���I��2-�>�~�;�S�����ʗ+���_b�
��/|���Y�Ҍ��`�LxQF
�
G�͋�e�� ?
u_�}4O ����+U�O��%s�b̤��
+��\�p�%}����z_���y�̱o欬�
+���pO��VY��Z��q�b��
�ɜ�Q�đ|����k���}o�O���]�q��>xrT�oJ���855�u�
�d�ƚ�ﮝ�1ܴ
�?h<-��3:P�Q��և�
���¥oER�"d4��V��{V��T�P2�p�Ni�
����{+��\z�C;�C�#�{_�$�n���oB~j���MTN7�IU���J�
Ha�*ˋ�m�ղ��g-�W
Բ�[�^�|�^Բ�--��Cj)��?0
�M��D�מv��v*ўI�lg�:(C4CYJP���!?�Gk�c�0���; )�4l
�L���
J��*G _
+��Z!F/�6�&�G���
n�O�w�Q�~ �( +
O�&
,m��]�:!�0��IXEя�ȃ�۞�c�Vˏ_�`�A��k���
�n�|��xqCF�/��qL��Ә�@<;ݑ�i�>�I䳈<
+?�⡨��3�C2�U�aq�_�gt6��q�SV�F$���
�&��Y8f����M�
p^�Y2��
��E!��j�G{�VX�:�n�a�C-ؒگ�
�v��0R437�-�$ZT@h��ā�_
d��8
endstream
endobj
27 0 obj
<</Ascent 945/CapHeight 708/Descent -250/Flags 32/FontBBox[-205 -250 975 945]/FontFamily(Avenir Next)/FontFile2 30 0 R/FontName/RPXZZS+AvenirNext-Regular/FontStretch/Normal/FontWeight 400/ItalicAngle 0/StemV 72/Type/FontDescriptor/XHeight 468>>
endobj
30 0 obj
<</Filter/FlateDecode/Length 4150/Length1 9246>>stream
+H��VmpTW~���f�������ݽ���&7_���� $!�3>�RBɐ �ZۉZ���b��U�Q�u�B)U��3v�C��;:�q�q�v;��ܛl�Ԏ��;��s�s�9����g! ��
�:�ʅ�[ô�!�l��
�L�8�����C
+~c�
X�����m�6�L-��9g߶]���?���m�����s���j �}�l��ϖ$��2�����)�q���8������H�R �ؿ��}h��`9(Y������
�[ױ��~6
�*8
�'������g�
+��_d/,�8�X�kR��S��}T�_��H�H�c呵(K1�,o_����'�����և��Ʒ�1�[�P���#A�?Ȥ�ؒ\�II�,L����=�H����/-\!6$ҕ��
�R�HA*Ґ�
���l� y�
'�`.\�����@E
+Q�b��|xQJQ
娠�P
?jP��C=�#�/�MX��hF
Z�mh�R,�r��J�BVc
:��
���x�Ѕ�x[����1
�W�<^�+�.��{x��9\��.��1~�^�O�3\�eDq�0�7p]���=�EHq�� v�-8�
��i|S��>1 �
�V�'z�
+�
��Eэ�/a+v�
�A�
�� �ӧ_��)"U��D�X+:�j��=xK�E��,
��~q at l�a�F��N�+xa|
'�u<�o�1�S8���M�
{D�h�xL��%b��ȤM�f�1��IQ"j9��xNrJ7�[���S�
�k�J�2[q)
�H)W�f�;��q��<���I�{�<�=.O��ͳ��[�돯���O�X̌��[��:�����d��
{����Q���s��Ȟ7��3�.�.b�>��<v#�f��k����'��5qy���ɉg��/�
����{������
�V�u�m
[?�n�s�cl�X�X�X���.%E��mC��!��'���H���N��������Q��,�Y
�ׅxV��ؑ(��0�,�n.�B��%�
[ؑ|4x�lY|Jk�Rغ&��JX ����Ve{wO�Zh~s�7�kJ���k��H��i��z=y���� �d�1Ͱ�d �'%��)KQGpu02��46�N�[i���Fn4;ݺ�Y������P���g��
�Kg0��@��z�;2
;�<�t?��1|��8m�'
FKaKT
w�Cê�iT���>�f�=˷�3���R�X��I�0U���G�Ӣ�C�R�(z��FXϬ�iM
a�2Z�wX,�i�%�4
+;�eeK�U^Q���Dum@�,��"�cK,����L["?Y9i�4A�i�_���R3��������ĥ55�yE�6ۛ�=�I�_�xڂ<ynZJNFڬ�
+_���iI��W���Q)4qZ:3QɓH��ݓ���,���p�xUkJ�{<�� ���ɨR�e�5Xe�UYKU�K!�0q�x��@���kĸ�x�y�M
+}�B����Ihc#�("j�Vb=�G
�/���� ����
!�.�y��a�EK�/�9B�
}ڐd��`(F&��d�3:���l��D$�������D��!s�$�
>'�6�/��{�Ż����Ś��A�q�8G\!n�Qn��W����BT����dI��I�ꀔ�If�%UU�/��g�^��S�/Z��dg�苵@ArrA at +
����M��--GB���#--GCM�o
��w�uu�n�`c�Ե���>��Fi���a�ᲄO�pک��U��OHK�+�p�i�ŵU��m�w�Q��_y����cɃFy�[�^kIN�w
23��+{<����θ�3��+;��θ�3��+;��θ�3��+��~��`F�lc�ٟ�kR)9��L���2����L�e*/Sy���T^��2�����ud*/�K��&_y�|^�F��IS�j��1E�ŃɅ����]\5�n�cIbq]��dE����͉���Daj����J5cImrac�켊�rO}��3A_V��K�86���R0k��?�g���H$�G9�vB'B�a�8�q�!nr�U��!�RF�Mi��S�sj��ȩ�S#�FN��95rj��ȩ�S#�f�����U�
�?��jTC�Q�d�
��#����8��8����8����8����8����8����8����8̣9�+̣�d��s�Kz��^樗9�e�z��^樗9�e�z��^樗9�稗9�5s4#��3�ِۖ��S�[T\��I%����/����+����P#X����
�� ����
����*�x�:��4I��C�Ӿ8�L_�о塝�f�L3�>�3��:�fj[�ƚd��I:�����9��+I�N�̟���Xk��_k�OqIk�:忺kmۆ���
�
j��>Tӟ*����Ţ��uō;7��� E[6��x0Ѽ5V�]�}o�]u���ѭ�{w��ז7�n�Z���q��!u����CM�2�b�%
��p��6���8���6�q���m
n�p��8���6�q����7��[>�o��Y���<����]�����Z���� w0s��k�����0��(�Da&
+3Q���Lf�0��(�DCf�0�o�
�!
��d��`��e
��{�KJ��7�=��cM_mi[U,^�����$�L�����I�
niؿ�tW����Xu{i���µ��{�q~물�x^���n*�
��P��}�K�t����
+�����觗��h��F��V��j�*u<�'��d�V�F�)�^����d��Ș���e^�b{^��6;�����e���A�*@h�`;h��`��a�I���竲�Q{�u�#@��zT"o�Q|��w$fS�{�b�.r���z���k�z���/e�N���Fr�
��s�V)V��g� �\
f�XR����&ds�L9vN���sd����o�{D�ʈwB��.p��g��
��>bTf�$�c榬��d�����6�����
�_c��^�V�
�{�A|>���Ī�Ō���N����Eb�}�R �eVZఇq�z.�]���ۼ
�
+P�^������q1p�D�q\D��ժ��L���T.B��3��3k��7N<��<,�̥�H�"o����<��
���r�U�y�g����$�9z��UNj|Z��t�|z��K�uͷ@��?s�? �"?$��?9�q�W��=�����
�cDkD�4�5
u����+�;�L�E�
�q�O�I��k~�i��2�;��>QR��F2������m�K��q�8uv�씂L���� ��Ψj��,����}I��M�u5��=��Q[E�gE��G`ރ��
��]�U3-��d,������ߣv��V3���ϯ�ێpǑ�:�ݯ��ao`�X��w��y<&�+��N�s��R��M�T��2����i�d����M0��;�cs:.�6�=�2c��������.����V|ޓ(�Y��%+�e�;��$5��+l3��<O����\{�,��ic���9���a��O�������sL��}���ڸ��3����!��������ڕ�x���ʰ��Il'��|���o_w1
t�Y��[.;��^1��n�-��·Jli�t�J���i\H���
c=��/�ߓ�ܹU��;�[������yf������*�������=�����~���M�t��-���9�sR������~=�r���;��,��q�s9��E��Lc��S��+���[���
_!z [...]
+��E�
�l�����O�r�@�z���ΉЎ�,Z����r����
�7���\S�=�b��v�����E����m���
Uv�JNNL�'O���GN
;4���a����L˄
�������K
����絭�
a�$kR�yZ��t�qy�ϭ*�_s�5��j�0�qdB:=���� �%�I�)��1sP� ��a�q���'Y3�'URN���9Il���!�3�Ͼ���b���@
+��N%����d�S#�G툳�r���%�|�x���K,�\���r�S�뤛�gϏ�y
;���p���A>�z?��aדb��O��3?E,�ݺ1�!��)f�`��_[��q���T��
+�[i.P%Fi�ɍR&�Z��r��q��!�A�Ejm��&]�L9�I���]�e�ʮ�Q���Da� ƒ�|
endstream
endobj
25 0 obj
[31 0 R]
endobj
26 0 obj
<</Filter/FlateDecode/Length 312>>stream
+H�\�Mj�0��:�,�E���v��:
x��� �4N�,de��Wք*��c�鍟��ͱ1�C��F٢�^�poN"\�
����Nq�CgY��<y
ӏ�,!�
�ɻVOj��%�N���
+���]C�ެ�����
+���ξuBe�F����&h�:γE�9
#G���$��\��iX���*�F���d�^~w.�oC{�����L�'���xi+"�����@��.'��DTG�R�#'z!�Y
+�%#�����hKT�Ƚ ��܋���S.b
��^� ����x���6�xv�T��~ �-�\
endstream
endobj
31 0 obj
<</BaseFont/RPXZZS+AvenirNext-DemiBold/CIDSystemInfo 32 0 R/CIDToGIDMap/Identity/DW 1000/FontDescriptor 33 0 R/Subtype/CIDFontType2/Type/Font/W[3[250]11 12 330 21[610]72[574 324]76[268]79[268 890 582]83[633]85[364 444 340]89[513]92[513]359[666]]>>
endobj
32 0 obj
<</Ordering(Identity)/Registry(Adobe)/Supplement 0>>
endobj
33 0 obj
<</Ascent 957/CIDSet 34 0 R/CapHeight 708/Descent -250/Flags 4/FontBBox[-214 -250 1192 957]/FontFamily(Avenir Next Demi Bold)/FontFile2 35 0 R/FontName/RPXZZS+AvenirNext-DemiBold/FontStretch/Normal/FontWeight 700/ItalicAngle 0/StemV 120/Type/FontDescriptor/XHeight 480>>
endobj
34 0 obj
<</Filter/FlateDecode/Length 15>>stream
+H�j`
0 � �
endstream
endobj
35 0 obj
<</Filter/FlateDecode/Length 4239/Length1 8677>>stream
+H��VklY>��x��vb{���c<���8�
;�vCB�6Mi���nL�6٦ݴ��-HY`Y�"��^���x����i�(�?�EU$
R��Hh��ZԄ���i��%ѱ�=w|�����s���h`�x~p���/�s6��/��w�w�X�蹫�_R�o�1�����O�K���!�����م�8^z���*�/-��G�����0�^������T��|��3
����N��"��K
�W��]��_�~y��ٿ���̷���^;{��t���X��gIb��,9H�7�*<_��ٟh���qJ\��+D�ҧ�����ǦI'������W�
v�o�5v��k:��c�H��2�ȷ���]jǺ�N�;R�ٟ֙0��j�m�R�����t�پ:���W�O��<&<G�����֤��ϚU}U_=���ԗkr������j^������<1k�F�����j� đE
ي�ZE�
��� 9rG���}j��2��NT#��Wj�ffk�&"F�����L����F�N [...]
+�<+�GXyD*�̄�L���`g��8�z
/��yx����^��M����A�T�t�+�T��o-��[t}|��w��
�vUok��\�er��}�4T���?��� � ��E��b"!0�Yx:��
佇$d�K�`;
�;��~�}�r�������L����o.-�y�|�mh�F3e��]�ȉ�c��ȝ��'�s� �
�߂
���X�}v��@-�������
rsY��=d��\� ݰ
%��
����ɓ����\#Ն#&
1R�Ã
+:�o"j
!X6le�G�
�2�Ǭ��I�A�������
+#������'?���{B�a���\�X���Jї�*��CG
���|�.�R�m��>v���{uJ#}��!�!r]�Ba-��G�~1sa��s�x.�5!�%�mjH8B�Ũ�*|a
M��; ��
t�>{ىA���a�
�X��G�9
T at 4����C�.�a�tG����]f[_���@�o�?s���g+���\i����`���J-��p6�3b������'N�'��+[���P���V�m�0K�߅��F;P�.��ѹ���MF+
�X�8Т�4$bn��C�u�D;��B��N�R���������;�{�+W�������S��I�_O���o�X�݇��� �z}�����L�j�F%�<w�:Dm^�>!�5�3�R zw�K �B��.i7H�����Hv�ݨ�Uv��n��j�kJŒ�~�Djjyٛ5��>�Ȳ�[:�L,���d�(.�_�M`��ErV-�m�7���&q����>�\�A�)n�Eպ��Hi�:i k�F��o�4�q-�O�E������S�E�#�d�#�ˡ�b�c9T�Pw94��l�n��6�
�
~ �sc�#dN�faK�e��a��mxh��G8?�wxM�u���a�9*
+��tG%?��/+~3̈́]���H�˽|��D���)h��3J�[�cm��d(����e�����|h�_��Q�
��������az�Nt7,Vi�]�
��Q�b�
*\���x16�}�p �k�]���px�
vU��6�U��
+vU��"g�`W�*�U����j�
+�X�V'�q�ti��Xo�}�t�wsf3�Nn{�Qp�
��}�����Gp�η�B{�4��n�.��O��9ў���G�x��������
���{�:���}ȟ��OZ�?
4�?
�i�O����f�DZ�f������3h���
�}�jK옱���i�|�itD��I�_C�
��Rk�w�(<=�0�|�\8���5o�hŤ�&��YLx����X�#=�ѡ��JOo��߸-�"��p����,;���E���>��ԇ
�qBl���k��b�{�����Mi
��:����{��'�
��m���Aq3�E�/K\������������_�i B���(�!� D��uK(��[B�-�%�8���ZܒZ
)�[R�#B
��mr^�1xs����+���JVl�#.͆<G�C
a�m@@W�+�&5u�w;!��/5oR6�6bC�H�/j���/���Ѵ;l/�#�L�(Mt���|
�F�.�o�5sO��=��pBqwz��[Q����I_w�҇��OV�%��[�+�����oL�#q�&`�]<8���b�Λ�sÎ�ZG���
\����?�l�W�Ͻ���'k��Җw���??6��e��Z(F��-�0K���t� [...]
u@����|h�
���A��I�A���=Ey�<HH¿}��.On�IxZ/]A����9�ܿ%Ǐ�#Ɵ����̣�����
� ��l��G�W$ן�?���I-�hs�$�wa�C1pat��I����p���4�O�k���/���(z�/6yG� �o��̟��H����7R
+�s�^���
�HewI�`�@��
;d��g���&eK��\Ձ�s�
�3�}[�����
l��%��4��U*�
����b�O(��7����u���!�z�Ն�,.�>4_$c_��*�����
�2�*��!�8�獫/���B�;����B� �3_l�I��
�����C6i|%e��b:�
��q��������_�k�j�p�I�����-�G��5�5�b>�_���>��s����
�
+b��P=��Qr�pJ���G����Q�)~�
�5έ�l
�c���|̫b^�9�yp]N~Z�d�q˩�O�5�-�4�ԗ�
'�>Ɠ�d�}��e��#�\�
Z�
A���3���K���N˥r�ƕ�Sz��s�J]��Z���UY�x���d� ~��%���}��6�5Q�#��_��j�R;�
Z��}��7Ψ�;�_�$����O�j|���E:�^�A���ȓ��������ӕ�<��P�F���
���9���B�+����G�먧z�"����Ō�V�-�:E�l��N���
�z.�Pj����gy~
�
=��1���2�[�wL�
��5��|��veћv��菌���]�!����̏&/��� 9�i��9n8��W
ø�]
+Vr�4���,pA��
�쥘Y\)vs�?�5\�q���1
��bl�5|�]�z_��-x���'�*�_H�5���!�QC�{�g��������<�
p�y���u>�_�s5��
LJ�gT
+x�,���)�}u����>�cw�����*f�[�����
��R{~+��:����~�����'�|vsk>�ƻ��Z;
��d�b�bΊ�
��ko�l7���?o����!���|���K��ha���D�p<
H�N�\˹H��u�
zg�+�
����U�r@�l�e��{c9�t,�w~W���ޞ�����
��I5��>�exp�����2,G�
�C2 %% �)�B��V!5O��F�Do�5)�
�~F�Ò�[� �������"}�����A�5�Ǭ���?���[�H/�GY��C�9
+��2ºfiG:��vd�.�� �>�>��͚�Z ��}P��>�U[��
Ɔ��
�O�7`��
CE0a���A��"�����9e�Sfuȴw�b�
X>�>}�CFS�O6z#�}6�B?��O�w�?
�u��B��a��I�/
ϑ+��Fw���*�!��Y$�RLV�7�I�,�1"c,�G�y�̋�<��,��d���Αi��5b:��С���
+0 �b�v
endstream
endobj
19 0 obj
<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>>
endobj
18 0 obj
<</LastModified(D:20130908203242-07'00')/Private 36 0 R>>
endobj
36 0 obj
<</AIMetaData 37 0 R/AIPDFPrivateData1 38 0 R/AIPDFPrivateData2 39 0 R/AIPDFPrivateData3 40 0 R/AIPDFPrivateData4 41 0 R/ContainerVersion 11/CreatorVersion 15/NumBlock 4/RoundtripVersion 15>>
endobj
37 0 obj
<</Length 975>>stream
+%!PS-Adobe-3.0
%%Creator: Adobe Illustrator(R) 15.0
%%AI8_CreatorVersion: 15.0.2
%%For: (Alex Reynolds) ()
%%Title: (reference_bedmap_mapref.pdf.ref2.pdf)
%%CreationDate: 9/8/13 8:32 PM
%%Canvassize: 16383
%%BoundingBox: 0 0 601 360
%%HiResBoundingBox: 0 0 601 360
%%DocumentProcessColors: Cyan Magenta Yellow Black
%AI5_FileFormat 11.0
%AI12_BuildNumber: 399
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%RGBProcessColor: 0 0 0 ([Registration])
%AI3_Cropmarks: 0 0 576 360
%AI3_TemplateBox: 287.5 180.5 287.5 180.5
%AI3_TileBox: -90 -108 644 468
%AI3_DocumentPreview: None
%AI5_ArtSize: 14400 14400
%AI5_RulerUnits: 0
%AI9_ColorModel: 1
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 1
%AI9_OpenToView: -278 569 1 1134 765 26 0 0 47 129 0 0 0 1 1 0 1 1 0 1
%AI5_OpenViewLayers: 7
%%PageOrigin:-18 -216
%AI7_GridSettings: 72 8 72 8 1 0 0.952941 0.952941 0.952941 0.976471 0.976471 0.976471
%AI9_Flatten: 1
%AI12_CMSettings: 00.MS
%%EndComments
endstream
endobj
38 0 obj
<</Length 14059>>stream
+%%BoundingBox: 0 0 601 360
%%HiResBoundingBox: 0 0 601 360
%AI7_Thumbnail: 128 80 8
%%BeginData: 13936 Hex Bytes
%0000330000660000990000CC0033000033330033660033990033CC0033FF
%0066000066330066660066990066CC0066FF009900009933009966009999
%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
%6666006666336666666666996666CC6666FF669900669933669966669999
%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
%9933009933339933669933999933CC9933FF996600996633996666996699
%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
%000011111111220000002200000022222222440000004400000044444444
%550000005500000055555555770000007700000077777777880000008800
%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
%524C45FDFCFFFD2AFFFD047DA8FD04FFA8A87DFD0DFF7DA8A8FF7DA8FFFF
%A8FFFFFF7DFFFF7DA8FFA8A8FFFFA8FD05FFA8FF7DFD48FF527DF8272752
%522727527D27275227522752525227522752FD0727527D525252F8527DA8
%52A852FD0A27525252A8FD47FF7D7DA87D7D527D527D7DA87D7D5252FD0B
%7DA8FD047D52FF52A87D7DA8FFA87DA8A852A8527D7D7D527D7DA87D7D52
%FD54FFA8A8A8FD0FFFA8A8FDC4FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FD14FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFFFFFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD14FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8A8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD14FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF7D7DFFFFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFFFFFA8FD14FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA87D7D7DA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD14FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF7D7D
%7DA87DA8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FD0FFFA87DA8A8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFD067D52A8A8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FD0EFFA8A87DA8FFFFA8FFFFFFA8FFFFFFA8FF
%FFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFA8FFA8FFFFFFA8FFFFFF
%A8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FD097DFFFFA8FFFFFFA8FFFFFF
%A8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FD
%14FFA8FFA8A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8A852FD087DFFA8A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD14FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD047DA87D7D7DA8FFFFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FD14FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8A852FD087DFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD14FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD097D52A8FF
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFFFFFA8FD14FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8A852FD097DA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD14FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A87D7D7DA8FD077D
%A8FFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFFFFFA8FD14FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFFD0C7DA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD14FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFA8FD0B7DA8A8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FD14FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFFD0C7DA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD14FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8FD057DA87D7D7DA87DA8A8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FD14FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FD0F7DA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD14FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFFD0F7DFFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FD0CFF7D7DFD
%06FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0F7D
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FD0BFF5252FFFFFFA8FD05FFA8FFFFFFA8FFFFFFA8
%FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFF
%FFA8FFFFFFA8FFFFFFA8FFFFFF7DA87D7D7DA8FD077DA87DFFA8FFFFFFA8
%FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFF
%FFA8FD0BFFA8F87DFFA87D7DA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FD0F7DFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0AFFA8527DFFFFFF
%A8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8FD0F
%7DFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FD0AFF2752FD06FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA87D52FD0F7D52A8A8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0BFF52
%7DFD07FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFD097DA8
%FD087DA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FD0CFF2752FD06FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFAFFD117D52A8A8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0AFFA82752FD
%07FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8CAFD127DA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFFFFFA8FD0BFFA8F87DFD06FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFAFCAFC9AFD107D52A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0BFF7D7DFD07FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFCAC3B59A847DA87D7D7DA8FD077D
%A87D7DA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFFFFFA8FD0CFF2727A8FD05FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFB5B5FCA1FD117DA8A8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0BFF5252FD
%07FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFAFBCB5B57684FD127DA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FD09FFA8F852FD06FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFB5B5FC9A59FD127DFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0AFF7D277DFD07FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFAFBCB5B57684FD077DA8FD0A7DA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FD14FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFB5B5FC
%9AFD137DFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FD14FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%CAFD04B59AFD137DFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFFFFFA8FD10FFA8A8A8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8AFA1FCB5B5FC9AFD137DA8A8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0FFFA87DA8A8
%FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFF
%FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFC3C3FD04B59A847DA87D7D7DA8
%FD077DA87D7D7DA87DA8FD04FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8
%FFFFFFA8FFFFFFA8FFFFFFA8FD10FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8B5FCB5B5B5FCA1FD147DA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD14FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFFD06B57684FD137DA8A8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD12FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8CAA1B5B0B5B5B5FC9A59FD157DA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD14
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8C3BCFD04B5BCB5B57684FD077DA8FD0B
%7DA87DA8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FD14FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFB5B5B0FD05B5FC9A
%FD167D52A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FD14FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFAFFFA8FFC3C3C3B6FD08B59AFD177D
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFF
%A8FD14FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8CAA1C3B5B5FCB5FCB5B0B5FCB5B5B5FC9AFD16
%7D52A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FD14FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFAFFFA8FFA8FFAFCAFD10B59A847DA87D7D7DA8FD077DA87D7D
%7DA8FD047DA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFFFFFA8FD14FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFAFFFA8FFA8FFA8CACAFFA8FFA8C3BCB5B5B5FCFD0BB5FCA1FD167D52A8
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FD14FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFFA8CAC3CAC3CA
%CAFFB5B5B5CAA8BCFD12B57684FD167DA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD12FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8A884BCFCB5FCB5FCB5B5B5FCFCA1C3FCB5B5B5
%FCB5B0B5FCB5B5B5FCFD05B5FC9A59FD157D527D7DA8A8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD14FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FD04FFA87D849AB0B5B5B0FD18B5BCB5B57684FD077DA8
%7D7D7DA8FD077DA8FD057DA8FD04FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FD14FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFD04A87D7D
%7D9AFCB5B0B5FCB5FCB5FCB5B5B5FCFD0BB5FCFD05B5FC9AFD1B7DA8A8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD14FFA8FF
%A8FFA8FFA8FFFD04A8FD077D8494FCFCB5FCB5FCB5FCB5FCB5B5B5FCB5FC
%B5FCB5B5B5FCB5B5B5FCFD05B576FD1F7DA8FFA8FFA8FFA8FFFD04A87DA8
%7DA87DA87DA8FFFFA8FD11FFA8A8FFA8FFA8FFA8FFA8A87DA87DA87DA87D
%A87DA87DA87DC3B5BC9ABCBCBC9ABCBCBC9ABCBCBC9ABCBCBC9ABCBCBC9A
%BCBCBC9AFD04BCA17DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8
%7DA87DA87DA87DA87DFD07A87DA87DA87DA87DA87DA87D7D7DFFA8FFA8FD
%10FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFFFFFA8FFAFFFAFFF
%AFFFAFFFFFFFA8FFAFFFA8FFAFFFA8FFAFFFA8FFAFFFA8FFAFFFA8FFFFFF
%A8FFFFFFA8FFFFFFA8FD07FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFA8FFA8FF
%A8FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FD14FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FD30FFA8FD4BFFA8FD33FFA87DFD24FFA8A8FD
%24FFA8A8FD32FFA8A8FD24FFA8A8FD24FF7DFD33FFA87DFD24FFA87DFD23
%FFA8A8A8FD32FFA87DA8FD23FF7DA8FD24FF7DA8FD33FFA8FD24FFA8A8FD
%23FFA8A8A8FD32FFA8A8FD24FF7DA8FD24FF7DA8FD33FF7DFD24FFA8A8FD
%23FFA8A8A8FD32FFA8A8FD24FFA8A8FD24FF7DFD33FFA87DFD23FFA8A87D
%FD23FFA87D7DFD32FFA8A8FD24FFA8FD25FFA8FD33FFA87DFD24FFA8A8FD
%24FFA8A8FD44FF7D7DA8FFA8A8FD04FFA87D7DFD73FF52F827F827277DFD
%0427F8FD0427A8FD6FFF7D7D7D527DFF52527DA87D7D7DA87D7DA8FDFCFF
%FDB9FFFF
%%EndData
endstream
endobj
39 0 obj
<</Filter[/FlateDecode]/Length 13240>>stream
+H��Wms۸��@?�#OO��%�d[��[I����h �p$m+��
��h[�ui2N:
���aw�`�x���>
��[
9�^�)JR��Pј�,I�&�f'��4\�{�\�w�&���M`��ڵ!�whFwB�09A��,X�)�]SEE@�+F$^�?�q�n���'�/`������=�Po�j��fqC��}��z-���L�LlN�� ���
j���_ٌ&O��e�ET�S%�$g�K�
�َtA6�!�ʹ�E��+*o�HAtxCS��.���&�D��?��s�S�HE��Ґ�_aa8�,�0N!�I�������4c<�̢��h����Z������cM�.�P�4M!+�����i5 6Q.�]�O̠6��InV�8"�cb�:]��S�4�9l��v��mt��s�2�%!#Uﻨ�=�ۨ��,{�7�������
U:�h�]��Z�,�T] �ڰ�����
)�R�
'������Z�Q�v$�R�^���
�Q
�.0��X�ߍ��f��:~�y^���>���.��rEo�k
k3�Ha�
�2�}�(�abP�z`����U,�o`��z�����w���wx����
+d%M��CX�]T`�6.���H�g2�[����
.7�W�
ԳعvZ}�)�)M�����"7R��ÐAmHX��
+��,�!�� �����M�s�U�A�1�0 �Ԭ�a�����
+��h:�ZUZQ��*�晕aV�c����J+++����֕̊fV4ۋ:8+eC��P�Cp�R
@�q�R�u
4.�*㜦8&Jg �bЈ�W
����k!d�
mS
G9���b�C�\C�4�k<
�I�I�uJR
B�D�*�;*p�=$;�䊯T���`��qD� �zR���h��
���.�$2C@
�Rk
G���nl�*rI����~f3u��:�$&�C��
l�g��ƈ�%L#�1@�����4�=�Cv�4@ʤ�9��
��;:ʔ4���R�mfƜ��
��+�֑�����9[���� ��[�% +
U�C��Q��Ȧfl��*\ǥ��
+M�Фb��{b%���U�̕e�z��z�m� ��;\F��@�#mO������E�d)�C�/> ���"��m�H�V�_&��)S#H�#
���}|芾��][����A},�B
���.�_�Y�
l��V��!�#���|//B��0l&��3���*%Bo��
+�
�CO
���J�*e��l��od�
+
+f�1S]��|��'��x����O=��]LbP�˽���9�Ш5�v~ԠD|�bCQ��ja�o9�E+ɗ�~�Eޱ�^B꧀(}�9��cz�)π�V�,
��tj�I^�y�i����R
�nN؏�Ki����ICp�*�,�ʹ�>�}N��
+��-u$n(�q�lI����MT���)'�k��w
��)�
�m�iG��&�w�M�܃����X��[�١p'�m;�︥=oo
��H�S�%[����f�J�9�P������(��� z�R.�p%h��U@��+ �G�~F��0-
-p�_�dyX��$��B��
p:�A�=eMg�}@4�mבֿb�Ai�oIL��t��H�K�
}�Tkl��t��[�~�;�V
�/
���'$�_���_
<g���E�mt;nS?r�n����m6����z~;���x�d��`�'�n��
t��E!��ό�{h�l|� �}��=�j�ϸׁ�� ^4ڭv�ժ�n߳�~�m�
����@%O?<�w��Y7f��zx����6� 0��,���I��ӫNWG{[���G�2}
+��$���LgzZ�Q��W���Uw�Q�F�kΑ�Z�=����r2z@�����s ]9���$%Ϋ%.�
=c� C��·J��AV��Q����(�S k�f�j�
]�~�.�+IT�<��`Оuߏj�V�Ex
n��Ys�����ex�B�D�qRX�3�W�t}�'3�rf�0^Me´���,
k`g�-�x3�Uz���q��Y^3
+ҏ iީ��`�6��(a�����`
X3�ׇ^,O��<���h"y���a>
*�tN�,��) Y��)��h��y{�����@re%�Ea��%p�<أ$����$�N��"�1 Ó2oc4�R�fn/U���xw �
���E\ ��)���h�K����7�_�
+��� ���)��'��yrj����5`�����
�Y!����D��ܓ���'�\���p|��1�)$�0�6�4d�wDl 8���?_U�m��� ��L
?#+N������=ȒTF���LUlpstpZ�x(?
��o�p�;���\�/?�+��4Y�����
����g��u��i-��
������G�rwJ_:����喅���xr�����{
�.�-e��1U��|٨��|�5���_����Ng|gٔ-��}���QkǪ�8��
HB*
+��l��w~�����K���ݳg�-���%���O�n(��������n�S����O��0��l�D�DЯ�q��~�5�A�'�W�`���Yє��5z$�-p"��?��#� �R�gv⬨���;C���0"OeDA���~�D
+�+�س����(�Jp�"A6�G~b4�^�S�c!}�E�
4t���Y�8��� ����
A�]�_��F�y�o1;�dI�?���.zU0��Y��y �}8�@� G��|�ℇ
+��4F�mR�!h��4����VO��S�Qfb<4/ұ�r@C*�O#*ߎK�CEI"
+&�$$4
����
��j ^��w��/ۦ�(*h�U�~6�ΉHbx
z �����/�g
^�
�2y>
_�-л�sqSuU>\�я���|�D�-�|
��6?q(�>��֮>�8(��ʻ
����0;2��5��Z}�C=��5�����s��Kg
+�w�>]]t����j�Xc_����=�F��#�g�h��~0.;�D�H#"2�0c!y]�������$��
�3%/��&����,�F��J��i7�F_��so��:U�����
�|g�UR����
��m��
.�ݬ���L�&"�0u+h�iB3�Vu�q���]��Wh=e'-�M
9CF��r��l��� --�b��:!EQZ�����~1��H^5�י܊�����xgsp��-iϞm�����y�6���g'�hp6�u7�ݥQT��g0�
+_����h1�,����y��
�f��
+
O��*t4� �I�m`�҉N?sY�\�S a>Η�A)���0IMA5�$̊�,�_�ϙ��i�R"i�S��W��֞:������6,����O�=���{#��O]xpWJW�%�\.*�)X�=MUm
xi[*4�Vm��6�0���ip�ն���{�C��:��S�S���,��Sv���D�ޖxB
"�;�#��Ѭ�Q�2��+��i�P��U���(����?HGOr
+9�O%IN��`��oV@����\���׃4!؍�ob?F��.ؿ���`r�%�NK
$<9�r&�5
�8�Ί�
ޢp�YY-V�a���2X�W��S� �'˯O�?~C���
4_�&k
]���=�d����"`/��q8����f�k9RV$7� a˫7��6�h"�.i ��Wl2��_0�TU��sXGY�E��,�X�y��D�1ȝ���$&�����j�Z@>U|`�, 9��nd�� I���z
+F�Xss�X`�\�fR1�
�]�G(A���5�7\��Q����D)j�:G� M��ے��KYЫ����徤���(a(:�
w��!��o���i��ի����Hz[�E�nT������b
+�
��5�rSq;�h�
G�@B�V�셆rk7 ��-�8n2�ՁD�E�fJ���jPu�Q��qx�JwE8
8Bӷ�j����!2 &)dt�P,�I���8.��Q����>2�DF��Ŧ��֡������� Z�:�D����-?�!<��Pj����H
J��G8piA�$��1E��!���w�$k����d
�"�
M
N���0*�mx��<e����!�.$ ݰ��*����5�8QlKjdlC�3fpWk$2ʉ&��B�
[���=�qm"��/�`c�xWnh%:�Մ_[}5ںY�
�Q�o<���Y� ��h�N%:���t���굨�>�T�a��6ͮ���`�GDﰟ˳]�dwe����d�yh�~D�� �� O���&F�@���\���X����
���l���*
X� �[$D� �+d��1�(۹a�E�K�j
��D��"�-����
D�;�mE��`\������*��ӻ�spVJ���
+䍒f��
�Vî
+��tX������EY���=,��ڦ{�a9�
+��3_��ae�
Wbf��G�a��q
z*y��[��oJ�>
ue
'K����:T�9��;�
+8���!�
��?�ը��?��u���2�aV�q&j�gGΝy�ǀ��e�Q�����}
���,>��b���R�H�W����_���#g<�
+�'m�y��⩎-�MWB���w��D��K���=�2N%Z� ����yo[R����$%A���I��;H�D�.v7���ܨ�`.���� H|��M�1�
+Y�p��ܜ{�6�
`S@Wo�ـE��v��Δ����&tG����0�~&�%c_��w��
�D
�$�����+�.*��z_v�V}W��r�rB�5-4L'��'��
�L5���# i�7:�CO4�!|(�6YI�$۟�
��)I$͖<�w/� P��
��Y�����j6���
�i�3@��.����-
d�Џ�� $��A)� �wM������
E�Qu����iNn
TJ�[��
��P�W䍳ڂ�t �[��
+�'*��l C >���
��]�0�yr� � �<H�P�T�����x�bx
MC�L�3sL�������(�h���D@�
+�Q��D �l��L�`�ܛ1h7�a���6 M�;���� JَA!
�!��
"�wn#�{�� �Ԩ5R�QHگ�ݼnSͳ�����ck���J�gJ^�~�8���
KC7���s �X}9�{A���-�DÊ�,0��▣�����
F���,��>��=��
�+[��.�����\O
��pk�i6 ���Ʀ�z
�1p�+�)����dl����F#�����b���ZR� ��+�'mT*�=R��"BT����#��b�D#�]��/=��}��6yW39Ͼ�~�e�d3�&<�N��^�EIЬ�$|����J/�b�Z����~o� BɾO�C��|
��
*p��
���R�(pBd����{|���u� ?]I��J.����̦�����������m%J|l�iF����%�
Yy8���)�3y��J
$R���'�@�e�6 �W
D��7��BN�AWzY" *�&���H��y�D��L)zH ��sj滲:��@鷕�S�J{��Js��I�OUy��N
+D@Z�Z�*A��L��e��m>�Q|��O7
��[�S=�2R��ûMЁ{��'���^ �B�M���g�,���YF����CW
}%���2l�
+��
�ix��CFw�v���%&ȕ����k"t(�k�>mP�bb'�x�na��Y�˿H�$2��y��"4�w%Bk�
\�~
m$=��4,��T��Oؠ:E�F\��FC�� (b���:�w�ᓋ�QP����
$Fk��f����.A.���J��+�$���7n�AZ����Lh��e�S����
r!�.��:�vu{}�9�ǐr
vW�����H�]8�:��
+)lU���"�
+
+zp�Eͧ�Of���>�~��SEju*�0
+�RC�@#.2,��W(��du
+�]����
���j�ABs
��U� �"hfU
m��M��
<��A�w��t{ީ�{;�\��Mh?�y���h(?Ay�xDC
ΓP�((�0��U���AK��=��)�*���7)+J�СFM�jm�
+Xh�i�p�,�Iu�g9�j/��8���$y�B���t��V�s -�Pm�ٴ�e�9#�:��,���.�(����Q��3
+mp�U �LzS,t�J{��Py�uT3��EC���
TU�� ]p�+�dm�PQ��Z��c�����'N���֒ޯ���@hR��4�]�֡�����m{�|
:_u(+���myh�:�i��]��V�F:^���,��ACk�+�7��ڳ�̪�=Ĥ�m)\QI�:Ԡ�{h�t&�yXa �Hش�X[��X#hS��K���˷�����������mw�
��\�����Mp��
�}pӤ�+\T�aⰻ�5و�
˃$(g8V�ޟ*�4(7Ӽ
�+�>���R��*ij��ʠ�Rhڢ�������������E����xq�0�t�� :� �z"
��}�ʃn�HQ�6�a���H�
�����C� �u<Gd ����ql�^
��qo��|=z��W��I'��H�F�QL|�2A)��νLt�V0х���آŔ�"��
Sݰo������Kn�c��g;�8�_��:�����
o2��m��3)#j�|�V~"���q�7��.:��m��� [...]
��=�AZ�Ne�B��(l�ko�9:�oI��\ j�.�n��
b���l��u9~�j�ō�N�ʷ
�P�4c�X���0�tL�;���[�C,ڻe�P��p�j��
V�;,q�
*T=,�d�#��u$S
�q�SW�6��/s���G���{���zO�c�7}u�M�^�����n�*���
%s�ϛ������,w�0��
Cw����=�[3uo�M3�S�y�C^��;mrZ'��\
�Va� �$�?��>[�vP��&��
��3��6�^�S��I�1�e�7
m��u��ׇYF
r�g�rJ&�]��=��
_
�+P����B��bh�ʒ�.�4(\� �)]^ANI�/�L�Q��
G�����t�����W�x�Qnk���N��O4���u�
NO���J��d|�
��`��K�n��h1�1د{������0�ye�W���i�@ߡc?;��2���1��f�fݖ���Vz�����
��/�!k2r�.�{�Z||n}]������g�Wv�az�#ܘ])����p��+�kBZ�)�ov�E�_H
�~a4XՃn�Z�{�˹��gUnCz�Od�:l����g�or��=!8\�ɕܶn�&M��o��ڢS��s�zJ�ձ2��e%��Njj(H��`�����
�
�
��A�;���&Z�&�ӓ�z�R��fM�_s�
���� 5
���
zm@}:�����E�9)��(̂�+�U
+1"kp��R�ݥd#��WZ����4T�;��:F#/����u�~0a�{��2��<��֞��vO�(�Y���:�_L��"�����j�Jc���`~��̀ O��Uz�h���"^�^���&�Wr&�K�k���{/���l�'AE���֩��-�����f�����'��g�
\��x4�n<
�����qo;�E�3E�e-c�欿��It]��=�[��ha+�����lq6��|��[B6��Q��ꧠK�<��)�
+T
+(��Ȗ���,ūMY4�A�Ǟ�X�B�y�:+� �`��:��N��P.2PP
+$�_Iҫ
D�(M!��Ɓ /���k�]gb�\��A��t�m�XH��9���
��
{u�y�@(0�����:h���v��;����
h+��^��C� ��Q?$������* h6��: �/8�E�\��\H"���
?���/�+��n�����w�E}!�����*����g[*���C+@�À�E����o�+
i���^��Gc�Q�#ѝ����
P���W^;�e����k�lx�`f�a�`�@��̍S��B��i�Jm�q
)�;�e��Ҝ���)��қl��d4;
�zk��^� ����d� ���0
+`YXBm���8�WLJ�$,�K���Hi��~�����$��MVJ��E^�R7�F�� �1��<�'�ഉ��!�u���=MZ�����_�9�})^�̷^B�>8��i� �\a� ��>*
Gu��ȵ,�
Kt�$+iYy��8��^V��[��˙�������:6¬*x����ݺl�Miz�ײܔ�~�e6��:&�ɩP�`R���%�k�a��rVhLc'*G) 줶��
�B09$� ����dlJ��C"��7�hqߎ/6g�D
+6o��R�nġ5�lB7�]�#���rP�mP
.哑�(��<
+��N���h�[ѻ�6S���i25�e�ƈ���ƶ�h� �h�(��x�V����X~����ڌI��)D�)ؑ��B4���d;�7�N�e�<u�H�؆%Ya�gg,U�;Xs��U�=
��g�z�
�&�r�/W��j�*V�/@�Rf���� �� �# KT�ƪ
�5/AS��r4�Y�i���֔�n_p�ו�ĊH�{3�{�)D�
og3�g�C����Hrޘ`
9S���G�k%y6
E.n�(V26�J������)
+fL�
�g��
VJ���"���(��
+�!;*�#e1d'�
Cv�[�N�BMdž�a{kp!s��lX��VذWiDžb��B�[@;�-;^t3����yd��9M#cJ�/$��
~����a�
�t���Ɣ�[a^��À��:.Q'{���t� �}��&b5$�b\P9��P��|�?�Cc� }�=W &9-
|ZB��BLWT7��;IK�����R"�Q^���6Z1e���9O+Q
~
cmӄ�:T��!."Fp'5��ɀ^Z�wձ�V��}�q�����T�'B-�{JBa/!�
[��k���fjC�8;
�Q_>?Ϯ^���Ѱ}ZVkDZo�k��v�[fa��:�/��mmЩ�V��ѷl�����i&��S���
�Y³h�$�K�=��գ���;?�L����fN���ϯ;w����Wo��8��I#���u�M���3����<�9|I��{�b�u�
���_w&b���>�4R{�pN��u�fk��5��0�_��AN�Z{��V>F�w�9/&������<q�Z��F���1M��~.ri�i����
��0�
.��N�w�ιe
+���fk�Ntj\�_�|�(��vz���;�~����jz�p2�r�^�*ZW�=�˙�b����;�<Q�����D���{Y�/��ɯ�nm���O��'H["$�?�p �F����ERۘ����8�מ
� ����-�ւ�^F�}��U]ۘq,��0�Q̬������sV�go�4�>4J��n!��t� '�8�d'(V���ݶms�k���BשP�uZ�u�.>�N
��s^v8�:�����V�i����2
�o0
��}AP��T
ihcf�
��/�
7��kғ���2�쎫�Ǡ��]�U�-��g5
�"��B�Zhz�(�r��B�߃j��6]�m�\������*��tѮ�F�>J�>*��~n�@��Ѱ�e���=;��A��9�|* �\I(�JZ�J�ӆ/��6k~��<㷪g��:D������7�~�։����x�O8����Y�+��c~��k��|;G�a
ɾ+���ƚ�
����| �$����z,$<L�#k��$3/��)B�j�~��gT��!v[l�/)J桿,\��&r���E���d�e^�t��qߎ�JPS�/
+��2�&Ahe�J�X2�K�I�8��>
�PLCxo�xO�tu�=����x/�\Y��\p�u��W�_oO�-Ս�U�r9�Xf�$1#;Ʋ۫Xn��o�b�M�$tJi����z��
�?u�VWҲu�.{�Ҳ�9����
l@�e&d�C�;�ۨ/�0�:�%�n;�̩gȄ!����0����`e��
���'*/��b���D�
�տ�����_X�r�� O�ջ,'&%X���Uu��F���H�b���E�dD�;�
t*�^�����e��Ӆ|�����wH���xT'ɺj�u*�z�V�:�Ur/
�NV�}#PY�Ga������SՐP_��
+=O����s'��uʗo�j�Ԕ��
l�v�k,�/:~�v�{o䪿�hA<�V���B��_��
+��+t�������<�A���`�$5�]�Rۏ�FN]þw�@��ѰK�r���&��A��9�|pB�.ꖓ��<;�3n�
������U���#QAY�a.uB.���+Tdd'W�2�by�d���XF}A�i�by�a(^�`5=��R(u���N�v'���Ѽ�4�����5&��ByA�I��N(��x��sӄv�R�"
̺m�W���8qa�b��\I�:���;Yu��3u-b�4}��N2���Z���?����y/�Py� ���lj:�ALy��c�L`,�Ld���f3����|��q㛒
V}����v���
-��R���
�KF����VBK�+5�U��w�3��qvϕ-dL��D�N�+<
����Ŗ��˓�Ϩ�?"�J��A[�N{A_��`���_����&�t�b
+?����r%��6�tۦ)2�f���x�Q�D�jk��P�wC� Ί�;���+F3�rV�
c�~*M�k�l�=;߲��^�[��` �>D�R�E�qp
\�EG�aE8⸰3����$M��TOO���7�<�*
+�h a��B���,H|�c~x�-Y6��mh
�eQbZ���"�~�l���jC� �6|חf�6��л+=aR�ކPT)>��x��i�ӆ���<�����!%E���
Y4��|�{��k����#�lt����O:D�wo�Ȣ:,ӷslhX�Y�Y^�Dg
�=Q�s�����p���(E�;]�R���v����D�7y�CJ)f�ӆ0��r��%ŝ0��QJo��*8�~!���[@�j�.� 3�/�����y]�w_4
����?rm8\�!x�hC� M�
�W�^l1bs�[����$����J��MJX�_�˶�����]a�9WX)uں �;���|�] 2��E�+9��'�]
]-B�$+B �ؕ��{�
���ݫx�Ȁ!���k�h�G�{�P��/Mj��;
��sH(��,BN�ܼ ��K��e*|�j��Eve�
[�(���� 3 ��֪��܈�+x�͆���ڜ���a����
.����k9��`W�����W�p9�^��jE�s6�{Νu*j������ҍ�;�
�l봨��'��>���퇚��w�׆�]�����,�f_�et6�C�m��������,�����_j&_�y��w= G�(���>iL<��UĮ�Cf���|�/�dIGٿ��/��?2�TgT
��|0�+M4^s\�f�^�s�S�)�$SJ�C����@��
SJ
Sk۫���D(=i&����Sj�G��WZ~H��?���N'����=~�(=�Ȟ?el��~�R�Ѕ�_&W��xiv8J+ImV�yJG���5a�U�����u��T
$+��R�
`C��q���
+�5�ԣ��D|߾�d���]r"#1qw�J|�h��p��y���^�_j��N���w��yGE���o@���T�V�ԥ��&��P�����
x�å�~.þ��Q�K ��MZ�L�n1�2~천m�|�cH8�:s�e�6b�ں�Z� JmU�>#NzBl�"
'z��'\�p�c�I� N��������2(�&���I��H��'a��Ȩj�=�N�d~V���7偔Ip.:�p��M~�t�Z�
�&�0 �WKp^���J#(eF��mX���8} � �����1�]BU.]���*�N[71]$�k���>%��]�3D
+�
��/�|9���C��`��k�yL��tP�t��ك���R�C�l�リdx=ǽd<H�H�6�(q#�Znӌ���
�&Y5��
W��f&t�&�O]�I�Ö`č-FV@�p�vnN6��
�ƥ�]@�(q{�-�����l�K�)b�^ J$�0��j '�. C��l��0�Qp�!����&l��f�}F
��[1�H�VQ4��
�)9`�$�3�
Y�\RFQ�
7�E{n�`Ĉ
��^O9������\�9�bP4Ia��$�
gK(�G)��̈?3bG��R
a�:u
�@e�.�`��j��3�DE|;�p��~
�����&�[��@
�=wD�K�H���a"���@�]
�ο�G/�z�`K&�������ݛ�&{r��M--+�#���'ؒ1n�y11'�IW6C'I��s�~�I�G�ް(Wr�Q
��L�W�N8�
�
r���C���RJq�B@Ecty V��X�\�"n!�J�^�`�����Q袭���7IqAJ�ŕ�.��$�.�W�t!�Z���d�}�����9F9G�fNֳ�ةS4hT�%�o�{1�g��h��T�nk�@��
s��U�'
�"*���
+�EtM�C�Lf���eX6�RՄ�]�v�J^�~_�aE�.��b+ME
�&Q�8����.vM��c�V�u�
+\C۱��:
dpi���j�Χy�v��� �
_d
2��e����iy�FӒJ�0N����*�#00,Ǭ��iI�����Dg���d���]Y6:��Z����|�Y[{�T�� ��C_�~���z��[
-
+�� �
�c�B��EB7'�ࡄA7p-�5�byF�P�5 o�W�T�����8�8ٲ��Hc��&zW�a�w�\`��9@��BF�Dtx�K��A}}i���֪�����hxH�/{�0��O��Z]-<n�@�^�S<�tj
+;�Ĭ1m^�E��ov�7��c��5F�!�5�(@Rȕǘ��r8
Ȓ�Ky�2���v
����P�I���d:�P{�������U=�6��4�
�> )Z$²R�
>|�yy�#J��<�"�}�k���{�G���
����F�9�%n�?R$��p�I�V�X�(�.CHJ��b�&f�w���FT�:�%ŧ�]9�l}ڈ�͎�emC�+'
�9d
�r�z�-��w&�wY��ڰ���%���߯AA���WЄ���s��\��&ُچ]�6����_Ha1ڐ�m�� ��-�
endstream
endobj
40 0 obj
<</Filter[/FlateDecode]/Length 16312>>stream
+H��W�Z";}�~��YZ�gTp�a�A��x�*���$
���t�'3©�S۩��|�%t{
��'�l�s��?�t�DB���W>��"7�e:x+tG�d"ֺ��k�Y�нk%��t��&�&���蚎��l�b��hC��ҙ�0Z���Wcn"+B
oMwq�h�'�RyZ�`ew�a��
`���2
+�
'��1[��,�rˏ��K���lƲX~9�9�0������_6�_ |v9G����o:��ߋ��q9�2�Z u ������
�D0�j�DX~kc
+�x�?⯍c]O�ș��1�|!Q�Y��7��`�k���a�4�
6���0� �uE�=ڦl�� ��� 4
�Z�6
Q_�#@�N%�W�����t)����P�
$N��rpΓ�U'���lt�r � �JQ�/O�K�Mcg�+�j�n�6�6�u��A,;��`�цf1
QL��9�s�Cf�R':�\<W7�ٱL�y�RӁّ�3�
��y` �- aLw���Y��" �(te@��B�%`�YՃut���\�IPc�ᠣ&��p�cς�@y�k"��
�}��pɢ�X�l��k�%�R��>{1��]z�����JX!S[콬E��F��P���G�
g�P� <2*GKZ)��
f}����ŦL��Ce�
+l1X:xҼ��)h�R��c��T�� ����6�H0A�ݥ'��K�1ʩ��)���vo�����抒~���"�
+�b�I�w���}���
|�}��
�Yn��sO_f�N�B�s�,�p'
�����KK_��H���xb����rY��D�ǧ�L��ũ?콞:��������/���#�:(�������o�@g���h���5jk~���_}��F���_�B�!�1��g�̾��fn�������їP(�]����K3����;R�� [T����(��,%4��f��xF5
�l��lbe���đ��ˌ�h�|���f6���o|������K�g0f�o'��-�;:���:�ṇ��DDJ�_>x�
+����ǧ�[`��һ�~��
�
��xMAԏ?]��.X�Ꮽ�Y]/���Yt��t�E��0��g����}(ӻy�&�v���ۙ��exmUI��-q��a�
�EC��
���W┇K�ܥ]Ұ�"�y�(��| kե��(]VÀOÕ�.<E�<�{}������K���t�W�R�ބ
��-`���}���zJ���{
+����
��� N1�[D��%�+&
�T�?|M��XB��7�>i3�
+2��8�=��T�<%芯����j�[�9B�ŗ�}s%S�[�5� �*�]��fEO�-�sT�N�ռ<0�� �0
��
_�Cx�l�
½��G����J�.AΙ��+W3w�l4
��5CL]Ri*'�s���������dp�
6#�|�f[*d��3f+j� 3�:_�v/��>����Y�����~�D��a <����-K��s���~����l�/�0�"�}&~0
1�1,7����
�����m�.bZ*+��j^���t�۰ �/5�n��.�
�z-[jj��>"F�}W�d9�ȫ�&Y��RSP�So��<wR'�`
e����J�P�_�нk1��S� �����T�X���)J~� ��h�z0�
ũ����A��U�ѳ�@��L��RO�bSĘ��c��fn�ÿu�*�T�a�U�bq���{��`����q�F,ic���Hߒ>����L
+PJlW�k�_�B��ҖR��R:\6yv��P��.L�
պSf��ڒ�Z��2U�
ħ��
zW:��c����\�7C��A:JGDev9GcX���<��I���
+���'��RO˿+����
l��z%�X#�H�/��g�b��G�����A
�_ շ�����v�˒���O�yrY��J�'�4ݷ�+WLlz_ѩm��3�49���]�璽�.�.��y�IF)��4v��
=����w�ي�s
Vc}ȕ�Nˏ�
+�;?�fH���\8H�����N'^v`��iC<�C:~�N�g�G#
<i^
Z&L_�NMlB���O[�Hr<
t�QEB�
�.A��c`����{����!��h +�s^�]Z4%b�U�%ns�pn�p��J�ݵv��� F�k:�g֤%��%��d;���r�(�܍$��9=8ܚ/��1�&
+��w.���9�
�K���+�3��j}���ښ{4.��x9�G�Rֺ����&k�BG?>�q��
+�&��\�+f��W���H7�pFH�Q������c��xۻ��w&���cJ4*��`��O�e�
�j�1�̒�V���d5������x
�Q���+����f��78�DuĠl�bNa�]2�j"���K
+�1������`�ܱ��9ԥ7��V`;+<
�0�3�aF�.!�/�TB)/葋������Z�妌�D�qΔ�3A�w�;Iw`���� ����@Yjڒ ��0D`�/�}���O�^I��W� �ҕe_�?�������d��7� �]Iܹ���U$�h a'I*�剛���4v�9KVE�@��lV
K�4]�
���ڐ)vt�r5��/jC �v�|�����W�������EM��_��Ն�_�g�6�n�awkn��ˎ�
���<0!�+1X�l% �_jS�>{1�/)ݚ#��8�V�����C �we��z����̹W�9����`V�r�#�
��B��������9(��
p�h78�,��@�������a�D1�a\>`��J)7�� ���9u��M�n,�c���w4hB{�;m8Xl�!�l�6d�О0%��JԆ�
p���I*sa�%�P1�Tt^8Ab(7/֧�i]l�J>*3v�`��4/e`�C3���J��.{�zݕ����ܴ� C�ǺlM*BI����#
��b��.Q��FK�`B
+���%���X�
@��<���[�M�Ϣ ��˂�{�|����EI��
U~���n
ӏr7-��
����p���\&��AGL�
J�Zy��y��?�U����D���S�I��H�Č�L�L���ou'��}���M�IWת�����ᯌW���1# ���+q������8@��
+u at 8E�t�
��X��������C]
@ž�e9^{�Χr�,Y��c�7�粿�˘}�R1� ~�B��]DO����Eۖ[�wȖ>u'вG#?�r��Ŷ���� E��(zh-�hn�������l��g۫�;��5��u$��ʭ���U��RUK��n_��:_���(�vi�E���u��u��#��t��!�a����@�a�rl�h,�h4�om��9{?x��G��kG��NpC�:ضp�#��հ��K���B��Ke^U��,���#q�����_�I���ƿ�i������:�?b�1 ���R��n��o>�w��9čKuw���r]�"j?���&y�K��X��״���1��C�쐱�z�����c�"]@�ZQ���\Ff�s��;LL�bU�\{�Ngs��#��o��M�����E\c
�RM���J������g�.���C�b����.��F��G��B�+S쭧N���:��SE�Q�ZϢB;��f�K���
ly�ż��C [...]
+h�C eN�2��~}��O&>/#�;�h�g�H��0�I��J�Sa
+���:j@7 #J<Ld�
�|��k>�����6"|���Y/�g�@t��~�
��de
�O<D4n�
�ot����e:�j�nO����zRߪt���r�O����Ur"SN�J)�(��V��(���=���m������J%�y
y���Ob��O�酸i#��%
�&��E�s�C��Zb��w�^n:d�$@����4����nZ����e�#��
�<"����mS�Ϫ��g3/6��82F�cE�v~ח�6AxETSb*32/�e�h��)oʙ,����+^ǡ�|�
&
z�O��n�
��7�B�&��i&�����/A�[��a
�v���k�9��F<5c\�K��
r���O�}���+�}VNJ�G��'�t�]����
:
�X)
�E.p��<l���q�l�F.oH�֬�T�Z�η���ډ>�Z��֍��P��SfH
�~�%
�����`�w9V��,
� �I��8ĕ�����K<"��Ļ�K����D��.v��tW]��d�销-�0_���M #��?x��K�Xa�e���f�
+�ye OO��&�a8k�Q_=o
&�'�� VNv�q�Qfb����h/����p�&��`gv�X�
��
&�ϛ�X/����8��}GpJ9
����gw�����s��j��G== �b[����έ
�<���ŀ�.
z��� R�OCŹ=��Un%wTTI�I�g���Ԇ�tT+���c�ϟ�t���o�d$ad�dT6��%j���(xNx$i���e���&=%R͇��
� �E %���
1@���F�}i>�?�Bex�.�qG��MF/ȱ�1��\�ٷȃ���s�V&�
�}���v �)���bU��s �?먼~f��N����߹��H8M[6+�<f���SY�[���
gӿ9�WJ��=��)��H'ysIk��=U�"��}N��/���B
+��
+q
`��P%C7���/3�'Ée(�u
�s0!h����:�懱�� ��m�� �6T _�Q̳���.*�a�.I�gV�
�/���~C�&��ױ��j��E~���pvS'ٜ��c�<?]<��� ���x�}�a�UA�
�7�X$�O͚�X�DT�JdUu\���
-�y���ǼUxi���
���
+�9.���]� d��w��� aqp��>6�����jd|�BZ�
�bQ)��p�[�_�)���������;
Ĵ�iH��a>y�^��k�6�ݨw��������ۙ�do��#�L�VU�L��0�,��VRG�D�ߟ�X
9 �`�����|/h�h��
��B��i��.��
�%+ԗ�vE۬�$��Z��e�s�G�t�h�W�&�=[���j���ȁ�h9S�i�b������ݿ]�6�/����9v��1K��+:@O|�
����6}`�>�ٌ�o
+ŕ�
]��+�[v��-��Xd� A̧���[�������M����U��,D����DQ6-�TP���5�ܫ��u����y�2���2�̙33gN+�<����MPkx��H�$mXR6��g��a���h�*�M�������
�egn;
h��������?�@y篡��^�$W��0g�<�ی.Ԅ
r��s�I6�G��G�� ���B��GhQxފ��x��X���$�ͼGZ�$8���;,v/�
�
��ކw�]�.m�Dž��B�O��7y6��_J2nf�Q8�a�54�<�u�^��u3�9�VSܽg���S̓h�4V�v�w����(j/1Ԧ��ȱoj����+���?�,�z��
��j`wL2�fb
#*�ɐ��+6#����
��k2�z������oI�Q�+
��;$���"ã��V@/+�H~���gı�����(�0�r�@�$6N&0�� ̵Q�TV�9-��o�v�:��l�>�L�Ep�@�OW�_��
v1��!a�ڹ�ړZ�:��
ܑz��IG�]�*'ΛG�:��]VM>�t�H�7�>��5
rj��Ay��9�}g�۱zڀ6x�Ә�M17J�1�ͽrP����{&(�{���JP���I��1Y�f�
+���$WdG��~�=�ڷ���
Am���B�
�l��&�c#�j�ikÑ�2ğqZUBS&I�V�|���H��x�n$7�ܣA�+�$� %��=�I����{2�L45_�m �n�ì���W�z�����)�����u������d�sW�[ÅS�k˂
F��L��g����cFM�l�l&�<
���
�
!= ��M�c/�E�' e-.Ⱦ��ړ��
y����qQ^{���dK�"
���1'�g�媼�
|�cN��aqM�im*�}�y|����RYa��DI��4�in"��a��ӔP�2͍O�Z3��N�{E��n��g�A)����v���k
+�˹;夑��CN�uN;���ףT��VHb-A���WR���͕��Q��O�����#(��g�d�ꛬ�j���mj�.4�0�F�RYm�X�甁XE���
����(��,v(�ھE��{��
q~���]O��G�9��
�_z&�'~m{ݱJ�/v[�`]�ofΣ\U��S�.s�i`0�d���_��dHN�����!��z �-��U6U�9��u.�>�/'�'�%>�V��K�3z��>
�2�ynNdDž�Tه�ݟ���ކ�r]e?z�;�ڀs9�ӹ���K��
mI�
+�rsRy��Ԣ$
{�-Hg_�lNk���
+���$"UF��_H*���&
�;h�q� ����i'�'~W�����CU
6�8���x�v�a�x�l`�a�H�nM�!�W�.5��,3`BYz�c��-�-D��T��"�
�l���
ڶC�#c�D�2���ڔ�ƹ5W��/��-&�fԶ� �2 �2���6��_�W*T�
y����b?
��ѣ��r9je by��x��z��^�x�MЙ��A>(�!�%�ɖ$�81߉p��
߃��"�
(���+���.� Eb�O����;��V���/����E(9,�|�ɇ
4,���[��e�{���鳯��i�VZm8h4Ĉ���"/_$rJ ��[�EU2u��8f���Oq�J
nd"�a�pg�P�#��?���i�U�<^��c�;�+2!��H�� <����*-A�[A-��¶f�`���A���Y@��r
���NX?�8����W�Bk3ө0�H�nd�7��'�w�Kt��%��+j��1� �2��
+z�>���^C�:#{6"�
�j��nb�����X'�O�@P�*�!l�ʽLD
��� ��� �k�z�T�+V���f�c�W�� k3�u�;�;
��`�i6��&1
'�Oa7q�
Y�дi�����Z��J*N�р���6!:������&��V�5�寲W<�z�?��e��?���� �9�-*~��c���".x�o$p�y���d�1^���]�)�x��0�xyw���7ِab��ɖ3H;��9_�!!q^��L�}�!E
0���eCr"n65��aW.ث�9^̈́�`+kۍ�=YF�n'K&���M[�j]l�En��]��W�5
�9���
=]h�
+�}�Z2U�j��j�_��qq�^a���1&�h��8}�,�W�2^I��t%�Ү.HP�՜��M ��i
+��s�~= �v5��_B)�J�� ��p�6b�a�x-���B��c�o8��IC��Fx#;�e�*���X[�z�LI�Vŧ��U�,�-+��GͬJ9�㧏M�QU�ߟ���ċ`Rx�w��� �R�Y�_���,��"7Mġ�TD�=��3���
�[�[�z㼔i�l
�Of�5����?ۃD��L����H!�X��������y�S�S���w�TJ��,W8
��U�_�r�1X��t��۫T�S��>/��~v�,�B��<CP(=>�z
�rF8JK�߿�r��)b�=ǡڨ�7���'t�����
9}`U�!�AL���91L
C��dR̋-
\���|u^^o��W��~����X8!��SWC��% tU�ӳ�Ѯ��+�;̝��`=��l`b�v<���
�!��ݧ tϳ��r(B}��'kl3
+-�U7?�$�V
����H��i����'�#@�h)��o�b�7䳜AXT��բXK)�Ō拃�bR<��e���D�'�!" d�<&�PA���U�$
v���?��B�SU�v}E?�-�C�(
��+�'c$�v�� �g��;�E����9��FdF#��;,#�LڌWז
+����Q��V��i�c=�������v���3��J+�u;ks'�Pа
�<��L��x|�L�FuLѾ����!e ����P���؛�}�%��C.c��
�%g��pӄ�z�rBz���J�i��Ɯ
n���
[��gdF`/�7o�P��%�&i3y(b_@�
+�!I;���$�`�b���F�� G̓�>�
��r�rңSe㱲5+�
;-��B C*�UvL@}3к,N��h�Q>����͒���9�� ���
+jCS
��8�p
5Y���iV���T]M���W�&I��Z��.U��B-�/O�9���cj���*=]J������$a������|"�5M�2�� ��l����
��,� J��NC�M
x8^��HG�-�'p����V,lb ��1��L�M8���m�}�T�
eoӒb01
�>�����M����� ��
�� �~���|ma��`-0�k�}��2�� S�T63���8�2^����gey������FE�Mt���l�v3n1^�SP�ӄ�x
4 �xwwki��ݠ����J������Űmf����
��ʂ��;
�8}��$�6�CO/��♥e_���9�wt��>>
ː�;k�B! �ı�l��=
��~ lБ��
��#V����н�f؊�H ��$K���ȧ�K/9#1���p��W�~�OD�K��_9�w#�r<��� Cop,U�=I#1;`k�g�*g'�����c���`���<ய
�tz֮�}xFӆα.1�V�D�I6�A]'�>���d��ahJ)�ll
b)c�-��, at v�
�
�e�=4����� o&�=�%�����Z�@R>B[؛2�[-
J��wH�]M)�>3�c�|e�`F5#��� ��u
�I����$IA�%p�Gu��k��d�Q-H�%��H��h����&��z�3WY^0l�#��.,_�s��AC��Q�����}��z���Y�i
���*v��Ĥ� 4Mj�Y)[���
��W�I�=��=�#
Fm��x�f"����
�蝁|�8b ��
8�9>��M���
+w�ذf��v�E���P�Fߓ<�U��E.�m{��W�
��n
�
\��E k~%�.���S���X
�e�ů� ��E 8�}����2�8:�7H�k �s�"^�]�炦,$V!0��
+7n�8gy
.
[� �t��y�S������}n���D
V�dQ���)��7x��Tӽ:�e�"��!'r~t
F樊��Q
�M�Bw��H�}���
+�%�lY�� U���TD���H��)��� s��
�
�����π�`\@_<��։�|
�
۳r
o��0Lo�{�o�f�^$��Q�~�v�Έ����$��5)]�&y���]'GG��߽3<�����M��}숌��I�
-3 at N[���K�;�EC�HL�0L>��]��B�D-\����pI
�A�Ldb���
��k����T6
+�ޤ��H���@2���Ȗ�J
~dT`�4��*�|j��W
�Q���'R��y)!��i\G2��C2� �:!���Fp�Ne�B�,��ᾁZ܃�G>$ �$�|U�J`�K�c�z�, �u�j�ʙ���Px�-,M;�Β�������\��w�h�Cyy�_9x�
^�����Y��Nj�|��w�i#2#�e���/�6�յ%�
+��+ �n
y�V���s,�W4
'��hWZ��~{���T�����\p��z�;�w*Xi
�:��ی���Y�F7'i�!���h
WhDݏ���o�4U0+n����7���&���
q�z��
Ɓ�EX`d��c��h���
B�
�.����-"P{�PY�v"��trR�d��Zdϐ��o�b���`��h�ɤ��k;��5@єG��8��CӤ'�g����G�W��B5.O�zq��.W�gP7�%��O�r70s_���F�
ئ�
�s
Ho���NwS"ia��z~"��~����a6�ֵ�|�@����v(�1�Ż}
<QS&fm��w�5v'������������+ at I. ��x�
�
w,8����1�z+-l�8;�����{�Qd�b�gぺ(�ZAz��9�w
�j��~7����|J�oܦ��r>�{����ӗ��O6�H'E��$0E���!C�{:Fx��R��2
��#
yJ�h$0�Q��iZ)�Vp�S�*�t�1mN��Z�
+���0���"��T�o�I2H]�
�A���t�y�Orj�{��
���+)\l��A�ʠ2��B�AO�ԁfxM'eI
+���'��z^�<�2HJi�����&��B�9+�|�]�����8
��Z���
�
]QɁ��'<���X l9Xѵa�FM����
<�h�zѲ8�/@N̋�5�l[����O#F� Q�$f#:��^7\������,W
h <���-�
W�P<t��
+����X �v��[*���;��Z!k�/��S[@� �4;|y���;�#����-k���
��L4$+� 13
+��'.�[�����_���:P��ĿaW�@��o�g��,��Y�i�cɠ�L�?��t+qe
�O�;t��a��!̢(��(�� �Z��}��w�B�ms�s�d%�ָ��߆�7�����;�5������u��<nr3
�Z
YU2�����f�U;A�Ƭ�9�hl�se��̊��>���
�< kOjY�͡4��2j��p>
�H+2�*\3���N6��G='T�R�ݯ�0|�Ӂ
�Ȼ�-ݳ�Y�_��1�윳 @��aJ=�}=��`������E�_ԁX�c�k]�����U� L_5k���5P0��lc��$.���t �}�k٢�V
!���\
�k�r��绵 ξ�'�Yi;�}i���H����1����`���KJ&��c��r������D���~�cx�t��+�M��'L�y�.^�����:U�Uq��D�x��������`7�!h�Y��ݻY���q��ـ?`J�Rת�l=��Q�
Z�� [...]
:$WV9�B) n)�?��붂]$l��|bv
+�9dg��:[�ɧ?煈@� �GS���hlaQ
�t��b�
�O��ӝ�|��!��0��Z}P�IXs;
��6��K?!����h*��KTW�4�<SO��x�m��c
���(
�趑���m�(���n�_��-��ky�O�3��<�ݚ����o�S~9C��la����;9�馢C��%HfY����(��A3���Yܧ3��|K���ӹ���w������E?Fx��2DZ���!,��`������~/���Y�,V�ۺ���]��H���nkބ�e�u*Z�W��nJ
IK�u��-;���`�fP��nV��Prhb��V��]�v�5�=F)
���\ܺ8���S�Ȋ`�$�/w���ĿTD�>��D�O��HR���c��_1���x�.SeS#a�V�i���iٗe
+*�Y�aHjQK�
G��f��Q��C}В
�?r-?*A��ʐ��|O3����@�������z���E*AkzF�p����d��]�V�l2qE�����P��mK��i*#��L &ߏ�
h�����\c��Dw� ���9*$.(H����*'��
+O?�
����2GΔ�`7�;ر����Mz�iR�C=i7dx�� h(�����0c7�e��
���c�<����o���w��%�i�
�D�0��d�\!͛�m೫�[y
+�6�$h�>�#��@mS�ui�Zծ��O`�
��ݑջ���1~�T�)\ܹH�"��
Wde�o���Q��
��]�m2���h�������h�f�bA�mc����~�������|�˞=�_b��Ǘ��ί�D����ЊU��j��F�Rۅ҃;�
�NX�lO��3p��^ ֹ�_�7�
+���I��1>>G�� iR�"tQV��~� }g��țO�ټ���w�y��i��9l)�Dvky�)Ul���4J�����-%��7W��+�s�c�Z8g�F��.1%�q���p�Y٠�fn�{ޛg��fW t6
�Ot0�|���e&��-]�N�t��{�%E�
�Ɯޒ�$hQg��(�/��lD&]h����st/R�V#z�}�HjA� AZJ���V f|c��EجV���\�`+DJ4u�t��
�Sv6�>H�
+�^�M
�Y)�b|C&
Y1$Z�2G�NI�jr!@
+b��#�q2/)��|�C����3���'"]� oNO7F�O��@%�0Z� �"�5t����J%Zw���T俆'���?�ZL�!u��Uk���:��{�<R�T��|�(�&���6���v6�o~�?��E�4���i1����jb�(�iTP&h�S4���4Q~��vR��T�.��:���*)F���L�xO2\s�`��Whz��Lh�_0|�W`��Z%�[��
G�,�
��ARx(-bך<>�Z=���H=f�e���%�F���K�A����
ȅA�YJeSO�t4;�������J[X
���c��a&�c���W��#d�6��
2�����[&�$&Py}�nٯ�>��w��IO��i������ߦ�#�>��ݴD҇
+�i���OG�S�ƣu�5Y����=����
8j���
+
� �Կ�"���VD���WT�@<���B�"Kዎ�TN��e%� �N�����(�##��o���^�t�-ݕ;=����s�j��X�3�&Z�e��lP�叫�m�e
I�kw�g��K�;+�FT{A�q�=���d
{?�ד6k��
�ŧ����G
��ha/.G2|�!��}3�rh�?��+��h %k��ɑ)�8�hiײ�ݣ�
26���=:�v��
+/��KQ��
���}K:e�'����s����e^�=��8гǺ��T�^_v�m*CQ�_������]U��� �Y�������'�<��s~V$/wᕃ��ȸӶ
;��p���t�-#��j���!N�vT���� ��!WZ�>�k8��h��ĝ&�yTP���]D\�qWd5n�g~����_U'����Μ��S}�vU�jK21�+�
+�}&�Ҋf�.>���c�}
+�z�St�3�
��J�ŷ^7�
)��un�5�g�V
L0�q�BY�qE��a��6D����2������
��
�p�[��z�o���%��PF7��2}6��v�01�3����`�d�G�h,x4��oJ�t��rVg
+��UZ8,]A���j�&{��O�H�W�\
g�
<<z�3x���h�ikk�Qds
;�
5R�h䩺
G�A��S�۴x����r5j�|$�/��\A��0���,��%�w��
듹���K.�Y�D@>����|"����#��T���P"��2�#�ExG��
����H�`���q!�q0?��
��~��i�w�\V<��)�
C��q��J�M����w
�L�����0���x)}%#��.���c7~N'�$%����~͍����>0�?U�Ǡ
+
�/f ��?�����Qv��A�Of7~�մ&�z��U��9�J�O�fy�S2�>���8��[)����fd�8��+�8w�U�LI���l�+��Z�A:(���J~�2��+�5n�
+�v�i�J�E
�5�h��=V07����h���ȫ���Tub1�V��{A��a��1�!�w�
+-i2@¬L��j~�������J�|ɍU�I߉���:��¡;W�������g�/2�>/|
Tq����r�_��X�&���U����;�/e|�2�},%~�?,\-{韪t�0pҢ^;�kaV���"-�;8��q�Q
_b>�,�m�8��M��V���ـ��5��zE,V=�n���
� v��f#t�4��SB�G�A�lͲ�s:��.�.i��F���o�e6�J��į
F���M�y�+1���rK<���xP�O�
i*=��Zl�$c��kngsR~�1o��
;X
H�W���,ǀ�d�r���
;�mH�vg2X�8�
�Ol��� �
���5�m��o��3��?63�z�a^�
]��6�%atu~aw�6��vk��)-n�~6���F����|����kO�Kh�ك�lD`
uu�1��S
+��ӜkVo;�^9;q;�{o��哛m�^�(~����۫*%��s���wSr�>�P9����w��@
Vy����3�
A�e��C
y?�!������
�'���������e1vB��)��K����91����r���#��;��rb
Q�.�����BZ��|X�y�0�wC��?�a�R�5_���q�E����z��xE�)�p�F�D�
�g�qyp�T/�j���q�F�
+u�]
� �Wd�!,
+�
��,���u�E2_t������+>�����N��#�D�
+f�c�h�d�q�yaʲ:�P���^�8��@�
����̠NK8c��
���� KX5�]�bX��A����9�TA�E������>6�
N�9X]��_�1��ka��L�x��i:8���4�;P�\Ȝ�VP�X��J��E�U"�a��3O�l�^5�ӝEn{_l{ ���sʴRX\��b���{��^�����~�)� {���3.�.j���c��O���\��?��x9��9ݲ��B�y���
Us�G�pQ]��귭����U�On
+�����Z=7�
�^���\ؐ
X
���$��
+�-�����
�l)$G����ѕBB>��ܬ��
@�s��6r�g$w���7˱�&�5l�"��gϛ�O��M����ֈ����֫�'�;��C�Q�Q�\Q�
r�5⺖g���6u�~=b��Rs=�ހ
�Ǵ5��ܜcj�K(2��fy�-�f�������l �4b8�č�nז.��3=���2Q���2@
n�꠰C
�����^��CnlY�ȋt��{-0\H �
�G@�{��8�M�&Z(��B�25��<i��b
�C,-�ݵ5�ǩs(��e�� �8�B�4� �e-8[�Y�kĵ�u5)|
8sϰmM7�t�L@���ih�,9B9�
� q
��4L�0�
�x4 at x$/X���!���$3
��H��N@��"~�����
���5kub�
ׄs��v�$�A��9o~����B�!욵2���K�j����}Đ�qL�H��p��Z�8'��j�)��@"�q�~�_�k3�]3W&� ?4�f�����3���]
+���{�J�1�T�
C� ��QJ���y��PC�<s�⼐���4v6��Gه���߿*
k��5J���
l/Q�L5���c��J s��܀�a�L��sxy�x;�>
�.�J��6sm$F���n<�9Ē�
J�$n��W)��|��UIrB�n�?%N�<F=��A
�i���
�H�-�,�[�G�!J �� ��������l�2�,��z���L�� ��)46��5K�C�^��
�l�� ?S�5���ʋԱ����bt���>�Qjh�g�S��u��Q�C��`$�h"B��g
+��M!s͒�0LT�" (5��p�c� ?S�5��3�*�
�:}��p~�
ϑ
���J
o��ur���N�d, �J5�
�
� ��A~�Qk���,�kzt82Bb�
+H:`�t�}��h6t
+�k�d��=��X��f�Ċ;b� _Sh6l
+�k�`�a>Mt�������
���F�!S�\�$; l�Y at T74�I:b� _Sh6l
+�k�d�M��D��m��!��5�fæ��fIvH؉��!@u�K����G���
�����F� ���vg�o7˂��yTd�5�>���#!'ّ�4������I�e�y>��@
�f<$��lR?�^x�p�Q��7�yf��nkG~H��S/���p�S���x��$M-�`k>Z\�%��8��������7]^��I:nA��!A�GX-�
+�|*��
o��$#X�W���m�{i�����_�
/�U
endstream
endobj
41 0 obj
<</Filter[/FlateDecode]/Length 1987>>stream
+H���ok�6�?����6�T��%m�2h��v4�ƅܥJ:����~G�%Kǂ��r�[��<�����b���
���(��O���9��hg&$��
g�;���]N2e���Τ��hW����7g�p��#gZi�T��'V�Y�\��� F� ���aܹ� �$�93&��)���/(�;��?ռz�o�"��L8���I��3��(75_�Iɫ3B��t ,�p]
%�g��\&��k^��Yw��a� laQ��9�&��1i�������y%d��}f����t>�7A���/��_�HɪS���T��$�t�f&I��Y�>�
>*�菐R���s
+S��*��\d���cV�I���Hi�Fh��`X4��E3�������d&6�R2��<3L��ZZ
���HUZX_�Iȫg��Ya2��9:��M<ޙ4_�Iȫ7B��0] ��KNl�`t]t�����WBf��gf�D� w�I�vm�LD�R2��<3L�prŇ�(I�t�Z�d"j�敐Yo��a� ���( Ќ�-l���$�ճ|�� �XB�
�r��FI�!�3?S<
��T���s�d���
+ze(�WM�І�pOa j�擐Vo�֙
� Xp�-'I(ì^�wQ�5�_Ϭ;B��0] 6�[N��Y��D�|�+!���33�p���]s�Dh���e&6�R2��<3L�J�9I�[Ùw�=D�ל�
�</�p-�&�����&��OB^}��e��D�Iu�Ir�M|}��M�5����4�
�.�bQ��$���
��:
}��
�</ �\pC;��7Jn�1��c���
�</�pM�3Ga��}�|�#!�~���d�#�6�ɻ����菒R���3�\�j�� �l�����HH�/@�0[���CH��`��__�HȪ_��9����|�ҎZ���?JN݊7� s���NRB-�}�!�~�[�t�
+�w�Ir�&��o��y�zV�����c3�|���̻��2W|R��
+�<� "���e
��q��=�xc�x�X���4�
�.�DQ盤
;�5����4�
�\�;�$e�Cr��G����ly�w申����)m��E�'��IS�/�$�{o�n/ݙ4
��Cwb�&`���b�KR�q@�5�$z#��5�����X�
��k�z��&P� 3�I�2JD����݊��z�`�u9
�$���V�k�|���Aob�&`��֨
b��
�"���=!��� ���aV��1JBH6�r2�M�Gr��~ũ�Q��Ar
�q�E' 6`&ݲG�XQ�5zJ�hI��MZB��c%){���q
F�$�
���0
�x��$�Ĵ�S��i�怐Doj�&`�w_IR�n�>��5_s at I�31 \0���W��T���i�怐Dob�&`h���$ �3�P�@�4_s at H�71 \3`���!�>��Z_#'$Ы4չ)X9i�%)ȁ����Ka�k\
��w]I
+vb�4�;R�|���71 \3`ز���a��K��cE��� )�,OM ��Y�fbV�"Jb�W\E�pg��q4Z
+��I��a%$f�d �*�FOH�gyb�
�i��QNª�nG +j�FOH�71 \3`Ɲ+6�(Ig6��m���R�Y�)��3\�3�zڥ�������.)i��-ޘ$�j�0�
��7~��x�~xq�Z�w����O@��������������������y�������]�/�}��w'wz�{���a���f��wѽ��^A}c�e�I�Ijx
��J��7N���\�ʇr��.4�b��ɰO��骴T�e+�~��s
+����$�����(�넵,Lh���4Q�j��
{�~�.e�MZ-�e��Rv
�!j�C\��o�.S� 9w�`�W��+���۷��W�
���?_>�\����q����t{~�x���������y<=<||>=��������'�u
�>|��%^~q��ͫ�?
Z��
endstream
endobj
16 0 obj
[15 0 R]
endobj
42 0 obj
<</CreationDate(D:20130908202829Z)/Creator(R)/ModDate(D:20130908203242-07'00')/Producer(R 3.0.1)/Title(R Graphics Output)>>
endobj
xref
0 43
0000000000 65535 f
+0000000000 00000 f
+0000000016 00000 n
+0000017100 00000 n
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000017173 00000 n
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000020003 00000 n
+0000020188 00000 n
+0000019862 00000 n
+0000000148 00000 n
+0000019675 00000 n
+0000083840 00000 n
+0000017530 00000 n
+0000036665 00000 n
+0000036552 00000 n
+0000018715 00000 n
+0000019114 00000 n
+0000019162 00000 n
+0000019746 00000 n
+0000019777 00000 n
+0000031121 00000 n
+0000031146 00000 n
+0000026627 00000 n
+0000020571 00000 n
+0000020845 00000 n
+0000026888 00000 n
+0000031527 00000 n
+0000031791 00000 n
+0000031860 00000 n
+0000032147 00000 n
+0000032230 00000 n
+0000036739 00000 n
+0000036947 00000 n
+0000037972 00000 n
+0000052083 00000 n
+0000065396 00000 n
+0000081781 00000 n
+0000083865 00000 n
+trailer
<</Size 43/Root 2 0 R/Info 42 0 R/ID[<6AB1DB5CCABA4CB18708AB7F3C95C3D4><6AB1DB5CCABA4CB18708AB7F3C95C3D4>]>>
startxref
84005
%%EOF
diff --git a/docs/assets/reference/statistics/reference_bedmap_mapref.pdf.ref3.pdf b/docs/assets/reference/statistics/reference_bedmap_mapref.pdf.ref3.pdf
new file mode 100644
index 0000000..a32e0d7
--- /dev/null
+++ b/docs/assets/reference/statistics/reference_bedmap_mapref.pdf.ref3.pdf
@@ -0,0 +1,406 @@
+%PDF-1.5
%����
+2 0 obj
<</Metadata 14 0 R/OCProperties<</D<</ON[15 0 R 46 0 R]/Order 47 0 R/RBGroups[]>>/OCGs[15 0 R 46 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
14 0 obj
<</Length 17486/Subtype/XML/Type/Metadata>>stream
+<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060 61.134777, 2010/02/12-17:32:00 ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <rdf:Description rdf:about=""
+ xmlns:xmp="http://ns.adobe.com/xap/1.0/"
+ xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/">
+ <xmp:CreateDate>2013-09-08T20:28:29</xmp:CreateDate>
+ <xmp:CreatorTool>R</xmp:CreatorTool>
+ <xmp:ModifyDate>2013-09-08T20:31:54-07:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2013-09-08T20:31:54-07:00</xmp:MetadataDate>
+ <xmp:Thumbnails>
+ <rdf:Alt>
+ <rdf:li rdf:parseType="Resource">
+ <xmpGImg:width>256</xmpGImg:width>
+ <xmpGImg:height>160</xmpGImg:height>
+ <xmpGImg:format>JPEG</xmpGImg:format>
+ <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAoAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQV [...]
+ </rdf:li>
+ </rdf:Alt>
+ </xmp:Thumbnails>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
+ <pdf:Producer>R 3.0.1</pdf:Producer>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <dc:format>application/pdf</dc:format>
+ <dc:title>
+ <rdf:Alt>
+ <rdf:li xml:lang="x-default">R Graphics Output</rdf:li>
+ </rdf:Alt>
+ </dc:title>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/"
+ xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#"
+ xmlns:stFnt="http://ns.adobe.com/xap/1.0/sType/Font#"
+ xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/">
+ <xmpTPg:NPages>1</xmpTPg:NPages>
+ <xmpTPg:HasVisibleTransparency>False</xmpTPg:HasVisibleTransparency>
+ <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint>
+ <xmpTPg:MaxPageSize rdf:parseType="Resource">
+ <stDim:w>8.000000</stDim:w>
+ <stDim:h>5.000000</stDim:h>
+ <stDim:unit>Inches</stDim:unit>
+ </xmpTPg:MaxPageSize>
+ <xmpTPg:Fonts>
+ <rdf:Bag>
+ <rdf:li rdf:parseType="Resource">
+ <stFnt:fontName>AvenirNext-Regular</stFnt:fontName>
+ <stFnt:fontFamily>Avenir Next</stFnt:fontFamily>
+ <stFnt:fontFace>Regular</stFnt:fontFace>
+ <stFnt:fontType>TrueType</stFnt:fontType>
+ <stFnt:versionString>8.0d2e1</stFnt:versionString>
+ <stFnt:composite>False</stFnt:composite>
+ <stFnt:fontFileName>Avenir Next.ttc</stFnt:fontFileName>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stFnt:fontName>AvenirNext-DemiBold</stFnt:fontName>
+ <stFnt:fontFamily>Avenir Next</stFnt:fontFamily>
+ <stFnt:fontFace>Demi Bold</stFnt:fontFace>
+ <stFnt:fontType>TrueType</stFnt:fontType>
+ <stFnt:versionString>8.0d2e1</stFnt:versionString>
+ <stFnt:composite>False</stFnt:composite>
+ <stFnt:fontFileName>Avenir Next.ttc</stFnt:fontFileName>
+ </rdf:li>
+ </rdf:Bag>
+ </xmpTPg:Fonts>
+ <xmpTPg:PlateNames>
+ <rdf:Seq>
+ <rdf:li>Cyan</rdf:li>
+ <rdf:li>Magenta</rdf:li>
+ <rdf:li>Yellow</rdf:li>
+ <rdf:li>Black</rdf:li>
+ </rdf:Seq>
+ </xmpTPg:PlateNames>
+ <xmpTPg:SwatchGroups>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:groupName>Default Swatch Group</xmpG:groupName>
+ <xmpG:groupType>0</xmpG:groupType>
+ </rdf:li>
+ </rdf:Seq>
+ </xmpTPg:SwatchGroups>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/">
+ <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass>
+ <xmpMM:DocumentID>uuid:4cdf480f-ef69-2749-9376-0446ddbcf969</xmpMM:DocumentID>
+ <xmpMM:InstanceID>uuid:b0f484aa-490b-614c-a981-af1370338da6</xmpMM:InstanceID>
+ </rdf:Description>
+ </rdf:RDF>
+</x:xmpmeta>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<?xpacket end="w"?>
endstream
endobj
3 0 obj
<</Count 1/Kids[7 0 R]/MediaBox[0 0 576 360]/Type/Pages>>
endobj
7 0 obj
<</ArtBox[0.0 0.0 576.0 360.0]/BleedBox[0.0 0.0 576.0 360.0]/Contents 48 0 R/LastModified(D:20130908203153-07'00')/Parent 3 0 R/PieceInfo<</Illustrator 49 0 R>>/Resources<</ExtGState<</GS0 50 0 R>>/Font<</C2_0 45 0 R/TT0 43 0 R/TT1 44 0 R>>/ProcSet[/PDF/Text]/Properties<</MC0 46 0 R>>>>/Thumb 51 0 R/TrimBox[0.0 0.0 576.0 360.0]/Type/Page>>
endobj
48 0 obj
<</Filter/FlateDecode/Length 1109>>stream
+H��WMo
7
�ϯ��=���%����4h��h�@���8n��ilE�}5��H�S������yC�z|��?o�Ż
�˫�����ǻ���5����+�������q�:>�U=T��o'M
�߸��Ϗj|�z�ebJ9��˹@1���'嵣d��bl���r��)���W���m�g��/�G+q��6�7�U�ߗH��՟%�#&��+
L�M�>�D3�չnsi����H����&�c���&cR�l.�椽���ؾ�rc<e��5&�S�'�I�D9��?�pN7�Β�ٿh"��J]쯨�c�5E&]3�"qV�l.�p9A&.1�w+�
�5,kra
K��
+��SpK0P�EkC�.�Lq�e��q����6�+�n9��"N˓hP�;0����e zO&���
�u`
�[�1
̙�j�
�3Q�8�h6=u����8p��(���
e�bi��5����a6�����=)6�ځ=Dz����:KHa�(��vճ�5ESe`�
���,�(���"���"�`*���d�4��EH
�t�V��%�ҵ���Q���j
M��9}���4JP[�sF�&G
�s���/�2"Q��,�w�QQ
���kT��P4��H#�ڢ��&3��
M#�(3��@�F&�h~F����چS&ӡ�-�
Iw,CE��ul��5�9͇<���8и(Ig��ⲟ9�����4p
4
��\�e���U��;�HC
��C`��n�4PG~�������m�y6c��y��
1^i��
+6]0
��I�;�t����b��
�..�[R�q��
+t,�DW؉Lk��錿�~�Υ��BL>Lg~|\���1���h~�ͱ(0�,�8�i�
�����W�?
-_08
,_28+W
�P�C���^1X)O4���i���[�z^R,��
LA�lؗ�E�j����"�"I� ��&�������
+����:}��T�i
+e���1<{�+��7���/O��?}y�
��y�vZ�D�>���f[^"'?���͝�p� ��n��*�VV:*:K1������U"�C��[%M�4{���o��.������z/x��y���A�̗���8�&
�p��<�����8���ws��y�Qӿ
��
endstream
endobj
51 0 obj
<</BitsPerComponent 8/ColorSpace 52 0 R/Filter[/ASCII85Decode/FlateDecode]/Height 45/Length 258/Width 72>>stream
+8;YQVd1(a_$pufsqfJIbVsAl_.h[rr%[TPmihIYB&!p>hrda>r2)d6B?t]0$25dT@
+5EDIr?TO4i4=j"bM&YkFMu*G>rfUGYTHYHF%r.J602>iS,+^ahZgHOKnblQ1&+p/\
+am_gY_.CV?cI;g0'BKT#4NeE4nB6&(jZLQ:-23uB&'pR8Qe%K!U[V2'h$1ZI,k,KA
+4K8D-IEeZ_cGR?T at 5N035r=[!R#)=K4"_18b4AT3b+BK.r-B/p*<7sVpj2~>
endstream
endobj
52 0 obj
[/Indexed/DeviceRGB 255 53 0 R]
endobj
53 0 obj
<</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
+8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0
+b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup`
+E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn
+6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1
+VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH<
+PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O(
+l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
endstream
endobj
46 0 obj
<</Intent 54 0 R/Name(Layer 1)/Type/OCG/Usage 55 0 R>>
endobj
54 0 obj
[/View/Design]
endobj
55 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 15.0)/Subtype/Artwork>>>>
endobj
45 0 obj
<</BaseFont/NOJBVA+AvenirNext-DemiBold/DescendantFonts 56 0 R/Encoding/Identity-H/Subtype/Type0/ToUnicode 57 0 R/Type/Font>>
endobj
43 0 obj
<</BaseFont/NOJBVA+AvenirNext-Regular/Encoding/WinAnsiEncoding/FirstChar 48/FontDescriptor 58 0 R/LastChar 53/Subtype/TrueType/Type/Font/Widths[580 580 580 580 0 580]>>
endobj
44 0 obj
<</BaseFont/NOJBVA+AvenirNext-DemiBold/Encoding/WinAnsiEncoding/FirstChar 32/FontDescriptor 59 0 R/LastChar 121/Subtype/TrueType/Type/Font/Widths[250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 764 0 0 0 0 282 0 0 0 0 780 0 0 0 0 574 568 0 0 0 0 0 0 0 0 0 0 0 0 550 0 0 634 574 0 632 584 268 0 0 0 0 582 610 633 0 364 444 340 0 0 0 0 513]>>
endobj
59 0 obj
<</Ascent 957/CapHeight 708/Descent -250/Flags 32/FontBBox[-214 -250 1192 957]/FontFamily(Avenir Next Demi Bold)/FontFile2 60 0 R/FontName/NOJBVA+AvenirNext-DemiBold/FontStretch/Normal/FontWeight 700/ItalicAngle 0/StemV 120/Type/FontDescriptor/XHeight 480>>
endobj
60 0 obj
<</Filter/FlateDecode/Length 5699/Length1 11171>>stream
+H��V}T���ݛ����M^�T�@HH�"�(��
+
+**H��+�]m�Ժ��֞��8�M�5�6�U�y���
���Ul;��g�s�m��=ε�k�s�s�{��}>~��
@��BwWO�g���'Hs������q}V�0��k[L����8 ���˶�oU��h|���۾��mѫ:�G��s;��������J��;HqU8���fW��8��;k�i�% ���=[{���( � �wt��������������??I�Wɞ-�{�ML8�� ��������� G����]�!�A��x�4G���:< T�IWq� S at M7ĕH��
�]�s��>����������
��_�9
8���G7Aͳ�UH��m�V'��n�/U�C�HG2�
�)S��C>��v-D
(F JaD�aB�f�*a�
v<�E��N�P��QK�>�@=�KЈ�hhF
�a9Zц V�
X�UX�5�D���Ѓ�^lDal�f<�>��a
`����x_�+x
�� ����{8�7��ƛ�!����1~�w�
bx�p�<��^
a#,���Ʊ�
� vR.��o�]����ql��V��
�5l7v�l�pO`+��N��F�F�8
SL��a���X>�d]���g�l-��#���X�g��Cl?;�6�Q��m`��IG�e<��������&��K8�W�e-�
��V�Ƃ8�:�
+�
#ZQL�)�e�)�d��I�"7�_�_�몗To�Ω.�z�T4��&���b�����l1���nQ[�,:K���b�8,�˰�W�����?�y"��%��~�U���Ћ�� ��
�b�X&�
+z�g�k �d}h�:K�=���O$N'�����
/~"�|���%s�s�9��w�j�2W2����٦�%�u3�3�3�3fzf�g�̴�Xgrg4��z7+��_=�_'������!��A�.�Ok�tzu1��*����ی
�X�p
���t�T��b`NQli��p')��$��b0��ׅ��#
C1(�
�
+V�&�#�1����_2G���q8
^L8��#(8�0!�L!�T N�Ҝ�Ĩ��
Z�N��ͭa��,�E/v��[��p�V�,���G�S6����*2�(=�h�1�p$�
I��T$b���q
�S0ܯhN)(2���cS��Ԕd6�
+�,���p+��\�j#K�a�R.����t%*Jt�ଉ���3?��5�Tф��͟��%K�kT��Z �q���ʝ, $1�ܵ������X�I嫳Iu���y=E�zu:��f-���z�I/���WE�K�I_��KlV�����<��˗��֗�k�
���Z�7��eE�������̏�=� '��_!Je�M�b(%_t�K��?�i�$R�hVGEXG�V���{j��{ �XqTM�Q
D[H��8M�n
+�Y���)<M���>5��-�zL�P�˩�x�����$m��#��������n��x��Ԏ�K�=�
�=ݻh��o_=���)���_�/*Ԝ�KC���pY�es��R��$�oL�����1dS4TԳ"Bc�y!�A��9�� +�{jY���O)�dE��8C
�#C�k8C�II��y�d'��֓��O
��r��\o�R��̬�
��C�1��V���ls��.bgY�"�fQ3�z͠+��}J�%J�D��(ђ�h�<�)
��'��
�zd�=�8f���c
�XE &�
��?@�^~���M��t
���ԅ>w-��%�ha��Jf�d��&:I�ث�4q:&����Z�4�%��ұ�^�k{�jS�ƪ�j����h�������߳��K%��ZZl)�ejʪ�u
�˼���U�R{y�ը�d�U/��;�%6[�QC��uċt���_e����>;�<_f�Ly���v��)�̅���W���$�
���ˋ-q���ݠ˰��x���e��b�Ir��W�'�<C�e�D$�u1��y���ɴ�2mW
R~YI�7Ѳڅ�Ȗ� �~���f����g���y&8hm⼓>'��I�NJ��69�̩XU�p(E
�@G4�
tJ��R.%��+����QI�J�;
�z�>�W����?蓖�oqق��E��=�qn,o�W�����*�E��r����rq{����ҴF�!W��A)�ħ��o�MN�S>!2�麤2Y�@��$+��d���%��$���m�*���ıc;�߱��\ۉ�:��.I��4[��n-]Ӆ��P�6�L J'U�1~ ����!���?Z���?�hդ"�!Ue��-�yϽ�v��#ѫ��s��=�y��=� V
��G8��G�z�G�zԤ;�aH2��h;>����]��L(��q?���`���y,2/�'`41�O�enI�� �0r
��R� ��gD��������c��x.ޫ4������f�S����X.,��jgr�P�͏��(�ˍ�鍣�
��u�B���r��9@� L�
+��k�Fw�uoY���m� ��.#�18K�uK��5v
;�� �H�2D�S�h�a9X�d*�H8��8w�4�l�
ݰ�+�x)Q�����pv,628��Kgs�����Ggt>.�s�z��'VJ��k������Ϥ�>gb�c�&Ϧ��W�4����i�\
+Z���<�h*XM
F�Q�����d�s�F��(�9*�NS'$�W����N
�n���;�tҦ����
<���
<����p�U
W1\5 eU��~��;sv�S4^���91, �yC��-�N���5a/�z�
�P�T�~y���0�i����p��lg
��blh�ɥ�܁��E��H�A�+b���OM��O֫�b�����zu(U��q������]M]M���TZ�3��ǫ�g����Hab(Q/Ţņ��(F�3f��!�ُI(�+V��hG�SeOO*z#Dw���ݮ��R�jv���L
+�P= �P=2�<�����fR�&rŌ��̗M��'�x�)���Q�~�����+� �d"��hd뮸���7�'�S������e/�����U[Ir���Q8꒫ ��� @�6��{�N�p�àܴr�Me�2^7�p�
+ͦ��J���R%xH|'Q*$����elH@�1v�0��
��F���ӌE�f<X�۸5|j�:
n�pw��[xN��
+���`T,C�6UlSŚUF�`TF�`T)Z�j֝�j�0���3�w�n�<@1�o����pWp4 �+����\_6*�x�r��������A�x���
+�V�
��W ��P# '
+m����
,/ux��G��8Qd�(E�1�h�����
H�@JR�$D�L�A3�4v�����Z���T�����4�D�ߞ\=�N\��<;��Ο��1^����Ay2
+���X�&�!�&���Gx���iU�!��*�bT�`�涢m���I�h[��{[=���:
~��w��Y\��5�⚆=h at P����k���k��I� |�(X���ʼnF��5̂%�/�
+N*�Hds(��v��fT^Sz�Z���
��F�Ѱh��;��9ߟ{s
gj���B1��!6ާpXa���͟D\����߸ukz +d{���:z�:vAݝ�
�O�T�y��4��&�YX
s�
nOa_�u
+�sq^Z���jў����e�B�E�m$�[Fn�*2�쑒s�tH��9��bK�jIP-)��Ē�%�*xC�b�I:��2m���~���/��Y�
1�#z�:�EG0��m1�}Y<�H%�j���H<�8����~40��
����j>��/���%�Z0���nG ��^���
ٕذ��i1�CM���g����_O����PH~�}F+�Im��iۼ
�])�@:7���R�&n`�n`���R�7�Q�����`d�jT;�\9�f3�w��l�r`lJ��o�]���ϡ��~��
�L뛴/�|��&��=�ye�t�QG_WY�O
��A��3
Ծ������_��~�{��o��h�ɼ7�s��.56�����s���5�b��)�ҫ��i [...]
�B�O`n�q�c�r�e�s��
�� f�ٲ�~��=�/��|�?�
ӱ�)~�)�G��E�ZY��`+��w���2_ RM</���&����H���r�_��c���MV�_f��7�
,�-�Cߎ�Z���a|����V�>|��^�w�
4���
�����'���
V��؋S������~�ڈ�#X�Ɠ2>6և�"~����wYѴ<��{�-Ժ+c�n��4
km�X�Zo�n"V
+;
�:,=Ţ�(�g�&��a��,+c1�����7a���[q�iįu����6Ăb-=헾��c���{y�(���~]r��i^'��L ��>7��
�g�� ��C�ypڠy��QhD�d�Ķ�K����N�#�vz��_���;�MA�u��7���O�I{z�Sjd��.5���zҶ��bii
:���[��>��G؟���3h���݂]��'~�zćlTj�Ԓmi����͎aNVA^9�\}���qԑ�,�|����X��
mO ʉ�wٌx�
���_�;Jy�
{
������_�I�W�|�g�j��Yp��?���%�(����st��BB3]N3����f�/�a
-�M��s
sfl|�B�� ܴh[����EB
RTA�"�eD�p��3w^*&-�p�{���ݏ��e��)#�;Ō�.R3��1��yī�ݕ��
+�<�m:�
c�m�u� ��p�N��)���j�c�~�љ_u�E���x��9��yq��N8������#C^�Or�p�i�!�;ܹ�؟�����oT��k�Ǘ��7���>�}�֪f�K3�s���E{ g8&m^|.
��`��z�y
y�]V��R}�
.1��c&����@��WpY�ٗ�5
�c,�
+���xs�̱n���B���Y�'r�[��`a/�[ոC�~j�d��0�
�H���|�{�ך}o�O���]�q�{z���
ߔJ��(55��e��~2�ǚ�����1ܴ
�?h<.�/�g�ao����P���_�g.})��-�AF�/i�ɼc5YM%
%s�
+�n����٘��{ť�۴M��?���U
��M���M�O-u]����
7��ձ Wi�)�YeyѻIq-+�~ԲA��~-��5��7�y-{ ��r�:���=���H 2e��ٸ=���T2���j�
M�
e)I %��t�����n�8��Ұq`3A6F�(E�x�
�|Y(��k�h���"�
�qRz6�
>��ahƩ��)J����x6Y��4
� �CJa,
+���E?A� ���{�W6k���e
�
�0��\��ehdK�
�%ċ#2�~�g���}���
+��gG�;5-�g6�܃�#�3$
��<?>(�[�
���~Fg�5�a��b7,
�f�5�
��1�������!��%���Z��1XX��Z��=�
je�E*���Fhf]Ԃ%���Z���R
F�f�F��D�J����C� #�8
endstream
endobj
58 0 obj
<</Ascent 945/CapHeight 708/Descent -250/Flags 32/FontBBox[-205 -250 975 945]/FontFamily(Avenir Next)/FontFile2 61 0 R/FontName/NOJBVA+AvenirNext-Regular/FontStretch/Normal/FontWeight 400/ItalicAngle 0/StemV 72/Type/FontDescriptor/XHeight 468>>
endobj
61 0 obj
<</Filter/FlateDecode/Length 4150/Length1 9246>>stream
+H��Vkp�=w%�����D ��~�,{���
Qm����`
Z�
l� c�4'
T�����%���R�*-B�N(�i&?Z�MI��i'�t��
�0���ٵ�f�Lu5gu�w�ν�;��]A �1
�Wvh��}7�h�Ml���5��4~
�k[�*��u`���3{����ӵ��㜽[w
�=������c[OW�]����d�Q���?[������l�<��t�5����s;��t!�r�b�B_����I@��|eWW_Ϲ�'<l�����{K�� �qc|`O���:�����!N V�������� 9,��Xyd�
�L=��V�4��d�x�y�����-cL�V�%~��H�2�?�$lR�9
S#�ygO>��3�K
WH�
�t�
$���T2R��4�#��f!9�E
fY�
�77<PQ�B�s0^���R�AC9*�*T�b
�P��X��WЀF,�"4�-X�V�a �b�cV�
��
X��X��B�<����&<�������(���x/�5|g�=����,��x�C�?Bo��.������[�&�Q�n� $�8��` ;�f��vj�4�)v`��؊b��=b�؉�����9\�]b�X �D7�����'q�D�H+�J�!ֈv�
+�b7�~�)6���F�O��qH�k�<����A�� <�g�"^�8��x�Q�O�(Z�[4�fтGD�X,�*�L�Ho&P#�
%������%�tC�)}h9i9o�j��d*3��Q��r�^iR.�3�
w���#yl�O�'�3���xZ=�==����ڧ���L���h����E���Ȟ+�K��O�g(��,E1�뾄=��y������"�I���c�co�ފ�+�xt⑉���ό�fl�ؼ�ڱ���1�g,��O�,��3�N�h���u�kG;F�G��6��&�:�x6�bRľ�6�_��}2�
ԫ���X���x���
|K���
|S�g���
��i�0�����(�OQ�CM��
�G��͖ŧ�D,�-������p[wXiQ�uuG���7zº�D�
�&�4���f��ד�j�XM��N��S
�M�sR�o���W#CM�HC��t������`�z�ӭ�e��)�
�N�9�{�yٰO�t#
��px���#C�3�sL������
Sz�`�6G�P�94����Au�n�So��3|K;��ܩ[/5�%��
SPeI*A[>-�Y�/5��� m���z���a�.�Uz����Z2B�`�3ZV�[����,MT�Dm��.R=��
���ʴ%�Nğ��%91;-53�Z��_j�L\RSӒWTh��=�-ޛ��E����˓g���d��(��U�[/P��;#�:*��OI��+y ���R�t���X
�bϢj� ��g�;!u6:U*������*k��z�"D
"���a�&!w��?��I�oR�
�
mldED
�B�#z����%�u��.!wr[�c�/����"���,�h�9�)�#�O�
CL�Ȅt�
`�oF�8���\b1�h%��6� �4�2q���"d.�D>���������b@�x�xx��X�]8@
%Ng���
�<�-6�j�t�W�J����,��2�_
�r<�커�� �e��,�krrj����}�(HN.he������t�1t���p��!t���H����
�~�.��N����o��������bC�
V3 �>L0\��9N9�>�b^� i�u�n5-���J��.6H;�*O��U|�g,y���r+�k-��I��Afƕ�qe�Ǖ�Z�Wvƕ�qeg\�Wvƕ�qeg\�Wvƕ�qe7�o0L+�ml2�Kw�A*%Ǖ���
W^��2����L�e*/Sy���T^��2����L�esi#���+�����H�2i2[-US"���?1_xR�s����fխp,N,�k��,�W3�91q`�(L-�S��_�f,�M.l(��W�V�r��ˊ�]� }�GG_V
+f-1�g��lq��d��('�F�D�8D
#^!���MB���O6�P�(�IM4rjqN��95rj��ȩ�S#�FN��95rj���\w��^;�J�!B��TQ
�j�2b���6�#��t��qPG\�qP�qP�qP�qP�qPWtP�y4'y�y4���x�z�C/s��
�2G��Q/s��
�2G��Q/s��
�2G��
�2G�f�fēq�8r��\b2u��k]">�D��7�eT�u����j����V�"��[ �C1 ( *�Ȑ�(�B�W��ؙ&�C�}�t�g��K
ҷ<4��̘ifڇv&>Xg�Lm��X�L05I�:���>�D�6�N������k��km�),j�\��Wv�nY7�V�ݸn�-�Z�T��
+�s�~���|Ma������dB������O4n��tVmݗmW
�۽ym��X]��҆⍛�r�:n ?>��7��u� PB]����~� Gn9n�p���m
n�p��8���6�q���m
n�p��xPoz�*����+��s��ю
��%�0��-^��ho���p�3Wj����?
+3Q���Lf�0��(�Da&
+3Q���L4d&
+3Q��\��qJ֪u�;�_�W�_�����u}�k�V�T�T����JJ��2͘}�DS����[�w4����U��n��_�k���
w�~?�hN���+o�
S����dW�.���4��2����1��=��h��b5���:
����2b+d�m�z�MJ웲�Dd�TH�0oH�=+��U�mR�|�L��o��le�4�^��b�1�Em�0W��K��
Yf��a{�u#�@�
{T"o�a|
��%fS�;�d�6�������髗Z���d�N���V����r�f)T��gd��\
�ӟXR���!�dsL)vN���sd������{Hnːw\l8��S�z��Gd����蘹.+�
Yc�d���9�_�<����7��s�G at 7��tr{�F|���Ī�Ō��G����7�
�\�&�
�ʴ4�a��l�;X�5ַx]�����}x�e��/�"����금�? �Պ���`_�9�\̅rgvgָ/ o�x��y�
�I���
@� ���Y
�Cs,
���i�V��U������I��3N�pR������S
�
_j�k�����s�y�)������={.>�
�
�Ϡ>��F4OY5W7
Nއ�\�sq�/;Ȼ~?���?K�wů7��@�r�֠���J����|�����C�j���|r\�5N��#�%o���j��Zg�
+5�
`���t�x��Tr�u�v5U�=��P[�gY��g`����
��]�-3M�:d$���}�u�ߥv��f3���ϯ��qǑ�:�ݯ��a�a�P��w��Y<,�*��F�s��RT�M�T��2�粙�nGd�����1��;�0c3:.�6�=�c���ocO��m���b��w$�}�jn�2sQ�N�B?A�d�@�ی�����ݾ z�kc�<�kbJZ��WtS�`�f�c�}���w��
cn��o�6���̤��}ȿi��}����v96^r1��2l+l���3_rq��W]
l�|�ʶ ���/���=��[3]���Y.~�9Rm9=�����X�������wn���=����)����qw�)�q~�d�J�C����.y�{�!�4��_��}O�
��g{�����
��g��`�Y�zܝU�_���8
+팸
��"\W�1s�)���Ic�?[��ag��=��s�ޯB�I�H�|d�"��E,b�X���L�J��q��'^�H�}'���^
�Dhǂv�ZFMd)�Y�چ�kA�J��
�
o�
A;B{��|��4���wmh+o;�
��M�JU�'�8zp��ȃ2!O�i��19,G$% y�J
���*g�ʹ
b�8kR�yR��t�1y�ϭ
+��v�U��YUr�2!m�
E~��Ӓ�$�$G��+�e��(�?ΚIF�r�u�<���8����߭}����s�$��g?R�9w�(�o�7!�_q?j������F.���#n�>b��E��)�=弎��{�ϣ�9�,�3u�4�q��E����}}"؍�� b1�֍8)�N0�8{���J���[��5!��( Ol�9G�m���C&�K��k���yFF9Z�T]穵��&��L)�I�,����%��,�Q���X~�� ն}
endstream
endobj
56 0 obj
[62 0 R]
endobj
57 0 obj
<</Filter/FlateDecode/Length 312>>stream
+H�\�Mj�0��:�,�E���v��:
x��� �4N�,de��Wք*��c�鍟��ͱ1�C��F٢�^�poN"\�
����Nq�CgY��<y
ӏ�,!�
�ɻVOj��%�N���
+���]C�ެ�����
+���ξuBe�F����&h�:γE�9
#G���$��\��iX���*�F���d�^~w.�oC{�����L�'���x
i����G�3�QND��t�Q
)K��D�腈f)h�,#D�^�{V�Ƚ ��܋���S.b
��^� ����x���6�xv�T��~ �6�^
endstream
endobj
62 0 obj
<</BaseFont/NOJBVA+AvenirNext-DemiBold/CIDSystemInfo 63 0 R/CIDToGIDMap/Identity/DW 1000/FontDescriptor 64 0 R/Subtype/CIDFontType2/Type/Font/W[3[250]11 12 330 22[610]72[574 324]76[268]79[268 890 582]83[633]85[364 444 340]89[513]92[513]359[666]]>>
endobj
63 0 obj
<</Ordering(Identity)/Registry(Adobe)/Supplement 0>>
endobj
64 0 obj
<</Ascent 957/CIDSet 65 0 R/CapHeight 708/Descent -250/Flags 4/FontBBox[-214 -250 1192 957]/FontFamily(Avenir Next Demi Bold)/FontFile2 66 0 R/FontName/NOJBVA+AvenirNext-DemiBold/FontStretch/Normal/FontWeight 700/ItalicAngle 0/StemV 120/Type/FontDescriptor/XHeight 480>>
endobj
65 0 obj
<</Filter/FlateDecode/Length 15>>stream
+H�j`
0 � �
endstream
endobj
66 0 obj
<</Filter/FlateDecode/Length 4311/Length1 8805>>stream
+H���klY�Ͻ���vl�
;~�g2�#�
��+}��$m�n�t�]l��&۴�V}��EF"��@�>�Z$�@��'����%�Z���
+ ����VB*R�hQ�w�NÖ.����s�Ͻ�w�=w��.Z!��gO�GV���EhnC�~�U���#"E?z��˗��[�G!��|�s������/��/,�[\�gǍ���v�//C��m���/_~���_���H���KW�.�q���"����l�هD��,^>�v�?�������]?wm���%��w��N�˫�A6~��B�u���J#+|�]��c[!�ϑv�Z�g�%�\����߂��� ��C�{�id#?
�%z��"ߖ��ɍq_�({�I����F�ɶ�h�T�&9H:�b�I,�i��l
��bPGK�jR��U���j���V�����RÖ0�8�Z�k
:Y���SU�1^�l7��j{a�&��L;�5X�زpѴ �0�#{TkHɹ�jce*���Et]�nܙ�6�LE�Z
������
�֞�س<�F�e�d�1
iPmu��zceu5�
+?Z�&�����G�-H�Rb��V�̡C���:�Y��ڎ�ѓ�i�T��|8�HV�R���M���d=MJ�C�7��l�znR�l����è�l�5(��-Z
��ݕR!�g����I�b���1V� �e;���W�2��FK�e��z�]�\<��G�G�僽Ʉ,�����n�k���yG{]1owP�:�wg
�3��k%CW��&���;��G#�{�Zb]�
�(&6�m�tߣ[��.��C�X��,�� ڇX���S�''���>ƴ�zgy��S�3�#Gi
6����5a��9�@r�ṝ {�r
��� �.��TEe,�1+�5�[x��v~�&p��^CFW�2Ơ��E����4��7�0��)L)`�Mq��}�'k��$>r�9Vk)B� y����9�����.��ډF���B��1���p���v4����̓nad���C�
+�TQ��|@q7�C\Pi�ʰ��H)��z�{w}Ƒ9�����O�O�8�9T���&
�k�C{��DP9Uُ
�=�
�Gb��2���3�{jn�:��ʳ划
��{]Ѭ֗�8�T�n=�>� �%�MJ!� �BnĐ�1���։
yD�='zN�s`^z�h� �G]�DCB����:M�}0��&ځ�� G��y� þ6G8����>�#k!�2��#�V�J�1.��ﻢ�X���]a�����p87�;���S�����scӂ��2Q(wz:Ù�O��/������L���n�ϧ%�]���:7�%�ߋg`��;��
��E�EX(�
�zLk
�"`6ב(F�`�b�C���c�0���ӧ�ܑQ���t�5�|�j��,
���7$�y��ג��
�+fl���O�]
�nzs��_���`k�y�!"��!�2�tf��
.z��K���](�;NP
�,v�H
Ɋ�
Qv!�.D��:^C*���g�%���ތ��r��a�75��Xf
�X�@\����E [...]
+�s�^��m)<�|���J���m(�����=+�����
+�*�kmN1y*�+<Au�:�̖��#�:��Wv2�H!wg�<�(�z�>���t���~�X��xڤ����@��R5/�S���_��6�6�v�=�O�c�W(����m~*��m~*|P�O?�T�S�O?�T��R�\�G��V�O�ܧQ��(�i�,�b�m妸5�u�L�"z;���*W��
����c}��OU
+�y�}��W4�bBQE�(�y��Iw,؝�z�T��
��\����l$�
����e������;����<�a��Dt���J��B ����)V�[��x=��uK��{��g��
���
�v!����_��:�umn ���
�§<��I�H�8d
����ؼmü%d$��[B�-!�T�#��H�8R-n�Z
[v�����<��am�vje�{٧��ş������%Ӷ��f+=�H�0�#��[o�uY���R;/�ߢ��!�}��YϨ
."�\T�
N�^4f��)W$�T"�tH/O����B
�F�N�?�WklTE>3��m���t���7�m)����QQ���QZ,
0���"�!�� ��j��(!
+��$U1&����s�viM�?���93sf��w
�������G�V{s� ��� ��좜���S�
��0���J�$;���UK|���7&�̅8���k�n8�x��0��� 挽[�����Xx��Xx$4���١�7D� ?���D�oH�ʘ���uP�'#�L.HU�O���Ν���
�\��1C�K���w��)C�}��^pv��
���T4���f�eK��x��S����g�tZ��v�y �b�y ������I�\�F��������o��������
���MI�MDZ?P/��t�X�a.3�~���r�2���,'�Qy��Ԁ����{WT����U��v�x%��lt2_.�f~���UV�r������'RV��w���l����̓�����t�@�O
� Z��P��Hc��k4Jy1^M�@��k��{�L����)|��f݂�DP�
�
*�M����
s�(�F>��c�m�����@�4\�_� �T��K��[���<t��4\�Ś2��
�;h��e�4��[�F���Mג�(Q�� �~c�L�Υ\�:U�N췑�O��R���ĸ�&)�uIg�\ml���A!�o o�|�H3�g�,
�Uj��0�
lY,�+��qt g��1�?3���7Dvɬ^��] >i�
��`�_�-Ӻ�ޱ��2|2g��|��Ǥx��>�s��p(�L��2Zw�!�)�uY|���W ?D���p�Ewb_�~k 3��r�e= >8����]�#~�&��
_t'��}-���6�9�.���
�
'����^�_q��־9�:Ǜ�Ӏ�9��
����~8�? |�ġ�^:b��z������=�ۅǢ�b�1~�
>��ɭ�hn��!#�8�
���L�A>9�Sr$�wHNU>.�ܖ��xb_Fr
y�Yw��#N�NI
!ϐ+@�![��u�1��[T$95Wr)
����S:���3T��2
��y�4�Px���R+ ��0��\
��.�\��5*�;P�������q�(F
���0>�G휋����|����4
�Y��O5|/
�Y��]��
�{�&��F��<��v�a�g�A����8c����@_}���tc2�)�˃�uߺ͘�?MO��w�IS#��9�/>�I~��O}���x~4S?>���D-sd�/B��k�A�?%�A�w
��*��^�b}����A�p=��=�e�����#2b 9\#tP��
l��`��+�X��ƷC]���G��b�9�b�$��d��\�q�K�
�c,�|a;
x�}��o�
��j��?u�Mp+�;��%psj(����g/F����x�9��w���~
+���]}ȉ�O��2P�:���L����>�c�ͮun�Lps���B}̎/���!6�!v�\��zE��]:�pS��~�n]/N�Yb��b�Z���h���x��'�V�������Tl�'���ߎ����&���θA�.
�בݐ�aV����KAGV�tdM�*Ñ
T̀#s]��nȻ
9Fe�����
��O]W״�%X�.��[����q�?��i�L�i��rj�e&}C���A*��M�T�&� c�j���
ZE!|�@^/����*�Z�V��h*f�X\#�:�:�u�_
+� ͦj��X���&�i�L
�b]!UBZ��
+�ވUϢ�@k!/�����������P�%�gm��J�5S�#���k�]!#�}�q�h?L��`�X��&ўߋ�ٰ\�}je��&�o ��l��H�v��9
�y��"떊�0������p<�\1H�#H�B;�"ʡ!�J Ȫ��vrш
#Ԏe3h2 Ϥ4GI#t
ɏ��2#z�d�I1�0�ڴ<��O `^�
endstream
endobj
50 0 obj
<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>>
endobj
49 0 obj
<</LastModified(D:20130908203153-07'00')/Private 67 0 R>>
endobj
67 0 obj
<</AIMetaData 68 0 R/AIPDFPrivateData1 69 0 R/AIPDFPrivateData2 70 0 R/AIPDFPrivateData3 71 0 R/AIPDFPrivateData4 72 0 R/ContainerVersion 11/CreatorVersion 15/NumBlock 4/RoundtripVersion 15>>
endobj
68 0 obj
<</Length 975>>stream
+%!PS-Adobe-3.0
%%Creator: Adobe Illustrator(R) 15.0
%%AI8_CreatorVersion: 15.0.2
%%For: (Alex Reynolds) ()
%%Title: (reference_bedmap_mapref.pdf.ref3.pdf)
%%CreationDate: 9/8/13 8:31 PM
%%Canvassize: 16383
%%BoundingBox: 0 0 576 360
%%HiResBoundingBox: 0 0 576 360
%%DocumentProcessColors: Cyan Magenta Yellow Black
%AI5_FileFormat 11.0
%AI12_BuildNumber: 399
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%RGBProcessColor: 0 0 0 ([Registration])
%AI3_Cropmarks: 0 0 576 360
%AI3_TemplateBox: 287.5 180.5 287.5 180.5
%AI3_TileBox: -90 -108 644 468
%AI3_DocumentPreview: None
%AI5_ArtSize: 14400 14400
%AI5_RulerUnits: 0
%AI9_ColorModel: 1
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 1
%AI9_OpenToView: -278 569 1 1134 765 26 0 0 47 129 0 0 0 1 1 0 1 1 0 1
%AI5_OpenViewLayers: 7
%%PageOrigin:-18 -216
%AI7_GridSettings: 72 8 72 8 1 0 0.952941 0.952941 0.952941 0.976471 0.976471 0.976471
%AI9_Flatten: 1
%AI12_CMSettings: 00.MS
%%EndComments
endstream
endobj
69 0 obj
<</Length 15859>>stream
+%%BoundingBox: 0 0 576 360
%%HiResBoundingBox: 0 0 576 360
%AI7_Thumbnail: 128 80 8
%%BeginData: 15736 Hex Bytes
%0000330000660000990000CC0033000033330033660033990033CC0033FF
%0066000066330066660066990066CC0066FF009900009933009966009999
%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
%6666006666336666666666996666CC6666FF669900669933669966669999
%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
%9933009933339933669933999933CC9933FF996600996633996666996699
%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
%000011111111220000002200000022222222440000004400000044444444
%550000005500000055555555770000007700000077777777880000008800
%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
%524C45FDA8FFA8FD7EFFA8FD047DA8FD04FF7DA87DFFFFFFA8FFA8FD05FF
%A8FFA8A87DFFA87DA8FFFFA8A8FFA87DA8FF7D7DFFFF7DA8FFFFA8FFFFFF
%A8A8A8FF7DFD45FF7D5252FD0727527D2727522752272727522727275227
%5227272752F85227A852522727277D7D7D52A8F852272752FD042752F852
%52527DFD44FFA87D7DA87D7D52FD047DFF7D7D527D7DA87DA87D7D7DA87D
%7D7DA87DA87DA87D52FF7D7DA852A8FFFF7DA8FFFD047DA87DA8527D7DA8
%7D7D7DFD52FFA8A8A8FD11FFA8FFA8FDBFFFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFAFFFA8FFA8FFA8FFFFFFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA1CAA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFAFBCB5FFAFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFB5B5B5C4AFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFFFBCB5B5B5BCBCC3AFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD09FF
%FD04A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8A8B5B5FCB5FCFCB5CBA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD
%08FFA8A87DA8A8FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FF
%FFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFF
%A8FFFFFFA8FFFFA859BCB5B5FCB5FCB5B0CAFFFFA8FFFFFFA8FFFFFFA8FF
%FFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFF
%A8FD0AFFA8FFA8FFA8A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA87D93B5FCB0FCFCB5FCA1FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8A8FF
%A8A8A8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFFFA859BCB5B5B0B5FCB5FCCAAFFFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD
%0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA87D93B5FCB5B0B0B5B5A1CAA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%7DBCB5B5B0B5FCFD04B5FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA87D93B5FC
%B5B0FCB5B5FCB5A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A87DBCB5B5B0B5FC
%BCB5B5B5FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA87D527DB5B5FCB5B0FCFD04B5
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FF7D7D7DBCB5B5FCB5FCFD04B5FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FD0EFFA8A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA87D7D7D93B5FCB0FCFCB5B5FCB5A8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8A8A8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FF7D7D7DBCB5B5B0B5FCFD04B5FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8A8FD047D93B5FCB5B0B0B5B5B0B559A8A8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0E
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD04
%7DBCB5B5B0B5FCFD04B57DA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD06FFA8FD07FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8527D59
%7D93B5FCB5B0FCFD04B552A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD05FFA87DFD07
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD04
%7DBCB5B5B0B5FCBCB5B5B57DA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD06FF5252A8A8
%7DA87DFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8A8527D7D7DB5B5FCB5B0FCFD04B552A8A8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD04
%FFA82752FFFFFFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FD047DBCB5B5FCB5FCFD04B57DA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FD06FF2752FD06FFA8A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FF7D7D527D7D7D93B5FCB0FCFCB5B5FCB559A87DFFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8A8A8FD05FF5252FD07FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFFFFD067DBCB5B5B0B5FCFD04B57D7D7DFFFFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FD06FF7DA8FD06FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFFD067D93B5FCB5B0B0B5B5B0B57D7D7DFFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FD05FF7D52FD07FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FD067DBCB5B5B0B5FCFD04B57D7D7DA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD
%05FFA8F852FD06FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8A8527D7D7D597D93B5FCB5B0FCFD04B5597D7DFFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FD05FF7D7DFD07FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFFFA8FD077DBCB5B5B0B5FCBCB5B5B5847D7DA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD
%06FFA8A8FD06FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%A87D7D52FD057DB5B5FCB5B0FCFD04B5597D7DFFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD
%05FF7D27A8FD06FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFF
%52FD087DBCB5B5FCB5FCFD04B57D7D7DA8A8A8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD06FF5252
%A8FD05FFA8A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA87D7D7D
%527D527D7D7D93B5FCB0FCFCB5B5FCB5FD057DFFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8A8FD04FF
%A85252FD07FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFF7DA8
%FD077DBCB5B5B0B5FCFD04B57D7DA87DA8A8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD05FF7D277D
%FD06FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD097D93
%B5FCB5B0B0B5B5B0B5FD057DFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD04FFA8FD09FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFD097DBCB5B5B0B5FCFD04
%B57D7D7D52A8FFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FD057D527D7D7D597D93B5FCB5B0FCFD04B559FD047DFF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FD0AFFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFFFFFFD0B7DBCB5B5B0B5FCBCB5B5B5847D7D7DA8A8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD
%0AFFA8A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFD067D52
%FD057DB5B5FCB5B0FCFD04B559FD057DA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0C7DBCB5B5FCB5FCFD04B5FD057D
%52FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FD0EFFA8A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8
%52FD057D527D527D7D7D93B5FCB0FCFCB5B5FCB5FD077DA8A8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8A8FD
%0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFA8FD057DA8FD077DBCB5B5
%B0B5FCFD04B57D7DA87DA87D7D7DFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8A8FD0E7D93B5FCB5B0B0B5B5B0B5FD067D527D7DA8A8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFA852FD0E7DBCB5B5B0B5
%FCFD04B5FD047DA8FD047DA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%A87DA8FD0A7D527D7D7D597D93B5FCB5B0FCFD04B559FD077D52A8A8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8A8A8FD0A7DA8FD097DBCB5B5B0B5FCBCB5B5
%B5847D7D7DA8FD047DA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD117D52FD05
%7DB5B5FCB5B0FCFD04B559FD077D52A8A8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FF7DA8
%FD177DBCB5B5FCB5FCFD04B5FD057D527D7D7DA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8A8A8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFD09A87D7D7DA8A87D7D52FD07
%7D52FD097D527D527D7D7D93B5FCB0FCFCB5B5FCB5FD067D527D52A8A8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8
%A8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A87DA87DA8FD05
%7DA87D7D7DFFA8FD127DA8FD077DBCB5B5B0B5FCFD04B57D7DA87DA8FD05
%7DA8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF52FD0F7D
%52FD197D93B5FCB5B0B0B5B5B0B5FD0C7DA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8A8FD057DA8FD077DA8FD1D7DBCB5B5B0B5FCFD04B5FD
%047DA8FD077DA8A8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFFFFFA8FFFFFFA8
%FFA8FFA8FFA8FD0CFFA8FFA8FFA8FFA8FFFD08A87D7D527D527D52FD057D
%527D52FD077D527D7D7D527D7D7D527D527D527D527D527D7D7D527D527D
%527D93B5FCB0FCFCFCB5FCB552FD057D527D527D7D7D527D7D7D52FD04A8
%FFFD08A87D7D7DA87DA852A8A8FFA8FFA8FD0AFFA8A8A8FFFFFFA8FFFFFF
%FD08A87DA87DA87DA8A8A87DA87DA87DA8A8A87DA87DFD05A87DFD05A87D
%A87DA8A8A87DA87DFD05A87DA884C3BCBCBCBDB6C3BCBCBCA8A8A87DA87D
%A87DA8A8A87DA87DFD05A87DFFA8FFA8A87DA87DA87DA87DA87DA87DA8A8
%FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD10
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD2CFFA8FD27
%FFA8FD56FFA8A87DFD25FF7D7DA8FD25FF7DA8FD2FFF7DA8FD25FFA87DFD
%26FFA8A8FD2FFFA8A8FD25FFA8A8A8FD25FF7DA8FD2FFF7DA8FD25FFA87D
%FD26FFA8A8FD2FFFA8A8FD25FFA8A8A8FD25FFA8A8FD2FFFA8A8FD26FFA8
%FD26FFA8A8FD2EFFA8A8A8FD25FFA8A8A8FD25FF7DA8FD2FFF7DA8FD25FF
%A87DFD26FF7DA8FD2EFFA8A8A8FD25FFA8A8A8FD25FFA8A8FD2FFFA8A8FD
%26FFA8FD26FFA8A8FD42FF7DA8A8FFA8A8FD04FFA8A8A8FD72FFA8522752
%277D52A8275252522727527D52FD70FF7DA87D52A8A85252FD087DA8FDFC
%FFFD36FFFF
%%EndData
endstream
endobj
70 0 obj
<</Filter[/FlateDecode]/Length 13247>>stream
+H��Wms۸��@?�cOO)�=�d[��[I����@$$�
H�V~} Iъl+i2N:
��}�x��ɬ6������W��%�T}d�h�y��J�N���k�]
F�E����I�7�z�o��ɀ�{4�[!y����S��Y�)�]QEE@KF$^�?��q����׃��P~AR��.�|���
�\j6�$I�'`zm���Lf"db}&��ȅ�V����6�W6���
d�Dɀ&ɹ�R%}t�%]�5p��r.��'����)R�n�`�ާ�)]g�(���J��;��Td�(
i����
��
�y�N�`�5g��U-)d���4�_�����cM�,FPf4M!*`�����Y56P.:����Hʟ��Z%㈨�^<5oN��C�L��N����
��q�G
��sQ�s���l�f�kٻ��[F���J
+jC0P�̖@����r���Z�Ժ5�l
.eH9�K�7����Ko�ks��4�ڑ<KM�w� ��Ȗ�2��㘊����Xkt����2�����F}���F�\���Z�Z�VRh�@V&���bk&�5�
ڽ���[��];
Ե?Ƈz���5�ÃN��90��@TҔ��5(���J����5Ṍtj���>��k�+dž�Y��8~�dJ��)��Z�[
+!��AȠ7$,�l|
АqN�YJ�U
+�M�9��� B�6L��jVЈ0�a�<1ʃB95��V�VDi)ʬzf1��a%F��+-VV���JkJf���f;������*
���� ⍓�*��Hh��/3�i�c�t�
���p�!J�l]��@�[��M�a+�To^lm(��
��t�C<N8I6NI��@���v�⻥G�>��
W|�
+W��T�#�ד@����1��v2�w�����
��X at 8�R+��L|n��"���3h��f6��Y�=ObP<���Ŗ�X�!��id>��!�Fi1�:�lG�Đ�2] e�ʘ�Q�V�،3%��f��v��Q�����q
��P���n�-IBK���Ff ����
V�[�Ҹ�
���G�r
����-h\�W�=��k�������Pg
+�w\����H�t��a``$0�ni��
���,�$Ka�y����4��o�y���0��M
E �
����LJ��| ���~?��]
�c����η1�ˊ+��k�C�
+2>$~�u7^�˛�:>�dҏ�0ic&V���m�E� tx��Au��u=�)�S���V��̽�J�Y }���TwdP���qD�9^���m�]��^��s+z]|A9\�^3�j�">Q����t5���[̶�R�����l�� T�>�1w� π�V�,
��tN�%y�U�i��
Z1\vs�n4�XJ�ŧO*�#WQd� l���y�
����N�R��rWԖ����D�ϫ�p"�~
������=!���
��p����u[����
+눅H��;;4��m�
�����}3R�Le�ͥ�ڇ�R{N6T��1֘16@����W�+��
+�_�?��s�sec���˕,�K
+˴<�D�z�P&�%�ζpY��Ҧ��>�B4�mg��b�Ak�mHL��t�� g�>_�=�V{��~�@�r��0��9�� �1� �C4�p`�"|E"�~q��k� �
x��q�h�˨�7}߯�Nϳ�^��{�S�']�~
��`����Kt�B ���{���~��Ap���g�
PI��?������B��r������]�
�F���}��n����{�jH�.�ϦpB��o0��dy��'7S�Q�� a1����ӝI�L�J3�վ��ށ�j>�� ��V=ײ�N�j���A�
�幭��p� )q^-p1���3f�Dm�|��
duznu]���>�����4�T����/@ҽn)�
+�5y-���e
���0��qr�����%<:-�C�
:%��<�;�V�
y�Y2�|.��
+c�D&L�o��R� �`Z�ාW�Y���o� ��5r� �*M��QQl�Z�%���y���0#x���0�\��%�Д&�gy1��j�CeNg4�b}i�J�s�/��]������
$W�)\cV�3������$��
*"I�I�]D<&axZ�m�Y*є���ʘ��������b����s�-ᑘ�R-���诠�
<^�<
�N��?�6s��,n�J^C
ɯBo �
+��'��DY
�%Ƀ�O
8����2�@�c"S �Qa~�_K�%����Aq���[�y���o���1ޓ�8�F��
S��f��7z�%����V���X��h�4��R�~u�O��~�
l�c���
��2��a�&���4~�m�p�콸��[~q�}���1�ݾt�=ʕ����]iu:u��z�ys��ts�G9�e���
x��O�֛c�x�|Y��w�c-�����q$�����*O�F6e˲w�d+�h֎���<d�R IXQ
e;_�
�RH'�/)G<ht7�O���t
�Z> ���Oh�g�ƾ�%OE at nx�¿|��t��]��C�A?���O��鞰^�c�uFgESNf��$[���$�~Ǫ�Ђ$<J՟ى���'3�
�#�F@<�eI�*�!)��(b�"��+���ـ����bx��N����9!�#.��aO�F�fQ
��~Ƃ$D
�"bxYvy~u^��ٿ�쀓%�����ht>���U�xgg%������@ '|
a��%�
*\@�S�=`�I�9��8g�ZU<�2NeG]���мH�
+�}
��>��|;.
%�(�Ē �,�:v�w�;�%x=^8ޙF�l����V��Q�
:'"��5��
~S��(�qx9�.
�����p|9�@�"��M�U�pmF?�J��m�[E�@�9p8����C9p��1��`��S���
+���!__
�#s]����9�3Y�X��h��<G��t��|���E�OK����5��J����k�]=Bƌ&[��3K4�4""3��% 8
ߙo�nK�/�>S�
Ni"+����o��1�t��v�h����;�ƽ�S�n>K߬�Q��w�X%�(ȫ�q�j�6��������
Ȅm"�S��v�&4#lU�
Ǫ��u�|��Sv"����3�aTL,G������R.�Z�R��
+��������Q�x�ɭ����*-�w6W�ݒ���ָ:m_��k��.�}v�g��!Xw��]E�8yS���՝�όcʂXۚ�I�n�ȭ��D<ѨBG�������f.������59��|�
���0
3��T�Jr����r�u�� ����+%��>�{U�q�aS�*K��jÂY�Z���# i�7B���ԅw�t�jQ�O�♂U��Tն����B�n�6q�o
s����w?Qm{�=�8�J��S�>�8՝�̒;?E`�j�@��m�'� Һ�:�n�jU+Ü���f
5x\��ێ2=���t�TQ!��#A�T��4�����jě�n � �z=H�ݨ�&�3`����ۮN �["��@�S�#-gb^��� � �-
+�q���b����σ� }!><
��y���4��Wt���A�5m���UI8q��H�1.�/�(7�3h �h6p��#eEr#
��z�h�hC�&���o��q�&��50#IU�Y;7�u��Z�)z�����nqHq��I�����NbRK��
�&��S���R���F�L��O
�� a�57ǍV�ek&���%�q�D�Ѿ^z�%�
��k�O��F��s
Ҥ��-I�����Z{�_�K*]L�������qG�{���fN{�˜����Z�
+
�
����Zt�F�M :,�-��1���Y�.7��c���pd
$$k��^h(�v�P��r��&sZ
H�[�o�d!�z�U��Pm�
��p�tW��#4}{��;�
"`�BF7��$���2L
9�z� ��NdDh�]l
+�;m
z���k��
+���H
+J/�r�=�C�
��;(�Ġ��~��l!Ab.
ST!�b�
}'N��
xJ��X!���T��
]
��ۆgy��S:|.�
�O�B��
�J�r��xQ�^�Au���F�6T?cwu�F"��h�8,�߰��.��&����
6f�w�Vr�XM���W3���`��q�Ƴ��
+b����T����L�x��^��>�sHU:ƙ����
�}D���<�LvW��
�Lf����G4)�)
�$��?�>hb�Ot��� ��z�8,��1�.�6
����
��EB��
�B&;����1_���A)At�+�N�R��g �ޑ诳(J���xu�eU�5��}�C��R���W o�4{�l� �vUPť���o��.�/��nW�aـ���6��
��1U��P����
+C�s�-5+5>b,+5���S1Ȼ��*�~Sj��+K�8Y���7ա��qL�y�P�)n
��p`%��Q�F}����۬�����3�P�<;r���>��({���ܔ����T�e��
ˬ@<�j�@���>��_��J.�
9��V�=i��uOul��n�b4ܿS\%�]bOf��)�q*�'0H�w��P�{ے
+��w$) �^NOZM�A�&B�p��1���F�s���@���G�h�V�Ȣ�@����C�m �
+�z�W$��(�}ض�X�w��ć5�;��,��#�-��Wݾ���&�@&��>����^��wq�tT�����������疳Po��ʈ�i�a:ɤ=�Nf�g�٠'_IHӽѹ
z�1�~Di���J�$��e��MI"i�䙽{�L�*ϟ(�ẘ����V�q���O
�����u��
n�el� ���~��� )}
J9 ��kZ�g��o(ڏ�+���XOs�c�Rݪ���(E�j<�"o���G�����U<Q!$�eKJ�A�f����N�ϓ���(�A��
+ �$�[7��S�� h�eJ_���`��]���GD�$W&��T`�"
�$ye�5d�[�ތA��
��d�1Hh
+��uu=MP�v
+aЏ�t hlQ�s
��[�]ЦF
��b/�B�~!��u��j�uT�O�
[
���?S�R���{�ٷ�nX��
<����ˁ�
~[n���4���c8.n9Z^���0�}d�4��)�X��y�n�]�
+tu��
����H/���q
_����fr��N
6���[ �����_�������?~H�֫�i4�'�O詝-�pn����J���G*�[�@���Tzs��_,�hƸk�y���\�ss�����j%�W0H]�,�lE6���
�K�� ��[�/Q��u�� �LR
Հ��7�-��
@(9�isY_�?��*�an˧��'
+�Fv�D`.��9�2�f묢��Ky?�ri�&=?�=>"JG��x���o�ng'ŏ�4�S
���<�������D �2R��
�P�
�_� �X����
UV��^����4E>чZ)S�
SB!�
������� 7�
9��|��
?��
�o��S��{�"�����JP�'�l&|o��w�����-���T�O��T���nt$&�
�I9s�W����gӮ���� +� w�Q9*J��S�Bf?ķu[o��d��4�^�!�9Q7�)��?�*J� ��
��[�OT�ة2�m�hr
�� :�
8h���
�]�К FGWo�@C�IO*�
�PP*��'lP��a#.WoX
���`d1RGB������((�__
+�5�r��@�AW �Wh��W��v�$���6n�A�fճ�І�c�*��B
+�R�.��2��4{}�9�'�r
+v&�z(���H
�]8�2�� ��lM�"�*
+zt
D-��Of����~��[Cjuʋ0
+�rS�@#.2,��&R,Y�y�頡������t��|S�a�:Hw�Y��[ٲi���'CU��Z��.;��`�V���
�0/V���`p���CTv�G4��<
������
+S�XL�
Z~
h
tD�v�댆��iE�ӄ�k��N����
́
�FQPytV��j�#
�M�G,��]�8h<ҢUטMkE��3��EB�tg���;;u�;���bN�
�u߶1�F#��i����i�
� ﵎�`.Urh��e��S���*J-�2�K�gBaMV�
�K��u�<�'ML9sY�B�;h=���J�
�&�I�h
��/ۨ߶W�ב�U���)Z�C
H�Q^���o���4ٓ ��`Iz�Z�^��@�ϊ2��˖��pM%��H���ҙ
`���a�J�b}c at c͠M��>)muh�[�X텫�}�7P�7���=�6����/ѳ��V�:���I����eY}��aw!%�
�;��IP�p��?U�iPi�y-
+W�}� TV���,��.*��K�e�^
�3��nO��G4h�\.�LՋ��!�K|���3�hD�+U�DR�ڷ��ޟ@���}���O��k�9"eq��
'�����
L�C?���#���ҸhL�q�@�,2�b�3� ��aLt�e�s���.]���Xǖm��t�0_��ږ}�DW>f�^v�
O?;��i���=6���uT^x����'"XȤ��'X��_zG�yߘJ����J�w��h6�o7>X�R�C��c��'��R���W3i��W3EI3d&t�d�N�q�].sC)��rV
�d�b�L����3�XaN~���t��6�.��,���N��12�f�*|z�
��.;���&�wVW�-������e'ְ�����$��u�^�)ַ���O&�=��6����:�U
rGlb��1��U8�\�%a�:��
t�v�L�r�Q�+�����7���v���[(�~0��y��Pm�a��zw�X��
+�ݱX�vs0��)f��w���C�Z����v$X�Վd��6�r��^�e��"��7�z�WP�u��������
��~��m\��V�Q�X�����zq�8�]*
�0��]��>F�EFO�VM=��9��ѺΡ /{�:9��og�¤Vu�0Ij5�Ϸ}��_g�So���ʅWJE/�m�?ݤ�X�s�7
u���u��
#M���w3�D�����{�K96
�+0
��[
o�C�u�TpI�AѼ��t}9%u���?
G�Oc
mf���Q��,�
���ǣ�b�ɺ��>���!�ǾԱo28;�/��oD(}�k���s�2�q�/Ͳ
u�b
F�b�_-���`���0�ye�W�9�i�@ߡc?;��2���1��j�fYKOpo+=j�������lH���� � ý[||nm]��Ч�g�Uv�ax�'ܘ])�{��p��+�kBZ�)W,��*�/�\�0�A�Z-}���|c��*��
+�اX��j���7�:XOWa�e��[��)��1X[4��~N��4X��!c�\W�~�Az�<�����
f�w����_�_X��o�
<���7���=��ך�5j���X���,��O��0&���k��xz?v?-z�I�Ό�,
^��Fd
�}T�]J����l��J��ۚ���G\C�CǨ���o�^W�&��.�����S�t�����{�F���R��A�bR�8���g�u6�NI?��e�Z��ء�/�!03 �S�b�^A*Z����W�W�����I敄�I��嚅�}�އ��[�ֿ��?J���j~���S蟽/p���Ѱ��0F��^ǽ�L!�ᗵ�=����*&�u�*�\��n�b
����~����ٌ;\���o!�,F
�����.A�8VG�P�+lP)���"[��z��6eѐ�{�`u
+���e��D�0��c�Tg�V84GS@��@A)��%I�0
+�@4�P���H֞� vU��Ysq6�N�ŷ�c!��
��?{$���z�Ս�����
+��m������@F
�z���K�z�
قHBZD��l�ϯ � �� �� �G��
Is͢s!���/��Z��,r��ךj~�
����$"~��Ǫ��⻟m�XЂ�Y� A
��WW����8p��{qb
U��F!V�DDw.[@?7@��^y�h�����R�i0��u��
�ł���37NM�
�^�%+�e�-��B�x�
�Js�����Ko�IBd���p��!{ ��
Цƒ���b��
(����Qda �%���\^
+���.�
"��V�і��N���6Y)-�y�Jݜ
O�h� "l�D(�CN��&���ٗR�4\hM���&O��
��x��2�z ���k�@s��B ����0
�
#ײ�6,с���eM�9j�\�{Y��o�w.g��Sܻ�L���D�����;�w�
6���_�rS6^� �
��zꘌ�&�B��I�������i����Y�19��d�h
�$���JV{�
+���'0�VR��)=�Ī���};��)ؼy�Jy��ְ� �pw%��~�AQ�A1��OF>���( :]
��oE�J�LI�
+����
��#�����&
�������[a
���v�cQ���VRj3&�����`G
+�h:��a�T�|;��I�ԝ"�`�d�E���T9�`�i+#T)�0���/�]"�)/���@ \�� �X��P !J�y�^��*�l��,Q}�zl,Mi���xf
��R��ZSJ�}�}�B^W�+"a��X;�9���0��Q̬o���
#�yc�5�Li��
����p�T�i�X]���g(}\|��ښ�G�\(�16����^4 X)����
l�b�Hk+,�쨰��Ő��6X
��n�:9�
5=
����!����ʳa1�Za�b\�
��
+�n���x��d��S�e_��4
��)�����wh� ��nd,��e��S�n�y)�*�D���*S�yc 0���W��Ր�qA��&B�����`U�%&���\���4�i a�
+1]]�R�\�{�$-)�_v�K�Fy��Ӓ�hŔ�c@�<�D-�q��M��P�_T��<���Ը^&zi��Uǂ[u����9>r~R�����) ���X/lqJ��+��
���t`8F}��<�z���F�J�iY�
Ǿ��u���o��y^딾
*��A�r[��F߲��r����r��D�~L
c�_6`g Ϣ��/��tf~T�v���P2��3�9�/??��ܥ
��_����L�&�T�G��6=^��B��^����%y��U�A��uz�ݙ������H�)�9�
+�u��u�׀�è~�_k9}pj�
3[�dQ��缘�{N
�ӣ�~����uj�e���N��4�w��|ȥA�ɯ'�7���htv��;��i:�)�{
t��M:
Щq9~y�\�c�����>����˫鱏����z��h]
��/g��û���D�������m�w�e��<��'�����_^`>�� m�� ���
�l�Imc�n�+�
_{z��ԻJn��Z
>{]�e*VumcƱ�RPF1�
�:/�lXI��
_�t��(�^�m�TKӹ'���\H���X�+�t۶�
�u�R
+]�B��i�ɯ���:qDO�y��x��G`��o��[�� 8��.�0(��4|~x�AɇS-�����6,z�|{�Xw_X�IOV�f���d�;��
��w5W�5�dg��4��2
+�j�遢4ʁ+
�~��R��ti��r�?�3�W�����E����(���\o��ɎG�.���c���J<T����$�r%��*i�+i�N�$�����
�\�ߪ�!������wk�4�)['���"�1?�D�Z.g�s������y���
E�0$���kv�y�
+�Z�P$��;Ώ뱐�0�����̼L���)�q~W�Q���m�}��(����pa��� ��OY.f���y����>��};Z+AM��(���`����+�bɴ�.!&iH���tPB1
���=
�Ս�:���K;�⽀se��s�
<�eZ^��=��T7�V��e� c���Č��n�b�mV,�͊6I��)�-Sd�ώ�Ww���eZ]I�ֱ��YJ�.��:��z�M�����\�n����l��[����L2��!�l
�,�枂�uZ�whTƯ㞨��b�M�z�3�W����C~aU��<�V�J�
����R.b͏�WMԑN�ʧ�"݊���Y(=`�u�OrЩ�z�_�:X@:�;O�W�c�d�!=f�Q�$�)שP�uZ���Wɽ,�:Y��m�@e�
�y�_T�bBLUCB} *�<�B»ϝ$��)_�=n�!�jPSZ
<�.���A��
����f콑���[^���[M# �
�b<|�**���q~�b�N?��8|��{�U���w%Jm?
�9u
�ޅɎG�.��E~���J<T����� i��[NBdzB���ϸ�6 "o /�3W�nR�De�3��� �8�î
P
���\��ɬ��i�˫�b�U�ɋ�5��x��M��PWK���b�;�
f�&jD�r��~jd�ט��
+��'�
;�������M�! K��p0�I?PX\M^��ą���&s%��<���dՁ���Ե�1��ū;��k"8k5��� �λ_��C幂P���'��1��
k�93��P83�)�v���vn�;�U�oJ2X�!;���V�2�T��Z3J�;{
+v(.ERZ -!c��L$Vy����,���=W>��1���;M��pdJ`Fs[J�/OF>��_��D+!LD� l�;�}-N��2sc|�ߛp�]p�)l��M�3�#ȕ$Vؘ
+|�l���F��[~��G�����jB��
%'8+��B��`�Y�f,���Y�h4
�îa����|ˎ��Y/���q0�?A�@)b�"�8�.Z��#∰�
q\���IzKB������|���+�U:�@�NM����Y�������[�l����|ˢ6ĴX��E��"ن�ՆT*Rm��/�HmH5�wWz¤:'�
��R|��
$c�x��
)�y����iCJ�")'b�h
����D��TG3'
GX��`% ���t�����Eu$X
�o����F��:�
{�@'�<!�!��:��[7\Q�&w�
��Z����18���o�އ�R�֧
a�%��/K�;ah9��ތ�Up
:�B�1�����R]rf�_�����%��h<
EC��p��mC�цT*�D��7�6$0 �b��&�X5ÇI,#4�Õ0/��������m�%.o���s��R�uVw
֡#V���d���pWrWO��4�Z�FIV�
�+I?���9
+
��W�.�Ct%�ׂф�N���C_��.
w���P�{3�Y��
D�y��
a�T��՜����=�(Q@�+l#Af
�?�U�o��W�p�
�9
ö�+
+,{=\�
����r���
��1
+��r��&�Պ��ld��;�T>�L'�E5>�*�5w����iQ5.;O��}}P���5���
+��
��Ps��Y�;���l>
��LM���ۓ?�Y8�mW���L�t����z��P@ k}�.�x����];��\��_~ɒ���;_XdƩ�,�\i�`�W�h��J�F�r�%��SZI���N�
��W�R[=��*�ֶW}_i�Pz�L.+ہ����
�
������{�!H�-�NJO�{��Qz��=�.�J��>�ԡ
?��L�R����p�V�ڬ�
���k�6�\�����$W�:HV
��"��@i�*Me�k�G�����}��>�˻�DFb��L��N�V��L
�'�zE���62�:�Tw
4�P%�*�`��߀V�/��
+
�ΩK���M����A�3�K�\�}%�ΗF���b���b
�e��e9���2�_ǐp�u�˨m�8�u��A�ڪ�}F���$E:N��O.���� �(�Ɓs�����eP4�#Lڿw}ٓ�O�0*/�O�$���Q��?{�4���~1�o�)��\t�����
j���7�#Mla@����.G��FPʌ�5�۰hۡq�� �3V+
��cԻ��\��
��UJ��nb�6H"����}J����g���<H+�_��r. i�.��c���.�4}�K�H���h�U��6z�{�x�0>���m�Q�F�ܦmY 'L�j��;�l5�L�(1L������-��[��6���'�ܜl
;v�K,���Q���[h�����.0��S�^�@�6H0�a�m�NX] �X-��dsap��dC�
;���M�R��.���8�_�b��
�6�h�/��Sr��I�g�9�ƹ,����=n�������$�
�r��U
'%���wsŠh��BqIdΖPX!�0R���+~fĎ>3b�8��u����
]����[gd���v�� ���Y��WMȷ6�W�6{����� �D��#���:�5�^����L��7C�9��75M���]��ZZVG���O�%/b�L�bbN���l�0N&�lw����#
�(��aQ��䆣8J�M�����pD; 9�
*#� ��]�4��&�
����"� ������
E
�B��4�"����a�+4-��E[י�Yo�ₔ��+]��I.]L�B�B.N���-�����#t}s�r�r͜�gO�S�hШ�uK�%ߤ�b��2I�"ǩ
�$ք�F������O�ETJ}�ȋ蚾���̶��˰l,�� ��2�ܕ�����Ê~]��k�V��~M��q��kE]�B;�r�T�����
�c7su*���$���դ�O�@�zg�9��8d���
U;��� ��%�&8a�D]o�U�G``X�Ya�Ӓ
6pG��͉�x
^��`����lt0��j{�������BBA��,��By�>�Zr�� :����E��nN&�C �n�Z&�k0/��T��!j@�,��
+9/�qhq�e���,+M�����J���
ks(�v������߃
���LM=�{�U}љ���_�(�
`hy)���Zx�z��?�,4�,x���v��Yc ڼPc���o���-
k��C"k�Q���+�1-e�p:�%�'%�
�eʁ��lu�|�h5�05��t���
|�&?��
�&�z�mh�ivN'|R�H��e��|��s���G*��!y�E�����G
B
x���,,�5�5X���s�K�H����" ���ZQ�]���(a��M����)~''�
��!t(� J�O}�r�����
)��چ4
WN8�+2r�6<����[>
�L4�@
B�a��u�K�ݽ�_���!"�� -��紡5�ZQM��
�mH5!y���b�!%
+j�߆�Նa4�� #�3�
endstream
endobj
71 0 obj
<</Filter[/FlateDecode]/Length 16346>>stream
+H��W�Z";}�~��Y��gTp�a�A��p�*��ߤ;t'��?��NU��Neי�m�8�d���B�1�Ro�R�+�d�.�=��gb��8�J�ڷ�B�����
+���h'K�(��cDK�q0���N� +�㌂Zc/o���֊�K'������"�z+�3�K���\�rXa9[ؿЌ��
����_��
>�Z�����ߴM�����I%����Iu9���8�#�Ȋ�M�i�J�"L��7v��.b�����'���7����\��x5f�3�`�n4��W��RT&��&B�H�5��$h�Ⱝ�'�� �����
�Vf�\�� ����
��қ
�/�3XHx��B����Q�56\�8�v�ƹHM6�$����K��M���v�H|e��Xr:�����m��F��|�]���نÕG�0D�у�T
�1�}K�
����[C���<zS������� �
*,0 5
S�cy�9�r�f]�c���ms�ޤ/!P9�mt�����IPc�Ѱ+ ���p�cς�0�b�DR�)8
+�E���/��k��a|����
��ֽէY
�������RK�g�p7r9a���B!FxDT�פR���s�3>�`��RK$_���s
+l1X&xں�Ih�r�c�֔�� �Ä�6Wp0N��'��K�1©4�)���to��i��&�5!��֫Uz��
+��/��
|���
>��?��O�t��yHd�rA;u!�9{�
W~����η�jm�+�?
����H�4��t>��l���R���v�:�3�^ 3�_U���%ǫ�0;K����t�=��f�
����̮��w�k4U{�u�52��XFA,��+
k�.���t�}
���u`:q�_����
~X����"b�
�F��i��T-���2��f���G��.V�����������
�/�`m�>e=�%��^i,��1�~���o��s����$�3o��)�~�`}(X���B�o��j�Z����Ywp&�5YQ?�td�Ӻ`��?\���]�Ǒ���GQY�V�&D!���&�c����͊�lgr�W�U�}|i]��|F�
+��
��
+���^�S
.�r�tIAb
�x���@�jk�"P�������}x�pyr��n�
�%ri�v,�5���4�:���� �J�Y��Y���I�k�)5Y�
((s&�"��+>�e���7�t�K`W
M:r��x��~95�.!o�}ҡ�d
q�=��T<%Ȋ����u�-� ��Ŗ�}#R��k���cէ�O|��O�
+-�s\eN�Ѻ:2�x�
+
L��OMn!�d�,�po>�Q������K�s�����);
ü��U�D�*I�;��i�'f�:�j!+�xG�-� _��K���Kj¸���0���f��X��
+<Ȟ��N�8�I|P��h���f2�Ց�mȝ}�_�%ǯ�2]��k����^2g��
DG
g
���%3�� C��~۵���Ҋ�,���n��n**�m���P�yd��F�-5��
+\c�պ+i��u�Ur���c�I�q©i��(/�� �33H�{���d�)���T�,�d2H�oe+3�b V��Dg��_p� 0#Zz�
fA1*�`ƌQPk|c�=�1s�}
c��m��c��ف�������oûJY}ؠ�!_��7�Օ
����r�5n�C��,�]�>(ٹ����MQ��`���� \�RQX
��.�6#0�х)��zoNMqK[�V
SQ�K�!�T�A�J@�pr���xˇSd�~�
��L�Pv�s4��۩��O�t�Q����L���X�y�w�۾
A���.�b�ꓯdk����t��[̹�Ȓ��
{h��K��
��wXRԽxb .OK�]I�D����@e㈉]�K:�vi��pI�
�ڧ�X.Y[��u�
�KBPJI�� �{/,oȱme��s�7�[4��c�\gZ~4IUH߹詷Bܽ� ��A<�
mV^�:�[X at v���Rуvj�;�?���i���вa�z�kb�
+�|:\GR�Ѱ+�*R���u rN
�[fջv�gr���DXyZ�r�ТHC�r&1p�#��K��]WBvȮ��Q�`OR�]Q�?�)���{���F�����$&�
�u�A��}![��5Q�~si?
�y�ih]���]鞡Ed�0ƩЖkk
и ���������
�'1dQ���ɱ��2��k�ML�Q�|v�ʉGq%��t�g�f�_,*���z�^u;o�wܾ��$y����M�@U�
��ɾ
!��Z-=ƙYb�
+�$���� �Ʊ5VVL
�G�@��(��8�����
��%Q�)�-f6�%#���KH�dB�9F��R3�6�{�R�;����F��j lo�ǂ2'
�Lj�ịK�k(��ʋ��E���Ib�r����s�a��g����{�;�������ZVI0�
9m�x�i<���>����
p��~�+䄉�e_g����d�d��7� �]�ݹ�ɦ�DU$�h a�)"��t
;W�%+��5 �
Q�
�Oeo�*׆��^mH�y�rӖ�/jC Ew�x����e�W������3�PQ��Ն�_�&Ξm��b�/iÞk��˞���Y`\(tW"����J ���!:|����^R�=�FF�iVì��5�w�����
��J
O�� !s�����ՁG(�c;�3��}��I����c(��=p�h齶�7(�4��C�����aG�KaT>`�8J)��� o��#>u_��]�o
�k����hЄ��p�r�!�l�6��К0e��׆�
p���q*�a�ŷ�)v2��
�
�ȼ0�DPN^�O>����
|Tv����*<m]��8Z�d��Wݕ �=�H��+9���i���
��5��)a�.�qJ+���]"y�����d*Xlp��r cipv >
+����o�?�>��7�p�R�/���Z��Lr����k��wh�A���m���pu��}%�s����]I0�r('��ʃ��jvb='p ���"@���X��{9��������W�b�H~�<*"�ҀQ�D��5�x��\���V7L&;;;��骮���n�����:N�D��
+r�����*�)fG��`��E�y9w[��ODXN�;G�5m����˔{��b�A4��
���z�"�=8Ym;���S��
+��{���t�I�?�Z\�5�)z�)�G1ckCŲ;��s�ˤ���ݿ�Riǣ�.� �z�"�}[C�
E�rc�j��5j�,7�.ɨS��P��Y�
:���8{F�^=F�,�}M4
�W�c��tBS�Ϡi=tg�v������}�z�y�
+
�d7�m�'&�]XM�!�
+���
+�~+�J�ht�ެ7{���F���L��r�9��w}=�|%�<�Α�xcJBNH�)��thX.�]��G
q�R;�
�G*��ը�6�#��O^�m'6\�E���YJ
�q>�if��v#����8��2S@�VՐ�z� �ـ���'�1�&S��ܡ�eS�'�
+�P�����uŏ��2�O�K��^Ij�\�w�?מ8)6ӈSQ��Q0��T at O�T�-�
+����
k�<U���-*|��af��[ح�+x^�0n�pQH�3^�VM
+�e��%�����!�^��w@�V,���/F�J���P(Ɠ%hP
�g��-�p�b�\�
*�9pxɹK%�˨���
N���AF�m��ﵣZ}x
+�drMlK.�z[�����,P�^6�QoC�
���F��6��Z�����5���/�7�a�ݵf��ڸ�l�c��H�lȁ?+���3l�2��Y)ߥ�E��ɞ�&��I��F�Ca
+���8jB��@#�m��.,�9��o=����������?��@A����E��x���,T�oL�Ȕ�+�t ���]fͯ��}k�2�F�O�p���*��VRwr�4
+̲��Yʭ�A_��oG��}6BV�,�/��^�Y���^��7�N\"������n���H���,<= N����bN.���L�<-�D��};��QB߰���,α�r���^�́?k9�>��t�1���1a���~�][�� �+���R��]7 �����)g���7�/�x
��|�
&<�c�J��T9��`
+�<̈́��B$����K��6Xx�����g��\:ً��ƴN�
!r��y��~�
��ڀ+aF�W��'%�.�Kڡ<
�9�6�!�\�yبW��Մ�lސ�EqT�[�C���}�
�n+�n���d�|����@F(��G�,�G��s�^��n�2 �z+�p�����q�M��*�xwP
. X��bg1<>Bwճ/Kf�N ���� s5.
�m��c����-!�lx�c���B��'��U��� ����M|�`�|����
!2N./4QE\.ٳn��t�.�|�C�������q�&�;)���
a
Z7�t#B�_0��^Ɯ�(�z%�@J9������������s��Z�G�<��d[�ԇ�2���,�<�����ݩ��̨�x,�՟�
+�=��5~��j��I��ȶ��8:kU�gq���^:�k��7cӲ8�9T1��
'����xNx"i����(1��/M�nN�Z���i./`�NT��
)H�`Fٔ����pޡk�"�3���9�9��`��
<�y�CBx�1��&
��AW�
�S�1�X���|B�RU����
]�)ge�n�;T�/Ӗ͉�u7�QGKT�䷃fIdϋ�^����{( S���$s��Əj_"��?�N�7�D�y!���Y�n
dQ5ʹ�`�o3�L�(�]
�s0!����b:9���w-����h�Z�� ��M�J�����D��#x����7�k��Y�KC+
+�
�������rY'n�͓�,�8���)
M�$nkg�`���8�����TF���Z�D~2�6m�d ��+�)�/ۅUG®xo��ۜ���:���X�����K��/~"H
���V�t�_Z�@���CE*��S
KVk+*�������_���74���2h
0c�2_��O���%n��Q;�;���z�6Ƀծ�Хٌ��
�
�_ at K�L�(�}T�|�C��̿�� �X��6&��PHW��5�Wse�;�o�ҮY�H������ɑ��x=E¯�����VۇBw�Os>�
�����ﺿiNW�P7��^��������0�B+#�����c'&�4�kM k�e9�
���44��hZ�wN���څ
�?�-{`L"�_m�3�c�x at _�
ۤ�Ԉ�т~ӡ*���韼}C�����#N����?7�`8���1�O
�!���J�R�z�pE
+���(��Z� �'���a����wھ�)E�?<�]��d%Yk�-�4��
]N��
f�����
��1zy���1�x�Z����b����S����F�3f��V�v7R��r���D��q|6��*>�fw >�����$�N}�F
=r
����'����Gz춽��� �I �R��Gs�s�1<{�3�3jf�Q86t�m�1v�Xw1�a������x���Bq��G
���c
S�W�>rs���9f�c.���Wcl��5Ks/GӲ;���M̚�;#�|-N��
}�N��ͯ4���p�x$�|�`��[8���Hp��_6N�c�A
"<*6п�.@j$ozV��_B?(�P�aP2ro@�I4l�K�1A���CAkf�h��|J|Rh���n��_�T3<9P�����h��w���3dL��Z���j�D���wWt�v��)pG��k�����
)uf鷫QϵS�X�'�.#�.�x9`��]e�eq�V���t g<S�D}�����clO��v}�=�~�{���`�;/�NVҌ:��8�>�}���/5�_<n�;hm���̑reB���R
�L��
�lC�GN/Iho�.�Q�Z���k�o�W�ও�&��O���@Н���[zO&�7���ˆ�#��n�c��H�wϾ���v�/m4�;�Tū��b
s����
2�a����6�Մ)�U˅"��Tȣ�M1o�/h���m�Rw������
+݃$�����+
+����~��]�F�w{��7�
��~٧�<���
;c{M͵c��-����1͵�0�k����gm��F]�.������DВ��|FW��M�_��Z滙̝u�I5{ U,�������!g���j܈�rƬu�J��FJvX�4��h]����
�%�
|��5x�{�u�j��fz+�C��@J��30%�d�=�B�T���?���
+:U�
+Z3�G�
�@�b�̢Q��d�
D
��N2��Gz��{!
z'��
�#���_����Rb�{�_l���S��&Lw*:;p�
��:_�#ɡ���I����
+�#w_y at _
X�lR*�_�*bh�~?ov/�_6��=��ߧ/?��
V�ɴͪ��F������
�ec�׳
?e�<]�f��7w{t�r�&3�!�I��.x
~;lfN��2.,*�� mKv��!*�A�i�[��z
+3���T
+��;�a��,��]
���h�
��ny��c�>�ȅ�e7��
���c
�
��q
�ˎ��Q
�{��V�1��u)O��N�P�'����
+��U}�1�Adl���(�ʱ�0S2�J�CE��L�l;n�Y�t0:�X\�����q�K�e��6���a8L��j�9�Dū�:��߯�Y�Чc�?��?�Y0�Gy��J���.
|P��ӗ|� nB�}����D]�ꜘmE8@�=��
+�#�o�y[�7�C��D��N��㻔�ؕ���a��G�ׇ{���QՖ���*�wF{a� N�1��\I뎦)�ބk�f�@��`���u�!�[¬��
\v%]A'��
��V(U��"c)�O��f�����
+�F�Ʌ��>�u��fYv�}��JBc�l���JAŞv���gro��
ђ�t��Z&!�%�|��0�u
+ 5=���J�33
�f%Y%ak
+�@��7���_8H�I?�5 ;p���]!Ƽa�`����)�z�RÁ`J�$ДJ�%���M&V���e� �; ��{`G���;�Liw�CS��q�a�.��#w�B�����-��ଠ���0�7w7Ǹ5�������a3"������
�;8
D
��
�?Ր�"E-Lt�� 7�r�MK� �����My�s���4qv�n��?{����3��#9QXd
��_��&�c���9Ƽ$���� �s��wBd�v� Ybl�0���Ձ1^<4
i+��v</���ӫ�4k�)Qٱ�%7��u��z�F�x����@���R�����Any���N
,�@Wi�^�8��zڡ�L=a$
+���dq�-�6k���\��<��qw�.�y)��=c!��|E���'i�A�j�T��������_,a��(I"�)$?X����R��7�b<��$��~{M<����,�z��>>�*կ ��ܶ�B�v�U��AV�n%9H�d�#Z�n>G��Z�߉�@(��Xı@��9�}��f�(��m�]��*R3kSH�WpA��
>j�>6eUH���E&���E�TL�]�kj�*M�;}1m
t &�ס�0�)khPD��R+A,�c�Bx��"7���WM-�Fs�ŷ ���Ӣ�g�TMέ�'R�2p�B�� ����1�I
+��r���1����W=���+�*�4�U�R(r8R������c ��d�Y�W)��)�./������3�S��x�B���d?d�)�$)Q���)~���W�C�QA�e��=A_��뵜|y������+��ɟyF
�gPd:��b]W�+9(����?�R��Ԃ����x��'�Ή��kU4V��8�irr6T����{+�_3琱0J��2�� ��Ǔ"#��YAV�� {��Z� r���X�f��)Wr
@W�G���ê-X銄?��;7 y[kZ��d]`q�Ms�x&��&t���ؚa��.���1ө��B�H4B�@����Ok
�'�K�91��3
+=g�G{��%�Q�
+��(� {� $,#���"����W՝
�q�?<� $]��z��H���B�1ωw#.�eV\Hh�
+b�F}^��<5=�����Z
ds�u�b)u��x�\3_����~8�xȪ�,�Dq�Ըz|��١����!;���A�(�^zp
(Q�e�Y.�af��r� ��uYx�iJ Or����&G���
̹M�F��{_?�
������7��`[\�M��1NE��ɐ4l/N�O
��D{G��#�E���l��քu����
�}��J�8j6~�����<vw h�hi�ῧ�+����
� ���eTGF�ޏ�h�
j�)7���cUj<���ZG���c
+�Mj��RO���e�\I+Ջ3��͡�
v�1
�h��#�����N@@I�
�)#�"����f��x'
+X�w�r��� .��c�� z�n�c����c
�����X�����c�N��0����ǀ}�M�
����`FjO���s]npi
l�k�̷8 �O0�j
�rEd�=
�n���ɧ4��@��?qf3�O��9yf,�=#(|$� �G����#'�d~ǵ@�SEҋ���4Z�R>����X%_4U8�_9r5�4 "IxvN�gg
+�M=�Ӂ�6'F�stt
+?N��0�H7���T"�y�C���_>O�V��P�{-�`r_8 �җl~ysB�����R=Ͽ������
t���7�6"/x1l��|�����#���WǼ�RQ�� ]!����|�k���(�KFWt��c�F4D���1�N'P��|"I��d�.w��{i����КI�
���J"����L89v�r=z�l�09���QןҪp
Dol��
��&�8��:�x{
m+\W���Ў"��7Y v
��,�j}� G?��\=td��<�@��W I�$3q at m��&��"l�yG�Mފ�*v
�2
��(�X� �}��� �
+���^�n�HZ��S�F�&�ڬD*��%%Jɰ=-��v췃^��z��~���q?$6��ڹ�=M�R�zۦSD
+B��j���d�E9?�;�pl�)fLW:1����2
23�L�Y���Z���ώ����^W���^r�l1���� �'[i�5��{6�b2 }
+� ��`⤜�]�d*g�\��0fv��,�ฒ55�iφ��v��(q����ݩ�K�dWJ�"
D�-�1�|V�b�ĉX��w!��G1�
@���>$��`'� ������ �*��`J�둋CB�N��G
NU���;m�
|�����EB�N��̗'�<�BWʉ
����~<��秸�����e�%��=!E��0���N��
��;������j(�l�@f( �h� �t7F��L��-��[ X�A�v�#c<��h
��؋���֫�������z]d��eW�$O�ٓ�����M�(5?�����~ ',
)Gq��dFω��Bt���/�q��H���C�1ωw#.�eV\Hh�
+b�F%Ìȯ�
8��g�p$Y�blAR�sCת�,��Ot2tg�'����Ə�b�m����:P2a�k���rޒ|s���$�
WU�B���$��
+�W
��R�W���j�2Cb+3��|�
+`�WW�ov��J1
+(4�~u8v
IB�F'q?�T�N�d�Q�*(��3���4��"|\����d���-F~�0@�=�8�7��<����牻��" ���,��ڗ�ya��A�.;�����od�Ǯ<��d~�l���7�U��1|�T^4a�l��kVO��A.�7�����iq Ң�Z��s�
=i���X��(3sJ�>ĩw�
$a�F d��c�Q����V<z��aZz�uw�
T|��EZT�$R[h�{���ԎQ���VH�Y&�>n8F�otZ0A��|���y�N��1��<����)
�`ɿ�)�q
S�Y ����a�\k�J�0/2iPI�%
A��ϫ�;/�2�M
k����F�D�n�
Y�}�@��q������ŪJ��%Bg@-{�=wʉrs�=u}�4����N�uВ>[�{�M
_`�I���"6�����N%&ø:vi
����}��
H���;1�C��7B�ނ>'/���������~��@�����߲
P��>@�n�e�zt<#�Ӳf�B(��Jƍ�1�s��gT:��al��&C��h����B��{�B |���9)�ۖ%W�Z���ez��Φ��a��\�eE�r+[��$�X��r�$��bw�i�e1+����z��~��� �\��|[�u?�(�]��$���
uQ��>�*|9�z��jK �\���e��U�Xgr�Nu���@0~��^6�*M���[0���� ��PT�����
+h�cJA�T�"ͨR{2?��>���y����F�W;U��L #�2 �^��T�EbC5 ��J��~�tl
އ�4�/���'U�I�L�c�W�����S���H���Y%�c�y�0b�I��nŤ��K)� ����T�LI��"�P?oKbMx
TťTJ�Mj����t���
�Ҳ�k��
�ؔ|ԕ����QfK�A����f��o^�S��/�d���������IڋǁE4�z"활��Q�zI~��iy�Ơ���Y�'d���+�TÁ�u�-B�ܫ`�j���7&F�
+ۈg����+�Z
J�L���
IT�/��
+l>�I%����?��k;qe �O�;
� B(e��0`06�l�lk���짪�B��{��97Z-5T�����Y�Q�?�.o�XG{#S
�Dr����X��Q�2�����'=+B#��>6��hx��I��T ,[:eX�:���g��U���u��
+����
��ef���XWU��Ŋ�\�VQp%��
(�QN�^UѮ�%i��&{U�L��..��
�l|��#%@��*m
/kuoY>�`r�܋b�H��$.��(���ݫ]p�t,�2<�
+���if\
��D$�;kfb|]��MW��q�uTn?�u�n7���_d�'k)��m�L�;�`��~.��Z�C��Dߗ�(M������$b}���U�R!�ի���ϒ�16�W�KX�(�3_��O�/HR9c�(
+�5��9��&{Q��=��D��G��˼�(_��� a%i:j��W���
E��Z1 %�eXsQ���ʸR���AQLH�o�()남/�(j�`K�6hMK�
������mM�G��ϲ��
���d`��D8��� �I�3�q]O!� v�#�h
+�V�1�$���5NZ%�X^�ņ��pc��7�[%3��f�y�"�1
f90�(~��
G#[��Z����|�l��$~&
�p at Z
�\G
+r%�!'%%��%� �Ś�Hj���Còjgd���!
R����g���.Y���U��k��+��$������7��)E�������T�$
��_U��F(��m� q �wiIƈ8Y)����H�E���L�f*��D�w^x�N�b�g������͉�(���J�� R�$]���щd�zgS����2G
�5(
+�3������u�WB�t�:��a[ �@�4Y�1uM���c�Ģ�ZD��b�����Z��~�f��FsIƝ� �e� ���E)�L�8w
+���w&��;h�Ԝ��t�Q�7��Y��?7JQϔge��#:D �
X�,B�b�hK䕆J���~��v�M��O�� C�Ec)��
�B�)�dF1�/�C�Fl���
+��
+�=~�bx��,KKG��^��]��+
�LP]nC
=S���(� m���婠�a���{�����0��\�n�)C/��w��,�)��Z:�{'��hਇ�jUf֏�4������oxM�����?�4���2?�)=�Z9
ɹtUoM'�3�ň ��U�X����wx� ��0�):��mS��ab]�gj�W
Q���{��e�Ix��|�,J� �Y\��S�
���9�����b%�L�?-�D����W��DrF3��
�n�g��>�&nu���|Iv���>n\�H~�6z'پ�&��:#�J#��?������p��&�w��"m��Q�X*H(�
A��x��r��ڬ�(�Q��G�//=��
sH��
�_�]�
��L� VI�?��1.gõ(�D�Y�,5ke�k��+m��p�E1>�!�$7�?��eQ;r:K=hԻ V���Y��H�͖
hH���>�B �t Mxm���B)S�oΗL��)%)����|�ܿ,_�?��K��U%��� [...]
+Q�����y���8*������ʐT�ll�UH���m�n�
�v@��S ����������D����w*�*�I����Ҫ�6�����E������l��/[�� �y���~�x���T���U���|�C�����W�|�n�#z���UKZ'x9.='koڝ������32�H&��<�^
½SN�5��wZ�z���|�6o#A��أ�Y�����A��m#�}�T2���.�6�$���`�k��8U9�K����)�(�'�\-cN��Og�s��2
t
��|�Su�x���)�
1ڴ�=�<\��ȳok��or��V>�&1ؘ��"p��~#��ŴZO<����6����o>w�0_���!n����v�+�ώ�������.\�/6���z�*V�,VD��rP��u���� ���c}�
�f���q$���y�[��������"�������t5|�,G ?
��
g�
����y�#�����+q�,�0���٭$QK�(�
�G'D�(� �<p�&h$E���I�Z�vhR�x�[��S�)�A�t�ѷ�X����Ͻ8��G6��n��}^�c �]�
�d���
+'��S1��ɵM ��"Z"���ώ�Sx��o
���ia��kO�����mk��7P?'*������J����T
WizL����d���D,b�1Sۈ�����gw�����*�j�g�O�w�@�G�nvBK���� MS������g�F�%K��ا�ľ�Gw�f�3QO��<W��tUJ4���wlD� `��X�Ql2���z`����5Lӌ)B�
i}��=D����*�o��.Ќ`��Î���[��횛������R��M�;i;ƨչ�;��Vw�tJ�zD
M�f����v���8�z1�����UY:�\B�T[�6���Z^<�#Yh^�s1��[������M��M{[
T��6���t�H�����*X
_)�O�Nt��Uq�;��帹�����\�sQ}�CE ND ��(����$X2h��D(͍]0�z$�s�@k�,���3 *0�"Ը�T��HDސ`~�b�u,� :X��t���N
,�l��n�_��g���>����8��Ab�/�SL��F(%�
���o��Oc��V�
��`j�|&#H�]}�d��n��)OJJ����mSK�A)�cb���A8_B� �c�dOO�*G��~n�?���ۭ�5�l�V>WaH�PM��VD(�%���M�
F
��Z�8�o�x�s_#Ʃ�]�Ĺ�&�b
`JL
���
�B%頔R�j�
LM����7� {�r�l< ��Oj��u�#�쉒��y!�l�W>����Z�/
UG����@w�
o�R��������ߥ+��� �2��ť�ߧ�c����v�ci3~}qW����B
s��P۟�����qP���jP��Ɂ}��b�x�T1�K���>��ڼ�����n���+�Tu�������1��R
{˸z�L���
��{>|u�|zQ]���8:1]]X�2Ig��֠��I��ѦU��vԦ�5ݛ�\�Q:ЀZN����>r�fk�N�S���>���^k�[�zǭ��V�?�~u)M��U|�
/��[��=��&>8w��A]�r�.Xx%���헯������?��C����7�$�I@~��r���
vDېD�` ��L86Lw
�`GD����
�-n�vp���>5J��sD�*̋�%�BWk& �o�0���4Kv�5�
w�6�,o�~��_6�����b����6
^V�)jN�_���r�����?ZL���tu�=�-6��v��vv���^�'?��
+G�/�\_�1��,������E���a-<���B
+�a��!ؾ:#��!���J��P'�ȕ�������
�'��ۣR���;A�Ήm��~~�����mq�w�����|9����E��^iu�S!��A1��,��w$�wC��?��J��k��
x�L�65&�-"��9>,�+̯t�N)�+;��f������J�ꪭ�j���N�X��)
+L�ͻ�(��*�Y�ɗ�*�d���ĎF� |����u~����y��*���G�
��6�}�����-����W*�FN ���v�N+d�8
9�?����qy�R��Q�
+#ի.F�,��
+5±���\�6����\��4����������c#
��
v>"m��b�.��+2g��+Z%�Ria���z����;[�l����2�����G��eV)-o`�]����߰��{����R ������,�������}�����B��?���
+Xw
�e��E���R�k
X-��R���<l^������
+3:��7���B��
kg
e`���
��iX
�
+*,������l)����ɿ�K�|`��ل��~0*t
+�g���KS,�&4�a�+D}��������.���&\�a
م�)m��|R��K9T�
�+����!�ZC�kyf.lS���C�NXj��"�K� yL[s
�-8�f�6�,ϳ9Ԏ Cw5â{�C��-���
�dc�[ȵ�
��L�#�T���
���:(� C�ɱ��-���+-
q�n)d�9Fb�4K�pH�bO�
G��D
9$-4-Ss
�rHZ8bAh1a]�� I��c�1L�B�4� �E-&-�,�5dm9FEs]M�;H����&���qHZh��fa�#�A1�H
\'y`�a�r<
,
��\��
��M��Sw��{'�Ҏ���;ՃW�|�}�Z
�ӝ�p�ю
��3
>�����Rh�îY+C8`9b�a�s3���7"�qi��g߬Ց9GW�L���9�y�#~}�M
�f�L���X�mJ��!�g����]
+�r�=k�F�Y�k�!R
��0F��=��$?*��3�I�E�z�����|�=L?�}����P)����(�
��v��@�A"�{?��4J�J s��܀�a�L��sXy�x;�>$x�B�<��\��3��+G<�h�{Ai�����*�0�*qN���O9��,������a
+�f����a˂�U>Zay�����?j-�f9S�\�8; l��~�C"�'�$_Sh�7��5��#�=��
��~��)��s����!;v���DWv��1�R�m��Nqf@�5FF a䂑���
1?��j�M!s���0LT�P ����9�0?��z�}�Z��Ugd�`�l�sDB��1�R�m��NN|�Б�9S��{A��
`���g�r���f������v�p��M�G���,w
+�kgG{FR�Ɩf�Ȓ�1?����M!{�b�0̧��CX��
2w�a~��i4˙B���aÈw�
º��N܉�|M�Y�2�,��(�)s#�F�!�'��B��)d�Y�
!��=s`���}��I>��*����ȑ��2�=2��"uԷ4
+�q���YQ�;���^9�0=�\�Ђ"w��;E-�Ie�����H�O6�<�=��h�Q��j��F�"|�3�
�
�A� �f9}�\+��ͲisG�_� �v���Y����k��yg�
8N���
�.B����V.o��hƲ|^
!� #�8צ]�YNE_��;�pr>�n����7�YNE_+���j0�~�T!�جZ"O4���� �h�S��b��^v,
��k�a����?jBͲ���'� ��}�
endstream
endobj
72 0 obj
<</Filter[/FlateDecode]/Length 1489>>stream
+H����j
7ş`�a�Zhd����O.$`XH[���ʂ����.k�$o߫��F�#��J���F�w�j�+B��s'�$�P��0NY�� ��T�I\�0ʝ�
���v�;ڿ�(Q�(.{J��B��
[5L���f��g�9`M�c�U�!|4:1�5���'��
~�6��^u��'Kf��g�� �+"�w��e��*6�$�F��g�R��D���K�
D��+]�b��
+RjW�zNC�A%o}�5D�̀{2hv?[QZ��g�� 6�Q¦{IPEnLjb�l�kIf��g�� X��K����N
.R
�bs>
�jY�zV�
`
+�2|Y��� ��!�
���,ȫ5B��0�ք�t��
�`t�t� �ׂٜ�Z#��
��5��$.��fȄ�l�kIf��g�� Xs�%�C�cIJ�^�9���F���s�fw)�m4��U�9�y�,_?+�H�3@��n�^b�GpfF�)�T�T���s�d���ze(�U
�#�Ā�l�gAZ�jg��`Fq�
$&F��
����y�vf��g��
�� 1�a���Lx��d��~f#��H.q�
$�Zk37B��U�9�%�5F���`�p�
$���;�
�dsN
k
P=/��p5d�����*ٜς����K�ˉ��,ꖃd$Qty��U�9�%y5��f\�ŢN9H���!8��u��,ȫ-@�� ��t�u� M7\/E����U�W[��ya6�;�=���
�{��<dծx����J"G���M�`z��W�R���3�\����"�h������X�T[��ya6��w�/FƔl�cAV���I�.
д���6Ԅ�����Ԭx��0�c�(�
p�j�ns�
+rjW�vN;.�jp�$�
�1�*ٜ�og��~^_1p���e�
��9�$�� ��r <�Za^Ba��K�����^<WQ^m��� n���
R��
ς��T�
�9\�;� E�Cp��{�y�X����5ԧ�/�S\A�!�����2HV�f3��\P,��$���
ݻ�ӶD�O� ��
�'�f��e��4 �!|&IP�/�|C��V��
�$��0 \0���]����lVl�� ���
�� a��Q
k��:V�l�� ���I�CJ�-�K|4��lQ�k6� ��������F8V�r
�(ۉ��$�&B͚0Hv7ס��}�Nݯ�������]^]3�a�������������a���8]��/��7/O��o�_��N/G�p|~8݃�S7�x{�
��k^�7� ^Ya^����J�p�hu>�Ű-��0���PAE4,H�8'��:oゔ�����7:
�%7�iM܂�D��
a���[2,[�6j��qJ�9�h�&E�ʿDY�%.�쫗�j� ����t�
+�?wW�ꏷ�����t~��x?}8�t��L��tzz9�L������jM���N�G�����u�
+0 ���
endstream
endobj
15 0 obj
<</Intent 23 0 R/Name(Layer 1)/Type/OCG/Usage 24 0 R>>
endobj
23 0 obj
[/View/Design]
endobj
24 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 15.0)/Subtype/Artwork>>>>
endobj
47 0 obj
[46 0 R]
endobj
73 0 obj
<</CreationDate(D:20130908202829Z)/Creator(R)/ModDate(D:20130908203154-07'00')/Producer(R 3.0.1)/Title(R Graphics Output)>>
endobj
xref
0 74
0000000001 65535 f
+0000000004 00000 f
+0000000016 00000 n
+0000017726 00000 n
+0000000005 00000 f
+0000000006 00000 f
+0000000008 00000 f
+0000017799 00000 n
+0000000009 00000 f
+0000000010 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000162 00000 n
+0000085876 00000 n
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000085947 00000 n
+0000085978 00000 n
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000020623 00000 n
+0000020808 00000 n
+0000020482 00000 n
+0000020295 00000 n
+0000086063 00000 n
+0000018156 00000 n
+0000037358 00000 n
+0000037245 00000 n
+0000019335 00000 n
+0000019734 00000 n
+0000019782 00000 n
+0000020366 00000 n
+0000020397 00000 n
+0000031742 00000 n
+0000031767 00000 n
+0000027248 00000 n
+0000021191 00000 n
+0000021465 00000 n
+0000027509 00000 n
+0000032148 00000 n
+0000032412 00000 n
+0000032481 00000 n
+0000032768 00000 n
+0000032851 00000 n
+0000037432 00000 n
+0000037640 00000 n
+0000038665 00000 n
+0000054576 00000 n
+0000067896 00000 n
+0000084315 00000 n
+0000086088 00000 n
+trailer
<</Size 74/Root 2 0 R/Info 73 0 R/ID[<5AC7A26E90D74744837F18C867B2CF86><EA5FDE66D1004575BE324FC57EC846FA>]>>
startxref
86228
%%EOF
diff --git a/docs/assets/reference/statistics/reference_bedmap_mapref_all.png b/docs/assets/reference/statistics/reference_bedmap_mapref_all.png
new file mode 100644
index 0000000..ca91555
Binary files /dev/null and b/docs/assets/reference/statistics/reference_bedmap_mapref_all.png differ
diff --git a/docs/assets/reference/statistics/reference_bedmap_mapref_padded.pdf b/docs/assets/reference/statistics/reference_bedmap_mapref_padded.pdf
new file mode 100644
index 0000000..794a9b1
Binary files /dev/null and b/docs/assets/reference/statistics/reference_bedmap_mapref_padded.pdf differ
diff --git a/docs/assets/reference/statistics/reference_bedmap_mapref_padded.pdf.ref1.pdf b/docs/assets/reference/statistics/reference_bedmap_mapref_padded.pdf.ref1.pdf
new file mode 100644
index 0000000..5e5fb4d
Binary files /dev/null and b/docs/assets/reference/statistics/reference_bedmap_mapref_padded.pdf.ref1.pdf differ
diff --git a/docs/assets/reference/statistics/reference_bedmap_mapref_padded.pdf.ref2.pdf b/docs/assets/reference/statistics/reference_bedmap_mapref_padded.pdf.ref2.pdf
new file mode 100644
index 0000000..f68fba2
Binary files /dev/null and b/docs/assets/reference/statistics/reference_bedmap_mapref_padded.pdf.ref2.pdf differ
diff --git a/docs/assets/reference/statistics/reference_bedmap_mapref_padded.pdf.ref3.pdf b/docs/assets/reference/statistics/reference_bedmap_mapref_padded.pdf.ref3.pdf
new file mode 100644
index 0000000..e3befe9
--- /dev/null
+++ b/docs/assets/reference/statistics/reference_bedmap_mapref_padded.pdf.ref3.pdf
@@ -0,0 +1,378 @@
+%PDF-1.5
%����
+2 0 obj
<</Metadata 14 0 R/OCProperties<</D<</ON[15 0 R]/Order 16 0 R/RBGroups[]>>/OCGs[15 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
14 0 obj
<</Length 18507/Subtype/XML/Type/Metadata>>stream
+<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
+<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060 61.134777, 2010/02/12-17:32:00 ">
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <rdf:Description rdf:about=""
+ xmlns:xmp="http://ns.adobe.com/xap/1.0/"
+ xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/">
+ <xmp:CreateDate>2013-09-09T08:07:51</xmp:CreateDate>
+ <xmp:CreatorTool>R</xmp:CreatorTool>
+ <xmp:ModifyDate>2013-09-09T08:09:44-07:00</xmp:ModifyDate>
+ <xmp:MetadataDate>2013-09-09T08:09:44-07:00</xmp:MetadataDate>
+ <xmp:Thumbnails>
+ <rdf:Alt>
+ <rdf:li rdf:parseType="Resource">
+ <xmpGImg:width>256</xmpGImg:width>
+ <xmpGImg:height>160</xmpGImg:height>
+ <xmpGImg:format>JPEG</xmpGImg:format>
+ <xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAoAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQV [...]
+ </rdf:li>
+ </rdf:Alt>
+ </xmp:Thumbnails>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:pdf="http://ns.adobe.com/pdf/1.3/">
+ <pdf:Producer>R 3.0.1</pdf:Producer>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <dc:format>application/pdf</dc:format>
+ <dc:title>
+ <rdf:Alt>
+ <rdf:li xml:lang="x-default">R Graphics Output</rdf:li>
+ </rdf:Alt>
+ </dc:title>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/"
+ xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#"
+ xmlns:stFnt="http://ns.adobe.com/xap/1.0/sType/Font#"
+ xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/">
+ <xmpTPg:NPages>1</xmpTPg:NPages>
+ <xmpTPg:HasVisibleTransparency>False</xmpTPg:HasVisibleTransparency>
+ <xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint>
+ <xmpTPg:MaxPageSize rdf:parseType="Resource">
+ <stDim:w>8.000000</stDim:w>
+ <stDim:h>5.000000</stDim:h>
+ <stDim:unit>Inches</stDim:unit>
+ </xmpTPg:MaxPageSize>
+ <xmpTPg:Fonts>
+ <rdf:Bag>
+ <rdf:li rdf:parseType="Resource">
+ <stFnt:fontName>AvenirNext-Regular</stFnt:fontName>
+ <stFnt:fontFamily>Avenir Next</stFnt:fontFamily>
+ <stFnt:fontFace>Regular</stFnt:fontFace>
+ <stFnt:fontType>TrueType</stFnt:fontType>
+ <stFnt:versionString>8.0d2e1</stFnt:versionString>
+ <stFnt:composite>False</stFnt:composite>
+ <stFnt:fontFileName>Avenir Next.ttc</stFnt:fontFileName>
+ </rdf:li>
+ <rdf:li rdf:parseType="Resource">
+ <stFnt:fontName>AvenirNext-DemiBold</stFnt:fontName>
+ <stFnt:fontFamily>Avenir Next</stFnt:fontFamily>
+ <stFnt:fontFace>Demi Bold</stFnt:fontFace>
+ <stFnt:fontType>TrueType</stFnt:fontType>
+ <stFnt:versionString>8.0d2e1</stFnt:versionString>
+ <stFnt:composite>False</stFnt:composite>
+ <stFnt:fontFileName>Avenir Next.ttc</stFnt:fontFileName>
+ </rdf:li>
+ </rdf:Bag>
+ </xmpTPg:Fonts>
+ <xmpTPg:PlateNames>
+ <rdf:Seq>
+ <rdf:li>Cyan</rdf:li>
+ <rdf:li>Magenta</rdf:li>
+ <rdf:li>Yellow</rdf:li>
+ <rdf:li>Black</rdf:li>
+ </rdf:Seq>
+ </xmpTPg:PlateNames>
+ <xmpTPg:SwatchGroups>
+ <rdf:Seq>
+ <rdf:li rdf:parseType="Resource">
+ <xmpG:groupName>Default Swatch Group</xmpG:groupName>
+ <xmpG:groupType>0</xmpG:groupType>
+ </rdf:li>
+ </rdf:Seq>
+ </xmpTPg:SwatchGroups>
+ </rdf:Description>
+ <rdf:Description rdf:about=""
+ xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/">
+ <xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass>
+ <xmpMM:DocumentID>uuid:5af32907-6a89-2a47-b860-cc1f6d0c1288</xmpMM:DocumentID>
+ <xmpMM:InstanceID>uuid:fa0e2e6d-51a8-a742-8059-2384c20b0f73</xmpMM:InstanceID>
+ </rdf:Description>
+ </rdf:RDF>
+</x:xmpmeta>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<?xpacket end="w"?>
endstream
endobj
3 0 obj
<</Count 1/Kids[7 0 R]/MediaBox[0 0 576 360]/Type/Pages>>
endobj
7 0 obj
<</ArtBox[0.0 0.0 576.0 360.0]/BleedBox[0.0 0.0 576.0 360.0]/Contents 17 0 R/LastModified(D:20130909080944-07'00')/Parent 3 0 R/PieceInfo<</Illustrator 18 0 R>>/Resources<</ExtGState<</GS0 19 0 R>>/Font<</C2_0 13 0 R/TT0 11 0 R/TT1 12 0 R>>/ProcSet[/PDF/Text]/Properties<</MC0 15 0 R>>>>/Thumb 20 0 R/TrimBox[0.0 0.0 576.0 360.0]/Type/Page>>
endobj
17 0 obj
<</Filter/FlateDecode/Length 1109>>stream
+H��WMo$5����1
R)��ɲiA��8��͆]�,�DB�{^u�3�g�L�E��s�˯^�+?n�Ż
�˫�����ǻ���5����+�������a�2��E=���N�8����~�W���駉)��'�s�bRёO�kG�(�-�X7][r��)���'�a��3}��ģ�8��X�٪���H���s�GL2|�W� �d}��f&�s9fk����H���t�}��E�1�G�is��v��@l_E�1��e���)ٓ�S�
^��
��C8��xg���_4��ps]쟨�c�5E&]2�"qV�l���r�*Ll1��K���5���%�~��)�
Tc��P�-�)�,Y9����u��
ⴼi@��݁�t�.�{2i
f��@\
�00gfW
�������D��'~Ɓ;�D3h�Q6+��Y����L
fY_08�ٳ�b�
�s,�^@|Tg ),`
e׀hW={^S4E&�>/͢��b��,�Z�(-�Ӭ�Lf�O3��R���LG�
yiA��ud̂Z$��Pエ���xϡ�C���Q��J�
�69j�
h����ʈDu����yFEUT�j�Q�ZE��z"�j�
+�����W4�L��te)�4��Mfd�g�N�L���ֈ3$ݱ
��ֱ%���4�+f��@cS�θ�Ŷ�9�����4p
T
��lڲCj�*���
�j�!��!��S�zD
ԑ�ai$�q]���1�f,����9�5�#�� ��
R��
��������BǍ�
������1�b��in���2ٱB^���A�����錿�~����
��`�~:����-��\^�ղ�ͱ(06�.�4Ǧph��������� �%���{ŠNߘl?�������_
�q$W/ɝ�z>�X��=�B��a?�~,rT�v��Q��LA
sI�!�3*]��Y����,����
+e���1<{�'.
+H�g�����O�?~~X
����
��i�Q�A�7�y9���͝z� ώ���UZ��\=h����7O�ߩ9���y�1��HKK�ׯ�����%|��>��|<�ϼ�[�L���Nl\f
��I�������q�͛o��y�n�� ǷU�
endstream
endobj
20 0 obj
<</BitsPerComponent 8/ColorSpace 21 0 R/Filter[/ASCII85Decode/FlateDecode]/Height 45/Length 258/Width 72>>stream
+8;YQVd1(a_$pufsqfJIbVsAl_.h[rr%[TPmihIYB&!p>hrda>r2)d6B?t]0$25dT@
+5EDIr?TO4i4=j"bM&YkFMu*G>rfUGYTHYHF%r.J602>iS,+^ahZgHOKnblQ1&+p/\
+am_gY_.CV?cI;g0'BKT#4NeE4nB6&(jZLQ:-23uB&'pR8Qe%K!U[V2'h$1ZI,k,KA
+4K8D-IEeZ_cGR?T at 5N035r=[!R#)=K4"_18b4AT3b+BK.r-B/p*<7sVpj2~>
endstream
endobj
21 0 obj
[/Indexed/DeviceRGB 255 22 0 R]
endobj
22 0 obj
<</Filter[/ASCII85Decode/FlateDecode]/Length 428>>stream
+8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0
+b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup`
+E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn
+6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1
+VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH<
+PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O(
+l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
endstream
endobj
15 0 obj
<</Intent 23 0 R/Name(Layer 1)/Type/OCG/Usage 24 0 R>>
endobj
23 0 obj
[/View/Design]
endobj
24 0 obj
<</CreatorInfo<</Creator(Adobe Illustrator 15.0)/Subtype/Artwork>>>>
endobj
13 0 obj
<</BaseFont/DYQOLU+AvenirNext-DemiBold/DescendantFonts 25 0 R/Encoding/Identity-H/Subtype/Type0/ToUnicode 26 0 R/Type/Font>>
endobj
11 0 obj
<</BaseFont/DYQOLU+AvenirNext-DemiBold/Encoding/WinAnsiEncoding/FirstChar 32/FontDescriptor 27 0 R/LastChar 121/Subtype/TrueType/Type/Font/Widths[250 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 610 610 0 0 0 610 0 0 0 0 0 0 0 0 0 0 0 0 0 0 764 0 0 0 0 282 0 0 0 0 780 0 0 0 0 574 568 0 0 0 0 0 0 0 0 0 0 0 0 550 0 0 634 574 0 632 584 268 0 0 0 0 582 610 633 0 364 444 340 0 0 0 0 513]>>
endobj
12 0 obj
<</BaseFont/DYQOLU+AvenirNext-Regular/Encoding/WinAnsiEncoding/FirstChar 48/FontDescriptor 28 0 R/LastChar 53/Subtype/TrueType/Type/Font/Widths[580 580 580 580 0 580]>>
endobj
28 0 obj
<</Ascent 945/CapHeight 708/Descent -250/Flags 32/FontBBox[-205 -250 975 945]/FontFamily(Avenir Next)/FontFile2 29 0 R/FontName/DYQOLU+AvenirNext-Regular/FontStretch/Normal/FontWeight 400/ItalicAngle 0/StemV 72/Type/FontDescriptor/XHeight 468>>
endobj
29 0 obj
<</Filter/FlateDecode/Length 4154/Length1 9246>>stream
+H��Vkp�=w%�����DD^i� Y��%��`���<�<���+i2N �$�
IK2-m��UZ
+2B�N(�i&?Z�MI��i'�t��
d�fl���r3i��������W������� ���+:��y��C��&6m���L?��������ƺ�~��[�l��Z��qΞ-;�
}iY
`�ر��������@2���Jß-�H`�5�
��
�U����p��
����z� � ������u���dq�������3����s?���
���c���S�t�ϳ�qC
G��)L˱�o�!*�/@r$X$���Z;�Řz��-_a��S���ċ\�c�S�[Ƙ���K(�Xّ �d�lI.ؤ$s�F��Ξ|$��g��� ��H�Q�d� iHGW�B6r��<̄��0\�����@E
+Q�b��
xQJQ
娠�P
?jP���C=�a>
A _B�
фf�`Zц�X��X��X�v��*t`5�`-�!
��(6��6���?�#8���%����]������38��M���c�����g������`WqM�����AHq �� ��M؇m��9|Sl�
�/���f�+z�2�;�eх�����;�61_�n��I�ӧ��N��*���C��b%��.�#��Sl��
b��'��X%ֈ�x��<�0����:^�7�� ��k���Fъ]�I4�<.��"� Vad�z3��Y��(�
}J�(9��M�C� �9��u%S����R��+�J�rޝ�����e
�c�x�=Y��
��������)��'�>�ŃاR,fF�Lտ-�D�XJ�\�]��~�=C�Uf)��^��idϛf�fd����b?�]��
�{3V8����;�/��
?>��ؼ��c�c5cUc�1�Xޝ��Yz'pgޝ�Ѯэ�kGv���.m
-
M
u��L҅��}�m�2���d2��W+��T#s�s7=
+��D1�=��/�Q;E����2�cK�>Ei5E�&v$
^7[�����
+��V�m�a�E���
���
� �AG0���;Ҡ;��=�^O
��c5y�:�M1l3H0�I �%J�R�
\�
59#
M���V�#�ۃ��MN��s�mz��~2�;��D���e�>���48#���ɞ�
���0�1Տ���
�74L� ��R�
C��А�vխ��O��k��-�6s�n��,��{�{LA�%�mQ��(f��(��'�a�3�=ZS�Y��V�m�
Z k�����hY�l�W����4Q]����H�����2;+Ӗ�OVN�;M�������$ki~~��2qqMMK^Q����D�xo{.ܛ67O~8-%'#mFA����ڸh��W���Q)4~R:5^ɓH��ݕ��[,���`�yUkL�<�� ���ɨR�e�5Xe�UYKU�K!� q�x�8G
7 �sظ�x���M
+}�B����Hhc#�("j�b-�K�#/o�w ����
!�N�y��f�Es�/�9L�
}ʐd��`(F&�{d�3:���l����D+$���W��D��!s�$�
>'�6�/��{�Ż����Ś��~�q�8C\"n�Qn��W����BT����dI��I�ꀔ�If�%UU�/��g�^��S�/X��dg��
�@ArrA at +
���[����͇B
�C�͇C��ԯ���w�uu�N��}�䵼��^��Fh���a�ᲄ��pʩ��e��OHK�+�p�i�ŵU��u�w�A��Wy����cɃ�Fx�[�^kIN��
23��+{<����θ�3��+;��θ�3��+;��θ�3��+��~��`Z�lc��_�kR)9��L���2����L�e*/Sy���T^��2�����ud*/�K��&_y�
^�F��I��j��1E�Ń�y����]\5�n�cQbq]��dY����͉��KDaj�����J5cQmraC�̼��rO}��3N_V����_
a|Y)��������g$�����D�!� q�x�8G
7 ��2�?ِC)��&5�ȩ�95rj��ȩ�S#�FN��95rj��ȩ�S3s�e�z�*��QE5
��ʈ�G��
�t����A}
q}
��A}
��A}
��A}
��A}
��A}
\�A}
�ќ���T2{�9���Q/s��
�2G��Q/s��
�2G��Q/s��
��s��
��9�O���l�mK�r���-*�u���q���oL���Ͻ�G@��p>��LxD��N�?��!�(Z��ZyP:���u���E��h��ɖeI_l��b��ج��bK�
g�5s���l�agۅ�}���~ [...]
�{�zS���X�X���~��B�l2�`��Ue'7�j:��d����vo^۽#V���x��
��ȏ���
��
j�P�/i�F�#w
�q������6�q���m
n�p��8���6�q���m<�7�I���Y~����9��hG���v�p���R�w��H����+�^f����(�Da&
+3Q���Lf�0��(�Da&2���{��
�x�%k�:�ֽ�-ɫ˯��ZT�z��穵m�z��[*b��m%%�E�f̾�VVV��S݁��;��V��*[�K�V��5'�S�;�o����9�H̻�T�>x~L���/���ޛޫ�K�+��^��MޛL/Vs'P���!>n�##�B��v��ڤľ.�LDFL�$�����K_��&5�]fR�0
�u`(
�O�-j#��&5^���2��
�K�� �jeأy3
�kؼ+1�Bޣ�4�w���ϰ<@_���-<X)�vB<�7�m_�Uv�S7K���=#����b0��В
+��
�7 ��`J�s�v'�#3|��3}�CrW�����v�#�?��g�L���"
37e��%k̔�Զ����\�=�Z�
c�
� ,�9Ƚ����<�7�z3bo�v�N�6/s훔rP*���]�;~г��`�X��uIG�R�*��]�压��� &����"�~�
�V�<��z�I�b.�
8��Y� �Q�y��a.d&�Gbvy
�C�kfy�ͱp|
/g�Z��W}���$5G�9��I�O�.��, s|�����b�g���]�G�>���"�j
�U�x_z�64?����<
d�\�48��r���e�� ���8> �$��5��4�Y
��Z�Z�(�OW#������m�K��q�8u��l�������nk�Q+�/�i
��+�
�=ɱ7���T
���R at mP�e!���y�Zrd'w�W@�4I萑�ޏ1�E�ڥ���4�S?��N;�
G��\w��������BI�� �g�G
W��o���6�}����F�0�eP�e3�ݎȠ�;qcl'w�Q�ft\�m�{��.��3��=��]
v������'Q�VsK���zwJ�)j&#zG�f|?:y�~��
�6�̳�&����}N��0%��m�?���g_�1���!�vj�;�L��ڇ��އ
+x[m�c���*ö�&���=��}��0��F�o�l
�{�������C:*��1ӵ*����q�#ՖӃxh
\���.��_
q�V o�s�o��?�w癒
�wJ֪�>t�o������
rN��%
�7�����
r��������Я}Ώ�k�E���Y��e���Έ˱^�(�u%3�`��o_%�4F��U��6v��
+���?��w��*T�D��d��#K��E,b�X�"�+^er\2E����>�JE�kA���Z8'B;�3h�2j"K��Kw�6���V�M^��x�m���v��v�)0?o?�g����������Te���'?��<*I��rLR���Z�ᷞV嬶��.捳&Ś�%IO���'�ܪ��U�[E��U%G�N ���q��
O:-�L"O�w���rP��n<�ms�㬙�*)gXWɣ;��S�;L���g_��X1wN��z�� �~�s'����2}2����v�YI��i�n�Z<�f˽.�}XN9�)�u�����x
��g!���g�O��O�}�������n��O�I�n�yH�w�Y'٣��V��d�??�|��Ė�
T���E=dr��H��o�\dd���Iu�u�Z�ߤ��)eC1ɕ���
�[��8Jt��o�� ��{
endstream
endobj
27 0 obj
<</Ascent 957/CapHeight 708/Descent -250/Flags 32/FontBBox[-214 -250 1192 957]/FontFamily(Avenir Next Demi Bold)/FontFile2 30 0 R/FontName/DYQOLU+AvenirNext-DemiBold/FontStretch/Normal/FontWeight 700/ItalicAngle 0/StemV 120/Type/FontDescriptor/XHeight 480>>
endobj
30 0 obj
<</Filter/FlateDecode/Length 6055/Length1 11823>>stream
+H��UipS���}�d˫dY�-#�ӳ�ɫlY68ƀ%l�`0�l��
%�0N�gO��
�IIH���@i�n�2����=���J�
ʴel�\IvIB��Os��=������$�t�ָ&��{�$�h
l
3�g���^�v`\ּ�N�?��h�؎Qm���7iϾ
�����
+hG s�������
�J[���Ɲ$��梖֟Ѻx���������ҁ��v��6x�W'�ۄ�7:xpL���T��~y������o�Ѻ���:�w���s�)��Џ=0<��e�E�7h�($v���
��C$�L��u�@�<]'q�h&��
ȫ�|�vvuCF�-.}>�<��9�C��
��B:Zp��&�f�-��w!����hw����O�K�NH�:�"
z�#�"��l�� #r��<�aA>
+P+��6,&�ء���e(G��D�Q�Z��h��� �X��h�]h�2�a9V`%���ЁN����:t�=X�
��FlB6Ï ��n܃~q/0H�?���$��
���N����4^�8�7����"��x��
����E\����� �0���A�c��
� vQ,����}����1��7�6��
�ul7v�l��<
�6�a�X
eC�C,@�~
G��f9��u�^������b��#�f�,��f���� ی���m�L��#x
+!<�g�
�Ʒ�
6�q?���+[�:p?kg^��!��V��0J+⤍�X��#��<�=�V�
�+~]zQz]�(]�Mr�l��r�\+/���7�\Ů�(�vn�ڳ�F{���n�;�
�����7/����[<�gK&E�$�f�l-������s�|�H����w at 7z���:#t�{����b�c�>���9��
��=����gg��Y:�4�i�������L��^;�:�t�!:
F�����ў���#�M��i�;�p�~���*����(W�(^i �X�4��z��rMi=���=
�����MQ�I��"`���
i�Z�JT(4�*e_Xr�6�Հ
�C�C!�'�
+k
�7)�C�9�^��o�+ᶀua:
,!
����qBBؕD�G �YڔR�FK%=����D�5��
�*��
_��/�[�@�vi,��C#�I�ud���&� �^��F J�T%<
+YC�Gr
���*hK
+� �(9�6�WM��UTEU��@;��V����%K�@U�]R��W�UjJNtFPYA�ʜJ>�Q3E
Ms��9SԽĬ�5�^��q^ !�v'f�1���y��y5����<����D�ku����e�3iu�˳���&7�ԙ
9&��j��*�K����WP��j?�bW��������E�lK�!����>�c��٭*����}���u�'
����G�FPF��j��Q"��J5^5W4�S�p��\Փ�zr�Fڬ���F �F!��m�ר!�� ��:E�?�5���B�MT�
�T��۠�F����RH�&�:�X����UR��1SW�������]6�k��u�3�h�ʹSY���lS��`KK�2�p��UV���VWy�˚ƶ��B}�oGpcs�Ơ���ܼ!��Լ��
���"x"!4�y%�tG���Hc3Y�+��Tf��]=�]�z�Ͷv)�!��K���+5tj��8X�+��Jq�� ���qN�m'���/б\��Nږ#�o��KRȘ��yf�El���Ĭ9���9h#*�%�
���
�r�Ϲ��P��X�(�݁CE�پZkmq^QU�"S��<'�����M�ؚ{����{;�*��z��Q�Ԧg��G��E���
+)�4
+�]P�!��F��#�a��a$7�H�!�n��Gd��>�.pA n�(]�GSt�������λL�]�['3t��N��|c��[��m�v���֍�+Ž��?�W��� v�
h4͙�B��7䋄�
�ȿ�+_3�
��
jב#�J</'�'
�"ȨyF�Fh
w^�� m�����F4� �B�Mc\�}"w%Ҁ��<Ғ3a#�7�4V��Ӭ�99���/�q�����E������G4��*�F���l����:�>R)�R)�S�}��?
h��R�U
+��J
�
� �-��<
���ٮ�
��%�+G�g��H�&u���Ƕ�v��}d�Z�Q-��P�曊�&ݡ J��D2[���N����bR]6{�]��`��ъ-��+�Վ^m�q\e��3{����]�}vgg�;�n<ދS�c�
�u5IC�S�JU�(�@` !��J� R%Bj��[@B<�@$X
���B�
+RJ�����ew���_s�?�s��������:/g��ԑ�z�eV�+�H>
�F��������vR�9�����T2��&���3�M-V(��b���,�,�_&��03
x �=DSi�aD�o���_g�.\x���B�>}��E������:��ֆ̫�q�ǹ�o
7��q"��ŋy��c�hE���.�� �%<v`�_i�L<J�!7�ܑ6ʛ����f�GT+|*§��*§�#7u�T}U1�C&
��A4�A=�y�K���I��P�Ã�٠��1-u��t�/���
+k���K��g���,�Zl�|Qɷ��ɔ}�\���u����ȑB!wp=��?��D �u
���_����}�I%���
�
)(�gT�)�]=^�
�p�`�Q ]��j�
�1�
�1��H����Q���s|�#�U
̂�;
�K�xl�����{ �,�6�?8�O���"+�� �j
5Os��a��,�q��lG�.����br\��\
+dgy6/��YY���+jyu��8�R�M������d[M&�VҼg�
+��:�B?�N�5��E@�L�?'8�c��J��Uy
ϕf9@���58˳s6����Ďy;���
�萩N
"�"�e2��H8��$uʒ F�"�Q��5O��j>i����X�P�O-��}����bqe�9srA��H%#.i�1�X��ʩ�meq뉃�-��O���Y
ؔ�<}�:�ԸN��`;���T2�K�P�+ɛ�.$:J�̓����9�����4�9�o�?��"r�уl��
�n��
f9P�g���>���>���0hִ�i
��5��1�����/z�N~���0��$"�eİ
�ʈa���N�^�ua����"�P6�`�Ԯ�AҡQ2�5�#R����3�/���
��*���O(>?>�<��ʝg���8���)��h������ΓK�:R�I▬������K+��fϮ�*���h��I5��X�%�ە�q�l �6ԣ$�>� 4e5Kk���ց{&q'��q�D�?t����
����LO
@� T@����� e9`I~
Q+�Lm��:D%��$��.s&r���\�����������tt�#v�M_*��<�U�����|��p~��*܁�IX���|�kz�0�W��7��瞺�����7m�Ba�i���
�n�*�SS�\E�3웩j9�.W�حcC
9'� �,1Ѝ�)�z|�N�7��2�F��7t���=��������0��0"�!b�"�)b�"FDH #� �'��3�
㑨�_d��M#�!
�Ko?�k��O磑\-��Y�����7��W2��H�!a�RV/$S�pQlI�U�B�F���=4��أA�N
"�"����
�
++��f��2�|ج!�GNH����ln����e���
�D�zon�p.wxkn��r��|n���I��L�Ԅ~22����4��&���&���#����w�:$�*��[��Q��2l��Vl@��A1Ɩ
q?�G�ˢ�#�
�!�$�k�&Y\�� J at P�$pM�$pM�$�k
�2K`(X�D`EX�,a|�,"8)
#Q(BJ�9ͨ�\OU�vj���v2º��j��^��"����Fck�\���X�.�\���/ .!^����7��ќb�d��
���.�G����E�+=�CI: �M��,�^w�
��Xy&9��<V����������=������S�����H�]F���q��)� �
H9R�a��i,
��A��N�4��թV�j5�'6*ߞ��~����"��=�G
�
�a���&��
���Q[N�Z�5��[G��O+GC�EO"�m�Z)*7Wr�ϧ�v8
M&#nGH>���B�\؈g
�I��8��t�t0��u~��*{ �\5�C����7,�Oj
ʷMGp�U�F�����3�&�)mb�n`�n�>^�
j4��V �.X
�ӡ/v���;���P}^��ol_����L�n?�p&j
�6�A=��6����l�w�Fd��;�����2���;��� ^a$���o�/}�=�T�+��� wdB��cQ��?�[n@�ۋ6a\L�
=6���}N}�9���HL��_���~�����J�a{C�%n������pg�5d��0���
�=#�����ۏ0>A��[�
;Fj�<)
?&%�wR�q�7H�HO��Y�6�����
���7�o�Va��4,
+¦`� �FU�+�
��$u!C2����+d�!��q=�M�����&ֱI�;��}� sÎc
�
+'H�]��,�k�-Yg�� ��8�k����'{�(��<�B\7��U����
+���B6�
��2��=*]R]ܯ��&s������p�_�����q�*�
Y�� >`)`n��8���X����]��w'�;X�����-����'�M���\W��?��*9 �$
`�N���r�������]zԊ
Z���^P[��@�K �J���Ƅ��.K��b�B1蓉���?`4H����&<�Ѐ�(Ę���F�!��svvi
����93sf���\~
l����;Y<�*�^�
e�a�O(�7��������h��}
+�2�/�������Eu��
�Z��C!q�g��/��B��@V���ԛ/��'|pI�_�.�9?��W\6�/��P_����B����b\cT���[�5��x�\�k�k�9�
+�/r�/�?�#��A�v�C���&��z�����5��o/�_��S�
+9>���Vc!�d�Mc���hj
,��OˑB>k9�S��m�����8y�
��,�O����[
�g���!�
4
��?�R�i���\�%�j���T�.�&t
�Z�+{��/�_�F��#�z�4�߽��1�I�%�;|��j�{��E�"�UW���[�B
��>�v�P��I�E����R��O
�/1��� {��M��I�^��|�c^��co
�k�����'�i��? �����W��v꩞�
�̟֭��N�+s+O���ɞΡK)���������|?RR��3��2'������\��?e<i�;K�ͫ�|k���|��e��'��P�w\�2?e��3���r8ft���5
��y������� Ε�wֻ!U�5d��P�^��ŕbw�羆�
�{Y��8(�v_����U�߂vϯ�V翐:1e�u�
Bb
����?�#��z��;v^���k̫�u���J��ή�Ň�gJ���T�]�6�&{o�Qn��������b��psz���?��/��w�]=�#� [...]
+�M����D0]����ѿ ���
endstream
endobj
25 0 obj
[31 0 R]
endobj
26 0 obj
<</Filter/FlateDecode/Length 312>>stream
+H�\�Mj�0��:�,�E���v��:
x��� �4N�,de��Wք*��c�鍟��ͱ1�C��F٢�^�poN"\�
����Nq�CgY��<y
ӏ�,!�
�ɻVOj��%�N���
+���]C�ެ�����
+���ξuBe�F����&h�:γE�9
#G���$��\��iX���*�F���d�^~w.�oC{�����L�'���x
i����G�3�QND��t�Q
)K��D�腈f)h�,#D�^�{V�Ƚ ��܋���S.b
��^� ����x���6�xv�T��~ �6�^
endstream
endobj
31 0 obj
<</BaseFont/DYQOLU+AvenirNext-DemiBold/CIDSystemInfo 32 0 R/CIDToGIDMap/Identity/DW 1000/FontDescriptor 33 0 R/Subtype/CIDFontType2/Type/Font/W[3[250]11 12 330 22[610]72[574 324]76[268]79[268 890 582]83[633]85[364 444 340]89[513]92[513]359[666]]>>
endobj
32 0 obj
<</Ordering(Identity)/Registry(Adobe)/Supplement 0>>
endobj
33 0 obj
<</Ascent 957/CIDSet 34 0 R/CapHeight 708/Descent -250/Flags 4/FontBBox[-214 -250 1192 957]/FontFamily(Avenir Next Demi Bold)/FontFile2 35 0 R/FontName/DYQOLU+AvenirNext-DemiBold/FontStretch/Normal/FontWeight 700/ItalicAngle 0/StemV 120/Type/FontDescriptor/XHeight 480>>
endobj
34 0 obj
<</Filter/FlateDecode/Length 15>>stream
+H�j`
0 � �
endstream
endobj
35 0 obj
<</Filter/FlateDecode/Length 4310/Length1 8805>>stream
+H���klY�Ͻ���vl�
;~�g2�#�
��+�#���M�m�n��M7�d�vӪ/��(�B�jQ at h�� $�@|���i*Q^�JU$VHH�����T�ZԄ���Ӱ�������s���s�
bD��VH���S����o~ �ې�s�{C������Eя^�����n�a��]��y��^"�
"��K���v�U"�
��KP��v[F� ��KW�X��O��_ j���k�����
Da��+
��m�GD�Y�.\9�6�9�H$�z����Sv�/��`�+$�{�Jmd��*4_���o4D����%.>���,iG��y�ȉ���o.}��-���]��b�=���F6�� Z�whB���`��1�ke�5�1[�cߨ5��[
���������IJ�6uq�����Y(�u���v�.%�P5jڪ�zdqU;�--,�m �V�SՋ�=]��c��N�|��vlʹ�Z��KM
�L
0��ڲǴ�������W&#���ZD����j��dD��0K��)�_�j�َ=��h�[VNU�c�:�VW����WVW#���oН�)}\1�T���(%�le�
Z1�P��c��I���
;U��N�Z����d5(E:Ҡl�AQH�Ӡ�$�F]dۄֳF ���O���^�e֡d�m�lh1��VJ�@�+��2*��I�G��FYa�+����^�� .q�����w�r�xN
�-�u'����Evo�ޜ�x�;��y;���ѻ7[h�
?|@+��/6������>
�'���"����E1��6�h� ���>�¾���
*�r%�fW�>�z�O�>01q���q����l��{KK�� 9Jc��4m��
{d��q������9, ���o�
�S���'� ֈo?�A������Irk
]k��r����iP!oN)`JS
+�R��5q���� 'k�� >���
�5 �H�<Z[�꜆ML~y�MXmG#IC�!b�Z�\8���D;AH
+R���@�04�K�n^*
�\D>����.��fe��Z�����}]�}{>��
|���s�S��OfWs�ى�����H0��C�*��#ԧ��a�P_�w&Խwzp���3���P�(鱬ѿ��j=���L���#�c�Z�~ڠ� )�F
�
C��Ln��GT�s���<�w���=ԱC4$!�����$�3m-�mo�6pD��ß0�kq�
}��39�&¶(��*0"ieA�T
�*��+������U��m
L�s����o�2�JM�^
5��ה�B���
��}zll��ۿ��DB_0w+~>#E貕ֹ!�,��n<-߹p���K(�v)�B�`80�cZ��� Ӑ���D1J��
=n
c���5Μ9���#����+�y�kז������C�]�l~-�;1��b�v��wq�:�u�|�$���!�
T��D���LdBЙ���� / h�Gv���:AM�P�="u$+�.Dم(�eW�8x
�X�ʟѓ<�����z.���`K�_�e���U
���;� _Tq8�X�S�Zva�o>v��M��-#�s̾N*�7˲b�%7kW�T8�#z���T���+�O��E�x~�&��v�x�NZ(һ�P�
S���K�
+�j)4��
o���s�W��9
�B� ː�B
�m7�
+�t�j�����5��1r[�d�UDe�
+�2�V~"�_��F,�;�3�t�k�o�$c�G��Y�P/Jl��:�P(�n}�zr�����ֿ�>-�9ԗ�[1D,8G,�t�AT$��a%]�L:�!"*�%��I�N��}v26�>Q8�¹�n�Pt7
A�IW]�EW�6�U at W���U at W]tе6��<����:}�{f�;
c��2��Vv3�H!w��=�8(˺�>���t���y�X��xZ������AFD���ML�o�
�jhh;�
������+�'��?��?>�ূ�
+~*��ূ�
+~�ɏc)�
��#NI�ܧQ��(�i���Y�X1m��rSܚ�L�P�m-�~���s]r��Kz��
��+��|�}��S4�bBQE�(�xك w,ؙ�|�T����������l$�
�6���e�����;����<�a��Dt��J��B ����)V����x]��uK��{����
��m��v �f���_��ڟumm
�:��§<��A�H�8d
�6��ؼmӼ%d$��[B�-!�T�#��H�8R-n�Z
[v�����<��am�Nje�{�g��ş������%Ӷ��f3=�H�0�#��[o�uY���R+/vޢ���u��ϰ
,"�\T�
I
_2f�c)W$�T"�tH/O����|
�F�N�?�WklTE>3����}�(KKJپx#ؖ[
M-T
+*Ȗm���M1!$�HbH��?D�$�%�ZÏ&�����&U1&����s�viѐ����sf�̜��<c&��+
+�M(��滓G��z��y����ƥ�
'�aX7T�~��9!�W-��J�ߘt�(�����������7��s�n��
`�
`��H�f��
�� F^�R�!U(c�掎����$3�8sb�?�{�<��/�r�rǍ.��_v�}�§h
U
Y L
0}��qJr�aS2�
��;�v����A���~&�
�ɢ
��N$Q|�@
+���5CRY�
�"�+��3�ծ7��W�s3
S��=#3��)�Y8�{�??
3şn��L#!#;�B�PIw�*��tB�/>5|�4��WT����U���/��N-��F�
��+D��:�n����!�St�B�*���>T����5پ���VTם�m��h�:E+�*�!�`
�B�#MT^���XP������T&e�**��vY7�?T
�偆�ƃJ at S@�@e���
+�ǒ>�����|��uK�:���w�C�
+�3\�_�:��N�N.� na�
�T�y��h�ބ5�4J�L��B�a\#�އ~���n ?�Q�v�^�Ռ�2�n]@�e�Q��oa�bR
�/ĸ�f*������؆��B��
+�AE���O(X�
j��X�
eY,�+����
�PC�aa{�o��:إ�xg�|2�+4 X�
+��^?
[�uE�e� >�e�d)�
�|��Ǥ$��� �
��p��
�}2GX��!�)�uY|�.���W�Q?����p�Eb_�~!3��
+�� >�����}+�G�K
_!+��O��Z8ߗm�r�]��9F9Np�!�����
Cs�u�7�g�
��9�_�{��8�8�l�C
�,�&r��8?$F�#���s�w
�G�žc�b9|�[ű�4 wAF�q�;<��9���Cr��H,
+�Sι-���ľ��8��>
����G����<B�!W��FA�@=�k�C��7�Tr�^r)���R�SQ:��3T�����)�,�Wx��Z+ �R1��\!��.�\�ΏT��D�B��.�/j�u�
u��������
�
5 zE\�ѷi|�
+1<�j�^:@�t�;T��0����G�J�y��G����Ϡ#���8c�~��@_}���|c�)�˃�uŘ�?OϷ���Is���9�+�?���$�p�>��M<?�(��'g4Q�
�Kѯ�k��� o��u�?M�[��}ҭ�0�-�e�/\A�j?p���N���@�
+
�={[>#:}g�1���Q�h��2��`��3�+�.
��}�~��������}_�N�|_��_�������D�����&b �
�
+���x&��ː7�#�
�%p�y�5�
s>����cWu���I�x����N�i:Ǿ��(�O���t}�o��1�
=��D�����y��
�]>~a��6u��Tǿߴ[7J;-��8j���x�vw�{'�1nq�G�Q���>j���!<[��|/�|��u��i�3n��ODŽ�ud7���Ufz�ΑF{
YS��vdU3��\AW9��>G�S��;��~q��9�í��u�HI0��yn[�ڇ��y�Fh+�S35�:���> M��hS!���f@��^+�D�f�1���S�*Ő�H+v�J����>����{7J/
ߌ���
�
+��������[��
X���J�Ʈ�4��`Փ�7�&�k��0;�Wk�k����E�_�y��;���6j| �6zM�KD0d}��;����t�x` v����Xm�e�X^
ˍاAv�j��V�>�v��D�o�ۜ��_���e�Z���6R�1�Ǒ+�"u
�Y�PJ�4�2(Y_�E.?`���l��9��(i�n �1]f�.;�L3)��}�ۛ�� 0 k�^�
endstream
endobj
19 0 obj
<</AIS false/BM/Normal/CA 1.0/OP false/OPM 1/SA true/SMask/None/Type/ExtGState/ca 1.0/op false>>
endobj
18 0 obj
<</LastModified(D:20130909080944-07'00')/Private 36 0 R>>
endobj
36 0 obj
<</AIMetaData 37 0 R/AIPDFPrivateData1 38 0 R/AIPDFPrivateData2 39 0 R/AIPDFPrivateData3 40 0 R/AIPDFPrivateData4 41 0 R/ContainerVersion 11/CreatorVersion 15/NumBlock 4/RoundtripVersion 15>>
endobj
37 0 obj
<</Length 982>>stream
+%!PS-Adobe-3.0
%%Creator: Adobe Illustrator(R) 15.0
%%AI8_CreatorVersion: 15.0.2
%%For: (Alex Reynolds) ()
%%Title: (reference_bedmap_mapref_padded.pdf.ref3.pdf)
%%CreationDate: 9/9/13 8:09 AM
%%Canvassize: 16383
%%BoundingBox: 0 0 576 360
%%HiResBoundingBox: 0 0 576 360
%%DocumentProcessColors: Cyan Magenta Yellow Black
%AI5_FileFormat 11.0
%AI12_BuildNumber: 399
%AI3_ColorUsage: Color
%AI7_ImageSettings: 0
%%RGBProcessColor: 0 0 0 ([Registration])
%AI3_Cropmarks: 0 0 576 360
%AI3_TemplateBox: 287.5 180.5 287.5 180.5
%AI3_TileBox: -90 -108 644 468
%AI3_DocumentPreview: None
%AI5_ArtSize: 14400 14400
%AI5_RulerUnits: 0
%AI9_ColorModel: 1
%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
%AI5_TargetResolution: 800
%AI5_NumLayers: 1
%AI9_OpenToView: -278 569 1 1134 765 26 0 0 47 129 0 0 0 1 1 0 1 1 0 1
%AI5_OpenViewLayers: 7
%%PageOrigin:-18 -216
%AI7_GridSettings: 72 8 72 8 1 0 0.952941 0.952941 0.952941 0.976471 0.976471 0.976471
%AI9_Flatten: 1
%AI12_CMSettings: 00.MS
%%EndComments
endstream
endobj
38 0 obj
<</Length 15845>>stream
+%%BoundingBox: 0 0 576 360
%%HiResBoundingBox: 0 0 576 360
%AI7_Thumbnail: 128 80 8
%%BeginData: 15722 Hex Bytes
%0000330000660000990000CC0033000033330033660033990033CC0033FF
%0066000066330066660066990066CC0066FF009900009933009966009999
%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
%6666006666336666666666996666CC6666FF669900669933669966669999
%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
%9933009933339933669933999933CC9933FF996600996633996666996699
%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
%000011111111220000002200000022222222440000004400000044444444
%550000005500000055555555770000007700000077777777880000008800
%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
%524C45FDA8FFA8FD7EFFA8FD047DA8FD04FF7DA87DFFFFFFA8FFA8FD05FF
%A8FFA8A87DFFA87DA8FFFFA8A8FFA87DA8FF7D7DFFFF7DA8FFFFA8FFFFFF
%A8A8A8FF7DFD45FF7D5252FD0727527D2727522752272727522727275227
%5227272752F85227A852522727277D7D7D52A8F852272752FD042752F852
%52527DFD44FFA87D7DA87D7D52FD047DFF7D7D527D7DA87DA87D7D7DA87D
%7D7DA87DA87DA87D52FF7D7DA852A8FFFF7DA8FFFD047DA87DA8527D7DA8
%7D7D7DFD52FFA8A8A8FD11FFA8FFA8FDBFFFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFAFFFA8FFA8FFA8FFFFFFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA1CAA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFAFBCB5FFAFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFB5B5B5C4AFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFFFBCB5B5B5BCBCC3AFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD09FF
%A87DA87DFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA1BCB5B5FCB5FCFCB5CBA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FD08FFA8A87D7DA8FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8
%FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFF
%FFA8FFFFFFA8FFAFCAFCB5B5B5FCB5FCB5B0CAFFFFA8FFFFFFA8FFFFFFA8
%FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFF
%FFA8FD0AFFA8FFA8FFA8A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA1B0B5B5FCB0FCFCB5FCA1FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8A8
%FFA8A8A8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFAFCAFCBCB5B5B0B5FCB5FCCAAFFFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA1B5B5B5FCB5B0B0B5B5A1CAA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0E
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFAF
%CAFCB5B5B5B0B5FCFD04B5FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA1B5B5B5
%FCB5B0FCB5B5FCB5A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFBCBCFD04B5B0B5FC
%BCB5B5B5FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8B5FCB5B5B5FCB5B0FCFD04B5
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFFD06B5FCB5FCFD04B5FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FD0EFFA8A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8B5FCB5B5B5FCB0FCFCB5B5FCB5AFAFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8A8A8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFB5B5B5BCB5B5B0B5FCFD04B5CAA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0E
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8CAFD
%06B5FCB5B0B0FD04B5FCC4A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFC3FCFD06B5B0B5FCFD
%05B5C3FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FD06FFA8FD07FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8C3FCB5FCB5B5B5FCB5B0FCFD04
%B5FCCAA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD05FFA87DFD07FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFC3FD07B5B0B5FCBCFD04B5C3
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FD06FF5252A8A87D7D7DA8A8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFAFC4FCFD05B5FCB5B0FCFD04B5
%FCCAAFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FD04FFA82752FFFFA8A8A8FFFFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFAEFFC3FD07B5FCB5FCFD
%05B5C3FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FD06FF2752FD06FFA8A8A8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFB0B5FCFD05B5FCB0FCFCB5B5FC
%B5FCBC9AFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8A8A8FD05FF5252FD07FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFCAFCFD05B5BCB5B5B0B5FCFD07B5
%AFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FD06FF7DA8FD06FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFFCB5FCFD05B5FCB5B0B0FD07B5FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FD05FF7D52FD07FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA9B0FD08B5B0B5FCFD07B5A8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD05
%FFA8F852FD06FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA1BCFCB5FCB5FCB5B5B5FCB5B0FCFD04B5B0B5B5FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FD05FF7D7DFD07FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFFFBCFCFD09B5B0B5FCBCFD06B5A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD06FFA8A8FD06
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A893B5FCB5B0
%FD05B5FCB5B0FCFD07B5FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD05FF7D27A8FD06FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFF
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFF58BCB0B0FD08B5FCB5
%FCFD06B5B6BCC4A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD06FF5252A8FD05FFA8A8A8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA87D93B5FCB5FCFD05B5FCB0FCFCB5
%B5FCFD04B5FCB5FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8A8A8FD04FFA85252FD07FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFF59BCB0B0FD05B5BCB5B5B0B5FCFD
%06B5BCFCBCAFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FD05FF7D277DFD06FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA87D93B5FCB5FCFD05B5FCB5B0B0FD07B5
%FCB6FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FD04FFA8FD09FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8AF7DBCFCFD09B5B0B5FCFD06B5BCFCBCAFFFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA87D7D7D93B5
%FCB5FCB5FCB5B5B5FCB5B0FCFD04B5B0B5B5FC94FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0A
%FFA8A8FFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFF7D7D7DBCB0
%FD09B5B0B5FCBCFD05B5BCFCBCBCFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0AFF7D7D7DA8A8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFD047D93B5FCB5B0FD05B5FCB5
%B0FCFD08B5FCFCCAFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FD047DBCB0B0FD08B5FCB5FCFD06B5BCB5B5FCFFAFFFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FD0EFFA8A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8527D7D7D93B5
%FCB5FCFD05B5FCB0FCFCB5B5FCFD05B5B0FCB5C3A8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8A8FD0EFFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFFFA8FD057DBCB0B0FD05B5BCB5B5B0B5
%FCFD06B5BCB5B5FCB5B5FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8A8FD067D93B5FCB5FCFD05B5FCB5B0B0FD08B5B0FCFCBC7DA8A8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFA852FD067DBCFCFD09B5
%B0B5FCFD09B5FCB5B57DA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8
%7DA8FD087D93B5FCB5FCB5FCB5B5B5FCB5B0FCFD04B5B0B5B5B5FCFCFCB5
%52A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8A8FD0A7D847DBCB0FD09B5B0
%B5FCBCFD05B5BCB5B5FCB5B57DA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0F
%7D93B5FCB5B0FD05B5FCB5B0FCFD08B5B0B0FCB659AFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FF
%A8FFA8FF7DA8FD0F7DBCB0B0FD08B5FCB5FCFD06B5BCB5B5FCB5B57DA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FD0EFFA8A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFD09A87D
%7D7DA8A87D7D52FD077D52FD077D93B5FCB5FCFD05B5FCB0FCFCB5B5FCFD
%05B5B0FCFCBC59A8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8A8A8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8A87DA87DA8FD057DA87D7D7DFFA8FD127DBCB0B0FD05B5BCB5B5B0
%B5FCFD06B5BCB5B5FCB5B57D7DA8A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FF52FD0F7D52FD117D93B5FCB5FCFD05B5FCB5B0B0FD08
%B5B0FCFCBCFD047DA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF
%A8FFA8FFA8FFA8FFA8FD0EFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8A8
%FD057DA8FD077DA8FD157DBCFCFD09B5B0B5FCFD09B5FCB5B5FD047DA8A8
%FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFA8FFA8FFA8FD0C
%FFA8FFA8FFA8FFA8FFFD08A87D7D527D527D52FD057D527D52FD077D527D
%7D7D527D7D7D527D527D527D527D527D93FCFCB5FCB5FCB5FCB5FCB0FCFC
%FCB5FCB5FCB5B5B5FCFCFCB5597D7D7D527D7D7D52FD04A8FFFD08A87D7D
%7DA87DA852A8A8FFA8FFA8FD0AFFA87DA8FFFFFFA8FFFFFFFD08A87DA87D
%A87DA8A8A87DA87DA87DA8A8A87DA87DFD05A87DFD05A87DA87DA8A8A87D
%A884C3FD05BCC3BCC3BCBCBCBDB6C3BCBCBCC3BCC3BCC3BCBCBCA8A8A87D
%A87DFD05A87DFFA8FFA8A87DA87DA87DA87DA87DA87DA8A8FFA8FD0EFFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD0EFFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD10FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8
%FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FD2CFFA8FD27FFA8FD56FFA8
%A87DFD25FF7D7DA8FD25FF7DA8FD2FFF7DA8FD25FFA87DFD26FFA8A8FD2F
%FFA8A8FD25FFA8A8A8FD25FF7DA8FD2FFF7DA8FD25FFA87DFD26FFA8A8FD
%2FFFA8A8FD25FFA8A8A8FD25FFA8A8FD2FFFA8A8FD26FFA8FD26FFA8A8FD
%2EFFA8A8A8FD25FFA8A8A8FD25FF7DA8FD2FFF7DA8FD25FFA87DFD26FF7D
%A8FD2EFFA8A8A8FD25FFA8A8A8FD25FFA8A8FD2FFFA8A8FD26FFA8FD26FF
%A8A8FD42FF7DA8A8FFA8A8FD04FFA8A8A8FD72FFA8522752277D52A82752
%52522727527D52FD70FF7DA87D52A8A85252FD087DA8FDFCFFFD36FFFF
%%EndData
endstream
endobj
39 0 obj
<</Filter[/FlateDecode]/Length 13244>>stream
+H��W�r�8��?`�eRw9O�%�ƶJ�g3�J� �1 $
+_� I1�bk�I%�rY����A�����˃q�������ٱ�,W��X*�HYd�6���> z-B��p^
+��u&TrhY�6�/���X�{2��D�(�'{��\�\r�4_r͓��<�Y:�?h�E�Zi�la�1���%�q�rh��
2<�Gd|f�,�cY&>��;�hG�H"�����!����I�o|�U�x��D�E̓|�Uȳ�XI��Cr�f 9c+p��K�ޓ#�·
�*�!:�����>?��U!���?��
�#$��{�9b�
�Io�BH���,'A`vh< ��B�輈
��
�3�]g�A��!��K���
+<0���<j&�%�'{7�IXP`S��f�Jc��f�ixW<N%6�f�=
�z$��m�KIb�F>9�!�w���:�fo����ɹJ�K�X�ݮ�_Ǚ���D�.��d�rp�".!_뿐l�UQ�_'p������En?�V@�_�570 �)O����ǃ�`Hz��A�K}��G�����6f���� �2�>]h���A0����v��fm2t?6�֨�
u��A�;�2p� +yΓ24�����uv �N��X�fk2s���Бj�x��r�^�ލ��w��y[��Q��4��Hɐ�#�����5��8䑐��S9��9���E%���Z�9f�Q
+
�,Q�(��8}f���qn5=ʝ*o��ZU8��Ɉ���ekޣ��*'����UΕN�؈z��e#�ZqM#8�9
�o��\KE�C�K�(��9M�6Ho)4b�D
�,i{ta-��J���mNq�#n/u>�˵�G|Iǧ�"�,��jR�{!I���k�иxH�>���JGKT�D$܌c���4�J��^���� 2R���C�b;�D�$j�%��H>uc��(y�p-���eu]�&�,e!�c��l��*��$�K���c��[���ٴ�
�#q'
@��9��
-5s;zZhe=�'���ά9�..ၕi�uTd b�zs�,㵃v��V ��q�����!�v�ԥf��&\'��� ]8����*�
'q�$��f�
+2;��6��F�,��
�
�pGڝh��Ɋ�"���qq_��!��wuj�l��U�[es�t�L�&�2=�!�zo��o�A�E�������P��ȕ.��:�_�Y�lm>��"�m�;xw��`С�L��`�>��9_7J��@+�
+�^�0/�R�R��H,��ƶ���VQ�� X�ME���^�|ň�ze˜z���P�/�
� �h��A�<j(x��������_�ㅒs�E�s��#�S ��w�y���w*
�^jU��d��=�+_Ἒ4],�D)F�[6��B��D���!\��DŽ��Vߧ�O���F�QO�;.U�0[Sp�ɿ�N�6=�,~-���J�Ξ2�hc{C��(Z���]w�sxD���a!�ߢgG��j�n��������tF�
�"�%WJ���Ǭ�zI�T#�c�1�
+�E���J���2�p�@��+��#[?f�>l�&�m
l��+9�_�-y"�7xjP��$��_��,ƏY3�@�� D[�6ު8UJ��-K���߾�������_�5�����;r
���V<��
���C�(������_<z)����'�����y�����c~��6�
?�w�[�5�G &kL~��O�ޓ�'g��O"�_Ϭ�k4O�>�n�%�[|#����p���E���v:����G
��h��x}*+d��q�����1�=��ݽ>����AƓ�2����3�N;{�w3��(m���&����MCozT�Q��W��
+�;�I�V�K�Q�;�;����J2
= ~�x��BW������{6��
�03a�0L��|�5[oe
F~�
��M�39UX
d�7+$�x�B�
H��.� ���D�=M�O�
D��O�n읈,�l}���c�
�F��IVY*3�Q�
��'3.���ya���L�-�]6
+`�g����f�����Is�v�O���T͓pMVZD$6���`������0��i�9�#��ɌgJ%���H���</Rӟ� lN���9����vKC%��T!D�h=p���y�GY��R1�ʝ���,���Mȸ��1�^�� }}��
�m���c��}��X�=Z���76��7��[!#��c�T\��29{�H��
��s`�����
�E%k��g�
�'�G��4;�����*|ˣ]2SI~%`~i\
4dp4�!6���
���kJ���3<����l!�.�rW��A�,W�:�?S;��98#�;��
3f�o�p��
+�o~.������)͖����;�L��g��~�שZ����ek�����N(�ޡ��������y/��v��J��U� ��b��b�_櫮�m݈����t:�;�Ȧ,Yv�lžj�X�
�!��IHBE
����.�/�"@:yH_<�t��]�=����%��FU�|.A�ܓ�|tCY�Ў���}�w+���\|��t��.��!Ƞ����'��kȃtOX��1�:㳢)��+�@�-Z�DA�c�GhI
��cv⬨���;C���0"OeDA���~�D
+�+�س����(�Jr�"A6�G~b<
/��)߱�>�"t�:���,�c���X���A�@D
� ��.�/�K��<�7�
p�������v�*����<��>
H ᄏ#�R�Dq�C�
tj�{�6)���q�l}V���TƩ�
31
Z�x�r@C*�O#*ߎK�CEI"
+&�$D4
����
��j ^��w��/ۦ�(*h�U�~6�.�Hbx
z w����/�g
^
��xW�<N.&�m����,����Wit�
yC��H>�V�p(��0��
�]}�qPV��w5D���0;���5��Z}_@=�'
kT�ե��a�����}�
u����j�Xc_��ٟL<�F��#�g�h��~0.;�D�L#"2�0g!y]�������$|d���pFY�N�d�|�ŏq��崛F�L��pݹ7�}�*u�Y�f���D�3�*�GA^^L�U���V#k7�#�8 S���;L�
+��g�Ќ�U�w
�"{ױ�ZOىDKc�G�Їq1�
�#0[�
���\̵^'�(J+TT5�G�ˉ��Q�x�ɭ����*-�w6W�ݒ���ָ:m����YU�>;�ƃ�������6��B�<�)`W�՝�όcʂx2�5������� x�Q��;! �
�\:��'.k?��H����W
+x*$�,�DRSPM*��b:����s&���H��k�R�{
k�
�ZWY��V����'_HHӽ���.<�-��V�}*���������-u����|�X��D��4���j�S���!U�T����Ʃ��d���)�B�WK�LoK<��֝ԑu�hVøZ�D�4k���*��v��q������
+9�
꧒$��~��}�7+ ��wX.H���A��Z���π�b�
�o�:9X�\n���R OE����y�<��b����(��qVV��~���?V���0�C����������a�G�״ɚGW%9��mO�"`Ƹ���
�l� Π%d����Z��ɍ-H���M�9�
)�ȲK@�A���
�����$U�f�� �Qk����#�k�!�m
r'9s���;�I-m8F6����O�;KH$�Y39HR?q����Q,��
7XE8��T���b�(�J�F�zM�
�<vԇn�u>Q����4H���$e�R�jk���/�t1�6J�{�
��mx;�9�/s�k<nk�*p�#.|,��Vkѵ06��t����xcgͻ�F)�cñ5����.{����MBi at o�=���iu �oQ������T
g�C�z
^ �]�����vp�
�I
+�8
`� `.��0q�d��
;���w�)��u�a+��mn*���"Q((�x���|m8.��h� �Rg�\Z����tLQ��f��7�8�Z$/�YCc��C3�SttA,��n��E>OY��v?�
IB7�+��9`0��E
zNA�ے�P�������r���P~�Vn�tl\�H㫑l���
��@��0�+��fB[7+� ��4*�g��1
�TmשD�ו���6�U�U}�琪t"�3_g��
;
���
�Sy�+��
�;:��=-ԗhZ
@3�I>U�>hb�t���% ��z�8,��1�.�6
����
��EB��
�B&;����1_���A)At�+�N�R�O��A$�#�_�Q�j
����h˪�k1���� �tk��@^+ivO��Al5�SA�w��T�ܿ(
�]��e�B����g�F��g�����gx2d�+1��R��G�a��q
z,y���ٯK�>
we
'+����:T�9��;�#�������?�ը��ߗ�u���*�aV�r&�j�gGΝy�ǀ��e�Q�����}
���,>��b���R�H�W����_���g<�
+�'m�y��⩎-�MWB���w��D��K���
+=�2N%Z� ����yo[R����$%A���Q��[H�T�.v׆��ܨ�`!���� H|\�M�1�
+Y�p��ܜ{�6�
`S@Wo�ـE��v��Ε����&tG����0�~$�%c�z��y{h"d�cy�߈蕏z�LG�I[��/;�J���|n8
�V9�����L��d�z��
z����4��ۡ'�~(�6[I�$��
��I$͖<�wG�����RyǬ�KZKk5���
�i�3@��.���L,
d�Џ�� $��A)� �wM������
E�Qu����iNl
TJ�[��
��P�W����@$��{OT z��|P��2u�za���4�>Ap
+y��t�2 ���x�bx
MC�L�3sL�������(�h���D@�
+�Q��7�@
B�d
���V�7g�nt�*3�m
��w|]]O��
�B�#B0
D���F&���o���Qj��
���_Ȼy� ��g
����������ϔ��+(|�q�M����9�@&���@�
�����Vlf�1
�
-����o0�}d�,���X}�y߮�Gzy���a�
+��5�4#����@�5��!!b��W.������C2�^}�H���g��טKU`��?�¹�P.��F�I�HG�D��
+�0Q#����*�.ي��@��K
$�L��/�Ɗ����Z^�0}�2D�
�b�c��Ʌc$#��@�
�B��
�o�*+7Fn��1�?�pjP���@�;1��aa�e�4��Y>:��G��B:<>�`mD]8(�7�,�S+�0�
"W�so��RT�J1�c���<��
aZ�(�������A�?(u�Zl)���>(#�Kb��(U�����p�w0�6(`!Pc���E�p�LCd�<֟���)͗�����Ey2��4�J�\�J{�DJs�Ic@�9����X��J�:�*^�����u
��>��9�v�?�l�p�w
Ne�Se�c��w��6�_�]��B�O|��xJ3�g�����UF�$ˉS_�|���0��l5
���m���CZu�aH��B0K�U�B����H�
+��Χ
�Pt�L�η
4��|��:���(h��
+��]�5��O����
m�|�0~r��.i���x��z��
G@�G�P���?|���H�/%���xn(��kP,�Cg��W��+
~Ʃ����Y���:���ٲ����V����Ki,O
}���}N�)���^���������}�g<=0��b��Š�+z�9AO�c^BAK�
9C��f?�ѫ;juK�
+�J+��F=x��d
(�X�:ҡ�u�R��f�s�[|�ԅ{C�gU��$˦qN�,yR��;hi����ǣ
Z-ק:t�üX�>F(j�
�FyPݷ
��e���_x'(�0��M��ڠ��H"�ct�_gh��U%)��P�&��v�oe$�S�v(h��,�u�'w5��������Yꄄ�������P&�B�5f�Z��,/
��ٝ!���n5�u�;���rA8\���x�t��f�9z�d�T�
��:���X-8C�
�
�[e'�,�C
�b�de����jZ��s�z���
+ J�A)��L
d!4%�O��aH�P�|�ł�����ݯ*��鲵<��Xh�����I#�
(����;�i��E��l}kB�J�C\�XK�H���
�C��;5,�
+�O�M+��[
oQ6��Ӡ�^�j�����A=�@i���s�cL�se�_�/Ʈ�G�(��&
٠����U�
�݅�l�Z��X
�@5�2j��Te@����(\���
��+Q���a�<**��K�m��
�Fs�vg��ct�
�@7[�H�a_�s<���=���JU�
�Ң�m��n��'��:v���X�u
<GEm���qj�����t0
+"��<���+������`Q�,�̣�">�i*X� �K?
[05Dt��ޙ�tlա+-���]�1o��:@�+^�c��g7�<���fNM�xR;*?���K�h�Jٴ�W>�
+?��ޝ�\`B$�?-TtJ$��)*��m��+Z��_w���T�����W/g��L�l�ȫ�,gh<>���y
����HLR�@�ԋ ��~�9��A�J
�C����N��>���^���c�n�k���!��K�k�vg���R� �n^v�M۹/�_��^w5S�6C#� ���Pn8�A]� ��a$H�|
��q㭶DA�- ��]
�L�1��)N�nP�f/7�VW��]X
v��P��`@�˂��Pu�!�Q�rw�X��1
+��3H�zs0��)f�*w�5
+�AC�zk���t$H���d����rꉓ:^����C���L��=nRuzO�c�7M�M�^0����n�J����}�/�y��ӊ��Y�Za�Y�����1V-�{
+�b�Ѽ�ħ2D�6���y��N��5
+�Ra� <Ep\}( }6��:�q�MA�9J�+W�SF/z�^�����rP0�,�qZ�օ��
�8=M�4崈��v���z�k96
�+P����B����vS��\�P6� NS���8%e��"�=tG�O}
uff�/N��,W���ϧ�b�ɚ�&��>���!�Ǿֱo28����nDN��$����e�_�e�E���`�Z�����]�a�����{���C�~v��e�����}�,�?̲�
�`+=J��������l����i�ۄ��7��W]���
����Q+��н+b^Į'}�V�ؕڵ�AZ��T-��&�/��<�0l��W�������bs��*���y��D�9힕��g�oru��,��+^[�nIS!�[c�������6Ni�9���ڹ�d�v�����4��n0뾣�wG���Bjv����i�������^���$�^���Rb��|���j}���ym@}*O���#�~}R������@�"p�;uaߥ���KɎ����.t�i�jpB5?t�Z^���u�~0!�{��H/|%Kk��o��]
��,e��]�/&���z�v��C�_0?B`f@��Z�*�
�V�@Am�X�V����+ 9�
�%�5
���O��s�M`H6�`P~������Gi~��@�O�ϓt
+���.Vv<v7
����븷��"�"����gs��Z�$�.\ŞK��-U�C���O�P�v�8�q�k���-!��¨�?
�S�%h
��
+
�
*��[dK[�H�㵖,� �c�X�N!vܺU��hF0zl��
�
+���h
+(((���$��"A��J~�@����5��J31k.N� �i��6|,$�Ԝr�g��tZl�^�h^�
+�j�,j�ڦ)�ݯ���aD�A��J�����-�$�E�����z p�
+ �
A �z� @~�
�p�4�,:�H)���O-�����"�[y��懽�
|Q_H"�w�y���G.��ٖ�-8����
+��0�}�xzu�ߛ�G��`�'�Q��nb�HDt�4�s���{Y�(�Z3^7��pX,*Pj9s��4�P�u.e��츅T�g��4'�q;m@
+����&�$D&�Ǫ�2��0�mj.Y</@,&+́B�)(E�P[��<���� K�r�� Rm�m���q I�i��Ң}������4�f
�O��0�48m�}a�p�})wO����;m��z�q_J�;,�ιFaZ �V�. ���
+�Q��0r-�k�
8�JZ�D��&�廗���r�/>Ž���Dh�N��0�
+�j�s|�.�aS������dㅟ`ف������xir*,�T�/�o���vX+�����I���QJ;��d�G�L�|ci%u��#�H���>Zܷ�y��
�H��͓˔�qh
;��
wW�Ȭ�
u�K�d�3J}!����� �!�V�͔D���h�L�aY�1�!/��m!Zo�!�:J);������o�<��}l%�6cR;{
+�h
+v$���c;�N�ͷ�y�$O�)k�aIVX��KU�֜\f�*�
wU�ųK=�}B9��k�ouak��
+ D)3O]���S�YE���%�ocU���Z�)MW9O���P�u.ה�n_p�ו�ĊH�{3�{�)D�
og3g�C����Hrޘ`
9S���G�k%y6
E.n�(V26�J������)
+fL�
�g��
VJ���"���(r�CvT�G�b�Nf,��d�R�
ȅ�
�
Q����B�z�ٰO��a)���
�J �r��v�[v��f2�EK)�Ȳ/�s�FƔ�_HF
�;4�w[��n72Z�2}a�)m�¼��
u\�N�`���1 ��D�+M�jHvŸ�rj�DK�J��*���{�@LrZ���0y����s�n.�=w��T�/;��D��^gi�m�b��1
s�V��8�ڦ �u��/*C\D��Nj\/�����c�������
9?�BO�ZH����^B��8�����ԇ�qv:0
��|~�^�X{�a5���Ջ�o���v�[fa��;�/��m}Щ�־�ѷl�����쬒i%��S���
�Y��h�$�K�=��5����;?���ч�͜��_w�҅���NGq� t�Fj��R�
��g!H{/yrs��<���A��uz�ݙ������H�)�9�
+�u��w*׀�è~���r����+2[�dQ��缔�{N
�ӣ�~����uj�e���N��4�w��|ȥA�ɯ��7���htv��;��i:�)�{
t��O:
Щq1~y�\�c�����>����˫鱏����z��h]
��/g�K��û���X�������m�w�e��8��'�����_^`>'� m�� ��ʁ�
�l�Imc�n�+�
_{z��Իjn��Z>{]�e*VumcƱ�RPF1��:/�lXM���i:}h�]/�6B����NHq.$��NP���� �m���:W)��S���\�ɯ���:qDO�y��x��G`��o�j[�� 8��.�0(��4|~x�AɇS-�����6,z�r[l��/,֤'+X3HMe��
W[�A������[���jzEb�~���@Q����V��d9^k���F�4
����ULM�]M��}��}T��
�܀�dǣa����1
{vV �d%
*�sv�TZ��PBմʕ4n�
_��m
+���y.�oU��
t�`cg黵o����Q�m�p"]-��9W����R��<{�v�"��}W�ύ�5��<�]�� (I�
���XHx��Gv��̼L�'k)�q~W�Q���m�}��(����paj�� ��OY.f���y����>��};Z+AM��(���`����+�bɴ�.!&iH���tPB1
���=
�Ս�:���K;�⽀se��s�
,�2-�ܿޞ\[�K���2r����IbFv�e�W��6+��f�
+�$I�Җ)2���F��
�?
�VWҲ
�.{�Ҳ�9����l@�e&d�C�;�ۨ/�0�:�e�n;�̩gȄ!����0�ӹ�`e��
���'*/��b���D�
�տ�����_X�r�� O�ջ,'&%X���Uu��F���H�b���E�dD�;�
t*�������e��ӹ|����9�wH���xT'ɺj�u*�{��Pu��^v����6F��`��<�/*A1!
��!��z�D!���N��딯��j�Ԕ�'
l�v�k.�/:~�v�{o�j��hA<�V���B��_��
+��+t�������<�A���d�$5�]�Rۏ�FN]þw�@��ѰK�r���&��A��9�|pB�.ꖓPqV�
���D�M��~�*�M
+Ñ��,x�0�:!�f`uؕ�2����?�U�<m�byՁT,����x���0��u���
�j)��_Ly'u�����B�h]l�Z�O����Z�����ra'�|<��iB;d)uf�6�
+���
�r��0Q��d�$T���:��ڙ�1F��xu'}Mg�Ft���y����x�<W
+�R��D�� �<~a�1g&0
+g&2E�n����m>cg���MI�>dgwc;�JR���vRkFC�qbgO��%��BJ+�%d�����*��;ܙE�8��ʇ2&Px"}��
�L �h�bK�����gT����`%��h� �-�����I�Xfn�/S`�{N�
n1����Ir�t���JS���m���3�o����?"`�5]M�����gſ_��^p��L9+Ԍ��s?
��v�5L��z�o%��� �J
�����ࢥ(:"�+��Dž�An�IzKB������|���)�r�����VQ�D ;1n/�A�
��SoɲY�nCk�-���b
�?B��6
|PmH5�"Նo�ҌԆTzw�'L�s���*ǧq�a26��{qڐ��[ľ^���6��(�r"�!�Ƒ�O@{O�dMu4s�p�U�.V�?�I��
��U[T�@��`�f�
k8o2�k���ϱG
+tb`�#�
�_x��9 at X�}��hr��pY��~��y
�����&�}h@)�lc�f_R�p������3N��^��/�
��q
[-�%7a��y� ��?��^�o��C�P4�G�
G��6�mH5��I�!��i�kC�-Flnr��2|�$0�2BC9Z ��I +��
{�6��R���+���
++�N��au�a
:b�Ϲ+A&{�w%gp���K���Eh�dE����R�?�Qh�w�
�+i��&|p�� �Ңv at pY���<���џ��"�d ��
�8��[�·��l_dW��E�Z\a 2�`��a�vwÍ���G�l������x���]Q�`���<_`-����d
v%X8�QxE�C �
0�/W�>g#���i���f��/��>�W/]����HͶO��q�}T��˽j�^��W�
�ݹ�k���B��]F��y`0$�Vj��/�
����i�Z��f��뷿|דpT
�JX��N��c<Z%@�:9d�ZO->��,�(�W����{f�����V�|���K���l6��[bj=��d�O�d�Q:x(��#J��ajm{5� �ǭ䲺
zJ����>�J+�)<�wg]��^��d���俇�
�G�ٳ��[ie0��:t����Uj6�[]��jR�z�ұ��}M�f��t��u��*U���C��B�(m^����v�!��?7߷�;�gy���HLܞ��)�j;�k��D^��F�Z���궋�
�d�QEl'����y0U���u������76��A��Ŝ<���� �a_I�����Q�&�X&y��`?vY�6|���1$�~�9�2j1N
]g-D���h�'=!6I�����
.z��1�$J �q���a�z�E�����M_�%�S$�ʋ��0 �}dT- [...]
+�
��/�|9���C�`��k�yL;�tP�t���å��R�C�l�リdx=Žd<H��$xy��{-�i&�-+�I�
�pǕ���
'F��SWs��%q���&�2Z��CaǮI��e�2Nܔ��Vx_
��q�:E��
Di�Cf�V-��`���M67
+N6$ް�;?ބ-��삽ψ#0�e+���j#�F�"�!9%L�&x&�!k��B�(j��&�h����Ar���)'_�pR��O`|/'Q
�&),�Dv�l ��#E����gF��+��S��
T���
�د�:cKT�7
w���`�ϛ��jA����
+���sGĤ܊�H �&�
��������Uz�6�[2�>�
U����5ٓ�w�n�iY
��>����q3͋�9�M{��8�H��[����4L�,5����]�
Gq��[2e\I;�v r�:TA
��Ji(�M
+= ��E�X[�`=s����+ivI
�a�Î�hZD����3����$�)M�"�`_�\��]�҅\�굻�����{����
�9]�c�NѠQ�떨K�Io�Āe��E�S%�I� �"/��SW��0܋���:/��}a3�m� �a�XN�weڹ+y�}����/��41��D
����5�v��Z���q#p
=l�n��T4���I'ǫi'�����'
r|�q�|ӗ}�vv��AMK*Mp�8��ڒ�|����
���%l����:����6'we��b����9fm�AS�
+��}���
U䵻d�bhSȍO ��
#�?�$ts2
Jt�2�]�y!�g�
+�
Q�fy�HU(�y9�C@��-{�i̲�D�J?,���
Lذ�0�h�_��|���{I�=ȠO�/�����Zu��9
���e��<�V��)P���ǭ����BsʂǛN�Aa���5��k�5������~��°�(9$�FH
+���RV�YR|Rb�!OX�
X�n�֖\Q��V# #QӜΦj��w�`����o�f��ۆ��f��l�'!E�DxPXVj����=7/��B���\���x
~�%��w����2qaZ�y�5<�(8�����$X
.>)� ���
%��eI�Vl_���ނ�wr�ȁ*
B�b����Է+��m̚q�ّb=�mH�q�C�"#�l�.�hd����xg�y�j�
[?��^�o���$�
yMho?�
���jB���mؓhC� ����
)QPK� U.�
endstream
endobj
40 0 obj
<</Filter[/FlateDecode]/Length 15740>>stream
+H��W�B�:~�>K)K
+83���.Ȩ(���+WY}���i��� �����s��}�u�(
���/�
+�����oeZ8�w�ҍ���X$��+��r�:�ʆ���8�N%�B}0�{��t*w�͝\��o
U]��?��H�|�`��u�6�uJ�ca"+B
M�p�x魶#�R}\�`e{�Q�hl�
`���1��s'��1۳�<�|�(��1�K���&�e'��<v2w�°F�z"Q��~�P�2��b��Ƃ���/�^'�P�8m�`�ePw���zX����Ia-�*q���o�����7�7уc�"���Y0��`W�!�+�@i:lr��`�$��{�M ����Oh:�;�j;
߿Q_�o�#@��$�W����t)��b�P�
�$N��qq�ғu7���t|�r �
��P��L�K������j�n�2�6�u���A,[��p�ӆf)
+QL��9��s�Cf��,��k��Z����S����8���
*<0 ��0��O��,�s\�M�2��X1ݖ���g��d~!�$���h�U
�|4�gAE���5�Rp
+�BExd�s,gv�
��
+~�CY�=���.�Fto�aZ#���-��?E��F��P����G�
g�P� <2*�+Z)��
f}��
?K-�|�����b
�l��u!S�0��wƼ��0�A&�I�m��`��
xKOV� c�S�S������a��#&�%%�.V�ef
$
+�r�y4��o��9
$�I6f�S��]2{qvSa�s��p�;� q����\Y����P� �|O�V?�`&��j��0ҩ���ry� {/'��$0fn����ϧ�Y
���I����P�;��o47���5?av��YB���˯�ш�
��3
+bf��Xs7a��_���s$�B�o�ez
��
)�}�-*��@h�{�MҿxF5
��g�8�2F��H��UNl�n>��~�2���W�ѓ@����3
+��[�
+�=
�RY�
9��O8����w����e�����C��-��S�_J�w����d�&K ꇟ���Z,�����}.���]t��t�E��(�(
5�o���лy�&�v��{ۙ��xm�H���
q��Q���C�����W┏K�ܥ]Ұ�"��� ��| k����(]VÀO���6<ń<y{��b;�Ĉ\�%�%���<
�y畷ԡ7QW)qK XAu9y���ғ��B3y#By|[�'�,�S���.w �ʽI�.���_�/ǖ�%�
�O:̰���"�m��?�
O ��0�����{�EPy�e��\���5BMg���C/ �Y�ӱC��
W�|j�.�
� Ą&
G�'W�^2�,�p���QE쨨���K�s�w����)����A�V��K*M���=Z�3\�s�Е
N�=��d�O�|C��3
f�lD�6aF5�+���x�=냟�q6����ֻ2
��g2��Q�m��}�_�����"S�}Ԅ�
/L��f��LG�d
�E璙����w_�\۵ˇ��ʊ�.���n�� 75��6*��s]��|�K�r
���-5��
+\�վ+Y��u�Wrӣ��RSP�S�!��<sS'�`
e����J�P�_�ػm3��S� �����T�X���)J~� ��x魶7�
ũ���Fa��U�ѳvO��L��2�����1�c��
fn�ÿ
�*�T�a�U�bq����l���`zt.Q�h�X������!}��!���
���������-���t�8yv��P��.L�
�{3f��ڒ�Z��2S�ŧ��
zW:��c����|�7C��A:��D�9GX���=��I�������'��2���k����
l�Հz%�Xc�H�Ε�g�b��G�����B
��շ�����v�ǒ�o�O�y�X��J�'�4ݵ*kOL8���ԦK���K��o��6��s��b����<�$��Ty������
�v��;�t�E���ϕ�M��&�
+�;?�VD���|4L��f�e�� ;�E�!
+O
?x�Ƅ3���
�.�
-��W�&��t�D��:����]iT��f�ůK�s��)��EV��k�~&WɈHN4���/�
-�1�*��9v8�`�q��Cw��
�*�{�����hɾi at I��X�Nld�
|�!-Ib��P�D�
��z���b���K���λHC��}�J�
-�Z��1A��6���
2>YM���o@�!��Z����m��B�I>1!O���y)'��,�_;R�H�_"*��z�]u���a��g��_ at Q��DS�j�����_��U��
�,�n�`
+�NVc�ok�+k����8%.˾"NbGo
���_���q����w�(�����
+.!(<�h0Zj�b�惝s�^jl�P����[
�m��xPh�@ϔ����T>G2)���G."
�&c��g|��15�9S��
ߛm%݁nǯ�lԪJ�e�iK��+��e����7�
e�w%��_!'JO�}E��|+o컒�#��j��&$v%q�'�n
+W�t���
���W�^�S��ĩ�.Y-o !^��mX}(��t�6
̷jC�������X���
�9�9&jC ��_�C�B�Z5���Fn�"�-ې��z_҆��]�4!�-�=�x`B(|Wb���!J ��ԡ:|�l��~R�=#FF�aZ#���5
+vV�x��
��J
_�s� s4�����ŎG(�c��bﶽ����
+
�(��-p�x魶�78�,�
�@��������a�D1KQ\>`�xJ)��� /��=9u��E'�זٵL��;4����6
.7�|�u2MhO�2��~-jCJx[���$��({��[
GTM)��%�N��ˋ�!{�,�d%
�� �r�̆�[20�֡��Uw%�d�=R��J����n��!�c=�&�$
3�����J����(�g�p0!K
A��T`,
� G|�q���-���gQ��A^J�EX�}u{��$�����\}���$���lk?���p���\�'�aWL�
��Zy����:U���!�!�2�
� ł%F�&�hli���=3`�l6�w� �8s����]�_��
T���6# ���+rX
~%��{r�2�!$.u�p�z��
��X�tGG����K]? �}-ⳗs���u>}��rRɷqė&���/�2a߮X,?
�B��]��.s�E�ε�(|��N�s
��%���%�ݜڔ�(ԣ�QiEE���s;�ͤ[}��#]�pH�DddTod��-d�Jd��cd�>/Q�e�Bw5QB��:��3��
ꎲGt��C�à���@�Q�rl�h"�h4�om��9{?xO�G��kǩ�NpC�:ضp�#�y�Q�Kυ��aI��^ӗJ����Y ��~�G��A�˓�
��ٍ��2!�ϣ�� u
��pB�K)F��G��
�5߿�7.�
t���jcQ�C\o�<�%�J�����Yr
�qܡIf��v=��`i���. C���x~� �Q��r�
%fQђ(W^n���T�qƘ���[�w�c{��x�X��T�u��-�JR��ʳq�s�C�b2���.��F��G��B�P쭧N�O�:��SE�S�Z�D�v^# [...]
+�b����f�3%��eߡ��
���������K+�\�Q�?mw��e���[{�z?8HDMlK.ɜ�.-�eً����=m#�
A}��Oe���R9Ki�[#��qf6t�v)�,�/6.$��(x;
*�p�����6Z<������P�Y8�=&M"|3��/!�*A
�)�R+pԀ$n6�F�x��.,;<9��k>�����"�n���/�gA@�q}���I��x�h�4��ot����d:�j�nO����zb_K:A����}��sp���TR�R�4
+���Yʭ�~�?�o[`���hK�����nz���Oç��Bܬq��&��C�s�C��*3���;]/7 9�,@�fS��6��
��n[����e�#gq�m�{�vtζ�s���ŋ�%��1�X&��ߵe�� �"�)1�^����*a4ԗ�7�L�[����c���up�a��C/�)��M���&_�۔?���?�'Pt
,<lb��?t��K'�O͘���e#C�
�yg��e?�g��>�cF�-�擴
xb�����4V��2��
��#��v�6�����5/+�Rn�{��|�D�v�x�Ս�̩݁�:��J<
+�Q5��
�r��핰[�LB��� �T
�
�x2DD��w1 �����.v��tW]��d�� -��0�G��&�=?�o�azŁ�U�\|X:`t���*xz�7��A���V}�|x�\�h���\�[��'[e.�� �d���6 �I���N�в��a����E�2�,K��U2�ni !10�����p?vxn�ie.z�ӛ�I�eQ��/C��ʂͳ��_
�튠g�M�c!e�|7T��Sar�`q�\GEU�OB�=W��6��Q�".ۏ96�:��^r<IK¸4ϡ��d�@(Q��fG�s�#ICן_F�I%j�73B�|8XL�y!� [�P��f�*_3ʦ�y�j�*�
]^�qG��MF/ȱ�1��(��[�v �)J��t��u�P�u L(��͢���\B���:�l_:�S"�����tw�� ��-���N
��,�T�����.0���O���2�z&aJ2?�$o�hMT��uA9�9uz��'Z�
+)�8L��pp�/��i� � ]�2�]a2�X���!:8�VZ:y at L'g�������ي�C��"�e�����w��}��-�CM [Z<->��;\/T{/��Jm$C��<�֯����e�@�C��d�̤XJ�c�~��eR
6k�RJ$
+�Ȩ�%�&k�E�
�h��| v�;C��sg"���\X���.Pp�<�)n�bwA�`��kFI+}Տ�|Y�
d����vq4�K�5_�)���_�{C{�U}��Ǵ�i���a�x�\���
+��uv��R��{;���rw�V7��Բ�锎�sϊ
1 %u$o��}XĤ�A��?I��YL�F3���0�
�ʶ����1W�c���Y.��U�$
WK��7�}Y2����W�Z���Z����Or>�
|����W��������f�٭�������r����ON��
;��XI��1$@�p,�b��;������I�b�}(�F�.t�ޮ�^���8\�B��Xf,pB̧=��[��Ԑ�����AUʷ�+��y���
Z�q{V���j�JV�W�E`� (���D@�ʴ2�S�������ë�{�o|��s���H�+��ĉ`��N�
���e���������:Ǡ������1zt��<��xc�ꌠ�V�y�nS���fH%5c
<rƴ{��ޝ�r��z�
��t�q~�C�:��M����_Ճ��q����Gm=��"��&L��R�{����/]�2��8����g�R06��w��Y�0K�����caƺ���X�-
|�����B�r�,�X�RJ���$�h��&�&/�Uh��J���or��e.����i]�֪�
�\�eH�1��?�I���Ih�lWd����l�
�S�;o\�
�����%�L
$�$��#��j�Z@�+(�(R?����Ǜ0�Iq�}�
�*�NZq L�@f�H�\�
SO��ᆹξ��Ik��AG�#�L�Ɂ*?�{����vƛ�Ϟa��}ן�z��zpM�{���s��nLJS�Z����K������j������۩焰�k�����DPa&��U�_y8n��jT��qk��FKc�����0A�
h}c�8��6�R#��t���Ҍ
v�
+Xy�{_K
U,�V�>cN�Mv�������4��[�I
�9�&���䎆��k�\op��
+$7ߢ5O��,���> �z�@��d�4���~q �
+>p}�Uϸ����<�ɿn��ƛ:�����
�X?��t�@��]��m�<�H{�� S��ߔ��vKZ|CϞ���4�/��m��
��ϱ�:��P���/�P|��8�/�Q����a��mp��׆�T�i
+c��I0r�4��6y=�6�X0r9o�%����D|�|]��T�kW�R�d�j͋<7��c���6}��>���������/���q֘v���"�����+ C6���f�8x�i����;���F;_J������^�eJ�וw
�KȻ��
�SXvЁ��'��V.!�I_gޕ���_\����P�.t�>�*�j����{����H��
&b��1��/!ny��/^���E
Z����#��zF}�])��=A��74�w���?LD/����`�d.�2Hr��Fr�ya}���ɝ7*���2��%�V�O���~�i%� �M� ��>
����/@��!���Lp��)�D;}��%�5��g�d�H�thX�ձ�~ܳhZ:7m�콽'���ë��;�9#��:n,j��A��hq��B��[����L�N��@�IZcHn0�n����N�q���n㽷�v��NP[n<n;���6
�������NP[n<n;Am��>��/4
���u���.7�
0�
Ě�w�hW�'������ �����%gP�=*¶�*Qs��ұ��p��[,R�G�tV���2�8Mp/��[�*�}�Jt�)ۉ��T$�S�
}��p�z
1M���"i�c�Ѹ�x��%g���� 4���MʱlK��X�8@�9��
����uf=~ݞ��t I�>� �w$�S`7��
h1l��r.�z�t��<���0��&
�c�u,ٌfh�Ձ0w��@LyT;Z��DNI���Vl�J��
�̣y��pB�ɍ�Ә2�
���T����m
+�U���;�w��Y��A�]}��,�W��]����c�
���_�Pt�p7�.� �8��?���(.��g����'�֧V�N�"�[����r4��[N����.p�/�'x�
�7�L�f�.ݏ��6�~q��
P����eP�p`����m"�a
��&�0�@��1�i�'�d�RbV2��i��c��emBpP�
���r3�T��MP���%|�Xk ���1���.VT"�Ä+�R�+WvCV�4=7�T�&~ ������(�0�@DO
�=���0��c�k)�
�����
AEGr�r���Gr����غ�x΅�M
+ï�_ �1�)�
+IW���,
!]ׅ˄6
i%��2�����{|^`-�\Z�ld���� q�b�����m�7�<1�YJ�d����qn�u�K�t�`�ySgX� �x���F��0�����x��-�P
��Ѝ
�qRrg�sM��ahߘK3�tq�U�?I��VS����7�X,
=r9MSp`�E���'m�^�Ӄj�h櫅�^>!�@�
� �}]a��u�
܉���v�B��%
+s�r��qe���)��K�v*����uq&>D�%T�*�J}���']��E�Fv��*ſ3M���R��-�]�8
���,��Ą6�q��v
�&dU����ֲ-0�A<�g���
�L
�HP���]�~��³��I�$>�JU4:�"�,6f^���GQ����>���p�_��x
T���*@M���;ɡ�%��C��_��
�
n
�S���l.g .�
����w��ȬD>���W)���
+/�h����k��c�������Aܐ5a'/�ɖ.k���Ⱦ�
�F�W��v}m��'����� �v
��2�53�$�Mf�Y�VQ�Ӧ��1�\�_���K��Z�}�2�X�'�b��PYE�2��������\�/;�
��%�5�R�|{ۆ����4��4�/<�'I\J����ȵ��P1ƞ���GU[��L�N�G�mq�h���_�O���������?�hB�P�9q����V�:_Z���ƿėy{�\�?A?���
�� ����t�5�ӹ�~��^;A��9}����"�k���o��M����f��"���eQO֧�|�� � ��*q�JQv&DE�='Ё#�� CM.�9�p�z�ğ'�;
�n'�Brj I���19�xg 8r�
[�g+"��&���ʎ�U�^'(
�I�'q�hK�^�dB���Z�v
�A��Ǭ�X�n7_�}p�ç��_���'�C��V��ލ#�_/�V��3c�3��݁��S�6z�ሺ�g��� [...]
�7(�NLr�z�Q|
�*��xXڄPzpnm���`��u%
��Ь���o��K*Ҩ2Ekj1Nv��g�G��~��k#��s`����-Ld�W�o�jy�
�]K���'ͳqk`�������Ar�
�p����g�0��5����wl.�F���u��~���@ʞ:�c�<�B��Ƣ��
��{C���
5 �
�>�`�$�w�"�-�
+$���
hQ�!���K�Iݠ���;�'�$P���ʬ�T[i��"���T at _%.:MK�쓎a�4{-M�?d1�Y���t�e"5�1v� *�kq`�[>�+��C��Vl�ŷ��I�/
+���ۓ?�
A`��]IpP�:�ۂ [K��$@�]�0�\1���BMr��;ix��) ua+
�]
+`/&�;
+�5�s`G�P@�F�yV��=
+8R�L�ӳ7;�
�잖�>�*�}�wV���O���.
lPp�
<\���G@�N�S�AP��
ء ���M�
tz��G�ﺃ�@��c_���(X�0
+�������%� ����M����J������}�
]'7L��f%B�#�}�F;��~�ȑ�#�O2����t��4ż���;�F��]�厝��Ȼ>���i_/���ʬ�0��-T�7�)�S
ד$[����El(
j/�WV$�y�+)�0;ٙ,UwS9
6���/����v��+�.ٝ*UP@ͼ8�4Gk��z%��S���R(�/jZ�8cQ�t��w�t�P
�!Q��C�¼��Π<�k�l���b�c(��̈́�-Z�aA`s���{YZ¿8��n�>D���K��s�~I��?�}o�
tm�s��s at W~�;l�q�;|�
L������;PW���(�qQ���i�J�A�u�Z�����k�@
�7��Q|���N3���j��
+V�my��9�GH�0���F
�7@)!'7K������DM�BQ�"��Ν r�*B:�y��DT��0YФ��BM��+�Ӱ��B�Na5��2Ð��Y��?�T����
?�z
�t�q5�]�F�� ���2fmgvKԆ������YYulB���M[l�g��t'�p�ҙ�``�/���&�x�50h730�M'�|ם|�%���EȶyO�ū��¯��Kɫ
�V���A�4�N
�p\
�@c�T!4�
:�����G����U"��W4�6pٷs���6�[��X0jNR����˗�*��U��J.�h�
�n���0���zlEB{
t�
�\)J�߄_�����Q��3>N���b�ܼ��{�@a�Y�$�I��h����ܽ@"�`
+&B�|
¿7�-�e���Z�B&uAq�k^X,GU��
Ya��K�ϱ-M!��Qe��
�
S�ʞ��=
+k���+�
�T��F�Yn�5���� "��7���������
_2�.�JG L��#�㫌���t�8V�Ǧt�Cw[������CdW�g�,�V��F��E\/�����;�
-�<���c�(@�8i�/��8��̠���wB�YIF���������'�ʗ�v9l .F[���h��)��?��T֥����*L��[�3;ϣT�*���o��ú<�Ĝw�)t�I
���O�K��
�P�
���q��DP�]�6%��%q<��w
.�l�C��4�������8��E��{�T
+Dz[�*P�({)����Ԓ�r�M1cn�!�%�9{uN5��όSe���v��&����ѫC�쨴t;S��T��P3r��sL�ĈXqy
+"�U�����5����|�ê�=� ��4�Q�B��B8M3r���"��fR���=}^�EC�Ϯ�3��R�k��;xÙ7��B��c�H߽^�AV/`��էi�@�#AKuNګgt�.\-~y>�T/N��<pߠ*��u�� o���"��̅��_��[�J�ZZܾ��gg���1�o ނ���#ߑ�
�)� �I�R��E.��FC��+�o����Ϣ�).*g���q��"� f/L^�'H'3��7K�Fb���vc7��3cĵşX�>��*�e/x�9�(�_
�Z������ъ
�u�}f+�j��+~�Va?�+?�+�ժ�/���"_�ׁ�?Ba�����g��N��
�ei�$A� ԼOaf�q��B�s�q�1\R馇��\���k�7��gÈ�L�,�+ug�Pa�\��
�>�
&�wPw����b͌�k�ӜR��0��Kw��]ĝH��������dg�V7�
�T��z����+�|�nQ��?���T�z]$[(nl!
ʪ��
���hEV^d�[*��z��sv�l����;�2�Y��v����xEy�Jr��?ګ�+u������:3#�Ђ (�
*���
k=����&���(^�u����4�Ivv�ۡ^+�
��;ns_j�^芰
0_g��R:�3�Y��j�&0�x����f��?�οA�{)�Җ��x,�=)�D�/^U0:�O�X�|M�{)�����
F�'� ���DuA(L��k)JT4��D�+!
+��+E��^)��Ef�� Q/
+��B��
��c���R��( 6>��b�QM)��aF/(��r�[
!J7ѯ����B��7R�p���b
+ߟe��R^o/xРr�)��x����()����#!��,y��H�A*T�fT�f�K�)�X�~�|��@��M�;=L,�w�fH���o�ݴ��E��n�A
_���x=>e~�#����������v��n��a�K'PɊ��HT�I������ �ը2���Ao���� b�r��$� �X�&�g�RrD�K �����E9�x�%]z���
+��>�4�*WI��0��C�=�P5�W�lBP
3
�Ǟa��k@����|�5��
w]E����$�U�f����%E �����d�;2
:�
�g��x���"�:���;*��
g7�)HD7Ld�
�Qz�K�8��h7�O�|��)�a b���7�OD��%�J��
�3�|�e()���,Go1_�<H����O$�*�t�����ji�?��8�����AM����
F�9��g��m��oÑ&� `k�jpא�� �gP/zKE�0?��85 e���p��1���`λ����YM$/Q�<k����^����f����P�C����ԭ�L�W
+ʱ�X�!:v��
�����<1ǜ"�#��Ë]m`�)_����lۉ�R�B��=
���e�27o���}�R�Q�%{\cV��.�V)
�����e14י�hL��M�3g�@� �
�q����
E��͂��4�?�Io�)=i�8d�P�
��ϸ
Rԛ�P�����2��S�hGK/l�r��������0�M<͏ZZ�z���Ȓ���Q�k^�,�6��-I�����n�%"d��!i�q��{�$��i��&қ���Gv}�Mf:![b`����3�^ ���L8��.i��F�Z�J��~��ec�ʹKCJ��;�%����H>�{�Ԣp
����@f���D �ѡܦW92��@���&ؙ b,��`��][v�
�"�Q<\�a
�T�
+�C�JIœ�B�)
+�p�a|2�O�sM+Ϥ��u����SE��EPv�)�7
+��.'
+�:�(|_E9X�1t�
�ٶU:n at Q�/����A,U��v:^5V/O/��u�rEi��j<�
��).F��x�9H
H��B�
ǣ����`�AԪR��:儠S-:�1�R��c\��=��(w�;���./M�a�I���8�?����Qd��ßv�� ���g}���L�Ӌ�zIa�-�����v�XX�R�9~Y?�V��t��l�d�*�nzr��u/�T.5"4�� ���.
����^;
�/�����n��/Ǹ��A��>ýLӌ0?��E-��
+k���
�d��_
�d��:���O��c*���wt�/�}2�a�ݱO�>�ʟ�>��
�$*��
�b����� T�{1�+R��_��T6���Hcs��_�.vG
Џ��"K�������%
�z�
0l��-�$C�X���r:�����N��-b�z���m,|�v��$�MWgYi)�K�xyܫ����s�+G�{�s�4�b�BG�i�\q&E�-hw&��Mf�C�Mܢ��>�ٗ}�4����
+�*@��
+��qظ
��D@)���uȢ?�ǕL��6�,�}I��/�
���<��Z�&
�xP��^�Ҥ��&����|`6E�`g��vI]�$"���t�R Uѱ
�˂l*��b���
�g��ߌ��9�J_D�S��G_&$� ��U�0��Ɣ���6;�}?D
�<������+�_d�c۬
8�}V�1nK�0�@s�Z��s���I�*kk|&���J�u�(Vů4
&��om�8�`"���P97��yq�J-
R�5�j�NI��XRߪ/�
���E<
�?,�&F�&�a�P����63A�C�b*�%�*���^�D�t�����|�]I/�9̮dr@�h�^}�9s��A��0��Y?�J)�u��c
O[uv� �����J
+:��϶�C藀�H�$�/s=�a!}e�%mL ��r�U�n��Q�
7z�}��S�F��,�Xt� ��5��|�wؼ�~�C������@�;AP�� x�sB �8!�Ė&� ��&l�� �$�gb�@��d�� ���{�`�@?J@�)q����Ƭ�-cC
+6���Z |Q��نv��Z�oE�k˄��LJ: �Ac�xd�P����&��ױo���wL�'�O|���������@�
���ʯ�xL��A :��¨��o��b�0�JH�XT�@?+�c�dBᏞ}vw����v7�n�&>7���0�����"\�$j��&�>|0�R��t�Y���0Y�M��J�i��NQ�� [���SJ�Io �.��CO8�(��ڭ���
+�9���o
}O{Ul�"
6T/�o���?��WQ�-��u���w�u�y��+R�[��Sh�D��]A����o�Q>�J߮�j�,h���j��ƙ��
�nII(��!�|(��(��B
+!K)ZH�n���H�Iv[����C,�3g���
�Oal�}�=V��o����pxX�e`˟��%��L.���T��pq�n����"��Ef�
��6����f��:�e�k)����kv�Uց�NҤ���vv*Ͷ�I�7l�7g�AܽS��P���+{ oG�̷W^�|*z<�CP�M�<Y
'x'h at m
Ѭ
ߢ傊�A�9nb��m(��e�u�B��n�H����ܠ�Q[�Z�9�i(h�X^��G��\��m�A�=R�gl�
t�.�J�B�G�R� {5�c��
i�ռ��ʿT�hvxz��O��
?�|C��r�^
9
t�p����t
+��gY�0�{/;�����&�{zKF��\���
+���d�
��CC����o�7�0���|�{Y�V�L��t5��7���{���0����G|a����]nJ�W�}�"������/-�s�5�/+���dof���$�Z;�6s�qr��yTd��鷳������wg��^o|-��*S[�x![�ty�8�ȍ
�/Ny�x
*�l�]rL9�{>���O
l,ކp{���Gb�O:�]��N��s��6���]K>'���w3�1������@�r�
n�D�&������d9Y���-?��Y@�Ρ�0��?z3x�M�zO[��������GD����4���W>G�>�͏Gﺽv�����=���
+yl�����";�YR�
�Ğ��|��NK�d9��+�;����|x�O;j�?�-{�2QЂ��/F::�m��|ʊ<�|�s�|����
��,���ש�{����>8{����?�)�3�]�b<{���%)�f9r���96�����z��ݦ��`5��V���ڥ�z�e=��/���b��G��x/�4"iށt�ɹz��+�% S�,I�L5Log�
��ט�oy3�Wk��!l�
K������4ֶ n�]��5�ݏ�ݎ�&N���x��
�
��W�w�������?��b��ȥA 7G�NS�uI���9�ag�aһ
M����~��8�v���s����!�]t��a6<j��0
������W��v��3���3>0�����3@�]��]��)v/�����['`!�)�^�GX\��� �}��D�0�p�~/i�Q�S�Oαs�
��m�ܷ�2j��(�}�O���أ�%��{q� ��C�X
��GA� g�q����h��@`�E%9[J-�=�}� [...]
�f�
+� ��#�<
+Ҵ8p(c(�p3�� c��(bq�MT�11��ҭ%�G!"Ԥ.!C� �-�$fhA{ ���Č�q�"��VaB�(B���������`z:MA����P@�@ߡ���㔟��=����$E�1�"]���aD���
�I��qv�R*����l�"{��Q��Ǫ�18�:�� ;x�Q"p�<
�/y��$W mj�Z�2��S�1A�~6��)C�Ɣ�m��6���Z
�p�P�kɬ��)O�w�������re,N�C��7�CAO�yR] �j�^�R9f@�P�<�j
+�
"��
J�"��P5:�\'�'��k� �~�D|�%�
H��P�.��kd��4L�kT%�S��'E1�Q�V��es���3�����0��d~(���Ju��\���{d�x ����^R��U a*�Y�*6'N3��S����
K�",!R��S�
+[
P��K+!���G�Ηo*,�[+�Y�*��f�Cj׳
+� �H�b-�Y�*��f� �f��:�\ IQ�%��}�Z�fAXhW�
+2�$��(U���u����˵"8#iE3
Ò�8K�U7��5��a�̦"���c ��(�z��r�Lf�*˵��C�b��!I>�J��z���XP��5���+E4N�
�Ē�8˨U3��5K�E�%��� m�՛�笕Ѭv
+�kf��cD��DH��f��ZB��)T���CjU�
+"��7;]d�Ē�X�hV3��5��aϳ+dꡈ�AdXRk ��P�f6; �c�RVFa�� 2,)���fuS�\3�
'�̚9��A_ IQ�%���u�1�
��o��
+Ҩ�ԓ|le��q��ج�hH��XAă��
۔�Ē�K(U7��5��qY#g ��
�Bq�Ē�8K�U���"�VEY��3WB$��'C�o*,�[+�W�*��f�#jW�
+"!C�
!E��8K�U��ʵ��Y�W�&DB$���I?�* �%Eq�Ыn
+�kf���ql|�%D1F��!dHRg ��t_�V�[ǃN���*�R�h�4� $��YF��)T�Y�
&Q��F�0 =t�
endstream
endobj
41 0 obj
<</Filter[/FlateDecode]/Length 1787>>stream
+H����j�6Ư���/�
VEmk��A
�@����6^Ȼ4Cy3���w�#ے�cA�2��<�t~�c[:��\��ɉ�^�Y��f�r�inӦ!
����o��������_�`|���o��y�����qf�5R��i��R��X
5l��� � ��t
xbj��x��`�
픙�+y%d��~f���azHqAq�[����J
)Y5*]=��
+0�d�KA����&�<�>(nR���s��氖
&�꣤�e��
��Qs��Hi�F���`X4G
�f
$�
����Us%���#T�
��Q�CK���w
�r
��J> y�,_=+L��M
V$iG&�����Qs%���Z#T�
�y�q�/�A���.�n44W�JȬ5B��
��q���Q�vm�L͕�R2k�P=3L���]r�$t:V-
o44W�JȬ5B��0���CI�h�M-��+�$�ղ|�� #[B� �r��I�!�
~�8<-�fū���;���P~�%�G6���@�\�'!���3����[��P#��
���+y}9���3�t
x��r��`���L͕�2k�P?�N�Ըk��𭵝��Ī��WJf��g�� X �5G zk8��� ��SBbm���<�;�(Y�.�Dt�J�䓐W[��yM�p��$���(Y�
_���`�\�'%�� ���l�
�X�)G���9D<~{����T�
@��\��|�
R�&�x.R^m���<���AX_��>H�䑐U���s�#�
5�7)�����%�F��g�� u��H��W?
L^��GBRm���<�;��
+6����J
Y�+^?�iw�<���f�䏒S���s�\���w�Q��9�+�#�Ԯx�v\
���7Jv݄S�Ur%�/g��~^1�p���e�
Ė���WS��yy�-�0/�0}�������s��j
P=/��pE�o�\���|�j
P=/��q'�G)�
���s��$��`�
�[��4A}>��4 �:��k��Q6����[����A���P��Nq̈́�Ҍ���ܪ�9lXAs%zJ
+�hI�j�L�bIj�S����͕
��Dsb��ǘ�$��xQ��er�Ȇ4Wr at H�55 T0���J
+�
+>�y=�cVŕ�) 4*Mt�ׂ�J2��&J
+��I,�HAq{j��vʼn�����
�|���
+���62jn?)���$,>�)Xb�i!J���KB�����+9�$���� F�s@���+U6+�DOH�eyb�
���wb���)���+�Rh�@L�������/KTD
�+9 $���Ą[X5܁EIj؏B
�+9�$���� �ܵ�A��3�l6C
�+9 $�����1쮍
� m�)ت�=!��� ��٧i���E*H�=)����h��'����;��a0�6W��
� c2���=!��Oѭ�M�1c��Ls%3f����MRV�T_F����>w��S�kg���?u���x������
���O7��_�������������������������
��N�����9^�t�� �W��+�WV�_ at f�5R�砕VJ�|�bQ,�2�p���t�mb�e�^��x�0�
+V��(��I8�X��v_�����N.�����l
�Bs��
���^��9,��v�&%�����6)���5�!.��_���
�W�W��W���p�swv�����tsy�v||�;;��p{��x�s������ϱ?�Nχ����?���� j
���_�C��ggo?���` �}O
endstream
endobj
16 0 obj
[15 0 R]
endobj
42 0 obj
<</CreationDate(D:20130909080751Z)/Creator(R)/ModDate(D:20130909080944-07'00')/Producer(R 3.0.1)/Title(R Graphics Output)>>
endobj
xref
0 43
0000000000 65535 f
+0000000000 00000 f
+0000000016 00000 n
+0000018733 00000 n
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000018806 00000 n
+0000000000 00000 f
+0000000000 00000 f
+0000000000 00000 f
+0000021630 00000 n
+0000022019 00000 n
+0000021489 00000 n
+0000000148 00000 n
+0000021302 00000 n
+0000086930 00000 n
+0000019163 00000 n
+0000038730 00000 n
+0000038617 00000 n
+0000020342 00000 n
+0000020741 00000 n
+0000020789 00000 n
+0000021373 00000 n
+000002.4.5 00000 n
+0000033115 00000 n
+0000033140 00000 n
+0000026702 00000 n
+0000022204 00000 n
+0000022465 00000 n
+0000026976 00000 n
+0000033521 00000 n
+0000033785 00000 n
+0000033854 00000 n
+0000034141 00000 n
+0000034224 00000 n
+0000038804 00000 n
+0000039012 00000 n
+0000040044 00000 n
+0000055941 00000 n
+0000069258 00000 n
+0000085071 00000 n
+0000086955 00000 n
+trailer
<</Size 43/Root 2 0 R/Info 42 0 R/ID[<7BBFF5064EED43BEA962E22FAFA7D8A4><7BBFF5064EED43BEA962E22FAFA7D8A4>]>>
startxref
87095
%%EOF
diff --git a/docs/assets/reference/statistics/reference_bedmap_mapref_ref1.png b/docs/assets/reference/statistics/reference_bedmap_mapref_ref1.png
new file mode 100644
index 0000000..14dd00c
Binary files /dev/null and b/docs/assets/reference/statistics/reference_bedmap_mapref_ref1.png differ
diff --git a/docs/assets/reference/statistics/reference_bedmap_mapref_ref2.png b/docs/assets/reference/statistics/reference_bedmap_mapref_ref2.png
new file mode 100644
index 0000000..3652e15
Binary files /dev/null and b/docs/assets/reference/statistics/reference_bedmap_mapref_ref2.png differ
diff --git a/docs/assets/reference/statistics/reference_bedmap_mapref_ref3.png b/docs/assets/reference/statistics/reference_bedmap_mapref_ref3.png
new file mode 100644
index 0000000..a7ced51
Binary files /dev/null and b/docs/assets/reference/statistics/reference_bedmap_mapref_ref3.png differ
diff --git a/docs/assets/reference/statistics/reference_bedmap_mapref_ref3_padded.png b/docs/assets/reference/statistics/reference_bedmap_mapref_ref3_padded.png
new file mode 100644
index 0000000..0bb4b3b
Binary files /dev/null and b/docs/assets/reference/statistics/reference_bedmap_mapref_ref3_padded.png differ
diff --git a/docs/assets/reference/statistics/reference_bedmap_motifs.bed b/docs/assets/reference/statistics/reference_bedmap_motifs.bed
new file mode 100644
index 0000000..4e898f8
--- /dev/null
+++ b/docs/assets/reference/statistics/reference_bedmap_motifs.bed
@@ -0,0 +1,9474 @@
+chr1 4534161 4534177 -V_GRE_C 4.20586e-06 - CGTACACACAGTTCTT
+chr1 4534192 4534205 -V_STAT_Q6 2.21622e-06 - AGCACTTCTGGGA
+chr1 4534209 4534223 +V_HNF4_Q6_01 6.93604e-06 + GGACCAGAGTCCAC
+chr1 4962522 4962540 -V_GCNF_01 9.4497e-06 - CCCAAGGTCAAGATAAAG
+chr1 4962529 4962539 +V_NUR77_Q5 8.43564e-06 + TTGACCTTGG
+chr1 4962530 4962539 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGG
+chr1 4962530 4962543 +V_PPAR_DR1_Q2 4.57755e-06 + TGACCTTGGGCCT
+chr1 4962530 4962543 +V_COUP_DR1_Q6 7.90564e-06 + TGACCTTGGGCCT
+chr1 4962530 4962543 -V_RXRLXRB_01 5.3169e-06 - AGGCCCAAGGTCA
+chr1 4962530 4962543 -V_DR1_Q3 4.56975e-06 - AGGCCCAAGGTCA
+chr1 4962530 4962547 -V_PPARG_03 1.86159e-06 - ATCTAGGCCCAAGGTCA
+chr1 4962530 4962550 -V_PPARA_01 2.88858e-08 - AAAATCTAGGCCCAAGGTCA
+chr1 6178626 6178644 +V_CART1_01 2.8114e-06 + CCTTAATTACCCTTATCT
+chr1 6974413 6974426 -V_OCT1_03 1.43692e-06 - CGCATAATCAGGT
+chr1 6974457 6974470 +V_P50P50_Q3 6.38701e-06 + AGGGGAATTCCAT
+chr1 6974458 6974468 +V_CREL_01 5.43478e-06 + GGGGAATTCC
+chr1 6974480 6974498 +V_PIT1_Q6 8.4512e-06 + CATTCATGAATAATACTA
+chr1 6974506 6974516 -V_PARP_Q3 6.05736e-06 - TAGGAAATAG
+chr1 9745857 9745872 -V_ETS1_B 3.18763e-06 - ACAGGATGTGCTGGA
+chr1 10021937 10021952 -V_OCT4_01 6.46423e-06 - CATTCTAATTCAAAC
+chr1 11385614 11385628 +V_MYCMAX_01 6.58089e-06 + AAAGCACGTGGTGA
+chr1 11385614 11385628 -V_MYCMAX_01 6.58089e-06 - TCACCACGTGCTTT
+chr1 11385615 11385627 -V_CMYC_01 5.14108e-06 - CACCACGTGCTT
+chr1 11385617 11385625 -V_USF_C 9.89755e-06 - CCACGTGC
+chr1 11385662 11385673 +V_E12_Q6 8.542e-06 + CGCAGGTGGCA
+chr1 11386138 11386167 +V_MYOGNF1_01 4.90078e-06 + CACCTGTGCTTGCTGAGGATGAGCCTGCA
+chr1 11386170 11386183 +V_FXR_IR1_Q6 4.69196e-06 + AGGTAAATGACCT
+chr1 11386253 11386268 +V_OCT4_01 6.91054e-06 + TATTGAGTTGCAAAT
+chr1 11386254 11386269 +V_OCT4_02 6.36693e-07 + ATTGAGTTGCAAATT
+chr1 12016013 12016026 -V_STAT_Q6 4.29898e-06 - GTAGCTTCTGGGA
+chr1 12016033 12016048 +V_OCT4_01 8.48593e-06 + CTTTCTCTTGCAAAC
+chr1 12016056 12016072 +V_S8_01 9.74813e-06 + AGGACCCAATTAGCAT
+chr1 12016063 12016078 -V_OCT4_02 7.51249e-06 - ATTCTAATGCTAATT
+chr1 12016064 12016079 -V_OCT4_01 5.75922e-07 - TATTCTAATGCTAAT
+chr1 12363199 12363209 -V_MYB_Q6 8.47717e-06 - CTTAACTGGC
+chr1 13049840 13049855 -V_ETS1_B 4.52978e-06 - GGAGGAAGTGTTTTG
+chr1 13049841 13049857 -V_MAF_Q6 8.58364e-06 - TTGGAGGAAGTGTTTT
+chr1 13049842 13049856 -V_ETS2_B 5.16909e-06 - TGGAGGAAGTGTTT
+chr1 13049939 13049954 +V_OCT4_01 5.63049e-06 + CATTCTTATTCAAAC
+chr1 14481272 14481283 +V_GAF_Q6 7.13471e-06 + CAAATTCCCAT
+chr1 14695860 14695869 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr1 18213740 18213754 +V_POU3F2_01 5.34962e-06 + ATGCAGTCATTCAT
+chr1 18213788 18213803 +V_VDR_Q3 4.52515e-06 + GAGGCAAAAGGGTCA
+chr1 19223979 19223988 +V_AP2ALPHA_01 6.01835e-06 + GCCCCGGGG
+chr1 19223979 19223988 +V_AP2GAMMA_01 4.51376e-06 + GCCCCGGGG
+chr1 30960793 30960808 +V_PEBP_Q6 2.84305e-06 + CCTGACCACAGACTG
+chr1 30960793 30960808 -V_AML_Q6 5.76916e-06 - CAGTCTGTGGTCAGG
+chr1 30960816 30960829 -V_CEBP_01 2.0866e-06 - TGTTTGGAAAGGG
+chr1 30960887 30960899 -V_NANOG_01 6.30438e-06 - AGGATCATTGCC
+chr1 30960935 30960945 -V_ESE1_Q3 2.21291e-06 - TGTTTCCTGT
+chr1 35289565 35289578 +V_AP2_Q6_01 3.36599e-06 + CATCCCCCAGGCG
+chr1 35289566 35289578 +V_AP2_Q6 1.83748e-06 + ATCCCCCAGGCG
+chr1 35983731 35983743 +V_PAX4_03 4.004e-06 + CACCACCACCCC
+chr1 35983734 35983743 -V_ZIC2_01 9.89755e-06 - GGGGTGGTG
+chr1 35983736 35983747 +V_SP1SP3_Q4 4.25103e-06 + CCACCCCCTCC
+chr1 35983738 35983751 -V_SP1_Q6 6.05961e-06 - TGGGGGAGGGGGT
+chr1 35983739 35983749 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr1 35983739 35983750 +V_SP1SP3_Q4 2.8432e-06 + CCCCCTCCCCC
+chr1 35983740 35983749 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr1 35983740 35983750 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr1 35983741 35983749 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr1 35983741 35983750 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr1 36113642 36113656 +V_DMRT7_01 7.83627e-06 + TTGTTACTTTGTGT
+chr1 36113642 36113657 +V_DMRT1_01 9.55793e-06 + TTGTTACTTTGTGTC
+chr1 37039536 37039550 +V_E2A_Q2 1.48735e-06 + CCAGCTGTCTCAGC
+chr1 37158695 37158706 -V_NFY_Q6 7.17826e-06 - GAGCCAATCAC
+chr1 38880941 38880956 -V_OCT4_02 2.05222e-06 - ATTGAGATGTAAATG
+chr1 38880942 38880957 -V_OCT4_01 1.18992e-06 - CATTGAGATGTAAAT
+chr1 39585401 39585416 +V_OCT4_01 8.48593e-06 + TATTCTAATGTTGAT
+chr1 39585457 39585476 -V_PU1_Q4 6.99665e-06 - TCACATTACTTCTTCTTTT
+chr1 39590975 39590990 +V_OCT4_01 2.64195e-06 + CTTTGATATGTTAAT
+chr1 39590980 39590990 +V_POU3F2_02 5.63759e-06 + ATATGTTAAT
+chr1 43051312 43051332 -V_PPARA_01 3.8328e-06 - CTAGAGTAGGAAATATGTCA
+chr1 43489028 43489046 +V_GCNF_01 2.42176e-06 + CCCAGGGTCAAGGACAGC
+chr1 43489031 43489043 +V_PXR_Q2 3.24502e-06 + AGGGTCAAGGAC
+chr1 43628111 43628125 -V_ETS2_B 4.91978e-06 - GACAGGAAGCCAGC
+chr1 43628114 43628124 +V_ESE1_Q3 8.80613e-06 + GGCTTCCTGT
+chr1 44641792 44641805 +V_AP1_01 3.63092e-06 + GTGTGACTCAGCA
+chr1 44641793 44641806 -V_NRF2_Q4 7.14187e-06 - GTGCTGAGTCACA
+chr1 44641794 44641805 -V_NFE2_01 2.04834e-07 - TGCTGAGTCAC
+chr1 44641794 44641805 -V_MAF_Q6_01 4.72643e-06 - TGCTGAGTCAC
+chr1 44641847 44641860 -V_AP2_Q6_01 6.77812e-06 - CTGCCCCCAGGCA
+chr1 44670659 44670670 -V_E12_Q6 4.37943e-06 - AGCAGGTGTCC
+chr1 44670676 44670688 -V_OCT1_07 7.06349e-06 - TCCATGCTAATT
+chr1 51566076 51566094 +V_PAX8_B 4.52034e-06 + TCACCCAAGCATGAGTCA
+chr1 51566082 51566094 -V_AP1_Q2_01 6.99389e-06 - TGACTCATGCTT
+chr1 51566083 51566098 +V_BACH1_01 2.64203e-06 + AGCATGAGTCATCAA
+chr1 51566084 51566097 +V_AP1_01 9.37963e-07 + GCATGAGTCATCA
+chr1 51566085 51566096 +V_BACH2_01 6.59115e-07 + CATGAGTCATC
+chr1 51872597 51872607 -V_ESE1_Q3 8.80613e-06 - GGCTTCCTGT
+chr1 51872682 51872690 +V_CACD_01 9.89755e-06 + CCACACCC
+chr1 54541828 54541849 +V_PAX6_01 7.64024e-06 + GTTCTTCATGGATGAATGACA
+chr1 54657244 54657254 -V_TAL1_Q6 2.26726e-06 - TCCATCTGCT
+chr1 54657254 54657266 -V_NANOG_01 4.0942e-06 - AGGCTCATTGCC
+chr1 54657279 54657295 -V_MEF2_01 6.78808e-07 - TTGTAAAAATAACTTT
+chr1 54657298 54657311 -V_NRF2_Q4 5.51501e-06 - GTGCAGAGTCATC
+chr1 54657299 54657310 -V_MAF_Q6_01 4.72643e-06 - TGCAGAGTCAT
+chr1 54883620 54883638 -V_GCNF_01 1.92021e-06 - AGCAAGTTCACTGTCAAG
+chr1 54883642 54883654 +V_PAX4_03 9.67001e-06 + AGCCTCCACCCC
+chr1 54883673 54883687 +V_E2A_Q2 1.59265e-06 + CCAGCTGCCTCTGC
+chr1 54883698 54883712 +V_ATF3_Q6 5.49015e-06 + CCCTGACTTCATCC
+chr1 54883906 54883921 +V_SREBP_Q6 3.71245e-06 + GTTATCACCCCAGGG
+chr1 54884051 54884066 -V_AR_01 9.12477e-06 - GGTGCAGGGTGTGCT
+chr1 56979509 56979525 +V_NFKB_Q6_01 3.99239e-06 + GCTTAGGAAATTCCCT
+chr1 56979512 56979526 -V_NFKB_Q6 2.23293e-06 - TAGGGAATTTCCTA
+chr1 56979513 56979525 -V_NFKB_C 6.70077e-06 - AGGGAATTTCCT
+chr1 56979514 56979524 -V_NFKAPPAB65_01 9.08563e-07 - GGGAATTTCC
+chr1 56979514 56979524 -V_CREL_01 7.08941e-06 - GGGAATTTCC
+chr1 56979514 56979524 -V_NFKAPPAB_01 1.65463e-06 - GGGAATTTCC
+chr1 57630776 57630786 -V_IK_Q5 4.8392e-06 - GCTGGGAGGC
+chr1 58426763 58426782 +V_OCT1_01 9.79613e-07 + TCTCATATGCAAATTTTGC
+chr1 58426768 58426778 +V_OCT1_B 7.0832e-06 + TATGCAAATT
+chr1 58426768 58426779 -V_OCT_Q6 7.92146e-06 - AAATTTGCATA
+chr1 59270027 59270038 +V_E12_Q6 5.0287e-06 + AACAGGTGCCC
+chr1 59454536 59454547 -V_GATA_C 2.4.548e-07 - AGATAAGGCCT
+chr1 59454553 59454568 -V_SREBP_Q6 8.19611e-07 - CAGGCCACCCCAGGC
+chr1 59454553 59454568 -V_SREBP1_Q5 5.07585e-06 - CAGGCCACCCCAGGC
+chr1 59454562 59454575 -V_AP2_Q6_01 7.81175e-06 - TTGCCCCCAGGCC
+chr1 59480134 59480147 -V_SP1_Q6 7.54104e-06 - TGGGGGTGGGGTG
+chr1 59480136 59480146 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr1 59480137 59480146 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr1 59480137 59480151 +V_KROX_Q6 9.64613e-06 + CCCACCCCCATGCC
+chr1 59480213 59480225 +V_PAX4_03 3.30124e-06 + CATACCCACCCC
+chr1 59499706 59499723 +V_PU1_01 3.87664e-07 + CAAAAGGGGAAGTGCCT
+chr1 59499707 59499726 -V_PU1_Q4 3.95346e-06 - GAAAGGCACTTCCCCTTTT
+chr1 59499760 59499775 +V_SPZ1_01 6.9171e-07 + GCAGGAGGGATGGGG
+chr1 59499784 59499798 +V_ETS2_B 5.87575e-07 + GAGAGGAAGTACTT
+chr1 59720718 59720733 -V_OCT4_01 9.65557e-06 - TTTTGAAATGGTAAT
+chr1 59720739 59720757 -V_CDX_Q5 5.93228e-06 - TATAAATAGAGCTTTAAA
+chr1 59720777 59720789 -V_MEF2_Q6_01 5.70297e-06 - TGTTATTTTTAA
+chr1 59720837 59720851 -V_E2A_Q2 1.24142e-07 - CCACCTGCCTCTGC
+chr1 59720842 59720850 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr1 59720842 59720852 -V_MYOD_Q6 6.66004e-06 - TCCACCTGCC
+chr1 60907886 60907896 -V_NCX_01 2.56319e-06 - TGGTAAGTGG
+chr1 60907943 60907959 +V_MMEF2_Q6 6.11616e-06 + CTCTTTAAAAAGGCCC
+chr1 62463569 62463583 -V_E2A_Q2 7.08461e-06 - GCAGCTGTCTCCGA
+chr1 62463570 62463588 +V_MYOD_Q6_01 6.88833e-06 + CGGAGACAGCTGCAGATC
+chr1 62463719 62463729 +V_PR_Q2 8.13856e-06 + GAAAGGACAG
+chr1 62463721 62463730 -V_T3R_Q6 3.30926e-06 - CCTGTCCTT
+chr1 62463724 62463738 +V_ETS2_B 1.86567e-06 + GACAGGAAATATCT
+chr1 62799565 62799579 -V_KROX_Q6 2.32952e-06 - CCCACCCCCATCCC
+chr1 62799570 62799579 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr1 62799573 62799583 +V_IK_Q5 4.33614e-06 + GGTGGGAGGG
+chr1 62799574 62799584 -V_SP1_Q2_01 9.56538e-06 - CCCCTCCCAC
+chr1 63488940 63488949 -V_CACBINDINGPROTEIN_Q6 8.12736e-06 - GGGGCTGGG
+chr1 63488963 63488973 -V_ESE1_Q3 8.06007e-06 - TGCTTCCTGT
+chr1 63489078 63489086 +V_CACD_01 9.89755e-06 + CCACACCC
+chr1 64992874 64992892 -V_GCNF_01 4.79048e-06 - GCCAAGGTCACTGTCAGA
+chr1 64992882 64992891 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGG
+chr1 64992942 64992951 -V_SMAD3_Q6 7.33929e-06 - TGTCTGCCT
+chr1 64992968 64992983 +V_EVI1_04 4.77432e-08 + AGATAAGAAAAGATA
+chr1 64992968 64992984 +V_EVI1_01 4.8132e-08 + AGATAAGAAAAGATAA
+chr1 67982509 67982524 +V_OCT4_01 1.52058e-06 + TATTCAAATGCTAAT
+chr1 71834290 71834309 -V_PAX2_01 4.19071e-06 - CCTGGTCACGGGAGCTGGA
+chr1 71846935 71846947 -V_ETS_Q4 7.06097e-06 - AGCTACTTCCTC
+chr1 71846987 71847005 +V_MYOD_Q6_01 6.49155e-06 + TCAGGCCAGGTGGTGGGG
+chr1 71846990 71847000 -V_EBOX_Q6_01 6.43409e-06 - CCACCTGGCC
+chr1 71846990 71847002 +V_LMO2COM_01 2.70597e-06 + GGCCAGGTGGTG
+chr1 71847040 71847053 -V_STAT1STAT1_Q3 5.39318e-06 - GTTTCCACGAACA
+chr1 72808063 72808074 -V_LEF1TCF1_Q4 3.03779e-07 - CCTTTGATGTT
+chr1 72808065 72808075 +V_LEF1_Q2_01 1.81713e-06 + CATCAAAGGG
+chr1 73354043 73354059 +V_AP2_Q3 4.37407e-07 + GGCCCCGGGCTACAGG
+chr1 73354044 73354053 +V_AP2ALPHA_01 6.01835e-06 + GCCCCGGGC
+chr1 73354044 73354053 +V_AP2GAMMA_01 6.01835e-06 + GCCCCGGGC
+chr1 73354044 73354053 -V_AP2ALPHA_01 3.00918e-06 - GCCCGGGGC
+chr1 73354044 73354053 -V_AP2GAMMA_01 3.00918e-06 - GCCCGGGGC
+chr1 73927400 73927418 +V_CDX_Q5 6.79733e-07 + AACAAACAAGGCAATAAA
+chr1 73927502 73927515 +V_HNF4ALPHA_Q6 6.68176e-06 + CTGAGCTTTGCAT
+chr1 74120345 74120359 +V_PAX6_Q2 5.16503e-06 + CTGGCCTCGAACTC
+chr1 7412.4.5 74120496 +V_PAX4_03 3.30124e-06 + AGTCCCCACCCC
+chr1 7412.4.5 74120497 -V_MAZR_01 5.68389e-06 - GGGGGTGGGGACT
+chr1 74120487 74120497 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr1 74120488 74120497 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr1 74120488 74120499 -V_EGR_Q6 8.04446e-06 - GTGGGGGTGGG
+chr1 74120488 74120502 +V_KROX_Q6 1.8783e-06 + CCCACCCCCACCTC
+chr1 74120492 74120503 +V_SP1SP3_Q4 7.42043e-06 + CCCCCACCTCC
+chr1 7412.4.5 74120508 +V_KROX_Q6 4.94478e-06 + CCCACCTCCACCCC
+chr1 74120496 74120508 +V_PAX4_03 1.74945e-06 + CACCTCCACCCC
+chr1 74251775 74251794 +V_PU1_Q4 3.23812e-06 + TGGCTTGACTTCCTCTATC
+chr1 74251782 74251794 -V_ELF1_Q6 1.64054e-06 - GATAGAGGAAGT
+chr1 74251921 74251931 -V_TITF1_Q3 4.46892e-06 - AGTCAAGTGT
+chr1 74425857 74425872 -V_VDR_Q3 1.74075e-06 - GGGGCAGTGTGGTGA
+chr1 74425874 74425892 -V_GCNF_01 5.34472e-07 - GACAAGTTCAAGGACAGC
+chr1 74425875 74425889 +V_PAX6_Q2 1.1137e-06 + CTGTCCTTGAACTT
+chr1 74425887 74425903 -V_EVI1_01 6.72177e-06 - AGACAAGAGGAGACAA
+chr1 74852058 74852071 -V_SP1_Q6 3.06772e-06 - GGGGGGTGGGGTG
+chr1 74852079 74852093 -V_E2A_Q2 4.16854e-06 - CCACCTGCCTGTGG
+chr1 74852080 74852098 +V_MYOD_Q6_01 6.49155e-06 + CACAGGCAGGTGGGTGAG
+chr1 74852084 74852092 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr1 74852107 74852115 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr1 74852107 74852116 -V_CKROX_Q2 8.90515e-06 - TCCCTCCCC
+chr1 74852134 74852143 -V_SMAD3_Q6 4.03003e-06 - TGTCTGTCT
+chr1 74852142 74852156 +V_E2A_Q2.4.58924e-06 + ACACCTGCCTCATT
+chr1 74852143 74852151 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr1 75443779 75443800 +V_PPARG_01 6.38257e-06 + TAGGAGTTCAAAGGTTGTATA
+chr1 75443782 75443793 -V_LEF1TCF1_Q4 7.79522e-06 - CCTTTGAACTC
+chr1 75443844 75443853 -V_T3R_Q6 8.74404e-06 - CCTGTCCTG
+chr1 75443852 75443862 +V_PR_Q2 2.01502e-06 + GAAAGAACAG
+chr1 75730327 75730339 -V_ICSBP_Q6 3.19698e-06 - GACCTGAAACTG
+chr1 75730335 75730348 -V_MAZR_01 5.26215e-08 - GGGGGGGGGGACC
+chr1 75730337 75730352 -V_VDR_Q3 5.07321e-06 - GGGGGGGGGGGGGGA
+chr1 75730338 75730347 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr1 75730338 75730349 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr1 75730338 75730352 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr1 75730339 75730348 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr1 75730339 75730350 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr1 75730339 75730353 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr1 75730340 75730349 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr1 75730340 75730351 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr1 75730340 75730354 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr1 75730341 75730350 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr1 75730341 75730352 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr1 75730341 75730355 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr1 75730342 75730351 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr1 75730342 75730353 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr1 75730342 75730356 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr1 75730343 75730352 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr1 75730343 75730354 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr1 75730343 75730357 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr1 75730344 75730353 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr1 75730344 75730355 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr1 75730344 75730358 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr1 75730345 75730354 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr1 75730345 75730356 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr1 75730346 75730355 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr1 75730346 75730357 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr1 75730347 75730356 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr1 75730347 75730358 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr1 75730348 75730357 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr1 75730348 75730359 +V_SP1SP3_Q4 6.44809e-06 + CCCCCCCCCCG
+chr1 75730349 75730358 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr1 75730349 75730360 +V_SP1SP3_Q4 1.26473e-06 + CCCCCCCCCGC
+chr1 75730349 75730360 -V_EGR_Q6 8.85524e-06 - GCGGGGGGGGG
+chr1 75730350 75730361 +V_SP1SP3_Q4 4.92153e-07 + CCCCCCCCGCC
+chr1 75730351 75730360 +V_WT1_Q6 3.00918e-06 + CCCCCCCGC
+chr1 75730352 75730365 -V_SP1_Q6 6.05961e-06 - GAAGGGCGGGGGG
+chr1 75730353 75730363 -V_SP1_Q6_01 7.15614e-06 - AGGGCGGGGG
+chr1 77184649 77184663 +V_ERR1_Q2 6.98967e-06 + TTATAAAGGTCACC
+chr1 77184659 77184677 -V_HNF3_Q6_01 5.49174e-06 - GTTTTTGTTTACTTGGTG
+chr1 77184662 77184676 -V_FOXO1_02 3.23597e-06 - TTTTTGTTTACTTG
+chr1 77184662 77184676 -V_FOXO4_02 4.51573e-06 - TTTTTGTTTACTTG
+chr1 77184724 77184738 +V_GATA1_02 9.46586e-06 + CTCAAGATAAGGGT
+chr1 80147315 80147334 -V_PPARA_02 2.80256e-06 - CCTGGTCAGAGAGGGGAAG
+chr1 80147335 80147351 -V_MAF_Q6 9.01376e-06 - TGGGGAGAAGTAGGCT
+chr1 80147351 80147362 -V_NFY_Q6 4.23487e-06 - GAACCAATCAC
+chr1 80147356 80147371 -V_STAT5A_01 2.17491e-06 - GATTTCTAGGAACCA
+chr1 80147394 80147405 +V_FLI1_Q6 1.42541e-06 + CAGGAAGTCAC
+chr1 80147446 80147461 -V_OCT4_02 6.55103e-06 - ATTTTGATGCTAATC
+chr1 80234187 80234202 +V_OCT4_01 2.45515e-06 + TTTTATAATGTAAAT
+chr1 80234207 80234222 +V_OCT4_01 1.25077e-07 + CTTTGTCATGTAAAT
+chr1 80234208 80234223 +V_OCT4_02 6.99193e-06 + TTTGTCATGTAAATA
+chr1 84848730 84848742 +V_MEIS1_01 9.12201e-06 + CTGTGACAGAGG
+chr1 84848738 84848747 -V_T3R_Q6 8.74404e-06 - CCTGTCCTC
+chr1 84848769 84848779 -V_GATA1_05 2.21291e-06 - GCTGATAACA
+chr1 84848802 84848813 -V_CP2_01 8.6781e-06 - GCTCGCCCCAG
+chr1 88504107 88504121 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr1 88504110 88504121 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr1 88504111 88504122 +V_SP1SP3_Q4 3.76147e-06 + CCCCCCCCCCA
+chr1 88504112 88504121 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr1 88504142 88504163 -V_PPARG_01 4.23426e-06 - CTGGAGGTCAATGGTCTCCTT
+chr1 88504145 88504157 +V_NANOG_01 9.66273e-06 + GAGACCATTGAC
+chr1 88504146 88504159 +V_PPAR_DR1_Q2 9.61169e-06 + AGACCATTGACCT
+chr1 88504188 88504198 -V_PR_Q2 2.92358e-06 - GAGAGAACAC
+chr1 88504220 88504235 -V_ETS1_B 6.49821e-06 - ACAGGAAAGGCCTGG
+chr1 89123058 89123069 -V_EVI1_02 5.19283e-06 - AGACAAGACAG
+chr1 89123067 89123082 +V_OCT4_01 2.64195e-06 + CTTTCTTATGCTAAC
+chr1 89123151 89123181 +V_PAX4_04 3.37904e-06 + AACAATAAAATCCTCTTCCCTGCCCACCCT
+chr1 89123169 89123188 -V_PPARA_02 5.21998e-06 - TGGGGTCAGGGTGGGCAGG
+chr1 89123171 89123186 -V_VDR_Q3 8.03963e-06 - GGGTCAGGGTGGGCA
+chr1 90329266 90329277 +V_HELIOSA_02 1.64093e-06 + TTAAGGAAAAC
+chr1 90329377 90329391 -V_ETS2_B 4.50829e-06 - GACAGGAAATGCTC
+chr1 90329384 90329412 +V_PAX5_01 7.26108e-06 + TCCTGTCTCAGTGATGTGTAAAGACTAT
+chr1 90562710 90562721 +V_HELIOSA_02 9.0104e-07 + TTAAGGAAAAA
+chr1 90818456 90818469 -V_PPAR_DR1_Q2 9.61169e-06 - AGACCTTTGCTCT
+chr1 90818513 90818541 +V_PAX5_01 6.77263e-06 + GAGACTCTCACTGAAGAGGGGAAGCCCT
+chr1 90818531 90818539 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr1 90869197 90869211 +V_ERR1_Q2 9.64315e-07 + AGATCAAGGTCACC
+chr1 90869200 90869209 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr1 90869236 90869249 +V_AP2_Q6_01 5.04624e-06 + CAGGCCCCGGGCT
+chr1 90869238 90869254 +V_AP2_Q3 2.01813e-06 + GGCCCCGGGCTACATG
+chr1 90869239 90869248 +V_AP2ALPHA_01 6.01835e-06 + GCCCCGGGC
+chr1 90869239 90869248 +V_AP2GAMMA_01 6.01835e-06 + GCCCCGGGC
+chr1 90869239 90869248 -V_AP2ALPHA_01 3.00918e-06 - GCCCGGGGC
+chr1 90869239 90869248 -V_AP2GAMMA_01 3.00918e-06 - GCCCGGGGC
+chr1 90869301 90869315 +V_FOXO4_02 6.75869e-06 + TGGTTGTTTTCCTG
+chr1 91210514 91210526 +V_LMO2COM_01 1.12825e-06 + CTCCAGGTGCAG
+chr1 91210638 91210657 +V_PU1_Q4 2.63808e-06 + AGCTTCTGCTTCCCCTTGC
+chr1 91767842 91767850 -V_CACD_01 9.89755e-06 - CCACACCC
+chr1 92011405 92011420 -V_OCT4_01 1.94673e-06 - CTTAGTGATGCAAAT
+chr1 92798002 92798021 -V_GR_Q6 1.32544e-06 - TGGACTGACTGTGTTCTTT
+chr1 92798094 92798107 -V_NRF2_Q4 6.83622e-07 - CTGCTGTGTCATT
+chr1 92798095 92798106 -V_MAF_Q6_01 6.24509e-06 - TGCTGTGTCAT
+chr1 92798117 92798129 +V_GABP_B 3.43288e-06 + ACCGGAAGAGCC
+chr1 93209972 93209985 -V_MAZR_01 5.4366e-06 - GGGGGAGGGGAGA
+chr1 93209975 93209984 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr1 93209975 93209985 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr1 93209976 93209984 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr1 93209976 93209985 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr1 93209980 93209998 -V_CMYB_01 1.71705e-07 - CCCGGCTACAGTTGGGGG
+chr1 93209990 93210004 +V_STAT3STAT3_Q3 6.47014e-06 + TAGCCGGGAACTGG
+chr1 94604216 94604235 -V_SEF1_C 3.81729e-06 - GAGAGGGAGTGCTGTGGTC
+chr1 94785937 94785949 +V_PAX4_03 1.74945e-06 + CAGCCCCACCCC
+chr1 94785939 94785949 -V_SP1_Q6_01 4.32232e-06 - GGGGTGGGGC
+chr1 94785950 94785965 +V_OCT4_02 6.14224e-06 + TTTGTCATTCTGATT
+chr1 94786001 94786011 +V_MYB_Q6 8.47717e-06 + CTTAACTGGC
+chr1 100774284 100774299 +V_VDRRXR_01 2.15195e-06 + GGGTCAAGGGCTTCG
+chr1 103815748 103815762 -V_BLIMP1_Q6 1.7645e-06 - AGACAGTGAAATGA
+chr1 106967756 106967780 -V_STAT5A_02 6.02621e-06 - TTCTAAGAATCCAGGTGCAGGGGA
+chr1 107838898 107838907 +V_T3R_Q6 3.30926e-06 + CCTGTCCTT
+chr1 107838911 107838923 -V_FOXD3_01 4.65347e-06 - GAATGTTAGTTT
+chr1 108461227 108461242 +V_ETS1_B 1.87346e-06 + AGAGGAAGGGCTTGG
+chr1 110038835 110038844 -V_AP1_C 7.33929e-06 - GTGAGTCAG
+chr1 119546979 119546991 +V_GATA4_Q3 9.72874e-06 + AGATCAAGGGGA
+chr1 120522128 120522143 +V_OCT1_Q6 9.769e-08 + GTCTATGCAAATCAC
+chr1 120522130 120522143 -V_OCT_C 7.89827e-06 - GTGATTTGCATAG
+chr1 120522131 120522141 +V_OCT1_B 1.34745e-06 + TATGCAAATC
+chr1 120522131 120522142 -V_OCT1_Q5_01 3.69944e-07 - TGATTTGCATA
+chr1 120522131 120522142 -V_OCT_Q6 3.69944e-07 - TGATTTGCATA
+chr1 120798901 120798913 +V_GFI1B_01 3.49689e-06 + TCAATCACTGCT
+chr1 120798925 120798939 +V_CDX2_Q5 1.68142e-06 + AAACTTTAATGGCC
+chr1 120798926 120798941 -V_IPF1_Q4_01 4.63901e-06 - TGGGCCATTAAAGTT
+chr1 120798941 120798949 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr1 120798989 120798997 +V_STAT3_02 9.89755e-06 + GGCTTCCC
+chr1 121016954 121016962 +V_CACD_01 9.89755e-06 + CCACACCC
+chr1 121765684 121765698 +V_POU3F2_01 5.10647e-06 + GTGCATTTATTTAT
+chr1 121765690 121765710 +V_FOXP1_01 2.07084e-06 + TTATTTATGTCGTCCATTGT
+chr1 124504015 124504038 -V_OCT1_04 5.21912e-06 - GAATTGATATGTAAATAAAAGAA
+chr1 124504022 124504037 -V_OCT4_01 1.18992e-06 - AATTGATATGTAAAT
+chr1 124504071 124504084 -V_NRF2_Q4 7.08564e-06 - ATGCTGTTTCATG
+chr1 124504135 124504150 -V_OCT4_01 7.41924e-06 - TTTTGTAATGTTAAA
+chr1 124504139 124504153 +V_CEBPA_01 9.88249e-06 + ACATTACAAAAGCA
+chr1 128025805 128025824 +V_PU1_Q4 8.38434e-06 + AGAGTTTAGTTCCTCTTTG
+chr1 128025882 128025900 +V_PIT1_Q6 8.99316e-06 + AATGCATTTTTATTCAGA
+chr1 128025891 128025914 +V_OCT1_04 7.18714e-06 + TTATTCAGATGCAAATGAACCGA
+chr1 128025892 128025907 +V_OCT4_01 8.06422e-07 + TATTCAGATGCAAAT
+chr1 128025893 128025908 +V_OCT4_02 1.8361e-07 + ATTCAGATGCAAATG
+chr1 128025921 128025940 -V_OCT1_01 1.3607e-06 - CTTCATATGCAAATCTGCT
+chr1 128025923 128025936 +V_OCT_C 3.7644e-06 + CAGATTTGCATAT
+chr1 128025924 128025935 +V_OCT1_Q5_01 5.83412e-06 + AGATTTGCATA
+chr1 128025924 128025935 +V_OCT_Q6 4.86692e-06 + AGATTTGCATA
+chr1 128025925 128025935 -V_OCT1_B 1.34745e-06 - TATGCAAATC
+chr1 128025941 128025955 +V_ETS2_B 1.18015e-07 + GACAGGAAGTCAGT
+chr1 128025943 128025954 +V_FLI1_Q6 2.65254e-06 + CAGGAAGTCAG
+chr1 128025943 128025955 -V_ETS_Q4 9.46272e-06 - ACTGACTTCCTG
+chr1 128975665 128975677 +V_PAX4_03 4.34194e-06 + CGTCCCCACCCC
+chr1 128975665 128975678 -V_MAZR_01 3.68108e-06 - GGGGGTGGGGACG
+chr1 128975668 128975678 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr1 128975669 128975678 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr1 128975669 128975680 -V_EGR_Q6 8.04446e-06 - GTGGGGGTGGG
+chr1 128975669 128975683 +V_KROX_Q6 6.89701e-06 + CCCACCCCCACCCT
+chr1 128975671 128975683 +V_PAX4_03 2.70808e-06 + CACCCCCACCCT
+chr1 128975675 128975684 -V_CACBINDINGPROTEIN_Q6 2.23138e-06 - GAGGGTGGG
+chr1 128975698 128975712 -V_NFY_C 3.50995e-06 - ACTGAGTGGCTACT
+chr1 129991480 129991492 +V_LMO2COM_01 6.99984e-06 + CCCCAGGTGCCT
+chr1 130289194 130289207 -V_SOX_Q6 2.73292e-06 - CTCTTTGATATGT
+chr1 130703009 130703021 -V_LRH1_Q5 3.06315e-07 - CTGGCCTTGAAC
+chr1 130703048 130703057 +V_AP2ALPHA_01 3.00918e-06 + GCCCGGGGC
+chr1 130703048 130703057 +V_AP2GAMMA_01 3.00918e-06 + GCCCGGGGC
+chr1 130703048 130703057 -V_AP2ALPHA_01 6.01835e-06 - GCCCCGGGC
+chr1 130703048 130703057 -V_AP2GAMMA_01 6.01835e-06 - GCCCCGGGC
+chr1 130703072 130703082 +V_NCX_01 7.33929e-06 + GGGTAATTGG
+chr1 130703092 130703110 +V_GCNF_01 2.9359e-06 + TGGAAGGTCAAGTTCTTG
+chr1 130703093 130703103 -V_NUR77_Q5 8.43564e-06 - TTGACCTTCC
+chr1 133275033 133275052 -V_PU1_Q4 2.09001e-07 - TCCCCTCCCTTCCTCTTTC
+chr1 133275036 133275051 +V_ETS1_B 6.49821e-06 + AGAGGAAGGGAGGGG
+chr1 133275043 133275062 -V_PU1_Q4 5.81356e-06 - TCCCTCCTCTTCCCCTCCC
+chr1 133275053 133275067 +V_BLIMP1_Q6 6.44273e-06 + GAGGAGGGAAAGTC
+chr1 133275122 133275132 +V_IK_Q5 1.97133e-06 + GTTGGGAGGC
+chr1 133275393 133275408 +V_ETS1_B 9.14128e-08 + CCAGGAAGTGCTTCC
+chr1 133275394 133275405 +V_FLI1_Q6 7.204e-06 + CAGGAAGTGCT
+chr1 133275394 133275406 -V_ETS_Q4 6.38093e-07 - AAGCACTTCCTG
+chr1 134645705 134645735 +V_PAX4_04 6.29241e-06 + GGCAAATACCCTGCCCCTGGGCCCCACCCC
+chr1 134747540 134747551 -V_SP1SP3_Q4 7.42043e-06 - CCCCCACCTCC
+chr1 134747578 134747597 -V_OCT1_01 2.91073e-06 - TCTGTTATGCAAATGTGGC
+chr1 134747580 134747593 +V_OCT_C 4.58343e-06 + CACATTTGCATAA
+chr1 134747581 134747592 +V_OCT_Q6 7.02042e-06 + ACATTTGCATA
+chr1 134747582 134747592 -V_OCT1_B 4.33582e-06 - TATGCAAATG
+chr1 134747583 134747598 -V_OCT4_01 4.28625e-06 - TTCTGTTATGCAAAT
+chr1 134747612 134747622 -V_KAISO_01 5.02834e-06 - CTCCTGCTAA
+chr1 134775638 134775653 +V_CP2_02 2.79448e-06 + GCTGGGCTCAGCTGG
+chr1 135150186 135150199 +V_GATA1_04 1.94529e-06 + GGCAGATAAGGCT
+chr1 135150276 135150289 +V_AP2_Q6_01 4.11454e-06 + CTGCCCTCAGGCC
+chr1 135150323 135150333 +V_IK_Q5 6.1263e-07 + GTTGGGAGGG
+chr1 135687234 135687250 +V_AP2_Q3 2.48033e-06 + AGCCGCAGGCTGTAGC
+chr1 135687324 135687338 +V_ERR1_Q2 5.40592e-06 + CAGTCAAGGTCATA
+chr1 135687327 135687336 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr1 135830016 135830030 -V_ERR1_Q2 5.89079e-06 - CACTCAAGGTCAGA
+chr1 135830018 135830027 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr1 135830049 135830068 -V_ER_Q6 2.69428e-06 - ACATAGCACTGTGACCTGG
+chr1 135830050 135830061 +V_ER_Q6_02 2.03804e-06 + CAGGTCACAGT
+chr1 136275841 136275852 +V_PAX_Q6 6.2248e-07 + CTGGGACTCAC
+chr1 136275862 136275875 +V_AP2_Q6_01 3.58329e-06 + CCTGCCCCAGGCT
+chr1 137082767 137082776 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr1 137082767 137082777 -V_NUR77_Q5 2.98426e-06 - CTGACCTTGG
+chr1 137660247 137660261 +V_KROX_Q6 3.79201e-06 + CCTGCCCCCTCCTC
+chr1 137660331 137660350 -V_PU1_Q4 7.43608e-06 - CACCTCCCCTTCCCCCTAC
+chr1 138652719 138652734 +V_DMRT1_01 2.87544e-07 + ATGAAACATTGTTGC
+chr1 138652721 138652736 -V_DMRT1_01 7.31766e-07 - TAGCAACAATGTTTC
+chr1 138869404 138869412 +V_CACD_01 9.89755e-06 + CCACACCC
+chr1 138869466 138869482 -V_AP2_Q3 4.16477e-06 - GCCCCAGGGCTGAGAT
+chr1 138869547 138869565 +V_FOXJ2_01 4.32538e-06 + CTCAAAACAAACAAACAC
+chr1 138869549 138869562 +V_HNF3_Q6 3.26963e-06 + CAAAACAAACAAA
+chr1 138869550 138869563 -V_FOX_Q2 6.74059e-07 - GTTTGTTTGTTTT
+chr1 138869550 138869563 -V_HFH3_01 5.62995e-06 - GTTTGTTTGTTTT
+chr1 138869550 138869563 -V_HFH4_01 5.28594e-06 - GTTTGTTTGTTTT
+chr1 138869551 138869563 -V_FOXD3_01 9.66278e-07 - GTTTGTTTGTTT
+chr1 138869551 138869569 +V_FOXJ2_01 1.11381e-06 + AAACAAACAAACACACAA
+chr1 138869551 138869571 -V_FOXP1_01 8.15563e-06 - GTTTGTGTGTTTGTTTGTTT
+chr1 138869553 138869566 +V_HNF3_Q6 9.93672e-06 + ACAAACAAACACA
+chr1 138869554 138869567 -V_HFH3_01 5.62995e-06 - GTGTGTTTGTTTG
+chr1 138869554 138869567 -V_HFH4_01 6.7208e-06 - GTGTGTTTGTTTG
+chr1 138906991 138907002 -V_GATA_C 2.4.548e-07 - AGATAAGGCCT
+chr1 138907019 138907035 -V_NFY_01 8.76397e-06 - TCCGGCCAATCAGCCT
+chr1 138907021 138907035 +V_NFY_C 7.05847e-06 + GCTGATTGGCCGGA
+chr1 140102660 140102672 +V_VDR_Q6 9.41602e-06 + CAGGGTGAACCT
+chr1 141391402 141391417 +V_OCT4_01 2.64195e-06 + CATTGTTATTCAAAC
+chr1 141391450 141391468 -V_GCNF_01 5.11581e-07 - CTCTAGTTCAAGTTCCCT
+chr1 147824869 147824884 +V_VDRRXR_01 2.15195e-06 + GGGTCAAGGGCTTCG
+chr1 152344166 152344176 -V_NFAT_Q4_01 4.46892e-06 - GTGGAAACTT
+chr1 152344235 152344250 +V_OCT4_01 1.8064e-07 + CTTTCATATGCAAAT
+chr1 152344236 152344251 +V_OCT4_02 2.4.503e-06 + TTTCATATGCAAATG
+chr1 152344236 152344255 +V_OCT1_01 5.98378e-06 + TTTCATATGCAAATGATGG
+chr1 152344239 152344253 -V_OCT1_05 5.36356e-07 - ATCATTTGCATATG
+chr1 152344240 152344253 -V_OCT_C 3.09708e-07 - ATCATTTGCATAT
+chr1 152344241 152344251 +V_OCT1_B 4.33582e-06 + TATGCAAATG
+chr1 152344241 152344252 -V_OCT1_Q5_01 1.56035e-06 - TCATTTGCATA
+chr1 152344241 152344252 -V_OCT_Q6 7.39888e-07 - TCATTTGCATA
+chr1 153117909 153117924 -V_VDR_Q3 3.12027e-06 - GGGGGAGGGGAGAGA
+chr1 153117911 153117924 -V_MAZR_01 5.4366e-06 - GGGGGAGGGGAGA
+chr1 153117914 153117923 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr1 153117914 153117924 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr1 153117915 153117923 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr1 153117915 153117924 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr1 153117954 153117971 +V_PU1_01 7.07495e-06 + AGGAAGAGGAAGTTGAG
+chr1 153117955 153117967 +V_ELF1_Q6 1.24724e-07 + GGAAGAGGAAGT
+chr1 153117955 153117974 -V_PU1_Q4 3.23812e-06 - TTTCTCAACTTCCTCTTCC
+chr1 153362987 153363000 -V_MAZR_01 3.51639e-06 - TGGGGTGGGGCAA
+chr1 153362989 153362999 -V_SP1_Q6_01 4.32232e-06 - GGGGTGGGGC
+chr1 153363075 153363088 -V_NRF2_Q4 5.51501e-06 - ATCCTGTGTCATG
+chr1 153363085 153363097 +V_SRY_02 6.38319e-07 + GATAACAATAGG
+chr1 153421828 153421836 +V_CACD_01 9.89755e-06 + CCACACCC
+chr1 153902464 153902472 -V_CACD_01 9.89755e-06 - CCACACCC
+chr1 154790321 154790336 -V_OCT4_02 3.74554e-06 - ATTGAGTTGCAAAGC
+chr1 154974452 154974465 +V_AP2_Q6_01 6.27133e-06 + CCTTCCCCAGGCT
+chr1 154974480 154974494 -V_PAX6_Q2 9.3218e-06 - CTAACCTTGAACTA
+chr1 154974482 154974494 -V_LRH1_Q5 4.03654e-06 - CTAACCTTGAAC
+chr1 155928821 155928831 -V_IK_Q5 6.81053e-06 - TGTGGGAGGG
+chr1 155928844 155928859 +V_HNF1_01 8.0706e-06 + GGTTAATTTATATCC
+chr1 156873322 156873333 +V_ER_Q6_02 5.23837e-06 + CAGGTCATGCT
+chr1 156873352 156873365 +V_IRF1_01 7.14671e-06 + CAAAAGCAAAAGT
+chr1 156873369 156873385 +V_AP2_Q3 2.01813e-06 + AGCCCCAGGCTGTGGA
+chr1 159661452 159661466 -V_ERR1_Q2 7.60856e-06 - TTTTCAAGGTCACC
+chr1 159661454 159661463 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr1 159661499 159661514 -V_DMRT1_01 1.3931e-06 - CTGCAACATTGTATT
+chr1 159661504 159661517 +V_DMRT4_01 4.04016e-06 + AATGTTGCAGATT
+chr1 159661542 159661557 -V_DMRT1_01 1.3931e-06 - CTGCAACATTGTATT
+chr1 159661547 159661560 +V_DMRT4_01 4.04016e-06 + AATGTTGCAGATT
+chr1 162830009 162830023 -V_ERR1_Q2 4.94927e-06 - TCGTCAAGGTCAGT
+chr1 162830011 162830020 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr1 163846342 163846357 +V_CP2_02 1.02428e-06 + GCTTGGTTGAGCTGG
+chr1 163846343 163846354 -V_CP2_01 6.98842e-06 - GCTCAACCAAG
+chr1 163846386 163846398 +V_GATA4_Q3 4.69606e-06 + AGAAAGCAGGCA
+chr1 163892714 163892726 -V_LRH1_Q5 9.2187e-06 - GGGGCCTTGCAG
+chr1 165950112 165950127 +V_OCT4_02 9.10747e-06 + ATTGTTATGGAAATT
+chr1 165950115 165950129 -V_OCT1_05 7.59056e-06 - ATAATTTCCATAAC
+chr1 165950155 165950167 -V_MEIS1_01 2.84527e-06 - TACTGACAGGTC
+chr1 165950156 165950167 +V_TGIF_01 5.10679e-06 + ACCTGTCAGTA
+chr1 167600334 167600348 -V_E2A_Q2 2.75062e-06 - CCACCTGACTCTGG
+chr1 167600335 167600353 +V_MYOD_Q6_01 2.53487e-06 + CAGAGTCAGGTGGAGAGG
+chr1 167600338 167600348 -V_EBOX_Q6_01 7.18016e-06 - CCACCTGACT
+chr1 167600372 167600385 -V_AP2_Q6_01 4.11454e-06 - CTGGCCCCAGGCT
+chr1 167600394 167600409 -V_DMRT1_01 5.76016e-06 - TTGTTACACTGTATC
+chr1 167625729 167625738 +V_PAX2_02 7.33929e-06 + CACAAACCC
+chr1 168065426 168065437 +V_ALPHACP1_01 7.72372e-06 + CAGCCAAAGAG
+chr1 168072633 168072645 +V_MYOD_01 8.76432e-06 + GCACAGGTGGCT
+chr1 172433187 172433201 -V_E2A_Q2 8.03505e-06 - ACACCTGCCTTTGG
+chr1 172433192 172433200 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr1 172433227 172433235 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr1 172433241 172433252 +V_E12_Q6 2.62103e-06 + AGCAGGTGCCA
+chr1 172433271 172433289 -V_PAX1_B 2.87605e-06 - TCCTTCCCCTCTAGATAG
+chr1 172897927 172897942 -V_HES1_Q2 8.82762e-06 - AGCCCTTGTGCTCAG
+chr1 172897945 172897964 -V_PU1_Q4 8.38434e-06 - TCCACCCGTTTCCGCTTTT
+chr1 172898012 172898027 -V_ETS1_B 9.4683e-06 - GCAGGAAATGGGGTG
+chr1 172947104 172947119 -V_IRF_Q6 6.88031e-06 - GGCACTTTCTGTTTT
+chr1 172947118 172947129 +V_PAX_Q6 1.53104e-06 + CTGGAACACAC
+chr1 172.4.510 172.4.520 +V_GATA6_01 9.61771e-06 + ACAGATAAGC
+chr1 174008272 174008295 -V_COUPTF_Q6 2.76893e-06 - GGGGCTGGACTCTGGCCATTTCC
+chr1 174008277 174008291 +V_HNF4_Q6_01 5.6237e-06 + TGGCCAGAGTCCAG
+chr1 174008289 174008302 -V_SP1_Q6 2.24727e-07 - GAGGGGCGGGGCT
+chr1 174008290 174008300 -V_SP1_Q6_01 3.39206e-07 - GGGGCGGGGC
+chr1 174008291 174008300 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr1 174008291 174008301 +V_SP1_Q2_01 1.0915e-06 + CCCCGCCCCT
+chr1 177380252 177380272 +V_P53_01 4.35606e-06 + GGGCAAGTCCAGGCAAGTCA
+chr1 177380252 177380272 -V_P53_01 9.49605e-06 - TGACTTGCCTGGACTTGCCC
+chr1 177380297 177380311 -V_NFY_C 2.32724e-06 - TCTGATTGGCCGCC
+chr1 177380297 177380313 +V_NFY_01 8.75476e-07 + GGCGGCCAATCAGAAA
+chr1 177380384 177380392 +V_STAT3_02 9.89755e-06 + GGCTTCCC
+chr1 177380408 177380416 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr1 177380408 177380417 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr1 177380411 177380426 -V_VDR_Q3 7.57997e-06 - GGGTGTAGAGGGGGA
+chr1 179201765 179201776 +V_NFE2_01 1.48643e-06 + AGCTGAGTCAC
+chr1 179201765 179201778 -V_AP1_01 4.64041e-06 - CAGTGACTCAGCT
+chr1 179201766 179201777 -V_AP1FJ_Q2 7.39364e-06 - AGTGACTCAGC
+chr1 179201766 179201777 -V_AP1_Q6 6.96691e-06 - AGTGACTCAGC
+chr1 179201766 179201777 -V_AP1_Q4 4.30412e-06 - AGTGACTCAGC
+chr1 179917810 179917824 +V_BLIMP1_Q6 9.34292e-07 + GGGAAGTGAAATTA
+chr1 179917837 179917861 -V_COMP1_01 7.78753e-06 - TGTGTTGATTGCCCAGGTGCAGTT
+chr1 179917839 179917851 -V_LMO2COM_01 1.00127e-06 - GCCCAGGTGCAG
+chr1 179917858 179917874 -V_DMRT2_01 2.82546e-07 - CAATTTGATCCATTGT
+chr1 1802.4.55 180214255 -V_NFKAPPAB_01 8.50103e-06 - GGGACATCCC
+chr1 180214264 180214279 +V_OCT4_02 1.90479e-06 + ATTCAGTTGCAAATT
+chr1 180214302 180214312 -V_IK_Q5 7.92622e-06 - TCTGGGAGGC
+chr1 183672575 183672590 -V_TAXCREB_02 8.74723e-06 - GTGACTCATCTGCCC
+chr1 183672578 183672593 +V_BACH1_01 6.95412e-06 + CAGATGAGTCACACC
+chr1 184111741 184111752 -V_RORA_Q4 9.0465e-06 - AAGGTGGGTCA
+chr1 186929017 186929027 -V_IK_Q5 6.81053e-06 - CTTGGGAGGG
+chr1 186929286 186929301 -V_HMGIY_Q3 6.87308e-06 - AAGTGAATTTCCTGT
+chr1 186929405 186929429 +V_BRACH_01 8.49606e-06 + CACGTGGCTCCTAGATTTCAAATG
+chr1 186987545 186987558 +V_DMRT4_01 4.78132e-06 + AAAGTAACAATGT
+chr1 188334590 188334604 -V_E2A_Q2 9.11856e-06 - CCAGCTGCCCTGGC
+chr1 188334591 188334609 +V_MYOD_Q6_01 8.20048e-06 + CCAGGGCAGCTGGAGATC
+chr1 188334595 188334605 -V_TAL1_Q6 1.3587e-06 - TCCAGCTGCC
+chr1 188334606 188334619 +V_OCT_C 5.21366e-06 + ATCATTTTCATGC
+chr1 188334608 188334623 +V_OCT4_01 3.90219e-07 + CATTTTCATGCAAAT
+chr1 188334609 188334624 +V_OCT4_02 5.30392e-06 + ATTTTCATGCAAATC
+chr1 188334614 188334624 +V_OCT1_B 5.44227e-06 + CATGCAAATC
+chr1 188334636 188334649 -V_IK3_01 2.21214e-06 - GACTAGGAATACC
+chr1 188337801 188337822 -V_HNF1_Q6_01 3.14522e-06 - TACATTTAATTATTAACACAA
+chr1 188337803 188337821 +V_HNF1_Q6 3.11661e-06 + GTGTTAATAATTAAATGT
+chr1 188337855 188337865 +V_NFAT_Q4_01 8.89473e-06 + GTGGAAAAAC
+chr1 188337859 188337868 +V_FOXO1_Q5 7.27852e-06 + AAAAACAAA
+chr1 188337862 188337880 -V_HNF3_Q6_01 1.59658e-06 - TTGTTTGTTTGGTTTGTT
+chr1 188337866 188337884 -V_HNF3_Q6_01 2.56333e-06 - GTTTTTGTTTGTTTGGTT
+chr1 188337866 188337886 -V_FOXP1_01 1.4652e-06 - TTGTTTTTGTTTGTTTGGTT
+chr1 188337868 188337881 +V_HNF3_Q6 7.04647e-06 + CCAAACAAACAAA
+chr1 188337869 188337882 -V_HFH4_01 5.28594e-06 - TTTTGTTTGTTTG
+chr1 188337870 188337882 -V_FOXD3_01 9.53633e-06 - TTTTGTTTGTTT
+chr1 188337870 188337890 -V_FOXP1_01 7.72751e-06 - GTTTTTGTTTTTGTTTGTTT
+chr1 188337878 188337887 +V_FOXO1_Q5 7.27852e-06 + AAAAACAAA
+chr1 188337889 188337908 -V_PPARA_02 7.16879e-07 - TAGGGTGCTTAGGGTCAGG
+chr1 188337907 188337922 +V_SPZ1_01 6.09777e-07 + AGAGGAGGGTTGGGC
+chr1 188337940 188337953 +V_STAT_Q6 5.58101e-06 + ACCATTTCTGGGA
+chr1 188337967 188337985 -V_MYOD_Q6_01 9.19422e-06 - CGGACCCAGCTGCCTGAG
+chr1 189627584 189627597 +V_SP1_Q6 5.65055e-06 + GAGGGGCGGGCTC
+chr1 189627586 189627595 -V_CKROX_Q2 6.67377e-06 - GCCCGCCCC
+chr1 189627661 189627675 -V_HNF4_Q6_01 9.45536e-06 - GGGGCAAAGTTCCT
+chr1 189627662 189627675 +V_PPAR_DR1_Q2 3.33435e-06 + GGAACTTTGCCCC
+chr1 189627662 189627675 +V_HNF4_DR1_Q3 3.4109e-06 + GGAACTTTGCCCC
+chr1 189627662 189627675 +V_COUP_DR1_Q6 6.43692e-06 + GGAACTTTGCCCC
+chr1 189627662 189627675 -V_DR1_Q3 4.56975e-06 - GGGGCAAAGTTCC
+chr1 189627662 189627682 -V_PPARA_01 9.02914e-06 - GAAGCCTGGGGCAAAGTTCC
+chr1 189627693 189627714 -V_NRSE_B 4.04314e-06 - TGTAGCAAAACGGCGAGAGCC
+chr1 190678268 190678283 +V_OCT4_01 1.96957e-07 + AATTCTCATGCAAAT
+chr1 190678269 190678284 +V_OCT4_02 3.11818e-08 + ATTCTCATGCAAATG
+chr1 190678334 190678345 -V_CP2_01 6.98842e-06 - GCAATACCCAG
+chr1 190678347 190678370 +V_OCT1_04 9.07554e-06 + GGATTCAAATGCAAATCTGTCCA
+chr1 190678348 190678363 +V_OCT4_01 6.91054e-06 + GATTCAAATGCAAAT
+chr1 190678349 190678364 +V_OCT4_02 7.51249e-06 + ATTCAAATGCAAATC
+chr1 190678354 190678364 +V_OCT1_B 8.43065e-06 + AATGCAAATC
+chr1 191534980 191534999 +V_PPARA_02 1.5841e-06 + TGTGGTCCATGGGGTGGGG
+chr1 191534986 191535001 -V_SREBP_Q6 6.48026e-06 - ACCCCCACCCCATGG
+chr1 191534986 191535001 -V_SREBP1_Q5 7.63808e-06 - ACCCCCACCCCATGG
+chr1 191534990 191535002 -V_PAX4_03 2.40392e-07 - CACCCCCACCCC
+chr1 191534990 191535004 -V_KROX_Q6 2.21131e-07 - CCCACCCCCACCCC
+chr1 191534993 191535004 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr1 191534995 191535004 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr1 191534995 191535005 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr1 191534995 191535006 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr1 191534996 191535008 -V_PAX4_03 3.63034e-06 - GTCCCCCACCCC
+chr1 191670302 191670316 -V_BLIMP1_Q6 7.33178e-06 - AGGCAGGGAGAGGA
+chr1 191677087 191677106 -V_GR_Q6 6.78487e-06 - AGGTTTCTCTCTGTTCTCT
+chr1 191677125 191677135 -V_SP1_Q2_01 9.56538e-06 - CCCCTCCCAC
+chr1 191677194 191677204 -V_P53_DECAMER_Q2 6.84641e-06 - GGACAAGCCC
+chr1 191677215 191677231 -V_MAF_Q6 2.6445e-06 - AAGTGGGAAGTGTCCT
+chr1 191703944 191703959 +V_CP2_02 9.87124e-06 + GCTGGTTCCTGCAGG
+chr1 191885654 191885673 -V_NRSF_Q4 9.16904e-06 - GAACAGACCCCGGAGCTGG
+chr1 191885682 191885694 -V_GCM_Q2 8.6863e-06 - CCCGCCCTCATT
+chr1 191885684 191885697 +V_SP1_Q6 3.53849e-06 + TGAGGGCGGGGTG
+chr1 191885685 191885695 -V_SP1_Q2_01 2.74385e-06 - CCCCGCCCTC
+chr1 191885686 191885696 +V_SP1_Q6_01 8.48538e-06 + AGGGCGGGGT
+chr1 193263059 193263073 +V_BLIMP1_Q6 5.74624e-06 + TAAAAGGGAAATGA
+chr1 194339391 194339406 -V_DMRT5_01 5.41829e-06 - ATTTGTGACTTTGTC
+chr1 194339409 194339428 +V_PPARA_02 8.71814e-06 + AAAGGTTAGAAGGGTGTGG
+chr1 194339420 194339428 -V_CACD_01 9.89755e-06 - CCACACCC
+chr1 194339450 194339465 +V_OCT4_01 3.49929e-06 + CTTACAAATGCAAAT
+chr1 194339526 194339540 +V_COUP_01 3.17357e-06 + TGAACCCTGAACTT
+chr1 194500908 194500917 -V_SMAD3_Q6 4.03003e-06 - TGTCTGTCT
+chr1 194500912 194500921 -V_SMAD3_Q6 4.03003e-06 - TGTCTGTCT
+chr1 194500946 194500959 -V_AP2_Q6_01 5.59926e-06 - CTCCCCTCAGGCC
+chr1 194500954 194500972 +V_MYOD_Q6_01 7.30593e-06 + GGGAGGCAGGTGCTACAG
+chr1 194500958 194500966 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr1 194500958 194500968 -V_MYOD_Q6 2.71739e-06 - AGCACCTGCC
+chr1 195172341 195172353 -V_FOXO3A_Q1 2.20887e-06 - TGTAAACAAGAA
+chr1 195172341 195172355 +V_FOXO1_02 4.95016e-06 + TTCTTGTTTACAGC
+chr1 195172416 195172431 +V_DMRT1_01 3.89932e-06 + GTGATACAATGTATC
+chr1 195172418 195172433 -V_DMRT1_01 1.47483e-07 - TGGATACATTGTATC
+chr10 3976799 3976813 +V_NFKB_Q6 6.39997e-06 + CTGGGACTTCCCTC
+chr10 3976800 3976812 +V_NFKB_C 6.01374e-06 + TGGGACTTCCCT
+chr10 3976800 3976816 -V_NFKB_Q6_01 7.57961e-06 - CTGGAGGGAAGTCCCA
+chr10 3976801 3976811 +V_NFKAPPAB_01 2.26726e-06 + GGGACTTCCC
+chr10 5971088 5971102 -V_BLIMP1_Q6 4.78735e-06 - GGGAAGGCAAAGGA
+chr10 5971106 5971119 -V_AP2_Q6_01 2.71709e-06 - GCTGCCCCAGGCC
+chr10 5971134 5971153 +V_PU1_Q4 2.29683e-06 + AAAATCCATTTCCTCTTCC
+chr10 5971141 5971153 -V_ELF1_Q6 4.96989e-07 - GGAAGAGGAAAT
+chr10 6454460 6454472 -V_ETS_Q4 4.90737e-06 - AGCCTCTTCCTG
+chr10 6454513 6454528 -V_OCT4_01 3.49929e-06 - TTTTCTTATGCAGAG
+chr10 6454556 6454568 +V_PAX4_03 6.56043e-06 + AACTCCCACCCT
+chr10 6699820 6699832 +V_ELF1_Q6 2.57537e-06 + AGTAGAGGAAAT
+chr10 6699824 6699839 +V_VDR_Q3 3.12027e-06 + GAGGAAATGGGGAGA
+chr10 6699829 6699846 +V_PPARG_03 6.5877e-06 + AATGGGGAGAAAGGTCA
+chr10 6699829 6699850 +V_PPARG_01 1.31569e-06 + AATGGGGAGAAAGGTCAAGGA
+chr10 6699833 6699846 +V_DR1_Q3 3.32775e-06 + GGGAGAAAGGTCA
+chr10 6699833 6699846 -V_PPAR_DR1_Q2 2.01522e-06 - TGACCTTTCTCCC
+chr10 6699833 6699846 -V_COUP_DR1_Q6 7.13646e-06 - TGACCTTTCTCCC
+chr10 6699939 6699955 -V_GRE_C 3.56707e-06 - GGAACCAAATGTCCTG
+chr10 6699961 6699975 +V_ERR1_Q2 6.98967e-06 + TGCTAAAGGTCAAG
+chr10 7311831 7311842 -V_ER_Q6_02 7.31305e-06 - CAGGTCAGCCT
+chr10 7311834 7311848 +V_PAX6_Q2 5.44152e-07 + CTGACCTGGAAAGC
+chr10 7331635 7331647 +V_PAX4_03 2.12865e-06 + CATCTCCACCCC
+chr10 7331643 7331655 +V_LMO2COM_01 2.70597e-06 + CCCCAGGTGGTC
+chr10 7331670 7331682 +V_LMO2COM_01 2.70597e-06 + CCCCAGGTGGTC
+chr10 7852795 7852804 +V_CACBINDINGPROTEIN_Q6 2.23138e-06 + GAGGGTGGG
+chr10 7852796 7852808 -V_PAX4_03 2.70808e-06 - CACCCCCACCCT
+chr10 7852796 7852810 -V_KROX_Q6 6.89701e-06 - CCCACCCCCACCCT
+chr10 7852799 7852810 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr10 7852801 7852810 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr10 7852801 7852811 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr10 7852801 7852814 +V_MAZR_01 2.79447e-06 + GGGGGTGGGGCAC
+chr10 7852802 7852812 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr10 7852876 7852890 -V_KROX_Q6 4.70749e-06 - GCTGCCCCCACCAC
+chr10 7852879 7852890 +V_EGR_Q6 7.33045e-07 + GTGGGGGCAGC
+chr10 8609373 8609386 -V_NKX61_01 2.30763e-06 - CATTTAATTGCTT
+chr10 8609422 8609437 -V_OCT4_01 5.63049e-06 - CATTCTTATTCAAAC
+chr10 10716709 10716726 +V_PU1_01 2.4.541e-06 + AAAAAGGGGAACTCTGA
+chr10 10716710 10716729 -V_PU1_Q4 8.89634e-06 - TCCTCAGAGTTCCCCTTTT
+chr10 12637452 12637465 -V_HFH4_01 6.29512e-06 - ATTAGTTTGTTTT
+chr10 16922972 16922985 +V_SOX_Q6 6.72413e-07 + CTCTTTGTTATAA
+chr10 17105089 17105098 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr10 17105089 17105099 -V_NUR77_Q5 8.43564e-06 - TTGACCTTGG
+chr10 18354375 18354393 +V_CMYB_01 8.65468e-06 + CCCAATGGTGGTTGTGAG
+chr10 18354377 18354390 +V_ZEC_01 2.98628e-06 + CAATGGTGGTTGT
+chr10 18364247 18364256 +V_SMAD_Q6 2.71739e-06 + AGACACCCC
+chr10 18364252 18364262 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr10 18364253 18364262 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr10 18364254 18364262 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr10 18364290 18364305 -V_OCT4_01 2.45515e-06 - CTTTGATATGTAAAA
+chr10 18364366 18364377 -V_ER_Q6_02 7.31305e-06 - AAGGTCAGGGT
+chr10 18364369 18364379 +V_NUR77_Q5 8.43564e-06 + CTGACCTTTC
+chr10 18688009 18688024 -V_DMRT5_01 3.84969e-06 - TGTTGTAACTGTTTA
+chr10 19092174 19092184 +V_SOX5_01 4.92279e-06 + TTAACAATAG
+chr10 19124300 19124310 -V_SOX5_01 9.25861e-06 - TTAACAATGC
+chr10 19124360 19124373 +V_SP1_Q6 6.51994e-06 + GAGGGGTGGGGCT
+chr10 19124361 19124371 -V_SP1_Q2_01 9.56538e-06 - CCCCACCCCT
+chr10 19124362 19124372 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr10 19124362 19124374 -V_PAX4_03 1.74945e-06 - CAGCCCCACCCC
+chr10 19124433 19124448 +V_SMAD4_Q6 3.63904e-06 + GGCAGTCAGTCACCC
+chr10 20821883 20821898 +V_OCT4_01 2.28618e-06 + ATTTGACATGCTAAT
+chr10 20821884 20821899 +V_OCT4_02 5.70458e-07 + TTTGACATGCTAATT
+chr10 20821973 20821985 +V_LMO2COM_01 6.44862e-06 + GGCCAGCTGCTG
+chr10 20821974 20821984 +V_TAL1_Q6 3.62595e-06 + GCCAGCTGCT
+chr10 20822032 20822046 -V_OCT1_06 5.74443e-06 - CATAATTACATTCA
+chr10 20822035 20822058 +V_OCT1_04 3.74994e-06 + ATGTAATTATGCAAATCCTTCCC
+chr10 20822037 20822056 +V_OCT1_01 4.33944e-06 + GTAATTATGCAAATCCTTC
+chr10 20822039 20822054 +V_OCT1_Q6 9.91069e-06 + AATTATGCAAATCCT
+chr10 21430780 21430791 +V_LEF1TCF1_Q4 1.86451e-06 + CCTTTGTTGTT
+chr10 21430791 21430801 -V_TBX5_Q5 1.65463e-06 - CTCACACCTG
+chr10 23526109 23526118 +V_FOXO1_Q5 7.27852e-06 + AAAAACAAA
+chr10 23526193 23526208 -V_HES1_Q2 1.75607e-06 - AAGGCGTGTGCCCGG
+chr10 23526203 23526213 -V_LEF1_Q2_01 5.84716e-06 - GATCAAAGGC
+chr10 23526204 23526215 +V_LEF1TCF1_Q4 2.36341e-06 + CCTTTGATCCT
+chr10 24278317 24278328 +V_AP1_Q4 9.46297e-06 + AGTGACTCATT
+chr10 24278361 24278373 -V_OCT1_07 1.65282e-06 - TTTATGTTAATT
+chr10 24278362 24278372 -V_POU3F2_02 1.99833e-06 - TTATGTTAAT
+chr10 24278373 24278385 -V_OCT1_07 9.35808e-06 - CTTATGTTAATT
+chr10 24278374 24278384 -V_POU3F2_02 1.99833e-06 - TTATGTTAAT
+chr10 24278374 24278389 -V_OCT4_01 6.02107e-06 - AATTCTTATGTTAAT
+chr10 24278417 24278431 -V_BLIMP1_Q6 7.33178e-06 - TGTAAGGGAAAGGA
+chr10 24523636 24523645 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr10 24523636 24523646 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr10 24523636 24523647 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr10 24523637 24523649 -V_PAX4_03 2.40392e-07 - CACCCCCACCCC
+chr10 24523637 24523651 -V_KROX_Q6 2.21131e-07 - CCCACCCCCACCCC
+chr10 24523640 24523651 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr10 24523641 24523654 +V_SP1_Q6 8.76141e-06 + TGGGGGTGGGGGG
+chr10 24523642 24523651 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr10 24523642 24523652 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr10 24523642 24523653 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr10 24523642 24523657 +V_VDR_Q3 4.22722e-06 + GGGGGTGGGGGGTGG
+chr10 24523643 24523655 -V_PAX4_03 5.05761e-06 - ACCCCCCACCCC
+chr10 24523644 24523658 -V_KROX_Q6 5.9833e-06 - CCCACCCCCCACCC
+chr10 24523645 24523660 +V_SPZ1_01 2.6946e-06 + GGTGGGGGGTGGGGC
+chr10 24523648 24523661 +V_SP1_Q6 1.61497e-06 + GGGGGGTGGGGCT
+chr10 24523649 24523658 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr10 24523649 24523659 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr10 24523649 24523662 +V_MAZR_01 4.08366e-06 + GGGGGTGGGGCTC
+chr10 24523650 24523660 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr10 24523650 24523662 -V_PAX4_03 1.74945e-06 - GAGCCCCACCCC
+chr10 24749363 24749382 -V_OCT1_01 1.82906e-06 - ATTCTTATGCAAATGTGAT
+chr10 24749365 24749378 +V_OCT_C 4.58343e-06 + CACATTTGCATAA
+chr10 24749366 24749377 +V_OCT_Q6 7.02042e-06 + ACATTTGCATA
+chr10 24749367 24749377 -V_OCT1_B 4.33582e-06 - TATGCAAATG
+chr10 24749367 24749382 -V_OCT4_02 3.61302e-07 - ATTCTTATGCAAATG
+chr10 24749368 24749383 -V_OCT4_01 3.51661e-08 - TATTCTTATGCAAAT
+chr10 24749388 24749399 -V_PITX2_Q2 4.9078e-06 - TATAATCCCAC
+chr10 24749393 24749412 -V_OCT1_01 2.91073e-06 - ATTCTTATGCAAATATAAT
+chr10 24749396 24749407 +V_OCT_Q6 7.92146e-06 + ATATTTGCATA
+chr10 24749397 24749407 -V_OCT1_B 4.33582e-06 - TATGCAAATA
+chr10 24749397 24749412 -V_OCT4_02 1.61981e-06 - ATTCTTATGCAAATA
+chr10 24749398 24749413 -V_OCT4_01 3.51661e-08 - TATTCTTATGCAAAT
+chr10 25352312 25352320 -V_CACD_01 9.89755e-06 - CCACACCC
+chr10 25674792 25674811 +V_PPARA_02 6.18965e-07 + GAAGGGCATGGGGGTGGGG
+chr10 25674796 25674810 -V_KROX_Q6 9.64613e-06 - CCCACCCCCATGCC
+chr10 25674801 25674810 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr10 25674801 25674811 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr10 25674801 25674812 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr10 25674802 25674814 -V_PAX4_03 2.40392e-07 - CACCCCCACCCC
+chr10 25674802 25674816 -V_KROX_Q6 2.21131e-07 - CCCACCCCCACCCC
+chr10 25674805 25674816 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr10 25674806 25674819 +V_SP1_Q6 7.54104e-06 + TGGGGGTGGGGTG
+chr10 25674807 25674816 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr10 25674807 25674817 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr10 25674809 25674824 -V_SREBP_Q6 4.69758e-06 - CTCCCCACCCCACCC
+chr10 25674809 25674824 -V_SREBP1_Q5 7.63808e-06 - CTCCCCACCCCACCC
+chr10 30347594 30347609 +V_OCT4_01 1.79634e-06 + TTTTCATATGCTAAT
+chr10 30347595 30347610 +V_OCT4_02 7.51249e-06 + TTTCATATGCTAATA
+chr10 30347595 30347614 +V_OCT1_01 2.27046e-06 + TTTCATATGCTAATATCAC
+chr10 30347599 30347609 +V_POU3F2_02 7.27852e-06 + ATATGCTAAT
+chr10 30347655 30347670 -V_OCT4_02 7.51249e-06 - TTTGACTTTCAAATT
+chr10 31176759 31176774 +V_OCT4_02 7.51249e-06 + ATTGAGTTGCAAAGT
+chr10 32360268 32360280 +V_ETS_Q4 1.99031e-06 + ACCCACATCCTG
+chr10 32808450 32808465 +V_OCT4_01 6.02107e-06 + CTTTGGTATGTAAAT
+chr10 33972838 33972850 -V_GATA4_Q3 5.81595e-06 - AGATTTCAGGGA
+chr10 33972845 33972860 -V_OCT4_02 1.18248e-06 - ATTGAGATGCAGATT
+chr10 33972881 33972894 -V_CEBPGAMMA_Q6 6.38933e-06 - CTCATTTAACAAA
+chr10 33972903 33972911 -V_CACD_01 9.89755e-06 - CCACACCC
+chr10 33972922 33972933 +V_PITX2_Q2 1.22695e-06 + TTTAATCCCAG
+chr10 36643826 36643841 +V_VDRRXR_01 3.03513e-06 + AGGTCCCAGGGTTCA
+chr10 36644113 36644127 +V_KROX_Q6 4.07315e-07 + AGCGCCCCCGCCCC
+chr10 36644116 36644129 -V_SP1_Q6 9.29757e-07 - CAGGGGCGGGGGC
+chr10 36644117 36644127 -V_SP1_Q6_01 6.78413e-07 - GGGGCGGGGG
+chr10 36644118 36644127 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr10 36644118 36644128 +V_SP1_Q2_01 1.0915e-06 + CCCCGCCCCT
+chr10 36941946 36941957 -V_EVI1_03 8.92601e-06 - AGATGAGATAA
+chr10 43223332 43223350 +V_MYOD_Q6_01 6.11726e-06 + GCAGGCCAGGTGGTGTAC
+chr10 43223335 43223345 -V_EBOX_Q6_01 6.43409e-06 - CCACCTGGCC
+chr10 43223335 43223347 +V_LMO2COM_01 2.70597e-06 + GGCCAGGTGGTG
+chr10 43306102 43306117 +V_DMRT1_01 1.74182e-07 + CTGAAACAATGTTTC
+chr10 43306104 43306119 -V_DMRT1_01 2.96272e-06 - GTGAAACATTGTTTC
+chr10 43306107 43306123 -V_DMRT2_01 4.45851e-06 - GGAAGTGAAACATTGT
+chr10 43306112 43306123 -V_IRF_Q6_01 3.19379e-06 - GGAAGTGAAAC
+chr10 43306132 43306143 +V_PAX_Q6 8.71928e-07 + CTGGAACTTAC
+chr10 43659084 43659100 +V_GRE_C 7.69632e-06 + TTTACAAACAGTGCTT
+chr10 43659145 43659159 +V_DMRT7_01 7.37275e-06 + TTGTTTCAGTTCTG
+chr10 43659149 43659162 +V_STAT_Q6 8.60737e-06 + TTCAGTTCTGGGA
+chr10 43659151 43659166 +V_STAT5A_01 4.26697e-06 + CAGTTCTGGGAAATG
+chr10 43659153 43659167 +V_STAT3STAT3_Q3 1.28888e-06 + GTTCTGGGAAATGC
+chr10 44154716 44154726 +V_HSF1_01 2.92358e-06 + AGAAGGTTCG
+chr10 44154716 44154726 +V_HSF2_01 6.79111e-06 + AGAAGGTTCG
+chr10 44154764 44154783 -V_OCT1_01 2.51462e-06 - AGATTTATGCAAATCTTCT
+chr10 44154767 44154778 +V_OCT1_Q5_01 5.83412e-06 + AGATTTGCATA
+chr10 44154767 44154778 +V_OCT_Q6 4.86692e-06 + AGATTTGCATA
+chr10 44154768 44154778 -V_OCT1_B 1.34745e-06 - TATGCAAATC
+chr10 44154781 44154797 +V_MMEF2_Q6 3.41458e-08 + CTGGTTAAAAATAACC
+chr10 44154783 44154799 +V_MEF2_01 4.53544e-07 + GGTTAAAAATAACCTT
+chr10 44154785 44154797 -V_MEF2_Q6_01 1.43383e-06 - GGTTATTTTTAA
+chr10 44792229 44792244 +V_TAXCREB_01 7.51763e-06 + GAGGGATGACGCCTT
+chr10 447922.4.54792256 -V_GLI_Q2 9.40421e-06 - CCTGGGTGGCCT
+chr10 44841685 44841700 +V_OCT4_01 8.53201e-08 + CATTGTTATGCAAAC
+chr10 44841686 44841701 +V_OCT4_02 7.51249e-06 + ATTGTTATGCAAACC
+chr10 45011295 45011308 +V_P50P50_Q3 8.72537e-07 + TAGGGACTCCCCC
+chr10 45011296 45011308 +V_NFKB_C 3.38497e-06 + AGGGACTCCCCC
+chr10 45011296 45011312 -V_NFKB_Q6_01 7.12923e-06 - TGGAGGGGGAGTCCCT
+chr10 45011354 45011368 +V_DMRT7_01 7.83627e-06 + TTGTTACTTTGTGT
+chr10 45011354 45011373 +V_GR_Q6 8.25481e-06 + TTGTTACTTTGTGTTCTTT
+chr10 51994105 51994120 -V_IPF1_Q4_01 7.22911e-06 - TGTGCCATTAAAACC
+chr10 54229663 54229678 +V_OCT4_01 1.40241e-06 + TATTGTAATGCTAAA
+chr10 54229664 54229679 +V_OCT4_02 6.55103e-06 + ATTGTAATGCTAAAT
+chr10 54229698 54229710 -V_AP1_Q2_01 2.73244e-06 - TGACTCATAGGC
+chr10 54229702 54229711 +V_AP1_C 4.03003e-06 + ATGAGTCAG
+chr10 56076599 56076608 +V_HNF4_Q6 7.33929e-06 + AAGGTCCAG
+chr10 58057380 58057397 +V_NF1_Q6_01 7.65712e-06 + TTGGAGTCAAGCCAATG
+chr10 58057449 58057459 +V_GATA6_01 9.61771e-06 + ACAGATAAGC
+chr10 5902.4.5 59021483 -V_GR_Q6 3.65698e-06 - TGGCCTCCAAGTGTTCTCA
+chr10 59021580 59021592 -V_GLI_Q2 1.77433e-06 - CTTGGGAGGTCC
+chr10 59021605 59021614 -V_LYF1_01 7.33929e-06 - TTTGGGAGA
+chr10 59021769 59021783 +V_NFKB_Q6 9.10996e-06 + AGTGGACTCTCCGT
+chr10 59021812 59021828 -V_NFKB_Q6_01 5.55103e-06 - TCACTGGAAAGCCCCA
+chr10 59021813 59021823 +V_NFKAPPAB65_01 7.1331e-06 + GGGGCTTTCC
+chr10 59021813 59021823 +V_CREL_01 6.1263e-07 + GGGGCTTTCC
+chr10 59021813 59021823 +V_NFKAPPAB_01 5.48771e-06 + GGGGCTTTCC
+chr10 60278921 60278934 -V_AP2_Q6_01 4.74029e-06 - GGCTCCTCAGGCC
+chr10 60278936 60278946 -V_SP1_Q2_01 6.40385e-06 - CCCCTCCCCT
+chr10 60278936 60278949 +V_MAZR_01 7.66218e-06 + AGGGGAGGGGAGA
+chr10 60278937 60278945 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr10 60278937 60278946 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr10 60650042 60650056 -V_KROX_Q6 4.02412e-06 - CCCACCCCCTCCTC
+chr10 60650044 60650055 -V_SP1SP3_Q4 4.25103e-06 - CCACCCCCTCC
+chr10 60650046 60650059 +V_SP1_Q6 2.31776e-06 + AGGGGGTGGGGCT
+chr10 60650047 60650056 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr10 60650047 60650057 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr10 60650047 60650060 +V_MAZR_01 3.32118e-06 + GGGGGTGGGGCTA
+chr10 60650048 60650058 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr10 60650048 60650060 -V_PAX4_03 5.65167e-06 - TAGCCCCACCCC
+chr10 61237580 61237593 +V_AP2_Q6_01 4.74029e-06 + TGGCCCTCAGGCC
+chr10 61237689 61237706 +V_RFX1_01 3.81544e-06 + CAGGTGCCTGGAAACCT
+chr10 61499687 61499702 -V_OCT4_01 2.45515e-06 - CTTTGATATGTAAAA
+chr10 62617945 62617960 +V_DMRT1_01 4.05865e-06 + TCGATACAATGTATC
+chr10 62617999 62618013 +V_MEIS1AHOXA9_01 7.86241e-06 + TGACAGTGTTAAGA
+chr10 62823479 62823487 +V_STAT3_02 9.89755e-06 + GGCTTCCC
+chr10 64199565 64199580 -V_OCT4_01 3.04012e-06 - TTTTGAAATGTAAAC
+chr10 64199579 64199589 -V_TBX5_Q5 2.76108e-06 - TTCACACCTT
+chr10 66578017 66578035 -V_SRF_Q4 3.505e-06 - GACAAATAAGGCAACTGC
+chr10 66578062 66578073 +V_EBF_Q6 9.10919e-06 + TTCCCCTGAGG
+chr10 69364176 69364198 +V_MEF2_04 9.11463e-08 + ATTGTTTCTATAAACAGATTCT
+chr10 69391322 69391343 +V_HNF1_Q6_01 3.39082e-06 + TAAAGCTAATAATTAAACCTT
+chr10 69391363 69391375 -V_NFAT_Q6 1.95424e-06 - CATAGGAAAATG
+chr10 69830900 69830916 -V_GRE_C 8.2757e-07 - TGTTCCATCTGTTCTG
+chr10 70911210 70911225 -V_OCT4_02 1.37411e-06 - ATTCACTTGCAGATG
+chr10 70911234 70911249 +V_AR_Q2 1.02586e-06 + AGAAGCTGCTGTTCT
+chr10 70911286 70911305 -V_OCT1_01 4.16161e-06 - CTTCGTATGCAAATGCCTC
+chr10 70911288 70911301 +V_OCT_C 4.58343e-06 + GGCATTTGCATAC
+chr10 70911288 70911302 +V_OCT1_05 3.30551e-06 + GGCATTTGCATACG
+chr10 70911289 70911300 +V_OCT_Q6 4.86692e-06 + GCATTTGCATA
+chr10 70911290 70911300 -V_OCT1_B 4.33582e-06 - TATGCAAATG
+chr10 70911304 70911313 +V_LRF_Q2 1.50459e-06 + GGGGCCCCC
+chr10 72097016 72097025 +V_AP2ALPHA_01 9.68294e-06 + GCCCGAGGC
+chr10 72097055 72097079 -V_COMP1_01 9.43495e-06 - TCTGAGCATTGGCTGCAGTCGGTC
+chr10 72097105 72097116 +V_NFE2_01 3.36587e-06 + AGCTGACTCAT
+chr10 72097105 72097118 -V_AP1_01 4.66933e-07 - GAATGAGTCAGCT
+chr10 72097106 72097117 +V_AP1_Q2 7.83818e-06 + GCTGACTCATT
+chr10 72097106 72097117 +V_AP1_Q6 2.98654e-06 + GCTGACTCATT
+chr10 72097107 72097116 -V_AP1_C 4.03003e-06 - ATGAGTCAG
+chr10 72097111 72097126 -V_SPZ1_01 8.55807e-06 - GCTGGAGGGAATGAG
+chr10 74411711 74411726 +V_DMRT1_01 8.16534e-06 + AAGCAACAATGTATC
+chr10 74411713 74411728 -V_DMRT1_01 1.95997e-06 - GGGATACATTGTTGC
+chr10 74411767 74411785 +V_LXR_Q3 3.41103e-06 + TAAGGTCACTGGGGGCCA
+chr10 74411767 74411786 +V_PPARA_02 4.81437e-06 + TAAGGTCACTGGGGGCCAG
+chr10 74411768 74411785 -V_DR4_Q2 5.48368e-06 - TGGCCCCCAGTGACCTT
+chr10 74411805 74411819 -V_CREB_Q2_01 3.09289e-06 - GTTTGCGTCAGGGC
+chr10 74411852 74411880 +V_PAX5_01 9.59433e-07 + GCCTGGGGCATAGTTGGGGAGAGGCTAT
+chr10 74590165 74590181 -V_NFY_01 3.96614e-06 - ACTGACCAATGAGGGT
+chr10 74590168 74590179 -V_NFY_Q6 6.30633e-06 - TGACCAATGAG
+chr10 74590184 74590195 +V_EBF_Q6 2.28749e-06 + CTCCCCTGGGA
+chr10 74590251 74590266 +V_DMRT3_01 3.92747e-06 + CATTTGTTACTTTGT
+chr10 74590252 74590267 +V_DMRT5_01 1.89921e-06 + ATTTGTTACTTTGTT
+chr10 74590254 74590269 +V_DMRT1_01 7.56504e-06 + TTGTTACTTTGTTAC
+chr10 74590254 74590271 -V_RFX1_01 5.77734e-06 - TGGTAACAAAGTAACAA
+chr10 75257821 75257834 -V_NKX61_01 3.94544e-06 - TATTTAATGGTTT
+chr10 75257862 75257881 +V_SRF_Q5_02 1.87948e-06 + ATTTCCCTTATTTGGCCAC
+chr10 75257865 75257879 -V_SRF_Q6 4.91031e-07 - GGCCAAATAAGGGA
+chr10 75257866 75257881 +V_SRF_C 8.92759e-06 + CCCTTATTTGGCCAC
+chr10 75257874 75257890 -V_MAF_Q6 2.6445e-06 - GAGGAGGAAGTGGCCA
+chr10 75257875 75257892 -V_PU1_01 6.15878e-06 - AGGAGGAGGAAGTGGCC
+chr10 75257879 75257891 -V_ELF1_Q6 3.87486e-06 - GGAGGAGGAAGT
+chr10 75344779 75344792 +V_OCT_C 2.79677e-06 + ATCCTTTGCATAT
+chr10 75344779 75344793 +V_OCT1_05 3.94854e-06 + ATCCTTTGCATATG
+chr10 75344849 75344860 +V_HELIOSA_01 6.73723e-07 + TATAGGGATAA
+chr10 76657148 76657159 -V_GATA_C 1.62999e-06 - AGATAAGGACT
+chr10 76657161 76657181 +V_PPARA_01 7.59176e-06 + CAAGGGCAGGACAGGGGTCA
+chr10 76657163 76657186 -V_COUPTF_Q6 3.93002e-06 - CCCTGTGACCCCTGTCCTGCCCT
+chr10 76657167 76657176 -V_T3R_Q6 8.74404e-06 - CCTGTCCTG
+chr10 76657168 76657181 +V_DR1_Q3 3.53458e-06 + AGGACAGGGGTCA
+chr10 76657168 76657181 -V_PPAR_DR1_Q2 8.84028e-06 - TGACCCCTGTCCT
+chr10 76657168 76657181 -V_COUP_DR1_Q6 7.61023e-06 - TGACCCCTGTCCT
+chr10 76657174 76657186 -V_VDR_Q6 5.27356e-06 - CCCTGTGACCCC
+chr10 76657189 76657209 -V_FOXP1_01 5.14048e-07 - TTAGTTATGTTGTTTAGGAT
+chr10 76657268 76657289 +V_PPARG_01 8.06423e-06 + CTTGGGGACAAAGCTCAAGGC
+chr10 77065990 77066018 -V_PAX5_01 2.54547e-06 - TTGTCAGCCACTGAGGTGGGGCCACCTG
+chr10 77065994 77066007 -V_MAZR_01 7.22993e-06 - TGAGGTGGGGCCA
+chr10 77066003 77066014 -V_ALPHACP1_01 4.48665e-06 - CAGCCACTGAG
+chr10 77853979 77853994 +V_OCT4_01 7.41924e-06 + CTTTGCTATGCAGAT
+chr10 79360220 79360233 +V_SP1_Q6 2.31776e-06 + AGGGGGTGGGGCT
+chr10 79360221 79360230 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr10 79360221 79360231 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr10 79360221 79360234 +V_MAZR_01 7.22993e-06 + GGGGGTGGGGCTG
+chr10 79360222 79360232 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr10 79360222 79360234 -V_PAX4_03 1.74945e-06 - CAGCCCCACCCC
+chr10 79360268 79360281 +V_SP1_Q6 5.25793e-07 + CAGGGGCGGGGCT
+chr10 79360269 79360279 -V_SP1_Q2_01 1.0915e-06 - CCCCGCCCCT
+chr10 79360270 79360279 -V_CKROX_Q2 6.67377e-06 - CCCCGCCCC
+chr10 79360270 79360280 +V_SP1_Q6_01 3.39206e-07 + GGGGCGGGGC
+chr10 79360279 79360297 +V_MYOD_Q6_01 6.49155e-06 + CTGAGGCAGGGGCTGGGG
+chr10 79360287 79360296 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr10 79360288 79360301 -V_AP2_Q6_01 6.27133e-06 - CCGCCCCCAGCCC
+chr10 79360288 79360302 -V_KROX_Q6 2.87261e-07 - CCCGCCCCCAGCCC
+chr10 79360291 79360302 +V_EGR_Q6 7.81764e-06 + CTGGGGGCGGG
+chr10 79360292 79360305 +V_SP1_Q6 3.44815e-08 + TGGGGGCGGGGCC
+chr10 79360293 79360303 -V_SP1_Q2_01 3.39206e-07 - CCCCGCCCCC
+chr10 79360294 79360303 -V_CKROX_Q2 6.67377e-06 - CCCCGCCCC
+chr10 79360294 79360304 +V_SP1_Q6_01 3.39206e-07 + GGGGCGGGGC
+chr10 79399221 79399232 +V_SP1SP3_Q4 2.26051e-06 + CCCCCTCCTCC
+chr10 79399278 79399287 +V_LYF1_01 7.33929e-06 + TTTGGGAGG
+chr10 79399278 79399288 +V_IK_Q5 1.3587e-06 + TTTGGGAGGG
+chr10 80410696 80410705 +V_CACBINDINGPROTEIN_Q6 6.29506e-06 + GAGGCTGGG
+chr10 80410701 80410719 -V_NF1_Q6 4.05732e-06 - CCTTGGCTCAAAGCCCCA
+chr10 80410783 80410801 -V_NF1_Q6 1.8283e-06 - CCTTGGCTGCAGTCCAGG
+chr10 80410784 80410801 +V_NF1_Q6_01 6.51825e-07 + CTGGACTGCAGCCAAGG
+chr10 80465458 80465467 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGG
+chr10 80465470 80465479 -V_SMAD3_Q6 7.33929e-06 - TGTCTGCCT
+chr10 82674068 82674082 +V_ATF3_Q6 4.55535e-06 + CGATGACATCATCC
+chr10 82674123 82674138 +V_DMRT1_01 3.33047e-06 + AGGAAACAATGTATC
+chr10 82674125 82674140 -V_DMRT1_01 1.27344e-06 - AAGATACATTGTTTC
+chr10 82809019 82809032 +V_AP1_01 7.96108e-06 + CAGTTAGTCAGCC
+chr10 84017140 84017156 -V_NFY_01 5.89708e-07 - CACAGCCAATCAGAGA
+chr10 84017143 84017154 -V_ALPHACP1_01 5.77866e-07 - CAGCCAATCAG
+chr10 84017217 84017231 +V_ERR1_Q2.4.56186e-06 + TCCTGGAGGTCATA
+chr10 84373414 84373427 -V_CEBPGAMMA_Q6 3.55864e-06 - CTGATTTAAAAAA
+chr10 84373434 84373450 -V_MMEF2_Q6 7.82043e-06 - CGTAATAAAAATCCCC
+chr10 84373506 84373525 +V_PPARA_02 1.38398e-06 + TGAAGTCATTGGGGTGTGG
+chr10 84373517 84373525 -V_CACD_01 9.89755e-06 - CCACACCC
+chr10 84373521 84373532 +V_EGR_Q6 9.33802e-06 + GTGGGGGGAAG
+chr10 84373521 84373540 -V_PU1_Q4 9.43652e-06 - CTCTCCTACTTCCCCCCAC
+chr10 84373524 84373539 +V_VDR_Q3 5.37362e-06 + GGGGGAAGTAGGAGA
+chr10 84373770 84373791 +V_STAT3_01 7.23973e-06 + GCTCCTTTCAGGGAAATGCTA
+chr10 84373770 84373791 -V_STAT3_01 9.64654e-06 - TAGCATTTCCCTGAAAGGAGC
+chr10 84373775 84373789 +V_STAT3STAT3_Q3 2.17869e-06 + TTTCAGGGAAATGC
+chr10 84373782 84373796 -V_OCT1_05 6.37497e-06 - AGGATTAGCATTTC
+chr10 84490772 84490780 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr10 86225218 86225232 -V_KROX_Q6 7.21054e-07 - CCCGCCCCCTGCCC
+chr10 86225220 86225231 -V_SP1SP3_Q4 5.85283e-07 - CCGCCCCCTGC
+chr10 86225222 86225235 +V_SP1_Q6 1.00457e-07 + AGGGGGCGGGGTG
+chr10 86225223 86225233 -V_SP1_Q2_01 3.39206e-07 - CCCCGCCCCC
+chr10 86225224 86225233 -V_CKROX_Q2 6.67377e-06 - CCCCGCCCC
+chr10 86225224 86225234 +V_SP1_Q6_01 1.0915e-06 + GGGGCGGGGT
+chr10 86225314 86225329 +V_OCT4_01 2.64195e-06 + CTTTGATATGTTAAT
+chr10 86225319 86225329 +V_POU3F2_02 5.63759e-06 + ATATGTTAAT
+chr10 87625641 87625651 -V_TAL1_Q6 4.87508e-06 - TCCAGCTGGT
+chr10 87625679 87625698 +V_PU1_Q4 6.58035e-06 + TGTGTTCATTTCCCCTCTT
+chr10 87968155 87968169 +V_PAX6_Q2 4.38021e-07 + CTGTCCTTGAACTA
+chr10 87968291 87968309 +V_GCNF_01 3.97182e-06 + TTCTAGGTCAAGTACAAG
+chr10 87977889 87977904 +V_HNF1_01 6.48099e-07 + GGTTAATTTTTGCAA
+chr10 87977950 87977962 +V_FOXO3A_Q1 2.84918e-06 + TGTAAACAAAAG
+chr10 87977997 87978012 -V_DMRT1_01 4.05865e-06 - ATGTTACATTGTGTC
+chr10 87977998 87978012 -V_DMRT7_01 6.47571e-06 - ATGTTACATTGTGT
+chr10 87978000 87978016 -V_DMRT2_01 2.43619e-06 - CACAATGTTACATTGT
+chr10 89927785 89927797 +V_MEF2_Q6_01 3.3543e-06 + AGCTATTTTTAT
+chr10 89927823 89927832 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr10 89927823 89927833 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr10 90267541 90267553 +V_ETS_Q4 4.51577e-07 + AGTCACTTCCTG
+chr10 90267541 90267555 -V_ETS2_B 1.29216e-07 - GACAGGAAGTGACT
+chr10 90267542 90267553 -V_FLI1_Q6 8.77629e-07 - CAGGAAGTGAC
+chr10 90267549 90267558 +V_T3R_Q6 3.30926e-06 + CCTGTCCTT
+chr10 92751165 92751181 +V_DMRT2_01 8.22882e-06 + TATATGGATACAGTGT
+chr10 92751169 92751184 +V_DMRT1_01 5.76016e-06 + TGGATACAGTGTATC
+chr10 92751171 92751186 -V_DMRT1_01 5.76016e-06 - TGGATACACTGTATC
+chr10 92751276 92751291 -V_SMAD4_Q6 5.77373e-06 - GGCATCCAGCCAGAT
+chr10 93219121 93219151 +V_PAX4_04 4.01413e-06 + AGTAATTAACTCTGCCACCCTCCCCCTGCC
+chr10 93219138 93219146 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr10 93219138 93219147 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr10 93635573 93635588 +V_OCT4_01 2.83977e-06 + ATTTGTTATTCAAAT
+chr10 93635574 93635589 +V_OCT4_02 8.01355e-06 + TTTGTTATTCAAATT
+chr10 93635696 93635726 -V_PAX4_04 1.56382e-06 - AAATATAATCTACATCTGCTTGCTCACCCC
+chr10 94522209 94522222 -V_MAZR_01 8.01727e-06 - GGGGGTGGGGAGA
+chr10 94522212 94522222 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr10 94522213 94522222 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr10 94522327 94522335 -V_CACD_01 9.89755e-06 - CCACACCC
+chr10 94816936 94816950 +V_DMRT7_01 7.37275e-06 + TTGTTTCAGTTCTG
+chr10 95181154 95181163 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr10 95181154 95181164 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr10 95181154 95181167 +V_MAZR_01 8.01727e-06 + GGGGGTGGGGAGA
+chr10 95181223 95181243 -V_PPARA_01 9.02914e-06 - CAAAACTAGGCCCAAACTCT
+chr10 95181566 95181575 -V_AP2ALPHA_01 9.68294e-06 - GCCCGAGGC
+chr10 95181573 95181591 +V_MYOD_Q6_01 3.73988e-06 + GCCAGACAGGTGACAAAG
+chr10 95181647 95181657 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr10 95181647 95181658 +V_SP1SP3_Q4 2.8432e-06 + CCCCCTCCCCC
+chr10 95181648 95181657 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr10 95181648 95181658 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr10 95181649 95181657 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr10 95181649 95181658 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr10 95346630 95346639 -V_ZIC2_01 9.89755e-06 - GGGGTGGTG
+chr10 95346633 95346646 -V_SP1_Q6 2.65872e-07 - TGGGGGCGGGGTG
+chr10 95346634 95346644 -V_SP1_Q6_01 1.0915e-06 - GGGGCGGGGT
+chr10 95346635 95346644 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr10 95346635 95346645 +V_SP1_Q2_01 3.39206e-07 + CCCCGCCCCC
+chr10 95346636 95346647 -V_EGR_Q6 2.99674e-07 - GTGGGGGCGGG
+chr10 95346636 95346650 +V_KROX_Q6 9.64343e-08 + CCCGCCCCCACCCA
+chr10 95346637 95346652 -V_CP2_02 6.9729e-06 - GCTGGGTGGGGGCGG
+chr10 95354323 95354338 -V_OCT4_02 5.30392e-06 - ATTGTCATGTTAAAT
+chr10 95354324 95354339 -V_OCT4_01 4.01204e-06 - CATTGTCATGTTAAA
+chr10 95354376 95354391 -V_ETS1_B 2.78299e-06 - ACAGGAAGGGACTGA
+chr10 95354865 95354877 +V_NFKB_C 9.0304e-06 + GGGGGCTTTCCA
+chr10 95354866 95354876 +V_NFKAPPAB65_01 7.1331e-06 + GGGGCTTTCC
+chr10 95354866 95354876 +V_CREL_01 6.1263e-07 + GGGGCTTTCC
+chr10 95354866 95354876 +V_NFKAPPAB_01 5.48771e-06 + GGGGCTTTCC
+chr10 95354882 95354897 -V_AR_01 3.9032e-06 - GGTTCAGGGCGTGCC
+chr10 95354909 95354917 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr10 95354918 95354934 +V_GRE_C 9.71322e-06 + CGAACAAACTGTCCTT
+chr10 98816180 98816192 +V_CREB_02 3.37383e-06 + CGGATGACGTGC
+chr10 98816319 98816334 +V_OCT4_01 1.01602e-06 + CATTATGATGCAAAT
+chr10 98931819 98931834 -V_OCT4_02 7.51249e-06 - ATTGAGTTGCAAAGT
+chr10 99392571 99392585 +V_FOXO1_02 2.27875e-06 + TTGTTGTTTACTCT
+chr10 99392571 99392585 +V_FOXO4_02 6.75869e-06 + TTGTTGTTTACTCT
+chr10 99392571 99392585 +V_FOXO3_01 3.85649e-06 + TTGTTGTTTACTCT
+chr10 99392588 99392601 +V_MAZR_01 7.66218e-06 + CAGGGAGGGGCCA
+chr10 99392596 99392609 +V_DEC_Q1 8.9012e-06 + GGCCAAGTGAATC
+chr10 99392641 99392652 -V_FOXO4_01 2.21629e-06 - GTAAACAACCC
+chr10 99392641 99392655 +V_FOXO1_02 1.50781e-06 + GGGTTGTTTACCTT
+chr10 99392641 99392655 +V_FOXO4_02 3.16384e-07 + GGGTTGTTTACCTT
+chr10 99392641 99392655 +V_FOXO3_01 3.85649e-06 + GGGTTGTTTACCTT
+chr10 114791781 114791791 +V_LEF1_Q2_01 7.66428e-06 + GTTCAAAGGG
+chr10 114791884 114791902 +V_CMYB_01 2.42652e-06 + GAAAAGGGCGGTTGGTTG
+chr10 114801487 114801500 +V_P50P50_Q3 5.92952e-06 + TGGGGAATTCCAG
+chr10 114801488 114801498 +V_CREL_01 5.43478e-06 + GGGGAATTCC
+chr10 114801498 114801508 +V_P53_DECAMER_Q2 2.10476e-06 + AGGCAAGTCC
+chr10 114801603 114801627 +V_STAT5A_02 9.32654e-06 + TTCCAGGAACCCCCCCCCCCAGCA
+chr10 114801609 114801622 -V_MAZR_01 1.39054e-06 - GGGGGGGGGGTTC
+chr10 114801611 114801622 +V_SP1SP3_Q4 3.19906e-06 + ACCCCCCCCCC
+chr10 114801612 114801621 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr10 114801612 114801623 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr10 114801613 114801622 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr10 114801613 114801624 +V_SP1SP3_Q4 3.76147e-06 + CCCCCCCCCCA
+chr10 114801614 114801623 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr10 114801736 114801749 -V_DEC_Q1 2.37756e-06 - ACCCAAGTGAACG
+chr10 114906187 114906196 -V_AP1_C 4.03003e-06 - ATGAGTCAG
+chr10 114906266 114906285 +V_OCT1_01 5.31719e-06 + TTTAGTATGCAAATGCTCT
+chr10 114906269 114906283 -V_OCT1_05 2.35e-07 - AGCATTTGCATACT
+chr10 114906270 114906283 -V_OCT_C 2.51133e-06 - AGCATTTGCATAC
+chr10 114906271 114906281 +V_OCT1_B 4.33582e-06 + TATGCAAATG
+chr10 114906271 114906282 -V_OCT_Q6 4.86692e-06 - GCATTTGCATA
+chr10 115999361 115999373 +V_MYOD_01 6.00212e-06 + GGTCAGGTGCTG
+chr10 115999379 115999394 +V_OCT4_01 7.41924e-06 + TATTCAAATGCTAAA
+chr10 115999429 115999444 +V_OCT4_01 7.94702e-06 + TTTTGTTGTGCAAAC
+chr10 115999450 115999465 +V_OCT4_01 7.94702e-06 + TTTTGTTGTGCAAAC
+chr10 116908949 116908964 +V_DMRT1_01 6.25574e-06 + GAGATACAATGTTGC
+chr10 116908951 116908966 -V_DMRT1_01 3.53013e-07 - CTGCAACATTGTATC
+chr10 116909021 116909034 +V_HNF4_DR1_Q3 5.33101e-06 + TGACCTTTGTGTC
+chr10 116909021 116909034 +V_COUP_DR1_Q6 4.28059e-06 + TGACCTTTGTGTC
+chr10 116957066 116957081 -V_DMRT1_01 6.57259e-08 - TTGAAACAATGTTTC
+chr10 116957067 116957081 -V_DMRT7_01 6.04797e-06 - TTGAAACAATGTTT
+chr10 116957106 116957121 +V_SMAD4_Q6 4.47098e-06 + CTCAGGCAGACTCCT
+chr10 116957136 116957150 -V_HNF4_Q6_01 4.19531e-07 - TGGCCAAAGGTCAA
+chr10 116957137 116957150 +V_PPAR_DR1_Q2 3.02106e-07 + TGACCTTTGGCCA
+chr10 116957137 116957150 +V_HNF4_DR1_Q3 2.83684e-07 + TGACCTTTGGCCA
+chr10 116957137 116957150 +V_COUP_DR1_Q6 3.15323e-07 + TGACCTTTGGCCA
+chr10 116957137 116957150 -V_RXRLXRB_01 4.41868e-06 - TGGCCAAAGGTCA
+chr10 116957137 116957150 -V_DR1_Q3 2.53165e-07 - TGGCCAAAGGTCA
+chr10 116957137 116957151 +V_COUP_01 5.56514e-07 + TGACCTTTGGCCAG
+chr10 116957137 116957154 -V_PPARG_03 9.33357e-06 - CGTCTGGCCAAAGGTCA
+chr10 116957147 116957175 -V_PAX5_01 2.54547e-06 - GCCGAACTCACTGAAGGTTAGCGTCTGG
+chr10 117334433 117334452 -V_PU1_Q4 8.89634e-06 - GACCTTTAGTTCCTCCTGC
+chr10 117334470 117334480 -V_ESE1_Q3 8.06007e-06 - AGCTTCCTGT
+chr10 117390013 117390028 +V_VDR_Q3 7.57997e-06 + GAGGGTGAGGGGTGA
+chr10 117390021 117390033 -V_PAX4_03 7.48009e-06 - TACCCTCACCCC
+chr10 117390032 117390042 -V_SP1_Q2_01 9.56538e-06 - CCCCACCCCT
+chr10 117390033 117390045 -V_PAX4_03 1.74945e-06 - ATCCCCCACCCC
+chr10 117390033 117390047 -V_KROX_Q6 8.32366e-06 - CCATCCCCCACCCC
+chr10 117390104 117390117 +V_HFH4_01 9.31547e-06 + CAGAATTTGTTTA
+chr10 117390109 117390119 -V_FOXO1_01 2.98837e-06 - CATAAACAAA
+chr10 117390135 117390145 -V_ESE1_Q3 8.80613e-06 - GGCTTCCTGT
+chr10 117390323 117390338 +V_CP2_02 9.52691e-07 + GCTGGGTGGGACCGG
+chr10 117390350 117390365 +V_OCT4_01 7.41924e-06 + GTTTGTTATGCAAAA
+chr10 117390351 117390366 +V_OCT4_02 3.74554e-06 + TTTGTTATGCAAAAA
+chr10 117482086 117482101 -V_ETS1_B 9.4683e-06 - AAAGGAAGTGATTGA
+chr10 117482141 117482156 +V_OCT4_01 1.52058e-06 + CTTTTACATGCAAAT
+chr10 117898498 117898512 -V_KROX_Q6 2.61668e-06 - CCCTCCCCCACTCC
+chr10 117898503 117898512 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr10 117898504 117898512 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr10 117898504 117898513 -V_CKROX_Q2 3.66459e-06 - GCCCTCCCC
+chr10 117898520 117898529 +V_CACBINDINGPROTEIN_Q6 2.23138e-06 + GAGGGTGGG
+chr10 117898524 117898544 +V_PPARA_01 8.51836e-06 + GTGGGGCAGGGCTTAGGTCA
+chr10 117898545 117898553 +V_CACD_01 9.89755e-06 + CCACACCC
+chr10 118187551 118187565 +V_DMRT7_01 3.27916e-06 + TGGTAACATTGTTT
+chr10 118187551 118187566 +V_DMRT1_01 4.26013e-07 + TGGTAACATTGTTTC
+chr10 118187553 118187568 -V_DMRT1_01 1.44151e-06 - CTGAAACAATGTTAC
+chr10 118187583 118187598 +V_DMRT1_01 1.17062e-06 + TAGAAACATTGTATC
+chr10 118187585 118187600 -V_DMRT1_01 2.58784e-07 - TAGATACAATGTTTC
+chr10 118187627 118187642 +V_EVI1_04 3.3175e-06 + AGTTAGGATAAGTTA
+chr10 118187638 118187653 -V_DMRT1_01 7.56504e-06 - TTGATACTTTGTAAC
+chr10 118187669 118187681 +V_ETS_Q4 1.6785e-06 + ATCCACTTCCTC
+chr10 119551622 119551637 -V_OCT4_01 9.05006e-06 - CATTGATATGTTAAA
+chr10 119551701 119551714 -V_SP1_Q6 6.51994e-06 - AAGGGGAGGGGTG
+chr10 119551702 119551712 -V_SP1_Q6_01 9.74073e-06 - GGGGAGGGGT
+chr10 119551703 119551712 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr10 119551703 119551713 +V_SP1_Q2_01 6.40385e-06 + CCCCTCCCCT
+chr10 119551704 119551712 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr10 119551728 119551739 +V_ALPHACP1_01 4.48665e-06 + CAGCCCATGAG
+chr10 119551767 119551779 -V_SRY_02 9.06694e-07 - GTAAACAAAAGG
+chr10 119551768 119551782 +V_FOXO4_02 4.51573e-06 + CTTTTGTTTACCCT
+chr10 119584682 119584697 +V_DMRT1_01 9.21473e-06 + TAGATACACTGTAGC
+chr10 119584684 119584699 -V_DMRT1_01 4.93806e-06 - CTGCTACAGTGTATC
+chr10 119584706 119584720 +V_DMRT7_01 9.63794e-06 + TGGATACATTGTAG
+chr10 119584706 119584721 +V_DMRT1_01 8.06116e-08 + TGGATACATTGTAGC
+chr10 119584708 119584723 -V_DMRT1_01 1.87081e-07 - CTGCTACAATGTATC
+chr10 119584726 119584742 +V_DMRT2_01 2.33602e-06 + TGGTTGGATACATTGT
+chr10 119584727 119584742 +V_DMRT3_01 1.87777e-06 + GGTTGGATACATTGT
+chr10 119584730 119584744 +V_DMRT7_01 2.62625e-06 + TGGATACATTGTGG
+chr10 119584730 119584745 +V_DMRT1_01 4.82232e-07 + TGGATACATTGTGGC
+chr10 119584732 119584747 -V_DMRT1_01 4.22462e-06 - TTGCCACAATGTATC
+chr10 119584827 119584842 +V_IRF_Q6 1.92022e-06 + TTCTGTTTCAGTTTT
+chr10 121435754 121435784 +V_PAX4_04 3.37904e-06 + GAGAATTAGCACCTAATCCCTAACCCCAGC
+chr10 121435778 121435787 -V_CACBINDINGPROTEIN_Q6 8.12736e-06 - GGGGCTGGG
+chr10 121435858 121435873 -V_DMRT5_01 2.72566e-06 - TGTTGTTACTTTGTA
+chr10 121435867 121435882 -V_DMRT1_01 2.96272e-06 - TTGTTACTTTGTTGT
+chr10 121435868 121435882 -V_DMRT7_01 7.24493e-07 - TTGTTACTTTGTTG
+chr10 122307309 122307321 -V_CEBP_Q3 5.50595e-06 - GAATGTGGCAAA
+chr10 122307446 122307464 -V_GCNF_01 1.51863e-06 - TTCAGAGTCAAGGTCACC
+chr10 122307448 122307457 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr10 122523979 122523992 +V_SP1_Q6 4.19627e-06 + AGAGGGAGGGGCC
+chr10 122523980 122523993 +V_MAZR_01 9.36507e-06 + GAGGGAGGGGCCT
+chr10 122524024 122524037 +V_DMRT4_01 5.97817e-06 + AATGTTTCAAGTT
+chr10 122524037 122524049 +V_ICSBP_Q6 7.93496e-06 + GAAAGGAAACTG
+chr10 122524099 122524112 +V_SP1_Q6 7.54104e-06 + GAGGGGAGGGGTT
+chr10 122524100 122524110 -V_SP1_Q2_01 6.40385e-06 - CCCCTCCCCT
+chr10 122524101 122524109 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr10 122524101 122524110 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr10 122524101 122524111 +V_SP1_Q6_01 9.74073e-06 + GGGGAGGGGT
+chr10 122524113 122524134 +V_PPARG_01 5.64913e-06 + CTTTGGCTCAAAGTTCAAAGA
+chr10 122524117 122524130 +V_RXRLXRB_01 6.42396e-06 + GGCTCAAAGTTCA
+chr10 122524117 122524130 +V_DR1_Q3 3.32775e-06 + GGCTCAAAGTTCA
+chr10 122524117 122524130 -V_HNF4_DR1_Q3 1.52588e-06 - TGAACTTTGAGCC
+chr10 122524117 122524130 -V_COUP_DR1_Q6 2.48866e-06 - TGAACTTTGAGCC
+chr10 122524117 122524131 +V_HNF4_Q6_01 4.332e-06 + GGCTCAAAGTTCAA
+chr10 124601873 124601902 +V_MYOGNF1_01 3.01608e-06 + CAGTTGTGTTTGCTGGCACAGAGAAAGCC
+chr10 124601935 124601950 -V_SMAD4_Q6 2.88375e-06 - GGGGTGGAGCCTCCT
+chr10 124601945 124601958 -V_GATA1_04 7.26537e-06 - TTCAGATAGGGGT
+chr10 124601945 124601959 -V_GATA1_02 9.46586e-06 - TTTCAGATAGGGGT
+chr10 124601947 124601956 -V_LMO2COM_02 3.30926e-06 - CAGATAGGG
+chr10 125339870 125339889 +V_PAX2_01 2.28058e-06 + CATTGTCATGCATTATGTC
+chr10 125339933 125339951 +V_GCNF_01 7.39337e-06 + ACAAAGGTAAAGTTCACT
+chr10 126760401 126760414 -V_MAZR_01 4.80613e-06 - GGGGGAGGGGCTG
+chr10 126760402 126760415 -V_SP1_Q6 1.82037e-06 - TGGGGGAGGGGCT
+chr10 126760403 126760413 -V_SP1_Q6_01 2.74385e-06 - GGGGAGGGGC
+chr10 126760404 126760413 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr10 126760404 126760414 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr10 126760405 126760413 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr10 126760405 126760414 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr10 127343427 127343442 -V_DMRT1_01 2.68065e-06 - TTGATACACTGTATC
+chr10 128418230 128418238 +V_STAT3_02 9.89755e-06 + GGCTTCCC
+chr10 128418237 128418245 +V_CACD_01 9.89755e-06 + CCACACCC
+chr10 128418298 128418310 -V_CEBP_Q3 7.38612e-06 - GAGTTAGGCAAT
+chr11 3448993 3449006 -V_CRX_Q4 2.86299e-06 - TCACTAATCACCC
+chr11 3449069 3449079 -V_NKX25_Q5 8.11064e-06 - TCCCACTTCC
+chr11 3449137 3449152 -V_TST1_01 9.20117e-06 - GTTGAATAAGAATGG
+chr11 4304412 4304422 -V_CREL_01 5.43478e-06 - GGGGAATTCC
+chr11 4304423 4304441 +V_MYOD_Q6_01 6.11726e-06 + GCTAGGCAGGTGGTGGAC
+chr11 4304426 4304438 +V_MYOD_01 6.00212e-06 + AGGCAGGTGGTG
+chr11 4304427 4304435 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr11 4304427 4304437 -V_MYOD_Q6 2.71739e-06 - ACCACCTGCC
+chr11 4304427 4304438 +V_E12_Q6 5.58116e-06 + GGCAGGTGGTG
+chr11 4304470 4304479 -V_AP2ALPHA_01 9.68294e-06 - GCCCGAGGC
+chr11 4304484 4304493 +V_SMAD_Q6 9.3359e-06 + AGACACCAC
+chr11 4304510 4304529 -V_GR_Q6 1.88245e-06 - TGGGGGCATTCTGTTCTCA
+chr11 4304522 4304535 -V_SP1_Q6 7.04257e-06 - TGGGGGTGGGGGC
+chr11 4304523 4304534 +V_SP1SP3_Q4 8.91927e-06 + CCCCCACCCCC
+chr11 4304524 4304534 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr11 4304525 4304534 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr11 4304525 4304539 +V_KROX_Q6 2.32952e-06 + CCCACCCCCAACCC
+chr11 5139866 5139896 +V_PAX4_04 8.7361e-06 + AGGAAATGGGCACAAGGACACCCCCTCCCC
+chr11 5139867 5139879 -V_NANOG_01 3.55582e-06 - GTGCCCATTTCC
+chr11 5139886 5139896 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr11 5139887 5139896 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr11 5139888 5139896 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr11 5139893 5139902 -V_CACBINDINGPROTEIN_Q6 8.12736e-06 - GGGGCTGGG
+chr11 5139931 5139941 +V_P53_DECAMER_Q2 2.10476e-06 + AGACAAGCCC
+chr11 5139997 5140011 -V_E2A_Q2 2.18421e-06 - GCACCTGCCTTAGG
+chr11 5139998 5140016 +V_MYOD_Q6_01 7.30593e-06 + CTAAGGCAGGTGCAGGGA
+chr11 5140002 5140010 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr11 5140002 5140012 -V_MYOD_Q6 6.66004e-06 - TGCACCTGCC
+chr11 5140002 5140013 +V_E12_Q6 3.31699e-06 + GGCAGGTGCAG
+chr11 5653856 5653870 +V_MTF1_Q4 6.56269e-06 + TGTGCACCCAGCCA
+chr11 5653882 5653900 -V_CART1_01 9.85675e-06 - AGGTGATTGCCATTAGCT
+chr11 5653889 5653910 -V_NRSE_B 4.28991e-06 - CTTAGCTCAGAGGTGATTGCC
+chr11 5653918 5653931 -V_MAZR_01 5.4366e-06 - GGGGGAGGGGAGA
+chr11 5653921 5653930 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr11 5653921 5653931 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr11 5653922 5653930 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr11 5653922 5653931 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr11 5653932 5653942 -V_IK_Q5 6.81053e-06 - GTTGGGAGGT
+chr11 6504383 6504397 +V_BLIMP1_Q6 3.386e-06 + AGAAAGGGAGAGGG
+chr11 6504434 6504442 -V_CACD_01 9.89755e-06 - CCACACCC
+chr11 6504458 6504471 -V_IK1_01 1.27794e-06 - ACTTGGGAACGCC
+chr11 8576336 8576347 +V_RORA_Q4 2.4539e-06 + TAAATAGGTCA
+chr11 8576340 8576355 +V_IPF1_Q4_01 4.63901e-06 + TAGGTCATTAGAGTG
+chr11 8576342 8576354 -V_IPF1_Q4 9.66009e-06 - ACTCTAATGACC
+chr11 10425255 10425272 -V_FOXP3_Q4 6.47398e-06 - AAGCTTTTGTTACAGAG
+chr11 10425267 10425278 -V_LEF1TCF1_Q4 5.90916e-06 - CCTTTGAAGCT
+chr11 10425269 10425279 +V_LEF1_Q2_01 7.66428e-06 + CTTCAAAGGG
+chr11 10425323 10425333 -V_TAL1_Q6 2.26726e-06 - TCCATCTGCT
+chr11 12367298 12367319 +V_PPARG_01 7.8357e-06 + AGGAAGGCCCAAGGTCATATG
+chr11 12367302 12367315 +V_RXRLXRB_01 5.3169e-06 + AGGCCCAAGGTCA
+chr11 12367302 12367315 +V_DR1_Q3 4.56975e-06 + AGGCCCAAGGTCA
+chr11 12367302 12367315 -V_PPAR_DR1_Q2 4.57755e-06 - TGACCTTGGGCCT
+chr11 12367302 12367315 -V_COUP_DR1_Q6 7.90564e-06 - TGACCTTGGGCCT
+chr11 12367306 12367315 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr11 12367385 12367400 -V_OCT1_02 3.23588e-06 - CAGAATATGCATCCT
+chr11 18271427 18271439 +V_NFKB_C 1.59776e-06 + AGGGACTCCCCA
+chr11 18974320 18974330 -V_SP1_Q2_01 1.0915e-06 - CCCCGCCCCT
+chr11 18974321 18974330 -V_CKROX_Q2 6.67377e-06 - CCCCGCCCC
+chr11 18974321 18974331 +V_SP1_Q6_01 2.74385e-06 + GGGGCGGGGA
+chr11 18974351 18974366 +V_OCT4_01 5.63049e-06 + CTTTATTATGTAGAT
+chr11 19933689 19933704 +V_DMRT1_01 6.01487e-06 + TGGTTACTTTGTATC
+chr11 19933719 19933730 -V_EVI1_03 2.46139e-06 - AGATAAGATAC
+chr11 19933719 19933730 -V_EVI1_05 3.95558e-06 - AGATAAGATAC
+chr11 19933760 19933771 -V_PAX_Q6 4.75211e-06 - CCGGAACTCAC
+chr11 19933762 19933776 -V_PAX6_Q2 3.37545e-06 - CTGGGCCGGAACTC
+chr11 19933784 19933795 +V_TGIF_01 1.40746e-06 + AGCTGTCACGA
+chr11 19941378 19941392 -V_KROX_Q6 9.64613e-06 - CCCACCCCCATGCC
+chr11 19941382 19941395 +V_SP1_Q6 4.47623e-06 + TGGGGGTGGGGCT
+chr11 19941383 19941392 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr11 19941383 19941393 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr11 19941383 19941396 +V_MAZR_01 7.22993e-06 + GGGGGTGGGGCTG
+chr11 19941384 19941394 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr11 19941384 19941396 -V_PAX4_03 1.74945e-06 - CAGCCCCACCCC
+chr11 19941409 19941425 -V_AP2_Q3 5.62818e-07 - GGCCGCAGGCAAGGGG
+chr11 19941465 19941480 -V_SMAD4_Q6 2.53095e-06 - GTCAGTCAGTCACCC
+chr11 19941475 19941485 +V_NUR77_Q5 2.98426e-06 + CTGACCTTGG
+chr11 19941475 19941487 +V_LRH1_Q5 3.22157e-06 + CTGACCTTGGAG
+chr11 19941476 19941485 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGG
+chr11 20782965 20782986 -V_DR3_Q4 9.26073e-06 - AACGGCCCCATTCCACCTCTT
+chr11 20782983 20782998 -V_OCT4_01 7.41924e-06 - CTTTGGAATGCAAAC
+chr11 20783011 20783026 +V_OCT4_01 9.05006e-06 + CTTTGAGATGCTAAC
+chr11 20783056 20783069 +V_NRF2_Q4 3.32319e-06 + ATGCTGATTCAGT
+chr11 20783057 20783068 +V_MAF_Q6_01 9.11965e-06 + TGCTGATTCAG
+chr11 21888714 21888724 +V_EBOX_Q6_01 1.22526e-06 + CCACCTGACC
+chr11 21888755 21888763 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr11 22507873 22507886 +V_SP1_Q6 3.06772e-06 + GGGGGGTGGGGTG
+chr11 22507874 22507883 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr11 22507874 22507884 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr11 22507876 22507891 -V_SREBP1_Q5 7.63808e-06 - CCAGACACCCCACCC
+chr11 22507880 22507889 -V_SMAD_Q6 2.71739e-06 - AGACACCCC
+chr11 22507964 22507978 -V_KROX_Q6 7.91616e-06 - CCCGCCTACTCTCC
+chr11 22521093 22521102 +V_SMAD_Q6 9.3359e-06 + AGACACCAC
+chr11 22521146 22521161 +V_OCT4_01 7.94702e-06 + TATTGTAATGTTAAG
+chr11 22521168 22521180 +V_PAX4_03 4.004e-06 + CACCACCACCCC
+chr11 22521171 22521180 -V_ZIC2_01 9.89755e-06 - GGGGTGGTG
+chr11 22521171 22521190 -V_PPARA_02 3.05216e-06 - GGGGGTGGTGGGGGTGGTG
+chr11 22521180 22521189 -V_ZIC2_01 9.89755e-06 - GGGGTGGTG
+chr11 22521208 22521220 +V_IPF1_Q4 2.08667e-06 + GCCCTAATGACC
+chr11 25373884 25373899 +V_OCT4_01 6.02107e-06 + CATTGATATTCAAAC
+chr11 26008811 26008823 +V_IPF1_Q4 2.8901e-06 + GAGCTAATGTCC
+chr11 26008828 26008846 -V_NF1_Q6 5.86126e-06 - GCTTGGCAGTTTGCCAGA
+chr11 26008829 26008846 +V_NF1_Q6_01 5.49685e-07 + CTGGCAAACTGCCAAGC
+chr11 26207653 26207665 +V_ETS_Q4 7.92948e-06 + CCCCACATCCTG
+chr11 26211292 26211310 -V_HNF3_Q6_01 1.6877e-07 - CTGTTTGTTTGCTTTTTC
+chr11 26211294 26211307 +V_HNF3_Q6 7.04647e-06 + AAAAGCAAACAAA
+chr11 26211295 26211308 -V_FOX_Q2 1.93154e-06 - GTTTGTTTGCTTT
+chr11 26211316 26211330 -V_KROX_Q6 3.79201e-06 - CCCTCCCCCACCTC
+chr11 26211320 26211333 +V_SP1_Q6 7.57405e-07 + TGGGGGAGGGGCC
+chr11 26211321 26211330 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr11 26211321 26211331 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr11 26211321 26211334 +V_MAZR_01 2.9486e-07 + GGGGGAGGGGCCA
+chr11 26211322 26211330 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr11 26211322 26211331 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr11 26211322 26211332 +V_SP1_Q6_01 2.74385e-06 + GGGGAGGGGC
+chr11 26382843 26382855 +V_ELF1_Q6 7.39845e-06 + GTTAGAGGAAGC
+chr11 26382877 26382888 +V_MAF_Q6_01 7.15365e-06 + TCCTGAGTCAA
+chr11 26382946 26382964 -V_CEBP_C 8.704e-06 - GGACTGAGGCAATCGCTG
+chr11 26382959 26382970 -V_GATA_C 6.82081e-06 - TGATAAGGACT
+chr11 26382960 26382973 -V_GATA1_04 6.24632e-06 - TGCTGATAAGGAC
+chr11 29536884 29536899 +V_OCT4_02 2.4.503e-06 + TTTGTGATGGTAATG
+chr11 29536902 29536917 -V_SMAD4_Q6 5.60159e-07 - GGGGGCCAGACAACC
+chr11 29536949 29536963 +V_DMRT7_01 8.98311e-06 + TTGTTTCCTTGTGG
+chr11 29614174 29614185 -V_PITX2_Q2 3.37707e-06 - TATAATCCCAG
+chr11 29614218 29614231 +V_SOX_Q6 4.79442e-06 + TTCTTTGTTAGGT
+chr11 29614276 29614286 -V_SP1_Q2_01 8.14617e-06 - CCCCACCCCG
+chr11 29614277 29614289 -V_PAX4_03 4.004e-06 - GTTCCCCACCCC
+chr11 29614302 29614313 -V_OCT1_Q5_01 4.4061e-06 - TGATTTACATA
+chr11 29614302 29614313 -V_OCT_Q6 8.67576e-06 - TGATTTACATA
+chr11 29960805 29960820 -V_VDR_Q3 2.76308e-06 - GGGGGAAGGTGGACA
+chr11 29960847 29960860 +V_AP1_01 3.30287e-06 + GAATGACTCAGCT
+chr11 29960848 29960861 -V_NRF2_Q4 5.51501e-06 - TAGCTGAGTCATT
+chr11 29960849 29960858 +V_AP1_Q6_01 4.03003e-06 + ATGACTCAG
+chr11 29960849 29960860 -V_NFE2_01 1.73588e-06 - AGCTGAGTCAT
+chr11 29960849 29960860 -V_MAF_Q6_01 3.10442e-06 - AGCTGAGTCAT
+chr11 30391735 30391748 +V_STAT1STAT1_Q3 3.202e-06 + GTTTCAAGGAAAC
+chr11 30391848 30391863 -V_STAT5A_01 4.95337e-06 - CATTTCTTGGAAGTA
+chr11 30391848 30391863 -V_STAT5B_01 4.88212e-06 - CATTTCTTGGAAGTA
+chr11 30391851 30391875 +V_STAT5A_02 8.20291e-07 + TTCCAAGAAATGATTTTACAAGTA
+chr11 30391870 30391880 -V_NKX22_01 5.97675e-06 - TTAAGTACTT
+chr11 30392159 30392175 +V_NFKB_Q6_01 3.23504e-06 + GGAAAGGGAATTCCCC
+chr11 30392162 30392175 +V_P50P50_Q3 1.33286e-07 + AAGGGAATTCCCC
+chr11 30392162 30392176 +V_NFKB_Q6 5.15179e-06 + AAGGGAATTCCCCT
+chr11 30392162 30392176 -V_NFKB_Q6 9.22738e-07 - AGGGGAATTCCCTT
+chr11 30392163 30392175 +V_NFKB_C 5.17264e-06 + AGGGAATTCCCC
+chr11 30392163 30392175 -V_NFKB_C 6.15227e-06 - GGGGAATTCCCT
+chr11 30392163 30392176 -V_P50P50_Q3 9.77769e-07 - AGGGGAATTCCCT
+chr11 30392163 30392179 -V_NFKB_Q6_01 1.58445e-06 - ACCAGGGGAATTCCCT
+chr11 30392164 30392174 +V_NFKAPPAB65_01 7.87917e-06 + GGGAATTCCC
+chr11 30392164 30392174 +V_NFKAPPAB_01 7.46065e-07 + GGGAATTCCC
+chr11 30392164 30392174 -V_NFKAPPAB65_01 7.87917e-06 - GGGAATTCCC
+chr11 30392164 30392174 -V_NFKAPPAB_01 7.46065e-07 - GGGAATTCCC
+chr11 30392165 30392175 -V_CREL_01 5.43478e-06 - GGGGAATTCC
+chr11 30514113 30514128 -V_SPZ1_01 3.66346e-06 - GGAGGGGGGATGGGA
+chr11 30514149 30514162 +V_NKX61_01 7.0347e-06 + GTTTTAATTGGTA
+chr11 30514345 30514358 -V_DEC_Q1 6.31544e-06 - GGGCAAGTGAAGC
+chr11 30514411 30514423 -V_FOXO3A_Q1 5.14627e-06 - TGAAAACAAATG
+chr11 30514427 30514437 +V_FOXO1_01 7.37669e-06 + AATAAACAAG
+chr11 31419229 31419247 -V_MYOD_Q6_01 6.11726e-06 - CAGACACAGGTGGCCAGA
+chr11 31419304 31419322 +V_GCNF_01 1.34815e-06 + CTGCAGCTCAAGGTCACG
+chr11 31419308 31419322 +V_ERR1_Q2 8.37418e-07 + AGCTCAAGGTCACG
+chr11 31419311 31419320 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr11 32460720 32460731 -V_LEF1TCF1_Q4 5.90916e-06 - CCTTTGAACTT
+chr11 32460720 32460734 -V_COUP_01 7.43468e-06 - GGGCCTTTGAACTT
+chr11 32460746 32460757 +V_MAF_Q6_01 2.65014e-06 + TGCTGAGGCAG
+chr11 33463688 33463703 +V_DMRT1_01 1.11988e-06 + AAGATACAATGTTGC
+chr11 33463690 33463705 -V_DMRT1_01 3.53013e-07 - CTGCAACATTGTATC
+chr11 33463695 33463708 +V_DMRT4_01 2.69658e-06 + AATGTTGCAGTTT
+chr11 34215525 34215540 -V_OCT1_Q6 2.07164e-06 - GTGCATGCAAATCCT
+chr11 34215527 34215537 -V_OCT1_B 5.44227e-06 - CATGCAAATC
+chr11 34331123 34331138 -V_OCT4_01 9.65557e-06 - CATTGTCATGGAGAG
+chr11 34331146 34331161 +V_SPZ1_01 1.96252e-06 + GTAGGAGGGTGTGCC
+chr11 34331545 34331557 -V_SREBP_Q3 7.2459e-06 - ACTGTCACCCCA
+chr11 34331566 34331581 +V_VDR_Q3 8.52845e-06 + GGGTGAGAAAGGGGA
+chr11 34331576 34331584 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr11 34331576 34331585 -V_CKROX_Q2 8.90515e-06 - TCCCTCCCC
+chr11 34394846 34394859 +V_SP1_Q6 8.76141e-06 + GGGGGGAGGGGGA
+chr11 34394847 34394856 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr11 34394847 34394857 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr11 34394847 34394858 -V_SP1SP3_Q4 2.8432e-06 - CCCCCTCCCCC
+chr11 34394848 34394856 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr11 34394848 34394857 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr11 34394848 34394858 +V_SP1_Q6_01 8.48538e-06 + GGGGAGGGGG
+chr11 37934791 37934801 -V_SP1_Q2_01 9.56538e-06 - CCCCACCCCT
+chr11 37934792 37934802 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr11 37934792 37934804 -V_PAX4_03 1.74945e-06 - CAGCCCCACCCC
+chr11 37934797 37934806 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr11 37934858 37934869 +V_EGR_Q6 6.21659e-06 + GTGGGGGGAAC
+chr11 37934900 37934911 +V_LEF1TCF1_Q4 3.42525e-06 + CCTTTGTTCTT
+chr11 37934932 37934955 +V_OCT1_04 6.1322e-06 + TTTTAGTTATGCAAATATGAAGC
+chr11 37934933 37934948 +V_OCT4_01 6.39105e-07 + TTTAGTTATGCAAAT
+chr11 37934934 37934953 +V_OCT1_01 6.79648e-07 + TTAGTTATGCAAATATGAA
+chr11 37934939 37934949 +V_OCT1_B 4.33582e-06 + TATGCAAATA
+chr11 37934939 37934950 -V_OCT_Q6 7.92146e-06 - ATATTTGCATA
+chr11 39492130 39492143 +V_GATA1_04 6.24632e-06 + TTCTGATAAGGAC
+chr11 39492133 39492144 +V_GATA_C 6.82081e-06 + TGATAAGGACT
+chr11 39492167 39492183 +V_MAF_Q6 6.64814e-06 + AAGGAGAAAGTGGGCT
+chr11 39492201 39492216 -V_OCT4_01 4.28625e-06 - CATTGAGATGTAGAT
+chr11 40846679 40846698 -V_SEF1_C 7.54795e-06 - AACTCGGCTATCTATAGTT
+chr11 41923357 41923366 +V_T3R_Q6 8.74404e-06 + CCTGTCCTG
+chr11 41923405 41923422 +V_DR4_Q2 2.92515e-07 + TGTCCTGCACTGACCTT
+chr11 41923753 41923766 -V_HFH3_01 2.62184e-06 - GCTTGTTTGTATA
+chr11 43334056 43334065 +V_SMAD3_Q6 4.03003e-06 + TGTCTGTCT
+chr11 43334089 43334100 +V_EBF_Q6 2.28749e-06 + CTCCCCTGGGA
+chr11 43361884 43361894 +V_ESE1_Q3 8.06007e-06 + TGCTTCCTGT
+chr11 43361993 43362009 -V_S8_01 8.05419e-06 - CTAACCCAATTAGCGG
+chr11 45833946 45833964 +V_HNF3_Q6_01 6.08391e-06 + TGTCTTGTTTGCTCTTGT
+chr11 45833982 45833997 +V_OCT4_01 9.73507e-08 + ATTTGTTATGCAAAT
+chr11 45833983 45833998 +V_OCT4_02 1.61981e-06 + TTTGTTATGCAAATA
+chr11 45833988 45833998 +V_OCT1_B 4.33582e-06 + TATGCAAATA
+chr11 45833988 45833999 -V_OCT_Q6 9.41564e-06 - CTATTTGCATA
+chr11 45947357 45947371 +V_DMRT7_01 9.63794e-06 + TTGTTACACTGTTG
+chr11 45947357 45947372 +V_DMRT1_01 1.79174e-06 + TTGTTACACTGTTGC
+chr11 45947364 45947377 +V_DMRT4_01 7.19979e-06 + ACTGTTGCAAATT
+chr11 49619834 49619843 +V_T3R_Q6 3.30926e-06 + CCTGTCCTT
+chr11 50065759 50065770 -V_EBF_Q6 2.83527e-06 - GTCCCTAGAGA
+chr11 50065764 50065776 +V_NFKB_C 4.56464e-06 + AGGGACATTCCA
+chr11 50065784 50065804 +V_YY1_02 7.90745e-06 + ACCAGGCCATGGGGGCTGGA
+chr11 50065882 50065892 -V_P53_DECAMER_Q2 2.10476e-06 - AGGCAAGTCC
+chr11 50065882 50065902 +V_P53_01 2.02041e-06 + GGACTTGCCTGGACTTGCTC
+chr11 50065882 50065902 -V_P53_01 1.07603e-06 - GAGCAAGTCCAGGCAAGTCC
+chr11 50204903 50204920 +V_HSF1_Q6 3.07173e-06 + CTTCTGGAGCTGTCTGC
+chr11 51299721 51299732 +V_EVI1_03 8.92601e-06 + AGATAAGATGA
+chr11 51299743 51299756 +V_AP2_Q6_01 3.36599e-06 + GCGCCCCGAGGCC
+chr11 51299744 51299756 +V_AP2_Q6 5.99026e-06 + CGCCCCGAGGCC
+chr11 51299777 51299798 -V_PPARG_01 4.51757e-07 - CACAAGGTCAAAGGACATCCT
+chr11 51299780 51299794 -V_HNF4_Q6_01 8.37803e-06 - AGGTCAAAGGACAT
+chr11 51299781 51299794 +V_PPAR_DR1_Q2 1.23352e-06 + TGTCCTTTGACCT
+chr11 51299781 51299794 +V_HNF4_DR1_Q3 2.08574e-06 + TGTCCTTTGACCT
+chr11 51299781 51299794 +V_COUP_DR1_Q6 4.83437e-06 + TGTCCTTTGACCT
+chr11 51299781 51299794 -V_RXRLXRB_01 5.09071e-07 - AGGTCAAAGGACA
+chr11 51299781 51299794 -V_DR1_Q3 6.51335e-07 - AGGTCAAAGGACA
+chr11 51299781 51299798 -V_PPARG_03 8.20535e-06 - CACAAGGTCAAAGGACA
+chr11 51299809 51299822 +V_SP1_Q6 3.23457e-06 + TGGGGGAGGGGTG
+chr11 51299810 51299819 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr11 51299810 51299820 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr11 51299811 51299819 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr11 51299811 51299820 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr11 51299811 51299821 +V_SP1_Q6_01 9.74073e-06 + GGGGAGGGGT
+chr11 54016012 54016040 +V_PAX5_01 6.53963e-06 + CTGTGGGGGAGGGAGGGGGAGCAGGACT
+chr11 54016016 54016025 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr11 54016017 54016025 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr11 54016017 54016026 -V_CKROX_Q2 8.90515e-06 - TCCCTCCCC
+chr11 54016101 54016115 -V_POU3F2_01 1.94414e-06 - ATGCTTTAATTCAT
+chr11 54070473 54070490 +V_HSF1_Q6 1.14153e-08 + TTTCTGGAAATTTCTCC
+chr11 54647747 54647764 +V_RFX1_01 9.69922e-06 + CAGACGCCTGGAAACCA
+chr11 54647843 54647853 -V_GATA6_01 9.61771e-06 - ACAGATAAGC
+chr11 55219657 55219666 -V_AP2ALPHA_01 9.68294e-06 - GCCCGAGGG
+chr11 55219657 55219666 -V_AP2GAMMA_01 7.85065e-06 - GCCCGAGGG
+chr11 55219688 55219697 +V_FOXM1_01 8.06007e-06 + AGATGGACT
+chr11 55219747 55219763 +V_LXR_DR4_Q3 2.06158e-06 + TGACCGGATGTGACCA
+chr11 55219747 55219765 -V_LXR_Q3 4.48062e-06 - CATGGTCACATCCGGTCA
+chr11 55219749 55219759 +V_CETS1P54_01 6.77271e-06 + ACCGGATGTG
+chr11 55219750 55219761 +V_FLI1_Q6 2.00328e-06 + CCGGATGTGAC
+chr11 55219759 55219770 -V_ER_Q6_02 9.65928e-06 - GAGGTCATGGT
+chr11 55219776 55219800 -V_BRACH_01 8.98588e-06 - AGCTCCACAGTTTGGTGTCAGATT
+chr11 55264017 55264034 -V_FOXP3_Q4 5.24137e-06 - GAAAGGCTGTTTCCTAC
+chr11 55264057 55264066 -V_SMAD_Q6 9.3359e-06 - AGACACCCT
+chr11 55760293 55760304 -V_GATA_C 6.82081e-06 - AGATAAGCCCA
+chr11 55760294 55760307 -V_GATA1_04 7.26537e-06 - AGCAGATAAGCCC
+chr11 55760359 55760374 -V_OCT4_02 5.30392e-06 - TTTGTCATGCAAGAT
+chr11 55760360 55760375 -V_OCT4_01 4.91956e-06 - CTTTGTCATGCAAGA
+chr11 55760369 55760383 +V_BLIMP1_Q6 4.78735e-06 + ACAAAGGGAAAGTG
+chr11 55770991 55771005 +V_ERR1_Q2 5.40592e-06 + TTCTGAAGGTCATG
+chr11 57474481 57474490 +V_CKROX_Q2 8.90515e-06 + TCCCTCCCC
+chr11 57474482 57474490 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr11 57914948 57914966 +V_HNF3_Q6_01 7.43361e-06 + CTTTTTGTTTGTTTGTTT
+chr11 57914948 57914966 -V_FOXJ2_01 9.22567e-06 - AAACAAACAAACAAAAAG
+chr11 57914950 57914962 +V_FOXD3_01 9.53633e-06 + TTTTGTTTGTTT
+chr11 57914950 57914963 +V_HFH4_01 5.28594e-06 + TTTTGTTTGTTTG
+chr11 57914950 57914970 +V_FOXP1_01 3.48675e-06 + TTTTGTTTGTTTGTTTGTTT
+chr11 57914951 57914964 -V_HNF3_Q6 8.74112e-06 - ACAAACAAACAAA
+chr11 57914952 57914970 +V_HNF3_Q6_01 8.19906e-06 + TTGTTTGTTTGTTTGTTT
+chr11 57914952 57914970 -V_FOXJ2_01 8.71392e-07 - AAACAAACAAACAAACAA
+chr11 57914954 57914966 +V_FOXD3_01 9.66278e-07 + GTTTGTTTGTTT
+chr11 57914954 57914967 +V_FOX_Q2 5.55936e-06 + GTTTGTTTGTTTG
+chr11 57914954 57914967 +V_HFH3_01 7.45015e-06 + GTTTGTTTGTTTG
+chr11 57914954 57914967 +V_HFH4_01 7.99656e-06 + GTTTGTTTGTTTG
+chr11 57914955 57914968 -V_HNF3_Q6 8.74112e-06 - ACAAACAAACAAA
+chr11 57914956 57914974 -V_FOXJ2_01 5.17183e-06 - CCTCAAACAAACAAACAA
+chr11 57914958 57914970 +V_FOXD3_01 9.66278e-07 + GTTTGTTTGTTT
+chr11 57914958 57914971 +V_FOX_Q2 5.55936e-06 + GTTTGTTTGTTTG
+chr11 57914958 57914971 +V_HFH3_01 7.45015e-06 + GTTTGTTTGTTTG
+chr11 57914958 57914971 +V_HFH4_01 7.99656e-06 + GTTTGTTTGTTTG
+chr11 57914996 57915014 -V_GCNF_01 9.12595e-06 - AGCAAGGTCCAGGACAGC
+chr11 57914997 57915011 +V_PAX6_Q2 5.90365e-06 + CTGTCCTGGACCTT
+chr11 57915002 57915011 -V_HNF4_Q6 7.33929e-06 - AAGGTCCAG
+chr11 57915002 57915016 -V_HNF4_Q6_01 9.45536e-06 - AGAGCAAGGTCCAG
+chr11 59521622 59521631 +V_AP2ALPHA_01 6.01835e-06 + GCCCCGGGC
+chr11 59521622 59521631 +V_AP2GAMMA_01 6.01835e-06 + GCCCCGGGC
+chr11 59521622 59521631 -V_AP2ALPHA_01 3.00918e-06 - GCCCGGGGC
+chr11 59521622 59521631 -V_AP2GAMMA_01 3.00918e-06 - GCCCGGGGC
+chr11 59521667 59521676 +V_SMAD_Q6 9.3359e-06 + AGACACCAC
+chr11 59521756 59521765 -V_SMAD3_Q6 4.03003e-06 - TGTCTGTCT
+chr11 59705589 59705607 -V_RFX1_02 2.86549e-06 - CAGCAGCCATGGCAACTG
+chr11 59705663 59705672 +V_AP2ALPHA_01 3.00918e-06 + GCCCGGGGC
+chr11 59705663 59705672 +V_AP2GAMMA_01 3.00918e-06 + GCCCGGGGC
+chr11 59705663 59705672 -V_AP2ALPHA_01 6.01835e-06 - GCCCCGGGC
+chr11 59705663 59705672 -V_AP2GAMMA_01 6.01835e-06 - GCCCCGGGC
+chr11 59705681 59705696 +V_DMRT1_01 6.80276e-06 + TAGTTACTTTGTTTC
+chr11 60205404 60205418 +V_ETS2_B 7.32788e-06 + TGCAGGAAACGTTT
+chr11 60205439 60205454 +V_DMRT3_01 4.65166e-06 + TGGTTGATACAATGT
+chr11 60205442 60205456 +V_DMRT7_01 3.27916e-06 + TTGATACAATGTGT
+chr11 60205442 60205457 +V_DMRT1_01 4.26013e-07 + TTGATACAATGTGTC
+chr11 60205442 60205461 +V_GR_Q6 9.09779e-06 + TTGATACAATGTGTCCAAA
+chr11 60205444 60205459 -V_DMRT1_01 6.49273e-06 - TGGACACATTGTATC
+chr11 60205492 60205501 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr11 60205510 60205525 +V_DMRT5_01 9.57435e-06 + TTTAGTAACAGTGTT
+chr11 60205512 60205526 +V_DMRT7_01 4.06802e-06 + TAGTAACAGTGTTG
+chr11 60700711 60700731 -V_FOXP1_01 8.89042e-08 - TTGTTTGTTTTGTTTTGTTT
+chr11 60700717 60700735 +V_FOXJ2_01 2.67854e-06 + AACAAAACAAACAAAAGA
+chr11 60700717 60700735 -V_HNF3_Q6_01 1.09651e-06 - TCTTTTGTTTGTTTTGTT
+chr11 60700719 60700732 +V_HNF3_Q6 3.26963e-06 + CAAAACAAACAAA
+chr11 60700720 60700733 -V_FOX_Q2 1.93154e-06 - TTTTGTTTGTTTT
+chr11 60700720 60700733 -V_HFH4_01 3.17054e-06 - TTTTGTTTGTTTT
+chr11 60700721 60700733 -V_FOXD3_01 9.53633e-06 - TTTTGTTTGTTT
+chr11 60736606 60736621 +V_OCT4_01 6.02107e-06 + TATTCAGATGCAAAG
+chr11 60736607 60736622 +V_OCT4_02 3.27036e-06 + ATTCAGATGCAAAGG
+chr11 60736675 60736690 +V_SPZ1_01 2.19806e-06 + AGAGGAGGGATGGGC
+chr11 60887858 60887870 -V_TTF1_Q6 4.68363e-06 - CAGTCAAGTGGC
+chr11 60887859 60887869 -V_TITF1_Q3 7.59039e-06 - AGTCAAGTGG
+chr11 60887958 60887968 +V_NKX22_01 5.97675e-06 + TTAAGTACTT
+chr11 60887969 60887985 -V_AP2_Q3 6.78822e-06 - AGCCCCAGGCTAAACC
+chr11 61106890 61106899 -V_ZIC2_01 7.66616e-06 - AGGGTGGTC
+chr11 61107008 61107021 +V_GATA1_04 9.51553e-06 + ATCAGATAAGAAT
+chr11 61108092 61108111 -V_GR_Q6 7.14505e-07 - TGAGTTCATTGTGTTCTGT
+chr11 61108094 61108109 -V_AR_01 5.42378e-06 - AGTTCATTGTGTTCT
+chr11 61108133 61108144 +V_FOXO4_01 8.57006e-07 + GTAAACAAGCC
+chr11 61108173 61108191 +V_FOXJ2_01 9.96532e-06 + CATAAAATAAACAGACCG
+chr11 61108176 61108189 -V_FOX_Q2 4.08159e-06 - GTCTGTTTATTTT
+chr11 61108205 61108219 +V_PAX6_Q2 3.0018e-07 + CTGTGCTGGAACTT
+chr11 61108219 61108232 +V_SP1_Q6 7.04257e-06 + CAGGGGCGGAGTG
+chr11 61108231 61108242 +V_YY1_Q6_02 3.10442e-06 + GCCTCCATTTT
+chr11 63842709 63842726 -V_DR4_Q2 6.81376e-06 - TGCCCTGTAGTAAACTA
+chr11 63842751 63842768 +V_NF1_Q6_01 2.18952e-06 + CTGGACAATGGCCAAGG
+chr11 63936816 63936827 -V_EVI1_03 2.46139e-06 - AGATAAGATAC
+chr11 63936816 63936827 -V_EVI1_05 3.95558e-06 - AGATAAGATAC
+chr11 63936838 63936853 -V_ETS1_B 2.60229e-06 - GCAGGAAGTGAGATC
+chr11 63936840 63936852 +V_ETS_Q4 4.36344e-06 + TCTCACTTCCTG
+chr11 63936840 63936854 -V_ETS2_B 4.09631e-06 - AGCAGGAAGTGAGA
+chr11 63936841 63936852 -V_FLI1_Q6 2.00328e-06 - CAGGAAGTGAG
+chr11 63936883 63936896 -V_MAZR_01 2.4135e-06 - TGGGGTGGGGACA
+chr11 63936889 63936902 -V_SP1_Q6 7.54104e-06 - TGGGGGTGGGGTG
+chr11 63936891 63936901 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr11 63936892 63936901 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr11 64638868 64638877 +V_MYB_Q5_01 2.71739e-06 + CAACTGCCC
+chr11 64638928 64638938 +V_TBX5_Q5 5.68466e-06 + TTCACACCTG
+chr11 64647492 64647501 +V_HNF4_Q6 7.33929e-06 + AAGGTCCAA
+chr11 64692128 64692144 +V_AP2_Q3 3.22678e-06 + AGCCCCAGGCAGAGGT
+chr11 64692155 64692173 +V_GCNF_01 4.10396e-07 + CACAAGTTCAAGGCCAGT
+chr11 64692158 64692172 -V_PAX6_Q2 3.04054e-06 - CTGGCCTTGAACTT
+chr11 64692160 64692172 -V_LRH1_Q5 3.06315e-07 - CTGGCCTTGAAC
+chr11 67639298 67639311 +V_GATA1_04 6.24632e-06 + TGCAGATAAGGAT
+chr11 67639325 67639338 +V_HNF3_Q6 2.22829e-06 + CTAAGCAAATAGA
+chr11 68099462 68099475 +V_HNF3_Q6 1.54309e-06 + CTGAACAAACACT
+chr11 68099489 68099499 +V_TBX5_Q5 5.68466e-06 + TTCACACCTG
+chr11 68099533 68099542 -V_SMAD3_Q6 7.33929e-06 - TGTCTGCCT
+chr11 68207625 68207636 +V_RORA_Q4 2.9528e-06 + AAACTGGGTCA
+chr11 68207667 68207677 -V_IK_Q5 7.92622e-06 - TCTGGGAGGC
+chr11 69285119 69285132 -V_AP1_01 5.13952e-06 - GAATGAGTCAGAT
+chr11 69285121 69285130 -V_AP1_C 4.03003e-06 - ATGAGTCAG
+chr11 69517792 69517806 +V_OCT1_05 2.70074e-06 + CTAATTATCATATT
+chr11 69518011 69518021 +V_EBOX_Q6_01 6.43409e-06 + CCACCTGGCC
+chr11 72099766 72099776 -V_SP1_Q6_01 4.32232e-06 - GGGGTGGGGC
+chr11 72099767 72099777 +V_SP1_Q2_01 8.14617e-06 + CCCCACCCCG
+chr11 72234124 72234136 +V_GATA4_Q3 3.87593e-06 + AGATAAAAGGGG
+chr11 722.4.51 72234156 -V_OCT4_01 4.28625e-06 - CTTTCATATGCATAT
+chr11 74345372 74345385 +V_SP1_Q6 3.85413e-06 + TGGGGGAGGGGGG
+chr11 74345373 74345382 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr11 74345373 74345383 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr11 74345373 74345384 -V_SP1SP3_Q4 2.8432e-06 - CCCCCTCCCCC
+chr11 74345373 74345388 +V_VDR_Q3 1.22689e-06 + GGGGGAGGGGGGACC
+chr11 74345374 74345382 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr11 74345374 74345383 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr11 74345374 74345384 +V_SP1_Q6_01 8.48538e-06 + GGGGAGGGGG
+chr11 74345375 74345388 +V_MAZR_01 4.80613e-06 + GGGAGGGGGGACC
+chr11 74345417 74345428 -V_EVI1_03 8.92601e-06 - AGATAAGATGA
+chr11 75366622 75366632 +V_PR_Q2 2.92358e-06 + GAGAGAACAC
+chr11 75366676 75366690 -V_BLIMP1_Q6 7.33178e-06 - AGGCAGGGAAAGTT
+chr11 75366700 75366717 +V_DR4_Q2 5.18349e-06 + TACCCTCTCCTGAGCCC
+chr11 75366729 75366747 -V_FOXJ2_01 7.26098e-06 - CAAAACATAAACATCCCA
+chr11 75366758 75366767 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr11 75826914 75826932 -V_FOXJ2_01 1.40736e-06 - AAACAAACAAACAACAAA
+chr11 75826916 75826929 +V_HFH3_01 5.62995e-06 + TGTTGTTTGTTTG
+chr11 75826918 75826936 -V_FOXJ2_01 3.94462e-06 - TTAGAAACAAACAAACAA
+chr11 75826920 75826932 +V_FOXD3_01 9.66278e-07 + GTTTGTTTGTTT
+chr11 76407591 76407607 +V_EVI1_01 8.79659e-06 + AGGCAAGAAAAGAGAA
+chr11 76460931 76460943 -V_ETS_Q4 4.90737e-06 - AACCCCTTCCTG
+chr11 76461051 76461061 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr11 76461052 76461061 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr11 76461053 76461064 +V_SP1SP3_Q4 4.25103e-06 + CCACCCCCTCC
+chr11 77269571 77269581 -V_MYB_Q6 4.20952e-06 - CTCAACTGCC
+chr11 77269636 77269646 +V_NCX_01 5.32427e-06 + TGGTAATTGG
+chr11 77269648 77269663 +V_OCT4_01 9.05006e-06 + TATTGTGAAGCAAAT
+chr11 77269702 77269720 +V_GCNF_01 1.92021e-06 + TCGAAATTCAAGGTCATC
+chr11 77269709 77269718 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr11 77493764 77493780 -V_MAF_Q6 4.64105e-07 - TAAAAGGAAGTGTGGT
+chr11 77493768 77493779 -V_ELF5_01 8.57585e-06 - AAAAGGAAGTG
+chr11 77552213 77552228 -V_CP2_02 5.58152e-07 - GCTGGGTCCCTCTGG
+chr11 77552334 77552348 -V_ERR1_Q2 6.40101e-06 - GCCTCAAGGTCACC
+chr11 77552336 77552345 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr11 77650386 77650397 -V_E12_Q6 5.58116e-06 - GGCAGGTGGTG
+chr11 77650386 77650398 -V_MYOD_01 1.24875e-06 - GGGCAGGTGGTG
+chr11 77650386 77650398 -V_LMO2COM_01 4.26141e-06 - GGGCAGGTGGTG
+chr11 77650387 77650397 +V_MYOD_Q6 2.71739e-06 + ACCACCTGCC
+chr11 77650388 77650398 +V_EBOX_Q6_01 6.43409e-06 + CCACCTGCCC
+chr11 77650389 77650397 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr11 77650451 77650461 +V_NUR77_Q5 2.98426e-06 + CTGACCTTGG
+chr11 77650452 77650461 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGG
+chr11 77650452 77650465 +V_PPAR_DR1_Q2 4.57755e-06 + TGACCTTGGGCCT
+chr11 77650452 77650465 +V_COUP_DR1_Q6 7.90564e-06 + TGACCTTGGGCCT
+chr11 77650452 77650465 -V_RXRLXRB_01 5.3169e-06 - AGGCCCAAGGTCA
+chr11 77650452 77650465 -V_DR1_Q3 4.56975e-06 - AGGCCCAAGGTCA
+chr11 77650452 77650472 -V_PPARA_01 3.8328e-06 - TTAGTGTAGGCCCAAGGTCA
+chr11 77650507 77650521 +V_KROX_Q6 7.21197e-06 + CCTGCCCACTCTCC
+chr11 77730755 77730768 -V_STAT_Q6 9.56258e-06 - GGCTCTTCTGGGC
+chr11 77730834 77730863 +V_MYOGNF1_01 5.05943e-06 + AAGTTCCCGGCTTTGGATCTGAGTCAGCT
+chr11 77730851 77730862 -V_AP1FJ_Q2 2.02766e-06 - GCTGACTCAGA
+chr11 77730851 77730862 -V_AP1_Q2 8.19335e-07 - GCTGACTCAGA
+chr11 77730851 77730862 -V_AP1_Q6 4.26015e-06 - GCTGACTCAGA
+chr11 77730851 77730862 -V_AP1_Q4 7.9984e-06 - GCTGACTCAGA
+chr11 77730870 77730883 -V_AP2_Q6_01 1.88894e-06 - GAGCCCCCAGGCT
+chr11 78613556 78613567 +V_LEF1TCF1_Q4 2.36341e-06 + CCTTTGTTGTC
+chr11 78613593 78613603 +V_NUR77_Q5 8.43564e-06 + TTGACCTTGG
+chr11 78613594 78613603 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGG
+chr11 79121894 79121903 -V_AP1_Q6_01 4.03003e-06 - ATGACTCAG
+chr11 79121906 79121918 +V_SRY_02 6.58101e-06 + TAAAACAAAAGG
+chr11 79945777 79945788 +V_EGR_Q6 7.1239e-06 + GTGGGGGGAGG
+chr11 79945817 79945831 +V_E2A_Q2 8.03505e-06 + CCACATGTCTCCTG
+chr11 80332182 80332196 +V_ETS2_B 1.29216e-07 + GACAGGAAGTCATT
+chr11 80332183 80332198 +V_ETS1_B 4.29052e-06 + ACAGGAAGTCATTCA
+chr11 80332184 80332195 +V_FLI1_Q6 4.3053e-06 + CAGGAAGTCAT
+chr11 80332184 80332196 -V_ETS_Q4 7.92948e-06 - AATGACTTCCTG
+chr11 80332193 80332208 +V_OCT4_02 8.38472e-07 + ATTCAGATGCTGATG
+chr11 80332208 80332226 +V_RFX1_02 6.30889e-06 + CCATTGCCATGGAAACCA
+chr11 80332209 80332223 +V_EFC_Q6 8.30534e-06 + CATTGCCATGGAAA
+chr11 80332244 80332253 +V_SMAD3_Q6 7.33929e-06 + TGTCTGCCT
+chr11 81426654 81426663 -V_LRF_Q2 1.50459e-06 - GGGGCCCCC
+chr11 81426663 81426678 +V_OCT4_01 2.28618e-06 + TTTTGTTATGAAAAT
+chr11 81426664 81426679 +V_OCT4_02 4.03834e-06 + TTTGTTATGAAAATG
+chr11 81426682 81426712 -V_PAX4_04 7.83759e-06 - CAAAACACAAACAGAACCCCTCCCCACTCC
+chr11 81426687 81426695 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr11 81426687 81426696 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr11 81426687 81426697 +V_SP1_Q6_01 9.74073e-06 + GGGGAGGGGT
+chr11 81426707 81426722 +V_OCT4_01 3.26181e-06 + TTTTGATATGTTAAT
+chr11 81426712 81426722 +V_POU3F2_02 5.63759e-06 + ATATGTTAAT
+chr11 81426779 81426799 +V_FOXP1_01 4.50341e-06 + TTATTTGTGCAGTTTAATTT
+chr11 82293685 82293704 -V_PPARA_02 9.54888e-07 - TCAGGTCAGTGAGGTCACA
+chr11 82293781 82293790 -V_AP2ALPHA_01 3.00918e-06 - GCCCGGGGG
+chr11 82293781 82293790 -V_AP2GAMMA_01 1.50459e-06 - GCCCGGGGG
+chr11 82695093 82695123 +V_PAX4_04 1.66169e-06 + AGAAATTACCACCACTGCCACACCCAGGTC
+chr11 82695110 82695118 +V_CACD_01 9.89755e-06 + CCACACCC
+chr11 82695170 82695182 -V_AP2_Q6 3.4263e-06 - CTCCCCCAGGCC
+chr11 82695170 82695183 -V_AP2_Q6_01 6.31248e-07 - CCTCCCCCAGGCC
+chr11 82695198 82695218 +V_PPARA_01 4.4569e-06 + CAGCAGAGGGCCAAAGGACA
+chr11 82695204 82695218 -V_COUP_01 9.719e-06 - TGTCCTTTGGCCCT
+chr11 82695205 82695218 +V_DR1_Q3 9.22428e-07 + GGGCCAAAGGACA
+chr11 82695205 82695218 -V_PPAR_DR1_Q2 1.00552e-06 - TGTCCTTTGGCCC
+chr11 82695205 82695218 -V_HNF4_DR1_Q3 1.2.4.5e-06 - TGTCCTTTGGCCC
+chr11 82695205 82695218 -V_COUP_DR1_Q6 2.97763e-06 - TGTCCTTTGGCCC
+chr11 82695205 82695219 +V_HNF4_Q6_01 3.0083e-06 + GGGCCAAAGGACAG
+chr11 82695211 82695220 -V_T3R_Q6 3.30926e-06 - CCTGTCCTT
+chr11 82695223 82695231 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr11 82695227 82695239 -V_NFKB_C 9.0304e-06 - GGGGACTTCACC
+chr11 82695227 82695240 -V_P50P50_Q3 6.86436e-06 - TGGGGACTTCACC
+chr11 82695242 82695255 +V_AP2_Q6_01 7.38468e-06 + CTGTCCCCAGGCT
+chr11 85053831 85053846 +V_OCT4_01 1.40241e-06 + TATTGTAATGCTAAA
+chr11 85053832 85053847 +V_OCT4_02 6.55103e-06 + ATTGTAATGCTAAAT
+chr11 85053852 85053881 -V_MYOGNF1_01 2.62185e-07 - CGGATCTTCTCATTGGCAGGCAACCAGGA
+chr11 85053853 85053871 -V_NF1_Q6 6.37048e-07 - CATTGGCAGGCAACCAGG
+chr11 85053854 85053871 +V_NF1_Q6_01 2.50925e-06 + CTGGTTGCCTGCCAATG
+chr11 85053862 85053873 +V_ALPHACP1_01 4.69148e-06 + CTGCCAATGAG
+chr11 85053924 85053940 -V_NFY_01 2.4209e-06 - ATTGACCAATCAGGGA
+chr11 85053926 85053940 +V_NFY_C 1.09413e-06 + CCTGATTGGTCAAT
+chr11 85053927 85053938 -V_NFY_Q6 2.40802e-06 - TGACCAATCAG
+chr11 85053928 85053941 -V_NFY_Q6_01 5.29946e-06 - TATTGACCAATCA
+chr11 85183134 85183144 -V_TAL1_Q6 7.46065e-07 - TCCAGCTGCT
+chr11 85183157 85183175 -V_NF1_Q6 5.86126e-06 - CCTTGGCAGGAAGCAGAG
+chr11 86654379 86654394 +V_STAT5A_01 5.96415e-06 + GAGTTCCTGGAAGTT
+chr11 86654379 86654394 +V_STAT5B_01 2.90454e-06 + GAGTTCCTGGAAGTT
+chr11 86654379 86654394 -V_STAT5A_01 2.87471e-06 - AACTTCCAGGAACTC
+chr11 86654424 86654440 +V_DMRT2_01 5.03993e-06 + TAGATTGCAACAATGT
+chr11 86654428 86654442 +V_DMRT7_01 1.54252e-06 + TTGCAACAATGTGG
+chr11 86654428 86654443 +V_DMRT1_01 6.88806e-07 + TTGCAACAATGTGGC
+chr11 86654452 86654469 -V_NF1_Q6_01 5.38936e-06 - TTGAACAGATGCCAAGG
+chr11 87984240 87984255 +V_OCT4_01 3.49929e-06 + TATTGTGATGTTAAT
+chr11 87984241 87984256 +V_OCT4_02 3.27036e-06 + ATTGTGATGTTAATT
+chr11 87984300 87984317 +V_HSF1_Q6 4.22375e-06 + ATTCAGGAAATTTCTTG
+chr11 87984375 87984389 +V_BLIMP1_Q6 5.74624e-06 + TGGAAGGGAAAGGT
+chr11 88396942 88396962 +V_YY1_02 3.7408e-06 + CCTGGGCCATGATTTCTGGT
+chr11 88396946 88396959 -V_GFI1_Q6 9.14201e-06 - AGAAATCATGGCC
+chr11 88396980 88396997 +V_YY1_01 3.54826e-06 + GAAAACCATCTTGGGAG
+chr11 88397008 88397023 +V_OCT4_01 2.64195e-06 + CTTTCTCATGCTAAC
+chr11 88522975 88522990 +V_HNF1_01 9.40951e-07 + AGTTAATATTTACAA
+chr11 88744219 88744232 +V_SP1_Q6 8.16238e-06 + AGTGGGAGGGGTC
+chr11 88744220 88744230 -V_SP1_Q2_01 9.56538e-06 - CCCCTCCCAC
+chr11 88793166 88793189 +V_PPARG_02 5.97188e-06 + CATTAGGTCACCTAGGTCTACTT
+chr11 88793222 88793232 -V_POU3F2_02 7.27852e-06 - ATATGCTAAT
+chr11 88793301 88793314 -V_COUP_DR1_Q6 9.5269e-06 - TGACCTCTGTCTT
+chr11 89103563 89103572 -V_HNF4_Q6 7.33929e-06 - AAGGTCCAG
+chr11 89103626 89103638 +V_SREBP_Q3 8.61735e-07 + GGCCTCACCCCA
+chr11 89103626 89103641 +V_SREBP_Q6 1.37849e-06 + GGCCTCACCCCAGTG
+chr11 89103626 89103641 +V_SREBP1_Q5 1.85171e-06 + GGCCTCACCCCAGTG
+chr11 89103677 89103687 +V_SP1_Q2_01 6.40385e-06 + CCCCGCCCAG
+chr11 89103706 89103714 -V_CACD_01 9.89755e-06 - CCACACCC
+chr11 94614757 94614771 +V_BLIMP1_Q6 1.30162e-06 + TGAAAGGGAAATGA
+chr11 94614781 94614799 +V_AHR_01 2.00052e-06 + CCTCAGGCTAGCGAGAAA
+chr11 94614801 94614812 +V_AP1_Q6 6.96691e-06 + CCTGACTCAGC
+chr11 94614801 94614814 -V_NRF2_Q4 2.30897e-08 - CTGCTGAGTCAGG
+chr11 94614802 94614813 -V_MAF_Q6_01 4.54281e-07 - TGCTGAGTCAG
+chr11 94614827 94614837 +V_MYOD_Q6 1.49213e-06 + AGCACCTGTC
+chr11 94614832 94614843 -V_SMAD_Q6_01 9.38894e-06 - TTGTCAGACAG
+chr11 94614874 94614889 +V_SPZ1_01 8.55807e-06 + GAAGGGGGGAGGGGC
+chr11 94614877 94614890 +V_SP1_Q6 5.66938e-07 + GGGGGGAGGGGCT
+chr11 94614878 94614887 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr11 94614878 94614888 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr11 94614878 94614891 +V_MAZR_01 7.22993e-06 + GGGGGAGGGGCTT
+chr11 94614879 94614887 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr11 94614879 94614888 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr11 94614879 94614889 +V_SP1_Q6_01 2.74385e-06 + GGGGAGGGGC
+chr11 94865701 94865716 -V_BACH1_01 4.98171e-06 - CCCATGAGTCACCAC
+chr11 94865702 94865715 -V_AP1_01 3.30287e-06 - CCATGAGTCACCA
+chr11 94865703 94865714 +V_AP1_Q6 9.43393e-06 + GGTGACTCATG
+chr11 94865703 94865714 -V_BACH2_01 1.82283e-06 - CATGAGTCACC
+chr11 94865705 94865717 +V_AP1_Q2_01 6.15786e-07 + TGACTCATGGGT
+chr11 96862298 96862306 +V_CACD_01 9.89755e-06 + CCACACCC
+chr11 96862322 96862335 -V_P50P50_Q3 4.93519e-06 - CGGGGACTTCCTC
+chr11 96862337 96862347 -V_SP1_Q2_01 6.40385e-06 - CCCCGCCCAG
+chr11 96862338 96862348 +V_SP1_Q6_01 6.74305e-06 + TGGGCGGGGT
+chr11 97282299 97282308 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr11 97282300 97282313 +V_AP2_Q6_01 5.59926e-06 + CCACCCCCAGGCT
+chr11 98427324 98427342 -V_GCNF_01 1.34815e-06 - CCAAAGGTCAAGGTCTGC
+chr11 98427332 98427346 +V_COUP_01 1.81727e-06 + TGACCTTTGGATCT
+chr11 98427354 98427365 -V_PITX2_Q2 5.53227e-07 - TGTAATCCCAG
+chr11 98653529 98653543 -V_PAX6_Q2 5.62635e-06 - CTGACTTTGAACTC
+chr11 98653591 98653602 -V_EBF_Q6 7.68235e-06 - CTCCCCTGGGG
+chr11 98764196 98764217 +V_PAX4_01 9.02717e-06 + GGAGGTGAGGGGTGGGGAGTA
+chr11 98764203 98764213 -V_SP1_Q2_01 9.56538e-06 - CCCCACCCCT
+chr11 98764204 98764216 -V_PAX4_03 5.65167e-06 - ACTCCCCACCCC
+chr11 98764210 98764232 +V_MEF2_03 6.79786e-06 + GGGAGTACTGTAAATAGACTTG
+chr11 98923282 98923293 -V_E12_Q6 4.37943e-06 - AGCAGGTGTCC
+chr11 98923307 98923327 +V_ARNT_02 4.87264e-06 + GCAGAAGCACGTGACGAATG
+chr11 98923307 98923327 -V_ARNT_02 4.87264e-06 - CATTCGTCACGTGCTTCTGC
+chr11 98923385 98923403 -V_HNF3_Q6_01 9.0308e-06 - GTCCCTGTTTATCCAGGT
+chr11 101648991 101649006 +V_OCT4_01 6.46423e-06 + TTTAGATATGTAAAT
+chr11 101649022 101649040 +V_HNF3_Q6_01 4.95025e-06 + CCCACTGTTTGCCCTGGG
+chr11 102190986 102191001 -V_OCT4_01 7.94702e-06 - TTTTGTTGTGCAAAC
+chr11 102191031 102191044 -V_MAZR_01 3.44004e-07 - AGGGGGGGGGTCC
+chr11 102191034 102191043 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr11 102191035 102191046 +V_SP1SP3_Q4 6.27849e-06 + CCCCCCCCTAC
+chr11 102191049 102191064 -V_OCT4_02 6.55103e-06 - ATTGTAATGCTAAAT
+chr11 102191050 102191065 -V_OCT4_01 1.40241e-06 - TATTGTAATGCTAAA
+chr11 102191095 102191105 -V_P53_DECAMER_Q2 2.10476e-06 - AGACAAGCCC
+chr11 102267878 102267893 +V_PEBP_Q6 8.06058e-06 + GGTGACCACAGCCCC
+chr11 102267878 102267893 -V_AML_Q6 8.07403e-07 - GGGGCTGTGGTCACC
+chr11 102268333 102268349 +V_AP2_Q3 7.15703e-07 + CGCCCCGGGCGAGGAG
+chr11 102268334 102268343 +V_AP2ALPHA_01 6.01835e-06 + GCCCCGGGC
+chr11 102268334 102268343 +V_AP2GAMMA_01 6.01835e-06 + GCCCCGGGC
+chr11 102268334 102268343 -V_AP2ALPHA_01 3.00918e-06 - GCCCGGGGC
+chr11 102268334 102268343 -V_AP2GAMMA_01 3.00918e-06 - GCCCGGGGC
+chr11 102268374 102268388 -V_FOXO1_02 5.43667e-06 - GATTTGTTTACACG
+chr11 102268376 102268388 +V_FOXO3A_Q1 3.43217e-06 + TGTAAACAAATC
+chr11 102401167 102401176 -V_AP1_C 7.33929e-06 - GTGAGTCAG
+chr11 102401181 102401195 -V_BLIMP1_Q6 5.74624e-06 - AGAAAGTAAAAGGA
+chr11 102401196 102401211 +V_OCT4_01 6.39105e-07 + CTTTGTCATGTAGAT
+chr11 102401197 102401212 +V_OCT4_02 6.55103e-06 + TTTGTCATGTAGATG
+chr11 102401227 102401240 -V_HSF_Q6 1.26331e-06 - TTCCAGAGGTCTC
+chr11 102401245 102401260 +V_SMAD4_Q6 2.4.551e-06 + GTCAGTGAGCCATCT
+chr11 103382113 103382126 -V_ZEC_01 4.33268e-06 - CAAGCTTGGTTCC
+chr11 103382118 103382131 +V_ZEC_01 4.33268e-06 + CAAGCTTGGTTCC
+chr11 103382139 103382153 -V_HIF1_Q3 9.77447e-06 - GAGCACGTGCTGCT
+chr11 103382141 103382153 +V_CMYC_01 2.01844e-06 + CAGCACGTGCTC
+chr11 103382141 103382153 -V_CMYC_02 4.59628e-06 - GAGCACGTGCTG
+chr11 106494893 106494921 -V_PAX5_01 3.68845e-06 - CCCCTACTCAAGGCTGAGGGAAGGGCAC
+chr11 106495018 106495033 -V_OCT4_02 3.74554e-06 - ATTGAGTTGCAAAGC
+chr11 106495059 106495069 +V_CREL_01 7.83548e-06 + TGGGCTTTCC
+chr11 106585863 106585878 -V_OCT4_01 7.94702e-06 - TTTTGTTGTGCAAAC
+chr11 107180606 107180621 -V_AR_Q2 9.40759e-06 - AGAAGGCTCTGTTCT
+chr11 107180619 107180634 +V_DMRT1_01 6.57878e-07 + CTGCTACAATGTTAC
+chr11 107180621 107180636 -V_DMRT1_01 2.48775e-07 - TTGTAACATTGTAGC
+chr11 107180622 107180636 -V_DMRT7_01 1.189e-06 - TTGTAACATTGTAG
+chr11 107180642 107180658 -V_ARNT_01 7.95789e-06 - CTTAGCACGTGTCGGC
+chr11 107180660 107180670 +V_NUR77_Q5 2.98426e-06 + CTGACCTTGC
+chr11 107180660 107180672 +V_LRH1_Q5 5.2397e-07 + CTGACCTTGCAC
+chr11 107180660 107180674 +V_PAX6_Q2 9.3218e-06 + CTGACCTTGCACCC
+chr11 107180665 107180679 +V_MTF1_Q4 5.17181e-06 + CTTGCACCCAGCAC
+chr11 107203876 107203887 +V_PITX2_Q2 8.24871e-06 + TGTAATCCAAG
+chr11 109171310 109171340 +V_HOX13_01 2.52765e-06 + TTCCACCTGCGTCATTAGCCCACCCTACAA
+chr11 109171414 109171429 +V_DMRT1_01 9.21473e-06 + AGGCTACAATGTAAC
+chr11 109171416 109171431 -V_DMRT1_01 8.06116e-08 - TTGTTACATTGTAGC
+chr11 109171417 109171431 -V_DMRT7_01 2.34554e-07 - TTGTTACATTGTAG
+chr11 109171418 109171433 -V_DMRT5_01 1.18352e-06 - GATTGTTACATTGTA
+chr11 109171419 109171434 -V_DMRT3_01 1.58272e-07 - AGATTGTTACATTGT
+chr11 109171419 109171435 -V_DMRT2_01 2.25833e-08 - CAGATTGTTACATTGT
+chr11 109171421 109171434 +V_DMRT4_01 9.60733e-06 + AATGTAACAATCT
+chr11 109171449 109171463 -V_DMRT7_01 5.58502e-06 - TTGTTACAATTCAG
+chr11 109171451 109171466 -V_DMRT3_01 2.37311e-06 - GGATTGTTACAATTC
+chr11 109171478 109171493 +V_DMRT1_01 9.21473e-06 + AGGCTACAATGTAAC
+chr11 110119411 110119430 +V_OCT1_01 8.50524e-07 + ACTCATATGCAAATGTCTG
+chr11 110119415 110119428 -V_OCT_C 9.35619e-06 - GACATTTGCATAT
+chr11 110119416 110119426 +V_OCT1_B 4.33582e-06 + TATGCAAATG
+chr11 110119416 110119427 -V_OCT_Q6 7.02042e-06 - ACATTTGCATA
+chr11 110119436 110119449 +V_SP1_Q6 5.21945e-06 + AGGGGGCCGGGCT
+chr11 110904889 110904904 -V_OCT4_01 4.57831e-06 - TATTCTAATGCTAAG
+chr11 112821013 112821026 +V_OCT_C 5.21366e-06 + TTTATTTGCATGT
+chr11 112821014 112821025 +V_OCT1_Q5_01 6.50785e-06 + TTATTTGCATG
+chr11 112821014 112821025 +V_OCT_Q6 6.34669e-06 + TTATTTGCATG
+chr11 112821039 112821049 -V_ESE1_Q3 8.06007e-06 - TGCTTCCTGT
+chr11 112821043 112821058 -V_DMRT1_01 8.16534e-06 - TGGAGACATTGCTTC
+chr11 112821148 112821167 +V_OCT1_01 9.8471e-06 + CCATCTATGCAAATGTGAT
+chr11 112821152 112821165 -V_OCT_C 6.71556e-06 - CACATTTGCATAG
+chr11 112821153 112821163 +V_OCT1_B 4.33582e-06 + TATGCAAATG
+chr11 112821153 112821164 -V_OCT_Q6 7.02042e-06 - ACATTTGCATA
+chr11 113596653 113596666 +V_RXRLXRB_01 9.21472e-06 + AGATCAAAGGGCA
+chr11 113596653 113596667 +V_HNF4_Q6_01 6.93604e-06 + AGATCAAAGGGCAG
+chr11 113596654 113596664 +V_LEF1_Q2_01 1.81713e-06 + GATCAAAGGG
+chr11 113596699 113596710 +V_NFE2_01 1.48643e-06 + AGCTGAGTCAC
+chr11 113596699 113596712 -V_AP1_01 7.96108e-06 - GTGTGACTCAGCT
+chr11 113880357 113880372 +V_SPZ1_01 8.55807e-06 + GGAGGAGGGAGAGCC
+chr11 114004113 114004132 +V_PU1_Q4 8.89634e-06 + ACTACTTGCTTCCTCCTTA
+chr11 114004116 114004130 -V_ETS2_B 7.93504e-06 - AGGAGGAAGCAAGT
+chr11 114004213 114004222 -V_YY1_Q6 3.30926e-06 - GCCATCTTG
+chr11 114744625 114744643 +V_GCNF_01 1.46008e-06 + CAGAAGTTCAAGGTTATT
+chr11 114744635 114744648 -V_FXR_IR1_Q6 1.20077e-06 - GGATGAATAACCT
+chr11 114744693 114744702 -V_SMAD_Q6 9.3359e-06 - AGACACCAC
+chr11 114744715 114744734 -V_PU1_Q4 1.49472e-06 - CACTGCTATTTCCTCCTTT
+chr11 114961057 114961078 -V_STAT1_01 6.20081e-06 - TTTGGTTTCAGGGAAGTAGGA
+chr11 114961057 114961078 -V_STAT3_01 7.72189e-06 - TTTGGTTTCAGGGAAGTAGGA
+chr11 115333669 115333679 -V_NUR77_Q5 2.98426e-06 - CTGACCTTGC
+chr11 115335007 115335019 +V_LMO2COM_01 2.36746e-06 + CGGCAGCTGCTG
+chr11 116262012 116262033 -V_DR3_Q4 9.26073e-06 - GCTGCACGCCCTGGCCTCTCT
+chr11 116262047 116262058 -V_SMAD_Q6_01 6.47055e-06 - AAGCCAGACAG
+chr11 116277674 116277683 +V_AP1_Q6_01 4.03003e-06 + ATGACTCAG
+chr11 116642090 116642107 -V_PU1_01 8.10558e-06 - TCAAGCCGGAAGTGCAG
+chr11 116642091 116642103 -V_GABP_B 8.40995e-08 - GCCGGAAGTGCA
+chr11 116642181 116642194 +V_AP2_Q6_01 4.74029e-06 + TGGGCCCCAGGCT
+chr11 116642183 116642199 +V_AP2_Q3 1.31713e-06 + GGCCCCAGGCTGTACT
+chr11 116642205 116642217 -V_FOXO3A_Q1 3.05628e-06 - TGTAAACAAGAG
+chr11 116642205 116642219 +V_FOXO1_02 9.97629e-06 + CTCTTGTTTACAAT
+chr11 116642205 116642219 +V_FOXO4_02 8.12864e-06 + CTCTTGTTTACAAT
+chr11 116642205 116642219 +V_FOXO3_01 2.75203e-06 + CTCTTGTTTACAAT
+chr11 116642351 116642370 -V_ER_Q6 8.2639e-06 - ACAGTTCTCAGTGACCCCC
+chr11 116642441 116642450 +V_FOXM1_01 8.06007e-06 + AGATGGACT
+chr11 116725860 116725869 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr11 116725860 116725870 -V_NUR77_Q5 8.43564e-06 - TTGACCTTGG
+chr11 117491364 117491377 +V_SP1_Q6 3.06772e-06 + GGGGGGTGGGGTG
+chr11 117491365 117491374 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr11 117491365 117491375 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr11 117491366 117491396 -V_PAX4_04 1.47136e-06 - TGAAAATGCTTACACACCCCACCCCACCCC
+chr11 117491367 117491382 -V_SREBP_Q6 4.69758e-06 - CACCCCACCCCACCC
+chr11 117491367 117491382 -V_SREBP1_Q5 7.63808e-06 - CACCCCACCCCACCC
+chr11 117491388 117491403 +V_OCT4_01 6.46423e-06 + CATTTTCATGTAGAT
+chr11 118169462 118169477 -V_OCT4_02 1.90479e-06 - ATTCAGTTGCAAATT
+chr11 119017647 119017660 -V_IK1_01 1.73672e-06 - GTATGGGAATGCC
+chr11 120037427 120037440 -V_AP2_Q6_01 6.01724e-06 - CCTGCCTCAGGCC
+chr11 120037439 120037447 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr11 120037463 120037473 -V_IK_Q5 6.81053e-06 - TGTGGGAGGG
+chr11 120037468 120037476 +V_CACD_01 9.89755e-06 + CCACACCC
+chr11 120037479 120037492 +V_AP2_Q6_01 4.89303e-07 + CAGGCCCCAGGCC
+chr11 120727211 120727226 +V_SREBP1_Q5 6.2466e-06 + TCCCTCACTCCATGG
+chr11 120727222 120727236 -V_HNF4_Q6_01 6.48063e-06 - GAGGCAAAGGCCAT
+chr11 120727223 120727236 +V_HNF4_DR1_Q3 1.68573e-06 + TGGCCTTTGCCTC
+chr12 4904924 4904935 +V_OCT1_Q5_01 7.81079e-06 + TAATTTACATA
+chr12 4904926 4904941 -V_OCT4_01 1.18992e-06 - AATTGATATGTAAAT
+chr12 4904975 4904988 -V_NRF2_Q4 9.9544e-07 - ATGCTGATTCATG
+chr12 4904976 4904987 -V_MAF_Q6_01 9.11965e-06 - TGCTGATTCAT
+chr12 4905002 4905013 +V_LEF1TCF1_Q4 2.36341e-06 + CCTTTGATCCT
+chr12 4905026 4905037 +V_YY1_Q6_02 8.84888e-06 + GCAGCCATTTT
+chr12 4905044 4905058 +V_CEBPA_01 5.41745e-06 + ACATTGCAAAACAA
+chr12 8062942 8062953 +V_EVI1_05 5.83412e-06 + AGATAGGATAG
+chr12 12184427 12184442 +V_TAXCREB_01 9.20796e-06 + GGGGGGTGACACAGG
+chr12 12184471 12184482 -V_LEF1TCF1_Q4 4.49892e-06 - CCTTTGTTCTC
+chr12 12810582 12810603 +V_DR3_Q4 9.86572e-07 + GGTGCCCTCCCTGCCCTTGGG
+chr12 12810636 12810649 +V_OCT_C 3.56696e-06 + TTCATTTGCATGA
+chr12 12810637 12810648 +V_OCT1_Q5_01 5.83412e-06 + TCATTTGCATG
+chr12 12810637 12810648 +V_OCT_Q6 4.86692e-06 + TCATTTGCATG
+chr12 12810638 12810653 -V_OCT4_02 3.48694e-06 - ACTGTCATGCAAATG
+chr12 12810715 12810738 +V_PPARG_02 6.90451e-06 + AACTTGTCCAAGGTCACCCAGTT
+chr12 12810715 12810738 -V_PPARG_02 6.51622e-06 - AACTGGGTGACCTTGGACAAGTT
+chr12 12810720 12810732 -V_LRH1_Q5 1.22748e-06 - GTGACCTTGGAC
+chr12 12810722 12810731 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr12 12810734 12810748 +V_EFC_Q6 4.56902e-06 + AGTTACTTGGCACC
+chr12 14095951 14095966 +V_OCT4_01 1.66527e-07 + TTTTGTCATGTAAAT
+chr12 14095952 14095967 +V_OCT4_02 6.55103e-06 + TTTGTCATGTAAATT
+chr12 16292119 16292138 -V_PPARA_02 3.31972e-06 - GGAGGTGAGTTGGGTGGGG
+chr12 17753583 17753597 -V_DMRT7_01 9.63794e-06 - TGGCTACATTTTAG
+chr12 17753633 17753653 -V_P53_01 4.5909e-06 - GGGCAGGCCCAGCCAGGTCG
+chr12 21451400 21451419 +V_ER_Q6 4.06944e-06 + TGTGGTCCCTGTGACCTGC
+chr12 21451454 21451464 +V_ESE1_Q3 3.12147e-06 + GGTTTCCTGT
+chr12 21451485 21451498 -V_HNF4_DR1_Q3 9.72151e-06 - TGGGCCTTGCCCC
+chr12 25809595 25809610 -V_OCT4_02 1.26855e-06 - ATTGACATGGTAATG
+chr12 31907703 31907722 -V_PPARA_02 2.45732e-07 - TGAGGTGGTGGGGGTGAGG
+chr12 31907704 31907718 +V_KROX_Q6 8.74919e-06 + CTCACCCCCACCAC
+chr12 31907799 31907812 -V_SP1_Q6 9.29757e-07 - GAGGGGCGGAGCC
+chr12 31907800 31907810 -V_SP1_Q6_01 3.49614e-06 - GGGGCGGAGC
+chr12 32521234 32521248 -V_NFY_C 9.88528e-06 - TCTGATTGGTTTAA
+chr12 32521258 32521281 -V_PPARG_02 7.97223e-06 - ACCCAGGTGACCCTGCCCCTAAT
+chr12 32521269 32521281 -V_USF_Q6_01 9.55721e-06 - ACCCAGGTGACC
+chr12 32521303 32521312 -V_LRF_Q2 3.33688e-06 - AGGGCCCCC
+chr12 32521314 32521329 -V_OCT4_01 2.11448e-06 - TATTGTAATGCTAAG
+chr12 32796540 32796554 +V_FOXO1_02 5.43667e-06 + GTCTTGTTTTCATG
+chr12 32796567 32796586 +V_PU1_Q4 1.34361e-08 + AGCCCTCACTTCCTCATTC
+chr12 33509657 33509672 +V_OCT4_01 5.63049e-06 + CATTCTTATTCAAAC
+chr12 33509675 33509686 +V_GAF_Q6 8.94262e-06 + CACATTCCCCT
+chr12 33958241 33958256 +V_CP2_02 3.18594e-06 + GCTGGGTGGATCTGC
+chr12 34112411 34112426 -V_OCT4_02 5.69461e-06 - ATTGATATTCTGATG
+chr12 42113424 42113441 -V_DR4_Q2 2.06731e-06 - TGCCTTCCACTGACCTC
+chr12 42828441 42828456 -V_OCT4_01 3.26181e-06 - CTTTGTCATTTAAAT
+chr12 42828457 42828472 -V_OCT1_Q6 5.8189e-06 - AACAGTGCAAATCAC
+chr12 45021448 45021457 -V_AP1_Q6_01 4.03003e-06 - ATGACTCAG
+chr12 45021475 45021491 +V_MAF_Q6 4.84012e-06 + TGAGGGGAAGCTGTCT
+chr12 45021522 45021533 -V_OCT1_Q5_01 4.4061e-06 - TGATTTACATA
+chr12 45021522 45021533 -V_OCT_Q6 8.67576e-06 - TGATTTACATA
+chr12 45681862 45681870 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr12 45681968 45681979 +V_MYB_Q3 3.40516e-06 + AGAGCCAGTTG
+chr12 45681973 45681993 +V_PPARA_01 1.75821e-06 + CAGTTGGAGGTCAAAGGTGA
+chr12 45681976 45681993 +V_PPARG_03 1.37245e-06 + TTGGAGGTCAAAGGTGA
+chr12 45681976 45681997 +V_PPARG_01 2.81055e-07 + TTGGAGGTCAAAGGTGAATAG
+chr12 45681980 45681993 +V_RXRLXRB_01 5.09071e-07 + AGGTCAAAGGTGA
+chr12 45681980 45681993 +V_DR1_Q3 8.18875e-07 + AGGTCAAAGGTGA
+chr12 45681980 45681993 -V_PPAR_DR1_Q2 7.71343e-07 - TCACCTTTGACCT
+chr12 45681980 45681993 -V_HNF4_DR1_Q3 3.06132e-06 - TCACCTTTGACCT
+chr12 45681980 45681993 -V_COUP_DR1_Q6 4.83437e-06 - TCACCTTTGACCT
+chr12 45682139 45682147 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr12 52622537 52622552 +V_VDR_Q3 4.09961e-07 + GGGGCAGGGGGGTGC
+chr12 52622588 52622607 -V_GR_Q6 4.06623e-06 - TGATCCCACTGTGTCCTTG
+chr12 52622619 52622631 +V_NANOG_01 5.79837e-06 + CGGGCCATTACC
+chr12 52959283 52959297 +V_CHX10_01 9.27708e-06 + AGGTAATTAGCATT
+chr12 52959394 52959408 -V_OCT1_06 1.34402e-06 - CTTAATGAGATGTT
+chr12 53496426 53496438 +V_TTF1_Q6 2.60851e-06 + CTCTCAAGTGCC
+chr12 53496438 53496450 +V_PAX4_03 4.004e-06 + CTTCCCCACCCC
+chr12 53496438 53496451 -V_MAZR_01 9.79421e-06 - GGGGGTGGGGAAG
+chr12 53496441 53496451 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr12 53496442 53496451 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr12 53496442 53496456 +V_KROX_Q6 5.9833e-06 + CCCACCCCCCACCC
+chr12 53496443 53496458 -V_VDR_Q3 4.22722e-06 - GGGGGTGGGGGGTGG
+chr12 53496445 53496457 +V_PAX4_03 5.05761e-06 + ACCCCCCACCCC
+chr12 53496446 53496459 -V_SP1_Q6 8.76141e-06 - TGGGGGTGGGGGG
+chr12 53496447 53496458 +V_SP1SP3_Q4 8.91927e-06 + CCCCCACCCCC
+chr12 53496448 53496458 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr12 53496448 53496467 -V_PPARA_02 5.21998e-06 - TTGGGGGGTGGGGGTGGGG
+chr12 53496449 53496458 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr12 53496449 53496460 -V_EGR_Q6 8.04446e-06 - GTGGGGGTGGG
+chr12 53496449 53496463 +V_KROX_Q6 2.21131e-07 + CCCACCCCCACCCC
+chr12 54575663 54575678 +V_OCT4_01 3.74251e-06 + TTTTGTTATGGTAAT
+chr12 54575668 54575678 +V_POU3F2_02 8.91945e-06 + TTATGGTAAT
+chr12 54575694 54575707 -V_MAZR_01 6.86006e-06 - AGGGGAGGGGCTG
+chr12 54575695 54575708 -V_SP1_Q6 2.76363e-06 - GAGGGGAGGGGCT
+chr12 54575696 54575706 -V_SP1_Q6_01 2.74385e-06 - GGGGAGGGGC
+chr12 54575697 54575706 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr12 54575697 54575707 +V_SP1_Q2_01 6.40385e-06 + CCCCTCCCCT
+chr12 54575698 54575706 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr12 54575702 54575711 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr12 54575703 54575711 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr12 54575713 54575724 +V_LEF1TCF1_Q4 1.86451e-06 + CCTTTGTTGTT
+chr12 55261343 55261353 +V_POU3F2_02 7.27852e-06 + ATATGCTAAT
+chr12 55261385 55261414 +V_MYOGNF1_01 1.34313e-06 + TGGCTGGGCTGTCCTGCATGGAGCCAGCA
+chr12 55261458 55261468 +V_CETS1P54_01 6.77271e-06 + ACCGGATGTG
+chr12 55279470 55279479 +V_SMAD3_Q6 4.03003e-06 + TGTCTGTCT
+chr12 55414120 55414139 +V_PPARA_02 7.462e-06 + CAGGGCCATCAGGGTGGGG
+chr12 55414130 55414142 -V_PAX4_03 9.67001e-06 - CAGCCCCACCCT
+chr12 58200154 58200169 -V_OCT4_01 5.63049e-06 - TTTTGTCATGTTAAC
+chr12 60608523 60608537 -V_BLIMP1_Q6 4.97194e-06 - GGAAAGAGAAAGGA
+chr12 60608525 60608536 -V_IRF_Q6_01 3.86751e-06 - GAAAGAGAAAG
+chr12 60608549 60608563 -V_BLIMP1_Q6 2.97987e-06 - AGGAAGGGAAGGTG
+chr12 60608633 60608644 +V_NFE2_01 1.48643e-06 + TGCTGACTCAT
+chr12 60608633 60608646 -V_AP1_01 1.54268e-07 - GAATGAGTCAGCA
+chr12 60608634 60608645 +V_AP1_Q2 7.83818e-06 + GCTGACTCATT
+chr12 60608634 60608645 +V_AP1_Q6 2.98654e-06 + GCTGACTCATT
+chr12 60608635 60608644 -V_AP1_C 4.03003e-06 - ATGAGTCAG
+chr12 64129399 6412.4.5 +V_OCT4_02 1.90479e-06 + ATTCAGTTGCAAATT
+chr12 6412.4.5 64129436 +V_AP1_Q2_01 2.1613e-06 + TGACTCAGGGTC
+chr12 70775737 70775750 -V_IK1_01 8.16025e-06 - GCTTGGGAATCTC
+chr12 70775767 70775776 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr12 70775768 70775776 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr12 70775768 70775777 -V_CKROX_Q2 8.90515e-06 - TCCCTCCCC
+chr12 71302316 71302331 +V_ETS1_B 5.43412e-06 + GCAGGATGTGTGTCA
+chr12 72119744 72119759 -V_DMRT1_01 6.57259e-08 - TTGATACAATGTATC
+chr12 72119746 72119761 -V_DMRT5_01 8.98763e-06 - TTTTGATACAATGTA
+chr12 72119747 72119762 -V_DMRT3_01 7.32818e-07 - CTTTTGATACAATGT
+chr12 72119747 72119763 -V_DMRT2_01 7.90403e-06 - TCTTTTGATACAATGT
+chr12 72119795 72119806 +V_PITX2_Q2 5.53227e-07 + TGTAATCCCAG
+chr12 72119846 72119864 -V_HNF3_Q6_01 8.45028e-07 - TCTTTTGTTTGCTTTGGG
+chr12 72119848 72119861 +V_HNF3_Q6 5.62156e-06 + CAAAGCAAACAAA
+chr12 72119849 72119862 -V_FOX_Q2 4.72113e-06 - TTTTGTTTGCTTT
+chr12 72434489 72434497 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr12 72434494 72434507 +V_DEC_Q1 8.9012e-06 + GCCCAGGTGAGGG
+chr12 72561840 72561853 +V_OCT_C 6.71556e-06 + GTCATTTGCATTT
+chr12 72561841 72561852 +V_OCT1_Q5_01 3.13512e-06 + TCATTTGCATT
+chr12 72561841 72561852 +V_OCT_Q6 2.98837e-06 + TCATTTGCATT
+chr12 72561894 72561908 +V_NFY_C 4.05016e-06 + TCTGCTTGGCTAGC
+chr12 72714665 72714678 -V_STAT1STAT1_Q3 3.47824e-06 - ATTTCAAAGAAAA
+chr12 74187058 74187081 +V_OCT1_04 2.58075e-07 + TCATAGTCATGCAAATGATTAGA
+chr12 74187059 74187074 +V_OCT4_01 3.19146e-07 + CATAGTCATGCAAAT
+chr12 74187060 74187075 +V_OCT4_02 7.51249e-06 + ATAGTCATGCAAATG
+chr12 74187063 74187077 -V_OCT1_05 7.22059e-06 - ATCATTTGCATGAC
+chr12 74187064 74187077 -V_OCT_C 3.03142e-06 - ATCATTTGCATGA
+chr12 74187065 74187076 -V_OCT1_Q5_01 5.83412e-06 - TCATTTGCATG
+chr12 74187065 74187076 -V_OCT_Q6 4.86692e-06 - TCATTTGCATG
+chr12 74187182 74187205 -V_OCT1_04 9.76038e-07 - CAGTGTTTATGCAAATTTACTCA
+chr12 74187184 74187203 -V_OCT1_01 1.53745e-06 - GTGTTTATGCAAATTTACT
+chr12 74187187 74187198 +V_OCT_Q6 7.92146e-06 + AAATTTGCATA
+chr12 74187188 74187198 -V_OCT1_B 7.0832e-06 - TATGCAAATT
+chr12 74187188 74187200 -V_OCT1_07 3.58538e-06 - TTTATGCAAATT
+chr12 74187192 74187205 -V_HFH8_01 8.81254e-06 - CAGTGTTTATGCA
+chr12 75207259 75207268 +V_AP2ALPHA_01 9.68294e-06 + GCCCGAGGC
+chr12 75207301 75207312 +V_LEF1TCF1_Q4 2.56824e-06 + CCTTTGATCCC
+chr12 75207405 75207419 +V_CDX2_Q5 8.63804e-06 + ATTTTCTTATTGCC
+chr12 76996127 76996142 +V_DMRT1_01 1.99963e-07 + CGGCAACATTGTTGC
+chr12 76996129 76996144 -V_DMRT1_01 8.80703e-07 - CAGCAACAATGTTGC
+chr12 80603018 80603033 +V_BACH1_01 9.57356e-06 + AGGATGAGTCAGCAG
+chr12 80603019 80603032 +V_AP1_01 4.20497e-08 + GGATGAGTCAGCA
+chr12 80603020 80603031 +V_BACH2_01 6.53539e-06 + GATGAGTCAGC
+chr12 80603020 80603031 -V_AP1_Q6 3.64565e-06 - GCTGACTCATC
+chr12 80603021 80603030 +V_AP1_C 4.03003e-06 + ATGAGTCAG
+chr12 80603021 80603032 -V_NFE2_01 1.48643e-06 - TGCTGACTCAT
+chr12 80603124 80603137 +V_AP2_Q6_01 3.58329e-06 + CCTGCCCCAGGCT
+chr12 80649726 80649740 +V_PAX6_Q2 1.5537e-08 + CTGTCCTGGAACTC
+chr12 80649731 80649742 +V_PAX_Q6 2.04834e-07 + CTGGAACTCAC
+chr12 80649776 80649786 +V_MYOD_Q6 6.66004e-06 + TCCACCTGCC
+chr12 80649777 80649791 +V_E2A_Q2 1.24142e-07 + CCACCTGCCTCTGC
+chr12 80649778 80649786 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr12 80649801 80649812 -V_PITX2_Q2 1.22695e-06 - TTTAATCCCAG
+chr12 80789070 80789086 +V_DMRT2_01 1.4941e-06 + CATAAAGTTACATTGT
+chr12 80789149 80789162 -V_MAZR_01 2.00881e-06 - AGGGGAGGGGCAA
+chr12 80789151 80789161 -V_SP1_Q6_01 2.74385e-06 - GGGGAGGGGC
+chr12 80789152 80789161 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr12 80789152 80789162 +V_SP1_Q2_01 6.40385e-06 + CCCCTCCCCT
+chr12 80789153 80789161 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr12 80789169 80789182 -V_SP1_Q6 8.16238e-06 - GAGGGGCGGAGCA
+chr12 80789170 80789180 -V_SP1_Q6_01 3.49614e-06 - GGGGCGGAGC
+chr12 80789173 80789186 -V_MAZR_01 8.79511e-06 - TGGGGAGGGGCGG
+chr12 80789174 80789187 -V_SP1_Q6 6.51994e-06 - GTGGGGAGGGGCG
+chr12 80789175 80789185 -V_SP1_Q6_01 2.74385e-06 - GGGGAGGGGC
+chr12 80789176 80789185 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr12 80789177 80789185 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr12 81085490 81085506 -V_AP2_Q3 9.06524e-06 - AGCCCCAGCCTGAGGC
+chr12 81085500 81085509 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr12 81111414 81111429 +V_OCT4_01 1.79634e-06 + TATTCTCATGTAAAC
+chr12 81686831 81686846 +V_IRF_Q6 5.72126e-06 + CTCTCTTTCTCTTTC
+chr12 81686835 81686846 -V_IRF_Q6_01 3.86751e-06 - GAAAGAGAAAG
+chr12 81686837 81686852 +V_IRF_Q6 8.21296e-06 + TTCTCTTTCTCTTTT
+chr12 81686841 81686852 -V_IRF_Q6_01 6.78972e-06 - AAAAGAGAAAG
+chr12 81686846 81686862 -V_MMEF2_Q6 7.0812e-06 - CTGTTTAAAAAAAAGA
+chr12 82400026 82400040 -V_BLIMP1_Q6 4.41274e-06 - ATGGAGGGAAAGGA
+chr12 82400082 82400100 +V_GCNF_01 1.34815e-06 + GTCAACCTCAAGGTCACC
+chr12 82400086 82400100 +V_ERR1_Q2 1.82748e-06 + ACCTCAAGGTCACC
+chr12 82400088 82400106 +V_GCNF_01 3.16638e-06 + CTCAAGGTCACCTTCAGC
+chr12 82400089 82400098 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr12 82400109 82400122 -V_AP2_Q6_01 2.71709e-06 - GCTGCCCCAGGCC
+chr12 82400169 82400187 -V_SRF_01 5.56218e-06 - ATGCCATTATCTGGTCTT
+chr12 84766585 84766594 +V_AP2ALPHA_01 9.68294e-06 + GCCCGAGGC
+chr12 84887625 84887635 -V_SP1_Q6_01 5.82691e-06 - GGGGCGGGTC
+chr12 84887688 84887703 +V_DMRT1_01 2.87544e-07 + CTGTAACAATGTTGC
+chr12 85370248 85370262 +V_OCT1_05 7.92576e-06 + AGAATTAGCATAAG
+chr12 85370250 85370262 -V_OCT1_07 6.48249e-06 - CTTATGCTAATT
+chr12 85370251 85370261 -V_POU3F2_02 3.63926e-06 - TTATGCTAAT
+chr12 85556830 85556843 +V_SP1_Q6 4.83523e-06 + CGGAGGCGGGGTT
+chr12 85556831 85556841 -V_SP1_Q2_01 6.40385e-06 - CCCCGCCTCC
+chr12 87102802 87102813 -V_RORA_Q4 6.07427e-06 - TAGTTGGGTCA
+chr12 87102812 87102832 -V_YY1_02.4.5978e-06 - CTCGGGCCATGGTCACTCCT
+chr12 87102852 87102867 -V_AR_Q2 7.08142e-06 - GGAACATATTGTTCA
+chr12 87819949 87819962 -V_MAZR_01 3.8307e-06 - GGGTGGGGGGACA
+chr12 87819981 87820004 +V_OCT1_04 9.79816e-06 + CCTTGGAAATGCAAATTTAGGGT
+chr12 87819982 87819997 +V_OCT4_01 5.63049e-06 + CTTGGAAATGCAAAT
+chr12 87819983 87820002 +V_OCT1_01 8.4507e-06 + TTGGAAATGCAAATTTAGG
+chr12 88257889 88257908 -V_OCT1_01 8.13542e-06 - CCCGCTATGCAAATGTGCT
+chr12 88257891 88257904 +V_OCT_C 6.71556e-06 + CACATTTGCATAG
+chr12 88257892 88257903 +V_OCT_Q6 7.02042e-06 + ACATTTGCATA
+chr12 88257893 88257903 -V_OCT1_B 4.33582e-06 - TATGCAAATG
+chr12 88257991 88258004 -V_GATA1_04 6.24632e-06 - AACAGATAGGGAC
+chr12 88257993 88258002 -V_LMO2COM_02 3.30926e-06 - CAGATAGGG
+chr12 88258006 88258019 +V_OCT_C 7.13721e-06 + GTGATTAGCATAC
+chr12 88258006 88258020 +V_OCT1_05 8.48471e-06 + GTGATTAGCATACG
+chr12 89578620 89578634 -V_OCT1_05 1.80594e-06 - ATGATTAGCATACC
+chr12 89578621 89578634 -V_OCT_C 4.05866e-06 - ATGATTAGCATAC
+chr12 89578659 89578673 +V_E2A_Q2 1.26104e-06 + CCACCTGCTTCCTG
+chr12 89578659 89578674 -V_ETS1_B 3.83523e-06 - CCAGGAAGCAGGTGG
+chr12 89578661 89578673 +V_ETS_Q4 5.14007e-06 + ACCTGCTTCCTG
+chr12 100458679 100458697 +V_RFX1_02 5.03702e-08 + AGGTCACCATGGCAACGG
+chr12 100458688 100458697 -V_RFX_Q6 8.74404e-06 - CCGTTGCCA
+chr12 100458693 100458707 -V_FOXO1_02 5.43667e-06 - GGGTTGTTTACCGT
+chr12 100458693 100458707 -V_FOXO4_02 6.75869e-06 - GGGTTGTTTACCGT
+chr12 100458696 100458707 +V_FOXO4_01 2.21629e-06 + GTAAACAACCC
+chr12 100458760 100458774 +V_E2A_Q2 5.8661e-06 + CCAGCTGCCCTGGG
+chr12 100538321 100538336 +V_OCT4_01 5.24325e-06 + CTTTTAGATGCAAAT
+chr12 101753806 101753817 -V_EBF_Q6 4.00905e-06 - TTCCCTAGAGA
+chr12 101753876 101753885 +V_T3R_Q6 3.30926e-06 + CCTGTCCTT
+chr12 101772368 101772383 +V_ETS1_B 7.24631e-06 + GCAGGAAGTCATGAC
+chr12 101772369 101772380 +V_FLI1_Q6 4.3053e-06 + CAGGAAGTCAT
+chr12 101772484 101772494 +V_NUR77_Q5 2.98426e-06 + CTGACCTTGC
+chr12 102.4.571 102.4.586 +V_CP2_02 2.27143e-06 + GCTGGTTCGAACAGG
+chr12 102248518 102248527 -V_AP2ALPHA_01 6.01835e-06 - GCCCCGGGG
+chr12 102248518 102248527 -V_AP2GAMMA_01 4.51376e-06 - GCCCCGGGG
+chr12 103753067 103753080 -V_P50P50_Q3 7.39688e-06 - AGGGGACTGCCCA
+chr12 103753118 103753127 -V_CACBINDINGPROTEIN_Q6 8.12736e-06 - GGGGCTGGG
+chr12 103753127 103753136 -V_SMAD_Q6 9.3359e-06 - AGACACCCT
+chr12 103753174 103753190 -V_EVI1_01 1.3936e-06 - AGACAAAACAAGAGAA
+chr12 103917252 103917266 -V_ATF3_Q6 2.67544e-06 - TGCTGAGGTCATCG
+chr12 103917267 103917290 -V_COUPTF_Q6 3.93002e-06 - GCCCTTGCCCTTGCCCCGAGGCC
+chr12 103917275 103917293 +V_GCNF_01 5.15475e-06 + GGCAAGGGCAAGGGCAGC
+chr12 103917294 103917307 +V_SP1_Q6 7.04257e-06 + GGGAGGAGGGGCT
+chr12 103952431 103952443 +V_NANOG_01 8.47913e-06 + GTGGCCATTGCC
+chr12 103952506 103952521 +V_VDR_Q3 1.53053e-06 + GGTTCAGTGAGGTGA
+chr12 103952540 103952552 +V_GLI_Q2 1.77433e-06 + TGTGGGTGGTGC
+chr12 104071140 104071149 +V_T3R_Q6 8.74404e-06 + CCTGTCCTC
+chr12 104071181 104071191 -V_LEF1_Q2_01 4.03003e-06 - GATCAAAGTG
+chr12 105485961 105485972 +V_TGIF_01 3.62037e-06 + AGCTGTCAGTT
+chr12 105485979 105485989 -V_ESE1_Q3 5.33438e-06 - TGTTTCCTGA
+chr12 105486030 105486047 -V_FOXP3_Q4 3.24706e-06 - GAAATGCTGATCCAGAC
+chr12 105776766 105776778 +V_LRH1_Q5 3.06315e-07 + CTGGCCTTGAAC
+chr12 105776766 105776780 +V_PAX6_Q2 8.3884e-07 + CTGGCCTTGAACTC
+chr12 105776771 105776782 +V_PAX_Q6 8.43097e-06 + CTTGAACTCAC
+chr12 105776796 105776817 -V_PPARG_01 1.07706e-06 - CAGAGGATCAAAGGTCAAAGC
+chr12 105776799 105776813 -V_HNF4_Q6_01 8.83218e-07 - GGATCAAAGGTCAA
+chr12 105776800 105776813 +V_PPAR_DR1_Q2 8.74748e-07 + TGACCTTTGATCC
+chr12 105776800 105776813 +V_HNF4_DR1_Q3 1.79986e-06 + TGACCTTTGATCC
+chr12 105776800 105776813 +V_COUP_DR1_Q6 1.70437e-06 + TGACCTTTGATCC
+chr12 105776800 105776813 -V_RXRLXRB_01 9.89016e-07 - GGATCAAAGGTCA
+chr12 105776800 105776813 -V_DR1_Q3 1.75121e-06 - GGATCAAAGGTCA
+chr12 105776800 105776814 +V_COUP_01 3.87376e-07 + TGACCTTTGATCCT
+chr12 105776800 105776817 -V_PPARG_03 7.19225e-06 - CAGAGGATCAAAGGTCA
+chr12 105776803 105776814 +V_LEF1TCF1_Q4 2.36341e-06 + CCTTTGATCCT
+chr12 106154042 106154054 +V_OCT1_07 3.83276e-06 + TGTATGTAAATT
+chr12 106154071 106154087 +V_LXR_DR4_Q3 4.35872e-06 + TGCCCGGCAGTGAACT
+chr12 106154071 106154088 +V_DR4_Q2 1.61936e-06 + TGCCCGGCAGTGAACTC
+chr12 106154071 106154089 -V_LXR_Q3 5.12544e-06 - TGAGTTCACTGCCGGGCA
+chr12 106154081 106154096 -V_VDRRXR_01 9.34634e-06 - GCTTCATTGAGTTCA
+chr12 106154153 106154166 +V_AP2_Q6_01 6.01724e-06 + CCCTCCTCAGGCT
+chr12 107413673 107413688 -V_IRF_Q6 7.3306e-06 - TCCAATTTCATTTCC
+chr12 109972778 109972792 -V_NFY_C 4.45006e-06 - TCTGATTGGTGAAT
+chr12 109972780 109972791 +V_NFY_Q6 9.1733e-06 + TCACCAATCAG
+chr12 109972815 109972833 +V_LXR_Q3 7.3861e-06 + TTGGGTCACCTTGGGTCT
+chr12 111186691 111186712 +V_DR3_Q4 5.31963e-06 + GAAAGCCTTCCTTAACCGTCT
+chr12 111186724 111186739 +V_OCT4_01 6.02107e-06 + TTTTATGATGCAGAT
+chr12 111186771 111186784 +V_DR1_Q3 8.17076e-06 + GGGACAGAGGACA
+chr12 111186771 111186784 -V_PPAR_DR1_Q2 9.61169e-06 - TGTCCTCTGTCCC
+chr12 111186807 111186818 -V_SP1SP3_Q4 2.26051e-06 - CCCCCTCCTCC
+chr12 111186823 111186832 +V_CACBINDINGPROTEIN_Q6 2.23138e-06 + GAGGGTGGG
+chr12 111186826 111186836 +V_IK_Q5 7.92622e-06 + GGTGGGAGGC
+chr12 111588376 111588389 +V_NKX61_01 7.31711e-06 + CATTTAATTGGAA
+chr12 111588398 111588410 -V_VDR_Q6 2.90606e-06 - CCCTCTGAACCT
+chr12 111588624 111588633 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr12 111954327 111954348 -V_PPARG_01 2.1653e-07 - GTGGAGGTCAAAGGGCAACTT
+chr12 111954330 111954344 -V_HNF4_Q6_01 1.40116e-06 - AGGTCAAAGGGCAA
+chr12 111954331 111954344 +V_PPAR_DR1_Q2.4.53855e-07 + TGCCCTTTGACCT
+chr12 111954331 111954344 +V_COUP_DR1_Q6 3.95479e-06 + TGCCCTTTGACCT
+chr12 111954331 111954344 -V_RXRLXRB_01 3.39229e-07 - AGGTCAAAGGGCA
+chr12 111954331 111954344 -V_DR1_Q3 1.39363e-06 - AGGTCAAAGGGCA
+chr12 111954440 111954454 -V_FOXO3_01 9.2679e-06 - CACTTGTTTACACA
+chr12 111954442 111954454 +V_FOXO3A_Q1 1.13508e-06 + TGTAAACAAGTG
+chr12 112741927 112741946 -V_PU1_Q4 7.43608e-06 - TGGCTTTGTTTCCCCTTTC
+chr12 112741988 112742003 +V_VDR_Q3 2.95306e-06 + GAGGCAGGAAGGTCA
+chr12 112741994 112742004 -V_NUR77_Q5 2.98426e-06 - CTGACCTTCC
+chr12 112742001 112742019 +V_GCNF_01 6.4087e-06 + CAGGAGTTCAAGGTCGTT
+chr12 112742006 112742018 -V_LRH1_Q5 6.09185e-06 - ACGACCTTGAAC
+chr12 112943001 112943011 -V_TAL1_Q6 7.72591e-06 - TCCAGCTGGC
+chr12 112979775 112979785 -V_ESE1_Q3 8.80613e-06 - GGCTTCCTGT
+chr12 112979782 112979798 +V_AP2_Q3 4.16477e-06 + GCCCTCAGGCTAGGAG
+chr12 113345386 113345399 +V_SP1_Q6 8.76141e-06 + GGGGGGAGGAGGG
+chr12 113345387 113345402 +V_VDR_Q3 3.3177e-06 + GGGGGAGGAGGGACC
+chr12 118473823 118473838 -V_OCT4_02 4.25758e-08 - ATTGTCATGCTAATT
+chr12 118473824 118473839 -V_OCT4_01 1.66527e-07 - TATTGTCATGCTAAT
+chr12 118473877 118473892 -V_OCT4_01 6.46423e-06 - CTTTGTTGTGCAAAC
+chr12 118479105 118479120 -V_AML_Q6 5.00567e-06 - AAAGCTGTGGTCTAC
+chr12 118499750 118499761 +V_FLI1_Q6 1.42541e-06 + CAGGAAGTCAC
+chr12 120149031 120149046 -V_OCT4_02 5.70458e-07 - ATTGTCATGCTAAGC
+chr12 120149032 120149047 -V_OCT4_01 1.79634e-06 - TATTGTCATGCTAAG
+chr13 4558494 4558511 +V_PU1_01 4.30155e-07 + AGAATGGGGAAGTAGAT
+chr13 4558495 4558514 -V_PU1_Q4 5.91777e-07 - CAAATCTACTTCCCCATTC
+chr13 4558542 4558557 +V_OCT4_01 2.64195e-06 + TATTCTAATGTTAAT
+chr13 4558574 4558589 -V_OCT4_01 3.90219e-07 - CTTTCTCATGCAAAC
+chr13 5831384 5831396 +V_GATA4_Q3 7.36895e-06 + AGATCACAGGCA
+chr13 5831391 5831403 -V_NMYC_01 2.66862e-06 - CCCCACGTGCCT
+chr13 5831393 5831401 -V_USF_C 9.89755e-06 - CCACGTGC
+chr13 5831400 5831412 -V_PAX4_03 6.56043e-06 - TATCTCCACCCC
+chr13 6921765 6921785 +V_FOXP1_01 8.15563e-06 + TTATAGGTGTGTGTTTGTTT
+chr13 6921771 6921789 -V_FOXJ2_01 5.17183e-06 - TTGAAAACAAACACACAC
+chr13 6921773 6921786 +V_FOX_Q2 8.50378e-06 + GTGTGTTTGTTTT
+chr13 6921773 6921786 +V_HFH3_01 3.96292e-06 + GTGTGTTTGTTTT
+chr13 6921773 6921786 +V_HFH4_01 4.06855e-06 + GTGTGTTTGTTTT
+chr13 6921830 6921845 +V_OCT4_01 1.94673e-06 + TATTCTTTTGCAAAT
+chr13 6921831 6921846 +V_OCT4_02 8.38472e-07 + ATTCTTTTGCAAATG
+chr13 6921841 6921860 -V_PU1_Q4 1.5798e-07 - AACCTTTATTTCCTCATTT
+chr13 8522601 8522612 +V_IRF_Q6_01 8.39845e-06 + GGAACTGAAAG
+chr13 8522601 8522616 -V_IRF_Q6 8.71346e-06 - TTTTCTTTCAGTTCC
+chr13 8522610 8522622 +V_GATA4_Q3 5.81595e-06 + AGAAAAGAGGGA
+chr13 8522663 8522677 -V_COUP_01 8.44596e-06 - TGAACCTTGAGCAG
+chr13 9308263 9308278 +V_OCT4_01 5.63049e-06 + CATTCTTATTCAAAC
+chr13 9308279 9308298 -V_OCT1_01 5.10934e-06 - AAGAATATGCTAATTGAGT
+chr13 9308283 9308295 -V_OCT1_07 2.67643e-06 - AATATGCTAATT
+chr13 9308284 9308294 -V_POU3F2_02 7.27852e-06 - ATATGCTAAT
+chr13 9308301 9308312 -V_HELIOSA_02 3.44301e-06 - AAAAGGAAAAA
+chr13 12071413 12071428 +V_OCT4_01 6.91054e-06 + TATTCTAATGGTAAT
+chr13 16922317 16922326 +V_ZIC1_01 4.94877e-06 + GGGGTGGTC
+chr13 16922317 16922326 +V_ZIC2_01 2.23138e-06 + GGGGTGGTC
+chr13 18934004 18934014 -V_PR_Q2 2.01502e-06 - GAAAGAACAG
+chr13 18934013 18934024 -V_CP2_01 2.14959e-06 - GCCCTAACCAG
+chr13 20364103 20364122 +V_PU1_Q4 1.72817e-06 + ACCACTGGCTTCCTCTTCC
+chr13 20364106 20364120 -V_ETS2_B 9.62665e-06 - AAGAGGAAGCCAGT
+chr13 20364110 20364122 -V_ELF1_Q6 3.87486e-06 - GGAAGAGGAAGC
+chr13 21078113 21078126 -V_HNF3_Q6 5.04612e-06 - ATAGGCAAACAGA
+chr13 24093828 24093846 -V_MYOD_Q6_01 3.73988e-06 - ATGAAGCAGGTGGAGGTC
+chr13 24093832 24093842 +V_TAL1_Q6 7.11328e-06 + TCCACCTGCT
+chr13 24093833 24093847 +V_E2A_Q2 2.55238e-06 + CCACCTGCTTCATT
+chr13 24093874 24093891 +V_YY1_01 4.0033e-06 + GAGCACCATATTTGCAT
+chr13 24093882 24093897 -V_OCT4_02 2.05222e-06 - TTTCACATGCAAATA
+chr13 24093883 24093898 -V_OCT4_01 1.8064e-07 - CTTTCACATGCAAAT
+chr13 24093910 24093922 -V_LMO2COM_01 9.95431e-06 - GCCCAGGTGGTC
+chr13 24834874 24834885 -V_EBF_Q6 7.68235e-06 - CTCCCCTGGGG
+chr13 24834879 24834887 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr13 27817139 27817152 +V_P50P50_Q3 6.86436e-06 + TGGGGATTTTCCC
+chr13 27817139 27817153 +V_NFKB_Q6 2.12881e-06 + TGGGGATTTTCCCA
+chr13 27817140 27817152 +V_NFKB_C 9.92065e-07 + GGGGATTTTCCC
+chr13 27817140 27817156 -V_NFKB_Q6_01 6.24418e-07 - TACTGGGAAAATCCCC
+chr13 27817141 27817151 +V_NFKAPPAB65_01 9.69629e-06 + GGGATTTTCC
+chr13 27817141 27817151 +V_NFKAPPAB_01 9.4096e-06 + GGGATTTTCC
+chr13 27817157 27817166 -V_AP1_C 7.33929e-06 - GTGAGTCAG
+chr13 27817187 27817202 +V_STAT5A_01 9.16964e-06 + CAGTTCTCGGAAACG
+chr13 28492410 28492423 -V_STAT_Q6 6.2368e-06 - TGTGCTTCTGGGA
+chr13 28492520 28492536 +V_AP2_Q3 8.07615e-06 + GGCACAGGGCTGAGGG
+chr13 28492541 28492551 +V_FOXO1_01 2.98837e-06 + CATAAACAAA
+chr13 28594168 28594184 +V_NFKB_Q6_01 3.23504e-06 + AGCCTGGGAACTCCCC
+chr13 28594169 28594182 +V_IK3_01 3.50195e-06 + GCCTGGGAACTCC
+chr13 28594224 28594238 +V_ETS2_B 5.16909e-06 + GACAGGAAGCATCA
+chr13 28594225 28594235 -V_ESE1_Q3 8.06007e-06 - TGCTTCCTGT
+chr13 28872508 28872520 -V_GLI_Q2 8.13602e-06 - CTTGGGAGGTCT
+chr13 28872534 28872546 -V_IPF1_Q4 2.77763e-06 - GTGTTAATGACA
+chr13 30102945 30102958 -V_MAZR_01 9.36507e-06 - GCGGGAGGGGAGA
+chr13 30102949 30102958 +V_WT1_Q6 6.67377e-06 + CCCTCCCGC
+chr13 30103007 30103022 +V_DMRT1_01 5.64342e-08 + CTGAAACATTGTTGC
+chr13 30103009 30103024 -V_DMRT1_01 5.16865e-07 - CGGCAACAATGTTTC
+chr13 31820959 31820968 -V_EVI1_06 5.97675e-06 - ACAAGATAA
+chr13 33091326 33091345 +V_SRF_Q5_02 8.19146e-06 + GTATTCCTTTTATGGCATT
+chr13 33091330 33091345 +V_SRF_C 7.84578e-06 + TCCTTTTATGGCATT
+chr13 33251661 33251690 -V_MYOGNF1_01 2.42895e-07 - CACCTCTTGCCTCGGGCACTGAGCATGAC
+chr13 33251673 33251682 +V_AP2ALPHA_01 9.68294e-06 + GCCCGAGGC
+chr13 33933729 33933744 +V_DMRT5_01 7.88817e-07 + GATTGTTACAGTAGC
+chr13 33933852 33933861 +V_FOXO1_Q5 7.27852e-06 + AAAAACAAA
+chr13 33933865 33933879 +V_USF_02 2.67708e-06 + TAATCACGTGGCTA
+chr13 33933865 33933879 -V_USF_02 2.67708e-06 - TAGCCACGTGATTA
+chr13 34719439 34719451 +V_ETS_Q4 4.36344e-06 + AGACACTTCCTG
+chr13 35830221 35830235 +V_KROX_Q6 8.32366e-06 + CCATCCCCCACCCC
+chr13 35830223 35830235 +V_PAX4_03 1.74945e-06 + ATCCCCCACCCC
+chr13 35830225 35830236 +V_SP1SP3_Q4 8.91927e-06 + CCCCCACCCCC
+chr13 35830226 35830236 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr13 35830227 35830236 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr13 35830277 35830291 +V_GATA1_03 9.77098e-06 + ATGCAGATTATTGG
+chr13 35830330 35830342 +V_GATA4_Q3 2.1552e-06 + AGAAAGAAGGGA
+chr13 35945260 35945269 +V_T3R_Q6 8.74404e-06 + CCTGTCCTG
+chr13 36355805 36355824 -V_GR_Q6 7.48457e-06 - GTGGCTCCCTGTGTCCCAC
+chr13 37528291 37528302 -V_SP1SP3_Q4 3.76147e-06 - CCCCCCCCCCA
+chr13 37528292 37528301 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr13 37528292 37528303 -V_SP1SP3_Q4 3.39206e-07 - CCCCCCCCCCC
+chr13 37528292 37528307 +V_VDR_Q3 7.57997e-06 + GGGGGGGGGGGGTGG
+chr13 37528293 37528302 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr13 37528293 37528304 -V_SP1SP3_Q4 3.39206e-07 - CCCCCCCCCCC
+chr13 37528294 37528303 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr13 37528294 37528305 -V_SP1SP3_Q4 3.19906e-06 - ACCCCCCCCCC
+chr13 37528294 37528307 +V_MAZR_01 3.51639e-06 + GGGGGGGGGGTGG
+chr13 37528294 37528308 -V_KROX_Q6 2.61668e-06 - TCCACCCCCCCCCC
+chr13 37528295 37528304 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr13 37528296 37528307 -V_SP1SP3_Q4 5.13339e-06 - CCACCCCCCCC
+chr13 37528299 37528314 +V_VDR_Q3 6.21229e-07 + GGGGGTGGAGGGTGA
+chr13 38728238 38728262 -V_STAT5A_02 5.06938e-07 - TTCCAAGAATGTCCTTGCCGGAGG
+chr13 38728266 38728282 +V_NFKB_Q6_01 9.0975e-06 + GGCTTGGGAATTCCTG
+chr13 38728267 38728280 +V_IK1_01 1.00166e-06 + GCTTGGGAATTCC
+chr13 38728267 38728280 +V_IK3_01 2.74226e-06 + GCTTGGGAATTCC
+chr13 38728294 38728313 +V_PU1_Q4 1.72817e-06 + AGTTTCTACTTCCTGTTCT
+chr13 38728300 38728311 -V_ELF5_01 4.25524e-06 - AACAGGAAGTA
+chr13 38728301 38728313 -V_ELF1_Q6 3.08919e-06 - AGAACAGGAAGT
+chr13 40748479 40748498 -V_OCT1_01 1.90735e-07 - TTACATATGCAAATATGCT
+chr13 40748481 40748494 +V_OCT_C 6.42763e-06 + CATATTTGCATAT
+chr13 40748482 40748493 +V_OCT_Q6 7.92146e-06 + ATATTTGCATA
+chr13 40748483 40748493 -V_OCT1_B 4.33582e-06 - TATGCAAATA
+chr13 40748484 40748499 -V_OCT4_01 3.04012e-06 - CTTACATATGCAAAT
+chr13 40748505 40748520 -V_SREBP_Q6 2.612e-06 - TCCCTCACCCCACCC
+chr13 40748505 40748520 -V_SREBP1_Q5 7.73938e-07 - TCCCTCACCCCACCC
+chr13 40748518 40748529 -V_LEF1TCF1_Q4 5.53227e-07 - CCTTTGATGTC
+chr13 40748541 40748557 +V_S8_01 1.84302e-06 + TTGATCTAATTAGTCT
+chr13 40980480 40980498 -V_RFX1_02 7.58698e-06 - TTGCAGCCTTAGCAACCA
+chr13 40980501 40980518 -V_PPARG_03 4.00213e-06 - GTCAAGGACAAAGTTGA
+chr13 41125132 41125147 -V_VDR_Q3 8.52845e-06 - AGGGCAATGGGGAGA
+chr13 41188775 41188791 +V_AP2_Q3 7.62107e-06 + GGCCCCAGGGGAGGGC
+chr13 41188777 41188788 -V_EBF_Q6 7.68235e-06 - CTCCCCTGGGG
+chr13 41188782 41188790 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr13 41188782 41188791 -V_CKROX_Q2 3.66459e-06 - GCCCTCCCC
+chr13 41188790 41188801 -V_GAF_Q6 5.29815e-06 - CGGATTCCCAG
+chr13 41924193 41924202 -V_SMAD_Q6 9.3359e-06 - AGACACCCT
+chr13 41924207 41924215 +V_CACD_01 9.89755e-06 + CCACACCC
+chr13 41924286 41924309 -V_COUPTF_Q6 7.65805e-06 - CTTCCTGGCCTTGACTCTCTCCT
+chr13 41924300 41924314 +V_ETS2_B 4.30291e-06 + GCCAGGAAGCCAGT
+chr13 43696286 43696301 +V_ETS1_B 2.60229e-06 + GCAGGAAGTGGCCGG
+chr13 43696287 43696299 -V_ETS_Q4 7.06097e-06 - GGCCACTTCCTG
+chr13 44252523 44252538 -V_DMRT1_01 8.16534e-06 - TTGTTACAAGGTAGC
+chr13 44252560 44252575 -V_DMRT1_01 9.55793e-06 - TTGTTACAAAGTAGC
+chr13 44252583 44252594 -V_RORA_Q4 2.4539e-06 - TAATTAGGTCA
+chr13 44252597 44252612 -V_DMRT1_01 9.55793e-06 - TTGTTACAAAGTAGC
+chr13 44605094 44605104 -V_TAL1_Q6 3.62595e-06 - GCCAGCTGCT
+chr13 44605156 44605171 -V_AR_Q2 8.99915e-06 - AGTGGACACTGTTCT
+chr13 44779144 44779154 +V_ESE1_Q3 2.21291e-06 + TGTTTCCTGT
+chr13 44779150 44779159 +V_RFX_Q6 3.30926e-06 + CTGTTGCCA
+chr13 44779192 44779205 +V_DMRT4_01 5.97817e-06 + TATGTAGCAAATT
+chr13 44779250 44779261 -V_GAF_Q6 2.41269e-06 - CGTATTCCCAT
+chr13 44797139 44797150 +V_ALPHACP1_01 4.48665e-06 + CAGCCACTGAG
+chr13 44847319 44847330 +V_TGIF_01 4.23487e-06 + AGCTGTCAGTG
+chr13 45179260 45179274 -V_PAX6_Q2 7.01918e-06 - CTGACCTTGGAGTC
+chr13 45179262 45179274 -V_LRH1_Q5 3.22157e-06 - CTGACCTTGGAG
+chr13 451792.4.55179273 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr13 451792.4.55179274 -V_NUR77_Q5 2.98426e-06 - CTGACCTTGG
+chr13 45333862 45333872 +V_TAL1_Q6 7.46065e-07 + TCCAGCTGCT
+chr13 45369724 45369734 +V_NFAT_Q4_01 8.89473e-06 + GTGGAAAAAC
+chr13 45369786 45369799 +V_AP2_Q6_01 6.77812e-06 + GAGGCCTCAGGCG
+chr13 45369801 45369816 -V_ETS1_B 2.00417e-06 - CCAGGAAGTGATGAG
+chr13 45369803 45369815 +V_ETS_Q4 2.56268e-06 + CATCACTTCCTG
+chr13 45369804 45369815 -V_FLI1_Q6 3.07019e-06 - CAGGAAGTGAT
+chr13 45369825 45369834 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr13 45369825 45369835 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr13 45369825 45369838 +V_MAZR_01 5.4366e-06 + GGGGGAGGGGAGA
+chr13 45369826 45369834 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr13 45369826 45369835 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr13 45585840 45585854 +V_BLIMP1_Q6 8.88669e-06 + AGGAAGGGCAATTA
+chr13 45585878 45585895 +V_DR4_Q2 4.90952e-06 + CACACTCCACTGACCCA
+chr13 45610404 45610422 +V_GCNF_01 1.51863e-06 + GGCAAGTTCAAGGTTTCT
+chr13 45610439 45610450 -V_EBF_Q6 9.10919e-06 - TTCCCCTGAGG
+chr13 45610463 45610475 +V_LMO2COM_01 6.44862e-06 + CGCCAGCTGTAG
+chr13 45610504 45610513 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr13 45610505 45610517 -V_PAX4_03 2.70808e-06 - GACTCCCACCCC
+chr13 46143154 46143170 +V_MAF_Q6 3.8473e-06 + TGGTGGGAAGTAGCCT
+chr13 46666790 46666799 +V_T3R_Q6 8.74404e-06 + CCTGTCCTG
+chr13 46666825 46666839 +V_FOXO4_02 7.08786e-06 + TTGTTGTTTTCGAT
+chr13 46666825 46666839 +V_FOXO3_01 9.66013e-06 + TTGTTGTTTTCGAT
+chr13 46666837 46666850 +V_GATA1_04 8.46398e-07 + ATCTGATAAGGCG
+chr13 47678128 47678143 +V_ETS1_B 4.81407e-06 + CCAGGATGTGGTGGA
+chr13 47678129 47678141 -V_ETS_Q4 6.33208e-06 - CACCACATCCTG
+chr13 47678162 47678172 -V_LEF1_Q2_01 9.48141e-06 - GAACAAAGGG
+chr13 47678163 47678174 +V_LEF1TCF1_Q4 5.90916e-06 + CCTTTGTTCCT
+chr13 47678193 47678207 -V_BLIMP1_Q6 1.61206e-07 - AGGAAGTGAAATGA
+chr13 47678196 47678208 +V_ETS_Q4 7.06097e-06 + TTTCACTTCCTG
+chr13 47678208 47678220 +V_PXR_Q2 9.22163e-06 + TGGGTTAGTGAA
+chr13 48226292 48226310 -V_MYOD_Q6_01 6.49155e-06 - CGGGCCCAGATGGCAAAG
+chr13 48226320 48226333 -V_SP1_Q6 3.61794e-07 - AGGGGGCGGAGCG
+chr13 48226321 48226331 -V_SP1_Q6_01 3.49614e-06 - GGGGCGGAGC
+chr13 48226322 48226332 +V_SP1_Q2_01 3.57003e-06 + CTCCGCCCCC
+chr13 48949858 48949872 +V_DMRT7_01 4.06802e-06 + TGGCTACAATGTTT
+chr13 48949858 48949873 +V_DMRT1_01 7.14506e-08 + TGGCTACAATGTTTC
+chr13 48949860 48949875 -V_DMRT1_01 2.48775e-07 - TGGAAACATTGTAGC
+chr13 48949888 48949902 +V_DMRT7_01 6.91627e-06 + TGGATACAATGTTT
+chr13 48949888 48949903 +V_DMRT1_01 6.57259e-08 + TGGATACAATGTTTC
+chr13 48949890 48949905 -V_DMRT1_01 4.26013e-07 - TGGAAACATTGTATC
+chr13 48949893 48949909 -V_DMRT2_01 5.47172e-06 - TATTTGGAAACATTGT
+chr13 51473589 51473602 +V_IRF1_01 3.47726e-06 + CAAAAGAGAAACC
+chr13 51473589 51473602 +V_IRF2_01 8.79663e-06 + CAAAAGAGAAACC
+chr13 51473590 51473601 +V_IRF_Q6_01 7.89955e-06 + AAAAGAGAAAC
+chr13 51473590 51473605 -V_IRF_Q6 8.71346e-06 - GCTGGTTTCTCTTTT
+chr13 51473705 51473720 -V_CP2_02 6.57372e-06 - GCTGGCTGGCGGTGG
+chr13 51858196 51858208 -V_PAX4_03 3.63034e-06 - GAACCCCACCCC
+chr13 51858237 51858252 +V_DMRT1_01 3.05518e-06 + GTGCAACATTGTTTC
+chr13 51858239 51858254 -V_DMRT1_01 5.52213e-06 - GGGAAACAATGTTGC
+chr13 51858249 51858262 +V_HSF_Q6 9.89146e-06 + TTCCCTCGGCTTC
+chr13 51858302 51858320 -V_MYOD_Q6_01 1.93389e-06 - CAGGGGCAGGTGGACAGC
+chr13 51858306 51858316 +V_MYOD_Q6 6.66004e-06 + TCCACCTGCC
+chr13 51858307 51858317 +V_EBOX_Q6_01 6.43409e-06 + CCACCTGCCC
+chr13 51858307 51858321 +V_E2A_Q2 1.54839e-07 + CCACCTGCCCCTGC
+chr13 51858308 51858316 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr13 51944715 51944726 -V_SP1SP3_Q4 3.76147e-06 - CCCCCCCCCCA
+chr13 51944716 51944725 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr13 51944716 51944727 -V_SP1SP3_Q4 3.39206e-07 - CCCCCCCCCCC
+chr13 51944716 51944730 -V_KROX_Q6 7.21197e-06 - CCCCCCCCCCCCCC
+chr13 51944717 51944726 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr13 51944717 51944728 -V_SP1SP3_Q4 3.39206e-07 - CCCCCCCCCCC
+chr13 51944717 51944731 -V_KROX_Q6 7.21197e-06 - CCCCCCCCCCCCCC
+chr13 51944718 51944727 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr13 51944718 51944729 -V_SP1SP3_Q4 3.39206e-07 - CCCCCCCCCCC
+chr13 51944718 51944732 -V_KROX_Q6 7.21197e-06 - CCCCCCCCCCCCCC
+chr13 51944719 51944728 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr13 51944719 51944730 -V_SP1SP3_Q4 3.39206e-07 - CCCCCCCCCCC
+chr13 51944719 51944733 -V_KROX_Q6 7.21197e-06 - CCCCCCCCCCCCCC
+chr13 51944720 51944729 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr13 51944720 51944731 -V_SP1SP3_Q4 3.39206e-07 - CCCCCCCCCCC
+chr13 51944720 51944734 -V_KROX_Q6 7.21197e-06 - CCCCCCCCCCCCCC
+chr13 51944720 51944735 +V_VDR_Q3 5.07321e-06 + GGGGGGGGGGGGGGA
+chr13 51944721 51944730 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr13 51944721 51944732 -V_SP1SP3_Q4 3.39206e-07 - CCCCCCCCCCC
+chr13 51944722 51944731 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr13 51944722 51944733 -V_SP1SP3_Q4 3.39206e-07 - CCCCCCCCCCC
+chr13 51944723 51944732 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr13 51944723 51944734 -V_SP1SP3_Q4 3.39206e-07 - CCCCCCCCCCC
+chr13 51944724 51944733 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr13 51944724 51944737 +V_MAZR_01 9.23255e-07 + GGGGGGGGGGAAG
+chr13 51944725 51944734 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr13 51944726 51944742 +V_NFKB_Q6_01 8.55659e-06 + GGGGGGGGAAGCCCAC
+chr13 51944731 51944739 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr13 51944753 51944772 +V_NRSF_Q4 3.16685e-06 + TTGCTGTCAGCTCTGCTGC
+chr13 51944792 51944822 -V_PAX4_04 3.85418e-07 - GAAAAACAGCACCCCACCCCGCCCTTCCCC
+chr13 51944795 51944808 +V_SP1_Q6 5.21945e-06 + GAAGGGCGGGGTG
+chr13 51944797 51944807 +V_SP1_Q6_01 8.48538e-06 + AGGGCGGGGT
+chr13 51944801 51944811 -V_SP1_Q2_01 8.14617e-06 - CCCCACCCCG
+chr13 51954060 51954074 +V_STAT3STAT3_Q3 9.61581e-06 + GTTCAGGGAACTGC
+chr13 51954100 51954115 +V_STAT5A_01 8.22978e-06 + AGATTCCAGGAAGCA
+chr13 51954183 51954195 +V_ATF4_Q2 8.23388e-06 + CCTGACTCCGTG
+chr13 52116821 52116839 +V_GCNF_01 5.34973e-06 + AGCAAGGTCAGTGTCAGC
+chr13 52116822 52116832 -V_NUR77_Q5 2.98426e-06 - CTGACCTTGC
+chr13 52116839 52116850 +V_LEF1TCF1_Q4 7.79522e-06 + GCTTTGATGTT
+chr13 52157462 52157477 -V_ETS1_B 4.29052e-06 - GGAGGAAGTGTGTCA
+chr13 52157464 52157478 -V_ETS2_B 4.91978e-06 - TGGAGGAAGTGTGT
+chr13 52157468 52157480 -V_ELF1_Q6 7.39845e-06 - GTTGGAGGAAGT
+chr13 52157484 52157492 +V_CACD_01 9.89755e-06 + CCACACCC
+chr13 52157521 52157532 +V_AP1_Q4 4.30412e-06 + GGTGACTAAGC
+chr13 52157558 52157573 +V_OCT4_01 5.63049e-06 + CATTCTTATTCAAAC
+chr13 52305988 52306002 -V_ERR1_Q2 1.63433e-06 - TCATCAAGGTCACT
+chr13 52305990 52305999 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr13 52317869 52317881 +V_CREB_02 9.88412e-06 + GTGTTGACGCCC
+chr13 52317881 52317892 +V_TGIF_01 5.10679e-06 + AGCTGTCAGGG
+chr13 52347790 52347799 -V_T3R_Q6 3.30926e-06 - CCTGTCCTT
+chr13 52383949 52383965 -V_AP2_Q3 5.34192e-06 - GGCCCTGGGCTGTAGA
+chr13 52384036 52384057 -V_PAX6_01 7.24772e-06 - TTTCTTCCCGCTCCAATTAGC
+chr13 52405268 52405278 -V_HMX1_01 2.98426e-06 - CAAGTGGGTG
+chr13 52405286 52405299 +V_SP1_Q6 8.76141e-06 + GGGGGGAGGAGGG
+chr13 52405287 52405302 +V_VDR_Q3 2.57589e-06 + GGGGGAGGAGGGAGG
+chr13 52405298 52405313 +V_VDR_Q3 1.22689e-06 + GAGGGAGGAGGGAGA
+chr13 52405339 52405354 -V_VDR_Q3 1.06886e-06 - GGGGCAGGGAGGGGA
+chr13 52405378 52405387 +V_CACBINDINGPROTEIN_Q6 6.29506e-06 + GAGGCTGGG
+chr13 52657666 52657677 +V_SMAD_Q6_01 5.09972e-06 + CAGGCAGACAG
+chr13 52657667 52657676 -V_SMAD3_Q6 7.33929e-06 - TGTCTGCCT
+chr13 52657672 52657686 +V_ETS2_B 1.18015e-07 + GACAGGAAGTATTT
+chr13 52657673 52657688 +V_ETS1_B 4.52978e-06 + ACAGGAAGTATTTAC
+chr13 52657703 52657714 +V_OCT_Q6 9.41564e-06 + CAATTTGCATA
+chr13 52657704 52657714 -V_OCT1_B 7.0832e-06 - TATGCAAATT
+chr13 52657704 52657716 -V_OCT1_07 7.06349e-06 - GCTATGCAAATT
+chr13 52657705 52657720 -V_OCT4_01 2.28618e-06 - CTTTGCTATGCAAAT
+chr13 52657735 52657750 -V_OCT4_02 1.37411e-06 - ATTGTTATGATAATG
+chr13 52657736 52657751 -V_OCT4_01 8.48593e-06 - TATTGTTATGATAAT
+chr13 52844254 52844268 +V_DMRT7_01 8.81367e-07 + TGGTTACAATGTTT
+chr13 52844254 52844269 +V_DMRT1_01 2.22792e-07 + TGGTTACAATGTTTC
+chr13 52844256 52844271 -V_DMRT1_01 1.3484e-06 - TTGAAACATTGTAAC
+chr13 52844300 52844314 +V_DMRT7_01 3.5461e-06 + ATGTTACAATGTTT
+chr13 52844300 52844315 +V_DMRT1_01 2.36549e-06 + ATGTTACAATGTTTT
+chr13 52844345 52844360 +V_DMRT1_01 2.36549e-06 + AGGATACAATGTTTT
+chr13 53326368 53326381 +V_SP1_Q6 4.83523e-06 + AGGAGGAGGGGCC
+chr13 53326369 53326382 +V_MAZR_01 6.86006e-06 + GGAGGAGGGGCCG
+chr13 5332.4.5 53326420 -V_AP2_Q3 3.22678e-06 - GCCCCAAGGCAGGGGC
+chr13 53326422 5332.4.5 +V_MEIS1_01 7.43558e-06 + CCCTGACAGAGC
+chr13 53681572 53681581 +V_AP2ALPHA_01 6.01835e-06 + GCCCCGGGG
+chr13 53681572 53681581 +V_AP2GAMMA_01 4.51376e-06 + GCCCCGGGG
+chr13 53681656 53681669 -V_HSF_Q6 9.15879e-06 - TTCCAGGAGTTCC
+chr13 53987077 53987090 +V_SP1_Q6 2.76363e-06 + TGGGGGTGGGGCG
+chr13 53987078 53987087 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr13 53987078 53987088 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr13 53987078 53987091 +V_MAZR_01 8.79511e-06 + GGGGGTGGGGCGG
+chr13 53987079 53987089 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr13 53987083 53987093 -V_SP1_Q2_01 3.57003e-06 - CCCCGCCCCA
+chr13 53987084 53987093 -V_CKROX_Q2 6.67377e-06 - CCCCGCCCC
+chr13 53987084 53987094 +V_SP1_Q6_01 2.74385e-06 + GGGGCGGGGA
+chr13 53987087 53987102 -V_SREBP_Q6 6.48026e-06 - CCCCTCACTCCCCGC
+chr13 53987087 53987102 -V_SREBP1_Q5 2.95108e-06 - CCCCTCACTCCCCGC
+chr13 53987208 53987222 +V_HNF4_Q6_01 4.332e-06 + TGGCCAGAGGCCAC
+chr13 53987261 53987280 +V_PU1_Q4 9.43652e-06 + ATCTCCCATTTCCTGTCTC
+chr13 53987264 53987278 -V_ETS2_B 8.24353e-06 - GACAGGAAATGGGA
+chr13 53987341 53987353 -V_AP2_Q6 8.83829e-06 - ATCCCCCAGGCC
+chr13 54152750 54152764 +V_BLIMP1_Q6 1.35276e-07 + AGGGAGGGAAAGTG
+chr13 54152791 54152806 -V_DMRT1_01 1.95997e-06 - TTACTACATTGTTGC
+chr13 54213936 54213955 -V_OCT1_01 6.98342e-06 - TTTATTATGCAAATAGATT
+chr13 54213939 54213950 +V_OCT_Q6 9.41564e-06 + CTATTTGCATA
+chr13 54213940 54213950 -V_OCT1_B 4.33582e-06 - TATGCAAATA
+chr13 54213941 54213956 -V_OCT4_01 4.36639e-07 - TTTTATTATGCAAAT
+chr13 56260787 56260800 -V_GFI1_Q6 5.94515e-06 - CCAAATCCCAGCT
+chr13 56261113 56261124 +V_LEF1TCF1_Q4 7.79522e-06 + GCTTTGATGTT
+chr13 56261142 56261157 +V_VDR_Q3 5.07321e-06 + GGGTCACCGGGGAGC
+chr13 57517429 57517444 +V_DMRT3_01 4.42685e-06 + CAGTTGTTACATTAT
+chr13 57517465 57517480 +V_DMRT3_01 1.09116e-06 + CAGTTGTTACATTGT
+chr13 57517466 57517481 +V_DMRT5_01 4.43693e-06 + AGTTGTTACATTGTT
+chr13 57517468 57517482 +V_DMRT7_01 2.62625e-06 + TTGTTACATTGTTC
+chr13 57517468 57517483 +V_DMRT1_01 2.04559e-06 + TTGTTACATTGTTCC
+chr13 57517501 57517514 -V_DMRT4_01 5.41272e-06 - AATGTAACAAATG
+chr13 57517501 57517516 +V_DMRT3_01 1.29658e-07 + CATTTGTTACATTGT
+chr13 57517502 57517517 +V_DMRT5_01 1.28143e-06 + ATTTGTTACATTGTT
+chr13 57517504 57517518 +V_DMRT7_01 2.62625e-06 + TTGTTACATTGTTC
+chr13 57517504 57517519 +V_DMRT1_01 2.04559e-06 + TTGTTACATTGTTCC
+chr13 57517537 57517552 +V_DMRT3_01 4.42685e-06 + CAGTTGTTACATTAT
+chr13 57596343 57596353 +V_ESE1_Q3 8.80613e-06 + GGCTTCCTGT
+chr13 58332069 58332084 -V_HMGIY_Q3 4.45843e-06 - CCTGGAATTTCCCTA
+chr13 58332071 58332081 +V_NFKAPPAB_01 7.14234e-06 + GGGAAATTCC
+chr13 58332072 58332082 -V_NFKAPPAB65_01 5.16177e-06 - TGGAATTTCC
+chr13 58332087 58332101 -V_ERR1_Q2 1.82748e-06 - AGATAAAGGTCATG
+chr13 58332151 58332164 +V_SP1_Q6 3.06772e-06 + TGGGGGAGGGGGC
+chr13 58332152 58332161 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr13 58332152 58332162 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr13 58332152 58332163 -V_SP1SP3_Q4 2.8432e-06 - CCCCCTCCCCC
+chr13 58332153 58332161 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr13 58332153 58332162 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr13 58332153 58332163 +V_SP1_Q6_01 8.48538e-06 + GGGGAGGGGG
+chr13 58332153 58332167 -V_KROX_Q6 5.42711e-07 - CCAGCCCCCTCCCC
+chr13 58717492 58717502 -V_TBX5_Q5 9.08563e-07 - CTCACACCTT
+chr13 58717497 58717508 -V_PAX_Q6 7.52241e-06 - CTGAAACTCAC
+chr13 59754214 59754229 +V_DMRT1_01 1.95997e-06 + AAGCAACATTGTTGC
+chr13 59754216 59754231 -V_DMRT1_01 1.27645e-07 - TGGCAACAATGTTGC
+chr13 59754217 59754231 -V_DMRT7_01 3.27916e-06 - TGGCAACAATGTTG
+chr13 59754226 59754237 -V_E12_Q6 6.12239e-06 - GACAGGTGGCA
+chr13 59754227 59754237 +V_MYOD_Q6 5.43478e-06 + GCCACCTGTC
+chr13 59754228 59754242 +V_E2A_Q2 1.37379e-06 + CCACCTGTCACTGA
+chr13 59754229 59754241 -V_MEIS1_01 3.29616e-07 - CAGTGACAGGTG
+chr13 59754278 59754293 +V_DMRT1_01 1.95997e-06 + AAGCAACATTGTTGC
+chr13 59754280 59754295 -V_DMRT1_01 8.80703e-07 - CAGCAACAATGTTGC
+chr13 60529261 60529270 +V_AP2ALPHA_01 9.68294e-06 + GCCCGAGGC
+chr13 60529316 60529339 -V_COUPTF_Q6 4.40544e-06 - TCTGATGGCCTTTCCTCCCTGTC
+chr13 62179747 62179767 -V_FOXP1_01 7.72751e-06 - ATCTTTATATTTTTGTGTAG
+chr13 62179853 62179876 +V_OCT1_04 7.18714e-06 + ACAGGCAAATGCAAATGCAGGCA
+chr13 64475099 64475117 +V_HNF3_Q6_01 6.08391e-06 + TTGTATGTTTGTTTACTC
+chr13 64475099 64475117 -V_FOXJ2_01 9.96532e-06 - GAGTAAACAAACATACAA
+chr13 64475101 64475113 +V_FOXD3_01 1.31523e-06 + GTATGTTTGTTT
+chr13 64475101 64475114 +V_FOX_Q2 1.50451e-06 + GTATGTTTGTTTA
+chr13 64475101 64475114 +V_HFH3_01 4.6678e-07 + GTATGTTTGTTTA
+chr13 64475101 64475114 +V_HFH4_01 1.23183e-06 + GTATGTTTGTTTA
+chr13 64475103 64475121 +V_HNF3_Q6_01 3.64693e-07 + ATGTTTGTTTACTCAGTC
+chr13 64475104 64475118 +V_FOXO3_01 8.88278e-06 + TGTTTGTTTACTCA
+chr13 70525801 70525814 -V_DEC_Q1 8.53081e-06 - CCCCAAGTGAAAG
+chr13 70525851 70525861 -V_GATA1_01 4.96582e-06 - CCTGATGGGG
+chr13 70525911 70525921 -V_NKX22_01 5.97675e-06 - TTAAGTACTT
+chr13 70525918 70525937 -V_GR_Q6 4.06623e-06 - AATGTTCATTGTGTTCTTA
+chr13 70525919 70525935 -V_GRE_C 4.3773e-06 - TGTTCATTGTGTTCTT
+chr13 71117978 71117986 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr13 72731851 72731866 +V_DMRT1_01 1.87081e-07 + CTGCAACAATGTTTC
+chr13 72731853 72731868 -V_DMRT1_01 9.92712e-06 - GAGAAACATTGTTGC
+chr13 72731886 72731901 +V_DMRT1_01 1.88888e-06 + CTGTGACAATGTTTC
+chr13 72731921 72731936 +V_DMRT1_01 1.88888e-06 + CTGTGACAATGTTTC
+chr13 73237047 73237077 +V_HOX13_01 5.826e-07 + TTCATCCTTCCCCATTAGCATGTCCATTGA
+chr13 76496242 76496260 +V_NF1_Q6 9.30221e-06 + TGCTGGCAAGATGCCAAA
+chr13 76496244 76496261 +V_NF1_Q6_01 4.76788e-06 + CTGGCAAGATGCCAAAC
+chr13 76496293 76496310 +V_FOXP3_Q4 4.05736e-06 + GAGCTGCTGTGGCAGGC
+chr13 90444210 90444225 +V_ETS1_B 8.48353e-06 + GGAGGAAGTAGGGGA
+chr13 90444225 90444235 -V_SP1_Q2_01 9.56538e-06 - CCCCACCCCT
+chr13 90444226 90444238 -V_PAX4_03 3.63034e-06 - GTCCCCCACCCC
+chr13 90444263 90444277 +V_COUP_01 4.02421e-06 + TGAACTTTGACAAT
+chr13 93457258 93457270 -V_SRY_02 4.26311e-06 - CTTAACAATAGA
+chr13 93457259 93457269 -V_SOX5_01 4.92279e-06 - TTAACAATAG
+chr13 93457338 93457349 -V_EBF_Q6 2.83527e-06 - TTCCCCTGAGA
+chr13 93457339 93457355 +V_NFKB_Q6_01 9.80125e-07 + CTCAGGGGAATTCCCT
+chr13 93457342 93457355 +V_P50P50_Q3 9.77769e-07 + AGGGGAATTCCCT
+chr13 93457342 93457356 +V_NFKB_Q6 9.22738e-07 + AGGGGAATTCCCTA
+chr13 93457342 93457356 -V_NFKB_Q6 5.15179e-06 - TAGGGAATTCCCCT
+chr13 93457343 93457353 +V_CREL_01 5.43478e-06 + GGGGAATTCC
+chr13 93457343 93457355 +V_NFKB_C 6.15227e-06 + GGGGAATTCCCT
+chr13 93457343 93457355 -V_NFKB_C 5.17264e-06 - AGGGAATTCCCC
+chr13 93457343 93457356 -V_P50P50_Q3 5.13238e-07 - TAGGGAATTCCCC
+chr13 93457343 93457359 -V_NFKB_Q6_01 9.65796e-06 - AGTTAGGGAATTCCCC
+chr13 93457344 93457354 +V_NFKAPPAB65_01 7.87917e-06 + GGGAATTCCC
+chr13 93457344 93457354 +V_NFKAPPAB_01 7.46065e-07 + GGGAATTCCC
+chr13 93457344 93457354 -V_NFKAPPAB65_01 7.87917e-06 - GGGAATTCCC
+chr13 93457344 93457354 -V_NFKAPPAB_01 7.46065e-07 - GGGAATTCCC
+chr13 94946129 94946159 -V_PAX4_04 7.0256e-06 - AAAACAAAACAAAAAAAAAAACAACACCCT
+chr13 94946138 94946158 +V_FOXP1_01 1.90686e-06 + TTTTTTTTTTTGTTTTGTTT
+chr13 94946141 94946161 +V_FOXP1_01 3.5996e-06 + TTTTTTTTGTTTTGTTTTGT
+chr13 94946143 94946163 +V_FOXP1_01 2.74514e-07 + TTTTTTGTTTTGTTTTGTTT
+chr13 94946148 94946168 +V_FOXP1_01 4.50341e-06 + TGTTTTGTTTTGTTTTGTTT
+chr13 94946161 94946170 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr13 94946344 94946362 +V_FOXJ2_01 3.58897e-06 + TTGCAAACAAACACAAAA
+chr13 94946347 94946360 -V_HFH4_01 4.06855e-06 - TTGTGTTTGTTTG
+chr13 94946368 94946376 -V_CACD_01 9.89755e-06 - CCACACCC
+chr13 94946374 94946386 -V_PAX4_03 3.63034e-06 - CTCCCCCACCCC
+chr13 94946374 94946388 -V_KROX_Q6 7.21197e-06 - TGCTCCCCCACCCC
+chr13 95098111 95098121 -V_NFAT_Q4_01 2.4539e-06 - GTGGAAAATT
+chr13 95098131 95098147 -V_NFY_01 1.11872e-06 - ACTAACCAATCAGAAG
+chr13 95098133 95098147 +V_NFY_C 2.06025e-08 + TCTGATTGGTTAGT
+chr13 95098134 95098145 -V_NFY_Q6 6.07558e-07 - TAACCAATCAG
+chr13 95098220 95098233 +V_NRF2_Q4 2.19118e-06 + CTGTTGAGTCATT
+chr13 95098221 95098232 +V_MAF_Q6_01 4.06732e-06 + TGTTGAGTCAT
+chr13 95098223 95098232 -V_AP1_Q6_01 8.93783e-06 - ATGACTCAA
+chr13 96249203 96249217 +V_BLIMP1_Q6 9.8164e-06 + GGGAAGGGAAAGCC
+chr13 96366005 96366018 +V_NRF2_Q4 7.08564e-06 + GGGCTGAGTCATT
+chr13 96366006 96366017 +V_MAF_Q6_01 1.07676e-06 + GGCTGAGTCAT
+chr13 96366008 96366017 -V_AP1_Q6_01 4.03003e-06 - ATGACTCAG
+chr13 96366082 96366096 +V_ERR1_Q2 7.60856e-06 + TCCTCGAGGTCACT
+chr13 96579270 96579281 -V_PAX_Q6 1.94869e-06 - CTGGAACTCAA
+chr13 96579280 96579310 +V_PAX4_04 2.24274e-06 + GAAAAATACCTCACTCACCCCTCCCACACA
+chr13 96579297 96579307 +V_SP1_Q2_01 9.56538e-06 + CCCCTCCCAC
+chr13 96579298 96579308 -V_IK_Q5 6.81053e-06 - TGTGGGAGGG
+chr13 96579331 96579347 +V_DMRT2_01 3.1644e-06 + CAACTGGATACATTGT
+chr13 96579332 96579347 +V_DMRT3_01 9.08352e-06 + AACTGGATACATTGT
+chr13 96579335 96579349 +V_DMRT7_01 9.63794e-06 + TGGATACATTGTAG
+chr13 96579335 96579350 +V_DMRT1_01 8.06116e-08 + TGGATACATTGTAGC
+chr13 96579337 96579352 -V_DMRT1_01 4.22462e-06 - TCGCTACAATGTATC
+chr13 96730073 96730085 -V_AP2_Q6 3.4263e-06 - CTCCCCCAGGCC
+chr13 96730073 96730086 -V_AP2_Q6_01 6.31248e-07 - CCTCCCCCAGGCC
+chr13 96730077 96730090 +V_SP1_Q6 7.04257e-06 + TGGGGGAGGGGCA
+chr13 96730078 96730087 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr13 96730078 96730088 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr13 96730078 96730091 +V_MAZR_01 1.7259e-06 + GGGGGAGGGGCAC
+chr13 96730079 96730087 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr13 96730079 96730088 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr13 96730079 96730089 +V_SP1_Q6_01 2.74385e-06 + GGGGAGGGGC
+chr13 96730129 96730140 +V_RBPJK_01 1.7115e-06 + CCCGTGGGAAC
+chr13 96730142 96730165 +V_COUPTF_Q6 1.81259e-06 + CCTGCTGACCCCTCCCTCCTTCC
+chr13 96730147 96730160 -V_MAZR_01 9.36507e-06 - GAGGGAGGGGTCA
+chr13 96730148 96730161 -V_SP1_Q6 8.16238e-06 - GGAGGGAGGGGTC
+chr13 97430162 97430174 -V_LMO2COM_01 5.26561e-06 - CGCCAGCTGGAG
+chr13 97430163 97430173 +V_TAL1_Q6 7.72591e-06 + TCCAGCTGGC
+chr13 97430176 97430189 -V_AP2_Q6_01 5.59926e-06 - CTCTCCCCAGGCG
+chr13 97430300 97430320 -V_FOXP1_01 9.03899e-06 - ATCTTTGTGTTGCTAATTTT
+chr13 97430302 97430317 -V_OCT4_02 8.38472e-07 - TTTGTGTTGCTAATT
+chr13 97966657 97966669 +V_PAX4_03 6.56043e-06 + AACACCCACCCT
+chr13 98052775 98052786 +V_SMAD_Q6_01 6.47055e-06 + TAGGCAGACAT
+chr13 98052776 98052785 -V_SMAD3_Q6 7.33929e-06 - TGTCTGCCT
+chr13 98052831 98052846 +V_OCT1_Q6 9.91069e-06 + ATGCATGCAAATAGC
+chr13 98359696 98359712 -V_S8_01 8.05419e-06 - AAATGTTAATTAGCCT
+chr13 98359743 98359756 +V_MAZR_01 4.53707e-06 + TCGGGTGGGGACA
+chr13 98615243 98615255 -V_SRY_02 5.02837e-06 - GAAAACAATACA
+chr13 98615277 98615292 +V_VDR_Q3 6.79734e-06 + GGGTGAGAGAGGACT
+chr13 98615334 98615345 +V_MAF_Q6_01 2.65014e-06 + TGCTGAGGCAG
+chr13 99469434 99469446 +V_GLI_Q2 1.40827e-06 + CCTGGGTGGTGC
+chr13 99469452 99469464 -V_USF_Q6_01 2.17843e-06 - AGCCACGTGAGA
+chr13 99469453 99469463 +V_USF_Q6 4.1366e-06 + CTCACGTGGC
+chr13 99469461 99469471 +V_GATA1_05 2.21291e-06 + GCTGATAACA
+chr13 99469542 99469554 -V_TTF1_Q6 5.63324e-06 - ACCTCAAGTGCT
+chr13 99470194 99470204 +V_TAL1_Q6 7.46065e-07 + TCCAGCTGCT
+chr13 99470195 99470209 +V_E2A_Q2 3.17841e-06 + CCAGCTGCTGCTGG
+chr13 99470204 99470219 +V_CP2_02 3.90928e-07 + GCTGGTTTGCCCTGG
+chr13 99817066 99817081 -V_SMAD4_Q6 7.63557e-06 - GCCAGGCAGCCTTCC
+chr13 99817129 99817143 +V_COUP_01 5.49981e-06 + TGACCTTTGATGCT
+chr13 99817132 99817143 +V_LEF1TCF1_Q4 1.10645e-06 + CCTTTGATGCT
+chr13 99862335 99862345 +V_P53_02 5.02834e-06 + AGACATGTCC
+chr13 99862335 99862345 +V_P53_DECAMER_Q2 8.50103e-06 + AGACATGTCC
+chr13 103370161 103370171 -V_LEF1_Q2_01 9.48141e-06 - CAACAAAGGG
+chr13 103370240 103370250 -V_LEF1_Q2_01 9.48141e-06 - CAACAAAGGG
+chr13 103445291 103445305 +V_EFC_Q6 4.56902e-06 + AATCACCATGCAAA
+chr13 103445318 103445328 -V_ESE1_Q3 5.33438e-06 - TGTTTCCTGA
+chr13 103540107 103540120 +V_SP1_Q6 3.06772e-06 + AGGGGGAGGAGCC
+chr13 103540219 103540229 +V_TAL1_Q6 3.01332e-06 + TCCATCTGCC
+chr13 103919604 103919634 -V_PAX4_04 5.63091e-06 - AAACAAAACAATAAAACCCCCCACCTCTCC
+chr13 103919609 103919639 -V_PAX4_04 5.03459e-06 - AATAAAAACAAAACAATAAAACCCCCCACC
+chr13 103919627 103919636 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr13 103919633 103919651 -V_CDX_Q5 9.59434e-06 - TATGATCAGACAAATAAA
+chr13 103919737 103919748 -V_FLI1_Q6 7.89528e-06 - CAGGATGTCAG
+chr13 106046996 106047011 -V_OCT4_02 8.01355e-06 - TTTCTCATGTAAATC
+chr13 106046997 106047012 -V_OCT4_01 3.55466e-07 - CTTTCTCATGTAAAT
+chr13 107646783 107646798 -V_OCT4_02 3.61302e-07 - ATTGTCATGCTGATA
+chr13 107646819 107646837 -V_GCNF_01 1.64301e-06 - GTCAAGTTCAAGTGCTGA
+chr13 107646825 107646843 -V_GCNF_01 1.82908e-07 - CAGAAGGTCAAGTTCAAG
+chr13 107646874 107646889 -V_CP2_02 7.39331e-06 - GCAGGTTTGTGCCAG
+chr13 108922399 108922411 -V_PXR_Q2 6.78022e-07 - AGGGTTAGTGAC
+chr13 110630268 110630283 -V_HNF1_01 6.84691e-06 - GGTAAATATTTGACA
+chr13 110630268 110630285 +V_HNF1_C 4.72746e-06 + TGTCAAATATTTACCTC
+chr13 110630604 110630617 +V_DR1_Q3 8.17076e-06 + TGTACAAAGGTCA
+chr13 110630605 110630618 -V_HNF4ALPHA_Q6 6.68176e-06 - ATGACCTTTGTAC
+chr13 110630663 110630673 +V_LEF1_Q2_01 9.48141e-06 + CAACAAAGGG
+chr13 110630691 110630703 +V_CREB_02 2.10867e-06 + CTGATGACGTCA
+chr13 110630691 110630705 -V_CREB_Q2_01 8.51438e-06 - AATGACGTCATCAG
+chr13 110630692 110630703 +V_CREB_Q4_01 9.22102e-06 + TGATGACGTCA
+chr13 110630693 110630707 +V_CREB_Q2_01 6.82756e-06 + GATGACGTCATTAG
+chr13 111352188 111352202 +V_FOXO4_02 2.52063e-06 + TGGTTGTTTACCAG
+chr13 111352208 111352221 -V_AP1_01 2.0763e-06 - TGGTGAGTCAGCC
+chr13 111352209 111352220 +V_AP1_Q6 2.36406e-06 + GCTGACTCACC
+chr13 111352209 111352220 -V_BACH2_01 3.70252e-06 - GGTGAGTCAGC
+chr13 111352210 111352219 -V_AP1_C 7.33929e-06 - GTGAGTCAG
+chr13 112579778 112579793 -V_ETS1_B 7.64126e-06 - ACAGGAAGGAAGGGC
+chr13 112781286 112781304 -V_MYOD_Q6_01 3.9848e-06 - CTCCAGCAGCTGCCAGAG
+chr13 112781479 112781492 -V_OCT_C 6.16486e-06 - CTCATTTGCAAAC
+chr13 112781607 112781616 -V_AP2ALPHA_01 6.01835e-06 - GCCCCGGGG
+chr13 112781607 112781616 -V_AP2GAMMA_01 4.51376e-06 - GCCCCGGGG
+chr13 112781616 112781628 -V_PAX4_03 2.70808e-06 - CACCCCCACCCT
+chr13 112856400 112856414 -V_ERR1_Q2 5.40592e-06 - ATTTGAAGGTCAGA
+chr13 112856447 112856456 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr13 114398150 114398169 -V_OCT1_01 5.31719e-06 - CCGCGTATGCAAAAATCAG
+chr13 114606152 114606165 +V_OCT_C 9.70046e-06 + AGCATTTGCATGT
+chr13 114606152 114606166 +V_OCT1_05 3.48409e-06 + AGCATTTGCATGTG
+chr13 114606167 114606184 -V_NF1_Q6_01 4.21436e-06 - CTGGAATCAAGCCAAGC
+chr13 114606202 114606215 +V_CEBPGAMMA_Q6 5.64858e-06 + TTCATTTAAGAAA
+chr13 114606272 114606282 -V_PR_Q2 9.99108e-06 - GAGAGGACAC
+chr13 114816692 114816706 +V_E2A_Q2 2.3835e-06 + ACACCTGCCTCCTG
+chr13 114816693 114816701 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr13 114816704 114816722 -V_CART1_01 8.94872e-06 - CCATAATTACCATAAACA
+chr13 114816706 114816718 +V_OCT1_07 1.14842e-06 + TTTATGGTAATT
+chr13 114816707 114816717 +V_POU3F2_02 8.91945e-06 + TTATGGTAAT
+chr13 114816764 114816783 +V_ER_Q6 8.78889e-06 + GAAATTCAAGGTGACCTGG
+chr13 115088155 115088170 -V_OCT4_02 9.10747e-06 - ATTTACATGCTAATC
+chr13 115088156 115088171 -V_OCT4_01 6.02107e-06 - CATTTACATGCTAAT
+chr13 115088184 115088203 -V_SEF1_C 1.80775e-06 - AACCCGGATGGCTCTGGCC
+chr13 115088214 115088229 -V_ETS1_B 7.64126e-06 - CGAGGAAGTGGGAGA
+chr13 115088216 115088226 +V_NKX25_Q5 8.11064e-06 + TCCCACTTCC
+chr13 115088216 115088228 +V_ETS_Q4 5.14007e-06 + TCCCACTTCCTC
+chr13 116557319 116557332 -V_IRF1_01 1.28554e-06 - CAATAGTGAAACC
+chr13 118004371 118004382 +V_LEF1TCF1_Q4 5.90916e-06 + CCTTTGATGAT
+chr13 118004432 118004444 -V_NANOG_01 8.86042e-06 - GGGATCATTTGC
+chr14 9235919 9235932 -V_CHOP_01 3.41598e-06 - GTGTGCAACCCCC
+chr14 9236049 9236072 -V_COUPTF_Q6 3.93002e-06 - CCGGCTGTCCTCTGACCTCTACC
+chr14 9236050 9236071 +V_PPARG_01 5.30719e-06 + GTAGAGGTCAGAGGACAGCCG
+chr14 9236054 9236067 +V_RXRLXRB_01 6.42396e-06 + AGGTCAGAGGACA
+chr14 9236054 9236067 +V_DR1_Q3 5.94376e-06 + AGGTCAGAGGACA
+chr14 9236054 9236067 -V_PPAR_DR1_Q2 5.84493e-06 - TGTCCTCTGACCT
+chr14 10718162 10718172 -V_CREL_01 4.68872e-06 - GGGGCATTCC
+chr14 10965600 10965611 -V_ALPHACP1_01 4.48665e-06 - CAGCCAGTGAG
+chr14 10965742 10965765 -V_PPARG_02 7.97223e-06 - CAGTGTGTAATGGTCACCTACAG
+chr14 11872888 11872903 -V_CP2_02 5.19969e-06 - GCTGGCTCCCACTGC
+chr14 12271289 12271311 +V_MEF2_03 2.10294e-06 + ACAGTTTCTAAAGATAGCACTG
+chr14 12271289 12271311 +V_MEF2_04 1.64849e-06 + ACAGTTTCTAAAGATAGCACTG
+chr14 17430820 17430832 -V_AP1_Q2_01 4.82754e-06 - TGACTCATGGGA
+chr14 17430821 17430836 +V_BACH1_01 1.37736e-06 + CCCATGAGTCATTCC
+chr14 21036676 21036691 +V_OCT4_01 1.96957e-07 + TATTGTAATGCTAAT
+chr14 21036677 21036692 +V_OCT4_02 3.02765e-06 + ATTGTAATGCTAATT
+chr14 22305545 22305557 -V_GLI_Q2 3.10596e-06 - CTTGGGTGTTCC
+chr14 22878137 22878152 -V_OCT4_01 8.48593e-06 - TATTATAATGTAAAA
+chr14 25590175 25590198 +V_COUPTF_Q6 8.98927e-06 + TAACCTGACCCCTCTGCCTGGCC
+chr14 25590230 25590242 +V_CEBP_Q3 9.47852e-06 + CAGTTTGGCAAG
+chr14 25590263 25590276 -V_MAZR_01 6.26113e-06 - GGAGGGGGGGTAC
+chr14 25590265 25590276 +V_SP1SP3_Q4 2.8432e-06 + ACCCCCCCTCC
+chr14 25590284 25590298 -V_KROX_Q6 5.75274e-06 - CCAGCCCCCCACCC
+chr14 25590290 25590299 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr14 25590308 25590321 +V_DR1_Q3 3.04643e-06 + TGGACAAAGGTCC
+chr14 25590308 25590321 -V_PPAR_DR1_Q2 6.37174e-06 - GGACCTTTGTCCA
+chr14 25590308 25590321 -V_HNF4_DR1_Q3 6.79583e-06 - GGACCTTTGTCCA
+chr14 25590308 25590321 -V_COUP_DR1_Q6 4.83437e-06 - GGACCTTTGTCCA
+chr14 26268168 26268179 -V_SP1SP3_Q4 7.42043e-06 - CCCCCACCTCC
+chr14 26268168 26268186 +V_CMYB_01 9.73912e-06 + GGAGGTGGGGGTTGGGGG
+chr14 26268266 26268276 -V_SP1_Q6_01 9.74073e-06 - GGGGAGGGGT
+chr14 26268267 26268276 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr14 26268268 26268276 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr14 26440473 26440482 -V_SMAD3_Q6 4.03003e-06 - TGTCTGTCT
+chr14 26440515 26440528 -V_AP2_Q6_01 4.11454e-06 - CTGCCCTCAGGCC
+chr14 26440531 26440544 +V_HNF4ALPHA_Q6 7.55113e-06 + GTGATCTTTGCCT
+chr14 28085957 28085974 +V_HSF1_Q6 5.57435e-06 + CTTCCAGAAGGTTGTTC
+chr14 28086433 28086448 -V_OCT4_01 6.46423e-06 - CATTCTTATTCAAAA
+chr14 28086479 28086492 +V_CRX_Q4 9.874e-06 + TCTTTAATCCCAG
+chr14 28086481 28086492 +V_PITX2_Q2 1.22695e-06 + TTTAATCCCAG
+chr14 28086502 28086516 -V_E2A_Q2.4.50068e-08 - CCACCTGCCTCAGC
+chr14 28086507 28086515 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr14 28086507 28086517 -V_MYOD_Q6 6.66004e-06 - TCCACCTGCC
+chr14 28086522 28086533 -V_PAX_Q6 2.04834e-07 - CTGGAACTCAC
+chr14 28086524 28086538 -V_PAX6_Q2 5.16503e-06 - CTGGTCTGGAACTC
+chr14 28086566 28086575 +V_FOXO1_Q5 7.27852e-06 + AAAAACAAA
+chr14 28086566 28086586 -V_FOXP1_01 3.37457e-06 - TTTGTTTTGTTTTTGTTTTT
+chr14 29052008 29052023 +V_OCT4_01 7.94702e-06 + GTTTGTCATGCTAAT
+chr14 29052009 29052024 +V_OCT4_02 6.76521e-08 + TTTGTCATGCTAATC
+chr14 30764157 30764173 -V_MAF_Q6 9.09794e-07 - TGGGAGGAAGTGTGCC
+chr14 30764225 30764238 -V_NRF2_Q4 5.51501e-06 - ATGCTTAGTCATC
+chr14 31407635 31407648 +V_NFY_Q6_01 5.29946e-06 + GACCAGCCAATCA
+chr14 31407636 31407650 -V_NFY_C 3.19919e-07 - CCTGATTGGCTGGT
+chr14 31407636 31407652 +V_NFY_01 2.79702e-07 + ACCAGCCAATCAGGAG
+chr14 31407638 31407649 +V_ALPHACP1_01 5.77866e-07 + CAGCCAATCAG
+chr14 31407744 31407757 +V_AP2_Q6_01 6.27133e-06 + GGTGCCCCAGGCT
+chr14 32713196 32713204 +V_CACD_01 9.89755e-06 + CCACACCC
+chr14 32731878 32731893 +V_SPZ1_01 4.92705e-06 + ACTGGGGGGATGGGC
+chr14 32732007 32732015 +V_CACD_01 9.89755e-06 + CCACACCC
+chr14 32732436 32732449 -V_MAZR_01 3.68108e-06 - GGGGGAGGGGACT
+chr14 32732439 32732448 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr14 32732439 32732449 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr14 32732440 32732448 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr14 32732440 32732449 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr14 32732440 32732454 +V_KROX_Q6 1.2477e-06 + CCCTCCCCCTCCCC
+chr14 32732444 32732454 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr14 32732444 32732455 +V_SP1SP3_Q4 2.8432e-06 + CCCCCTCCCCC
+chr14 32732445 32732454 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr14 32732445 32732455 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr14 32732446 32732454 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr14 32732446 32732455 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr14 33447645 33447660 +V_HES1_Q2 2.56329e-06 + CAGCCTCGTGGCCTG
+chr14 33447774 33447785 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr14 33447776 33447785 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr14 33447776 33447786 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr14 33640442 33640456 -V_ERR1_Q2 2.6673e-06 - AGGTGAAGGTCAAA
+chr14 33640446 33640467 -V_PPARG_01 2.09368e-06 - CAGGGGCTCAAAGGTGAAGGT
+chr14 33640450 33640463 -V_DR1_Q3 6.75098e-06 - GGCTCAAAGGTGA
+chr14 33640464 33640477 +V_HNF3_Q6 3.64504e-06 + CTGAACAAACAGC
+chr14 33673169 33673184 +V_DMRT1_01 6.26201e-07 + CTGCTACATTGTGTC
+chr14 33673171 33673186 -V_DMRT1_01 4.7719e-06 - CTGACACAATGTAGC
+chr14 33673191 33673204 +V_SP1_Q6 7.54104e-06 + GGGGGGAGGGGTA
+chr14 33673192 33673201 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr14 33673192 33673202 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr14 33673192 33673205 +V_MAZR_01 5.14471e-06 + GGGGGAGGGGTAA
+chr14 33673193 33673201 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr14 33673193 33673202 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr14 33673193 33673203 +V_SP1_Q6_01 9.74073e-06 + GGGGAGGGGT
+chr14 33673230 33673243 +V_NRF2_Q4 3.24035e-07 + ATGCTGAGTCAGC
+chr14 33673231 33673242 +V_MAF_Q6_01 4.54281e-07 + TGCTGAGTCAG
+chr14 33673232 33673243 -V_AP1FJ_Q2 8.1176e-06 - GCTGACTCAGC
+chr14 33673232 33673243 -V_AP1_Q6 7.46065e-07 - GCTGACTCAGC
+chr14 33673249 33673262 +V_NRF2_Q4 3.24035e-07 + ATGCTGAGTCAGC
+chr14 33673250 33673261 +V_MAF_Q6_01 4.54281e-07 + TGCTGAGTCAG
+chr14 33673251 33673262 -V_AP1FJ_Q2 8.1176e-06 - GCTGACTCAGC
+chr14 33673251 33673262 -V_AP1_Q6 7.46065e-07 - GCTGACTCAGC
+chr14 35507317 35507332 +V_OCT4_02 3.02765e-06 + ATTCAGATGCTGATT
+chr14 35507418 35507432 +V_NFY_C 2.79094e-06 + TCTGATTGGGTAAT
+chr14 39134295 39134310 +V_OCT4_01 9.436e-07 + CATTGATATGGAAAT
+chr14 39134296 39134311 +V_OCT4_02 5.69461e-06 + ATTGATATGGAAATG
+chr14 39134299 39134313 -V_OCT1_05 5.14798e-06 - GTCATTTCCATATC
+chr14 39134414 39134435 +V_HNF1_Q6_01 2.14087e-06 + CACAGTTAATTAGTAAACAGC
+chr14 39134415 39134433 -V_HNF1_Q6 3.88271e-07 - TGTTTACTAATTAACTGT
+chr14 39134417 39134434 +V_HNF1_C 1.12589e-06 + AGTTAATTAGTAAACAG
+chr14 40452276 40452291 -V_OCT4_02 1.90479e-06 - ATTCAGTTGCAAATT
+chr14 40452331 40452344 -V_IRF1_01 2.22772e-06 - CAAAATTGAAAGC
+chr14 46897779 46897789 -V_NFAT_Q4_01 8.89473e-06 - GAGGAAAATC
+chr14 48455279 48455294 -V_OCT4_01 7.41924e-06 - CTTTGAAATTCAGAT
+chr14 48973921 48973932 -V_PAX_Q6 1.07676e-06 - CAGGAACTCAC
+chr14 48973974 48973983 +V_YY1_Q6 3.30926e-06 + GCCATCTTG
+chr14 48974079 48974093 -V_ETS2_B 4.50829e-06 - GACAGGAAATGCTC
+chr14 49895146 49895161 -V_SREBP1_Q5 8.44178e-06 - AGAGTCACCCCAGGA
+chr14 49895149 49895161 -V_SREBP_Q3 7.2459e-06 - AGAGTCACCCCA
+chr14 49895161 49895173 -V_ETS_Q4 5.73527e-06 - CTTCACTTCCTG
+chr14 49895208 49895219 +V_RORA_Q4 6.07427e-06 + TTACTGGGTCA
+chr14 498952.4.59895288 -V_KROX_Q6 1.8783e-06 - CCCACCCCCACCTC
+chr14 49895277 49895288 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr14 49895278 49895291 +V_SP1_Q6 7.04257e-06 + TGGGGGTGGGGGC
+chr14 49895279 49895288 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr14 49895279 49895289 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr14 49895279 49895290 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr14 49895280 49895294 -V_KROX_Q6 3.62033e-06 - TGTGCCCCCACCCC
+chr14 50067540 50067555 +V_OCT4_02 1.90479e-06 + ATTCAGATGCAAGTG
+chr14 51599531 51599552 +V_DR3_Q4 3.8928e-06 + GATGACCTTCCTGAATGTCCT
+chr14 51618205 51618219 +V_ETS2_B 6.93628e-07 + GGCAGGAAGTGGTT
+chr14 51618206 51618221 +V_ETS1_B 2.69251e-07 + GCAGGAAGTGGTTTG
+chr14 51618207 51618219 -V_ETS_Q4 1.02417e-07 - AACCACTTCCTG
+chr14 52518399 52518409 +V_IK_Q5 6.81053e-06 + TGTGGGAGGG
+chr14 52518400 52518410 -V_SP1_Q2_01 9.56538e-06 - CCCCTCCCAC
+chr14 52518401 52518414 +V_MAZR_01 8.35903e-06 + TGGGAGGGGGCTA
+chr14 52518404 52518426 +V_MEF2_03 2.86152e-06 + GAGGGGGCTAAAGATAGCCTAA
+chr14 52733939 52733947 -V_CACD_01 9.89755e-06 - CCACACCC
+chr14 52734012 52734026 +V_PAX6_Q2 8.99924e-06 + CTGACCTAGAACCA
+chr14 52734015 52734025 -V_BCL6_Q3 1.81713e-06 - GGTTCTAGGT
+chr14 52734039 52734051 +V_LRH1_Q5 2.30644e-06 + TTGGCCTTGAAC
+chr14 54196751 54196764 -V_STAT_Q6 2.21622e-06 - AGCTTTTCTGGGA
+chr14 54196838 54196853 -V_OCT4_01 4.28625e-06 - CATTCAATTGCAAAT
+chr14 54813751 54813762 +V_TGIF_01 7.03729e-07 + AGCTGTCAGGA
+chr14 54813759 54813771 +V_NANOG_01 7.60378e-06 + GGAGTCATTGCC
+chr14 54813820 54813838 +V_LXR_Q3 6.93036e-06 + AGGGGTGAGTGGAGTGCA
+chr14 54813821 54813838 -V_DR4_Q2 7.59081e-06 - TGCACTCCACTCACCCC
+chr14 54813841 54813854 +V_AP2_Q6_01 8.36638e-07 + CTGCCCCCAGGCC
+chr14 54813844 54813862 +V_CMYB_01 1.4877e-06 + CCCCCAGGCCGTTGGAGG
+chr14 55803701 55803716 -V_TAXCREB_02 4.88316e-06 - ATGACACACCTCCTC
+chr14 55977408 55977437 +V_MYOGNF1_01 2.62185e-07 + AACCTGCTTAGTTTTGCAAAGAGCCATCA
+chr14 56414760 56414771 +V_AP1_Q4 2.788e-06 + AGTGACTCACT
+chr14 56414796 56414808 -V_MYOD_01 4.86878e-06 - GGACAGGTGTCT
+chr14 56414801 56414810 +V_T3R_Q6 8.74404e-06 + CCTGTCCTG
+chr14 56414853 56414867 +V_GATA1_03 6.4708e-06 + ATCAAGATTAGGGC
+chr14 56414896 56414905 +V_SMAD3_Q6 7.33929e-06 + TGTCTGCCT
+chr14 56414903 56414918 +V_DMRT1_01 2.3432e-08 + CTGATACAATGTTGC
+chr14 56414905 56414920 -V_DMRT1_01 2.20757e-06 - CAGCAACATTGTATC
+chr14 57935655 57935674 +V_PU1_Q4 8.14738e-07 + ACCTCCCACTTCCTCCCCT
+chr14 57935656 57935671 -V_ETS1_B 1.25407e-06 - GGAGGAAGTGGGAGG
+chr14 57935658 57935668 +V_NKX25_Q5 8.11064e-06 + TCCCACTTCC
+chr14 57935658 57935670 +V_ETS_Q4 5.14007e-06 + TCCCACTTCCTC
+chr14 57935669 57935678 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr14 57935669 57935679 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr14 57935670 57935678 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr14 57935670 57935679 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr14 57935670 57935684 +V_KROX_Q6 1.2477e-06 + CCCTCCCCCTCCCC
+chr14 57935674 57935684 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr14 57935674 57935685 +V_SP1SP3_Q4 2.8432e-06 + CCCCCTCCCCC
+chr14 57935675 57935684 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr14 57935675 57935685 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr14 57935676 57935684 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr14 57935676 57935685 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr14 58351623 58351635 -V_OCT1_07 1.65282e-06 - TTTATGTTAATT
+chr14 58351624 58351634 -V_POU3F2_02 1.99833e-06 - TTATGTTAAT
+chr14 58351671 58351686 -V_OCT4_01 3.49929e-06 - CAGTGAAATGCAAAT
+chr14 58351695 58351714 +V_PU1_Q4 6.18667e-06 + AGCACTCAGTTCCTTTTCT
+chr14 58351775 58351788 +V_HFH3_01 1.70454e-06 + GGTTGTTTGTTTG
+chr14 63645474 63645485 +V_SMAD_Q6_01 6.8135e-06 + TAGGCAGACTC
+chr14 63645499 63645507 -V_CACD_01 9.89755e-06 - CCACACCC
+chr14 64119156 64119184 +V_PAX5_01 5.10617e-06 + CCTGGGAGCAAGGAAGGGTGGAGCCCAT
+chr14 64674057 64674069 +V_PAX4_03 2.70808e-06 + CACTCCCACCCC
+chr14 64674113 64674126 +V_SP1_Q6 3.23457e-06 + CAGGGGAGGGGCG
+chr14 64674114 64674124 -V_SP1_Q2_01 6.40385e-06 - CCCCTCCCCT
+chr14 64674114 64674127 +V_MAZR_01 8.35903e-06 + AGGGGAGGGGCGG
+chr14 64674115 64674123 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr14 64674115 64674124 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr14 64674115 64674125 +V_SP1_Q6_01 2.74385e-06 + GGGGAGGGGC
+chr14 64674193 64674211 +V_PAX8_B 8.15746e-06 + ACAGCCTTGGGTGGGGTG
+chr14 64674277 64674285 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr14 64674279 64674290 +V_EBF_Q6 4.00905e-06 + CTCCCCAGGGA
+chr14 64674305 64674320 +V_EVI1_04 7.84617e-06 + TGCAAAGATAAGATA
+chr14 64674305 64674321 +V_EVI1_01 1.55957e-06 + TGCAAAGATAAGATAA
+chr14 64674310 64674321 +V_EVI1_02 8.2.4.5e-07 + AGATAAGATAA
+chr14 64674310 64674321 +V_EVI1_03 4.5052e-07 + AGATAAGATAA
+chr14 64674310 64674321 +V_EVI1_05 8.2.4.5e-07 + AGATAAGATAA
+chr14 64674391 64674400 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr14 64674392 64674400 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr14 67381789 67381802 +V_NRF2_Q4 4.63559e-06 + ATGCAGAGTCACC
+chr14 67381809 67381822 +V_NRF2_Q4 4.63559e-06 + ATGCAGAGTCACC
+chr14 70385572 70385581 -V_SMAD_Q6 9.3359e-06 - AGACACCCT
+chr14 70385613 70385631 -V_NF1_Q6 3.13934e-06 - GGTTGGCCAGAGGCCCAA
+chr14 70457039 70457053 +V_ETS2_B 1.99939e-06 + GGCAGGAAACAAGT
+chr14 70457106 70457117 +V_CP2_01 6.65879e-07 + GCCCAACCCAG
+chr14 71366168 71366180 +V_PAX4_03 1.74945e-06 + CAGCCCCACCCC
+chr14 71366170 71366180 -V_SP1_Q6_01 4.32232e-06 - GGGGTGGGGC
+chr14 71366171 71366181 +V_SP1_Q2_01 9.56538e-06 + CCCCACCCCT
+chr14 71366186 71366201 -V_SREBP_Q6 8.07305e-06 - ACCCCCACCCCAGTG
+chr14 71366190 71366202 -V_PAX4_03 6.22761e-08 - AACCCCCACCCC
+chr14 71366196 71366213 -V_DR4_Q2 8.90285e-06 - TGGACTGCAGCAACCCC
+chr14 71366213 71366231 +V_CMYB_01 7.22789e-06 + GCCCAAGGCTGTTGGGAG
+chr14 71366294 71366307 -V_GATA1_04 6.24632e-06 - TCCTGATAAGGAG
+chr14 72551683 72551696 +V_HNF4ALPHA_Q6 1.19478e-06 + ATGAACCTTGAAC
+chr14 72551684 72551698 +V_COUP_01 7.27726e-07 + TGAACCTTGAACAT
+chr14 73170183 73170197 +V_DMRT7_01 5.18644e-06 + TTGTGACAGTGTTT
+chr14 73170232 73170246 -V_PAX6_Q2 2.35112e-06 - CTGACATGGAATTC
+chr14 73170322 73170333 -V_TGIF_01 1.20262e-06 - AGCTGTCACTA
+chr14 73170329 73170339 +V_ESE1_Q3 8.06007e-06 + AGCTTCCTGT
+chr14 73631537 73631552 +V_VDRRXR_01 1.93337e-06 + AGGTCAAAGGGTCCA
+chr14 73631570 73631579 +V_FOXO1_Q5 7.27852e-06 + AAAAACAAA
+chr14 75323958 75323967 -V_T3R_Q6 8.74404e-06 - CCTGTCCTG
+chr14 75323968 75323984 +V_AP2_Q3 2.64948e-06 + AGCCCCAGGCAGTGCC
+chr14 75767293 75767304 +V_EBF_Q6 4.00905e-06 + CTCCCCAGGGA
+chr14 75767491 75767503 -V_TTF1_Q6 1.06446e-06 - CCCTCAAGTGTT
+chr14 75767559 75767577 +V_MYOD_Q6_01 7.74036e-06 + TCGAAGCAGGTGGTGGCA
+chr14 75767562 75767574 +V_MYOD_01 7.90686e-06 + AAGCAGGTGGTG
+chr14 75767597 75767607 +V_MYB_Q6 5.43478e-06 + CCCAACTGCC
+chr14 76281786 76281800 -V_KROX_Q6 1.18892e-06 - CCAGCCCCCACACC
+chr14 76281789 76281800 +V_EGR_Q6 6.55683e-06 + GTGGGGGCTGG
+chr14 76281840 76281856 +V_NFKB_Q6_01 5.91669e-06 + AGCGGGGGAAGTCCAG
+chr14 76281898 76281910 +V_NFKB_C 6.36167e-06 + TGGGACATTCCA
+chr14 76281917 76281947 -V_PAX4_04 4.90448e-08 - GAAAAAAACCCAGGCTGCAGCCTTCACCCC
+chr14 76667064 76667079 -V_OCT4_01 7.41924e-06 - TATTCAAATGCTAAA
+chr14 76982164 76982174 -V_TBX5_Q5 1.65463e-06 - CTCACACCTG
+chr14 77071286 77071301 +V_DMRT1_01 1.89847e-08 + TTGATACATTGTAGC
+chr14 77071288 77071303 -V_DMRT1_01 1.3484e-06 - CAGCTACAATGTATC
+chr14 77071330 77071359 +V_MYOGNF1_01 3.9147e-06 + TACCTGTTGCTTCTGGTTGGGTGGCTGGA
+chr14 77650639 77650654 -V_VDR_Q3 9.00638e-06 - GGGGGACCCAGGTGA
+chr14 77650705 77650720 -V_OCT4_02 5.14438e-08 - TTTGTGATGCTAATG
+chr14 77650706 77650721 -V_OCT4_01 8.76645e-07 - CTTTGTGATGCTAAT
+chr14 77650756 77650767 -V_EBF_Q6 5.82411e-06 - TTCCCCTGGGT
+chr14 77650763 77650780 +V_PU1_01 1.2508e-06 + GGAAAGGGGAACTGTGG
+chr14 77919658 77919676 +V_GCNF_01 9.7811e-06 + CCTGAATTCAAGGTCAGC
+chr14 77919661 77919675 -V_PAX6_Q2 1.36823e-06 - CTGACCTTGAATTC
+chr14 77919663 77919675 -V_LRH1_Q5 6.8178e-06 - CTGACCTTGAAT
+chr14 77919665 77919674 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr14 86795968 86795983 -V_OCT4_01 4.01204e-06 - CTTTAACATGTAAAT
+chr14 86795991 86796014 -V_OCT1_04 8.86405e-07 - TCTTTGCTATGCAAATCAAACCA
+chr14 86795995 86796008 +V_OCT_C 5.64798e-06 + TTGATTTGCATAG
+chr14 86795996 86796007 +V_OCT1_Q5_01 3.69944e-07 + TGATTTGCATA
+chr14 86795996 86796007 +V_OCT_Q6 3.69944e-07 + TGATTTGCATA
+chr14 86795997 86796007 -V_OCT1_B 1.34745e-06 - TATGCAAATC
+chr14 86795998 86796013 -V_OCT4_01 2.28618e-06 - CTTTGCTATGCAAAT
+chr14 86796037 86796056 -V_PAX2_01 9.50944e-06 - TCTTGTCATGCATGCGGAT
+chr14 98910362 98910379 +V_PU1_01 1.14463e-06 + AAAATAGGGAAGTTGGG
+chr14 98910364 98910380 +V_MAF_Q6 3.11929e-06 + AATAGGGAAGTTGGGT
+chr14 99386418 99386429 +V_AP1FJ_Q2 3.08232e-06 + GGTGACTCAAT
+chr14 99386418 99386429 +V_AP1_Q6 5.6407e-06 + GGTGACTCAAT
+chr14 99386420 99386432 +V_AP1_Q2_01 2.73244e-06 + TGACTCAATGTG
+chr14 99754807 99754815 +V_CACD_01 9.89755e-06 + CCACACCC
+chr14 99936644 99936658 -V_DMRT7_01 8.25824e-07 - TTGTTACAGTTTAG
+chr14 99936645 99936660 -V_DMRT5_01 2.72566e-06 - GCTTGTTACAGTTTA
+chr14 99936662 99936671 -V_EVI1_06 5.97675e-06 - ACAAGATAA
+chr14 99936668 99936681 -V_SOX_Q6 5.25102e-06 - CTCTTTGTTCACA
+chr14 99936712 99936727 -V_CP2_02 5.19969e-06 - GCTGGTTCCATCCGC
+chr14 100749341 100749361 +V_YY1_02 5.33647e-08 + GCACGGCCATCTGCCCTGGT
+chr14 100749351 100749365 +V_PAX6_Q2 4.94834e-06 + CTGCCCTGGTACTC
+chr14 100749397 100749412 -V_OCT4_01 7.41924e-06 - CTTTCTCATTCAAAC
+chr14 105419411 105419426 -V_OCT4_02 2.4.503e-06 - ATTGTCATGTTAATT
+chr14 105419412 105419427 -V_OCT4_01 7.49108e-07 - CATTGTCATGTTAAT
+chr14 105419474 105419487 +V_ALX4_01 9.59891e-06 + CTTGAGGATAATC
+chr14 112371342 112371355 +V_STAT_Q6 8.60737e-06 + CCCAGTTCTGGGA
+chr14 112371344 112371359 +V_STAT5A_01 6.37009e-06 + CAGTTCTGGGAAACA
+chr14 112371345 112371358 -V_STAT1STAT1_Q3 8.1888e-06 - GTTTCCCAGAACT
+chr14 112371347 112371371 -V_STAT5A_02 5.06938e-07 - TTCCTAGAGCTCTGTTTCCCAGAA
+chr14 114026119 114026139 +V_FOXP1_01 6.51561e-06 + CTCTTTGTCTTTGTTTGTTT
+chr14 114026127 114026140 +V_HFH8_01 7.51918e-06 + CTTTGTTTGTTTG
+chr14 114026127 114026140 +V_HFH4_01 4.93261e-06 + CTTTGTTTGTTTG
+chr14 114026128 114026141 -V_HNF3_Q6 8.74112e-06 - ACAAACAAACAAA
+chr14 114092318 114092334 -V_EVI1_01 9.76601e-06 - AGACAAGATCAGCTTA
+chr14 114092323 114092334 -V_EVI1_02 6.73539e-06 - AGACAAGATCA
+chr14 114092323 114092339 -V_EVI1_01 1.61473e-06 - TCACAAGACAAGATCA
+chr14 114174986 114174998 +V_ETS_Q4 7.92948e-06 + TGCCACATCCTG
+chr14 114186976 114186988 +V_ELF1_Q6 4.74145e-06 + GAAACAGGAAAT
+chr14 114187006 114187020 -V_KROX_Q6 6.53311e-06 - CCCTCCCCCCCACC
+chr14 114187007 114187018 +V_EGR_Q6 3.00131e-06 + GTGGGGGGGAG
+chr14 114620272 114620288 -V_NFY_01 3.96614e-06 - CTTAGCCAATCACAGA
+chr14 114620275 114620286 -V_NFY_Q6 8.57006e-07 - TAGCCAATCAC
+chr14 114620276 114620289 -V_NFY_Q6_01 2.85389e-07 - ACTTAGCCAATCA
+chr14 114620365 114620378 +V_AP2_Q6_01 4.11454e-06 + CAGCCCTCAGGCT
+chr14 117268819 117268834 -V_TATA_01 7.88032e-06 - CTATAAAAAAGAGGG
+chr14 117268825 117268835 -V_TATA_C 7.61768e-06 - CCTATAAAAA
+chr14 117268861 117268873 +V_OCT1_07 2.92381e-06 + AGTATGTTAATT
+chr14 117269369 117269382 +V_OCT_C 5.64798e-06 + CTCATTTGCATCT
+chr14 117269369 117269383 +V_OCT1_05 8.48471e-06 + CTCATTTGCATCTC
+chr14 117269369 117269384 -V_OCT1_Q6 3.8164e-06 - AGAGATGCAAATGAG
+chr14 117269492 117269506 +V_NFY_C 2.60409e-06 + CCTGATTGGTAAAA
+chr14 118237189 118237200 +V_PAX_Q6 9.42649e-06 + CTGGGACACAC
+chr14 118652829 118652842 +V_HSF_Q6 2.81328e-06 + TTCCAGAGACTTC
+chr14 118652849 118652858 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr14 119376631 119376640 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr14 119376632 119376644 -V_PAX4_03 2.12865e-06 - AATGCCCACCCC
+chr14 119376807 119376822 +V_OCT4_01 7.94702e-06 + TTTTCAGATGCAAAG
+chr14 119376808 119376823 +V_OCT4_02 8.01355e-06 + TTTCAGATGCAAAGG
+chr14 119376906 119376916 +V_SP1_Q2_01 9.56538e-06 + CCCCTCCCAC
+chr14 119376907 119376917 -V_IK_Q5 4.33614e-06 - GGTGGGAGGG
+chr14 119376927 119376946 +V_GR_Q6 1.17494e-06 + GTGCCTCATTGTGTTCTTC
+chr14 120295494 120295518 -V_COMP1_01 7.06784e-07 - TCTGAAGATAGGCGAGGACAGATG
+chr14 120295552 120295561 -V_AP2ALPHA_01 9.68294e-06 - GCCCGAGGC
+chr14 120295617 120295629 -V_HNF6_Q6 6.78715e-06 - ATAAATCAATCA
+chr14 12.4.5389 12.4.5407 +V_HNF3_Q6_01 8.19906e-06 + GCCATTGTTTGCTCGTTT
+chr14 121529785 121529795 -V_TITF1_Q3 5.57537e-06 - TCTCAAGTGT
+chr14 121529810 121529820 +V_P53_DECAMER_Q2 8.50103e-06 + GGACAAGTCC
+chr14 122012892 122012902 +V_NKX25_Q5 8.11064e-06 + CCCCACTTGA
+chr14 122012921 122012932 +V_EGR_Q6 3.55693e-06 + GTGGGGGCAGA
+chr14 122012941 122012956 +V_DMRT1_01 1.88888e-06 + TTGCAACACTGTTGC
+chr14 122012943 122012958 -V_DMRT1_01 9.55793e-06 - TAGCAACAGTGTTGC
+chr14 122654828 122654839 -V_E12_Q6 7.75461e-06 - GGCAGGTGTAG
+chr14 122654831 122654839 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr14 122654859 122654871 -V_LMO2COM_01 9.95431e-06 - CGACAGCTGCAG
+chr14 122654873 122654888 -V_OCT4_01 9.65557e-06 - CTTAGTCTTGCAAAT
+chr14 122676586 122676614 +V_PAX5_01 4.92666e-06 + CCCCGGTGGAGGGGTGGGGAGAGTCACC
+chr14 122676595 122676605 -V_SP1_Q2_01 9.56538e-06 - CCCCACCCCT
+chr14 122676637 122676652 +V_OCT4_01 2.83977e-06 + CATTGATGTGCAAAT
+chr14 122740933 122740943 +V_MYOD_Q6 6.66004e-06 + TCCACCTGCC
+chr14 122740934 122740948 +V_E2A_Q2 1.24142e-07 + CCACCTGCCTCTGC
+chr14 122740935 122740943 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr14 122741003 122741011 -V_CACD_01 9.89755e-06 - CCACACCC
+chr14 122741012 122741021 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr14 122741033 122741047 +V_ETS2_B 5.62369e-06 + AGCAGGAAGCCTGT
+chr14 122741052 122741064 -V_GFI1B_01 8.15685e-07 - TAAATCACAGCA
+chr14 122741328 122741342 -V_NFY_C 8.88045e-06 - GCTGATTGTCTAGT
+chr14 122741346 122741357 -V_LEF1TCF1_Q4 1.10645e-06 - CCTTTGATCTT
+chr14 122741348 122741358 +V_LEF1_Q2_01 5.84716e-06 + GATCAAAGGC
+chr14 123303156 123303165 -V_AP1_C 7.33929e-06 - GTGAGTCAG
+chr14 123303304 123303324 +V_FOXP1_01 4.50341e-06 + GTTTTTGTTTTGTTTTGTTT
+chr14 123303309 123303329 +V_FOXP1_01 4.50341e-06 + TGTTTTGTTTTGTTTTGTTT
+chr15 3534553 3534562 +V_AP2ALPHA_01 6.01835e-06 + GCCCCGGGG
+chr15 3534553 3534562 +V_AP2GAMMA_01 4.51376e-06 + GCCCCGGGG
+chr15 3534554 3534563 -V_AP2ALPHA_01 6.01835e-06 - GCCCCGGGG
+chr15 3534554 3534563 -V_AP2GAMMA_01 4.51376e-06 - GCCCCGGGG
+chr15 3534595 3534605 -V_EBOX_Q6_01 7.92622e-06 - CCACATGACC
+chr15 3534595 3534607 -V_USF_Q6_01 7.96456e-06 - GACCACATGACC
+chr15 3534609 3534627 +V_HNF3_Q6_01 2.78085e-08 + TTTACTGTTTGCTTTGTT
+chr15 3534609 3534627 -V_FOXJ2_01 6.14764e-06 - AACAAAGCAAACAGTAAA
+chr15 3534611 3534624 +V_FOX_Q2 7.45051e-06 + TACTGTTTGCTTT
+chr15 3534612 3534625 -V_HNF3_Q6 8.29694e-07 - CAAAGCAAACAGT
+chr15 5085237 5085247 -V_NCX_01 2.56319e-06 - TGGTAAGTGG
+chr15 5085244 5085257 -V_GATA1_04 2.34959e-06 - AGCAGATAAGTGG
+chr15 5085281 5085294 +V_NFY_Q6_01 9.01066e-06 + TACTAGCCAATCA
+chr15 5085282 5085296 -V_NFY_C 1.19592e-08 - CCTGATTGGCTAGT
+chr15 5085282 5085298 +V_NFY_01 7.70761e-07 + ACTAGCCAATCAGGGA
+chr15 5085284 5085295 +V_ALPHACP1_01 5.68927e-06 + TAGCCAATCAG
+chr15 5085284 5085295 +V_NFY_Q6 1.60535e-06 + TAGCCAATCAG
+chr15 5085303 5085316 +V_SP1_Q6 8.16238e-06 + CAGGGGAGGGGGC
+chr15 5085304 5085314 -V_SP1_Q2_01 6.40385e-06 - CCCCTCCCCT
+chr15 5085305 5085313 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr15 5085305 5085314 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr15 5085305 5085315 +V_SP1_Q6_01 8.48538e-06 + GGGGAGGGGG
+chr15 5085305 5085318 +V_MAZR_01 3.8307e-06 + GGGGAGGGGGCAA
+chr15 5085305 5085319 -V_KROX_Q6 7.56123e-06 - GTTGCCCCCTCCCC
+chr15 5085319 5085334 -V_OCT4_01 6.02107e-06 - CTTTGTTGTGTAAAT
+chr15 5085333 5085341 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr15 5085333 5085344 +V_E12_Q6 7.75461e-06 + GGCAGGTGTAG
+chr15 5099257 5099272 -V_DMRT1_01 7.56504e-06 - CTGTTACTTTGTTTT
+chr15 5845851 5845864 -V_P50P50_Q3 8.8244e-06 - GAGGGAATCCCAT
+chr15 5845899 5845917 -V_SRF_Q4 1.76483e-06 - CCCAAATAAGGGAATATA
+chr15 5845901 5845916 -V_SRF_Q5_01 5.01188e-06 - CCAAATAAGGGAATA
+chr15 5845901 5845920 +V_SRF_Q5_02 1.36621e-06 + TATTCCCTTATTTGGGAAT
+chr15 5845902 5845920 +V_SRF_01 8.92246e-07 + ATTCCCTTATTTGGGAAT
+chr15 5845902 5845920 -V_SRF_01 8.92246e-07 - ATTCCCAAATAAGGGAAT
+chr15 5845904 5845918 -V_SRF_Q6 4.42983e-06 - TCCCAAATAAGGGA
+chr15 6504673 6504688 +V_DMRT1_01 1.11988e-06 + TGGATACTATGTTGC
+chr15 6504697 6504718 -V_STAT3_01 3.07793e-06 - TTTTATTTCAGGGAAGTCAAA
+chr15 6578767 6578779 -V_NKX62_Q2 5.20822e-06 - GAAATAATTATT
+chr15 6578806 6578821 +V_OCT4_01 8.48593e-06 + CTTTGTCATTGAAAT
+chr15 6578807 6578822 +V_OCT4_02 9.71581e-06 + TTTGTCATTGAAATG
+chr15 6578812 6578827 +V_OCT4_01 4.91956e-06 + CATTGAAATGGAAAC
+chr15 7010738 7010760 -V_MEF2_02 4.51426e-06 - ACACCAGCTATAAATAGGACAC
+chr15 7010738 7010760 -V_MEF2_03 5.64731e-06 - ACACCAGCTATAAATAGGACAC
+chr15 7130728 7130746 +V_LXR_Q3 8.98063e-06 + AGGGGTCAAGGCCGGGCG
+chr15 7130729 7130746 -V_DR4_Q2 1.52587e-06 - CGCCCGGCCTTGACCCC
+chr15 7130730 7130746 -V_LXR_DR4_Q3 1.37159e-06 - CGCCCGGCCTTGACCC
+chr15 11962398 11962413 +V_OCT4_01 5.75922e-07 + TATTCTAATGCTAAT
+chr15 11962399 11962414 +V_OCT4_02 7.51249e-06 + ATTCTAATGCTAATT
+chr15 11962438 11962452 +V_MTF1_Q4 9.78336e-06 + TCTGCACATAGCCC
+chr15 11962458 11962466 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr15 11962458 11962467 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr15 11962460 11962471 -V_EGR_Q6 3.00131e-06 - GTGGGGGGGAG
+chr15 11962483 11962494 -V_NFY_Q6 7.17826e-06 - TCACCAATCAC
+chr15 14203721 14203731 -V_PARP_Q3 1.10645e-06 - TGGGAAATAG
+chr15 14203722 14203737 +V_STAT5B_01 8.46536e-06 + TATTTCCCAGAACTG
+chr15 14203722 14203737 -V_STAT5A_01 3.93816e-06 - CAGTTCTGGGAAATA
+chr15 14203780 14203794 -V_NFY_C 5.20945e-07 - TCTGATTGGCTGCC
+chr15 14203780 14203796 +V_NFY_01 2.79702e-07 + GGCAGCCAATCAGAAG
+chr15 14203782 14203793 +V_ALPHACP1_01 5.77866e-07 + CAGCCAATCAG
+chr15 14203801 14203813 -V_LMO2COM_01 2.70597e-06 - GGCCAGGTGGTG
+chr15 14203803 14203813 +V_EBOX_Q6_01 6.43409e-06 + CCACCTGGCC
+chr15 14203824 14203837 +V_AP1_01 3.50586e-07 + CAATGAGTCAGCA
+chr15 14203825 14203836 -V_AP1_Q2 7.83818e-06 - GCTGACTCATT
+chr15 14203825 14203836 -V_AP1_Q6 2.98654e-06 - GCTGACTCATT
+chr15 14203826 14203835 +V_AP1_C 4.03003e-06 + ATGAGTCAG
+chr15 14203826 14203837 -V_NFE2_01 1.48643e-06 - TGCTGACTCAT
+chr15 14203842 14203870 -V_PAX5_01 7.78234e-06 - TCCAGAACCAGTGTTGAGGGGCCTGAAA
+chr15 14203866 14203878 -V_NFKB_C 7.38002e-06 - GGGGACTGTCCA
+chr15 15547968 15547980 -V_OCT1_07 5.15763e-06 - GATATGGTAATT
+chr15 23034525 23034538 +V_STAT_Q6 3.27105e-06 + TACTTTTCTTGGA
+chr15 23034557 23034570 -V_MAZR_01 2.79447e-06 - GGGGAGGGGGACA
+chr15 23034560 23034570 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr15 23034560 23034571 +V_SP1SP3_Q4 2.8432e-06 + CCCCCTCCCCC
+chr15 23034561 23034570 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr15 23034561 23034571 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr15 23034562 23034570 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr15 23034562 23034571 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr15 23034562 23034576 +V_KROX_Q6 4.70749e-06 + CCCTCCCCCAACCC
+chr15 24459997 24460006 -V_SMAD3_Q6 7.33929e-06 - TGTCTGCCT
+chr15 24460063 24460086 -V_COUPTF_Q6 2.45741e-06 - TTCATTGACCCCTGCCCTTTAAT
+chr15 24460067 24460081 -V_COUP_01 2.73931e-06 - TGACCCCTGCCCTT
+chr15 24460068 24460081 +V_DR1_Q3 3.32775e-06 + AGGGCAGGGGTCA
+chr15 24460068 24460081 -V_PPAR_DR1_Q2 4.57755e-06 - TGACCCCTGCCCT
+chr15 24460068 24460081 -V_HNF4_DR1_Q3 7.97346e-06 - TGACCCCTGCCCT
+chr15 24460068 24460081 -V_COUP_DR1_Q6 6.2921e-06 - TGACCCCTGCCCT
+chr15 24460068 24460082 +V_HNF4_Q6_01 7.37368e-06 + AGGGCAGGGGTCAA
+chr15 24460074 24460086 +V_PXR_Q2 1.74311e-06 + GGGGTCAATGAA
+chr15 24460074 24460091 -V_DR4_Q2 8.00764e-06 - TCACCTTCATTGACCCC
+chr15 24460075 24460091 -V_LXR_DR4_Q3 9.80886e-06 - TCACCTTCATTGACCC
+chr15 25261928 25261943 -V_IRF_Q6 5.72126e-06 - CACGTTTTCATTTCC
+chr15 25261973 25261984 +V_EGR_Q6 9.84646e-06 + GTGGGCGCGTG
+chr15 25261974 25261987 +V_ZF5_B 6.09985e-06 + TGGGCGCGTGCAT
+chr15 25261994 25262013 +V_OCT1_01 7.25529e-06 + TTGCATATGGAAATCTGGG
+chr15 25262052 25262071 -V_PPARA_02 4.81437e-06 - CAGGGTCACAGAGGTTAAC
+chr15 25683803 25683812 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr15 25683840 25683850 +V_IK_Q5 4.33614e-06 + TCTGGGAGGG
+chr15 25683926 25683937 -V_E12_Q6 4.37943e-06 - AGCAGGTGGCA
+chr15 25684529 25684543 +V_KROX_Q6 7.21197e-06 + TGCTCCCCCACCCC
+chr15 25684531 25684543 +V_PAX4_03 3.63034e-06 + CTCCCCCACCCC
+chr15 25684533 25684544 +V_SP1SP3_Q4 8.91927e-06 + CCCCCACCCCC
+chr15 25684534 25684544 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr15 25684535 25684544 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr15 25684581 25684596 +V_OCT4_02 6.55103e-06 + ATTCTCATTCTGAAC
+chr15 27863223 27863233 +V_NCX_01 2.56319e-06 + TGGTAAGTGG
+chr15 27863235 27863250 -V_OCT4_01 9.05006e-06 - CATTCTTATTCAAAG
+chr15 27971348 27971361 +V_MAZR_01 5.68389e-06 + GCAGGAGGGGCCA
+chr15 31303507 31303515 +V_CACD_01 9.89755e-06 + CCACACCC
+chr15 31303513 31303522 +V_T3R_Q6 8.74404e-06 + CCTGTCCTC
+chr15 31303555 31303571 -V_MAF_Q6 6.87271e-06 - AGAAGGGAAGTGGGGC
+chr15 31303621 31303633 -V_LMO2COM_01 3.81592e-06 - CTCCAGGTGCTC
+chr15 31498393 31498421 +V_PAX5_01 2.2726e-06 + GACAGGCCCAGGGCAGAGTGCCAGGCTC
+chr15 31498533 31498546 -V_MAZR_01 3.32118e-06 - GGGGGAGGGGCAG
+chr15 31498534 31498547 -V_SP1_Q6 5.21945e-06 - CGGGGGAGGGGCA
+chr15 31498535 31498545 -V_SP1_Q6_01 2.74385e-06 - GGGGAGGGGC
+chr15 31498536 31498545 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr15 31498536 31498546 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr15 31498537 31498545 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr15 31498537 31498546 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr15 31498537 31498550 +V_AP2_Q6_01 4.54811e-06 + CCCTCCCCCGGCT
+chr15 31498545 31498566 +V_STAT3_01 8.5012e-06 + CGGCTTTTCCCGGGAATGCAG
+chr15 31498545 31498566 -V_STAT1_01 9.8683e-06 - CTGCATTCCCGGGAAAAGCCG
+chr15 31498545 31498566 -V_STAT3_01 5.94592e-06 - CTGCATTCCCGGGAAAAGCCG
+chr15 31498547 31498561 -V_STAT3STAT3_Q3 2.92126e-06 - TTCCCGGGAAAAGC
+chr15 33938358 33938367 +V_HNF4_Q6 7.33929e-06 + AAGGTCCAA
+chr15 36929522 36929533 +V_CP2_01 5.25662e-06 + GCACGAGCCAG
+chr15 36929523 36929537 -V_E2A_Q2 1.16727e-06 - CCACCTGGCTCGTG
+chr15 36929524 36929542 +V_MYOD_Q6_01 8.69034e-06 + ACGAGCCAGGTGGTCAGA
+chr15 37068132 37068142 +V_TAL1_Q6 3.01332e-06 + TCCATCTGCC
+chr15 37068146 37068156 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr15 37068147 37068156 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr15 37068206 37068219 -V_GATA1_04 6.24632e-06 - TTCTGATAAGGAC
+chr15 37068228 37068238 +V_LEF1_Q2_01 5.84716e-06 + CATCAAAGGC
+chr15 37068249 37068261 +V_NANOG_01 7.60378e-06 + GAGGCCATTTAC
+chr15 37068259 37068272 -V_MAZR_01 5.4366e-06 - GGGGGGGGGGTGT
+chr15 37068261 37068272 +V_SP1SP3_Q4 3.19906e-06 + ACCCCCCCCCC
+chr15 37068262 37068271 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr15 37068262 37068273 +V_SP1SP3_Q4 3.76147e-06 + CCCCCCCCCCA
+chr15 37068263 37068272 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr15 37068268 37068285 -V_PU1_01 6.15878e-06 - TTAAAAGGGAACTGGGG
+chr15 37104866 37104884 -V_AHR_01 8.63797e-06 - GCCCAGACTGGCCTGAAA
+chr15 37126383 37126393 +V_ESE1_Q3 2.21291e-06 + TGTTTCCTGT
+chr15 37126439 37126452 -V_AP2_Q6_01 1.66582e-06 - CAGCCCTCAGGCC
+chr15 37126487 37126500 +V_AP2_Q6_01 6.77812e-06 + CTGCCCCCAGGCA
+chr15 37126489 37126505 +V_AP2_Q3 2.15942e-06 + GCCCCCAGGCATGGGC
+chr15 372.4.51 37254555 -V_FXR_Q3 8.7899e-06 - TAGCTTCATTGACC
+chr15 37254567 37254576 +V_SMAD_Q6 9.3359e-06 + AGACACCAC
+chr15 37254581 37254596 +V_SREBP_Q6 8.95186e-06 + TCTCTCACCCCACCT
+chr15 37254581 37254596 +V_SREBP1_Q5 3.68302e-06 + TCTCTCACCCCACCT
+chr15 37254652 37254663 -V_EBF_Q6 7.15927e-06 - GTCCCCTGAGG
+chr15 38007445 38007456 +V_TGIF_01 7.64014e-06 + AGCTGTCAAAT
+chr15 38083862 38083873 -V_CP2_01 8.6781e-06 - GCCCTCCCCAG
+chr15 38083864 38083872 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr15 38083864 38083873 -V_CKROX_Q2 3.66459e-06 - GCCCTCCCC
+chr15 38212102 38212123 +V_PPARG_01 2.83176e-06 + GCTGGGGGCCAAGGTCAAGTT
+chr15 38212106 38212119 +V_DR1_Q3 3.04643e-06 + GGGGCCAAGGTCA
+chr15 38212106 38212119 -V_PPAR_DR1_Q2 2.31043e-06 - TGACCTTGGCCCC
+chr15 38212106 38212119 -V_HNF4_DR1_Q3 9.09944e-06 - TGACCTTGGCCCC
+chr15 38212106 38212119 -V_COUP_DR1_Q6 4.61789e-06 - TGACCTTGGCCCC
+chr15 38212109 38212127 +V_GCNF_01 3.68477e-06 + GCCAAGGTCAAGTTTCCA
+chr15 38212110 38212119 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr15 38212110 38212120 -V_NUR77_Q5 8.43564e-06 - TTGACCTTGG
+chr15 38212118 38212128 -V_NFAT_Q4_01 4.46892e-06 - GTGGAAACTT
+chr15 38212140 38212151 -V_ALPHACP1_01 4.48665e-06 - CAGCCACTGAG
+chr15 38212175 38212187 -V_GLI_Q2 3.60332e-07 - CCTGGGTGGTCG
+chr15 38212176 38212185 -V_ZIC1_01 2.71739e-06 - TGGGTGGTC
+chr15 38212176 38212185 -V_ZIC2_01 4.94877e-06 - TGGGTGGTC
+chr15 38212176 38212185 -V_ZIC3_01 2.71739e-06 - TGGGTGGTC
+chr15 38212184 38212193 -V_SMAD_Q6 9.3359e-06 - AGACACCCT
+chr15 38212190 38212204 +V_MTF1_Q4 1.16369e-06 + TCTGCACACTGGCC
+chr15 39305027 39305043 -V_NFY_01 2.68498e-06 - CCCAGCCAATGGGGAA
+chr15 39305030 39305041 -V_ALPHACP1_01 4.48665e-06 - CAGCCAATGGG
+chr15 39305031 39305044 -V_NFY_Q6_01 9.89171e-06 - ACCCAGCCAATGG
+chr15 39305059 39305072 +V_NKX61_01 1.97068e-06 + TATTTAATTGGCT
+chr15 39305095 39305123 +V_PAX5_02 5.89942e-06 + GGAAAGGAGCCTGAAAGGGGACCATTAC
+chr15 39305156 39305171 +V_STAT5B_01 9.87221e-06 + GAATTCCTGGAATGA
+chr15 41703433 41703448 -V_SMAD4_Q6 8.67808e-07 - CTCAGGCAGCCAACT
+chr15 41714212 41714223 +V_ER_Q6_02 4.31756e-06 + CAGGTCACCCC
+chr15 41714212 41714224 +V_SREBP_Q3 3.44063e-06 + CAGGTCACCCCA
+chr15 41714212 41714227 +V_SREBP_Q6 2.43347e-07 + CAGGTCACCCCAGGC
+chr15 41714212 41714227 +V_SREBP1_Q5 1.00253e-06 + CAGGTCACCCCAGGC
+chr15 41714262 41714277 -V_OCT4_01 6.02107e-06 - CATTGAAATGGTAAT
+chr15 41714322 41714335 +V_NRF2_Q4 1.79202e-06 + ATGCAGAGTCATC
+chr15 41714323 41714334 +V_MAF_Q6_01 4.72643e-06 + TGCAGAGTCAT
+chr15 43510550 43510565 -V_STAT5B_01 4.0278e-06 - TTTTTCCTGGAACTG
+chr15 43510564 43510580 -V_AP2_Q3 7.62107e-06 - GCCCCAGGGCTGTGTT
+chr15 43510573 43510588 +V_SMAD4_Q6 2.88375e-06 + CTGGGGCAGCCAGTC
+chr15 43510587 43510598 +V_FLI1_Q6 7.204e-06 + CAGGAAGTGCT
+chr15 43510637 43510653 +V_NFKB_Q6_01 2.59288e-06 + ATTCTGGAAAGTCCCC
+chr15 43510640 43510654 -V_NFKB_Q6 3.01925e-07 - TGGGGACTTTCCAG
+chr15 43510641 43510653 -V_NFKB_C 4.61793e-08 - GGGGACTTTCCA
+chr15 43510642 43510652 -V_NFKAPPAB65_01 4.05532e-06 - GGGACTTTCC
+chr15 43510642 43510652 -V_CREL_01 6.18085e-06 - GGGACTTTCC
+chr15 43510642 43510652 -V_NFKAPPAB_01 3.01332e-06 - GGGACTTTCC
+chr15 43798304 43798315 -V_E12_Q6 6.79903e-06 - AGCAGGTGCAG
+chr15 43798347 43798363 +V_MAF_Q6 9.69229e-06 + TGGAAGGGAGTGTTCA
+chr15 43816729 43816740 -V_EBF_Q6 2.83527e-06 - GTCCCTAGAGA
+chr15 43816734 43816746 +V_NFKB_C 4.56464e-06 + AGGGACATTCCA
+chr15 43816827 43816837 -V_EBOX_Q6_01 6.43409e-06 - CCACCTGGCC
+chr15 55098268 55098285 +V_FOXP3_Q4 6.97443e-06 + AAGGTGTGGTTTCTGAC
+chr15 55098287 55098298 -V_EGR_Q6 1.38101e-06 - GTGGGGGCAGG
+chr15 55098287 55098301 +V_KROX_Q6 2.09798e-07 + CCTGCCCCCACCCC
+chr15 55098292 55098302 +V_SP1_Q2_01 8.14617e-06 + CCCCACCCCG
+chr15 55098323 55098338 -V_OCT4_01 2.45515e-06 - CTTTGATATGTAAAA
+chr15 57608372 57608387 +V_EVI1_04 1.16107e-06 + AGATAAGAATAGAAA
+chr15 57608372 57608388 +V_EVI1_01 5.83214e-06 + AGATAAGAATAGAAAA
+chr15 57608487 57608502 +V_DMRT1_01 7.56504e-06 + TTGTTACTTTGTTAC
+chr15 57608492 57608505 -V_DMRT4_01 7.19979e-06 - AAAGTAACAAAGT
+chr15 57608495 57608510 +V_DMRT1_01 7.56504e-06 + TTGTTACTTTGTTAC
+chr15 57822415 57822430 -V_DMRT1_01 6.25574e-06 - CTGTGACAATGTTTT
+chr15 57822437 57822448 -V_E12_Q6 6.12239e-06 - AGCAGGTGTCA
+chr15 57822448 57822459 +V_PITX2_Q2 5.53227e-07 + TGTAATCCCAG
+chr15 57822532 57822547 -V_DMRT1_01 1.3484e-06 - TGGCTACTTTGTTTC
+chr15 58218538 58218547 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr15 58218538 58218548 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr15 58218538 58218549 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr15 58218539 58218551 -V_PAX4_03 2.40392e-07 - CACCCCCACCCC
+chr15 58218539 58218553 -V_KROX_Q6 2.21131e-07 - CCCACCCCCACCCC
+chr15 58218539 58218569 -V_PAX4_04 1.99068e-06 - GGAATTCCACCCCACCCCCACCCCCACCCC
+chr15 58218542 58218553 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr15 58218544 58218553 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr15 58218544 58218554 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr15 58218544 58218555 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr15 58218545 58218557 -V_PAX4_03 2.40392e-07 - CACCCCCACCCC
+chr15 58218545 58218559 -V_KROX_Q6 2.21131e-07 - CCCACCCCCACCCC
+chr15 58218548 58218559 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr15 58218549 58218562 +V_SP1_Q6 7.54104e-06 + TGGGGGTGGGGTG
+chr15 58940719 58940731 +V_GATA4_Q3 4.32928e-06 + AGATAAAAGGAA
+chr15 58940786 58940799 -V_MAZR_01 6.86006e-06 - AGAGGTGGGGCCA
+chr15 58940852 58940865 +V_STAT_Q6 8.60737e-06 + GGCTTTTCTGGTA
+chr15 59029469 59029491 -V_MEF2_02 2.51772e-06 - CAGCAGGTTATAAATAGCCCAG
+chr15 59029472 5902.4.5 +V_MEF2_Q6_01 4.36173e-06 + GGCTATTTATAA
+chr15 59029511 59029523 -V_LMO2COM_01 6.44862e-06 - GGCCAGCTGCAG
+chr15 59126336 59126350 -V_BLIMP1_Q6 4.33883e-06 - AGACAGTGAAACTA
+chr15 61842370 61842389 -V_NRSF_Q4 6.41631e-06 - GTACTGTTCCCTGAGCTGT
+chr15 64127017 64127033 -V_AP2_Q3 6.40204e-06 - GCCCCCAGCCAGAGTC
+chr15 65049668 65049682 -V_FOXO4_02 8.50873e-06 - ATGTTGTTAACCAG
+chr15 65049688 65049703 -V_OCT4_01 5.63049e-06 - CATTCTTATTCAAAC
+chr15 65090545 65090560 +V_OCT4_01 9.436e-07 + TATTCAAATGCAGAT
+chr15 65090564 65090574 -V_NKX22_01 4.33582e-06 - TTAAGTAGTT
+chr15 65090602 65090622 +V_FOXP1_01 8.15563e-06 + ATGCTTGTATTGTGTTGTTT
+chr15 68327295 68327304 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr15 68327298 68327313 +V_VDRRXR_01 5.81662e-07 + AGGTCACAGAGTTCC
+chr15 68327306 68327320 -V_PAX6_Q2 2.11035e-06 - CTGTTCTGGAACTC
+chr15 68327367 68327378 +V_LEF1TCF1_Q4 1.10645e-06 + CCTTTGATCTT
+chr15 72810718 72810730 -V_LRH1_Q5 9.2187e-06 - GTGGCCTTGGAT
+chr15 72810724 72810735 -V_E12_Q6 4.37943e-06 - GACAGGTGGCC
+chr15 72810725 72810735 +V_MYOD_Q6 5.43478e-06 + GCCACCTGTC
+chr15 72810726 72810736 +V_EBOX_Q6_01 4.06927e-06 + CCACCTGTCC
+chr15 72810776 72810788 -V_PBX_Q3 7.94531e-06 - GATTGATGATTG
+chr15 73277441 73277452 +V_FLI1_Q6 9.02891e-06 + CAGGAAGTCCT
+chr15 73277480 73277497 -V_PPARG_03 4.00213e-06 - TTCCAGGACAAAGGCGA
+chr15 73277523 73277535 -V_TTF1_Q6 2.60851e-06 - CCCACAAGAGGC
+chr15 73277554 73277571 -V_NF1_Q6_01 1.05664e-06 - AAGGCCAGCTGCCAAGA
+chr15 73277554 73277572 +V_NF1_Q6 1.8283e-06 + TCTTGGCAGCTGGCCTTG
+chr15 73277558 73277568 -V_TAL1_Q6 4.87508e-06 - GCCAGCTGCC
+chr15 73277563 73277575 +V_LRH1_Q5 6.90581e-08 + CTGGCCTTGGAC
+chr15 73277563 73277577 +V_PAX6_Q2 9.3218e-06 + CTGGCCTTGGACTC
+chr15 73284234 73284251 -V_NF1_Q6_01 3.71867e-06 - TTGGAAAGTAGCCAAGT
+chr15 73284234 73284263 -V_MYOGNF1_01 1.95591e-06 - CTCCATTGTGATTTGGAAAGTAGCCAAGT
+chr15 73300996 73301010 -V_FXR_Q3 6.50443e-06 - CAAGGTCAGAGACC
+chr15 73301001 73301011 +V_NUR77_Q5 2.98426e-06 + CTGACCTTGG
+chr15 73301002 73301011 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGG
+chr15 73301021 73301036 +V_CP2_02 6.19623e-06 + GCTGGATTGGGGTGG
+chr15 73301029 73301039 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr15 73301029 73301041 -V_PAX4_03 5.03061e-07 - AAGCCCCACCCC
+chr15 73301029 73301059 -V_PAX4_04 6.29241e-06 - GCAAACAACCTGCAAGAGAAGCCCCACCCC
+chr15 73497705 73497715 +V_GATA6_01 9.61771e-06 + ACAGATAAGC
+chr15 74921244 74921256 -V_LRH1_Q5 3.22157e-06 - CTGGCCTTGGAA
+chr15 74921300 74921321 +V_STAT1_01 4.88874e-06 + GATGTTTTCCAGGAAATGGAG
+chr15 74921300 74921321 -V_STAT3_01 7.72189e-06 - CTCCATTTCCTGGAAAACATC
+chr15 74921303 74921318 +V_STAT5A_01 5.6082e-06 + GTTTTCCAGGAAATG
+chr15 74921303 74921318 +V_STAT5B_01 2.49995e-06 + GTTTTCCAGGAAATG
+chr15 74921303 74921318 -V_STAT5B_01 1.22249e-06 - CATTTCCTGGAAAAC
+chr15 74921304 74921317 +V_STAT1STAT1_Q3 4.98896e-06 + TTTTCCAGGAAAT
+chr15 74921304 74921317 -V_STAT1STAT1_Q3 5.77205e-06 - ATTTCCTGGAAAA
+chr15 74948239 74948254 +V_DMRT1_01 2.47268e-06 + CTGCAACATTGTAAC
+chr15 74948241 74948256 -V_DMRT1_01 9.89958e-07 - AGGTTACAATGTTGC
+chr15 74948242 74948256 -V_DMRT7_01 3.27916e-06 - AGGTTACAATGTTG
+chr15 74948306 74948318 -V_LRH1_Q5 8.11156e-06 - CTCACCTTGCAC
+chr15 76017481 76017504 +V_COUPTF_Q6 4.66212e-06 + TGCGATGACCTTGCCCCTGCTCC
+chr15 76017484 76017502 -V_GCNF_01 7.93426e-06 - AGCAGGGGCAAGGTCATC
+chr15 76017501 76017510 +V_CKROX_Q2 8.90515e-06 + TCCCTCCCC
+chr15 76017502 76017510 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr15 76017604 76017616 +V_PAX4_03 6.56043e-06 + ATCCTCCACCCC
+chr15 76017613 76017622 -V_CACBINDINGPROTEIN_Q6 2.23138e-06 - GAGGGTGGG
+chr15 77169175 77169190 -V_OCT4_02 9.10747e-06 - TTTGTTTTGCAAAGG
+chr15 77169176 77169191 -V_OCT4_01 7.94702e-06 - TTTTGTTTTGCAAAG
+chr15 77169228 77169243 +V_CP2_02 3.84258e-06 + GCTGGTTAGTCCTGG
+chr15 77575146 77575164 +V_LXR_Q3 4.04918e-06 + TGGGGGCAGGGAGGGTCA
+chr15 77575147 77575164 -V_DR4_Q2 3.91875e-06 - TGACCCTCCCTGCCCCC
+chr15 77575340 77575354 +V_ERR1_Q2 3.31639e-06 + CTCTCAAGGTCATT
+chr15 77575343 77575352 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr15 78247631 78247643 +V_NANOG_01 3.23902e-06 + TGGACCATTGCC
+chr15 78247699 78247708 -V_AP2ALPHA_01 9.68294e-06 - GCCCGAGGC
+chr15 78302531 78302545 +V_MTF1_Q4 8.85941e-06 + TTTCCACCCGGGCC
+chr15 78666615 78666626 -V_NFE2_01 3.70226e-06 - TGCTGAGGCAC
+chr15 78666624 78666637 -V_SP1_Q6 3.06772e-06 - GGGGGGTGGGGTG
+chr15 78666626 78666636 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr15 78666627 78666636 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr15 78666695 78666710 -V_ETS1_B 8.95766e-06 - ACAGGAAGGATGTGG
+chr15 78666710 78666723 -V_MAZR_01 9.79421e-06 - GGGGGTGGGGAGC
+chr15 78666713 78666723 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr15 78666714 78666723 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr15 78666714 78666725 -V_EGR_Q6 8.04446e-06 - GTGGGGGTGGG
+chr15 78666714 78666728 +V_KROX_Q6 9.17068e-06 + CCCACCCCCACACA
+chr15 80560113 80560128 +V_OCT4_01 7.49108e-07 + CTTTCTCATGCAAAG
+chr15 80560114 80560129 +V_OCT4_02 9.71581e-06 + TTTCTCATGCAAAGT
+chr15 80560178 80560194 +V_MEF2_01 9.18265e-07 + GTTTAAAAATAAATCT
+chr15 81714269 81714285 +V_NFKB_Q6_01 4.27245e-06 + AGCTGGGGAAGCCCCA
+chr15 81714274 81714282 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr15 81714274 81714284 -V_NFKAPPAB_01 4.87508e-06 - GGGGCTTCCC
+chr15 81714277 81714289 +V_PAX4_03 5.05761e-06 + AAGCCCCACCCT
+chr15 82209164 82209182 -V_PIT1_Q6 2.94097e-06 - AATTCTTAATGGAACACA
+chr15 82209303 82209317 -V_KROX_Q6 2.32952e-06 - CCCACCCACCCCCC
+chr15 82209304 82209313 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr15 82872759 82872768 -V_CACBINDINGPROTEIN_Q6 6.29506e-06 - GAGGCTGGG
+chr15 82872820 82872832 -V_LRH1_Q5 3.77826e-06 - AGGACCTTGAAC
+chr15 83104608 83104622 -V_E2A_Q2 2.96662e-06 - CCACCTGCTCCATA
+chr15 83104613 83104624 +V_E12_Q6 4.37943e-06 + AGCAGGTGGCA
+chr15 842.4.54 84294553 -V_CACBINDINGPROTEIN_Q6 8.12736e-06 - GGGGCTGGG
+chr15 84294588 84294598 -V_LEF1_Q2_01 1.81713e-06 - GATCAAAGGG
+chr15 84452600 84452610 +V_MYOD_Q6 2.71739e-06 + ACCACCTGCC
+chr15 84452602 84452610 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr15 84452614 84452629 -V_OCT1_02 9.34969e-06 - ATGCATATTCATTCT
+chr15 84452614 84452637 -V_OCT1_04 3.44679e-06 - TAGCATATATGCATATTCATTCT
+chr15 84452615 84452638 +V_OCT1_04 9.07554e-06 + GAATGAATATGCATATATGCTAA
+chr15 84452617 84452632 +V_OCT1_02 2.62474e-08 + ATGAATATGCATATA
+chr15 84452627 84452642 +V_OCT1_Q6 5.39975e-06 + ATATATGCTAATCAG
+chr15 84452629 84452639 +V_POU3F2_02 7.27852e-06 + ATATGCTAAT
+chr15 84452629 84452642 -V_OCT_C 2.19692e-06 - CTGATTAGCATAT
+chr15 84452652 84452662 -V_OCT1_B 5.44227e-06 - CATGCAAATC
+chr15 84452652 84452667 -V_OCT4_02 8.50412e-09 - ATTGTCATGCAAATC
+chr15 84452653 84452668 -V_OCT4_01 1.09956e-06 - GATTGTCATGCAAAT
+chr15 86004360 86004373 -V_SP1_Q6 9.41334e-06 - TGGGGGCGTGGTC
+chr15 86004362 86004372 +V_SP1_Q2_01 8.14617e-06 + CCACGCCCCC
+chr15 86004363 86004374 -V_EGR_Q6 4.80646e-06 - GTGGGGGCGTG
+chr15 88723492 88723516 +V_COMP1_01 5.24802e-06 + TCTGTGGATTTGCAAGACAAAGTC
+chr15 88723498 88723513 -V_OCT4_02 2.36019e-07 - TTTGTCTTGCAAATC
+chr15 88723499 88723514 -V_OCT4_01 8.76645e-07 - CTTTGTCTTGCAAAT
+chr15 90233174 90233186 -V_LMO2COM_01 2.70597e-06 - GGCCAGGTGGTG
+chr15 90233176 90233186 +V_EBOX_Q6_01 6.43409e-06 + CCACCTGGCC
+chr15 90233220 90233228 +V_STAT3_02 9.89755e-06 + GGCTTCCC
+chr15 90233246 90233258 +V_PAX4_03 9.67001e-06 + CCCCCCCACCCC
+chr15 90233247 90233262 +V_SREBP_Q6 4.65723e-07 + CCCCCCACCCCACCC
+chr15 90233247 90233262 +V_SREBP1_Q5 3.85951e-07 + CCCCCCACCCCACCC
+chr15 90233252 90233265 -V_SP1_Q6 3.06772e-06 - GGGGGGTGGGGTG
+chr15 90233254 90233264 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr15 90233255 90233264 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr15 90955123 90955135 -V_MEIS1_01 4.98874e-06 - ATGTGACAGGGC
+chr15 91094531 91094540 -V_CACBINDINGPROTEIN_Q6 2.23138e-06 - GAGGGTGGG
+chr15 91094546 91094559 -V_GFI1_Q6 5.94515e-06 - CAAAATCACAGGA
+chr15 91533860 91533871 -V_EBF_Q6 7.68235e-06 - CTCCCCTGGGG
+chr15 91534000 91534013 +V_FXR_IR1_Q6 4.17739e-06 + GGGACAATGACCT
+chr15 91534001 91534015 -V_FXR_Q3 2.84079e-06 - CAAGGTCATTGTCC
+chr15 93574705 93574719 -V_MTF1_Q4 8.85941e-06 - TCTGCTCTCGGGCC
+chr15 93574740 93574752 -V_VDR_Q6 5.27356e-06 - CCCTGTGACCCC
+chr15 93574788 93574799 +V_AP1FJ_Q2 1.36855e-06 + GGTGACTCAGC
+chr15 93574788 93574799 +V_AP1_Q6 5.77866e-07 + GGTGACTCAGC
+chr15 93574788 93574799 +V_AP1_Q4 2.788e-06 + GGTGACTCAGC
+chr15 93574789 93574800 -V_NFE2_01 8.27314e-07 - CGCTGAGTCAC
+chr15 93574837 93574849 +V_NANOG_01 5.39011e-07 + GAGCCCATTTCC
+chr15 94472623 94472638 +V_DMRT1_01 6.25574e-06 + GAGATACAATGTTGC
+chr15 94472625 94472640 -V_DMRT1_01 3.53013e-07 - CTGCAACATTGTATC
+chr15 94472630 94472643 +V_DMRT4_01 2.69658e-06 + AATGTTGCAGTTT
+chr15 96010197 96010208 +V_NFY_Q6 7.17826e-06 + GAGCCAATCAC
+chr15 96010210 96010224 -V_KROX_Q6 8.32366e-06 - CCCGCCTACTCGCC
+chr15 96010221 96010232 -V_FLI1_Q6 2.1414e-06 - CCGGAAGTCCC
+chr15 96434802 96434811 -V_CACBINDINGPROTEIN_Q6 8.12736e-06 - GGGGCTGGG
+chr15 96434805 96434817 +V_AP2_Q6 4.04184e-06 + AGCCCCACGGCG
+chr15 96434929 96434947 -V_CMYB_01 3.62e-06 - CCAGCCAGCAGTTGGCAG
+chr15 96552828 96552843 +V_OCT4_01 7.41924e-06 + TATTCTGATGTTAAT
+chr15 96552829 96552844 +V_OCT4_02 8.01355e-06 + ATTCTGATGTTAATT
+chr15 96552855 96552868 +V_P50P50_Q3 9.35611e-06 + AGGGGGCTGCCCC
+chr15 96688333 96688350 +V_PPARG_03 8.5697e-06 + AACCAGGTCAAGGGTAA
+chr15 96688351 96688360 -V_SMAD3_Q6 7.33929e-06 - TGTCTGCCT
+chr15 96688357 96688368 +V_HELIOSA_02 4.1829e-06 + ACAAGGAAAAA
+chr15 96688363 96688372 +V_FOXO1_Q5 7.27852e-06 + AAAAACAAA
+chr15 96688363 96688376 +V_HNF3_Q6 4.17324e-06 + AAAAACAAACATT
+chr15 96688364 96688377 -V_HFH4_01 2.9856e-06 - AAATGTTTGTTTT
+chr15 96688365 96688377 -V_FOXD3_01 8.64709e-07 - AAATGTTTGTTT
+chr15 96688379 96688394 +V_DMRT1_01 1.02233e-06 + AGGCAACAATGTTGC
+chr15 96688381 96688396 -V_DMRT1_01 5.91304e-08 - CTGCAACATTGTTGC
+chr15 96688406 96688416 +V_IK_Q5 4.33614e-06 + GGTGGGAGGG
+chr15 96688407 96688417 -V_SP1_Q2_01 9.56538e-06 - CCCCTCCCAC
+chr15 96772103 96772117 +V_DMRT7_01 4.38955e-06 + TAGATACATTGTTG
+chr15 96772103 96772118 +V_DMRT1_01 5.37485e-07 + TAGATACATTGTTGT
+chr15 96772138 96772149 -V_SP1SP3_Q4 3.76147e-06 - CCCCCCCCCCA
+chr15 96772139 96772148 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr15 96772139 96772150 -V_SP1SP3_Q4 3.39206e-07 - CCCCCCCCCCC
+chr15 96772139 96772154 +V_VDR_Q3 5.37362e-06 + GGGGGGGGGGGGTCT
+chr15 96772140 96772149 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr15 96772140 96772151 -V_SP1SP3_Q4 3.39206e-07 - CCCCCCCCCCC
+chr15 96772141 96772150 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr15 96772141 96772152 -V_SP1SP3_Q4 3.19906e-06 - ACCCCCCCCCC
+chr15 96772141 96772154 +V_MAZR_01 8.77447e-07 + GGGGGGGGGGTCT
+chr15 96772142 96772151 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr15 97425869 97425888 -V_ER_Q6 4.35111e-06 - CCAGGTAGGCCTGACCCAC
+chr15 97425888 97425897 +V_RFX_Q6 3.30926e-06 + CTGTTGCCA
+chr15 97425888 97425905 +V_RFX1_01 1.4001e-06 + CTGTTGCCAGGTAACAG
+chr15 97425888 97425905 -V_RFX1_01 4.68172e-07 - CTGTTACCTGGCAACAG
+chr15 97425906 97425918 -V_PAX4_03 1.74945e-06 - AAACCCCACCCC
+chr15 97425980 97425992 +V_LMO2COM_01 9.25383e-06 + GGGCAGCTGCTG
+chr15 97426012 97426023 +V_PAX_Q6 6.2248e-07 + CTGGGACTCAC
+chr15 97595616 97595626 +V_NKX25_Q5 3.30926e-06 + TGCCACTTGC
+chr15 97660077 97660091 +V_KROX_Q6 9.17068e-06 + CCCACCCACCCACC
+chr15 97907524 97907539 +V_OCT4_02 5.30392e-06 + ATTGTAATTCAAATG
+chr15 98778394 98778407 +V_DMRT4_01 3.66086e-07 + AATGTAACAATGT
+chr15 98778395 98778410 +V_DMRT1_01 8.79038e-06 + ATGTAACAATGTTAC
+chr15 98778397 98778412 -V_DMRT1_01 2.36549e-06 - CTGTAACATTGTTAC
+chr15 98778438 98778448 +V_NUR77_Q5 2.98426e-06 + CTGACCTTGG
+chr15 98778439 98778448 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGG
+chr15 98778445 98778458 +V_SP1_Q6 3.85413e-06 + TGGGGGAGGGGGG
+chr15 98778446 98778455 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr15 98778446 98778456 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr15 98778446 98778457 -V_SP1SP3_Q4 2.8432e-06 - CCCCCTCCCCC
+chr15 98778447 98778455 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr15 98778447 98778456 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr15 98778447 98778457 +V_SP1_Q6_01 8.48538e-06 + GGGGAGGGGG
+chr15 98778449 98778460 -V_SP1SP3_Q4 2.8432e-06 - ACCCCCCCTCC
+chr15 98778449 98778463 -V_KROX_Q6 3.42108e-06 - CCCACCCCCCCTCC
+chr15 98778454 98778463 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr15 100480123 100480132 +V_SMAD3_Q6 4.03003e-06 + TGTCTGTCT
+chr15 100605771 100605784 +V_SP1_Q6 7.04257e-06 + GGCGGGAGGGGCT
+chr15 100605772 100605781 -V_WT1_Q6 6.67377e-06 - CCCTCCCGC
+chr15 100605772 100605785 +V_MAZR_01 8.35903e-06 + GCGGGAGGGGCTG
+chr15 100605780 100605795 -V_SMAD4_Q6 7.63557e-06 - GGAATCCAGCCAGCC
+chr15 100605793 100605806 +V_GFI1_Q6 4.04359e-06 + CCTAATCACGGCT
+chr15 100605797 100605827 +V_HOX13_01 3.49796e-07 + ATCACGGCTCCTCATTAGTGGTGGCATTCC
+chr15 100605904 100605916 -V_GABP_B 9.67301e-06 - AGGGGAAGCGCA
+chr15 100896914 100896922 +V_STAT3_02 9.89755e-06 + GGCTTCCC
+chr15 100896918 100896927 +V_CKROX_Q2 8.90515e-06 + TCCCTCCCC
+chr15 100896919 100896927 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr15 100896919 100896928 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr15 100896924 100896934 -V_GATA1_01 9.78116e-06 - GCTGATGGGG
+chr15 100896940 100896953 -V_MAZR_01 3.32118e-06 - GGGGGAGGGGCGC
+chr15 100896941 100896954 -V_SP1_Q6 1.00798e-06 - TGGGGGAGGGGCG
+chr15 100896942 100896952 -V_SP1_Q6_01 2.74385e-06 - GGGGAGGGGC
+chr15 100896943 100896952 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr15 100896943 100896953 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr15 100896944 100896952 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr15 100896944 100896953 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr15 100896944 100896958 +V_KROX_Q6 5.42711e-07 + CCCTCCCCCACCCC
+chr15 100896946 100896958 +V_PAX4_03 3.63034e-06 + CTCCCCCACCCC
+chr15 100896949 100896959 +V_SP1_Q2_01 8.14617e-06 + CCCCACCCCG
+chr15 100896952 100896965 -V_SP1_Q6 3.85413e-06 - GATGGGCGGGGTG
+chr15 100896953 100896963 -V_SP1_Q6_01 6.74305e-06 - TGGGCGGGGT
+chr15 100896954 100896964 +V_SP1_Q2_01 6.90691e-06 + CCCCGCCCAT
+chr15 100909208 100909222 +V_KROX_Q6 9.17068e-06 + CCCGCTCCCGCCTC
+chr15 100909268 100909278 -V_SP1_Q2_01 6.40385e-06 - CCCCGCCTCC
+chr15 102716376 102716386 +V_MYOD_Q6 2.71739e-06 + ACCACCTGCC
+chr15 102716378 102716386 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr15 102716387 102716415 -V_PAX5_01 6.31462e-06 - GCTCAGCTCACTGTGGGGTGCCATCTCT
+chr15 102905930 102905946 -V_HAND1E47_01 4.70527e-06 - TTTGGGGCCTGGCTTT
+chr16 6206689 6206698 -V_CACBINDINGPROTEIN_Q6 2.23138e-06 - GAGGGTGGG
+chr16 7094614 7094629 -V_VDR_Q3 9.00638e-06 - GGTGGAAGGAGGTGT
+chr16 7094623 7094633 +V_TAL1_Q6 7.11328e-06 + TCCACCTGCT
+chr16 7094701 7094715 -V_NFKB_Q6 6.39997e-06 - AAGGGACTCTCCGT
+chr16 7094702 7094714 -V_NFKB_C 3.35384e-06 - AGGGACTCTCCG
+chr16 7094702 7094715 -V_P50P50_Q3 4.2671e-06 - AAGGGACTCTCCG
+chr16 7094717 7094727 +V_IK_Q5 6.81053e-06 + TGTGGGAGGG
+chr16 7094718 7094728 -V_SP1_Q2_01 9.56538e-06 - CCCCTCCCAC
+chr16 7405007 7405020 +V_SOX_Q6 6.1384e-06 + CTCTTTGTTCCCT
+chr16 7405021 7405040 +V_PPARA_02 7.462e-06 + TGAGGACATTGGGGTGTCT
+chr16 7405031 7405040 -V_SMAD_Q6 2.71739e-06 - AGACACCCC
+chr16 7405124 7405134 +V_HMX1_01 8.79387e-06 + CAAGGGCGTG
+chr16 8724262 8724277 +V_OCT4_01 7.94702e-06 + CTTTATCATGTAAAA
+chr16 8976337 8976347 -V_SP1_Q2_01 9.56538e-06 - CCCCACCCCT
+chr16 8976343 8976358 -V_TAXCREB_02 4.53797e-06 - GTGCTGCATCCCCCC
+chr16 9839395 9839404 +V_ZIC2_01 9.89755e-06 + GGGGTGGTG
+chr16 9839409 9839425 -V_MAF_Q6 3.94859e-06 - AAGAGGCAAGTTTGCT
+chr16 9839517 9839527 -V_SP1_Q6_01 8.48538e-06 - GGGGCGTGGC
+chr16 9839520 9839535 -V_VDR_Q3 9.46585e-06 - GGGGCAGAGGGGCGT
+chr16 10467933 10467942 +V_T3R_Q6 8.74404e-06 + CCTGTCCTC
+chr16 10467941 10467955 +V_KROX_Q6 7.21197e-06 + CCAGCCCACTCTCC
+chr16 10467964 10467977 -V_MAZR_01 3.51639e-06 - TGGGGTGGGGCAA
+chr16 10467965 10467980 +V_SREBP1_Q5 5.62649e-06 + TGCCCCACCCCACCC
+chr16 10467966 10467976 -V_SP1_Q6_01 4.32232e-06 - GGGGTGGGGC
+chr16 10467970 10467983 -V_SP1_Q6 5.65055e-06 - CGGGGGTGGGGTG
+chr16 10467972 10467982 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr16 10467973 10467982 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr16 10467993 10468007 +V_PAX6_Q2 7.66755e-07 + CTGACCTGGAAGAC
+chr16 10468029 10468042 -V_STAT1STAT1_Q3 4.33158e-06 - ATTTCAAGGAAAC
+chr16 10628467 10628485 -V_CDX_Q5 5.11657e-06 - AAATGCCAAAGCTATAAA
+chr16 12632822 12632830 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr16 12713075 12713084 -V_SMAD3_Q6 4.03003e-06 - TGTCTGTCT
+chr16 12713092 12713104 -V_NFAT_Q6 8.14105e-06 - CAGAGGAAACAT
+chr16 12713168 12713179 +V_IRF_Q6_01 6.04983e-06 + AGAAGTGAAAC
+chr16 12713168 12713183 -V_IRF_Q6 1.68499e-07 - GCCAGTTTCACTTCT
+chr16 12713169 12713181 +V_ICSBP_Q6 1.5189e-07 + GAAGTGAAACTG
+chr16 12713604 12713621 +V_PU1_01 3.87664e-07 + CAAAAGGGGAAGTGCCT
+chr16 12713605 12713624 -V_PU1_Q4 3.95346e-06 - GAAAGGCACTTCCCCTTTT
+chr16 12714022 12714031 -V_YY1_Q6 6.61851e-06 - GCCATGTTG
+chr16 13056018 13056033 -V_ETS1_B 3.18763e-06 - GCAGGAAGCCCTTGC
+chr16 13056020 13056034 -V_ETS2_B 7.56374e-07 - GGCAGGAAGCCCTT
+chr16 13056073 13056086 +V_AP2_Q6_01 6.01724e-06 + CTTCCCCCAGGCC
+chr16 14577630 14577641 -V_ELF5_01 1.41361e-06 - ACAAGGAAGTA
+chr16 18769723 18769736 -V_HSF_Q6 9.65621e-07 - TTCTAGCAGTTTC
+chr16 18769735 18769747 +V_GATA4_Q3 3.19388e-06 + AGAAAACAGGCA
+chr16 18769761 18769775 -V_ETS2_B 6.1603e-06 - TCCAGGAAGTCTTT
+chr16 18769784 18769799 -V_OCT4_01 8.48593e-06 - AATTCTTGTGCAAAT
+chr16 18769870 18769882 +V_ELF1_Q6 6.25224e-06 + AGAAGAGGAAGC
+chr16 18774134 18774144 -V_NUR77_Q5 8.43564e-06 - TTGACCTTCC
+chr16 20926037 20926053 -V_EVI1_01 9.11873e-06 - TGACAAGACAATAGAC
+chr16 20926042 20926053 -V_EVI1_02 4.94338e-06 - TGACAAGACAA
+chr16 20926072 20926087 -V_ETS1_B 3.99432e-07 - GCAGGAAGTGGCTTC
+chr16 20926074 20926086 +V_ETS_Q4 1.02417e-07 + AGCCACTTCCTG
+chr16 20926074 20926088 -V_ETS2_B 4.50829e-06 - AGCAGGAAGTGGCT
+chr16 21566330 21566341 +V_EGR_Q6 6.55683e-06 + GTGGGGGCTGG
+chr16 21566339 21566350 +V_AP1FJ_Q2 8.98155e-06 + GGTGACTCCTT
+chr16 21566387 21566400 +V_SOX_Q6 7.76302e-06 + CTCTTTGTTTCAC
+chr16 22140120 22140131 +V_SP1SP3_Q4 5.56573e-06 + CCCCCGCCGCC
+chr16 22140123 22140134 +V_SP1SP3_Q4 4.0242e-06 + CCGCCGCCGCC
+chr16 22400467 22400480 +V_DEC_Q1 4.91686e-06 + CCTCAAGTGAATG
+chr16 22637517 22637530 +V_P50P50_Q3 8.8244e-06 + GAGGGACTTCCTT
+chr16 22637561 22637576 +V_SPZ1_01 2.99035e-06 + TGTGGAGGGTTGGGC
+chr16 22637586 22637601 +V_OCT4_01 1.47922e-07 + CATTGTAATGCTAAT
+chr16 22637587 22637602 +V_OCT4_02 3.02765e-06 + ATTGTAATGCTAATT
+chr16 22637637 22637652 +V_OCT4_01 7.94702e-06 + TTTTGTTGTGCAAAC
+chr16 22720038 22720060 +V_MEF2_02 1.84909e-06 + GGGAAATTTAAAAATAGCTTCT
+chr16 22720045 22720057 -V_MEF2_Q6_01 6.78607e-07 - AGCTATTTTTAA
+chr16 22720055 22720073 -V_MYOD_Q6_01 7.74036e-06 - CCAACCCAGCTGCAGAAG
+chr16 22720066 22720080 -V_KROX_Q6 2.22971e-06 - CCTGCCCCCAACCC
+chr16 22720094 22720104 +V_NCX_01 2.56319e-06 + TGGTAAGTGG
+chr16 22720114 22720126 +V_SRY_02 5.02837e-06 + GAAAACAATGGG
+chr16 23270778 23270789 -V_EGR_Q6 5.40581e-06 - GTGGGGGTGGC
+chr16 23270780 23270792 +V_PAX4_03 2.70808e-06 + CACCCCCACCCT
+chr16 23270784 23270793 -V_CACBINDINGPROTEIN_Q6 2.23138e-06 - GAGGGTGGG
+chr16 23482466 23482477 +V_HELIOSA_02 6.56371e-06 + AAAAGGAAAAC
+chr16 23482510 23482524 +V_KROX_Q6 1.77973e-06 + TTTGCCCCCGCCCC
+chr16 23482513 23482526 -V_SP1_Q6 4.19627e-06 - CTGGGGCGGGGGC
+chr16 23482514 23482524 -V_SP1_Q6_01 6.78413e-07 - GGGGCGGGGG
+chr16 23482515 23482524 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr16 23482515 23482525 +V_SP1_Q2_01 3.57003e-06 + CCCCGCCCCA
+chr16 23482526 23482536 -V_IK_Q5 4.33614e-06 - GGTGGGAGGG
+chr16 23497684 23497702 -V_FOXJ2_01 2.18092e-06 - TTTTAAATAAATAAACCA
+chr16 23497686 23497699 +V_FOX_Q2 2.65338e-06 + GTTTATTTATTTA
+chr16 23497686 23497699 +V_HFH3_01 4.77876e-06 + GTTTATTTATTTA
+chr16 23497762 23497783 -V_PAX6_01 5.25696e-06 - TCTGTTTACACTTCAGTTCCC
+chr16 24853273 24853296 +V_COUPTF_Q6 1.19457e-07 + CAACCTGACCTTTCCCCCTGCCT
+chr16 24853274 24853295 -V_PPARG_01 8.53423e-06 - GGCAGGGGGAAAGGTCAGGTT
+chr16 24853277 24853287 +V_NUR77_Q5 8.43564e-06 + CTGACCTTTC
+chr16 24853277 24853291 -V_HNF4_Q6_01 7.92317e-06 - GGGGGAAAGGTCAG
+chr16 24853278 24853291 +V_PPAR_DR1_Q2 9.42243e-07 + TGACCTTTCCCCC
+chr16 24853278 24853291 +V_COUP_DR1_Q6 5.72793e-06 + TGACCTTTCCCCC
+chr16 24853278 24853291 -V_DR1_Q3 3.04643e-06 - GGGGGAAAGGTCA
+chr16 24853278 24853292 +V_COUP_01 6.76471e-06 + TGACCTTTCCCCCT
+chr16 24853278 24853295 -V_PPARG_03 3.0203e-06 - GGCAGGGGGAAAGGTCA
+chr16 25517297 25517314 +V_PPARG_03 8.20535e-06 + TGGTAGGGCACAGTTGA
+chr16 25517410 25517424 -V_KROX_Q6 9.17068e-06 - CCCACCCACCCACC
+chr16 25517414 25517428 -V_KROX_Q6 9.17068e-06 - CCCACCCACCCACC
+chr16 25517439 25517454 +V_OCT4_01 4.01204e-06 + CTTTGAAATGTAAAG
+chr16 25728236 25728249 -V_SP1_Q6 1.00798e-06 - CAGGGGCGGGGTG
+chr16 25728237 25728247 -V_SP1_Q6_01 1.0915e-06 - GGGGCGGGGT
+chr16 25728238 25728247 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr16 25728238 25728248 +V_SP1_Q2_01 1.0915e-06 + CCCCGCCCCT
+chr16 25728284 25728299 -V_ETS1_B 1.48419e-06 - GCAGGAAGTAGTTTC
+chr16 25728286 25728298 +V_ETS_Q4 1.51985e-06 + AACTACTTCCTG
+chr16 25728286 25728300 -V_ETS2_B 5.46026e-07 - GGCAGGAAGTAGTT
+chr16 25728309 25728324 -V_VDR_Q3 3.98432e-06 - GGGGGGGGGGGTTGA
+chr16 25728310 25728323 -V_MAZR_01 2.79447e-06 - GGGGGGGGGGTTG
+chr16 25728312 25728323 +V_SP1SP3_Q4 3.19906e-06 + ACCCCCCCCCC
+chr16 25728313 25728322 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr16 25728313 25728324 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr16 25728313 25728327 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr16 25728314 25728323 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr16 25728314 25728325 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr16 25728314 25728328 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr16 25728315 25728324 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr16 25728315 25728326 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr16 25728315 25728329 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr16 25728316 25728325 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr16 25728316 25728327 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr16 25728317 25728326 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr16 25728317 25728328 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr16 25728317 25728336 -V_PPARA_02 3.05216e-06 - TAAGGTCGGGGGGGGGGGG
+chr16 25728318 25728327 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr16 25728318 25728329 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr16 25728319 25728328 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr16 25728319 25728330 +V_SP1SP3_Q4 6.44809e-06 + CCCCCCCCCCG
+chr16 25728320 25728329 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr16 25775275 25775284 +V_AP2ALPHA_01 9.68294e-06 + GCCCGAGGG
+chr16 25775275 25775284 +V_AP2GAMMA_01 7.85065e-06 + GCCCGAGGG
+chr16 25775295 25775305 +V_TBX5_Q5 5.68466e-06 + TTCACACCTG
+chr16 25780249 25780268 -V_SRF_Q5_02 1.27936e-06 - CAGGTCCTTGTTTGGAAGG
+chr16 25780251 25780265 +V_SRF_Q6 5.43591e-06 + TTCCAAACAAGGAC
+chr16 25780252 25780270 +V_SRF_Q4 6.03352e-06 + TCCAAACAAGGACCTGTC
+chr16 25871764 25871783 -V_OCT1_01 3.34572e-06 - ATGCATATGCTAATAGGGT
+chr16 25871769 25871779 -V_POU3F2_02 7.27852e-06 - ATATGCTAAT
+chr16 25871789 25871804 +V_OCT4_01 9.05006e-06 + TATTCATATGCTAAG
+chr16 25871879 25871908 -V_MYOGNF1_01 6.71843e-06 - CAGAGCTCTGATTGGCCAATCTGCCATCC
+chr16 25871887 25871900 +V_NFY_Q6_01 9.50338e-07 + GATTGGCCAATCA
+chr16 25871888 25871902 -V_NFY_C 7.33715e-07 - TCTGATTGGCCAAT
+chr16 25871888 25871904 +V_NFY_01 1.39563e-07 + ATTGGCCAATCAGAGC
+chr16 25871890 25871901 +V_NFY_Q6 4.23487e-06 + TGGCCAATCAG
+chr16 25871903 25871916 +V_HFH8_01 6.57167e-06 + CTCTGTTTATATG
+chr16 26049762 26049773 +V_NFE2_01 3.70226e-06 + TGCTGAGGCAC
+chr16 26962243 26962258 -V_OCT4_01 5.63049e-06 - CATTCTTATTCAAAC
+chr16 26962329 26962341 +V_ELF1_Q6 7.39845e-06 + GTTGGAGGAAGT
+chr16 26962331 26962345 +V_ETS2_B 5.16909e-06 + TGGAGGAAGTGTTT
+chr16 26962332 26962347 +V_ETS1_B 4.06372e-06 + GGAGGAAGTGTTTCA
+chr16 26962349 26962360 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr16 26962351 26962360 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr16 29882503 29882513 -V_GATA1_05 8.02927e-06 - CCAGATAACA
+chr16 29882512 29882542 -V_PAX4_04 6.64961e-06 - AAAAAAAAAAAGAACCTCAGAGGCCACTCC
+chr16 29882537 29882552 +V_STAT5B_01 5.80514e-06 + TTTTTCCTGGAAGCC
+chr16 29956272 29956287 +V_DMRT1_01 3.56608e-06 + TAGAAACAATGTAGT
+chr16 29956310 29956325 +V_DMRT1_01 1.02233e-06 + TAGAAACAATGTAGC
+chr16 29956312 29956327 -V_DMRT1_01 2.69689e-08 - CTGCTACATTGTTTC
+chr16 29956329 29956344 +V_DMRT1_01 1.02233e-06 + TAGAAACAATGTAGC
+chr16 29956331 29956346 -V_DMRT1_01 2.69689e-08 - CTGCTACATTGTTTC
+chr16 29956348 29956363 +V_DMRT1_01 5.35835e-06 + TAGAAACAATGTAGG
+chr16 29956358 29956369 -V_SP1SP3_Q4 6.27849e-06 - CCCCCCCCTAC
+chr16 29956360 29956371 -V_SP1SP3_Q4 2.8432e-06 - CCCCCCCCCCT
+chr16 29956361 29956370 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr16 29956361 29956372 -V_SP1SP3_Q4 3.19906e-06 - ACCCCCCCCCC
+chr16 29956361 29956374 +V_MAZR_01 2.98074e-06 + GGGGGGGGGGTAT
+chr16 29956362 29956371 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr16 30460670 30460683 -V_HFH3_01 6.87476e-06 - GCTTATTTGTATA
+chr16 31551986 31551998 -V_SRY_02 8.43511e-06 - GTAAACAAAACG
+chr16 31551987 31552001 +V_FOXO1_02 5.21263e-06 + GTTTTGTTTACCGT
+chr16 33170287 33170298 +V_PAX_Q6 3.7389e-06 + CTGGAACAAAC
+chr16 33170356 33170374 +V_GCNF_01 5.75095e-06 + CACAAGTCCAAGGCCACC
+chr16 33170361 33170373 -V_LRH1_Q5 7.00006e-07 - GTGGCCTTGGAC
+chr16 34094160 34094175 +V_SMAD4_Q6 1.2366e-06 + GCGATGCAGACAGCT
+chr16 34094182 34094198 -V_EVI1_01 7.40857e-06 - AGAGAAGATAAGGTCC
+chr16 34094187 34094198 -V_EVI1_03 6.70634e-06 - AGAGAAGATAA
+chr16 34441415 34441428 +V_SP1_Q6 8.76141e-06 + TGGAGGAGGGGCC
+chr16 34441416 34441429 +V_MAZR_01 3.8307e-06 + GGAGGAGGGGCCC
+chr16 34441436 34441449 -V_STAT_Q6 6.2368e-06 - TTCTTTTCTTGGA
+chr16 34668557 34668572 +V_OCT4_01 3.74251e-06 + CATTCACTTGCAAAT
+chr16 34668558 34668573 +V_OCT4_02 1.50435e-06 + ATTCACTTGCAAATA
+chr16 34668603 34668611 -V_CACD_01 9.89755e-06 - CCACACCC
+chr16 35588129 35588144 -V_SMAD4_Q6 2.88375e-06 - GGCGGGGAGACTGCT
+chr16 35588135 35588148 -V_SP1_Q6 9.41334e-06 - GAGGGGCGGGGAG
+chr16 35588136 35588146 -V_SP1_Q6_01 2.74385e-06 - GGGGCGGGGA
+chr16 35588137 35588146 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr16 35588137 35588147 +V_SP1_Q2_01 1.0915e-06 + CCCCGCCCCT
+chr16 35588139 35588152 -V_MAZR_01 5.94885e-06 - GGGGGAGGGGCGG
+chr16 35588140 35588153 -V_SP1_Q6 1.00798e-06 - TGGGGGAGGGGCG
+chr16 35588141 35588151 -V_SP1_Q6_01 2.74385e-06 - GGGGAGGGGC
+chr16 35588142 35588151 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr16 35588142 35588152 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr16 35588143 35588151 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr16 35588143 35588152 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr16 35588143 35588157 +V_KROX_Q6 3.79201e-06 + CCCTCCCCCACCAC
+chr16 35904320 35904343 -V_COUPTF_Q6 6.50749e-06 - CCTTCTGACCCTTACTCCACCCC
+chr16 35904332 35904347 +V_VDR_Q3 4.22722e-06 + GGGTCAGAAGGGTGG
+chr16 35904369 35904382 -V_MAZR_01 2.00881e-06 - GGGGGAGGGGCTA
+chr16 35904370 35904383 -V_SP1_Q6 5.66938e-07 - GGGGGGAGGGGCT
+chr16 35904371 35904381 -V_SP1_Q6_01 2.74385e-06 - GGGGAGGGGC
+chr16 35904371 35904386 -V_SPZ1_01 7.83729e-06 - GGGGGGGGGAGGGGC
+chr16 35904372 35904381 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr16 35904372 35904382 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr16 35904373 35904381 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr16 35904373 35904382 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr16 35904374 35904387 -V_MAZR_01 3.10027e-06 - TGGGGGGGGGAGG
+chr16 35904377 35904386 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr16 35904411 35904421 +V_NKX25_Q5 8.11064e-06 + TGCCACTTCC
+chr16 35904433 35904445 +V_NANOG_01 3.55582e-06 + GGGGCCATTTTC
+chr16 35904438 35904453 +V_OCT4_01 7.41924e-06 + CATTTTCATTCAAAT
+chr16 38260070 38260081 -V_OCT1_Q5_01 7.81079e-06 - TAATTTACATA
+chr16 38260114 38260128 +V_BLIMP1_Q6 7.69212e-07 + TGAAAGGGAAAGTG
+chr16 38260115 38260126 +V_IRF_Q6_01 8.39845e-06 + GAAAGGGAAAG
+chr16 38260115 38260130 -V_IRF_Q6 7.87876e-07 - TTCACTTTCCCTTTC
+chr16 38260120 38260134 +V_BLIMP1_Q6 2.72511e-06 + GGAAAGTGAATGGG
+chr16 42493882.4.593892 +V_P53_02 8.04166e-06 + GGACATGCCC
+chr16 43800533 43800547 -V_OCT1_06 4.31945e-06 - CTTATTTAGATGCA
+chr16 46501005 46501020 +V_OCT4_02 3.02765e-06 + ATTCAGATGCTGATT
+chr16 46501058 46501073 +V_OCT4_02 1.50435e-06 + ATTGTCATGCTATTG
+chr16 48108085 48108095 +V_IK_Q5 4.33614e-06 + TCTGGGAGGG
+chr16 48108149 48108165 -V_DMRT2_01 6.42936e-07 - CAAAGTGATACATTCA
+chr16 48475441 48475453 +V_TTF1_Q6 3.54448e-06 + CCCTCAAGTGCA
+chr16 49516798 49516815 +V_RFX1_01 5.18407e-07 + GGGTAGCTAAGCAACCT
+chr16 49516825 49516839 +V_CEBPB_02 9.83147e-06 + ATCTTGCTTAACTG
+chr16 50455252 50455263 +V_MYB_Q3 3.40516e-06 + AGAGGCAGTTG
+chr16 50482560 50482574 +V_CDX2_Q5 7.50128e-07 + CTACTTTTATTACC
+chr16 50482589 50482608 +V_PU1_Q4 8.89634e-06 + TCATCTAACTTCCTCACTT
+chr16 50482599 50482615 -V_MAF_Q6 6.4009e-06 - AGGAGGGAAGTGAGGA
+chr16 50482680 50482688 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr16 57473726 57473741 +V_DMRT5_01 2.3698e-06 + TCTTGTAACTTTGTC
+chr16 57473837 57473845 +V_CACD_01 9.89755e-06 + CCACACCC
+chr16 65765517 65765533 -V_EVI1_01 1.68349e-06 - AGCCAAGATAAGATAG
+chr16 65765518 65765533 -V_EVI1_04 3.3175e-06 - AGCCAAGATAAGATA
+chr16 65765566 65765579 -V_AP2_Q6_01 4.74029e-06 - TACCCCCCAGGCC
+chr16 65765579 65765593 -V_KROX_Q6 5.75274e-06 - CCAGCCCCCCACCC
+chr16 65765597 65765612 +V_STAT5A_01 9.16964e-06 + TGTTTCTGGGAAGTC
+chr16 65765597 65765612 +V_STAT5B_01 8.9266e-06 + TGTTTCTGGGAAGTC
+chr16 65765640 65765668 +V_PAX5_01 9.89036e-06 + GCCTCAGGCCAGGTGGCAGGGCAGCTTC
+chr16 65765646 65765656 -V_EBOX_Q6_01 6.43409e-06 - CCACCTGGCC
+chr16 65765676 65765686 -V_P53_DECAMER_Q2 2.10476e-06 - AGGCAAGTCC
+chr16 69951978 69951986 +V_CACD_01 9.89755e-06 + CCACACCC
+chr16 69952013 69952028 +V_IPF1_Q4_01 7.22911e-06 + TGGGTCATTACTCAG
+chr16 69952029 69952044 +V_OCT4_01 4.91956e-06 + CATTGTGATGCTAAG
+chr16 69952030 69952045 +V_OCT4_02 2.05222e-06 + ATTGTGATGCTAAGA
+chr16 78416885 78416894 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr16 78440290 78440299 -V_HNF4_Q6 7.33929e-06 - AAGGTCCAG
+chr16 78440304 78440320 +V_AP2_Q3 6.40204e-06 + ACCCTCGGGCAGTGGC
+chr16 78440305 78440314 -V_AP2ALPHA_01 9.68294e-06 - GCCCGAGGG
+chr16 78440305 78440314 -V_AP2GAMMA_01 7.85065e-06 - GCCCGAGGG
+chr16 78440336 78440349 +V_NFY_Q6_01 6.71402e-06 + TCTTGACCAATGG
+chr16 78440386 78440398 +V_SRY_02 2.9821e-06 + TTTAACAATAGG
+chr16 78440387 78440397 +V_SOX5_01 4.92279e-06 + TTAACAATAG
+chr16 81481377 81481400 -V_OCT1_04 1.18034e-06 - GAATTGATATGCAAATAAAGACT
+chr16 81481379 81481398 -V_OCT1_01 9.8471e-06 - ATTGATATGCAAATAAAGA
+chr16 81481381 81481394 +V_OCT_C 2.19692e-06 + TTTATTTGCATAT
+chr16 81481382 81481393 +V_OCT1_Q5_01 2.46139e-06 + TTATTTGCATA
+chr16 81481382 81481393 +V_OCT_Q6 1.64093e-06 + TTATTTGCATA
+chr16 81481383 81481393 -V_OCT1_B 4.33582e-06 - TATGCAAATA
+chr16 81481383 81481398 -V_OCT4_02 1.18248e-06 - ATTGATATGCAAATA
+chr16 81481384 81481399 -V_OCT4_01 2.19035e-07 - AATTGATATGCAAAT
+chr16 81481476 81481491 -V_OCT4_01 4.01204e-06 - ATTTGTAATGTAAAA
+chr16 90310214 90310229 +V_OCT4_01 7.94702e-06 + TTTTGTTGTGCAAAC
+chr16 90310291 90310305 -V_KROX_Q6 6.89701e-06 - CCCGCCCACCTCTC
+chr16 90310295 90310308 +V_SP1_Q6 4.24913e-07 + GGTGGGCGGGGCT
+chr16 90310296 90310306 -V_SP1_Q2_01 1.91768e-06 - CCCCGCCCAC
+chr16 90310296 90310307 +V_EGR_Q6 3.55693e-06 + GTGGGCGGGGC
+chr16 90310297 90310307 +V_SP1_Q6_01 1.50459e-06 + TGGGCGGGGC
+chr16 90310348 90310367 -V_PU1_Q4 5.81356e-06 - TCTGTCTTCTTCCTCTCTC
+chr16 91565293 91565313 -V_P53_01 8.84418e-06 - ACACATGCCCTGTGATGTTG
+chr16 91565366 91565376 -V_POU3F2_02 8.91945e-06 - TTATGGTAAT
+chr16 91565406 91565419 -V_NKX61_01 2.30763e-06 - CTTTTAATTGGCT
+chr16 91565443 91565455 +V_GLI_Q2 3.63816e-06 + CCTGGGTGGACC
+chr16 91639578 91639596 +V_PAX8_B 9.66664e-06 + ACCTACTTGCATGATCTC
+chr16 91736844 91736859 +V_IRF_Q6 5.72126e-06 + TTCCCTTTCTTTTTC
+chr16 91736895 91736913 +V_LXR_Q3 5.29838e-06 + TGGGGTCACTGGCTTTTA
+chr16 922.4.58 92214261 +V_HSF_Q6 3.92835e-07 + TTCCAGCAGCTTC
+chr16 92214354 92214370 -V_S8_01 8.05419e-06 - AAATGTTAATTAGCCT
+chr16 92706274 92706288 +V_DMRT7_01 1.54252e-06 + TTGCTACAATGTAG
+chr16 92706274 92706289 +V_DMRT1_01 3.56682e-08 + TTGCTACAATGTAGC
+chr16 92706276 92706291 -V_DMRT1_01 8.36868e-08 - TGGCTACATTGTAGC
+chr16 92706277 92706291 -V_DMRT7_01 6.04797e-06 - TGGCTACATTGTAG
+chr16 92997232 92997244 -V_VDR_Q6 1.04054e-06 - CCCTGTGAACCT
+chr16 92997285 92997301 +V_MAF_Q6 5.99246e-06 + AGGAGGGAAGGTGGGA
+chr16 93826912 93826928 +V_MMEF2_Q6 1.95567e-06 + GTGTTTAAAATAAACT
+chr16 94392063 94392078 +V_OCT4_01 5.63049e-06 + CATTCTTATTCAAAC
+chr16 94392080 94392088 +V_CACD_01 9.89755e-06 + CCACACCC
+chr16 96175114 96175129 -V_CP2_02 9.87124e-06 - TCTGGTTTGAACTTC
+chr16 97067236 97067251 +V_SMAD4_Q6 7.97785e-06 + CTGGGGCAGTCTGCT
+chr16 97067266 97067274 -V_CACD_01 9.89755e-06 - CCACACCC
+chr16 97067282 97067297 -V_OCT4_01 8.76645e-07 - CTTTGTAATGCATAT
+chr16 97844188 97844197 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr16 97844200 97844210 -V_MYOD_Q6 9.79999e-06 - CCCACCTGTC
+chr16 97844241 97844258 +V_RFX1_01 1.53834e-07 + CAGTTACCTGGCAACAG
+chr16 97844241 97844258 -V_RFX1_01 6.16934e-06 - CTGTTGCCAGGTAACTG
+chr16 97844242 97844256 +V_EFC_Q6 6.35305e-07 + AGTTACCTGGCAAC
+chr16 97844249 97844258 -V_RFX_Q6 3.30926e-06 - CTGTTGCCA
+chr16 97902043 97902059 -V_AP2_Q3 7.19772e-06 - GCCTCCAGGCTAGGGC
+chr17 3505875 3505888 +V_SP1_Q6 7.54104e-06 + AGGGGGTGGGGGT
+chr17 3505876 3505885 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr17 3505876 3505886 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr17 3505876 3505887 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr17 3505877 3505889 -V_PAX4_03 2.40392e-07 - CACCCCCACCCC
+chr17 3505877 3505891 -V_KROX_Q6 2.21131e-07 - CCCACCCCCACCCC
+chr17 3505880 3505891 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr17 3505881 3505894 +V_SP1_Q6 8.76141e-06 + TGGGGGTGGGGGG
+chr17 3505882 3505891 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr17 3505882 3505892 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr17 3505882 3505893 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr17 3505882 3505897 +V_VDR_Q3 5.65227e-07 + GGGGGTGGGGGGACA
+chr17 3505884 3505897 +V_MAZR_01 3.8307e-06 + GGGTGGGGGGACA
+chr17 4878848 4878859 +V_FLI1_Q6 9.02891e-06 + CAGGAAGTCCT
+chr17 4878875 4878886 -V_LEF1TCF1_Q4 9.40057e-06 - CCTTTGATGGT
+chr17 4878879 4878895 +V_NFKB_Q6_01 5.91669e-06 + TCAAAGGAAAGTCCCT
+chr17 4878882 4878896 -V_NFKB_Q6 1.6841e-06 - AAGGGACTTTCCTT
+chr17 4878883 4878895 -V_NFKB_C 2.44197e-06 - AGGGACTTTCCT
+chr17 4878883 4878896 -V_P50P50_Q3 5.92952e-06 - AAGGGACTTTCCT
+chr17 4878884 4878894 -V_NFKAPPAB65_01 4.05532e-06 - GGGACTTTCC
+chr17 4878884 4878894 -V_CREL_01 6.18085e-06 - GGGACTTTCC
+chr17 4878884 4878894 -V_NFKAPPAB_01 3.01332e-06 - GGGACTTTCC
+chr17 5490524 5490539 +V_OCT4_02 1.08801e-06 + TTTCACTTGCAAATG
+chr17 5490560 5490571 +V_GATA_C 4.75146e-06 + GGATAAGGACT
+chr17 5490578 5490594 -V_HAND1E47_01 6.93078e-06 - TCTGGCATCTGGCACA
+chr17 5490589 5490604 -V_HMGIY_Q3 1.66574e-06 - ACTGGATTTTTCTGG
+chr17 6267802 6267823 -V_PPARG_01 9.03013e-06 - TCACAGATCAAAGGACAAACG
+chr17 6267864 6267877 +V_MAZR_01 2.98074e-06 + TGGGGGGGGGTAG
+chr17 6267865 6267874 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr17 6267865 6267880 +V_SPZ1_01 5.23259e-07 + GGGGGGGGGTAGGGG
+chr17 6478510 6478529 +V_ER_Q6 2.33862e-06 + TACAGTGGCCGTGACCTGA
+chr17 6478517 6478528 -V_ER_Q6_02 6.42713e-07 - CAGGTCACGGC
+chr17 6478575 6478590 -V_SPZ1_01 5.23259e-07 - GGGGGGGGGTAGGGG
+chr17 6478578 6478591 -V_MAZR_01 2.98074e-06 - TGGGGGGGGGTAG
+chr17 6478581 6478590 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr17 6478634 6478655 +V_PPARG_01 9.03013e-06 + TCACAGATCAAAGGACAAACG
+chr17 6495844 6495856 -V_NANOG_01 7.60378e-06 - AGACCCATTGCC
+chr17 8432504 8432518 -V_ERR1_Q2 1.82748e-06 - AGCACAAGGTCACA
+chr17 8432521 8432536 +V_SMAD4_Q6 9.63362e-06 + GTGGGCCTGCCACCT
+chr17 9915742 9915755 +V_OCT_C 4.58343e-06 + TTCATTTGCATTT
+chr17 9915743 9915754 +V_OCT1_Q5_01 3.13512e-06 + TCATTTGCATT
+chr17 9915743 9915754 +V_OCT_Q6 2.98837e-06 + TCATTTGCATT
+chr17 10570418 10570433 -V_OCT4_02 2.94262e-07 - ATTGTGATGCTAAAT
+chr17 10570419 10570434 -V_OCT4_01 4.28625e-06 - TATTGTGATGCTAAA
+chr17 10624834 10624849 -V_VDR_Q3 1.37001e-08 - GGGGGAGGGGGGAGA
+chr17 10624837 10624850 -V_SP1_Q6 2.76363e-06 - CGGGGGAGGGGGG
+chr17 10624838 10624848 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr17 10624838 10624849 +V_SP1SP3_Q4 2.8432e-06 + CCCCCTCCCCC
+chr17 10624839 10624848 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr17 10624839 10624849 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr17 10624840 10624848 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr17 10624840 10624849 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr17 10624840 10624854 +V_KROX_Q6 1.60679e-07 + CCCTCCCCCGCCCC
+chr17 10624843 10624856 -V_SP1_Q6 1.48219e-06 - AGGGGGCGGGGGA
+chr17 10624844 10624854 -V_SP1_Q6_01 6.78413e-07 - GGGGCGGGGG
+chr17 10624844 10624855 +V_SP1SP3_Q4 3.19906e-06 + CCCCCGCCCCC
+chr17 10624845 10624854 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr17 10624845 10624855 +V_SP1_Q2_01 3.39206e-07 + CCCCGCCCCC
+chr17 10624846 10624857 -V_EGR_Q6 6.21659e-06 - GAGGGGGCGGG
+chr17 10624846 10624860 +V_KROX_Q6 1.5817e-06 + CCCGCCCCCTCCAG
+chr17 10624847 10624858 +V_SP1SP3_Q4 9.31298e-08 + CCGCCCCCTCC
+chr17 10624884 10624892 +V_CACD_01 9.89755e-06 + CCACACCC
+chr17 10624907 10624922 +V_SPZ1_01 6.53184e-06 + TCTGGGGGGTGGGGC
+chr17 10624908 10624923 -V_SREBP_Q6 8.95186e-06 - CGCCCCACCCCCCAG
+chr17 10624910 10624923 +V_SP1_Q6 9.29757e-07 + GGGGGGTGGGGCG
+chr17 10624911 10624920 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr17 10624911 10624921 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr17 10624911 10624924 +V_MAZR_01 5.14471e-06 + GGGGGTGGGGCGC
+chr17 10624912 10624922 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr17 10625512 10625527 +V_CP2_02 9.52691e-07 + GCAGGGTTGGGCTGG
+chr17 10625535 10625546 -V_IRF_Q6_01 3.86751e-06 - AAAACTGAAAG
+chr17 10625570 10625583 +V_RXRLXRB_01 5.3169e-06 + AGGTCCAAGGGCA
+chr17 10625588 10625597 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr17 10625588 10625602 +V_KROX_Q6 4.94478e-06 + CCCACCCCCTCCCA
+chr17 10625589 10625600 +V_SP1SP3_Q4 4.25103e-06 + CCACCCCCTCC
+chr17 10625594 10625604 -V_IK_Q5 1.3587e-06 - TTTGGGAGGG
+chr17 10625595 10625604 -V_LYF1_01 7.33929e-06 - TTTGGGAGG
+chr17 10625891 10625901 +V_CREL_01 4.68872e-06 + GGGGTTTTCC
+chr17 10625895 10625908 -V_STAT1STAT1_Q3 2.19152e-06 - GTTTACAGGAAAA
+chr17 10625904 10625916 +V_PAX4_03 1.74945e-06 + AAACCCCACCCC
+chr17 10625910 10625923 -V_SP1_Q6 7.54104e-06 - TGGGGGTGGGGTG
+chr17 10625912 10625922 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr17 10625913 10625922 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr17 10625913 10625924 -V_EGR_Q6 8.04446e-06 - GTGGGGGTGGG
+chr17 10625913 10625927 +V_KROX_Q6 6.89701e-06 + CCCACCCCCACCCT
+chr17 10625915 10625927 +V_PAX4_03 2.70808e-06 + CACCCCCACCCT
+chr17 10625919 10625928 -V_CACBINDINGPROTEIN_Q6 2.23138e-06 - GAGGGTGGG
+chr17 10669814 10669830 -V_AP2_Q3 9.06701e-07 - GCCCTCAGGCGGTGTC
+chr17 10669819 10669832 -V_AP2_Q6_01 1.26715e-06 - GGGCCCTCAGGCG
+chr17 11546204 11546218 +V_CEBPA_01 9.88249e-06 + ACATTGCAAAAGAA
+chr17 11546204 11546218 +V_CEBP_Q2 7.10503e-06 + ACATTGCAAAAGAA
+chr17 11546272 11546281 +V_T3R_Q6 8.74404e-06 + CCTGTCCTG
+chr17 11546305 11546313 -V_CACD_01 9.89755e-06 - CCACACCC
+chr17 11706844 11706858 -V_ERR1_Q2 1.82748e-06 - AAATCAAGGTCAGA
+chr17 11706846 11706855 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr17 11726846 11726861 +V_OCT4_02 1.90479e-06 + ATTGAGATGCAAAGC
+chr17 11726938 11726948 -V_SP1_Q2_01 9.56538e-06 - CCCCACCCCT
+chr17 11726939 11726951 -V_PAX4_03 3.63034e-06 - CAACCCCACCCC
+chr17 11726945 11726956 -V_FOXO4_01 7.64453e-06 - CTAAACAACCC
+chr17 12942952 12942965 -V_SP1_Q6 3.23457e-06 - TGGGGGAGGGGTG
+chr17 12942953 12942963 -V_SP1_Q6_01 9.74073e-06 - GGGGAGGGGT
+chr17 12942954 12942963 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr17 12942954 12942964 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr17 12942955 12942963 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr17 12942955 12942964 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr17 12942955 12942969 +V_KROX_Q6 4.70749e-06 + CCCTCCCCCATCCC
+chr17 12943065 12943080 -V_SREBP_Q6 3.71245e-06 - GACATCACCCCAGGC
+chr17 12943065 12943080 -V_SREBP1_Q5 9.31948e-06 - GACATCACCCCAGGC
+chr17 12943068 12943080 -V_SREBP_Q3 1.8438e-06 - GACATCACCCCA
+chr17 12943070 12943084 -V_ATF3_Q6 3.37778e-06 - GCCTGACATCACCC
+chr17 13572941 13572955 -V_E2A_Q2 2.75062e-06 - CCAGCTGGCTCAGG
+chr17 13572980 13572997 -V_DR4_Q2 6.81376e-06 - TGCTCTGCACTGAACCC
+chr17 13573025 13573033 +V_STAT3_02 9.89755e-06 + GGCTTCCC
+chr17 13573043 13573053 +V_POU3F2_02 1.99833e-06 + TTATGTTAAT
+chr17 13573080 13573090 +V_POU3F2_02 1.99833e-06 + TTATGTTAAT
+chr17 15428777 15428798 -V_PPARG_01 8.77879e-06 - ACTAAGGTCAAGGGTGAATAC
+chr17 15428781 15428794 +V_PPAR_DR1_Q2 5.59541e-06 + TCACCCTTGACCT
+chr17 15428781 15428794 -V_RXRLXRB_01 7.77466e-06 - AGGTCAAGGGTGA
+chr17 15428781 15428794 -V_DR1_Q3 2.76991e-06 - AGGTCAAGGGTGA
+chr17 15428866 15428876 +V_NUR77_Q5 2.98426e-06 + CTGACCTTCC
+chr17 21202611 21202619 -V_CACD_01 9.89755e-06 - CCACACCC
+chr17 21202676 21202696 +V_MYCMAX_03 6.15675e-07 + GAAGGAACACGTGTCTCTGG
+chr17 21202676 21202696 -V_MYCMAX_03 6.15675e-07 - CCAGAGACACGTGTTCCTTC
+chr17 22255894 22255904 -V_POU3F2_02 5.63759e-06 - ATATGTTAAT
+chr17 25816909 25816922 +V_SP1_Q6 3.53849e-06 + GGGGGGTGGGGGG
+chr17 25816910 25816919 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr17 25816910 25816920 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr17 25816910 25816921 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr17 25816910 25816925 +V_VDR_Q3 2.76308e-06 + GGGGGTGGGGGGGGA
+chr17 25816911 25816923 -V_PAX4_03 9.67001e-06 - CCCCCCCACCCC
+chr17 25816911 25816925 -V_KROX_Q6 8.74919e-06 - TCCCCCCCCACCCC
+chr17 25816914 25816925 +V_EGR_Q6 5.98534e-06 + GTGGGGGGGGA
+chr17 25816914 25816928 -V_KROX_Q6 9.17068e-06 - CCCTCCCCCCCCAC
+chr17 25816919 25816928 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr17 25816920 25816928 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr17 25816920 25816929 -V_CKROX_Q2 3.66459e-06 - GCCCTCCCC
+chr17 25816978 25816991 -V_OCT_C 1.01107e-06 - CTCATTTGCATTT
+chr17 25816979 25816990 -V_OCT1_Q5_01 3.13512e-06 - TCATTTGCATT
+chr17 25816979 25816990 -V_OCT_Q6 2.98837e-06 - TCATTTGCATT
+chr17 25816994 25817009 +V_OCT4_01 5.63049e-06 + CTTTCAAATGCTGAT
+chr17 25892763 25892776 +V_GFI1_Q6 8.33208e-06 + AAAAATCACAGCC
+chr17 25892889 25892899 -V_NUR77_Q5 8.43564e-06 - CTGACCTTTG
+chr17 25893879 25893890 -V_EGR_Q6 3.55693e-06 - GTGGGGGCAGA
+chr17 25893879 25893893 +V_KROX_Q6 9.2663e-07 + TCTGCCCCCACCCC
+chr17 25893882 25893897 +V_SREBP_Q6 9.90089e-06 + GCCCCCACCCCAGAT
+chr17 26116875 26116895 -V_YY1_02 1.52472e-06 - CCCAGGCCATTTTCTCTGGA
+chr17 26116887 26116900 -V_AP2_Q6_01 3.36599e-06 - CTGTCCCCAGGCC
+chr17 26648357 26648375 +V_FOXJ2_01 3.2621e-06 + TCTCAAATAAACAAATAA
+chr17 26648360 26648373 -V_HFH8_01 1.84768e-06 - ATTTGTTTATTTG
+chr17 26648361 26648373 -V_FOXD3_01 9.53633e-06 - ATTTGTTTATTT
+chr17 26648361 26648379 -V_HNF3_Q6_01 2.87333e-06 - CTTTTTATTTGTTTATTT
+chr17 26648363 26648376 +V_HNF3_Q6 7.04647e-06 + ATAAACAAATAAA
+chr17 26648364 26648377 -V_FOX_Q2 5.55936e-06 - TTTTATTTGTTTA
+chr17 26648364 26648377 -V_HFH3_01 7.45015e-06 - TTTTATTTGTTTA
+chr17 26648364 26648377 -V_HFH4_01 3.17054e-06 - TTTTATTTGTTTA
+chr17 26648377 26648387 -V_SP1_Q2_01 9.56538e-06 - CCCCACCCCT
+chr17 26648378 26648390 -V_PAX4_03 2.40392e-07 - CACCCCCACCCC
+chr17 26648378 26648392 -V_KROX_Q6 9.60222e-07 - TCCACCCCCACCCC
+chr17 26648384 26648396 -V_PAX4_03 1.74945e-06 - CACCTCCACCCC
+chr17 26648453 26648464 -V_LEF1TCF1_Q4 7.79522e-06 - CCTTTGAACTC
+chr17 26648468 26648487 -V_PU1_Q4 3.23812e-06 - TCCTTTGTCTTCCTCTTTG
+chr17 27375729 27375742 +V_OCT_C 3.7644e-06 + CACATTTGCATGT
+chr17 27375782 27375791 -V_CACBINDINGPROTEIN_Q6 6.29506e-06 - GAGGCTGGG
+chr17 27375820 27375835 -V_SREBP_Q6 5.81609e-06 - GCCCCCACCCCACAC
+chr17 27375820 27375835 -V_SREBP1_Q5 4.55744e-06 - GCCCCCACCCCACAC
+chr17 27375824 27375838 -V_KROX_Q6 2.09798e-07 - CCTGCCCCCACCCC
+chr17 27375827 27375838 +V_EGR_Q6 1.38101e-06 + GTGGGGGCAGG
+chr17 27638885 27638900 +V_OCT4_01 6.46423e-06 + AATTGAATTGCAAAT
+chr17 27638886 27638901 +V_OCT4_02 5.69461e-06 + ATTGAATTGCAAATC
+chr17 27638938 27638952 -V_KROX_Q6 3.79201e-06 - CCTGCCCCCTCCAC
+chr17 29324334 29324349 +V_OCT4_01 9.73507e-08 + CTTTGTCATGCAGAT
+chr17 29324335 29324350 +V_OCT4_02 2.69329e-07 + TTTGTCATGCAGATG
+chr17 30399138 30399148 -V_NKX25_Q5 8.11064e-06 - TGCCACTTCC
+chr17 30399143 30399152 -V_RFX_Q6 3.30926e-06 - CTGTTGCCA
+chr17 31444823 31444836 +V_PPAR_DR1_Q2 8.84028e-06 + TGACCTCTCTCCC
+chr17 31711686 31711698 +V_IK2_01 1.22274e-06 + CATTGGGAATGC
+chr17 31711693 31711707 -V_E2A_Q2 1.73147e-06 - CCACCTGCTGCATT
+chr17 31711694 31711712 +V_MYOD_Q6_01 1.68518e-06 + ATGCAGCAGGTGGCTGGG
+chr17 31711717 31711731 +V_GATA1_03 4.1196e-06 + GGGATGATTACAGC
+chr17 31711818 31711833 -V_PEBP_Q6 8.53509e-06 - CCTGACCACAACTGT
+chr17 32068701 32068712 +V_EBF_Q6 7.15927e-06 + CTCCCTAGAGA
+chr17 32068828 32068844 +V_NFY_01 1.25937e-06 + CCCAACCAATGGGAAG
+chr17 32102732 32102747 -V_VDR_Q3 9.00638e-06 - GGGTAAGGGAAGTGA
+chr17 32102755 32102773 -V_CMYB_01 8.88706e-07 - GCCAGAGGCAGTTGGCTG
+chr17 32102757 32102767 +V_MYB_Q6 5.43478e-06 + GCCAACTGCC
+chr17 32102758 32102772 +V_E2A_Q2 7.08461e-06 + CCAACTGCCTCTGG
+chr17 32102759 32102770 -V_MYB_Q3 3.40516e-06 - AGAGGCAGTTG
+chr17 32432899 32432914 +V_OCT4_01 1.40241e-06 + TATTGTAATGCTAAA
+chr17 32432900 32432915 +V_OCT4_02 6.55103e-06 + ATTGTAATGCTAAAT
+chr17 32432923 32432932 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr17 32432923 32432933 -V_NUR77_Q5 8.43564e-06 - TTGACCTTGG
+chr17 32716499 32716515 -V_AP2_Q3 6.40204e-06 - CCCCCCAGGCCACAGC
+chr17 32716504 32716517 -V_AP2_Q6_01 3.62379e-07 - CACCCCCCAGGCC
+chr17 32716507 32716526 +V_PPARA_02 5.65647e-06 + CTGGGGGGTGGGGGTGGGG
+chr17 32716509 32716522 +V_SP1_Q6 5.65055e-06 + GGGGGGTGGGGGT
+chr17 32716510 32716519 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr17 32716510 32716520 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr17 32716510 32716521 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr17 32716511 32716523 -V_PAX4_03 2.40392e-07 - CACCCCCACCCC
+chr17 32716511 32716525 -V_KROX_Q6 2.21131e-07 - CCCACCCCCACCCC
+chr17 32716514 32716525 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr17 32716516 32716525 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr17 32716516 32716526 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr17 32716516 32716527 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr17 32716517 32716529 -V_PAX4_03 2.40392e-07 - CACCCCCACCCC
+chr17 32716517 32716531 -V_KROX_Q6 2.21131e-07 - CCCACCCCCACCCC
+chr17 32716520 32716531 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr17 32716522 32716531 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr17 32716522 32716532 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr17 32716522 32716533 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr17 32716523 32716535 -V_PAX4_03 1.74945e-06 - ATCCCCCACCCC
+chr17 32716630 32716640 -V_P53_DECAMER_Q2 6.84641e-06 - GGGCAAGTCC
+chr17 35685724 35685743 +V_PU1_Q4 9.43652e-06 + GTCATTCACTTCCTTCTCC
+chr17 36118916 36118924 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr17 36118972 36118984 -V_SRY_02 6.58101e-06 - CAAAACAAAAGG
+chr17 37164690 37164705 +V_OCT4_01 5.63049e-06 + CATTCTTATTCAAAC
+chr17 38127672 38127684 -V_VDR_Q6 2.12523e-06 - CCTGGTGAACCC
+chr17 38127729 38127752 +V_OCT1_04 7.77296e-06 + GGATTGATATGTAAAATAAAGGA
+chr17 40720970 40720986 +V_MMEF2_Q6 6.11616e-06 + GGCTCTAAAAAAAGCT
+chr17 40720974 40720986 -V_MEF2_Q6_01 6.45006e-06 - AGCTTTTTTTAG
+chr17 40721038 40721053 -V_OCT4_01 1.96957e-07 - TATTCAAATGCAAAT
+chr17 43256526 43256536 +V_SP1_Q2_01 9.56538e-06 + CCCCGCCCTG
+chr17 43256549 43256567 -V_GCNF_01 5.83895e-07 - CGCAAGTTCAAGTTAACA
+chr17 43256604 43256614 +V_P53_DECAMER_Q2 6.84641e-06 + GGGCAAGTCC
+chr17 43388982 43388993 +V_EVI1_02 2.55227e-06 + TGATAAGATAA
+chr17 43388982 43388993 +V_EVI1_03 1.27098e-06 + TGATAAGATAA
+chr17 43388982 43388993 +V_EVI1_05 2.76517e-06 + TGATAAGATAA
+chr17 43647976 43647985 -V_T3R_Q6 8.74404e-06 - CCTGTCCTC
+chr17 43849061 43849076 -V_OCT4_02 2.05222e-06 - ATTCTTTTGCAAAAG
+chr17 43849062 43849077 -V_OCT4_01 7.41924e-06 - CATTCTTTTGCAAAA
+chr17 47275576 47275593 -V_HSF1_Q6 5.57435e-06 - CTTCTAGAAGTTACACC
+chr17 47275598 47275612 +V_GATA1_02 5.2355e-07 + TTGGAGATAGGGGA
+chr17 47275602 47275619 +V_PU1_01 2.28947e-06 + AGATAGGGGAAGTGGAC
+chr17 47275603 47275622 -V_PU1_Q4 2.14079e-06 - CCAGTCCACTTCCCCTATC
+chr17 47955228 47955241 +V_GFI1_Q6 8.33208e-06 + GTAAATCACTGCT
+chr17 47955229 47955241 +V_GFI1B_01 1.66806e-07 + TAAATCACTGCT
+chr17 48755680 48755703 +V_PPARG_02 5.31222e-06 + CAGTGGCTCACCCTGCCCTCATC
+chr17 48755697 48755710 +V_OCT_C 4.94168e-06 + CTCATCTGCATAC
+chr17 48755710 48755718 +V_STAT3_02 9.89755e-06 + GGCTTCCC
+chr17 48755751 48755766 +V_OCT4_01 2.83977e-06 + ATTTGTTATGCATAT
+chr17 48755970 48755984 -V_E2A_Q2 4.16854e-06 - CCAGCTGCCTCCTA
+chr17 48756062 48756077 -V_ETS1_B 1.36208e-06 - GGAGGAAGTGAGTTG
+chr17 48756064 48756076 +V_ETS_Q4 3.72534e-06 + ACTCACTTCCTC
+chr17 48756064 48756078 -V_ETS2_B 2.81492e-06 - TGGAGGAAGTGAGT
+chr17 48756072 48756083 +V_ALPHACP1_01 3.14106e-06 + CCTCCAATGAG
+chr17 48756083 48756092 -V_FOXM1_01 8.06007e-06 - AGATGGAGT
+chr17 49187368 49187383 +V_HMGIY_Q3 9.445e-07 + CCTGGAATTTCCTGG
+chr17 49187370 49187380 +V_NFKAPPAB65_01 5.16177e-06 + TGGAATTTCC
+chr17 49187455 49187470 +V_PEBP_Q6 5.6633e-06 + AATGACCACAGACTT
+chr17 50470810 50470826 +V_NFY_01 9.91219e-07 + CACAGCCAATGGGAGC
+chr17 50470812 50470823 +V_ALPHACP1_01 4.48665e-06 + CAGCCAATGGG
+chr17 50470883 50470902 +V_SRF_Q5_02 6.64334e-06 + ATGATCCTTTTATGGCATC
+chr17 50470904 50470932 -V_PAX5_02 6.26566e-06 - AAAATGTGATCTTCAGCCTGACAACAAA
+chr17 50470938 50470955 -V_PPARG_03 7.84978e-06 - TAGCTGGTTGAAGGTCA
+chr17 50556072 50556090 +V_HNF3_Q6_01 1.41138e-06 + CTCACTGTTTGCTTTATA
+chr17 50556074 50556087 +V_FOX_Q2 8.50378e-06 + CACTGTTTGCTTT
+chr17 50556075 50556088 -V_HNF3_Q6 7.97369e-06 - TAAAGCAAACAGT
+chr17 50567184 50567199 -V_OCT1_02 2.73623e-06 - ATGAATATTCAAGAG
+chr17 50567187 50567202 +V_OCT1_02 9.99712e-06 + TTGAATATTCATGAC
+chr17 50567202 50567217 +V_OCT4_01 4.7383e-08 + TATTCTAATGCAAAT
+chr17 50567203 50567218 +V_OCT4_02 2.58651e-06 + ATTCTAATGCAAATG
+chr17 50567208 50567219 -V_OCT1_Q5_01 3.13512e-06 - TCATTTGCATT
+chr17 50567208 50567219 -V_OCT_Q6 2.98837e-06 - TCATTTGCATT
+chr17 50694649 50694661 -V_NKX62_Q2 7.5322e-06 - GAAGTAAATAGC
+chr17 50694649 50694668 +V_PU1_Q4 6.18667e-06 + GCTATTTACTTCCTGTTTG
+chr17 50694655 50694666 -V_ELF5_01 4.25524e-06 - AACAGGAAGTA
+chr17 52868248 52868267 -V_OCT1_01 7.83092e-06 - ACAAATATGCTAAAATGAG
+chr17 52868327 52868340 -V_FOX_Q2 4.92187e-07 - GATTGTTTGCTTT
+chr17 52868328 52868340 -V_FOXD3_01 2.60094e-06 - GATTGTTTGCTT
+chr17 53591978 53591990 +V_PXR_Q2 6.30169e-06 + AGGGTCAAGAAA
+chr17 53592082 53592096 -V_FOXO3_01 3.6851e-06 - TGTTTGTTTACTAT
+chr17 53592086 53592099 -V_HFH3_01 3.96292e-06 - ACTTGTTTGTTTA
+chr17 53701204 53701219 -V_OCT4_02 6.55103e-06 - ATTGTAATGCTAAAT
+chr17 53701205 53701220 -V_OCT4_01 1.09956e-06 - CATTGTAATGCTAAA
+chr17 56771460 56771475 -V_SREBP_Q6 5.81609e-06 - TGGCCCACCCCACCC
+chr17 56771460 56771475 -V_SREBP1_Q5 2.95108e-06 - TGGCCCACCCCACCC
+chr17 56771470 56771483 +V_DEC_Q1 8.9012e-06 + GGCCAAGTGAATC
+chr17 56771509 56771517 +V_CACD_01 9.89755e-06 + CCACACCC
+chr17 56771557 56771587 -V_PAX4_04 8.27552e-06 - AAAGAAAACGCTAGAAACCAACCTGCTCCC
+chr17 56972937 56972951 -V_NFKB_Q6 8.38703e-06 - GGTGGAATCTCCTT
+chr17 56972963 56972973 -V_FOXO1_01 2.98837e-06 - CATAAACAAA
+chr17 56972980 56972989 -V_SMAD3_Q6 7.33929e-06 - TGTCTGCCT
+chr17 56972996 56973010 -V_PAX6_Q2 1.07719e-06 - CTGACCCTGAACTC
+chr17 57082121 57082135 +V_GATA1_02 5.54287e-06 + GCAGTGATAAGGGA
+chr17 64173236 64173253 +V_PU1_01 4.2823e-06 + GAGAAGGGGAAGTGGAT
+chr17 64173237 64173256 -V_PU1_Q4 3.89454e-07 - TGTATCCACTTCCCCTTCT
+chr17 64319862 64319875 +V_CEBPGAMMA_Q6 1.7433e-06 + CTGATTTCACAAA
+chr17 64887980 64887990 -V_ESE1_Q3 8.06007e-06 - AGCTTCCTGT
+chr17 64888010 64888024 -V_ERR1_Q2 1.4372e-06 - TGTTCAAGGTCAAA
+chr17 64888011 64888023 +V_LRH1_Q5 3.77826e-06 + TTGACCTTGAAC
+chr17 64888012 64888021 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr17 64888065 64888080 +V_DMRT1_01 3.89932e-06 + TGGAAACACTGTTGC
+chr17 64888067 64888082 -V_DMRT1_01 6.01487e-06 - TGGCAACAGTGTTTC
+chr17 65226067 65226082 -V_DMRT1_01 6.88848e-09 - TTGATACATTGTTTC
+chr17 65226068 65226082 -V_DMRT7_01 1.30327e-06 - TTGATACATTGTTT
+chr17 65226070 65226085 -V_DMRT3_01 8.64039e-06 - TGCTTGATACATTGT
+chr17 65226125 65226138 +V_SP1_Q6 8.76141e-06 + GGGGGGAGGAGGG
+chr17 65226129 65226140 -V_SP1SP3_Q4 2.26051e-06 - CCCCCTCCTCC
+chr17 66767271 66767286 -V_CP2_02 9.87124e-06 - GCTGGCTCGGGGCAG
+chr17 66767336 66767349 +V_CRX_Q4 3.17273e-06 + TCCTTAATCTCCC
+chr17 66767366 66767379 +V_GATA1_04 2.34959e-06 + GGCTGATAAGGGT
+chr17 68060691 68060704 +V_HFH3_01 2.06759e-06 + TCATGTTTATTTA
+chr17 68060711 68060722 +V_LEF1TCF1_Q4 7.79522e-06 + GCTTTGATGTT
+chr17 69816410 69816421 +V_MYB_Q3 9.34682e-06 + AGGGGCAGTTC
+chr17 71294606 71294634 +V_PAX5_01 4.15866e-07 + CCCAGGGGCAGGCGGGGGTGGAGGGAGG
+chr17 71294613 71294624 -V_SP1SP3_Q4 8.91927e-06 - CCCCCGCCTGC
+chr17 71748328 71748342 -V_BLIMP1_Q6 7.61005e-06 - AGAAAGTAAAAGGG
+chr17 71748387 71748402 -V_OCT1_02 6.11997e-06 - CAGAATATTCAGTTA
+chr17 71748396 71748409 -V_CEBPGAMMA_Q6 6.9741e-07 - TTCATTTCAGAAT
+chr17 71748400 71748416 +V_DMRT2_01 3.59916e-06 + TGAAATGAAACATTGT
+chr17 71748404 71748419 +V_DMRT1_01 1.11988e-06 + ATGAAACATTGTATC
+chr17 71748406 71748421 -V_DMRT1_01 2.58784e-07 - TAGATACAATGTTTC
+chr17 71748427 71748435 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr17 71748427 71748436 -V_CKROX_Q2 8.90515e-06 - TCCCTCCCC
+chr17 79035111 79035126 +V_OCT4_02 8.01355e-06 + ATTGAGTTGCAAAGA
+chr17 79035160 79035175 +V_OCT4_01 5.24325e-06 + TATGGAAATGCAAAT
+chr17 79035188 79035201 -V_AP1_01 5.13952e-06 - GCCTGAGTCAGCC
+chr17 79035189 79035200 +V_AP1_Q6 2.98654e-06 + GCTGACTCAGG
+chr17 79035203 79035214 -V_FOXO4_01 3.75885e-06 - CTAAACAAGCC
+chr17 80053720 80053735 -V_OCT4_01 5.63049e-06 - TTTTGTATTGCAAAC
+chr17 80053790 80053805 -V_OCT4_02 6.55103e-06 - ATTGTAATGCTAAAT
+chr17 80053791 80053806 -V_OCT4_01 1.40241e-06 - TATTGTAATGCTAAA
+chr17 80405629 80405639 -V_TATA_C 7.61768e-06 - CCTATAAAAA
+chr17 80405675 80405694 -V_PPARA_02 1.12088e-07 - GAGGGTCACATGGGTCAGG
+chr17 80405677 80405692 -V_VDR_Q3 9.46585e-06 - GGGTCACATGGGTCA
+chr17 80405709 80405719 +V_KAISO_01 3.50715e-06 + TTCCTGCTAA
+chr17 80405737 80405757 +V_FOXP1_01 4.3659e-06 + TTGTTTTTATTGTTCTGTGT
+chr17 80405757 80405771 +V_STAT3STAT3_Q3 6.11235e-06 + TTTACGGGGACTGC
+chr17 80900900 80900912 +V_NFAT_Q6 2.65054e-06 + CATTGGAAAAAG
+chr17 80900912 80900927 -V_DMRT1_01 1.3484e-06 - TTGCAACTTTGTTTC
+chr17 81141914 81141927 -V_CEBP_01 5.092e-06 - TGTTTGGTAAAGA
+chr17 81141938 81141952 -V_PAX6_Q2 2.64584e-06 - CTGAGCTGGAGGTC
+chr17 85736247 85736259 +V_PAX4_03 2.70808e-06 + GACTCCCACCCC
+chr17 87871253 87871267 -V_ETS2_B 1.51805e-06 - GGCAGGAAATATGT
+chr17 88077131 88077141 -V_POU1F1_Q6 5.995e-06 - ATGAATAAAA
+chr17 88077246 88077256 -V_POU1F1_Q6 5.995e-06 - ATGAATAAAA
+chr17 88789528 88789544 +V_AP2_Q3 5.66797e-06 + AGCCCCAGGCGATAAC
+chr17 90304210 90304221 +V_SP1SP3_Q4 8.91927e-06 + TCCCCCCCTCC
+chr17 90304212 90304225 -V_SP1_Q6 2.76363e-06 - CGGGGGAGGGGGG
+chr17 90304213 90304223 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr17 90304213 90304224 +V_SP1SP3_Q4 2.8432e-06 + CCCCCTCCCCC
+chr17 90304214 90304223 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr17 90304214 90304224 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr17 90304215 90304223 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr17 90304215 90304224 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr17 90304366 90304381 -V_SPZ1_01 2.6946e-06 - ACAGGAGGGATGGGG
+chr17 90304696 90304708 +V_CEBPDELTA_Q6 2.28218e-06 + CATTGCTTCACT
+chr17 90304717 90304726 -V_LYF1_01 7.33929e-06 - TTTGGGAGG
+chr17 90304763 90304773 +V_TATA_C 7.61768e-06 + CCTATAAAAA
+chr17 90382367 90382382 -V_DMRT3_01 1.87777e-06 - AAATTGCTACAATGT
+chr17 90382367 90382383 -V_DMRT2_01 7.55248e-08 - GAAATTGCTACAATGT
+chr17 90382369 90382382 +V_DMRT4_01 1.13767e-06 + ATTGTAGCAATTT
+chr17 90382419 90382431 +V_SRY_02 9.08784e-06 + TAAAACAAAAGA
+chr17 90382477 90382488 -V_EBF_Q6 4.4234e-06 - TTCCCCTGGGG
+chr17 90789847 90789859 -V_GLI_Q2 1.77433e-06 - TCTGGGTGGTGC
+chr17 90789959 90789968 +V_HNF4_Q6 7.33929e-06 + AAGGTCCAG
+chr18 3490250 3490260 +V_P53_DECAMER_Q2 4.12901e-06 + GGGCAAGCCC
+chr18 3490317 3490328 +V_SP1SP3_Q4 2.26051e-06 + CCCCCTCCTCC
+chr18 3490357 3490367 +V_NFAT_Q4_01 8.89473e-06 + GAGGAAAATC
+chr18 3867485 3867503 +V_LXR_Q3 3.52557e-06 + AAGGCTTACCAGGGGTCA
+chr18 3867487 3867503 -V_LXR_DR4_Q3 3.64321e-06 - TGACCCCTGGTAAGCC
+chr18 8966802 8966812 -V_ESE1_Q3 8.06007e-06 - TGCTTCCTGT
+chr18 8966813 8966826 -V_PPAR_DR1_Q2 7.19742e-06 - TGCCCTGTGGCCT
+chr18 8966859 8966871 +V_HNF6_Q6 8.1906e-06 + AGAAATCAATAG
+chr18 8966897 8966911 +V_COUP_01 9.24456e-06 + TGACCTCTAGACTT
+chr18 9810614 9810623 +V_CKROX_Q2 8.90515e-06 + TCCCTCCCC
+chr18 9810615 9810623 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr18 9810702 9810711 +V_T3R_Q6 3.30926e-06 + CCTGTCCTT
+chr18 10977502 10977513 -V_PITX2_Q2 3.03779e-07 - TGTAATCCCAA
+chr18 10977546 10977564 +V_HNF3_Q6_01 4.45363e-06 + CTGTTTATTTGCCTAGTG
+chr18 10977618 10977632 -V_ERR1_Q2 3.31639e-06 - AGTTCAAGGTCAGT
+chr18 10977618 10977636 -V_GCNF_01 9.72891e-07 - TGAGAGTTCAAGGTCAGT
+chr18 10977619 10977631 +V_LRH1_Q5 5.2397e-07 + CTGACCTTGAAC
+chr18 10977619 10977633 +V_PAX6_Q2 4.67224e-08 + CTGACCTTGAACTC
+chr18 10977620 10977629 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr18 11205309 11205319 +V_NKX25_Q5 5.12638e-06 + TCCCACTTCA
+chr18 13871242 13871257 +V_OCT4_01 5.24325e-06 + TATTCAAATGCTGAT
+chr18 13871261 13871273 +V_PAX4_03 3.63034e-06 + GTCCCCCACCCC
+chr18 13871263 13871274 +V_SP1SP3_Q4 8.91927e-06 + CCCCCACCCCC
+chr18 13871264 13871274 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr18 13871265 13871274 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr18 13871273 13871288 -V_DMRT1_01 1.51207e-06 - TTGAAACAATGTATG
+chr18 13871276 13871292 -V_DMRT2_01 1.18539e-06 - CAGATTGAAACAATGT
+chr18 13871298 13871313 +V_OCT4_01 3.74251e-06 + CATTGTAATGCTTAT
+chr18 13871314 13871329 -V_ETS1_B 7.24631e-06 - ACAGGAAATACTTGA
+chr18 13871316 13871330 -V_ETS2_B 3.28818e-07 - GACAGGAAATACTT
+chr18 13900808 13900822 -V_CEBPA_01 7.35284e-06 - ACATTGCTAAATCG
+chr18 13900836 13900860 +V_COMP1_01 8.41309e-06 + CCTTAGGATTGGTGGTAAAAGGTC
+chr18 13900844 13900865 +V_PPARG_01 3.83358e-06 + TTGGTGGTAAAAGGTCAAATG
+chr18 13900848 13900861 +V_RXRLXRB_01 7.97003e-06 + TGGTAAAAGGTCA
+chr18 13900848 13900861 +V_DR1_Q3 7.13764e-06 + TGGTAAAAGGTCA
+chr18 13900848 13900861 -V_PPAR_DR1_Q2 9.61169e-06 - TGACCTTTTACCA
+chr18 14835128 14835143 +V_OCT4_01 1.66292e-06 + CATTCAAATGCAAAG
+chr18 15266568 15266583 +V_PEBP_Q6 5.6633e-06 + GTACACCACAAACAG
+chr18 15266568 15266583 -V_AML_Q6 8.28446e-06 - CTGTTTGTGGTGTAC
+chr18 15366774 15366783 +V_EVI1_06 5.97675e-06 + ACAAGATAA
+chr18 15366774 15366787 +V_GATA1_04 9.51553e-06 + ACAAGATAAGGGC
+chr18 16649113 16649131 +V_GCNF_01 7.57156e-07 + CCTGAGTTCAAGTTCAGC
+chr18 16649116 16649130 -V_PAX6_Q2 4.94834e-06 - CTGAACTTGAACTC
+chr18 16649248 16649258 -V_SOX5_01 1.64093e-06 - TTAACAATAC
+chr18 17441049 17441064 +V_OCT4_01 1.40241e-06 + TATTGTAATGCTAAA
+chr18 17441050 17441065 +V_OCT4_02 6.55103e-06 + ATTGTAATGCTAAAT
+chr18 21102225 21102243 +V_GCNF_01 2.6146e-07 + TTAGAGTTCAAGGTCATC
+chr18 21102228 21102242 -V_PAX6_Q2 7.66755e-07 - ATGACCTTGAACTC
+chr18 21102229 21102243 +V_ERR1_Q2 2.07148e-06 + AGTTCAAGGTCATC
+chr18 21102230 21102242 -V_LRH1_Q5 3.77826e-06 - ATGACCTTGAAC
+chr18 21102232 21102241 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr18 21102252 21102264 -V_CEBP_Q3 7.38612e-06 - AAGTTTTGCAAA
+chr18 21102316 21102325 +V_LYF1_01 7.33929e-06 + TTTGGGAGG
+chr18 21102364 21102376 +V_ELF1_Q6 7.75166e-06 + ATTACAGGAAAT
+chr18 21102365 21102381 +V_NFKB_Q6_01 5.91669e-06 + TTACAGGAAATTCCCA
+chr18 21102367 21102382 -V_HMGIY_Q3 6.87308e-06 - CTGGGAATTTCCTGT
+chr18 21102368 21102382 -V_NFKB_Q6 4.22961e-06 - CTGGGAATTTCCTG
+chr18 21102369 21102381 -V_NFKB_C 9.50027e-06 - TGGGAATTTCCT
+chr18 21102370 21102380 -V_NFKAPPAB65_01 9.08563e-07 - GGGAATTTCC
+chr18 21102370 21102380 -V_CREL_01 7.08941e-06 - GGGAATTTCC
+chr18 21102370 21102380 -V_NFKAPPAB_01 1.65463e-06 - GGGAATTTCC
+chr18 21102371 21102384 -V_IK3_01 8.31072e-06 - GACTGGGAATTTC
+chr18 21377006 21377020 -V_KROX_Q6 2.32952e-06 - CCCACCCCCACCCA
+chr18 21377009 21377020 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr18 21377011 21377020 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr18 21377014 21377024 +V_IK_Q5 4.33614e-06 + GGTGGGAGGG
+chr18 24552744 24552765 -V_STAT3_01 1.90442e-06 - CTTTGTTTCCGGCAAATGATG
+chr18 24552815 24552830 +V_OCT4_01 5.31494e-07 + ATTTGTCATGCAGAT
+chr18 24552816 24552831 +V_OCT4_02 1.18248e-06 + TTTGTCATGCAGATT
+chr18 24849816 24849831 -V_SMAD4_Q6 2.79808e-06 - GTGATGCAGCCAGTC
+chr18 24849867 24849886 +V_PU1_Q4 9.52422e-07 + GACTTTTATTTCCCCATTC
+chr18 24849963 24849986 +V_COUPTF_Q6 1.70374e-06 + CCCTGTGGCCTTTCCTCTGTGAC
+chr18 30281431 30281450 +V_SEF1_C 7.76863e-06 + AGGAGCTATCTCTGTGGTC
+chr18 30281461 30281476 +V_OCT4_01 9.65557e-06 + CTTAGTGATGCTAAT
+chr18 30281544 30281559 +V_SPZ1_01 2.19806e-06 + GGAGGAGGGTGAGGG
+chr18 30281548 30281563 +V_VDR_Q3 7.57997e-06 + GAGGGTGAGGGGTGA
+chr18 30282558 30282567 +V_CKROX_Q2 8.90515e-06 + TCCCTCCCC
+chr18 30282559 30282567 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr18 30282569 30282583 +V_BLIMP1_Q6 5.2171e-06 + GGGAAGGGGAAGGG
+chr18 30282570 30282589 -V_PU1_Q4 2.82586e-06 - GCCTCTCCCTTCCCCTTCC
+chr18 30282634 30282646 -V_MYOD_01 8.76432e-06 - CCACAGGTGGCA
+chr18 30669071 30669083 +V_GLI_Q2 3.63816e-06 + TGTGGGTGGGCC
+chr18 30669141 30669152 -V_AP1_Q4 2.788e-06 - AGTGACTCACT
+chr18 31728597 31728612 -V_OCT4_01 1.36814e-07 - CTTTGTTATGCAAAC
+chr18 32296113 32296122 -V_SMAD3_Q6 4.03003e-06 - TGTCTGTCT
+chr18 33572243 33572256 -V_DEC_Q1 7.65158e-06 - CTCCATGTGAAGA
+chr18 34830726 34830740 -V_KROX_Q6 2.22971e-06 - CCAGCCCCCAACCC
+chr18 34830732 34830741 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr18 34830749 34830760 +V_EBF_Q6 2.42561e-06 + GTCCCTTGGGG
+chr18 34830794 34830812 +V_CMYB_01 8.15265e-06 + GGCAATAACAGTTGCTGG
+chr18 35297799 35297822 -V_OCT1_04 1.55975e-06 - TCATTTAAATGCAAATCAGAGGA
+chr18 35297803 35297816 +V_OCT_C 2.55303e-06 + CTGATTTGCATTT
+chr18 35297803 35297818 -V_OCT1_Q6 2.61033e-06 - TTAAATGCAAATCAG
+chr18 35297804 35297815 +V_OCT1_Q5_01 7.39888e-07 + TGATTTGCATT
+chr18 35297804 35297815 +V_OCT_Q6 2.01087e-06 + TGATTTGCATT
+chr18 35297805 35297815 -V_OCT1_B 8.43065e-06 - AATGCAAATC
+chr18 35297806 35297821 -V_OCT4_01 1.28133e-06 - CATTTAAATGCAAAT
+chr18 35297838 35297848 -V_POU3F2_02 1.99833e-06 - TTATGTTAAT
+chr18 35297921 35297936 +V_OCT4_01 9.05006e-06 + CATTGTGTTGTAAAT
+chr18 35297922 35297937 +V_OCT4_02 2.05222e-06 + ATTGTGTTGTAAATG
+chr18 36110724 36110739 +V_SPZ1_01 7.19322e-06 + GAGGGAGGGAAGGGC
+chr18 36110809 36110818 +V_T3R_Q6 8.74404e-06 + CCTGTCCTG
+chr18 36111000 36111011 +V_EVI1_02 1.79797e-06 + AGACAAGATAG
+chr18 36111000 36111011 +V_EVI1_03 4.48668e-06 + AGACAAGATAG
+chr18 36111000 36111011 +V_EVI1_05 1.57476e-06 + AGACAAGATAG
+chr18 36111045 36111063 -V_GCNF_01 3.54739e-06 - AGAAAGTGCAAGGTCATC
+chr18 36111046 36111058 +V_LRH1_Q5 3.77826e-06 + ATGACCTTGCAC
+chr18 36111089 36111109 +V_FOXP1_01 4.50341e-06 + TGTTTTGTTTTGTTTTGTTT
+chr18 36503797 36503810 +V_AP2_Q6_01 4.74029e-06 + TGGGCCCCAGGCT
+chr18 36503799 36503815 +V_AP2_Q3 7.19772e-06 + GGCCCCAGGCTTTGAT
+chr18 36503814 36503827 +V_HSF_Q6 2.81328e-06 + TTCCATAGGCTTC
+chr18 36503862 36503873 -V_EVI1_03 8.92601e-06 - AGATAAGATTG
+chr18 36503862 36503873 -V_EVI1_05 9.70501e-06 - AGATAAGATTG
+chr18 36503937 36503960 +V_PPARG_02 4.04283e-07 + CAGTAAGTCACAGTGTCCCACTA
+chr18 36503937 36503960 -V_PPARG_02 3.39755e-06 - TAGTGGGACACTGTGACTTACTG
+chr18 38165669 38165681 +V_NANOG_01 2.5276e-06 + TGGGCCATTTCC
+chr18 38165670 38165686 -V_MAF_Q6 9.01376e-06 - TGGGGGGAAATGGCCC
+chr18 38165760 38165775 +V_VDR_Q3 7.57997e-06 + GGGGGAGGAGAGAGA
+chr18 38165773 38165784 -V_PAX_Q6 2.73139e-06 - CTGGAACTCTC
+chr18 38165824 38165837 +V_SP1_Q6 8.76141e-06 + GGGGGGAGGGGGA
+chr18 38165825 38165834 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr18 38165825 38165835 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr18 38165825 38165836 -V_SP1SP3_Q4 2.8432e-06 - CCCCCTCCCCC
+chr18 38165826 38165834 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr18 38165826 38165835 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr18 38165826 38165836 +V_SP1_Q6_01 8.48538e-06 + GGGGAGGGGG
+chr18 38165826 38165840 -V_KROX_Q6 4.24911e-06 - TCCTCCCCCTCCCC
+chr18 38436292 38436305 -V_NRF2_Q4 7.87585e-06 - TTCCAGAGTCATG
+chr18 38436408 38436419 +V_RORA_Q4 4.57758e-06 + AAAGTAGGTCA
+chr18 38439752 38439761 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr18 38439868 38439886 +V_CMYB_01 7.67825e-06 + CAGAGAAGCAGTTAGGGG
+chr18 38451364 38451372 -V_CACD_01 9.89755e-06 - CCACACCC
+chr18 38536957 38536975 -V_MYOD_Q6_01 9.19422e-06 - TCAGGCCAGGTGGCGGGA
+chr18 38536960 38536972 -V_LMO2COM_01 7.876e-06 - GGCCAGGTGGCG
+chr18 38536962 38536972 +V_EBOX_Q6_01 6.43409e-06 + CCACCTGGCC
+chr18 38537048 38537058 +V_BCL6_Q3 1.81713e-06 + GGTTCTAGGA
+chr18 38537077 38537091 +V_ERR1_Q2 2.97688e-06 + AGATAAAGGTCACC
+chr18 38537095 38537108 -V_P50P50_Q3 2.54006e-06 - AGGGGAATTCCAG
+chr18 38537097 38537107 -V_CREL_01 5.43478e-06 - GGGGAATTCC
+chr18 38732464 38732479 +V_OCT4_01 2.45515e-06 + CTTTGATATGTAAAA
+chr18 38735877 38735900 +V_COUPTF_Q6 8.41277e-07 + CCCCTTGACCCCTCCCCACCTCG
+chr18 38735882 38735895 -V_MAZR_01 2.79447e-06 - TGGGGAGGGGTCA
+chr18 38735884 38735894 -V_SP1_Q6_01 9.74073e-06 - GGGGAGGGGT
+chr18 38735885 38735894 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr18 38735886 38735894 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr18 38735935 38735946 -V_EBF_Q6 4.00905e-06 - CTCCCCAGGGA
+chr18 38735950 38735959 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr18 38899233 38899251 -V_NF1_Q6 4.59425e-06 - AATTGGCTGGAGCCCAAC
+chr18 38899234 38899251 +V_NF1_Q6_01 7.65712e-06 + TTGGGCTCCAGCCAATT
+chr18 38899267 38899282 +V_DMRT1_01 8.47921e-07 + CAGAAACAATGTTGC
+chr18 38899269 38899284 -V_DMRT1_01 5.37485e-07 - TAGCAACATTGTTTC
+chr18 39063676 39063686 +V_P53_02 8.04166e-06 + GGACATGCCC
+chr18 39063746 39063757 +V_NFE2_01 3.70226e-06 + TGCTGAGTCCC
+chr18 39284408 39284419 -V_NFY_Q6 4.23487e-06 - GAACCAATCAC
+chr18 392.4.59 39284460 +V_FLI1_Q6 1.42541e-06 + CAGGAAGTCAC
+chr18 39284459 39284470 -V_AP1_Q4 7.9984e-06 - AGTGACTCAGG
+chr18 39284502 39284517 -V_OCT4_02 3.61302e-07 - ATTCTGATGCTAATT
+chr18 39284503 39284518 -V_OCT4_01 1.94673e-06 - TATTCTGATGCTAAT
+chr18 43503306 43503329 +V_COUPTF_Q6 1.02451e-06 + CCCCATGACCTCAGCCCTGGCCC
+chr18 43503327 43503337 -V_LEF1_Q2_01 1.81713e-06 - GATCAAAGGG
+chr18 43503328 43503339 +V_LEF1TCF1_Q4 2.36341e-06 + CCTTTGATCCT
+chr18 43503342 43503352 -V_IK_Q5 2.4.539e-06 - GCTGGGAGGG
+chr18 43503346 43503355 -V_CACBINDINGPROTEIN_Q6 8.12736e-06 - GGGGCTGGG
+chr18 44724844 44724854 -V_BCL6_Q3 7.66428e-06 - GCTTCTAGGA
+chr18 44724861 44724869 -V_CACD_01 9.89755e-06 - CCACACCC
+chr18 44725103 44725122 -V_OCT1_01 5.76347e-08 - GTGAATATGCAAATGTCAG
+chr18 44725105 44725118 +V_OCT_C 9.35619e-06 + GACATTTGCATAT
+chr18 44725106 44725117 +V_OCT_Q6 7.02042e-06 + ACATTTGCATA
+chr18 44725107 44725117 -V_OCT1_B 4.33582e-06 - TATGCAAATG
+chr18 44725107 44725122 -V_OCT1_02 2.73623e-06 - GTGAATATGCAAATG
+chr18 44725129 44725144 -V_OCT4_01 7.41924e-06 - GTTTGTAATGCAAAC
+chr18 53082996 53083008 -V_SRY_02 2.38689e-06 - GAAAACAAAAGA
+chr18 53083074 53083088 +V_NFY_C 4.86959e-07 + CTTGATTGGCTACC
+chr18 53425073 53425083 +V_TAL1_Q6 3.62595e-06 + GCCAGCTGCT
+chr18 53425181 53425189 -V_CACD_01 9.89755e-06 - CCACACCC
+chr18 53571205 53571218 -V_CEBP_01 5.092e-06 - TCTTTGGAAACGT
+chr18 54666101 54666116 -V_IPF1_Q4_01 7.22911e-06 - TGGCCCATTATATTC
+chr18 55071034 55071048 +V_MTF1_Q4 3.37125e-06 + TTTGCACCCTCCCC
+chr18 55071040 55071048 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr18 55071040 55071049 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr18 55071040 55071054 +V_KROX_Q6 4.70749e-06 + CCCTCCCCCACCCA
+chr18 55071062 55071073 -V_GATA_C 9.83488e-06 - AGATAAGAACT
+chr18 56904336 56904348 +V_GLI_Q2 6.68438e-06 + TGTGGGTGGTTC
+chr18 58331637 58331661 +V_BRACH_01 2.34704e-06 + AACCCCACAAATGGGTGTGACATC
+chr18 61102605 61102618 +V_MAZR_01 5.23048e-07 + TGGGGGGGGGAAA
+chr18 61102606 61102615 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr18 61376671 61376682 +V_EGR_Q6 1.01606e-06 + GTGGGGGCGGA
+chr18 61376672 61376685 +V_SP1_Q6 2.31776e-06 + TGGGGGCGGAGGC
+chr18 61376673 61376683 -V_SP1_Q2_01 3.57003e-06 - CTCCGCCCCC
+chr18 61376674 61376684 +V_SP1_Q6_01 9.74073e-06 + GGGGCGGAGG
+chr18 61376743 61376754 -V_FLI1_Q6 9.02891e-06 - CAGGAAGCCAC
+chr18 61376763 61376775 +V_CEBP_Q3 1.27504e-06 + GGGTTTGGCAAC
+chr18 61376780 61376793 -V_PPAR_DR1_Q2 6.37174e-06 - AGACCTTTCTCCC
+chr18 61377064 61377077 +V_NRF2_Q4 5.51501e-06 + ATGCTTAGTCATC
+chr18 61377103 61377117 +V_GATA1_03 9.04902e-06 + AGGAGGATTAGAAG
+chr18 61377139 61377151 +V_ELF1_Q6 7.39845e-06 + GTTAGAGGAAGC
+chr18 61519865 61519881 +V_NFKB_Q6_01 2.34992e-07 + GTCAGGGAAACTCCCC
+chr18 61519870 61519880 -V_NFKAPPAB65_01 4.05532e-06 - GGGAGTTTCC
+chr18 61612368 61612389 -V_PAX6_01 3.57476e-06 - GATTTTCACGGCTGACTTCTA
+chr18 61612391 61612400 +V_T3R_Q6 8.74404e-06 + CCTGTCCTC
+chr18 61612491 61612507 +V_GRE_C 6.56516e-06 + CTTACCGGCTGTCCTT
+chr18 65204703 65204712 +V_RFX_Q6 3.30926e-06 + CTGTTGCCA
+chr18 65204715 65204730 +V_AML_Q6 1.43323e-06 + ATGGGTGTGGTTTGC
+chr18 65204717 65204725 -V_CACD_01 9.89755e-06 - CCACACCC
+chr18 65690278 65690294 +V_AP2_Q3 7.75056e-07 + GCCCCAGGGCTGGGGG
+chr18 65690330 65690339 +V_SMAD3_Q6 7.33929e-06 + TGTCTGCCT
+chr18 65992992 65993007 +V_IRF_Q6 6.5579e-07 + TTCGCTTTCATTTCT
+chr18 68090446 68090456 +V_IK_Q5 6.81053e-06 + CTTGGGAGGG
+chr18 69629113 69629124 -V_SP1SP3_Q4 6.27849e-06 - CCGCCACCCCC
+chr18 69629126 69629142 +V_DMRT2_01 4.26622e-07 + AAAAGTGATACATTGT
+chr18 69629132 69629147 -V_DMRT1_01 4.82232e-07 - CTGTTACAATGTATC
+chr18 69629136 69629151 +V_DMRT5_01 5.79033e-06 + CATTGTAACAGTTGC
+chr18 69629171 69629186 -V_DMRT1_01 4.82232e-07 - CTGTTACAATGTATC
+chr18 69629175 69629190 +V_DMRT5_01 5.79033e-06 + CATTGTAACAGTTGC
+chr18 69629199 69629217 -V_MYOD_Q6_01 3.0826e-06 - CTGCAGCAGCTGACAGAG
+chr18 69941911 69941920 -V_T3R_Q6 8.74404e-06 - CCTGTCCTG
+chr18 69941943 69941955 +V_ELF1_Q6 5.55022e-06 + GCAACAGGAAGT
+chr18 69942032 69942047 -V_OCT4_02 4.618e-06 - ATTCAGATGCTAAGC
+chr18 69942296 69942307 +V_NFE2_01 3.11642e-06 + TACTGAGTCAT
+chr18 69942296 69942307 +V_MAF_Q6_01 9.11965e-06 + TACTGAGTCAT
+chr18 69942297 69942308 -V_AP1_Q2 4.39628e-06 - GATGACTCAGT
+chr18 69942297 69942308 -V_AP1_Q6 9.95513e-07 - GATGACTCAGT
+chr18 69942297 69942308 -V_AP1_Q4 5.85286e-06 - GATGACTCAGT
+chr18 69942298 69942307 -V_AP1_Q6_01 4.03003e-06 - ATGACTCAG
+chr18 69942308 69942319 +V_EBF_Q6 6.61149e-06 + TTCCCCAGGGG
+chr18 69942310 69942321 -V_EBF_Q6 7.68235e-06 - CTCCCCTGGGG
+chr18 69942353 69942368 +V_PEBP_Q6 7.64793e-06 + GGTAACCACATAAGG
+chr18 69942353 69942368 -V_AML_Q6 8.96093e-06 - CCTTATGTGGTTACC
+chr18 69942362 69942373 +V_HELIOSA_02 1.64093e-06 + ATAAGGAAAAC
+chr18 73376654 73376668 +V_ETS2_B 8.88244e-06 + AGCAGGAAACCCTT
+chr18 73376728 73376740 +V_FOXD3_01 6.82555e-06 + GAATGTTGATTT
+chr18 73376728 73376741 +V_FOX_Q2 6.24168e-06 + GAATGTTGATTTA
+chr18 74792495 74792510 +V_ETS1_B 3.61409e-06 + GGAGGATGTGGCTGA
+chr18 74792496 74792508 -V_ETS_Q4 7.06097e-06 - AGCCACATCCTC
+chr18 74900961 74900978 -V_NF1_Q6_01 2.86423e-06 - TGGGGCAGCTGCCAAGG
+chr18 74900961 74900979 +V_NF1_Q6 3.57123e-06 + CCTTGGCAGCTGCCCCAC
+chr18 74900961 74900979 -V_MYOD_Q6_01 9.19422e-06 - GTGGGGCAGCTGCCAAGG
+chr18 75466185 75466198 -V_SP1_Q6 6.70104e-07 - ACGGGGCGGGGTG
+chr18 75466186 75466196 -V_SP1_Q6_01 1.0915e-06 - GGGGCGGGGT
+chr18 75466187 75466196 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr18 75466187 75466197 +V_SP1_Q2_01 6.78413e-07 + CCCCGCCCCG
+chr18 75466198 75466207 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr18 75466245 75466257 +V_LMO2COM_01 9.25383e-06 + TGCCAGGTGCTG
+chr18 75466317 75466326 +V_CACBINDINGPROTEIN_Q6 6.29506e-06 + GAGGCTGGG
+chr18 75466387 75466397 -V_TAL1_Q6 7.46065e-07 - TCCAGCTGCT
+chr18 75466477 75466489 +V_ATF4_Q2 3.73781e-06 + CCTGACTCCAGG
+chr18 75466501 75466521 +V_ARNT_02 2.90028e-06 + GCCGTGGCACGTGATGGAGG
+chr18 75466501 75466521 -V_ARNT_02 2.90028e-06 - CCTCCATCACGTGCCACGGC
+chr18 75466504 75466518 +V_STRA13_01 4.10951e-06 + GTGGCACGTGATGG
+chr18 75487772 75487787 -V_HMGIY_Q3 7.44025e-07 - ATTGGAATTTCCTGT
+chr18 75487775 75487785 -V_NFKAPPAB65_01 5.16177e-06 - TGGAATTTCC
+chr18 75487815 75487826 +V_PITX2_Q2 1.22695e-06 + TTTAATCCCAG
+chr18 75487854 75487872 +V_GCNF_01 3.68477e-06 + CAGGAGTTCAAGATCATC
+chr18 75487883 75487901 +V_GCNF_01 6.18313e-06 + ATCTAGTTCAAGGGTAGC
+chr18 76018986 76018995 +V_MSX1_01 4.03003e-06 + CCGTAATTG
+chr18 76019064 76019082 -V_MYOD_Q6_01 4.24384e-06 - TCCAGCCAGGTGGCCAGG
+chr18 76175645 76175658 +V_NRF2_Q4 2.00547e-07 + ATGCTGAGTCATC
+chr18 76175646 76175657 +V_NFE2_01 4.54281e-07 + TGCTGAGTCAT
+chr18 76175646 76175657 +V_MAF_Q6_01 4.54281e-07 + TGCTGAGTCAT
+chr18 76175647 76175658 +V_BACH2_01 9.3479e-06 + GCTGAGTCATC
+chr18 76175647 76175658 -V_AP1_Q6 1.20035e-06 - GATGACTCAGC
+chr18 76175648 76175657 -V_AP1_Q6_01 4.03003e-06 - ATGACTCAG
+chr18 77276843 77276859 +V_AP2_Q3 6.40204e-06 + GGCCTTAGGCTGTGGG
+chr18 77958928 77958943 -V_OCT4_01 2.45515e-06 - CTTTGATATGTAAAA
+chr18 77958944 77958954 +V_EBOX_Q6_01 6.43409e-06 + CCACCTGGCC
+chr18 77996290 77996300 +V_GATA1_05 5.81636e-06 + ACAGATAACA
+chr18 77996309 77996324 +V_OCT4_01 1.40241e-06 + TTTTCATATGCAAAC
+chr18 77996404 77996419 -V_VDR_Q3 7.16583e-06 - AGGGGAAGGAGGTGA
+chr18 78026582 78026596 +V_EFC_Q6 8.902e-06 + CATCAATAGGCAAA
+chr18 78026603 78026619 +V_AP2_Q3 3.02252e-06 + GTCGGCAGGCGGGGGA
+chr18 78026607 78026618 -V_SP1SP3_Q4 8.91927e-06 - CCCCCGCCTGC
+chr18 78026608 78026622 -V_KROX_Q6 8.32366e-06 - CCCTCCCCCGCCTG
+chr18 78026612 78026625 +V_SP1_Q6 2.31776e-06 + CGGGGGAGGGGTG
+chr18 78026613 78026622 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr18 78026613 78026623 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr18 78026613 78026626 +V_MAZR_01 8.79511e-06 + GGGGGAGGGGTGA
+chr18 78026614 78026622 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr18 78026614 78026623 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr18 78026614 78026624 +V_SP1_Q6_01 9.74073e-06 + GGGGAGGGGT
+chr18 78026618 78026637 +V_PPARA_02 2.57121e-06 + AGGGGTGATTTGGGTTTGG
+chr18 78026644 78026673 +V_MYOGNF1_01 5.74269e-06 + CACCGCTTGGAACTAGAAGGCAGCCTAGA
+chr18 79584595 79584609 -V_POU3F2_01 8.80254e-07 - ATACATTGATTCAT
+chr18 79584670 79584685 +V_OCT4_01 1.09956e-06 + CATTGAAATGGAAAT
+chr18 80381486 80381500 -V_ETS2_B 4.30291e-06 - AACAGGAAGCCTTT
+chr18 80381489 80381499 +V_ESE1_Q3 8.80613e-06 + GGCTTCCTGT
+chr18 80381540 80381555 -V_OCT4_01 5.63049e-06 - CATTCTTATTCAAAC
+chr18 80381585 80381597 +V_GATA4_Q3 3.36478e-06 + AGATCTCAGGGA
+chr18 81373484 81373496 +V_ETS_Q4 7.92948e-06 + CCCTACTTCCTG
+chr18 81373484 81373501 -V_PU1_01 8.64552e-07 - ACAAGCAGGAAGTAGGG
+chr18 81373581 81373599 -V_GCNF_01 9.12595e-06 - CCCCAGTTCAAGAGCACA
+chr18 81373611 81373626 +V_OCT4_01 3.74251e-06 + CTTTGTCTTGTAAAT
+chr18 81373652 81373662 +V_PR_Q2 8.13856e-06 + GAAAGGACAG
+chr18 81817169 81817192 -V_COUPTF_Q6 2.45741e-06 - TCCCCTGGCCTTTCCCCAATAAT
+chr18 81817284 81817299 +V_PEBP_Q6 1.09866e-06 + GCTGACCACAGACTA
+chr18 81817284 81817299 -V_AML_Q6 2.0942e-06 - TAGTCTGTGGTCAGC
+chr18 82546840 82546849 -V_SMAD3_Q6 7.33929e-06 - TGTCTGCCT
+chr18 82546900 82546917 -V_DR4_Q2 6.2393e-07 - TGACCTCCTGTGAACTC
+chr18 82666353 82666363 -V_TAL1_Q6 7.11328e-06 - ACCAGCTGCT
+chr18 82666465 82666478 +V_SOX_Q6 4.08214e-06 + TTCTTTGTTATCA
+chr18 83665714 83665724 +V_NFKAPPAB_01 7.14234e-06 + GGGAAATTCC
+chr18 83665753 83665768 +V_DMRT1_01 2.34088e-07 + TTGCAACAATGTATC
+chr18 83665755 83665770 -V_DMRT1_01 9.46969e-09 - CTGATACATTGTTGC
+chr18 83689901 83689918 -V_DR4_Q2 6.11406e-06 - TGACTTCCAGTAAGCCC
+chr18 83689946 83689961 -V_DMRT1_01 2.48775e-07 - TGGCTACAATGTTGT
+chr18 83689947 83689961 -V_DMRT7_01 7.71182e-07 - TGGCTACAATGTTG
+chr18 83690019 83690035 +V_DMRT2_01 2.21478e-07 + CAAAATGCTACAATGT
+chr18 83690023 83690038 +V_DMRT1_01 4.43941e-06 + ATGCTACAATGTAAC
+chr18 83690025 83690040 -V_DMRT1_01 4.05865e-06 - AAGTTACATTGTAGC
+chr18 83690028 83690044 -V_DMRT2_01 4.83454e-06 - GGAAAAGTTACATTGT
+chr18 84588352 84588367 -V_DMRT1_01 8.47921e-07 - CTGCTACAATGTATT
+chr18 85497821 85497831 -V_IK_Q5 7.92622e-06 - GGTGGGAGGC
+chr18 85497826 85497836 +V_EBOX_Q6_01 6.43409e-06 + CCACCTGGCC
+chr18 85672600 85672610 +V_NKX25_Q5 5.12638e-06 + TCCCACTTCA
+chr18 85672707 85672722 +V_OCT4_01 5.24325e-06 + CATTGTTATGCACAC
+chr19 3392503 3392514 -V_EBF_Q6 9.10919e-06 - GTCCCTAGAGG
+chr19 3392568 3392579 -V_PITX2_Q2 6.58903e-06 - TGTAATCCAAA
+chr19 3392576 3392590 +V_E2A_Q2 5.14964e-06 + ACAGCTGCCTCAGG
+chr19 3577715 3577730 -V_SRF_C 9.29583e-06 - CCCCTATATGGCCTC
+chr19 3577717 3577731 +V_SRF_Q6 3.19521e-06 + GGCCATATAGGGGT
+chr19 3577730 3577753 +V_COUPTF_Q6 4.93225e-06 + TTGGGTGACCTTGGCCAGGTGAC
+chr19 3577735 3577744 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGG
+chr19 3577742 3577754 +V_USF_Q6_01 3.20896e-06 + GGCCAGGTGACC
+chr19 3757939 3757969 +V_PAX4_04 5.03459e-06 + GAACATTGCCCCCCCTTCCTAAATCTCCCT
+chr19 3757944 3757957 -V_MAZR_01 7.66218e-06 - GAAGGGGGGGCAA
+chr19 3758026 3758041 +V_OCT4_01 5.63049e-06 + TATTGTAATGTTAAA
+chr19 3758090 3758105 +V_OCT4_01 7.94702e-06 + TTTTGTTGTGCAAAC
+chr19 4113063 4113075 -V_LRH1_Q5 9.72253e-06 - GAGACCTTGAAC
+chr19 4113097 4113106 -V_AP2ALPHA_01 9.68294e-06 - GCCCGAGGC
+chr19 4113098 4113112 -V_E2A_Q2 9.11856e-06 - GCACCTGCCCGAGG
+chr19 4113103 4113111 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr19 4113103 4113113 -V_MYOD_Q6 2.71739e-06 - AGCACCTGCC
+chr19 4810448 4810463 +V_OCT4_01 1.28133e-06 + CTTTCACATGCAAAA
+chr19 4810449 4810464 +V_OCT4_02 4.618e-06 + TTTCACATGCAAAAA
+chr19 4849953 4849967 -V_KROX_Q6 9.2663e-07 - CCCGCCCCCATCAC
+chr19 4849957 4849970 +V_SP1_Q6 6.29765e-07 + TGGGGGCGGGGGT
+chr19 4849958 4849968 -V_SP1_Q2_01 3.39206e-07 - CCCCGCCCCC
+chr19 4849958 4849969 -V_SP1SP3_Q4 3.19906e-06 - CCCCCGCCCCC
+chr19 4849959 4849968 -V_CKROX_Q2 6.67377e-06 - CCCCGCCCC
+chr19 4849959 4849969 +V_SP1_Q6_01 6.78413e-07 + GGGGCGGGGG
+chr19 4849959 4849973 -V_KROX_Q6 3.63365e-07 - CGCACCCCCGCCCC
+chr19 4849963 4849976 +V_ZF5_B 5.66744e-06 + CGGGGGTGCGCTC
+chr19 4849979 4849994 +V_OCT4_02 3.02765e-06 + ATTCAGATGCTGATT
+chr19 5219881 5219896 -V_VDRRXR_01 4.84975e-06 - GGCTCATAGAGTTCC
+chr19 5219974 5219994 -V_FOXP1_01 2.54105e-06 - TTTTTATTGTTGTTGTTTTT
+chr19 6606468 6606479 +V_WHN_B 9.12787e-06 + AAGGACGCTTC
+chr19 6606508 6606520 +V_VDR_Q6 8.39077e-06 + CCCTATGAACCT
+chr19 7336072 7336087 +V_OCT1_Q6 3.59681e-06 + GGGTATGCAAAGTCC
+chr19 7336073 7336087 -V_OCT1_05 7.59056e-06 - GGACTTTGCATACC
+chr19 7381497 7381508 +V_SMAD_Q6_01 8.17406e-06 + CAGCCAGACAC
+chr19 7381530 7381544 -V_HNF4_Q6_01 6.48063e-06 - GGAACAAAGGCCAA
+chr19 7381531 7381544 +V_HNF4_DR1_Q3 7.61558e-06 + TGGCCTTTGTTCC
+chr19 7381607 7381619 -V_PXR_Q2 6.30169e-06 - AGGGTCAATGGA
+chr19 7381612 7381628 +V_LXR_DR4_Q3 4.68269e-06 + TGACCCTAAGTAACCA
+chr19 7381612 7381630 -V_LXR_Q3 4.80044e-06 - ATTGGTTACTTAGGGTCA
+chr19 7394981 7394992 +V_PAX_Q6 9.42649e-06 + CTGGGAATCAC
+chr19 9139400 9139410 -V_TBX5_Q5 2.76108e-06 - TTCACACCTT
+chr19 9139432 9139444 +V_ELF1_Q6 9.35761e-06 + GAATGAGGAAGT
+chr19 9139439 9139452 +V_STAT_Q6 2.84122e-06 + GAAGTTTCTGGGA
+chr19 9139445 9139455 +V_IK_Q5 4.33614e-06 + TCTGGGAGGG
+chr19 9165033 9165049 -V_AP2_Q3 4.16477e-06 - CCCCTCAGGCTGTGAG
+chr19 9165109 9165117 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr19 9290070 9290078 +V_STAT3_02 9.89755e-06 + GGCTTCCC
+chr19 9290087 9290102 +V_OCT4_01 6.46423e-06 + CTTTGATATGCCAAT
+chr19 9290102 9290120 -V_MYOD_Q6_01 4.80053e-06 - CTCAGGCAGGTGGCAGGT
+chr19 9290105 9290116 -V_E12_Q6 1.97832e-06 - GGCAGGTGGCA
+chr19 9290106 9290116 +V_MYOD_Q6 7.66616e-06 + GCCACCTGCC
+chr19 9290107 9290121 +V_E2A_Q2 2.75062e-06 + CCACCTGCCTGAGG
+chr19 9290108 9290116 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr19 9935527 9935540 +V_ZEC_01 4.07493e-06 + GAAGGTGGGTTGT
+chr19 9935532 9935547 +V_AML_Q6 6.93526e-06 + TGGGTTGTGGTTTGA
+chr19 10422531 10422546 +V_OCT1_Q6 2.42215e-06 + GGAAATGCAAATCAA
+chr19 10422533 10422546 -V_OCT_C 9.70046e-06 - TTGATTTGCATTT
+chr19 10422534 10422544 +V_OCT1_B 8.43065e-06 + AATGCAAATC
+chr19 10422534 10422545 -V_OCT1_Q5_01 7.39888e-07 - TGATTTGCATT
+chr19 10422534 10422545 -V_OCT_Q6 2.01087e-06 - TGATTTGCATT
+chr19 10422599 10422608 -V_SMAD3_Q6 7.33929e-06 - TGTCTGCCT
+chr19 10636656 10636668 -V_MEIS1_01 1.66267e-06 - ACGTGACAGGTC
+chr19 11047251 11047265 +V_MEIS1AHOXA9_01 3.64183e-06 + TGAGAGCTTTACGG
+chr19 11047269 11047283 -V_KROX_Q6 9.17068e-06 - CCCACCCCCACTCA
+chr19 11047272 11047283 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr19 11047273 11047286 +V_SP1_Q6 4.47623e-06 + TGGGGGTGGGGCT
+chr19 11047274 11047283 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr19 11047274 11047284 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr19 11047274 11047287 +V_MAZR_01 3.32118e-06 + GGGGGTGGGGCTA
+chr19 11047275 11047285 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr19 11047275 11047287 -V_PAX4_03 5.65167e-06 - TAGCCCCACCCC
+chr19 11898095 11898110 -V_OCT4_02 4.618e-06 - TTTCATTTGCAAATG
+chr19 11898096 11898111 -V_OCT4_01 6.02107e-06 - TTTTCATTTGCAAAT
+chr19 11898107 11898120 -V_HFH4_01 5.28594e-06 - AAGAGTTTGTTTT
+chr19 11898121 11898134 +V_IK1_01 4.76911e-06 + TTATGGGAATGCC
+chr19 12699095 12699114 -V_GR_Q6 9.09779e-06 - AGAATGCACTGTGTTCTCT
+chr19 12699177 12699189 -V_PBX_Q3 6.04767e-06 - GATTGATGGTCT
+chr19 12699192 12699205 +V_AP2_Q6_01 5.04624e-06 + CAGGCCCCGGGCT
+chr19 12699194 12699210 +V_AP2_Q3 3.69728e-07 + GGCCCCGGGCTATGTG
+chr19 12699195 12699204 +V_AP2ALPHA_01 6.01835e-06 + GCCCCGGGC
+chr19 12699195 12699204 +V_AP2GAMMA_01 6.01835e-06 + GCCCCGGGC
+chr19 12699195 12699204 -V_AP2ALPHA_01 3.00918e-06 - GCCCGGGGC
+chr19 12699195 12699204 -V_AP2GAMMA_01 3.00918e-06 - GCCCGGGGC
+chr19 14690325 14690334 +V_RFX_Q6 3.30926e-06 + CTGTTGCCA
+chr19 14690393 14690404 -V_LEF1TCF1_Q4 7.79522e-06 - CCTTTGTTCCC
+chr19 14738747 14738762 -V_OCT4_02 4.03834e-06 - ATTCTTATTCAAATC
+chr19 14738748 14738763 -V_OCT4_01 1.28133e-06 - CATTCTTATTCAAAT
+chr19 14738802 14738814 -V_ETS_Q4 9.83264e-07 - TGCCACTTCCTG
+chr19 14738804 14738814 -V_NKX25_Q5 8.11064e-06 - TGCCACTTCC
+chr19 14738849 14738860 +V_CP2_01 5.25662e-06 + GCCCAAGCCAG
+chr19 14751570 14751585 +V_OCT4_01 7.94702e-06 + TTTTGTTGTGCAAAC
+chr19 14751682 14751699 +V_PU1_01 7.57258e-06 + GGAAAGAGGAACCAGAG
+chr19 14751683 14751702 -V_PU1_Q4 1.19604e-06 - TTCCTCTGGTTCCTCTTTC
+chr19 16539354 16539369 -V_SMAD4_Q6 6.97552e-06 - GTCAGGCAGCCGGCT
+chr19 16539409 16539419 -V_ESE1_Q3 2.21291e-06 - AGTTTCCTGT
+chr19 16539428 16539440 +V_CREB_02 7.02595e-06 + CTGTTGACGCCC
+chr19 17086017 17086030 +V_HFH3_01 4.77876e-06 + GTTTGTTTGTATA
+chr19 17086017 17086030 +V_HFH4_01 9.85665e-06 + GTTTGTTTGTATA
+chr19 17086096 17086106 -V_NKX25_Q5 5.12638e-06 - TCCCACTTCA
+chr19 17212427 17212442 -V_VDR_Q3 2.57589e-06 - GGGGGAAAGGGTAGA
+chr19 17212448 17212461 -V_MAZR_01 1.0591e-06 - GGGGGGGGGGCTT
+chr19 17212450 17212461 +V_SP1SP3_Q4 7.59003e-06 + GCCCCCCCCCC
+chr19 17212451 17212460 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr19 17212451 17212462 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr19 17212451 17212465 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr19 17212452 17212461 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr19 17212452 17212463 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr19 17212453 17212462 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr19 17212453 17212464 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr19 17212454 17212463 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr19 17212454 17212465 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr19 17212455 17212464 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr19 17212455 17212466 +V_SP1SP3_Q4 3.76147e-06 + CCCCCCCCCCA
+chr19 17212456 17212465 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr19 17212462 17212471 -V_CACBINDINGPROTEIN_Q6 6.29506e-06 - GAGGCTGGG
+chr19 17212579 17212595 -V_S8_01 8.86506e-06 - TAAATTTAATTATCCT
+chr19 18848720 18848735 -V_IRF_Q6 3.90796e-06 - CACAGTTTCTGTTTT
+chr19 18848721 18848733 +V_ICSBP_Q6 3.08451e-06 + AAACAGAAACTG
+chr19 18848745 18848762 -V_HNF1_C 3.14213e-06 - AGGTAATGACTTACCAC
+chr19 21115348 21115366 -V_GCNF_01 5.5469e-06 - GTCAAGGACAAGGTTAAG
+chr19 21115357 21115369 -V_PXR_Q2 3.24502e-06 - AGGGTCAAGGAC
+chr19 21115433 21115448 +V_STAT5B_01 7.27184e-06 + CTTTTCCTGGAATAG
+chr19 21180849 21180863 -V_FXR_Q3 4.52217e-06 - CAGTGTGAATAACC
+chr19 21180918 21180931 +V_AP1_01 1.73228e-07 + GCGTGAGTCAGCG
+chr19 21180919 21180930 +V_BACH2_01 1.99103e-06 + CGTGAGTCAGC
+chr19 21180919 21180930 -V_AP1_Q6 8.21187e-06 - GCTGACTCACG
+chr19 21180920 21180929 +V_AP1_C 7.33929e-06 + GTGAGTCAG
+chr19 21180920 21180931 -V_NFE2_01 1.90408e-06 - CGCTGACTCAC
+chr19 21581948 21581963 +V_DMRT1_01 2.04559e-06 + TCGAAACATTGTTGC
+chr19 21581950 21581965 -V_DMRT1_01 6.88806e-07 - ATGCAACAATGTTTC
+chr19 21969520 21969538 +V_GCNF_01 5.15475e-06 + ATGCAAGTCAAGGTCAAC
+chr19 21969527 21969536 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr19 21969539 21969551 +V_ICSBP_Q6 9.64187e-06 + GAAGTGCAACTG
+chr19 22898040 22898049 +V_CKROX_Q2 3.66459e-06 + GCCCTCCCC
+chr19 22898041 22898049 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr19 22898041 22898050 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr19 23476427 23476439 -V_GLI_Q2 9.02849e-07 - TGTGGGTGGTCT
+chr19 23476428 23476437 -V_ZIC1_01 2.71739e-06 - TGGGTGGTC
+chr19 23476428 23476437 -V_ZIC2_01 4.94877e-06 - TGGGTGGTC
+chr19 23476428 23476437 -V_ZIC3_01 2.71739e-06 - TGGGTGGTC
+chr19 24704790 24704801 +V_EBF_Q6 8.2682e-06 + TTCCCTTAGGA
+chr19 24704818 24704828 +V_MYB_Q6 4.20952e-06 + GCCAACTGGC
+chr19 25062031 25062050 -V_PU1_Q4 9.43652e-06 - TTGCTCTACTTCCTTCTTC
+chr19 25062039 25062056 +V_PPARG_03 8.20535e-06 + AAGTAGAGCAAAGTGCA
+chr19 25062043 25062057 +V_HNF4_Q6_01 5.12243e-06 + AGAGCAAAGTGCAG
+chr19 25062085 25062100 -V_CP2_02 8.80423e-06 - GCTGGCTGGAGCAGG
+chr19 25065000 25065010 -V_PR_Q2 9.08563e-07 - GAGAGAACAG
+chr19 25065065 25065078 -V_FXR_IR1_Q6 7.35804e-06 - GGGAGAATAACCT
+chr19 25065098 25065110 -V_LMO2COM_01 2.05922e-06 - CCCCAGCTGCTG
+chr19 25065119 25065130 -V_RORA_Q4 2.9528e-06 - AAAGTGGGTCA
+chr19 25347850 25347872 -V_MEF2_02 9.62111e-07 - CACAGTGTTAAAAATAGCTCTG
+chr19 25347850 25347872 -V_MEF2_03 6.19856e-06 - CACAGTGTTAAAAATAGCTCTG
+chr19 25347851 25347867 -V_MEF2_01 2.22267e-06 - TGTTAAAAATAGCTCT
+chr19 25347853 25347865 +V_MEF2_Q6_01 6.78607e-07 + AGCTATTTTTAA
+chr19 25347889 25347902 -V_DMRT4_01 2.92761e-06 - AATGTTACAACTT
+chr19 25650101 25650115 -V_HNF4_Q6_01 4.332e-06 - GGAGCAGAGGCCAC
+chr19 25650206 25650234 -V_PAX5_02 7.27396e-06 - GAAATGTTGTACAAGGCGTGGCGACAGC
+chr19 27630450 27630462 +V_ELF1_Q6 3.39622e-06 + GAAAGAGGAAGA
+chr19 28242184 28242193 -V_RFX_Q6 3.30926e-06 - CTGTTGCCA
+chr19 28725534 28725544 -V_ESE1_Q3 8.80613e-06 - GGCTTCCTGT
+chr19 28725535 28725546 +V_FLI1_Q6 9.02891e-06 + CAGGAAGCCAC
+chr19 28725538 28725553 -V_ETS1_B 7.64126e-06 - AGAGGATGTGGCTTC
+chr19 28725540 28725552 +V_ETS_Q4 7.06097e-06 + AGCCACATCCTC
+chr19 29227244 29227260 -V_DMRT2_01 1.42163e-06 - GAGATAGATACAATGT
+chr19 29227266 29227282 +V_DMRT2_01 8.63243e-07 + TATTTAGATACATTGT
+chr19 29227267 29227282 +V_DMRT3_01 4.93902e-06 + ATTTAGATACATTGT
+chr19 29227270 29227285 +V_DMRT1_01 5.16865e-07 + TAGATACATTGTATC
+chr19 29227272 29227287 -V_DMRT1_01 6.88806e-07 - TAGATACAATGTATC
+chr19 29227275 29227291 -V_DMRT2_01 6.99666e-06 - AAGATAGATACAATGT
+chr19 29227326 29227344 +V_HNF3_Q6_01 4.00003e-06 + CTTCTTGTTTGCTTTGAC
+chr19 30103769 30103784 -V_OCT1_02 5.00859e-06 - GGGAATATTCAAAGA
+chr19 30329475 3032.4.5 +V_PU1_Q4 2.63808e-06 + AGGCCTGTCTTCCTCTTTC
+chr19 30329482 3032.4.5 -V_ELF1_Q6 3.39622e-06 - GAAAGAGGAAGA
+chr19 30329566 30329577 +V_EBF_Q6 1.89993e-06 + GTCCCCTGAGA
+chr19 30329575 30329590 -V_CP2_02 3.18594e-06 - GCTGGGTGGAGCCTC
+chr19 31996439 31996448 -V_SMAD_Q6 9.3359e-06 - AGACACCAC
+chr19 32092956 32092979 +V_COUPTF_Q6 6.88321e-07 + TAGTGTGACCTTTGCCCTTTCAA
+chr19 32092957 32092978 -V_PPARG_01 1.55728e-07 - TGAAAGGGCAAAGGTCACACT
+chr19 32092960 32092973 +V_HNF4ALPHA_Q6 4.2278e-07 + GTGACCTTTGCCC
+chr19 32092960 32092974 -V_HNF4_Q6_01 3.33633e-08 - AGGGCAAAGGTCAC
+chr19 32092961 32092974 +V_PPAR_DR1_Q2 9.96554e-08 + TGACCTTTGCCCT
+chr19 32092961 32092974 +V_HNF4_DR1_Q3 8.69767e-08 + TGACCTTTGCCCT
+chr19 32092961 32092974 +V_COUP_DR1_Q6 3.28001e-07 + TGACCTTTGCCCT
+chr19 32092961 32092974 -V_RXRLXRB_01 3.39229e-07 - AGGGCAAAGGTCA
+chr19 32092961 32092974 -V_DR1_Q3 9.73878e-08 - AGGGCAAAGGTCA
+chr19 32092961 32092975 +V_COUP_01 6.73205e-08 + TGACCTTTGCCCTT
+chr19 32092961 32092978 -V_PPARG_03 7.34378e-07 - TGAAAGGGCAAAGGTCA
+chr19 32269494 32269502 -V_CACD_01 9.89755e-06 - CCACACCC
+chr19 32269518 32269528 +V_SOX5_01 1.64093e-06 + TTAACAATAC
+chr19 32269549 32269563 -V_ERR1_Q2 4.94927e-06 - TCCTCGAGGTCAAA
+chr19 32269559 32269578 +V_GR_Q6 2.36045e-06 + AGGATTCCCAGTGTTCTTA
+chr19 32315207 32315216 -V_T3R_Q6 3.30926e-06 - CCTGTCCTT
+chr19 32330047 32330056 +V_AP1_C 7.33929e-06 + GTGAGTCAG
+chr19 34978756 34978770 +V_NFY_C 7.62778e-06 + TCTGATAGGTTAAT
+chr19 36473067 36473079 +V_LMO2COM_01 3.00307e-06 + CCGCAGCTGCAG
+chr19 36473196 36473206 +V_TAL1_Q6 4.87508e-06 + GCCAGCTGCC
+chr19 38138797 38138807 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr19 38138797 38138809 -V_PAX4_03 5.03061e-07 - AAGCCCCACCCC
+chr19 40537430 40537451 -V_PPARG_01 5.47701e-06 - GTTAGGCTCACAGGTCATGCT
+chr19 40537503 40537518 -V_SREBP_Q6 1.37849e-06 - CCCACCACCTCAGGG
+chr19 40537503 40537518 -V_SREBP1_Q5 8.44178e-06 - CCCACCACCTCAGGG
+chr19 40537510 40537524 -V_KROX_Q6 4.94478e-06 - GCCACCCCCACCAC
+chr19 40537513 40537524 +V_EGR_Q6 5.40581e-06 + GTGGGGGTGGC
+chr19 40537556 40537565 -V_CACBINDINGPROTEIN_Q6 6.29506e-06 - GAGGCTGGG
+chr19 40537592 40537610 +V_SRF_01 2.75771e-06 + ATAACCATATAAGGGAAA
+chr19 40537592 40537610 -V_SRF_01 9.2.4.5e-07 - TTTCCCTTATATGGTTAT
+chr19 40537592 40537611 -V_SRF_Q5_02 2.40174e-06 - TTTTCCCTTATATGGTTAT
+chr19 45363379 45363391 +V_LRH1_Q5 3.06315e-07 + CTGGCCTTGAAC
+chr19 45363379 45363393 +V_PAX6_Q2 8.3884e-07 + CTGGCCTTGAACTC
+chr19 45363384 45363395 +V_PAX_Q6 8.43097e-06 + CTTGAACTCAC
+chr19 53911363 53911380 -V_PU1_01 1.63037e-06 - GAAAACGGGAACTGGCT
+chr19 55222229 55222239 -V_IK_Q5 4.33614e-06 - GGTGGGAGGG
+chr19 55222274 55222282 -V_CACD_01 9.89755e-06 - CCACACCC
+chr19 55900033 55900044 +V_SMAD_Q6_01 1.69696e-06 + TGGGCAGACAC
+chr19 55900100 55900109 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr19 55900101 55900109 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr19 55900101 55900110 -V_CKROX_Q2 3.66459e-06 - GCCCTCCCC
+chr19 55900110 55900139 +V_MYOGNF1_01 3.05178e-07 + TGGCAGCCTCATTTGGCTTTCTGCCATCT
+chr19 57242828 57242841 -V_MAZR_01 4.08366e-06 - GGGGGAGGGGTCG
+chr19 57242829 57242842 -V_SP1_Q6 1.24491e-06 - AGGGGGAGGGGTC
+chr19 57242830 57242840 -V_SP1_Q6_01 9.74073e-06 - GGGGAGGGGT
+chr19 57242831 57242840 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr19 57242831 57242841 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr19 57242832 57242840 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr19 57242832 57242841 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr19 57242875 57242890 +V_DMRT3_01 5.47989e-06 + CGATGGATACATTGT
+chr19 57242878 57242892 +V_DMRT7_01 6.04797e-06 + TGGATACATTGTTT
+chr19 57242878 57242893 +V_DMRT1_01 4.22638e-08 + TGGATACATTGTTTC
+chr19 57242880 57242895 -V_DMRT1_01 6.06059e-07 - TGGAAACAATGTATC
+chr19 57242881 57242911 +V_PAX4_04 7.0256e-06 + ATACATTGTTTCCATTCCCCCCCCCCCCCC
+chr19 57242891 57242906 -V_SPZ1_01 2.99035e-06 - GGGGGGGGGAATGGA
+chr19 57242894 57242907 -V_MAZR_01 1.59255e-06 - GGGGGGGGGGAAT
+chr19 57242896 57242911 -V_VDR_Q3 5.07321e-06 - GGGGGGGGGGGGGGA
+chr19 57242897 57242906 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr19 57242897 57242908 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr19 57242897 57242911 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr19 57242898 57242907 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr19 57242898 57242909 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr19 57242898 57242912 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr19 57242899 57242908 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr19 57242899 57242910 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr19 57242899 57242913 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr19 57242900 57242909 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr19 57242900 57242911 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr19 57242900 57242914 +V_KROX_Q6 7.21197e-06 + CCCCCCCCCCCCCC
+chr19 57242901 57242910 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr19 57242901 57242912 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr19 57242902 57242911 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr19 57242902 57242913 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr19 57242903 57242912 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr19 57242903 57242914 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr19 57242904 57242913 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr19 57242904 57242915 +V_SP1SP3_Q4 3.76147e-06 + CCCCCCCCCCA
+chr19 57242905 57242914 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr19 57242920 57242944 -V_COMP1_01 5.04326e-06 - TGTAGGCATTGGCTACAACCCGGG
+chr19 57242972 57242985 -V_FXR_IR1_Q6 9.14095e-06 - AGGTGAATGCCCT
+chr19 57291784 57291799 +V_DMRT1_01 4.26013e-07 + TAGATACAATGTAGC
+chr19 57291786 57291801 -V_DMRT1_01 4.79884e-08 - TTGCTACATTGTATC
+chr19 57291787 57291801 -V_DMRT7_01 6.47571e-06 - TTGCTACATTGTAT
+chr19 57291789 57291804 -V_DMRT3_01 3.15338e-06 - GGATTGCTACATTGT
+chr19 57291789 57291805 -V_DMRT2_01 2.23447e-06 - AGGATTGCTACATTGT
+chr19 57291807 57291815 -V_CACD_01 9.89755e-06 - CCACACCC
+chr19 57291856 57291879 -V_COUPTF_Q6 8.52398e-06 - CCCCCTGGCCTTTGAGGAAGGCC
+chr19 58268686 58268699 +V_IRF1_01 1.17272e-06 + GAAAAGCGAAAGG
+chr19 58268686 58268699 +V_IRF2_01 2.01573e-07 + GAAAAGCGAAAGG
+chr19 58268707 58268722 +V_OCT4_01 3.04012e-06 + TATTCTCATGTAAAG
+chr19 58268746 58268757 -V_EBF_Q6 4.00905e-06 - CTCCCCAGGGA
+chr19 58518255 58518270 +V_CP2_02 9.32088e-06 + ACTGGGTCCTGCTGC
+chr19 59494473 59494491 -V_CDX_Q5 4.91219e-06 - GATAAACAAAGTCGTAAG
+chr19 59494556 59494574 -V_SRF_Q4 2.31342e-06 - GCCACAAAAGGCCATGGA
+chr19 59494558 59494573 -V_SRF_Q5_01 4.73512e-06 - CCACAAAAGGCCATG
+chr19 59494558 59494577 +V_SRF_Q5_02 9.77927e-07 + CATGGCCTTTTGTGGCCAG
+chr19 59494586 59494596 +V_TAL1_Q6 4.87508e-06 + TCCAGCTGGT
+chr19 60265281 60265300 -V_NRSF_Q4 8.64281e-06 - ACACTGTCCAGGGGGCTGC
+chr2.4.52993 4143007 +V_OCT1_05 2.08366e-06 + CTAATTAGCATTTT
+chr2.4.53039 4143052 +V_OCT_C 4.05866e-06 + CTCATTAGCATAG
+chr2 4518279 4518287 -V_CACD_01 9.89755e-06 - CCACACCC
+chr2 4518358 4518373 +V_IRF_Q6 2.9879e-06 + TAGACTTTCACTTTT
+chr2 4518360 4518374 -V_BLIMP1_Q6 2.72511e-06 - AAAAAGTGAAAGTC
+chr2 4518361 4518374 -V_IRF2_01 5.64882e-06 - AAAAAGTGAAAGT
+chr2 4518362 4518373 -V_IRF_Q6_01 9.77502e-07 - AAAAGTGAAAG
+chr2 6094315 6094326 +V_SMAD_Q6_01 6.47055e-06 + TGGCCAGACTC
+chr2 6094346 6094361 -V_TATA_01 9.83763e-06 - CTATAAAAGTGCCTG
+chr2 6094352 6094362 -V_TATA_C 5.97675e-06 - GCTATAAAAG
+chr2 6173488 6173501 -V_CEBP_01 3.27631e-07 - TGTGTGGAAAGGC
+chr2 6380402 6380414 -V_HNF6_Q6 8.1906e-06 - CAAAGTCAATGA
+chr2 6380410 6380424 +V_MTF1_Q4 9.78336e-06 + TTTGCAGCCAGCCC
+chr2 6380441 6380459 +V_MYOD_Q6_01 3.73988e-06 + CCAGGGCAGCTGACGCAG
+chr2 6380478 6380492 -V_KROX_Q6 1.32522e-07 - CCCGCCCCCGCATC
+chr2 6380479 6380491 +V_EGR1_01 3.9416e-07 + ATGCGGGGGCGG
+chr2 6380480 6380491 -V_SP1SP3_Q4 5.39613e-06 - CCGCCCCCGCA
+chr2 6380481 6380492 +V_EGR_Q6 1.78186e-06 + GCGGGGGCGGG
+chr2 6380482 6380495 +V_SP1_Q6 1.6527e-07 + CGGGGGCGGGGTG
+chr2 6380483 6380493 -V_SP1_Q2_01 3.39206e-07 - CCCCGCCCCC
+chr2 6380484 6380493 -V_CKROX_Q2 6.67377e-06 - CCCCGCCCC
+chr2 6380484 6380494 +V_SP1_Q6_01 1.0915e-06 + GGGGCGGGGT
+chr2 6380485 6380500 -V_SREBP1_Q5 8.44178e-06 - CCCCTCACCCCGCCC
+chr2 6380490 6380505 +V_VDR_Q3 4.22722e-06 + GGGTGAGGGGGTTCC
+chr2 9626335 9626350 -V_DMRT1_01 4.26013e-07 - TGGTTACATTGTATC
+chr2 9626336 9626350 -V_DMRT7_01 6.91627e-06 - TGGTTACATTGTAT
+chr2 9626366 9626381 +V_DMRT1_01 1.79174e-06 + TGGATACAATGTAAC
+chr2 9626368 9626383 -V_DMRT1_01 4.26013e-07 - TGGTTACATTGTATC
+chr2 9626369 9626383 -V_DMRT7_01 6.91627e-06 - TGGTTACATTGTAT
+chr2 9626399 962.4.5 +V_DMRT1_01 4.43941e-06 + TAGATACAATGTAAC
+chr2 9626401 9626416 -V_DMRT1_01 4.26013e-07 - TGGTTACATTGTATC
+chr2 9626402 9626416 -V_DMRT7_01 6.91627e-06 - TGGTTACATTGTAT
+chr2 13126527 13126538 -V_SP1SP3_Q4 8.91927e-06 - CCCCCCCCCGT
+chr2 13126528 13126539 -V_SP1SP3_Q4 6.44809e-06 - CCCCCCCCCCG
+chr2 13126529 13126538 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr2 13126529 13126540 -V_SP1SP3_Q4 3.39206e-07 - CCCCCCCCCCC
+chr2 13126529 13126544 +V_VDR_Q3 6.38003e-06 + GGGGGGGGGGGGGCA
+chr2 13126530 13126539 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr2 13126530 13126541 -V_SP1SP3_Q4 3.39206e-07 - CCCCCCCCCCC
+chr2 13126531 13126540 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr2 13126531 13126542 -V_SP1SP3_Q4 3.39206e-07 - CCCCCCCCCCC
+chr2 13126531 13126544 +V_MAZR_01 7.66218e-06 + GGGGGGGGGGGCA
+chr2 13126532 13126541 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr2 13126532 13126543 -V_SP1SP3_Q4 7.59003e-06 - GCCCCCCCCCC
+chr2 13126532 13126545 +V_MAZR_01 1.26741e-07 + GGGGGGGGGGCAC
+chr2 13126532 13126546 -V_KROX_Q6 8.74919e-06 - TGTGCCCCCCCCCC
+chr2 13126533 13126542 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr2 13126573 13126588 +V_STAT5A_01 1.0127e-06 + GATTTCCAGGAATCA
+chr2 13126573 13126588 +V_STAT5B_01 1.57551e-06 + GATTTCCAGGAATCA
+chr2 13126573 13126588 -V_STAT5A_01 7.66712e-07 - TGATTCCTGGAAATC
+chr2 13126573 13126588 -V_STAT5B_01 7.70266e-07 - TGATTCCTGGAAATC
+chr2 13126588 13126599 -V_MAF_Q6_01 4.06732e-06 - TGTTGAGTCAG
+chr2 13138540 13138551 +V_TGIF_01 2.62257e-06 + AGCTGTCAAAA
+chr2 17525365 17525380 +V_OCT4_01 4.28625e-06 + TTTTATAATGCAAAG
+chr2 17525377 17525393 +V_MAF_Q6 6.87271e-06 + AAGAAGGGAGTGTGCT
+chr2 17525465 17525483 -V_HNF3_Q6_01 2.28386e-06 - GTTTTTGTTTGTTTTCTC
+chr2 17525468 17525481 -V_FOX_Q2 1.93154e-06 - TTTTGTTTGTTTT
+chr2 17525468 17525481 -V_HFH4_01 3.17054e-06 - TTTTGTTTGTTTT
+chr2 17525469 17525481 -V_FOXD3_01 9.53633e-06 - TTTTGTTTGTTT
+chr2 17910891 17910907 +V_NFKB_Q6_01 1.9877e-07 + GCCTGGGAAAATCCCA
+chr2 17910894 17910908 -V_NFKB_Q6 8.01393e-06 - ATGGGATTTTCCCA
+chr2 17910895 17910907 -V_NFKB_C 3.77632e-06 - TGGGATTTTCCC
+chr2 17910896 17910906 -V_NFKAPPAB65_01 9.69629e-06 - GGGATTTTCC
+chr2 17910896 17910906 -V_NFKAPPAB_01 9.4096e-06 - GGGATTTTCC
+chr2 17910910 17910924 +V_ETS2_B 8.89838e-07 + TACAGGAAGTCTGT
+chr2 18236282 18236293 +V_HELIOSA_02 8.07231e-06 + TCAAGGAAAAC
+chr2 18236351 18236381 -V_PAX4_04 6.10305e-07 - AAAAAAAAAACAAAAACCTGACCTGACACT
+chr2 18236367 18236376 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr2 18236368 18236388 +V_FOXP1_01 1.26832e-06 + TTGTTTTTTTTTTCTTTTTT
+chr2 18293746 18293764 -V_HNF3_Q6_01 2.03155e-06 - TTGTTTGTTTGTTCATTT
+chr2 18293748 18293761 +V_HNF3_Q6 1.80471e-06 + ATGAACAAACAAA
+chr2 18293750 18293762 -V_FOXD3_01 3.58476e-06 - GTTTGTTTGTTC
+chr2 18293752 18293765 +V_HNF3_Q6 8.74112e-06 + ACAAACAAACAAA
+chr2 18293753 18293766 -V_HFH4_01 5.28594e-06 - TTTTGTTTGTTTG
+chr2 18293754 18293766 -V_FOXD3_01 9.53633e-06 - TTTTGTTTGTTT
+chr2 18293812 18293828 -V_HAND1E47_01 3.36416e-06 - TATTGGGTCTGGATTC
+chr2 19314696 19314710 -V_KROX_Q6 4.02412e-06 - TCAGCCCCCACTCC
+chr2 19524467 1952.4.5 -V_PPARG_03 5.76105e-06 - AACTGGGATAAAATTCA
+chr2 19856618 19856629 -V_IRF_Q6_01 8.39845e-06 - GAAAGGGAAAG
+chr2 19856729 19856744 +V_DMRT5_01 5.79033e-06 + TACTGTTACATTGTA
+chr2 19856731 19856746 +V_DMRT1_01 7.56504e-06 + CTGTTACATTGTACC
+chr2 20131193 20131207 +V_KROX_Q6 6.53311e-06 + CCCACCCACACCCA
+chr2 20131198 20131206 +V_CACD_01 9.89755e-06 + CCACACCC
+chr2 20131225 20131236 +V_NFY_Q6 9.1733e-06 + GGACCAATCAC
+chr2 21314456 21314475 +V_NRSF_Q4 8.90289e-06 + TCAGTCTCCATACTGCTGA
+chr2 21314586 21314601 +V_OCT4_02 6.55103e-06 + ATTGTGTTGTAGATG
+chr2 21966716 21966729 -V_SOX_Q6 5.73528e-06 - TTCATTGTTATGA
+chr2 21966851 21966866 +V_OCT4_02 1.37411e-06 + ATTCACTTGCAAATT
+chr2 25024226 25024237 +V_GATA_C 9.83488e-06 + AGATAAGAACT
+chr2 25024325 25024340 -V_VDR_Q3 7.16583e-06 - GAGGGAGGGGGGAGG
+chr2 25024334 25024343 +V_CKROX_Q2 8.90515e-06 + TCCCTCCCC
+chr2 25024335 25024343 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr2 25024339 25024348 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr2 25024339 25024349 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr2 25024340 25024348 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr2 25024340 25024349 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr2 25024340 25024354 +V_KROX_Q6 2.61668e-06 + CCCTCCCCCACACC
+chr2 25911038 25911048 -V_NUR77_Q5 8.43564e-06 - CTGACCTTTG
+chr2 26198705 26198715 -V_NUR77_Q5 2.98426e-06 - CTGACCTTGC
+chr2 26198713 26198726 -V_AP2_Q6_01 9.50631e-07 - CGGTCCCCAGGCT
+chr2 26198782 26198797 -V_OCT4_02 8.50894e-06 - ATTCTGATGTTAATA
+chr2 2.4.5257 2.4.5270 +V_ZEC_01 8.71102e-06 + CTGGCTTGGTTGC
+chr2 2.4.5282 2.4.5295 -V_SP1_Q6 2.76363e-06 - TCTGGGCGGGGCC
+chr2 2.4.5283 2.4.5293 -V_SP1_Q6_01 1.50459e-06 - TGGGCGGGGC
+chr2 2.4.5284 2.4.5294 +V_SP1_Q2_01 6.40385e-06 + CCCCGCCCAG
+chr2 27252309 27252319 -V_KAISO_01 9.08563e-07 - TTCCTGCTAG
+chr2 27252380 27252389 +V_AP2ALPHA_01 9.68294e-06 + GCCCGAGGG
+chr2 27252380 27252389 +V_AP2GAMMA_01 7.85065e-06 + GCCCGAGGG
+chr2 27500432 27500456 +V_BRACH_01 8.98588e-06 + AGAGAGAAAACTAGGAGTGACAAT
+chr2 27500468 27500482 +V_NFKB_Q6 6.0589e-07 + AGGGGAATTTCCAT
+chr2 27500469 27500481 +V_NFKB_C 4.31069e-07 + GGGGAATTTCCA
+chr2 27500469 27500485 -V_NFKB_Q6_01 1.19645e-06 - GAAATGGAAATTCCCC
+chr2 27500470 27500480 +V_NFKAPPAB65_01 9.08563e-07 + GGGAATTTCC
+chr2 27500470 27500480 +V_CREL_01 7.08941e-06 + GGGAATTTCC
+chr2 27500470 27500480 +V_NFKAPPAB_01 1.65463e-06 + GGGAATTTCC
+chr2 27500544 27500563 -V_GR_Q6 4.06623e-06 - TGGCTTGCCTGTGTCCTAC
+chr2 27752853 27752866 +V_MAZR_01 5.14471e-06 + TGGGGAGGGGCAG
+chr2 27752854 27752862 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr2 27752854 27752863 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr2 27752854 27752864 +V_SP1_Q6_01 2.74385e-06 + GGGGAGGGGC
+chr2 27752892 27752901 +V_T3R_Q6 8.74404e-06 + CCTGTCCTC
+chr2 27752973 27752987 -V_MTF1_Q4 4.47259e-06 - TTTGCAATCGGCCC
+chr2 28931290 28931301 -V_NFE2_01 9.17794e-06 - AGCTGAGGCAC
+chr2 28931310 28931323 +V_HNF4ALPHA_Q6 6.68176e-06 + CTGAGCTTTGCAT
+chr2 28931395 28931415 +V_FOXP1_01 2.13015e-06 + TTTTTTTTTTTTTTTTTTTT
+chr2 28931396 28931416 +V_FOXP1_01 2.13015e-06 + TTTTTTTTTTTTTTTTTTTT
+chr2 28931397 28931417 +V_FOXP1_01 2.13015e-06 + TTTTTTTTTTTTTTTTTTTT
+chr2 28931399 28931419 +V_FOXP1_01 9.49635e-06 + TTTTTTTTTTTTTTTTTTGT
+chr2 28953707 28953722 +V_OCT4_02 1.18248e-06 + ATTGACTTGCTAAAA
+chr2 29007711 29007726 -V_OCT4_02 3.02765e-06 - ATTGTTATGTTAATG
+chr2 29007712 29007722 -V_POU3F2_02 1.99833e-06 - TTATGTTAAT
+chr2 29007712 29007727 -V_OCT4_01 9.436e-07 - TATTGTTATGTTAAT
+chr2 29007718 29007732 +V_FOXJ2_02 9.77296e-06 + ATAACAATATTGAT
+chr2 29356677 29356692 -V_OCT4_02 4.9622e-06 - ATTCTCATTATAATG
+chr2 29356779 29356792 -V_IK1_01 4.01069e-06 - ACGTGGGAATGCT
+chr2 29356784 29356796 +V_NMYC_01 2.84492e-07 + TCCCACGTGCCA
+chr2 29356786 29356794 +V_USF_C 9.89755e-06 + CCACGTGC
+chr2 29585099 29585110 -V_NFY_Q6 7.17826e-06 - GAGCCAATCAC
+chr2 29585100 29585113 -V_NFY_Q6_01 5.96025e-06 - AATGAGCCAATCA
+chr2 29585110 29585120 -V_POU1F1_Q6 1.99833e-06 - ATGAATAAAT
+chr2 29585179 29585190 -V_EBF_Q6 2.28749e-06 - CTCCCCTGGGA
+chr2 29691279 29691294 +V_OCT4_02 7.51249e-06 + ATTCACTTGTAAATG
+chr2 30190995 30191009 +V_NFY_C 9.88528e-06 + TCTGATGGGTTAAC
+chr2 30191017 30191029 +V_GLI_Q2 1.40827e-06 + CCTGGGAGGTCC
+chr2 30191038 30191053 +V_OCT4_01 9.65557e-06 + TTTTTTAATGGAAAT
+chr2 30191098 30191110 +V_AP1_Q2_01 4.21731e-06 + TGACTCAAAGTG
+chr2 30191117 30191127 -V_SP1_Q2_01 9.56538e-06 - CCCCACCCCT
+chr2 30191118 30191148 -V_PAX4_04 1.47136e-06 - AGTTAACACCCCTCCCAGCCTCCCCACCCC
+chr2 30492395 30492411 -V_AP2_Q3 3.22678e-06 - GCCCCAGGGCTGGGGA
+chr2 30717733 30717741 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr2 30717817 30717840 +V_COUPTF_Q6 4.16159e-06 + GGGGCTGACCTGTAACCTCAGCA
+chr2 30717821 30717835 +V_PAX6_Q2 3.04054e-06 + CTGACCTGTAACCT
+chr2 30717822 30717835 -V_RXRLXRB_01 1.64968e-06 - AGGTTACAGGTCA
+chr2 30717864 30717882 +V_GCNF_01 1.25223e-07 + GAGAAGTTCAAGGTCATC
+chr2 30717867 30717881 -V_PAX6_Q2 2.80439e-06 - ATGACCTTGAACTT
+chr2 30717868 30717882 +V_ERR1_Q2 2.07148e-06 + AGTTCAAGGTCATC
+chr2 30717869 30717881 -V_LRH1_Q5 3.77826e-06 - ATGACCTTGAAC
+chr2 30717870 30717893 +V_PPARG_02 5.6331e-06 + TTCAAGGTCATCTTCAGCTACAT
+chr2 30717870 30717893 -V_PPARG_02 2.01575e-06 - ATGTAGCTGAAGATGACCTTGAA
+chr2 30717871 30717880 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr2 30924243 30924263 -V_FOXP1_01 6.91049e-06 - TGTTTTGGGTTTTTTTGTTT
+chr2 30924303 30924318 +V_OCT4_02 1.37411e-06 + ATTCACTTGCTAAAC
+chr2 30924320 30924334 -V_CDX2_Q5 9.18428e-06 - AGCCTTTTATAGCC
+chr2 30924321 30924331 +V_TATA_C 5.97675e-06 + GCTATAAAAG
+chr2 31293559 31293573 -V_MTF1_Q4 6.56269e-06 - TCTGCACTCGGAAG
+chr2 31811317 31811332 -V_SREBP1_Q5 9.31948e-06 - CCCGCCACTCCAGCC
+chr2 31811381 31811394 +V_ZEC_01 8.56162e-06 + CTAGGGTGGTGGC
+chr2 31811433 31811447 -V_E2A_Q2 6.24606e-06 - CCACCTGTTACTGA
+chr2 31811545 31811557 +V_GLI_Q2 5.13911e-06 + TGTGGGTGGACC
+chr2 31811576 31811584 -V_CACD_01 9.89755e-06 - CCACACCC
+chr2 31811585 31811598 +V_SP1_Q6 5.65055e-06 + TGAGGGCGGGGTT
+chr2 31811586 31811596 -V_SP1_Q2_01 2.74385e-06 - CCCCGCCCTC
+chr2 31811587 31811597 +V_SP1_Q6_01 8.48538e-06 + AGGGCGGGGT
+chr2 33316698 33316717 -V_PU1_Q4 2.29683e-06 - CCCAGTCTCTTCCTCCTTC
+chr2 33316713 33316726 +V_SP1_Q6 7.54104e-06 + TGGGGGTGGGGTG
+chr2 33316714 33316723 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr2 33316714 33316724 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr2 33316716 33316731 -V_SREBP_Q6 4.69758e-06 - CTCCCCACCCCACCC
+chr2 33316716 33316731 -V_SREBP1_Q5 7.63808e-06 - CTCCCCACCCCACCC
+chr2 33316728 33316738 +V_PR_Q2 7.23e-06 + GAGAGGACAG
+chr2 33316730 33316739 -V_T3R_Q6 8.74404e-06 - CCTGTCCTC
+chr2 33316749 33316758 +V_CACBINDINGPROTEIN_Q6 2.23138e-06 + GAGGGTGGG
+chr2 33316789 33316799 -V_SP1_Q2_01 9.56538e-06 - CCCCACCCCT
+chr2 33450437 33450446 +V_CACBINDINGPROTEIN_Q6 2.23138e-06 + GAGGGTGGG
+chr2 33450511 33450528 +V_PPARG_03 1.72743e-07 + TAGTGGGGCAGAGGTCA
+chr2 33450515 33450528 +V_DR1_Q3 5.73781e-07 + GGGGCAGAGGTCA
+chr2 33450515 33450528 -V_PPAR_DR1_Q2 2.30569e-07 - TGACCTCTGCCCC
+chr2 33450515 33450528 -V_HNF4_DR1_Q3 1.2.4.5e-06 - TGACCTCTGCCCC
+chr2 33450515 33450528 -V_COUP_DR1_Q6 6.12107e-07 - TGACCTCTGCCCC
+chr2 33450515 33450529 +V_HNF4_Q6_01 4.62711e-07 + GGGGCAGAGGTCAC
+chr2 33450529 33450543 -V_E2A_Q2 8.03505e-06 - ACACCTGGCCCAGT
+chr2 33450541 33450553 +V_PAX4_03 3.63034e-06 + GTCCCCCACCCC
+chr2 33450544 33450554 +V_SP1_Q2_01 8.14617e-06 + CCCCACCCCG
+chr2 34426113 34426129 +V_NFKB_Q6_01 7.12923e-06 + GGCCTGGAGACTCCCT
+chr2 35276341 35276352 -V_EVI1_02 4.94338e-06 - TGACAAGATAG
+chr2 35276341 35276352 -V_EVI1_05 6.50785e-06 - TGACAAGATAG
+chr2 38342120 38342136 +V_MAF_Q6 9.01376e-06 + ATGAGGGGAGTTGGCA
+chr2 38342224 38342235 -V_LEF1TCF1_Q4 1.86451e-06 - CCTTTGTTGTT
+chr2 38342226 38342236 +V_LEF1_Q2_01 9.48141e-06 + CAACAAAGGG
+chr2 38342263 38342280 -V_HSF1_Q6 2.12976e-06 - TTTCTGGGAATTTCTGG
+chr2 38342266 38342279 -V_IK3_01 9.28085e-06 - TTCTGGGAATTTC
+chr2 38342267 38342282 +V_STAT5A_01 4.26697e-06 + AAATTCCCAGAAATC
+chr2 38342267 38342282 +V_STAT5B_01 4.0278e-06 + AAATTCCCAGAAATC
+chr2 38342267 38342282 -V_STAT5A_01 1.28122e-06 - GATTTCTGGGAATTT
+chr2 38342267 38342282 -V_STAT5B_01 1.77164e-07 - GATTTCTGGGAATTT
+chr2 38378013 38378023 +V_EBOX_Q6_01 7.18016e-06 + CCACCTGACT
+chr2 38378079 38378088 +V_T3R_Q6 8.74404e-06 + CCTGTCCTG
+chr2 38378088 38378098 +V_ESE1_Q3 5.33438e-06 + AGTTTCCTGA
+chr2 38524482 38524495 -V_SP1_Q6 1.24491e-06 - GAGGGGCGGGGCA
+chr2 38524483 38524493 -V_SP1_Q6_01 3.39206e-07 - GGGGCGGGGC
+chr2 3852.4.5 38524493 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr2 3852.4.5 3852.4.5 +V_SP1_Q2_01 1.0915e-06 + CCCCGCCCCT
+chr2 38524487 38524500 -V_SP1_Q6 2.76363e-06 - GGTGGGAGGGGCG
+chr2 38524489 38524499 +V_SP1_Q2_01 9.56538e-06 + CCCCTCCCAC
+chr2 38524490 38524500 -V_IK_Q5 4.33614e-06 - GGTGGGAGGG
+chr2 38524616 38524632 -V_DMRT2_01 5.71485e-06 - CATATTGCTACCTTGA
+chr2 43221466 43221478 +V_TTF1_Q6 1.93572e-06 + CCCTCAAGAGAC
+chr2 43221498 43221513 -V_OCT4_02 1.90479e-06 - ATTCTCATGGAAATG
+chr2 43221499 43221514 -V_OCT4_01 3.26181e-06 - AATTCTCATGGAAAT
+chr2 44359938 44359952 -V_KROX_Q6 1.18892e-06 - CCAGCCCCCACACC
+chr2 44359941 44359952 +V_EGR_Q6 6.55683e-06 + GTGGGGGCTGG
+chr2 44359944 44359953 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr2 44359984 44359996 -V_ETS_Q4 7.06097e-06 - AGCTACTTCCTC
+chr2 44360015 44360028 -V_AP1_01 8.76324e-06 - GGATGTGTCAGCA
+chr2 45592003 45592015 -V_OCT1_07 6.27936e-06 - GTTATGTTAATT
+chr2 45592003 45592018 -V_OCT4_02 9.10747e-06 - ATTGTTATGTTAATT
+chr2 45592004 45592014 -V_POU3F2_02 1.99833e-06 - TTATGTTAAT
+chr2 45592004 45592019 -V_OCT4_01 7.49108e-07 - CATTGTTATGTTAAT
+chr2 45592008 45592021 -V_SOX_Q6 2.73292e-06 - CTCATTGTTATGT
+chr2 45592034 45592049 +V_OCT1_Q6 8.77396e-06 + AGACATGCAAATAGG
+chr2 50769219 50769230 -V_TGIF_01 5.10679e-06 - AGCTGTCAGCA
+chr2 50904836 50904848 -V_ICSBP_Q6 4.57675e-06 - AAAATGAAACCA
+chr2 50904949 50904962 +V_COUP_DR1_Q6 8.22308e-06 + TGACCTTTGTGAC
+chr2 51609170 51609183 -V_IRF1_01 9.83295e-06 - GAAAACTCAAACC
+chr2 52241758 52241773 -V_CP2_02 2.27143e-06 - TCTGGGTCCGGCTGG
+chr2 52241776 52241795 -V_PU1_Q4 6.58035e-06 - CGCCCTCCCTTCCCCATCC
+chr2 52241796 52241810 -V_FOXO1_02 9.97629e-06 - AGCTTGTTTACACC
+chr2 52241798 52241810 +V_FOXO3A_Q1 5.66203e-06 + TGTAAACAAGCT
+chr2 52241799 52241810 +V_FOXO4_01 5.04013e-06 + GTAAACAAGCT
+chr2 52559516 52559530 +V_STAT3STAT3_Q3 5.95016e-06 + TTGAAGGGAAACCC
+chr2 52559542 52559557 -V_OCT4_02 5.69461e-06 - ATTCTCATGGTGATG
+chr2 52559630 52559660 -V_PAX4_04 4.24941e-06 - CAACAAAACCACACCTACTAGTACCACTCC
+chr2 57108947 57108962 -V_OCT4_02 3.74554e-06 - TTTGTGTTTCAAAAG
+chr2 57108991 57109010 +V_PU1_Q4 6.58035e-06 + TCCACTGACTTCCTGTCTC
+chr2 57108992 57109007 -V_ETS1_B 6.33731e-07 - ACAGGAAGTCAGTGG
+chr2 57108994 57109006 +V_ETS_Q4 9.46272e-06 + ACTGACTTCCTG
+chr2 57108994 57109008 -V_ETS2_B 1.18015e-07 - GACAGGAAGTCAGT
+chr2 57108995 57109006 -V_FLI1_Q6 2.65254e-06 - CAGGAAGTCAG
+chr2 57109058 57109069 -V_E12_Q6 3.65339e-06 - GACAGGTGCCA
+chr2 57109059 57109069 +V_MYOD_Q6 5.43478e-06 + GGCACCTGTC
+chr2 57724223 57724237 +V_FOXO3_01 7.44178e-06 + TCCTTGTTGACATT
+chr2 57724239 57724255 +V_NFKB_Q6_01 1.88211e-06 + TCAGTGGGAATTCCCA
+chr2 57724240 57724253 +V_IK1_01 8.16025e-06 + CAGTGGGAATTCC
+chr2 57724242 57724256 +V_NFKB_Q6 6.66476e-06 + GTGGGAATTCCCAA
+chr2 57724242 57724256 -V_NFKB_Q6 5.15179e-06 - TTGGGAATTCCCAC
+chr2 57724243 57724255 +V_NFKB_C 4.19055e-06 + TGGGAATTCCCA
+chr2 57724243 57724255 -V_NFKB_C 4.19055e-06 - TGGGAATTCCCA
+chr2 57724243 57724259 -V_NFKB_Q6_01 7.04469e-07 - GCCTTGGGAATTCCCA
+chr2 57724244 57724254 +V_NFKAPPAB65_01 7.87917e-06 + GGGAATTCCC
+chr2 57724244 57724254 +V_NFKAPPAB_01 7.46065e-07 + GGGAATTCCC
+chr2 57724244 57724254 -V_NFKAPPAB65_01 7.87917e-06 - GGGAATTCCC
+chr2 57724244 57724254 -V_NFKAPPAB_01 7.46065e-07 - GGGAATTCCC
+chr2 57724245 57724258 -V_IK1_01 1.89225e-06 - CCTTGGGAATTCC
+chr2 57724296 57724304 -V_CACD_01 9.89755e-06 - CCACACCC
+chr2 57724318 57724330 -V_FOXO3A_Q1 2.54447e-06 - TGAAAACAAGTT
+chr2 58564153 58564164 -V_ER_Q6_02 5.98444e-06 - CAGGTCACAGC
+chr2 58564258 58564268 +V_TAL1_Q6 3.01332e-06 + TCCATCTGCC
+chr2 59563391 59563401 +V_NKX22_01 1.34745e-06 + TTAAGTGGTT
+chr2 59563419 59563433 +V_STAT3STAT3_Q3 6.11235e-06 + ATGCTGGGAACTGC
+chr2 59563493 59563503 +V_TITF1_Q3 3.36246e-06 + ACTCAAGTAT
+chr2 59668342 59668354 +V_ETS_Q4 7.92948e-06 + TGCTACTTCCTG
+chr2 60333389 60333404 -V_DMRT3_01 6.71672e-06 - ATTTTGTTACAAAAT
+chr2 60457938 60457951 -V_STAT_Q6 8.60737e-06 - GTCTTTTCTGGGG
+chr2 63837957 63837968 +V_AP1_Q4 2.788e-06 + AGTGACTCACT
+chr2 63838070 63838084 -V_FXR_Q3 6.85764e-06 - CAGTGTGAGTAACC
+chr2 65259606 65259615 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr2 65259888 65259899 +V_AP1FJ_Q2 1.36855e-06 + GGTGACTCAGC
+chr2 65259888 65259899 +V_AP1_Q6 5.77866e-07 + GGTGACTCAGC
+chr2 65259888 65259899 +V_AP1_Q4 2.788e-06 + GGTGACTCAGC
+chr2 65259888 65259901 -V_NRF2_Q4 2.95916e-07 - CTGCTGAGTCACC
+chr2 65259889 65259900 -V_NFE2_01 2.04834e-07 - TGCTGAGTCAC
+chr2 65259889 65259900 -V_MAF_Q6_01 4.72643e-06 - TGCTGAGTCAC
+chr2 65259996 65260007 -V_OCT1_Q5_01 7.81079e-06 - TAATTTACATA
+chr2 68886058 68886075 +V_PPARG_03 7.84978e-06 + TTCTAGGCTAAGGGTGA
+chr2 68886068 68886090 +V_MEF2_04 3.7739e-06 + AGGGTGACTTGAAATAGAACTC
+chr2 70116779 70116793 +V_ETS2_B 6.72567e-06 + GGCAGGAAGCAGGA
+chr2 71225996 71226005 -V_AP2ALPHA_01 9.68294e-06 - GCCCGAGGC
+chr2 71226003 71226021 +V_MYOD_Q6_01 7.30593e-06 + GCCAGACAGGTGGCCAGA
+chr2 71226007 71226017 -V_MYOD_Q6 5.43478e-06 - GCCACCTGTC
+chr2 71226007 71226018 +V_E12_Q6 4.37943e-06 + GACAGGTGGCC
+chr2 71226013 71226024 +V_SMAD_Q6_01 3.73033e-07 + TGGCCAGACAG
+chr2 71226015 71226033 +V_MYOD_Q6_01 7.54855e-07 + GCCAGACAGGTGGCGGGC
+chr2 71226018 71226030 +V_MYOD_01 1.48949e-06 + AGACAGGTGGCG
+chr2 71226019 71226029 -V_MYOD_Q6 5.43478e-06 - GCCACCTGTC
+chr2 71226019 71226030 +V_E12_Q6 1.70208e-06 + GACAGGTGGCG
+chr2 71226022 71226037 -V_SMAD4_Q6 6.67979e-06 - GCCGGCCCGCCACCT
+chr2 71226048 71226058 -V_P53_DECAMER_Q2 2.10476e-06 - AGGCAAGTCC
+chr2 71226048 71226068 +V_P53_01 9.02648e-07 + GGACTTGCCTGGACTTGCCC
+chr2 71226048 71226068 -V_P53_01 5.708e-07 - GGGCAAGTCCAGGCAAGTCC
+chr2 71226058 71226068 -V_P53_DECAMER_Q2 6.84641e-06 - GGGCAAGTCC
+chr2 71565138 71565147 -V_HNF4_Q6 7.33929e-06 - AAGGTCCAA
+chr2 71565387 71565406 -V_PPARA_02 5.21998e-06 - TCAGGTCATTTAGGTTGGC
+chr2 71565406 71565415 -V_SMAD_Q6 9.3359e-06 - AGACACCCT
+chr2 71857055 71857070 +V_OCT4_01 6.02107e-06 + CATTCAAATGCTAAA
+chr2 72353899 72353914 -V_OCT4_01 1.09956e-06 - CATTGAAATGGAAAT
+chr2 72584637 72584649 -V_PBX_Q3 4.79292e-06 - GATTGAAGGCTG
+chr2 72617503 72617513 -V_EBOX_Q6_01 6.43409e-06 - CCACCTGGCC
+chr2 72617521 72617537 -V_NFY_01 6.75944e-07 - GGCAGCCAATCAGAAA
+chr2 72617523 72617537 +V_NFY_C 5.20945e-07 + TCTGATTGGCTGCC
+chr2 72617524 72617535 -V_ALPHACP1_01 5.77866e-07 - CAGCCAATCAG
+chr2 72617572 72617582 -V_P53_DECAMER_Q2 6.84641e-06 - GGGCAAGTCC
+chr2 72843846 72843860 -V_MEIS1AHOXA9_01 6.99292e-06 - TGACAGGTTTTAAA
+chr2 72843852 72843863 +V_TGIF_01 5.10679e-06 + ACCTGTCAGAA
+chr2 72843927 72843937 -V_ESE1_Q3 2.21291e-06 - TGTTTCCTGT
+chr2 75372526 75372539 -V_ZEC_01 6.34943e-07 - CAAGCTGGGTTGC
+chr2 75376347 75376366 +V_OCT1_01 7.53757e-06 + ATTTCTATGCAAATTTGTG
+chr2 75376350 75376362 +V_OCT1_07 2.0591e-06 + TCTATGCAAATT
+chr2 75376352 75376362 +V_OCT1_B 7.0832e-06 + TATGCAAATT
+chr2 75376352 75376363 -V_OCT_Q6 7.92146e-06 - AAATTTGCATA
+chr2 75663862 75663882 -V_YY1_02 1.30952e-06 - TCAGGGCCATGTGCCCTGGA
+chr2 75663885 75663896 +V_EVI1_05 9.70501e-06 + AGATAAGAAAG
+chr2 75918865 75918875 -V_LEF1_Q2_01 1.81713e-06 - CATCAAAGGG
+chr2 76280219 76280242 +V_OCT1_04 4.39411e-07 + TTATGGTTATGCAAATGTTATTA
+chr2 76280257 76280267 -V_PR_Q2 7.23e-06 - GAAAGAACAT
+chr2 76280265 76280275 +V_TAL1_Q6 4.87508e-06 + TCCAGCTGGT
+chr2 76280323 76280337 -V_ERR1_Q2 1.10419e-06 - ATATGAAGGTCACA
+chr2 76280385 76280403 -V_RFX1_02 2.74139e-07 - AGGTTGCCCAGGCAACCA
+chr2 76526326 76526335 +V_ZIC2_01 9.89755e-06 + GGGGTGGTG
+chr2 76526349 76526359 +V_KAISO_01 8.69798e-06 + TTCCTGCTAT
+chr2 77424667 77424676 +V_CKROX_Q2 8.90515e-06 + TCCCTCCCC
+chr2 77424668 77424676 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr2 77424668 77424677 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr2 77424669 77424680 -V_EGR_Q6 7.1239e-06 - GTGGGGGGAGG
+chr2 77424702 77424715 -V_ALX4_01 9.59891e-06 - ACTGAGAACAATC
+chr2 77424734 77424758 -V_COMP1_01 5.24802e-06 - TCTTTAGAATAGCAAGAAAAAGCT
+chr2 77424877 77424890 -V_MAZR_01 3.8307e-06 - GGGTGGGGGGACA
+chr2 77424920 77424930 +V_BCL6_Q3 4.03003e-06 + GTTTCTAGGT
+chr2 77551965 77551976 -V_EVI1_05 9.70501e-06 - AGATAAGAAAG
+chr2 84470393 84470412 +V_SRF_Q5_02 2.26112e-06 + CACACCCATATTTGGCCAC
+chr2 84470396 84470410 -V_SRF_Q6 1.27154e-06 - GGCCAAATATGGGT
+chr2 84470397 84470412 +V_SRF_C 5.56783e-06 + CCCATATTTGGCCAC
+chr2 84470397 84470415 +V_SRF_Q4 1.96829e-06 + CCCATATTTGGCCACACT
+chr2 84470484 84470498 -V_ERR1_Q2 3.64695e-06 - GCCTGAAGGTCACA
+chr2 85891096 85891111 +V_HES1_Q2 5.00052e-06 + AGCCCTGGTGGGCAG
+chr2 85891226 85891239 -V_OCT_C 1.22146e-06 - CTTATTTGCATGT
+chr2 85891227 85891238 -V_OCT1_Q5_01 6.50785e-06 - TTATTTGCATG
+chr2 85891227 85891238 -V_OCT_Q6 6.34669e-06 - TTATTTGCATG
+chr2 86206665 86206678 -V_AP2_Q6_01 5.96661e-07 - CCCCCCTCAGGCC
+chr2 86206786 86206796 -V_PR_Q2 8.13856e-06 - GAAAGGACAG
+chr2 87440777 87440786 -V_AP1_C 7.33929e-06 - GTGAGTCAG
+chr2 90548854 90548866 +V_OCT1_07 3.83276e-06 + TCTATGTAAATT
+chr2 90548862 90548874 +V_CEBPDELTA_Q6 8.62872e-06 + AATTGCTTAACT
+chr2 90548887 90548906 -V_OCT1_01 3.49896e-06 - ATACATATGCAAATCACTC
+chr2 90548889 90548902 +V_OCT_C 1.90294e-06 + GTGATTTGCATAT
+chr2 90548889 90548903 +V_OCT1_05 1.80594e-06 + GTGATTTGCATATG
+chr2 90548889 90548904 -V_OCT1_Q6 4.83659e-07 - ACATATGCAAATCAC
+chr2 90548890 90548901 +V_OCT1_Q5_01 3.69944e-07 + TGATTTGCATA
+chr2 90548890 90548901 +V_OCT_Q6 3.69944e-07 + TGATTTGCATA
+chr2 90548891 90548901 -V_OCT1_B 1.34745e-06 - TATGCAAATC
+chr2 90548892 90548907 -V_OCT4_01 2.83977e-06 - TATACATATGCAAAT
+chr2 91099221 91099236 -V_SRF_Q5_01 6.57455e-06 - CCATAGAAGGAAATT
+chr2 91099224 91099238 -V_SRF_Q6 6.58624e-06 - GTCCATAGAAGGAA
+chr2 91099284 91099299 -V_SMAD4_Q6 7.63557e-06 - GACATGCAGCCTCCT
+chr2 91796130 91796143 -V_IRF1_01 9.57197e-06 - GAAAACTGAAGCC
+chr2 93092944 93092955 +V_LEF1TCF1_Q4 5.90916e-06 + CCTTTGAACTT
+chr2 93092965 93092980 -V_OCT4_01 9.05006e-06 - TTTTATTTTGCAAAT
+chr2 93711781 93711791 +V_LEF1_Q2_01 5.84716e-06 + GATCAAAGGC
+chr2 93711832 93711844 +V_LMO2COM_01 2.05922e-06 + CCCCAGCTGCAG
+chr2 93767910 93767931 +V_DR3_Q4 2.81777e-06 + GATGACCCTTCTGATCTTCCT
+chr2 93767960 93767968 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr2 93767960 93767970 -V_MYOD_Q6 7.66616e-06 - GGCACCTGCC
+chr2 93767960 93767971 +V_E12_Q6 1.03082e-06 + GGCAGGTGCCA
+chr2 93768040 93768054 -V_BLIMP1_Q6 2.97987e-06 - TGAAAGGGAATGGA
+chr2 94330310 94330330 -V_PPARA_01 8.51836e-06 - GAAAACTAGGTCAACAGACA
+chr2 94330317 94330328 -V_RORA_Q4 4.57758e-06 - AAACTAGGTCA
+chr2 94330343 94330352 -V_FOXM1_01 8.06007e-06 - AGATGGAGT
+chr2 97814098 97814109 -V_NFE2_01 4.11193e-06 - TGCTGAGGCAT
+chr2 97814098 97814109 -V_MAF_Q6_01 2.65014e-06 - TGCTGAGGCAT
+chr2 97814154 97814162 +V_CACD_01 9.89755e-06 + CCACACCC
+chr2 97814365 97814382 +V_PU1_01 3.87664e-07 + CAAAAGGGGAAGTGCCT
+chr2 97814366 97814385 -V_PU1_Q4 3.95346e-06 - GAAAGGCACTTCCCCTTTT
+chr2 97814399 97814411 +V_ELF1_Q6 1.64054e-06 + GGTAGAGGAAAT
+chr2 97814419 97814434 +V_SPZ1_01 6.9171e-07 + GCAGGAGGGATGGGG
+chr2 97814443 97814457 +V_ETS2_B 5.87575e-07 + GAGAGGAAGTACTT
+chr2 99398529 99398547 +V_SRF_Q4 8.04174e-06 + CCCATGAAAGGCCATCCC
+chr2 99398579 99398596 -V_DR4_Q2 2.94346e-06 - GGTCCCCCAGTGACCCC
+chr2 101596617 101596637 -V_FOXP1_01 3.48675e-06 - TGTTTTGTTTTGTTTTTTTT
+chr2 101596620 101596629 +V_FOXO1_Q5 7.27852e-06 + AAAAACAAA
+chr2 103027286 103027304 +V_MYOD_Q6_01 2.3682e-06 + AGGCCACAGGTGCTGGGG
+chr2 103027289 103027301 +V_MYOD_01 2.71479e-06 + CCACAGGTGCTG
+chr2 103027289 103027301 +V_LMO2COM_01 1.86997e-06 + CCACAGGTGCTG
+chr2 103261428 103261441 +V_HSF_Q6 7.18997e-06 + TTTCAGGGGTTTC
+chr2 103261481 103261494 -V_AP2_Q6_01 9.55245e-06 - GCCCCCTCGGGCT
+chr2 103261482 103261491 +V_AP2ALPHA_01 9.68294e-06 + GCCCGAGGG
+chr2 103261482 103261491 +V_AP2GAMMA_01 7.85065e-06 + GCCCGAGGG
+chr2 103261521 103261536 +V_DMRT1_01 3.71498e-06 + CTGCTACAATGATGC
+chr2 103261523 103261538 -V_DMRT1_01 7.56504e-06 - TTGCATCATTGTAGC
+chr2 103261528 103261540 -V_CEBPDELTA_Q6 2.95866e-06 - CATTGCATCATT
+chr2 103833286 103833301 +V_OCT4_01 2.11448e-06 + TATTTTCATGCAGAT
+chr2 104212000 104212018 -V_CART1_01 2.50781e-06 - ACTTAATTTCCATTAGAG
+chr2 104212019 104212034 -V_OCT4_01 8.06422e-07 - TTTTGAAATGCAAAA
+chr2 104212045 104212059 +V_COUP_01 2.73931e-06 + TGACCTTTGAAAAT
+chr2 104212096 104212111 -V_PEBP_Q6 3.67856e-06 - GCTGACCACAGGATG
+chr2 104888687 104888699 +V_SREBP_Q3 3.94882e-06 + GGCCTCACCCTA
+chr2 105451500 105451513 +V_SP1_Q6 3.23457e-06 + GCGGGGTGGGGCC
+chr2 105451501 105451511 -V_SP1_Q2_01 8.14617e-06 - CCCCACCCCG
+chr2 105451501 105451514 +V_MAZR_01 2.15395e-06 + CGGGGTGGGGCCA
+chr2 105451502 105451512 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr2 105451569 105451586 +V_HSF1_Q6 2.803e-07 + ATGCTGGAAACTTCTCA
+chr2 106401935 106401944 +V_T3R_Q6 8.74404e-06 + CCTGTCCTC
+chr2 106401988 106402005 +V_FOXP3_Q4 5.24137e-06 + GAAGATTTGTCACAGAG
+chr2 106402076 106402087 -V_CP2_01 4.70416e-06 - GCTAGACCCAG
+chr2 116069182 116069192 +V_PARP_Q3 6.05736e-06 + TAGGAAATAG
+chr2 117020136 117020155 -V_PU1_Q4 1.02828e-06 - AGCCTGCTCTTCCTCCTTT
+chr2 117020147 117020162 -V_SMAD4_Q6 4.06719e-06 - GAGGGCCAGCCTGCT
+chr2 117020204 117020219 +V_ETS1_B 8.48353e-06 + AGAGGAAATGGTTTC
+chr2 117020207 117020219 -V_NANOG_01 7.60378e-06 - GAAACCATTTCC
+chr2 117020219 117020232 -V_SOX_Q6 8.71426e-06 - CCCTTTGTTAGGA
+chr2 117162768 117162780 -V_AP1_Q2_01 7.5907e-06 - TGACTCAGGCTC
+chr2 118355071 118355081 +V_SP1_Q2_01 7.32e-06 + ACCCGCCCCC
+chr2 118355072 118355083 -V_EGR_Q6 6.21659e-06 - GAGGGGGCGGG
+chr2 118355072 118355086 +V_KROX_Q6 1.18516e-08 + CCCGCCCCCTCCCC
+chr2 118355073 118355084 +V_SP1SP3_Q4 9.31298e-08 + CCGCCCCCTCC
+chr2 118355076 118355086 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr2 118355077 118355086 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr2 118355078 118355086 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr2 118355087 118355098 -V_PAX_Q6 6.77407e-06 - CTGGGACTTAC
+chr2 118355322 118355336 +V_MTF1_Q4 7.96123e-06 + TCTGGACACAGCCC
+chr2 118355333 118355349 -V_AP2_Q3 4.16477e-06 - GGCCCCAGGGGATGGG
+chr2 118355725 118355740 +V_PEBP_Q6 2.65415e-06 + GGTCACCACACAGGT
+chr2 118355822 118355832 -V_SP1_Q2_01 6.40385e-06 - CCCCTCCCCT
+chr2 118355823 118355831 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr2 118355823 118355832 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr2 118355823 118355833 +V_SP1_Q6_01 9.74073e-06 + GGGGAGGGGT
+chr2 118548542 118548555 -V_AP2_Q6_01 8.86342e-06 - CGGGCCACAGGCT
+chr2 118548569 118548581 -V_GATA4_Q3 5.81595e-06 - AGATAGGAGGCA
+chr2 118548613 118548622 +V_AP2ALPHA_01 9.68294e-06 + GCCCGAGGC
+chr2 119289743 119289758 +V_OCT4_01 4.91956e-06 + TATTGTAATGCTGAA
+chr2 119289808 119289823 +V_OCT4_01 6.46423e-06 + CTTTGTTGTGCAAAC
+chr2 119556583 119556595 +V_GABP_B 7.90118e-06 + GCGGGAAGTGCT
+chr2 119683239 119683253 -V_E2A_Q2 1.9257e-07 - CCACCTGCCTCTGT
+chr2 119683244 119683252 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr2 119683244 119683254 -V_MYOD_Q6 6.66004e-06 - TCCACCTGCC
+chr2 119683286 119683301 +V_OCT4_02 3.02765e-06 + ATTCAGATGCTGATT
+chr2 119683292 119683306 +V_GATA1_03 7.51361e-06 + ATGCTGATTACTGC
+chr2 119683388 119683404 -V_NFY_01 1.58231e-06 - ATTAACCAATCAGAAG
+chr2 120069901 120069917 +V_NFY_01 1.25937e-06 + ATGAGCCAATGGGGGC
+chr2 120069917 120069935 +V_PIT1_Q6 4.43795e-06 + CATTCATATTCAAAACCA
+chr2 120340193 120340211 +V_MYOD_Q6_01 3.40954e-07 + ACAAACCAGGTGGCGGAG
+chr2 121303337 121303352 +V_OCT1_02.4.57014e-08 + ATGAATATGCACATA
+chr2 121303387 121303400 +V_IK1_01 1.89225e-06 + TCTTGGGAATGTC
+chr2 121303387 121303400 +V_IK3_01 4.21791e-06 + TCTTGGGAATGTC
+chr2 121303465 121303479 -V_KROX_Q6 8.32366e-06 - GCCACCCCCCCACC
+chr2 123211476 123211488 -V_ELF1_Q6 7.75166e-06 - ATTACAGGAAAT
+chr2 125626262 125626274 +V_GATA4_Q3 2.87109e-06 + AGATCAAAGGGA
+chr2 125626263 125626273 +V_LEF1_Q2_01 1.81713e-06 + GATCAAAGGG
+chr2 125626380 125626398 -V_NF1_Q6 5.86126e-06 - CCTTGGCTTCCAGCCCTG
+chr2 126433464 126433479 -V_IRF_Q6 1.92022e-06 - TACAGTTTCTGTTTC
+chr2 126433465 126433477 +V_ICSBP_Q6 3.08451e-06 + AAACAGAAACTG
+chr2 126433526 126433538 -V_SRY_02 2.38689e-06 - TAAAACAATAGA
+chr2 126781583 126781598 +V_CP2_02 3.39312e-06 + GCTGGTTCCAGCGTG
+chr2 127275594 127275607 -V_MAZR_01 3.32118e-06 - GGGGGAGGGGCAG
+chr2 127275595 127275608 -V_SP1_Q6 7.04257e-06 - TGGGGGAGGGGCA
+chr2 127275596 127275606 -V_SP1_Q6_01 2.74385e-06 - GGGGAGGGGC
+chr2 127275597 127275606 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr2 127275597 127275607 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr2 127275598 127275606 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr2 127275598 127275607 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr2 127275608 127275621 -V_DEC_Q1 7.9256e-06 - GCGCACCTGAAGC
+chr2 127275662 127275672 +V_SP1_Q2_01 9.56538e-06 + CCCCTCCCAC
+chr2 127275666 127275676 +V_NKX25_Q5 3.30926e-06 + TCCCACTTGC
+chr2 127275706 127275720 +V_KROX_Q6 5.9833e-06 + GGCTCCCCCACCCC
+chr2 127275708 127275720 +V_PAX4_03 3.63034e-06 + CTCCCCCACCCC
+chr2 127275709 127275724 +V_SREBP_Q6 6.48026e-06 + TCCCCCACCCCACCC
+chr2 127275709 127275724 +V_SREBP1_Q5 4.09665e-06 + TCCCCCACCCCACCC
+chr2 127275714 127275727 -V_SP1_Q6 4.19627e-06 - AGGGGGTGGGGTG
+chr2 127275716 127275726 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr2 127275717 127275726 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr2 127941527 127941536 +V_CKROX_Q2 8.90515e-06 + TCCCTCCCC
+chr2 127941528 127941536 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr2 127941557 127941570 +V_NRF2_Q4 2.95916e-07 + CTGCTGTGTCATG
+chr2 127941558 127941569 +V_MAF_Q6_01 6.24509e-06 + TGCTGTGTCAT
+chr2 128182197 128182205 -V_CACD_01 9.89755e-06 - CCACACCC
+chr2 128535116 128535134 +V_HNF3_Q6_01 9.93411e-06 + AGCCTTGTTTGTTTTGGA
+chr2 128535119 128535132 -V_HNF3_Q6 9.93672e-06 - CAAAACAAACAAG
+chr2 128535182 128535197 +V_PEBP_Q6 6.38397e-06 + ACTAACCGCAGACCG
+chr2 128535185 128535204 -V_SEF1_C 7.98437e-06 - AGGAGGCCGGTCTGCGGTT
+chr2 129095147 129095162 -V_OCT4_01 5.24325e-06 - CTTTGTAATGTTAAC
+chr2 129521750 129521765 -V_OCT4_02 6.99193e-06 - ATTGTGATGTTAAAT
+chr2 129521855 129521866 +V_ALPHACP1_01 2.32172e-06 + CACCCAATGAG
+chr2 129521857 129521869 -V_AP1_Q2_01 9.71015e-07 - TGACTCATTGGG
+chr2 129521859 129521872 +V_AP1_01 7.1696e-06 + CAATGAGTCAGGA
+chr2 129521861 129521870 +V_AP1_C 4.03003e-06 + ATGAGTCAG
+chr2 129624262 129624275 +V_SP1_Q6 3.06772e-06 + GGGGGGTGGGGTG
+chr2 129624263 129624272 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr2 129624263 129624273 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr2 129624269 129624281 -V_PAX4_03 1.38116e-07 - AATCCCCACCCC
+chr2 129624287 129624302 +V_VDRRXR_01 5.76999e-06 + AAGTCATCAGGTTCA
+chr2 129707726 129707741 -V_OCT4_01 1.66292e-06 - CTTTGAGATGTAAAT
+chr2 129707751 129707765 +V_KROX_Q6 9.17068e-06 + CCCACCCACCCACC
+chr2 129707765 129707778 +V_PPAR_DR1_Q2 6.6417e-06 + AAACCTTTGACCC
+chr2 130128892 130128901 -V_WT1_Q6 6.67377e-06 - CCCTCCCGC
+chr2 130128918 130128937 -V_OCT1_01 3.8208e-06 - ATGAATATGCTAATGAGAG
+chr2 130128920 130128933 +V_OCT_C 7.96357e-07 + CTCATTAGCATAT
+chr2 130128920 130128934 +V_OCT1_05 2.72043e-07 + CTCATTAGCATATT
+chr2 130128923 130128933 -V_POU3F2_02 7.27852e-06 - ATATGCTAAT
+chr2 130129015 130129024 +V_ZIC2_01 7.66616e-06 + AGGGTGGTC
+chr2 130553928 130553947 +V_PU1_Q4 4.50585e-06 + TGACCTCAGTTCCTCTTTA
+chr2 130553931 130553948 -V_PU1_01 5.34363e-06 - TTAAAGAGGAACTGAGG
+chr2 131870540 131870554 -V_BLIMP1_Q6 4.97194e-06 - AGTGAGTGAAAGGA
+chr2 131959281 131959290 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr2 131959281 131959291 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr2 131959281 131959292 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr2 131959282 131959294 -V_PAX4_03 2.40392e-07 - CACCCCCACCCC
+chr2 131959282 131959296 -V_KROX_Q6 2.21131e-07 - CCCACCCCCACCCC
+chr2 131959285 131959296 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr2 131959286 131959299 +V_SP1_Q6 8.76141e-06 + TGGGGGTGGGGGG
+chr2 131959287 131959296 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr2 131959287 131959297 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr2 131959287 131959298 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr2 131959288 131959300 -V_PAX4_03 5.05761e-06 - ACCCCCCACCCC
+chr2 131959290 131959305 +V_SPZ1_01 5.95976e-06 + GGTGGGGGGTAGAGG
+chr2 131959297 131959309 +V_ELF1_Q6 9.73492e-07 + GGTAGAGGAAGT
+chr2 131959334 131959349 +V_OCT4_01 6.91054e-06 + ATTTATCATGCAAAA
+chr2 132815664 132815675 +V_BACH2_01 1.82283e-06 + CATGAGTCACC
+chr2 132815664 132815675 -V_AP1_Q6 9.43393e-06 - GGTGACTCATG
+chr2 132815723 132815734 -V_EBF_Q6 7.15927e-06 - GTCCCCTGAGG
+chr2 132815762 132815780 -V_MYOD_Q6_01 4.80053e-06 - CTGGGGCAGGTGCAGTCA
+chr2 132815765 132815776 -V_E12_Q6 3.31699e-06 - GGCAGGTGCAG
+chr2 132815765 132815777 -V_LMO2COM_01 1.39092e-06 - GGGCAGGTGCAG
+chr2 132815766 132815776 +V_MYOD_Q6 6.66004e-06 + TGCACCTGCC
+chr2 132815767 132815781 +V_E2A_Q2 6.80211e-07 + GCACCTGCCCCAGA
+chr2 132815768 132815776 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr2 132815784 132815796 +V_FOXO3A_Q1 9.47139e-06 + TGTAAACAAAAC
+chr2 132815809 132815817 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr2 134786537 134786547 +V_TBX5_Q5 5.68466e-06 + TTCACACCTG
+chr2 135623698 135623714 -V_S8_01 6.58224e-06 - GCAAGTCAATTAGCCT
+chr2 135623761 135623773 +V_AP2_Q6 8.15619e-06 + CGCCCCCAGGCT
+chr2 135623778 135623792 +V_DMRT7_01 5.18644e-06 + TTGCAACAGTGTTT
+chr2 135623778 135623793 +V_DMRT1_01 9.21473e-06 + TTGCAACAGTGTTTT
+chr2 136201254 136201269 +V_OCT4_01 1.79634e-06 + CATTGTTATGGAAAC
+chr2 138257865 138257880 +V_ETS1_B 2.00417e-06 + AGAGGAAGGGAGTGG
+chr2 142415328 142415341 +V_AP2_Q6_01 5.59926e-06 + GAGCCCCCAGGCA
+chr2 142415330 142415346 +V_AP2_Q3 1.51951e-06 + GCCCCCAGGCAGCAGT
+chr2 142707028 142707041 +V_AP2_Q6_01 7.38468e-06 + CCCTCCCGAGGCC
+chr2 142707145 142707161 -V_AP2_Q3 8.07615e-06 - GGCCCCGGGCAGTCAC
+chr2 142707151 142707160 +V_AP2ALPHA_01 3.00918e-06 + GCCCGGGGC
+chr2 142707151 142707160 +V_AP2GAMMA_01 3.00918e-06 + GCCCGGGGC
+chr2 142707151 142707160 -V_AP2ALPHA_01 6.01835e-06 - GCCCCGGGC
+chr2 142707151 142707160 -V_AP2GAMMA_01 6.01835e-06 - GCCCCGGGC
+chr2 142707185 142707199 -V_ATF3_Q6 3.96109e-06 - ATCTGATGTCATCC
+chr2 144541170 144541182 -V_IPF1_Q4 1.66645e-06 - GTTCTAATGACC
+chr2 144541219 144541231 -V_SRY_02 1.60347e-06 - CAAAACAATAGG
+chr2 146706140 146706153 -V_IRF2_01 9.05003e-06 - GCAAAGGGAAACC
+chr2 146744552 146744564 -V_GLI_Q2 5.13911e-06 - CCTGGGTGGTTC
+chr2 146744632 146744647 +V_VDRRXR_01 2.15195e-06 + GGGTCAAGGGCTTCG
+chr2 146837316 146837331 -V_OCT4_01 6.91054e-06 - CATTTAAATGCTAAT
+chr2 149808997 149809018 -V_PAX6_01 7.24772e-06 - TATTGTCATGGATGACTTGCC
+chr2 149809074 149809089 +V_OCT4_01 8.48593e-06 + TATTCATATGAAAAT
+chr2 150463914 150463928 +V_OCT1_05 6.86039e-06 + CTACTTAGCATATG
+chr2 150463967 150463980 -V_OCT_C 9.35619e-06 - CTCATTTGCCTGC
+chr2 150463989 150464002 +V_MAZR_01 7.66218e-06 + GGAGGAGGGGACC
+chr2 151583054 151583067 -V_IK3_01 7.57723e-06 - TCTAGGGAACACT
+chr2 152552359 152552370 +V_PAX_Q6 8.43097e-06 + CTAGAACTCAC
+chr2 152552383 152552395 +V_LRH1_Q5 2.59537e-06 + CTAGCCTTGAAC
+chr2 152552409 152552420 -V_NFE2_01 6.57151e-06 - AGCTGAGTCAA
+chr2 152552409 152552420 -V_MAF_Q6_01 7.4031e-06 - AGCTGAGTCAA
+chr2 152552438 152552448 -V_TBX5_Q5 1.65463e-06 - CTCACACCTG
+chr2 152835401 152835415 -V_ERR1_Q2.4.56186e-06 - CCCTCAAGGTCATC
+chr2 152835403 152835412 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr2 153196796 153196811 +V_OCT4_02 2.77311e-06 + ATTCTGATGTAAATG
+chr2 153196814 153196837 +V_OCT1_04 2.90521e-06 + GGATTGATATGTAAAATAAAAGA
+chr2 153348127 153348141 +V_BLIMP1_Q6 3.386e-06 + AGAAGGGGAAAGGG
+chr2 153348191 153348209 +V_MYOD_Q6_01 9.72371e-06 + GGCCAGCAGGTGGAAGGG
+chr2 153348195 153348205 -V_TAL1_Q6 7.11328e-06 - TCCACCTGCT
+chr2 153348237 153348253 +V_AP2_Q3 3.22678e-06 + GCCCTCGGGCAAGGGC
+chr2 153348238 153348247 -V_AP2ALPHA_01 9.68294e-06 - GCCCGAGGG
+chr2 153348238 153348247 -V_AP2GAMMA_01 7.85065e-06 - GCCCGAGGG
+chr2 153348260 153348275 -V_SREBP_Q6 2.30063e-08 - CCGCCCACCCCAGGC
+chr2 153348260 153348275 -V_SREBP1_Q5 9.71403e-08 - CCGCCCACCCCAGGC
+chr2 153348262 153348273 -V_CP2_01 8.6781e-06 - GCCCACCCCAG
+chr2 153348266 153348279 +V_SP1_Q6 5.65055e-06 + GGTGGGCGGAGGC
+chr2 153379729 153379744 -V_DMRT5_01 7.45969e-06 - TTTTGTGACTTTGGC
+chr2 153379768 153379778 -V_SP1_Q2_01 9.56538e-06 - CCCCACCCCT
+chr2 153379854 153379868 +V_PAX6_Q2 1.5537e-08 + CTGTCCTGGAACTC
+chr2 153379859 153379870 +V_PAX_Q6 2.73139e-06 + CTGGAACTCTC
+chr2 154795860 154795878 +V_NF1_Q6 9.30221e-06 + TGTTGGCAAGAGTTCCAG
+chr2 154795959 154795968 +V_AP2ALPHA_01 9.68294e-06 + GCCCGAGGC
+chr2 156251494 156251509 -V_OCT4_02 4.9622e-06 - TTTGAAATGCAAATG
+chr2 156251495 156251510 -V_OCT4_01 9.73507e-08 - TTTTGAAATGCAAAT
+chr2 156251516 156251528 +V_LMO2COM_01 3.81592e-06 + CTCCAGGTGGTG
+chr2 157248655 157248685 +V_PAX4_04 6.64961e-06 + GAAGAGTATCCACCCTCCCCTCCCCTCCCT
+chr2 157248667 157248675 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr2 157248671 157248680 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr2 157248671 157248681 +V_SP1_Q2_01 6.40385e-06 + CCCCTCCCCT
+chr2 157248672 157248680 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr2 157666577 157666587 +V_NCX_01 5.32427e-06 + TGGTAATTGG
+chr2 157666625 157666640 +V_OCT4_01 9.05006e-06 + TATTGTAATTGAAAT
+chr2 157666648 157666663 -V_OCT4_01 2.28618e-06 - TTTTATTATGCAAAC
+chr2 158912672 158912695 -V_COUPTF_Q6 2.31388e-06 - TGGTGTGACCTGTGACCTTCTCT
+chr2 158912673 158912694 +V_PPARG_01 9.10442e-07 + GAGAAGGTCACAGGTCACACC
+chr2 158912726 158912749 -V_OCT1_04 6.1322e-06 - GCATTAATATGCTAATGAACAGT
+chr2 158912730 158912743 +V_OCT_C 3.87618e-06 + TTCATTAGCATAT
+chr2 158912733 158912743 -V_POU3F2_02 7.27852e-06 - ATATGCTAAT
+chr2 158912733 158912748 -V_OCT4_01 4.01204e-06 - CATTAATATGCTAAT
+chr2 158912809 158912820 -V_E12_Q6 3.31699e-06 - GGCAGGTGCTG
+chr2 158912810 158912820 +V_MYOD_Q6 2.71739e-06 + AGCACCTGCC
+chr2 158912811 158912825 +V_E2A_Q2 1.48735e-06 + GCACCTGCCACAGC
+chr2 158912812 158912820 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr2 158912833 158912843 -V_POU1F1_Q6 7.63593e-06 - ATGCATAAAT
+chr2 159937151 159937166 +V_OCT4_01 3.49929e-06 + CTTTGTAATGGTAAT
+chr2 159937167 159937187 -V_FOXP1_01 1.63326e-07 - TTGTTTGTATTTTTTTGTAA
+chr2 159937200 159937214 -V_ERR1_Q2 6.98967e-06 - TCCTGAAGGTCACC
+chr2 160186142 160186157 -V_OCT4_02 2.77311e-06 - TTTCAGATGCAAAAC
+chr2 160186143 160186158 -V_OCT4_01 4.57831e-06 - CTTTCAGATGCAAAA
+chr2 160186164 160186176 +V_NFKB_C 3.16552e-06 + AGGGAATCTCCA
+chr2 160186228 160186236 -V_CACD_01 9.89755e-06 - CCACACCC
+chr2 160186239 160186250 +V_AP1_Q4 8.85541e-06 + AGTGACTGAGT
+chr2 160482065 160482079 -V_NFY_C 7.62778e-06 - TCAGATTGGTTAAT
+chr2 160482167 160482182 -V_OCT4_02 8.38472e-07 - ATTCAGATGCTGATG
+chr2 160482204 160482217 -V_SP1_Q6 6.05961e-06 - TGGGGGAGGGGGT
+chr2 160482205 160482215 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr2 160482205 160482216 +V_SP1SP3_Q4 2.8432e-06 + CCCCCTCCCCC
+chr2 160482206 160482215 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr2 160482206 160482216 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr2 160482207 160482215 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr2 160482207 160482216 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr2 162857663 162857678 -V_OCT4_02 6.55103e-06 - ATTGTAATGCTAAAT
+chr2 162857664 162857679 -V_OCT4_01 1.40241e-06 - TATTGTAATGCTAAA
+chr2 162857733 162857747 +V_BLIMP1_Q6 9.49741e-06 + AGAAAGGGAGAGGC
+chr2 162857747 162857759 -V_AP1_Q2_01 6.13341e-06 - TGACTCAGGCTG
+chr2 162887863 162887874 +V_AP1FJ_Q2 7.39364e-06 + GGTGACTCCAA
+chr2 162887952 162887967 -V_OCT4_01 7.94702e-06 - TTTTGTTGTGCAAAC
+chr2 162887984 162887999 -V_OCT4_01 9.65557e-06 - TATTATAATGCTAAC
+chr2 162888009 162888026 +V_DR4_Q2 5.78925e-06 + TAACCTCGACCAACCCC
+chr2 164783235 164783250 +V_OCT4_01 6.91054e-06 + CTTTCATATGCTAAA
+chr2 164783236 164783251 +V_OCT4_02 7.51249e-06 + TTTCATATGCTAAAC
+chr2 164783261 164783272 -V_EGR_Q6 6.55683e-06 - GTGGGGGCTGG
+chr2 164783321 164783331 -V_LEF1_Q2_01 9.48141e-06 - GAACAAAGGG
+chr2 165731964 165731982 -V_FOXJ2_01 2.41928e-06 - TTACAAACAAACATTCTT
+chr2 165732028 165732042 +V_ETS2_B 9.24814e-06 + GGGAGGAAACGCTT
+chr2 165732096 165732110 -V_KROX_Q6 8.74919e-06 - CCCTCCCCCACTGC
+chr2 165732100 165732113 +V_SP1_Q6 1.00798e-06 + TGGGGGAGGGGCG
+chr2 165732101 165732110 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr2 165732101 165732111 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr2 165732101 165732114 +V_MAZR_01 3.32118e-06 + GGGGGAGGGGCGC
+chr2 165732102 165732110 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr2 165732102 165732111 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr2 165732102 165732112 +V_SP1_Q6_01 2.74385e-06 + GGGGAGGGGC
+chr2 165732202 165732215 -V_CEBPGAMMA_Q6 8.42919e-06 - CTGATTTCTAAAT
+chr2 165732227 165732236 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr2 165732228 165732236 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr2 165732228 165732237 -V_CKROX_Q2 8.90515e-06 - TCCCTCCCC
+chr2 165768778 165768787 -V_T3R_Q6 8.74404e-06 - CCTGTCCTC
+chr2 165768845 165768857 +V_OCT1_07 2.0591e-06 + TCTATGCAAATT
+chr2 165768847 165768857 +V_OCT1_B 7.0832e-06 + TATGCAAATT
+chr2 165768847 165768858 -V_OCT_Q6 9.41564e-06 - CAATTTGCATA
+chr2 165953327 165953342 +V_DMRT5_01 7.94465e-06 + TTCTGTTACTTTGTT
+chr2 165953329 165953344 +V_DMRT1_01 1.51207e-06 + CTGTTACTTTGTTGC
+chr2 165953371 165953387 +V_DMRT2_01 3.03478e-06 + TAGTTTGTTACTTTGT
+chr2 165953372 165953387 +V_DMRT3_01 3.33554e-06 + AGTTTGTTACTTTGT
+chr2 165953373 165953388 +V_DMRT5_01 1.76793e-06 + GTTTGTTACTTTGTT
+chr2 165953375 165953389 +V_DMRT7_01 7.24493e-07 + TTGTTACTTTGTTG
+chr2 165953375 165953390 +V_DMRT1_01 8.47921e-07 + TTGTTACTTTGTTGC
+chr2 166116930 166116940 -V_TBX5_Q5 9.08563e-07 - CTCACACCTT
+chr2 167548584 167548604 +V_FOXP1_01 1.40446e-06 + TTATTGTTGTTGTTTTATTT
+chr2 167859557 167859572 -V_VDR_Q3 2.76308e-06 - GGGTGGGGGAGGAGA
+chr2 167859559 167859573 +V_KROX_Q6 2.01857e-06 + TCCTCCCCCACCCC
+chr2 167859561 167859573 +V_PAX4_03 3.63034e-06 + CTCCCCCACCCC
+chr2 167859564 167859574 +V_SP1_Q2_01 8.14617e-06 + CCCCACCCCG
+chr2 167859646 167859658 -V_LMO2COM_01 5.97756e-06 - CTGCAGGTGCTC
+chr2 167898352 167898365 +V_AP2_Q6_01 1.66582e-06 + CAGGCCCCAGGCT
+chr2 167898361 167898376 -V_SMAD4_Q6 6.97552e-06 - CTGAGCGAGCCAGCC
+chr2 167898416 167898425 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr2 167898416 167898430 +V_KROX_Q6 5.90472e-07 + CCCACCCCCTCCCC
+chr2 167898417 167898428 +V_SP1SP3_Q4 4.25103e-06 + CCACCCCCTCC
+chr2 167898420 167898430 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr2 167898421 167898430 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr2 167898422 167898430 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr2 168039733 168039745 -V_FOXD3_01 6.65549e-06 - GAATGTTTGTGT
+chr2 168039807 168039822 -V_OCT4_01 6.90794e-07 - CTTTGAAATGCTAAT
+chr2 168058829 168058852 -V_COUPTF_Q6 5.51542e-06 - CGTGGTGGCCTTTGATCCCAGCA
+chr2 168058830 168058851 +V_PPARG_01 6.77586e-06 + GCTGGGATCAAAGGCCACCAC
+chr2 168058863 168058883 +V_FOXP1_01 3.16865e-06 + TTTTTTATGTAGGCATTTTT
+chr2 168058879 168058897 -V_FOXJ2_01 1.11381e-06 - ATGCAAATAAACATAAAA
+chr2 168058886 168058899 +V_OCT_C 8.94137e-06 + TTTATTTGCATAG
+chr2 168058887 168058898 +V_OCT1_Q5_01 2.46139e-06 + TTATTTGCATA
+chr2 168058887 168058898 +V_OCT_Q6 1.64093e-06 + TTATTTGCATA
+chr2 168058888 168058898 -V_OCT1_B 4.33582e-06 - TATGCAAATA
+chr2 168100454 168100463 +V_AP2ALPHA_01 9.68294e-06 + GCCCGAGGC
+chr2 168590249 168590261 -V_LMO2COM_01 4.26141e-06 - CCGCAGGTGGTC
+chr2 168633396 168633408 +V_NFAT_Q6 5.53405e-06 + CAGAGGAAAACA
+chr2 168982444 168982452 +V_STAT3_02 9.89755e-06 + GGCTTCCC
+chr2 168982514 168982527 +V_HNF3_Q6 4.17324e-06 + ATGAGCAAACACA
+chr2 169119063 169119082 +V_OCT1_01 9.8471e-06 + TTGGCTATGCAAATGTTTG
+chr2 169119068 169119078 +V_OCT1_B 4.33582e-06 + TATGCAAATG
+chr2 169119068 169119079 -V_OCT_Q6 7.02042e-06 - ACATTTGCATA
+chr2 169876109 169876122 -V_NRF2_Q4 5.58469e-07 - CTGCTGAGTCAGA
+chr2 169876110 169876121 -V_MAF_Q6_01 4.54281e-07 - TGCTGAGTCAG
+chr2 169876155 169876164 -V_T3R_Q6 3.30926e-06 - CCTGTCCTT
+chr2 171057236 171057248 -V_GLI_Q2 6.68438e-06 - CCTGGGTGGTGT
+chr2 172394156 172394170 -V_STAT3STAT3_Q3 2.0443e-06 - GTGCTGGGAAAACC
+chr2 172444757 172444772 -V_OCT4_02 5.69461e-06 - ATTCAGATGCTAGTT
+chr2 172444785 172444794 -V_ZIC1_01 4.94877e-06 - GGGGTGGTC
+chr2 172444785 172444794 -V_ZIC2_01 2.23138e-06 - GGGGTGGTC
+chr2 172444841 172444856 +V_VDR_Q3 6.21229e-07 + GGGGCTGGAGGGTGA
+chr2 172444876 172444885 +V_T3R_Q6 8.74404e-06 + CCTGTCCTG
+chr2 172536375 172536403 +V_PAX5_02 8.68648e-06 + GATGTAGATTTTGGGGTGGGACAGTTCC
+chr2 172536463 172536491 -V_PAX5_01 6.53963e-06 - AACCAGAGCAGTGCTGGAGAGCCGGCTC
+chr2 172876148 172876162 +V_KROX_Q6 9.17068e-06 + CCCACCCCCATTCC
+chr2 172876221 172876233 +V_ETS_Q4 7.06097e-06 + GGCCACTTCCTG
+chr2 172876234 172876264 -V_HOX13_01 9.87496e-06 - TGCTCCCTCCCCCAGTGTTCTGAGGCACCT
+chr2 172876251 172876260 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr2 172876252 172876260 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr2 172876252 172876261 -V_CKROX_Q2 8.90515e-06 - TCCCTCCCC
+chr2 172876277 172876298 -V_PPARG_01 7.1849e-06 - TGAGAGGACAAAGGTCCAAGC
+chr2 172876279 172876288 -V_HNF4_Q6 7.33929e-06 - AAGGTCCAA
+chr2 172876281 172876294 +V_PPAR_DR1_Q2 2.43547e-06 + GGACCTTTGTCCT
+chr2 172876281 172876294 +V_HNF4_DR1_Q3 3.06132e-06 + GGACCTTTGTCCT
+chr2 172876281 172876294 +V_COUP_DR1_Q6 2.64605e-06 + GGACCTTTGTCCT
+chr2 172876281 172876294 -V_RXRLXRB_01 7.77466e-06 - AGGACAAAGGTCC
+chr2 172876281 172876294 -V_DR1_Q3 1.15696e-06 - AGGACAAAGGTCC
+chr2 172899261 172899290 +V_MYOGNF1_01 4.90078e-06 + TGGTTTTTGCCCCTGGCACAGGGCCAGCA
+chr2 174169783 174169805 +V_MEF2_03 7.44905e-06 + TAAGGATCTATTTATAGAATTG
+chr2 174169785 174169807 -V_MEF2_02 2.94164e-07 - CACAATTCTATAAATAGATCCT
+chr2 174169785 174169807 -V_MEF2_03 5.99273e-07 - CACAATTCTATAAATAGATCCT
+chr2 174169785 174169807 -V_MEF2_04 5.15082e-07 - CACAATTCTATAAATAGATCCT
+chr2 174169810 174169819 +V_RFX_Q6 3.30926e-06 + CTGTTGCCA
+chr2 174169810 174169828 +V_RFX1_02 1.01854e-08 + CTGTTGCCATGGCAACAT
+chr2 174169810 174169828 -V_RFX1_02 6.31913e-08 - ATGTTGCCATGGCAACAG
+chr2 174893642 174893661 -V_SEF1_C 5.09832e-06 - CAGAGGGAGTGCTGTGGTT
+chr2 174893664 174893683 +V_PU1_Q4 4.22218e-06 + GCCTCCTACTTCCTCCTAG
+chr2 174893665 174893680 -V_ETS1_B 6.14163e-06 - GGAGGAAGTAGGAGG
+chr2 177571013 177571023 -V_IK_Q5 8.83478e-06 - TTTGGGAGGT
+chr2 177571014 177571023 -V_LYF1_01 7.33929e-06 - TTTGGGAGG
+chr2 177571068 177571083 -V_OCT4_01 6.91054e-06 - CTTTTAAATGTAAAT
+chr2 178684021 178684031 -V_POU3F2_02 8.91945e-06 - TTATGGTAAT
+chr2 179723959 179723973 -V_NFY_C 9.63399e-06 - TCTAATTGGTTAAT
+chr2 180654991 180655012 +V_STAT1_01 1.51491e-06 + GACAACTTCCCGGAACTCTCC
+chr2 180654991 180655012 -V_STAT3_01 3.30891e-06 - GGAGAGTTCCGGGAAGTTGTC
+chr2 180654994 180655009 +V_STAT5A_01 4.6087e-06 + AACTTCCCGGAACTC
+chr2 180654994 180655009 -V_STAT5A_01 5.6082e-06 - GAGTTCCGGGAAGTT
+chr2 180654994 180655009 -V_STAT5B_01 6.50815e-06 - GAGTTCCGGGAAGTT
+chr2 180654997 180655006 +V_STAT_01 3.30926e-06 + TTCCCGGAA
+chr2 180655021 180655030 -V_EVI1_06 5.97675e-06 - ACAAGATAA
+chr2 180655021 180655032 -V_EVI1_02 2.55227e-06 - GGACAAGATAA
+chr3 7510232 7510247 -V_OCT4_02 6.93218e-07 - ATTGTCATTCTAAAC
+chr3 7510303 7510317 +V_DMRT7_01 8.98311e-06 + TTGTGACCTTGTTG
+chr3 7510304 7510318 -V_ERR1_Q2 4.94927e-06 - TCAACAAGGTCACA
+chr3 7579697 7579716 -V_OCT1_01 2.91073e-06 - AAGCTTATGCAAATGTAAT
+chr3 7579700 7579711 +V_OCT_Q6 7.02042e-06 + ACATTTGCATA
+chr3 7579701 7579711 -V_OCT1_B 4.33582e-06 - TATGCAAATG
+chr3 8001484 8001500 -V_ARNT_01 3.1401e-06 - GGATTCACGTGTTCTC
+chr3 8005870 8005880 -V_SP1_Q6_01 2.74385e-06 - GGGGCGGGGA
+chr3 8005871 8005880 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr3 8005871 8005881 +V_SP1_Q2_01 3.39206e-07 + CCCCGCCCCC
+chr3 9591873 9591891 -V_CEBP_C 4.01333e-06 - GGACTGAGGCAAGGTCTG
+chr3 9591943 9591958 -V_OCT4_02 6.14224e-06 - TTTGTGATGTAAAAG
+chr3 9591944 9591959 -V_OCT4_01 3.49929e-06 - CTTTGTGATGTAAAA
+chr3 9591957 9591972 +V_AML_Q6 2.4806e-06 + AGGGATGTGGTGACC
+chr3 10180333 10180345 +V_PAX4_03 3.63034e-06 + GAACCCCACCCC
+chr3 10180334 10180347 -V_SP1_Q6 8.76141e-06 - CGGGGGTGGGGTT
+chr3 10180336 10180346 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr3 10180337 10180346 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr3 10180423 10180434 -V_SMAD_Q6_01 7.46065e-07 - TGGGCAGACAG
+chr3 15007502 15007517 +V_OCT4_01 1.94673e-06 + ATTTGAAATGTAAAT
+chr3 18257671 18257685 -V_KROX_Q6 9.64613e-06 - CCCGCCCCCCCAAA
+chr3 18257673 18257684 -V_SP1SP3_Q4 2.93633e-06 - CCGCCCCCCCA
+chr3 18257675 18257688 +V_SP1_Q6 2.54389e-06 + GGGGGGCGGGGAG
+chr3 18257676 18257686 -V_SP1_Q2_01 3.39206e-07 - CCCCGCCCCC
+chr3 18257677 18257686 -V_CKROX_Q2 6.67377e-06 - CCCCGCCCC
+chr3 18257677 18257687 +V_SP1_Q6_01 2.74385e-06 + GGGGCGGGGA
+chr3 18257682 18257690 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr3 18257682 18257691 -V_CKROX_Q2 8.90515e-06 - TCCCTCCCC
+chr3 18597499 18597514 -V_OCT4_02 4.3087e-06 - ATTGTCATTTAAATG
+chr3 18597500 18597515 -V_OCT4_01 3.04012e-06 - TATTGTCATTTAAAT
+chr3 19467252 19467266 -V_COUP_01 2.34272e-06 - TGACCTCTGCCCAG
+chr3 19467253 19467266 +V_DR1_Q3 2.76991e-06 + TGGGCAGAGGTCA
+chr3 19467253 19467266 -V_PPAR_DR1_Q2 1.70612e-06 - TGACCTCTGCCCA
+chr3 19467253 19467266 -V_HNF4_DR1_Q3 5.33101e-06 - TGACCTCTGCCCA
+chr3 19467253 19467266 -V_COUP_DR1_Q6 3.95479e-06 - TGACCTCTGCCCA
+chr3 19467253 19467267 +V_HNF4_Q6_01 2.23852e-06 + TGGGCAGAGGTCAC
+chr3 20041777 20041788 -V_SMAD_Q6_01 7.46065e-07 - TGGGCAGACAG
+chr3 22889217 22889229 +V_PXR_Q2 7.73425e-06 + AAGGTTAATAAC
+chr3 22889218 22889231 +V_FXR_IR1_Q6 3.71753e-07 + AGGTTAATAACCC
+chr3 22889218 22889231 -V_FXR_IR1_Q6 5.34674e-06 - GGGTTATTAACCT
+chr3 22889220 22889232 -V_PXR_Q2 7.73425e-06 - GGGGTTATTAAC
+chr3 22889303 22889317 -V_ERR1_Q2 4.03886e-06 - GTCTGAAGGTCACA
+chr3 23263039 23263056 +V_PPARG_03 6.5877e-06 + AGGATGGGCAAAGGTTA
+chr3 23263042 23263056 -V_COUP_01 4.23296e-06 - TAACCTTTGCCCAT
+chr3 23263043 23263057 +V_HNF4_Q6_01 8.95172e-06 + TGGGCAAAGGTTAT
+chr3 25221491 25221506 +V_DMRT1_01 9.55793e-06 + TAGTTACTTTGTAGC
+chr3 27635302 27635311 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr3 27635302 27635312 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr3 27635303 27635311 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr3 27635303 27635312 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr3 27635307 27635317 -V_SP1_Q2_01 6.40385e-06 - CCCCTCCCCT
+chr3 27635308 27635316 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr3 27635308 27635317 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr3 27635312 27635322 -V_SP1_Q2_01 6.40385e-06 - CCCCTCCCCT
+chr3 27635312 27635325 +V_MAZR_01 4.80613e-06 + AGGGGAGGGGCAG
+chr3 27635313 27635321 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr3 27635313 27635322 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr3 27635313 27635323 +V_SP1_Q6_01 2.74385e-06 + GGGGAGGGGC
+chr3 27660060 27660069 -V_T3R_Q6 3.30926e-06 - CCTGTCCTT
+chr3 27660078 27660087 -V_T3R_Q6 3.30926e-06 - CCTGTCCTT
+chr3 27679274 27679283 -V_T3R_Q6 8.74404e-06 - CCTGTCCTG
+chr3 27679329 27679342 -V_HFH3_01 2.98548e-06 - TCTTGTTTATTTA
+chr3 27679329 27679343 -V_FOXO3_01 6.18578e-06 - TTCTTGTTTATTTA
+chr3 27679331 27679341 +V_FOXO1_01 7.37669e-06 + AATAAACAAG
+chr3 27679397 27679410 +V_SP1_Q6 6.51994e-06 + GAGGGGTGGGGCT
+chr3 27679398 27679408 -V_SP1_Q2_01 9.56538e-06 - CCCCACCCCT
+chr3 27679399 27679409 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr3 27679399 27679411 -V_PAX4_03 5.03061e-07 - AAGCCCCACCCC
+chr3 27834764 27834779 -V_OCT4_01 3.74251e-06 - CATTCAAATTCAAAT
+chr3 27834797 27834805 -V_CACD_01 9.89755e-06 - CCACACCC
+chr3 27834836 27834848 +V_ELF1_Q6 1.1403e-06 + ATTAGAGGAAGT
+chr3 27834838 27834852 +V_ETS2_B 3.49025e-06 + TAGAGGAAGTGTGT
+chr3 27834839 27834854 +V_ETS1_B 5.1099e-06 + AGAGGAAGTGTGTCA
+chr3 28116127 28116136 -V_PAX2_02 4.03003e-06 - CATAAACCC
+chr3 28551606 28551617 +V_GAF_Q6 3.96396e-06 + CACATTCCCAT
+chr3 28551650 28551665 +V_OCT4_01 3.04012e-06 + CTTTATTATGCAAAG
+chr3 28551687 28551701 +V_COUP_01 9.24456e-06 + TGAACCTTGAAGAT
+chr3 28551721 28551736 +V_AML_Q6 7.40012e-06 + GTGCTTGTGGTTTGA
+chr3 31304906 31304921 +V_SREBP_Q6 9.90089e-06 + TCTCTCACTCCAGGG
+chr3 31304906 31304921 +V_SREBP1_Q5 6.2466e-06 + TCTCTCACTCCAGGG
+chr3 31472979 31472992 +V_HNF4ALPHA_Q6 6.68176e-06 + CTGAGCTTTGCAT
+chr3 31472990 31473011 -V_PAX6_01 1.89903e-06 - AATATTTACACATGAGTTAAT
+chr3 32529277 32529291 +V_STRA13_01 4.56756e-06 + CCATCACGTGATGT
+chr3 32529325 32529336 +V_FOXO4_01 3.75885e-06 + CTAAACAAGCC
+chr3 32658006 32658025 -V_NRSF_Q4 6.61005e-06 - GTTCTGTACATGGTGGTCA
+chr3 34552970 34552985 +V_OCT4_01 2.11448e-06 + CATTGTGATGCATAT
+chr3 34553004 34553023 -V_NRSF_Q4 6.66898e-07 - GAACTGTCGACTGTGCTCA
+chr3 37310931 37310947 +V_ARNT_01 3.51547e-06 + GGGGTCACGTGTTTTC
+chr3 37310931 37310947 -V_ARNT_01 4.8569e-06 - GAAAACACGTGACCCC
+chr3 37310932 37310946 +V_USF_01 9.79746e-06 + GGGTCACGTGTTTT
+chr3 37310932 37310946 +V_USF_02 9.6652e-06 + GGGTCACGTGTTTT
+chr3 37310932 37310946 -V_USF_01 9.79746e-06 - AAAACACGTGACCC
+chr3 37310932 37310946 -V_USF_02 9.6652e-06 - AAAACACGTGACCC
+chr3 37310933 37310945 -V_USF_Q6_01 1.82823e-06 - AAACACGTGACC
+chr3 37552973 37552983 -V_GATA6_01 2.4539e-06 - AAAGATAAGC
+chr3 37552981 37552999 +V_FOXJ2_01 1.40736e-06 + TTCAAAACAAACATTTAC
+chr3 37552983 37552996 +V_HNF3_Q6 3.26963e-06 + CAAAACAAACATT
+chr3 37552984 37552997 -V_HFH4_01 2.9856e-06 - AAATGTTTGTTTT
+chr3 37552985 37552997 -V_FOXD3_01 8.64709e-07 - AAATGTTTGTTT
+chr3 37553017 37553031 -V_NFKB_Q6 1.83043e-06 - AGGGGAACTTCCTC
+chr3 37553067 37553078 -V_EGR_Q6 7.49326e-06 - GTGGGGGTGAC
+chr3 37553067 37553081 +V_KROX_Q6 4.02412e-06 + GTCACCCCCACCCC
+chr3 37553069 37553081 +V_PAX4_03 2.40392e-07 + CACCCCCACCCC
+chr3 37553072 37553082 +V_SP1_Q2_01 9.56538e-06 + CCCCACCCCT
+chr3 37738060 37738088 -V_PAX5_01 7.78234e-06 - CCCCAGGGCTGGGATGTGGGAAGGCTCT
+chr3 37738073 37738089 -V_AP2_Q3 7.62107e-06 - GCCCCAGGGCTGGGAT
+chr3 37874384 37874400 +V_AP2_Q3 9.06701e-07 + AGCCCCGGGCTGTGAG
+chr3 37874385 37874394 +V_AP2ALPHA_01 6.01835e-06 + GCCCCGGGC
+chr3 37874385 37874394 +V_AP2GAMMA_01 6.01835e-06 + GCCCCGGGC
+chr3 37874385 37874394 -V_AP2ALPHA_01 3.00918e-06 - GCCCGGGGC
+chr3 37874385 37874394 -V_AP2GAMMA_01 3.00918e-06 - GCCCGGGGC
+chr3 37874481 37874495 -V_CDX2_Q5 3.05854e-07 - CAACTTTTATGGCC
+chr3 37874510 37874525 +V_SREBP_Q6 5.81609e-06 + CCACTCAGCCCAGGG
+chr3 37874510 37874525 +V_SREBP1_Q5 6.2466e-06 + CCACTCAGCCCAGGG
+chr3 38342600 38342613 -V_AP2_Q6_01 6.01724e-06 - CTTCCCCCAGGCC
+chr3 38342650 38342674 -V_STAT5A_02 6.02621e-06 - TTCCCAGATAGCTACTTCCTGGGA
+chr3 38342653 38342665 -V_ETS_Q4 1.51985e-06 - AGCTACTTCCTG
+chr3 51027611 51027623 -V_GCM_Q2 8.99535e-06 - CACACCCACATT
+chr3 51027653 51027665 -V_GLI_Q2 3.63816e-06 - CTTGGGGGGTCC
+chr3 51027654 51027663 -V_ZIC1_01 9.41154e-06 - TGGGGGGTC
+chr3 51027654 51027663 -V_ZIC3_01 7.18016e-06 - TGGGGGGTC
+chr3 51027667 51027681 +V_NFKB_Q6 1.33876e-06 + ATGGGAATTTCCTT
+chr3 51027668 51027680 +V_NFKB_C 9.50027e-06 + TGGGAATTTCCT
+chr3 51027668 51027684 -V_NFKB_Q6_01 8.55659e-06 - CTGAAGGAAATTCCCA
+chr3 51027669 51027679 +V_NFKAPPAB65_01 9.08563e-07 + GGGAATTTCC
+chr3 51027669 51027679 +V_CREL_01 7.08941e-06 + GGGAATTTCC
+chr3 51027669 51027679 +V_NFKAPPAB_01 1.65463e-06 + GGGAATTTCC
+chr3 51027680 51027690 -V_ESE1_Q3 5.33438e-06 - AGTTTCCTGA
+chr3 51927817 51927826 -V_SMAD3_Q6 4.03003e-06 - TGTCTGTCT
+chr3 53317339 53317353 +V_FXR_Q3 8.7899e-06 + CAGGGTGAGTGGCC
+chr3 53317412 53317427 -V_SRF_Q5_01 8.51955e-06 - CCACATAGGGAGAGT
+chr3 55392180 55392201 +V_DR3_Q4 1.7376e-06 + GCTGCCCTGGCTGACCCTCGG
+chr3 57755562 57755578 +V_NFKB_Q6_01 5.20206e-06 + AACTGGGGAACTCCCT
+chr3 57755565 57755579 +V_NFKB_Q6 7.6961e-06 + TGGGGAACTCCCTG
+chr3 57755592 57755603 +V_LEF1TCF1_Q4 3.42525e-06 + CCTTTGTTCTT
+chr3 57755626 57755639 -V_STAT_Q6 4.9181e-06 - GCAGTTTCTGGGA
+chr3 57755677 57755692 -V_DMRT1_01 9.21473e-06 - AGGATACTTTGTAGC
+chr3 60386762 60386777 -V_TATA_01 8.80773e-06 - GTATAAAAAGACTGC
+chr3 60386778 60386798 +V_YY1_02 3.43383e-06 + CTTAGGCCATCTTGCCTGGC
+chr3 60386783 60386792 +V_YY1_Q6 3.30926e-06 + GCCATCTTG
+chr3 61600168 61600191 -V_COUPTF_Q6 6.23491e-08 - TTCCATGACCTTAGCCCTTTGAC
+chr3 61600169 61600190 +V_PPARG_01 3.70685e-06 + TCAAAGGGCTAAGGTCATGGA
+chr3 61600172 61600186 -V_COUP_01 2.42875e-06 - TGACCTTAGCCCTT
+chr3 61600173 61600186 +V_RXRLXRB_01 7.77466e-06 + AGGGCTAAGGTCA
+chr3 61600173 61600186 +V_DR1_Q3 5.94376e-06 + AGGGCTAAGGTCA
+chr3 61600173 61600186 -V_PPAR_DR1_Q2 6.37174e-06 - TGACCTTAGCCCT
+chr3 61600173 61600186 -V_HNF4_DR1_Q3 1.30595e-06 - TGACCTTAGCCCT
+chr3 61600173 61600187 +V_HNF4_Q6_01 6.48063e-06 + AGGGCTAAGGTCAT
+chr3 61600174 61600187 -V_HNF4ALPHA_Q6 8.75211e-06 - ATGACCTTAGCCC
+chr3 61600242 61600256 -V_FOXO3_01 2.15672e-06 - TCTTTGTTTACAAA
+chr3 61600244 61600256 +V_FOXO3A_Q1 9.47139e-06 + TGTAAACAAAGA
+chr3 65461446 65461461 -V_OCT1_Q6 8.17489e-06 - TGAAATGCAAAGCAC
+chr3 65461449 65461464 -V_OCT4_01 8.76645e-07 - TATTGAAATGCAAAG
+chr3 65461464 65461476 +V_NANOG_01 7.60378e-06 + GAGACCATTTAC
+chr3 65708777 65708792 +V_BACH1_01 3.0201e-06 + TGGGTGAGTCATGGC
+chr3 65708779 65708790 +V_BACH2_01 2.44531e-06 + GGTGAGTCATG
+chr3 65708794 65708806 +V_CEBP_Q3 1.5189e-07 + GAATTTGGCAAA
+chr3 65766742 65766754 -V_GATA4_Q3 2.87109e-06 - AGATCAAAGGGA
+chr3 65766743 65766753 -V_LEF1_Q2_01 1.81713e-06 - GATCAAAGGG
+chr3 65766744 65766755 +V_LEF1TCF1_Q4 1.56074e-06 + CCTTTGATCTC
+chr3 65766785 65766801 -V_GRE_C 3.14765e-06 - GTCATCATGTGTCCTG
+chr3 65766795 65766809 -V_ERR1_Q2 2.07148e-06 - AGCTGAAGGTCATC
+chr3 69462250 69462258 -V_CACD_01 9.89755e-06 - CCACACCC
+chr3 69462309 69462325 +V_HAND1E47_01 6.45162e-06 + GAGGGGGTCTGGAAAC
+chr3 69462346 69462374 +V_PAX5_01 3.06809e-06 + GCCTCAGGCCAGGTGGCAGGGCAGCTCC
+chr3 69462352 69462362 -V_EBOX_Q6_01 6.43409e-06 - CCACCTGGCC
+chr3 69805633 69805656 -V_COUPTF_Q6 2.04937e-06 - TTCCCTGACCTCCCCCCACGCCT
+chr3 69805637 69805648 +V_EGR_Q6 7.1239e-06 + GTGGGGGGAGG
+chr3 72662662 72662677 -V_OCT4_01 8.48593e-06 - TATTATAATGTAAAA
+chr3 72662722 72662734 -V_GATA4_Q3 5.08916e-06 - AGAAAAAGGGGA
+chr3 72662899 72662909 -V_NKX25_Q5 5.12638e-06 - TGCCACTTCA
+chr3 72662963 72662971 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr3 78758546 78758563 +V_DR4_Q2 9.38508e-06 + TGTCCTTCCCTGTCCTC
+chr3 78758554 78758563 +V_T3R_Q6 8.74404e-06 + CCTGTCCTC
+chr3 79239025 79239038 -V_PPAR_DR1_Q2 9.61169e-06 - GGACCTGTGGCCT
+chr3 79239025 79239038 -V_COUP_DR1_Q6 6.2921e-06 - GGACCTGTGGCCT
+chr3 79239033 79239044 -V_GATA_C 6.82081e-06 - GGATAAGGACC
+chr3 79239077 79239089 +V_NANOG_01 5.79837e-06 + GGGGCCATTGTC
+chr3 79239082 79239097 +V_OCT4_01 2.64195e-06 + CATTGTCATTCAAAC
+chr3 79239083 79239098 +V_OCT4_02 9.71581e-06 + ATTGTCATTCAAACC
+chr3 79655958 79655966 -V_CACD_01 9.89755e-06 - CCACACCC
+chr3 79656050 79656063 +V_AP2_Q6_01 6.01724e-06 + CCTGCCTCAGGCC
+chr3 79656059 79656071 +V_USF_Q6_01 4.40024e-06 + GGCCAGGTGACA
+chr3 80825829 80825842 -V_SP1_Q6 3.85413e-06 - GAGGGGCGGGATC
+chr3 80838830 80838842 +V_GLI_Q2 2.78663e-06 + TGTGGGTGGTCA
+chr3 80838832 80838841 +V_ZIC1_01 2.71739e-06 + TGGGTGGTC
+chr3 80838832 80838841 +V_ZIC2_01 4.94877e-06 + TGGGTGGTC
+chr3 80838832 80838841 +V_ZIC3_01 2.71739e-06 + TGGGTGGTC
+chr3 80838919 80838928 -V_HNF4_Q6 7.33929e-06 - AAGGTCCAG
+chr3 82222448 82222460 +V_OCT1_07 4.78768e-06 + ATTATGTTAATT
+chr3 82222449 82222459 +V_POU3F2_02 1.99833e-06 + TTATGTTAAT
+chr3 82222509 82222521 +V_NANOG_01 7.60378e-06 + AGAACCATTTCC
+chr3 82222511 82222523 +V_ETS_Q4 2.93415e-06 + AACCATTTCCTG
+chr3 84235016 84235030 -V_KROX_Q6 4.70749e-06 - CCCACCCCCACAGC
+chr3 84235019 84235030 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr3 84235021 84235030 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr3 84235021 84235031 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr3 84235021 84235034 +V_MAZR_01 9.79421e-06 + GGGGGTGGGGAAG
+chr3 84235022 84235034 -V_PAX4_03 4.004e-06 - CTTCCCCACCCC
+chr3 84235028 84235056 +V_PAX5_01 3.55598e-06 + GGGAAGGCCAAGGATGTGGGGCCAGCAG
+chr3 84576014 84576028 +V_CREB_Q2_01 7.34784e-06 + GGTGTCGTCACCTC
+chr3 84576044 84576057 +V_SP1_Q6 7.54104e-06 + TGGGGGTGGGGTG
+chr3 84576045 84576054 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr3 84576045 84576055 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr3 84576052 84576060 -V_CACD_01 9.89755e-06 - CCACACCC
+chr3 84576067 84576079 +V_MEIS1_01 4.98874e-06 + CAGTGACAGAGG
+chr3 84576099 84576109 +V_GATA6_01 9.61771e-06 + ACAGATAAGC
+chr3 84576126 84576137 -V_MAF_Q6_01 2.65014e-06 - TGCTGAGGCAG
+chr3 85182412 85182424 +V_NMYC_01 3.7355e-07 + CCCCACGTGCCC
+chr3 85182414 85182422 +V_USF_C 9.89755e-06 + CCACGTGC
+chr3 85182414 85182424 +V_EBOX_Q6_01 4.06927e-06 + CCACGTGCCC
+chr3 85182521 85182549 +V_PAX5_01 3.2023e-07 + GTGTGGGGCAGGGGAGGGGAGCAAGACC
+chr3 85182530 85182540 -V_SP1_Q2_01 6.40385e-06 - CCCCTCCCCT
+chr3 85182530 85182543 +V_MAZR_01 9.36507e-06 + AGGGGAGGGGAGC
+chr3 85182531 85182539 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr3 85182531 85182540 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr3 86754843 86754862 -V_PU1_Q4 3.46223e-06 - TCTCTCCATTTCCCCTCTC
+chr3 87161867 87161883 -V_AP2_Q3 5.02857e-06 - GGCCTCAGGCAGTGGT
+chr3 87161903 87161921 -V_MYOD_Q6_01 2.07226e-06 - CCCAGGCAGCTGACGATG
+chr3 88035279 88035293 -V_E2A_Q2 9.11856e-06 - CCCCCTGCCTCTGC
+chr3 88035285 88035300 -V_SREBP_Q6 8.95186e-06 - CAGCTCACCCCCTGC
+chr3 88035320 88035335 -V_CP2_02 2.79448e-06 - ACTGGGTCTGGCTAG
+chr3 88035323 88035334 +V_CP2_01 2.42582e-06 + GCCAGACCCAG
+chr3 88035399 88035409 -V_NKX25_Q5 5.12638e-06 - TCCCACTTCA
+chr3 88085624 88085645 +V_NRSE_B 7.74965e-06 + CTTAGGACTTAGGACAGTACC
+chr3 88375872 88375881 -V_ZIC1_01 4.94877e-06 - GGGGTGGTC
+chr3 88375872 88375881 -V_ZIC2_01 2.23138e-06 - GGGGTGGTC
+chr3 88375919 88375933 -V_CHX10_01 2.27523e-06 - AGCTAATTAGCTGG
+chr3 88375921 88375935 +V_CHX10_01 1.10785e-06 + AGCTAATTAGCTGA
+chr3 88375946 88375960 -V_NFY_C 8.88045e-06 - CCTGTTTGGTTAAT
+chr3 88379680 88379691 +V_MYB_Q3 3.40516e-06 + ACTGGCAGTTG
+chr3 88379682 88379691 -V_MYB_Q5_01 8.74404e-06 - CAACTGCCA
+chr3 88736150 88736161 +V_IRF_Q6_01 3.86751e-06 + AAAACTGAAAG
+chr3 88736150 88736165 -V_IRF_Q6 3.19596e-06 - CCCCCTTTCAGTTTT
+chr3 88736160 88736169 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr3 88736160 88736170 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr3 88736160 88736171 -V_SP1SP3_Q4 2.8432e-06 - CCCCCTCCCCC
+chr3 88736161 88736169 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr3 88736161 88736170 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr3 88736161 88736171 +V_SP1_Q6_01 8.48538e-06 + GGGGAGGGGG
+chr3 89270760 89270774 +V_BLIMP1_Q6 5.48422e-06 + AGGCAGGGAATTGA
+chr3 89270858 89270873 +V_CP2_02 1.26983e-06 + ACTGGCTTGCTCTGG
+chr3 89382910 89382919 +V_AP2ALPHA_01 6.01835e-06 + GCCCCGGGG
+chr3 89382910 89382919 +V_AP2GAMMA_01 4.51376e-06 + GCCCCGGGG
+chr3 89382911 89382920 -V_AP2ALPHA_01 6.01835e-06 - GCCCCGGGG
+chr3 89382911 89382920 -V_AP2GAMMA_01 4.51376e-06 - GCCCCGGGG
+chr3 89382945 89382957 -V_LMO2COM_01 7.876e-06 - GCCCAGCTGCTG
+chr3 89382970 89382984 +V_PAX6_Q2 1.51625e-06 + CTGACCTGTGACTA
+chr3 89382971 89382984 +V_COUP_DR1_Q6 3.77778e-06 + TGACCTGTGACTA
+chr3 89630394 89630408 +V_FXR_Q3 4.30883e-06 + CAGGGTCAGTTACC
+chr3 89630420 89630434 -V_NFY_C 2.79094e-06 - GTTGATTGGTTGCT
+chr3 89630461 89630476 -V_OCT4_01 6.46423e-06 - CTTTGTTGTGCAAAC
+chr3 89630488 89630502 +V_POU3F2_01 7.71434e-06 + AAGAATTCATTCAT
+chr3 89955399 89955408 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr3 89955475 89955503 -V_PAX5_01 2.6428e-06 - CCAACAGGCATGGGTGGAGAGCATGCCT
+chr3 90472927 90472936 +V_AP2ALPHA_01 9.68294e-06 + GCCCGAGGC
+chr3 90472937 90472955 -V_NF1_Q6 2.75309e-06 - GCTTGGCCAGCTGCCCAC
+chr3 90472940 90472950 -V_TAL1_Q6 4.87508e-06 - GCCAGCTGCC
+chr3 90472960 90472970 +V_TATA_C 2.98837e-06 + TCTATAAAAG
+chr3 90472961 90472976 +V_TATA_01 3.13103e-06 + CTATAAAAGCAGCTG
+chr3 90834228 90834240 -V_PXR_Q2 7.73425e-06 - AGGGTTAATAGA
+chr3 90834509 90834521 +V_HNF6_Q6 6.78715e-06 + CAAAATCAATCT
+chr3 94470129 94470138 +V_AP2ALPHA_01 9.68294e-06 + GCCCGAGGG
+chr3 94470129 94470138 +V_AP2GAMMA_01 7.85065e-06 + GCCCGAGGG
+chr3 94859000 94859016 -V_MAF_Q6 3.8473e-06 - AGGAAGGATGTGGCCT
+chr3 94859121 94859137 -V_LXR_DR4_Q3 9.50208e-06 - TTCCCTGATGTAACCC
+chr3 98999921 98999938 +V_PPARG_03 5.76105e-06 + AACTGGGATAAAATTCA
+chr3 101210128 101210136 -V_CACD_01 9.89755e-06 - CCACACCC
+chr3 101212981 101212994 -V_SP1_Q6 5.65055e-06 - TGGGGGAGGAGCC
+chr3 101399290 101399307 +V_PU1_01 3.40964e-06 + ACAATGGGGAAGTTGTA
+chr3 101767570 101767591 +V_PPARG_01 7.8357e-06 + ACAAAGGTCACAGGACACGCC
+chr3 101767574 101767587 +V_RXRLXRB_01 6.42396e-06 + AGGTCACAGGACA
+chr3 101767574 101767587 +V_DR1_Q3 8.65089e-06 + AGGTCACAGGACA
+chr3 101767594 101767608 +V_MTF1_Q4 9.78336e-06 + TGTGAACACAGCCC
+chr3 101767631 101767644 +V_P50P50_Q3 7.83857e-06 + GAGGGATTTCCAG
+chr3 101767718 101767729 -V_PITX2_Q2 9.46105e-06 - ACTAATCCCAG
+chr3 101767718 101767731 -V_CRX_Q4 5.63941e-07 - CCACTAATCCCAG
+chr3 102409358 102409373 +V_OCT4_01 6.46423e-06 + TATTCATATGCTAAA
+chr3 102409359 102409374 +V_OCT4_02 6.14224e-06 + ATTCATATGCTAAAT
+chr3 102409429 102409444 +V_OCT4_01 1.79634e-06 + CTTTATTATGCAAAC
+chr3 102522028 102522043 +V_OCT4_01 1.40241e-06 + TATTGTAATGCTAAA
+chr3 102522029 102522044 +V_OCT4_02 6.55103e-06 + ATTGTAATGCTAAAT
+chr3 102522090 102522105 +V_OCT4_01 1.94673e-06 + TTTTGTTGTGCAAAT
+chr3 103654538 103654553 -V_OCT4_01 5.63049e-06 - CTTAGACATGCAAAC
+chr3 103654693 103654706 +V_HNF4ALPHA_Q6 5.02179e-06 + CTGATCTTTGCCT
+chr3 104110278 104110296 -V_RFX1_02 5.5622e-06 - CCGTCAGCATGGCAACAA
+chr3 104110336 104110353 +V_HSF1_Q6 6.63507e-07 + ATTCCCGGAGTTTCTCG
+chr3 104110337 104110350 +V_HSF_Q6 3.92835e-07 + TTCCCGGAGTTTC
+chr3 104617926 104617936 -V_KAISO_01 9.08563e-07 - TTCCTGCTAG
+chr3 105231008 105231021 -V_SP1_Q6 8.76141e-06 - TGGGGGTGGGGGG
+chr3 105231009 105231020 +V_SP1SP3_Q4 8.91927e-06 + CCCCCACCCCC
+chr3 105792700 105792719 -V_PPARA_02 3.76248e-06 - CTAGGCCATTTGGGTGAGA
+chr3 105792747 105792760 +V_P50P50_Q3 1.06962e-06 + TAGGGAATCCCCC
+chr3 105792748 105792760 +V_NFKB_C 8.754e-06 + AGGGAATCCCCC
+chr3 105792748 105792764 -V_NFKB_Q6_01 8.55659e-06 - CTCAGGGGGATTCCCT
+chr3 105792749 105792759 -V_NFKAPPAB_01 3.62595e-06 - GGGGATTCCC
+chr3 107181899 107181914 -V_STAT5B_01 8.9266e-06 - GAGTTCTTGGAATAC
+chr3 107380660 107380672 +V_LMO2COM_01 8.35505e-06 + CTCCAGCTGCAG
+chr3 107380737 107380752 -V_CP2_02 4.34296e-06 - TCTGGGTGGAACTGG
+chr3 107380763 107380786 -V_COUPTF_Q6 2.31388e-06 - CTGGCTGACCCCTCCCCAGGTCT
+chr3 107380768 107380781 +V_MAZR_01 2.79447e-06 + TGGGGAGGGGTCA
+chr3 107380769 107380777 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr3 107380769 107380778 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr3 107380769 107380779 +V_SP1_Q6_01 9.74073e-06 + GGGGAGGGGT
+chr3 107380773 107380788 +V_SMAD4_Q6 1.48951e-06 + AGGGGTCAGCCAGCT
+chr3 108673719 108673728 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr3 108673752 108673767 -V_EVI1_04 4.53861e-06 - GGTTAAGACTGGATA
+chr3 108673821 108673832 -V_ER_Q6_02 4.31756e-06 - CAGGTCAAGGT
+chr3 112042644 112042654 +V_P53_02 6.68297e-06 + AGGCATGTCT
+chr3 112042644 112042654 -V_P53_02 9.08563e-07 - AGACATGCCT
+chr3 112042713 112042728 +V_OCT4_01 2.64195e-06 + TATTCTAATGTTAAT
+chr3 112042751 112042765 -V_NFKB_Q6 8.78215e-06 - TGGGGACTCTCTCC
+chr3 116426146 116426161 +V_CP2_02 1.26983e-06 + ACTGGCTTGCTCTGG
+chr3 121229182 121229201 -V_SEF1_C 4.95793e-06 - AACAGGGAGCTCTGCGGCT
+chr3 122814331 122814340 +V_FOXO1_Q5 7.27852e-06 + AAAAACAAA
+chr3 122814591 122814607 -V_AP2_Q3 7.62107e-06 - GCCCCAAGGCAAAGAG
+chr3 124309171 124309186 +V_OCT4_01 6.02107e-06 + TTTTCATTTGCAAAT
+chr3 124309172 124309187 +V_OCT4_02 4.618e-06 + TTTCATTTGCAAATG
+chr3 124309188 124309202 +V_BLIMP1_Q6 2.72511e-06 + AGAGAGTGAATGGG
+chr3 124309227 124309237 -V_POU3F2_02 5.63759e-06 - ATATGTTAAT
+chr3 124309227 124309242 -V_OCT4_01 5.63049e-06 - CTTTCATATGTTAAT
+chr3 127247761 127247777 -V_MMEF2_Q6 1.73671e-06 - CTCTTTAAAAAAAATC
+chr3 127247833 127247844 +V_HELIOSA_02 3.44301e-06 + AAAAGGAAAAA
+chr3 127247864 127247887 +V_PPARG_02 9.457e-06 + ACCCAGGTCCCCAGGACCTACTT
+chr3 127247864 127247887 -V_PPARG_02 6.7077e-06 - AAGTAGGTCCTGGGGACCTGGGT
+chr3 127625271 127625286 -V_CP2_02 1.70662e-06 - GCTGGGCTGGGCTTG
+chr3 127625289 127625313 +V_COMP1_01 3.0805e-06 + AGGTTAGAATGAGGACAAGCGGTC
+chr3 128983518 128983533 +V_DMRT1_01 3.71498e-06 + AAGAAACAATGTTTC
+chr3 128983520 128983535 -V_DMRT1_01 1.07818e-07 - CTGAAACATTGTTTC
+chr3 130065977 130065992 +V_DMRT3_01 9.50989e-06 + AAGTGGTTACATTCT
+chr3 130065980 130065995 +V_DMRT1_01 7.06381e-06 + TGGTTACATTCTTGC
+chr3 130318855 130318866 -V_EVI1_02 7.03917e-06 - AGATAAGACAG
+chr3 130318974 130318987 -V_AP2_Q6_01 3.36599e-06 - CTCCCCCCAGGCT
+chr3 130805350 130805358 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr3 130952600 130952609 +V_LRF_Q2 8.50606e-06 + GGGACCCCC
+chr3 133020533 133020543 +V_TITF1_Q3 4.46892e-06 + AGTCAAGTGT
+chr3 133020553 133020562 +V_LYF1_01 7.33929e-06 + TTTGGGAGA
+chr3 133020565 133020577 +V_NANOG_01 1.11816e-06 + GAGACCATTTCC
+chr3 133181923 133181935 +V_ELF1_Q6 3.08919e-06 + GCTAGAGGAAGT
+chr3 133181926 133181941 +V_ETS1_B 4.81407e-06 + AGAGGAAGTGTGGCC
+chr3 133181957 133181972 -V_IRF_Q6 5.07439e-06 - TTGGCTTTCAGTTCT
+chr3 133181967 133181977 +V_MYB_Q6 5.43478e-06 + GCCAACTGCC
+chr3 133181969 133181978 +V_MYB_Q5_01 8.74404e-06 + CAACTGCCA
+chr3 133195692 133195713 -V_HNF1_Q6_01 1.55823e-06 - CTCTGTTACAAATTAACTTAG
+chr3 133195742 133195752 +V_MYB_Q6 8.47717e-06 + GTTAACTGGC
+chr3 133195756 133195772 -V_MAF_Q6 1.30126e-06 - TGAGGGGAAGTAGCCT
+chr3 134995743 134995758 -V_ETS1_B 3.39747e-06 - ACAGGAAGTTTTTGG
+chr3 134995855 134995872 +V_PU1_01 5.34363e-06 + AGAAAGAGGAAGGGAGG
+chr3 134995856 134995875 -V_PU1_Q4 5.01979e-07 - CCTCCTCCCTTCCTCTTTC
+chr3 135351025 135351040 +V_AML_Q6 9.50186e-06 + AACTATGTGGTTTTC
+chr3 135370560 135370570 -V_GATA1_05 5.81636e-06 - ACAGATAACA
+chr3 135370601 135370612 +V_MYB_Q3 8.33763e-06 + AGGGACAGTTG
+chr3 136597295 136597316 -V_DR3_Q4 6.89772e-06 - GAAGCACTTTCTGCCCTTTAG
+chr3 136597684 136597695 -V_HELIOSA_02 3.44301e-06 - TAAAGGAAAAA
+chr3 137496178 137496195 +V_PU1_01 8.64552e-07 + GGAAGGGGGAAGTTGGG
+chr3 137496179 137496198 -V_PU1_Q4 1.85682e-06 - CTCCCCAACTTCCCCCTTC
+chr3 137496180 137496196 +V_MAF_Q6 2.33338e-07 + AAGGGGGAAGTTGGGG
+chr3 137496207 137496220 -V_STAT_Q6 8.60737e-06 - CTTACTTCTGGGA
+chr3 137496293 137496305 -V_NFKB_C 6.01374e-06 - TGGGATTCCCCA
+chr3 138015299 138015319 +V_FOXP1_01 3.5996e-06 + TTTTTTTTGTTTTGTTTTGT
+chr3 138313786 138313804 +V_LXR_Q3 4.63977e-06 + TGGGTTCAGCAGGGTTCA
+chr3 138313787 138313799 -V_VDR_Q6 4.53853e-06 - CCTGCTGAACCC
+chr3 138313797 138313809 -V_VDR_Q6 5.57988e-06 - CCCATTGAACCC
+chr3 138313826 138313837 +V_CP2_01 3.35857e-06 + GCTCAAACCAG
+chr3 141512351 141512366 +V_OCT4_01 5.63049e-06 + TTTAGAGATGCAAAT
+chr3 143172709 143172722 -V_AP2_Q6_01 9.55245e-06 - CTTGCCCCAGGCC
+chr3 143172736 143172749 -V_SOX_Q6 1.4467e-06 - CTCTTTGTTTTGC
+chr3 143172780 143172789 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr3 144075686 144075699 +V_SP1_Q6 4.83523e-06 + AGGGGGTGGGGGG
+chr3 144075687 144075696 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr3 144075687 144075697 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr3 144075687 144075698 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr3 144075691 144075702 +V_EGR_Q6 6.21659e-06 + GTGGGGGGAAC
+chr3 144075750 144075766 +V_AHRARNT_01 8.02518e-06 + GTAGAGACGCGTGCAG
+chr3 144076053 144076065 +V_MEIS1_01 3.29616e-07 + CTGTGACAGGGC
+chr3 144076064 144076077 +V_FOX_Q2 8.50378e-06 + CACTGTTTGCTTT
+chr3 144076081 144076104 +V_OCT1_04 2.66425e-06 + GCAAAGACATGCAAATAAAGACA
+chr3 144076087 144076100 -V_OCT_C 5.21366e-06 - TTTATTTGCATGT
+chr3 144076088 144076099 -V_OCT1_Q5_01 6.50785e-06 - TTATTTGCATG
+chr3 144076088 144076099 -V_OCT_Q6 6.34669e-06 - TTATTTGCATG
+chr3 144076928 144076946 -V_GCNF_01 2.9359e-06 - GGAGAGGTCAAGGGCACT
+chr3 144076931 144076954 +V_COUPTF_Q6 6.23491e-08 + GCCCTTGACCTCTCCACCTCGCC
+chr3 144306499 144306508 -V_SMAD3_Q6 4.03003e-06 - TGTCTGTCT
+chr3 145452520 145452532 -V_GATA4_Q3 9.72874e-06 - AGATCAAAGGCA
+chr3 145452521 145452531 -V_LEF1_Q2_01 5.84716e-06 - GATCAAAGGC
+chr3 145452522 145452533 +V_LEF1TCF1_Q4 1.10645e-06 + CCTTTGATCTT
+chr3 153022952 153022961 -V_SMAD3_Q6 7.33929e-06 - TGTCTGCCT
+chr3 156984904 156984919 -V_OCT4_01 5.31494e-07 - CATTGTAATGTAGAT
+chr3 156984969 156984983 -V_DMRT7_01 7.83627e-06 - TTGTTACCACGTTG
+chr3 157529900 157529909 +V_AP1_C 7.33929e-06 + GTGAGTCAG
+chr3 157584441 157584453 +V_NFKB_C 3.77632e-06 + TGGGATTTTCCC
+chr3 157584441 157584457 -V_NFKB_Q6_01 5.51246e-07 - TGCAGGGAAAATCCCA
+chr3 157584442 157584452 +V_NFKAPPAB65_01 9.69629e-06 + GGGATTTTCC
+chr3 157584442 157584452 +V_NFKAPPAB_01 9.4096e-06 + GGGATTTTCC
+chr4 4716632 4716641 -V_CKROX_Q2 8.90515e-06 - TCCCTCCCC
+chr4 4716734 4716751 -V_HSF1_Q6 6.25214e-06 - ATTCTGGGAGATTCCTC
+chr4 5306564 5306579 -V_STAT5B_01 7.66421e-06 - CCTTTCCTGGAATTA
+chr4 5306609 5306628 +V_PU1_Q4 4.24609e-07 + TGCATCAACTTCCTCATTC
+chr4 5306616 5306628 -V_ELF1_Q6 9.35761e-06 - GAATGAGGAAGT
+chr4 6896076 6896091 +V_OCT4_01 4.01204e-06 + TTTTGTCTTGCAGAT
+chr4 6896077 6896092 +V_OCT4_02 6.36693e-07 + TTTGTCTTGCAGATG
+chr4 6896193 6896208 -V_OCT1_Q6 8.77396e-06 - AGAGATGCAAATACC
+chr4 9044607 9044627 -V_PPARA_01 6.56046e-06 - CAGCACAGGGGCAAAGCTCT
+chr4 9044673 9044685 -V_PAX4_03 9.67001e-06 - CACATCCACCCG
+chr4 9044977 9044987 -V_KAISO_01 7.59153e-06 - ATCCTGCTAG
+chr4 9045058 9045069 +V_AP1_Q2 7.33929e-06 + ACTGACTAAGT
+chr4 9045058 9045069 +V_AP1_Q4 5.85286e-06 + ACTGACTAAGT
+chr4 13023479 13023491 +V_OCT1_07 4.08015e-06 + TTTATGGAAATT
+chr4 13023509 13023524 -V_OCT4_02 1.50435e-06 - ATTGACATTCAGATG
+chr4 13023510 13023525 -V_OCT4_01 4.91956e-06 - CATTGACATTCAGAT
+chr4 13493110 13493122 -V_GATA4_Q3 2.87109e-06 - AGATCAAAGGGA
+chr4 13493111 13493121 -V_LEF1_Q2_01 1.81713e-06 - GATCAAAGGG
+chr4 13493122 13493136 +V_ETS2_B 3.31607e-06 + GGCAGGAAGCACGC
+chr4 13733615 13733628 +V_HFH8_01 3.35937e-06 + ACTTGTTTATTTG
+chr4 13733616 13733626 -V_FOXO1_01 7.37669e-06 - AATAAACAAG
+chr4 13733748 13733759 +V_FOXO4_01 9.75039e-06 + ATAAACAATTC
+chr4 16015448 16015463 +V_OCT4_02 3.74554e-06 + TTTGTCTTTCTAATT
+chr4 17510069 17510085 +V_MAF_Q6 9.37112e-06 + TAGGGGGAAGGTGGGC
+chr4 17510118 17510132 +V_ETS2_B 7.56374e-07 + GGCAGGAAGCCCTT
+chr4 17510122 17510137 -V_VDRRXR_01 3.85335e-06 - GGGTCAAGGGCTTCC
+chr4 17510196 17510213 -V_PPARG_03 1.95083e-06 - AACTGGGGTAAAATTCA
+chr4 19949521 19949534 +V_HNF4_DR1_Q3 9.09944e-06 + TGAACTTTGTGCA
+chr4 19949532 19949547 +V_OCT4_01 2.64195e-06 + CATTGTAATGGTAAT
+chr4 19949597 19949612 +V_OCT4_02 1.18248e-06 + TTTGTCTTTCAAATG
+chr4 20900688 20900699 -V_E12_Q6 8.542e-06 - CGCAGGTGGCA
+chr4 20900718 20900732 +V_E2A_Q2 5.45571e-06 + ACACCTGCTGCAGT
+chr4 20900768 20900783 -V_AR_Q2 2.46616e-06 - AGAAGCTTTTGTACT
+chr4 24364557 24364570 -V_OCT_C 6.71556e-06 - CTCCTTTGCATTT
+chr4 24364594 24364604 -V_POU3F2_02 1.99833e-06 - TTATGTTAAT
+chr4 25723456 25723471 -V_HES1_Q2 6.50005e-06 - GGGGCTTGTGGCTAC
+chr4 25723529 25723540 -V_PAX_Q6 9.42649e-06 - CTGGGAATCAC
+chr4 25723584 25723593 -V_LYF1_01 7.33929e-06 - TTTGGGAGA
+chr4 26281125 26281146 +V_PPARG_01 9.81973e-06 + AATGGGGAGAAAGTTCACAAG
+chr4 26281147 26281156 +V_ZIC2_01 7.66616e-06 + AGGGTGGTC
+chr4 26281169 26281184 -V_OCT4_02 3.61302e-07 - ATTCTGATGCTAATT
+chr4 26281170 26281185 -V_OCT4_01 1.94673e-06 - TATTCTGATGCTAAT
+chr4 26281215 26281227 +V_MEIS1_01 4.40868e-06 + CCCTGACAGGGG
+chr4 26281222 26281237 -V_TAXCREB_02 5.06447e-06 - GTGACTCACACCCCT
+chr4 26281227 26281238 -V_AP1_Q4 7.9984e-06 - AGTGACTCACA
+chr4 32938060 32938070 +V_EBOX_Q6_01 6.43409e-06 + CCACCTGGCC
+chr4 32940936 32940944 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr4 32940936 32940945 -V_CKROX_Q2 8.90515e-06 - TCCCTCCCC
+chr4 32940977 32940989 -V_LRH1_Q5 7.04044e-06 - GAGACCTTGGAC
+chr4 32941009 32941028 -V_SEF1_C 5.09832e-06 - AGCAAGCAGATCAGCGGTT
+chr4 32941046 32941059 -V_MAZR_01 7.66218e-06 - GGGGGTGGGGTAA
+chr4 32941049 32941059 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr4 32941050 32941059 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr4 32941061 32941076 +V_IRF_Q6 8.71346e-06 + GCTGGTTTCTGTTTC
+chr4 33072003 33072017 +V_KROX_Q6 2.61668e-06 + ACCGCCCACCCCCC
+chr4 33072004 33072019 +V_SREBP_Q6 2.612e-06 + CCGCCCACCCCCCAG
+chr4 33072004 33072019 +V_SREBP1_Q5 5.62649e-06 + CCGCCCACCCCCCAG
+chr4 33072005 33072020 -V_SPZ1_01 7.19322e-06 - GCTGGGGGGTGGGCG
+chr4 33072007 33072016 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr4 33072008 33072023 -V_VDR_Q3 4.22722e-06 - GGGGCTGGGGGGTGG
+chr4 33072014 33072023 -V_CACBINDINGPROTEIN_Q6 8.12736e-06 - GGGGCTGGG
+chr4 33995897 33995907 -V_TITF1_Q3 4.46892e-06 - AGTCAAGTGT
+chr4 33995961 33995974 -V_SP1_Q6 3.06772e-06 - TGGGGGCGGGGGA
+chr4 33995962 33995972 -V_SP1_Q6_01 6.78413e-07 - GGGGCGGGGG
+chr4 33995962 33995973 +V_SP1SP3_Q4 3.19906e-06 + CCCCCGCCCCC
+chr4 33995963 33995972 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr4 33995963 33995973 +V_SP1_Q2_01 3.39206e-07 + CCCCGCCCCC
+chr4 34682012 34682024 +V_NFAT_Q6 8.79182e-07 + CAGAGGAAAAAC
+chr4 35064900 35064913 -V_DEC_Q1 4.05819e-06 - CTGCAAGTGAAGG
+chr4 35064916 35064928 -V_LMO2COM_01 7.876e-06 - GGCCAGGTGCTT
+chr4 35064956 35064970 +V_POU3F2_01 5.85714e-06 + ATGCATTTATTTCT
+chr4 35064961 35064979 -V_CDX_Q5 8.08449e-06 - AATTCAAAGAGAAATAAA
+chr4 35083407 35083416 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr4 35083407 35083417 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr4 35083407 35083418 -V_SP1SP3_Q4 2.8432e-06 - CCCCCTCCCCC
+chr4 35083408 35083416 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr4 35083408 35083417 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr4 35083408 35083418 +V_SP1_Q6_01 8.48538e-06 + GGGGAGGGGG
+chr4 40729292 40729302 -V_ESE1_Q3 2.21291e-06 - TGTTTCCTGT
+chr4 40729356 40729368 +V_CEBP_Q2_01 7.29068e-06 + CTTGCACAACCA
+chr4 41000612 41000621 -V_AP2ALPHA_01 9.68294e-06 - GCCCGAGGG
+chr4 41000612 41000621 -V_AP2GAMMA_01 7.85065e-06 - GCCCGAGGG
+chr4 41000654 41000664 +V_ESE1_Q3 5.33438e-06 + TGTTTCCTGA
+chr4 41276649 41276663 -V_NFY_C 4.45006e-06 - TCTGATTGGTGAAT
+chr4 41276651 41276662 +V_NFY_Q6 9.1733e-06 + TCACCAATCAG
+chr4 41276676 41276695 +V_PPARA_02 4.81437e-06 + CAAGGTCACAAAGGTCACT
+chr4 41276680 41276693 -V_COUP_DR1_Q6 8.22308e-06 - TGACCTTTGTGAC
+chr4 41617074 41617086 +V_VDR_Q6 9.41602e-06 + CTGTCTGAACCT
+chr4 44568566 44568583 +V_PU1_01 7.57258e-06 + CTAAAGAGGAAGTGAGA
+chr4 44568567 44568586 -V_PU1_Q4 1.90632e-07 - AGTTCTCACTTCCTCTTTA
+chr4 44568570 44568585 +V_ETS1_B 6.49821e-06 + AGAGGAAGTGAGAAC
+chr4 44568644 44568659 -V_OCT4_01 1.94673e-06 - CTTTGAAATGTAGAT
+chr4 44568666 44568678 -V_MEIS1_01 7.43558e-06 - CCATGACAGGCC
+chr4 45211345 45211368 -V_COUPTF_Q6 2.178e-06 - CCTAGTGGCCTTTACCCCCAACC
+chr4 45211350 45211363 -V_HNF4_DR1_Q3 7.1247e-06 - TGGCCTTTACCCC
+chr4 45211350 45211364 +V_HNF4_Q6_01 3.0083e-06 + GGGGTAAAGGCCAC
+chr4 45211371 45211383 -V_FOXD3_01 9.66278e-07 - GTTTGTTTGTTT
+chr4 45211371 45211389 +V_FOXJ2_01 1.76112e-06 + AAACAAACAAACAAATAA
+chr4 45211371 45211391 -V_FOXP1_01 3.83907e-06 - TTTTATTTGTTTGTTTGTTT
+chr4 45211372 45211390 +V_CDX_Q5 6.79733e-07 + AACAAACAAACAAATAAA
+chr4 45211373 45211386 +V_HNF3_Q6 8.74112e-06 + ACAAACAAACAAA
+chr4 45211374 45211387 -V_HFH4_01 2.42952e-06 - ATTTGTTTGTTTG
+chr4 45211375 45211387 -V_FOXD3_01 4.65347e-06 - ATTTGTTTGTTT
+chr4 45802639 45802657 -V_NF1_Q6 1.51659e-07 - TGTTGGCAGGGATCCAGC
+chr4 45802640 45802657 +V_NF1_Q6_01 1.13923e-07 + CTGGATCCCTGCCAACA
+chr4 45802686 45802696 +V_GATA1_05 8.02927e-06 + CCTGATAACA
+chr4 46199004 46199017 +V_AP2_Q6_01 2.99785e-06 + CCGGCCGCAGGCA
+chr4 46199039 46199049 +V_FOXO1_01 7.37669e-06 + AATAAACAAG
+chr4 46199039 46199051 +V_FOXO3A_Q1 9.47139e-06 + AATAAACAAGTT
+chr4 47142741 47142756 -V_OCT1_Q6 2.42215e-06 - AGAAATGTAAATCAG
+chr4 47142742 47142753 +V_OCT1_Q5_01 6.95837e-06 + TGATTTACATT
+chr4 47142759 47142770 -V_PAX_Q6 2.73139e-06 - CTGGAACTCTC
+chr4 47142794 47142806 +V_NMYC_01 6.32434e-06 + CCCCACGTGTGG
+chr4 48285007 48285019 +V_ICSBP_Q6 8.75679e-06 + AAAGTGCAACTG
+chr4 54386614 54386623 -V_SMAD3_Q6 7.33929e-06 - TGTCTGCCT
+chr4 54386618 54386634 +V_EVI1_01 4.14478e-07 + AGACAAGATTAGAGAC
+chr4 54386693 54386706 -V_MAZR_01 2.57012e-06 - GGGGGAGGGGCTC
+chr4 54386694 54386707 -V_SP1_Q6 5.66938e-07 - GGGGGGAGGGGCT
+chr4 54386695 54386705 -V_SP1_Q6_01 2.74385e-06 - GGGGAGGGGC
+chr4 54386696 54386705 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr4 54386696 54386706 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr4 54386697 54386705 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr4 54386697 54386706 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr4 54386698 54386717 -V_PPARA_02 2.16304e-06 - CAGGGGCCTTGGGGGGAGG
+chr4 55154242 55154252 +V_TITF1_Q3 3.36246e-06 + ACTCAAGTAT
+chr4 55154244 55154259 -V_ETS1_B 7.24631e-06 - ACAGGAAATACTTGA
+chr4 55154293 55154304 +V_NFE2_01 6.32206e-06 + CACTGAGTCAT
+chr4 55154294 55154305 -V_AP1_Q6 8.21187e-06 - CATGACTCAGT
+chr4 55154295 55154304 -V_AP1_Q6_01 4.03003e-06 - ATGACTCAG
+chr4 55154351 55154365 +V_EFC_Q6 4.56902e-06 + AGACACCAGGCACC
+chr4 57176379 57176392 +V_OCT_C 8.41527e-06 + CTTATTAGCATGT
+chr4 57176381 57176396 -V_OCT4_02 1.64457e-07 - ATTGACATGCTAATA
+chr4 57176382 57176397 -V_OCT4_01 3.90219e-07 - CATTGACATGCTAAT
+chr4 57556848 57556860 +V_FOXD3_01 9.53633e-06 + TTTTGTTTGTTT
+chr4 57556848 57556861 +V_FOX_Q2 1.93154e-06 + TTTTGTTTGTTTT
+chr4 57556848 57556861 +V_HFH4_01 3.17054e-06 + TTTTGTTTGTTTT
+chr4 57556849 57556862 -V_HNF3_Q6 4.17324e-06 - AAAAACAAACAAA
+chr4 57556853 57556862 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr4 57556914 57556932 +V_NF1_Q6 4.05732e-06 + ATTTGGCTAGTAGCCCTT
+chr4 57815497 57815506 -V_FOXM1_01 8.06007e-06 - AGATGGACT
+chr4 57815514 57815532 +V_HNF3_Q6_01 9.63475e-07 + GTCATTGTTGGCCTTGTC
+chr4 59270639 59270648 +V_T3R_Q6 3.30926e-06 + CCTGTCCTT
+chr4 59270728 59270739 -V_SMAD_Q6_01 6.8135e-06 - CGGGCAGACAG
+chr4 59286371 59286385 -V_OCT1_05 5.61051e-06 - AGCCTTTGCATAAT
+chr4 59286416 59286432 +V_AP2_Q3 3.67897e-06 + GGCCCCAGGCAAGGCT
+chr4 61975621 61975636 +V_OCT4_02 7.51249e-06 + ATTCTGTTGCAGAAA
+chr4 61975740 61975755 +V_OCT4_01 9.436e-07 + CTTTGTTATGTAAAA
+chr4 63165054 63165063 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr4 63165114 63165127 +V_PPAR_DR1_Q2 1.19273e-06 + TGACCTGTGGCCT
+chr4 63165114 63165127 +V_COUP_DR1_Q6 1.12381e-06 + TGACCTGTGGCCT
+chr4 63165114 63165127 -V_RXRLXRB_01 4.41868e-06 - AGGCCACAGGTCA
+chr4 63165114 63165127 -V_DR1_Q3 1.66147e-06 - AGGCCACAGGTCA
+chr4 63165114 63165131 -V_PPARG_03 4.80614e-06 - TCTCAGGCCACAGGTCA
+chr4 65081742 65081755 -V_STAT1STAT1_Q3 8.92589e-06 - CTTTCTCGGAAAC
+chr4 65081756 65081775 +V_PU1_Q4 1.02828e-06 + ACTACTCACTTCTCCTTTT
+chr4 65081818 65081827 +V_CKROX_Q2 8.90515e-06 + TCCCTCCCC
+chr4 65081819 65081827 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr4 65081833 65081845 +V_LRH1_Q5 3.06315e-07 + CTGGCCTTGCAC
+chr4 65081843 65081866 +V_OCT1_04 1.29644e-06 + ACATGCTAATGCAAATCACTCCT
+chr4 65081844 65081859 +V_OCT4_01 4.01204e-06 + CATGCTAATGCAAAT
+chr4 65081847 65081862 +V_OCT1_Q6 4.08435e-06 + GCTAATGCAAATCAC
+chr4 65081850 65081860 +V_OCT1_B 8.43065e-06 + AATGCAAATC
+chr4 65081850 65081861 -V_OCT1_Q5_01 7.39888e-07 - TGATTTGCATT
+chr4 65081850 65081861 -V_OCT_Q6 2.01087e-06 - TGATTTGCATT
+chr4 65081854 65081866 +V_GFI1B_01 4.82127e-06 + CAAATCACTCCT
+chr4 66143900 66143917 -V_NF1_Q6_01 1.65285e-06 - TGGGATCACTGCCAAGG
+chr4 66143900 66143918 +V_NF1_Q6 1.8283e-06 + CCTTGGCAGTGATCCCAG
+chr4 66143976 66143989 -V_ALX4_01 5.12378e-06 - CCTGAGAAGAAAC
+chr4 68695427 68695443 -V_AP2_Q3 5.02857e-06 - GGCCCCAGGCTACACT
+chr4 68695432 68695445 -V_AP2_Q6_01 4.11454e-06 - CTGGCCCCAGGCT
+chr4 70977809 70977824 +V_OCT4_01 1.66292e-06 + TTTTCAAATGCAAAC
+chr4 70977864 70977872 +V_STAT3_02 9.89755e-06 + GGCTTCCC
+chr4 71665723 71665741 +V_MYOD_Q6_01 6.49155e-06 + TCAGGCCAGGTGGTGGGG
+chr4 71665726 71665736 -V_EBOX_Q6_01 6.43409e-06 - CCACCTGGCC
+chr4 71665726 71665738 +V_LMO2COM_01 2.70597e-06 + GGCCAGGTGGTG
+chr4 71665744 71665760 -V_NFY_01 5.71761e-06 - GGCAGCCAATCGGTAG
+chr4 71665804 71665819 +V_STAT5A_01 7.2812e-06 + TAGTTCTTGGAAACA
+chr4 71665849 71665867 -V_NF1_Q6 3.84452e-07 - CCTTGGCAGGCTTCCAAT
+chr4 75660240 75660255 +V_OCT4_01 1.01602e-06 + CTTTGTAATGCTGAT
+chr4 75660241 75660256 +V_OCT4_02 7.51249e-06 + TTTGTAATGCTGATG
+chr4 75660442 75660460 -V_CART1_01 9.85675e-06 - AATTAATTATAATTACAA
+chr4 75660450 75660460 -V_LHX3_01 9.29908e-06 - AATTAATTAT
+chr4 75660483 75660498 -V_VDRRXR_01 4.84975e-06 - GGGTTGTGAGGTTCA
+chr4 75660514 75660535 -V_DR3_Q4 8.8841e-06 - AAAGCCCTTTGTCACCTTGGT
+chr4 81135045 81135068 -V_COUPTF_Q6 1.50366e-06 - GCACGAGGCCCTTGCCCCTGGCT
+chr4 82076828 82076844 +V_NFKB_Q6_01 8.55659e-06 + GATTGGGAAAGTCCAT
+chr4 82076831 82076845 -V_NFKB_Q6 9.10996e-06 - GATGGACTTTCCCA
+chr4 83756121 83756132 +V_LEF1TCF1_Q4 2.36341e-06 + CCTTTGTTGTC
+chr4 83756174 83756189 -V_VDR_Q3 6.38003e-06 - GGGGCCAAGGGGACA
+chr4 83819503 83819518 -V_HES1_Q2 2.90414e-06 - GAGCCTTGTGCCTCA
+chr4 83819537 83819550 -V_SOX_Q6 7.76302e-06 - CTCTTTGTTCTAG
+chr4 84308328 84308348 -V_FOXP1_01 4.50341e-06 - TTTTTAGTCTTGTTTTGTTT
+chr4 84308371 84308386 -V_OCT4_01 6.46423e-06 - CTTTGTTTTGCAAAG
+chr4 84308389 84308400 +V_PAX_Q6 8.43097e-06 + CTAGAACTCAC
+chr4 84308687 84308702 +V_IRF_Q6 8.68896e-07 + CTCAGTTTCCCTTCC
+chr4 84308689 84308701 -V_ICSBP_Q6 6.18962e-06 - GAAGGGAAACTG
+chr4 84308689 84308703 -V_BLIMP1_Q6 1.19543e-06 - GGGAAGGGAAACTG
+chr4 84308694 84308709 -V_SPZ1_01 7.19322e-06 - ACAGGAGGGAAGGGA
+chr4 84308704 84308713 +V_T3R_Q6 8.74404e-06 + CCTGTCCTC
+chr4 84308724 84308740 -V_MAF_Q6 7.10251e-06 - TGAGGGGAGGTTGGGG
+chr4 84308736 84308746 +V_TBX5_Q5 3.66964e-06 + CTCACACCTA
+chr4 84308813 84308832 -V_ER_Q6 7.76671e-06 - CTGGGTTTCCTTGACCTGC
+chr4 84854590 84854605 -V_OCT4_02 7.51249e-06 - ATTCAGATGTTAATC
+chr4 84854633 84854644 -V_CP2_01 7.66122e-06 - GCTCAAGCCAG
+chr4 84854884 84854904 -V_FOXP1_01 3.96581e-06 - TTGTTTAAGTTGTTCAGTTT
+chr4 85887869 85887883 -V_OCT1_05 3.30551e-06 - ATGATTACCATATT
+chr4 85887948 85887963 +V_OCT4_02 4.618e-06 + ATTGTGAGGCAAATG
+chr4 85887979 85887992 +V_OCT_C 6.42763e-06 + CTCATTTACATAC
+chr4 85888028 85888046 +V_FOXJ2_01 3.86688e-07 + AAATAAATAAACACAGAA
+chr4 85888028 85888046 -V_HNF3_Q6_01 4.45363e-06 - TTCTGTGTTTATTTATTT
+chr4 87344838 87344850 +V_LRH1_Q5 8.26289e-06 + CTGGCCTTGGCC
+chr4 87344874 87344884 +V_NUR77_Q5 8.43564e-06 + TTGACCTTCC
+chr4 87344894 87344910 -V_EVI1_01 7.40857e-06 - TGATGAGATTAGCTAA
+chr4 87344956 87344970 -V_FOXJ2_02 5.68368e-06 - CTCACAATGTTTTT
+chr4 89679615 89679628 +V_SP1_Q6 9.41334e-06 + TAGGGGAGGGGTC
+chr4 89679616 89679626 -V_SP1_Q2_01 6.40385e-06 - CCCCTCCCCT
+chr4 89679616 89679629 +V_MAZR_01 2.57012e-06 + AGGGGAGGGGTCA
+chr4 89679617 89679625 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr4 89679617 89679626 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr4 89679617 89679627 +V_SP1_Q6_01 9.74073e-06 + GGGGAGGGGT
+chr4 89679622 89679634 +V_PXR_Q2 6.30169e-06 + GGGGTCAATCAC
+chr4 89679623 89679636 +V_FXR_IR1_Q6 2.08122e-06 + GGGTCAATCACCC
+chr4 89679623 89679636 -V_FXR_IR1_Q6 3.73724e-06 - GGGTGATTGACCC
+chr4 94845308 94845322 -V_PAX6_Q2 5.16503e-06 - CTGAGATGGAACAC
+chr4 94845379 94845393 -V_ATF3_Q6 6.79245e-06 - CCCTGATGTCATGC
+chr4 94845398 94845416 +V_SRF_01 5.21291e-06 + ATGACCAAATATAGGGAT
+chr4 94845398 94845417 -V_SRF_Q5_02 6.64334e-06 - CATCCCTATATTTGGTCAT
+chr4 94845447 94845458 +V_ELF5_01 7.04512e-06 + ATAAGGAAATT
+chr4 95132844 95132862 +V_AHR_01 5.25035e-06 + CCTGGGGCTAGGGTGGGT
+chr4 95132853 95132883 -V_PAX4_04 5.32499e-06 - GGAAAACTGCTCTCCCTCCATACCCACCCT
+chr4 95132858 95132873 +V_VDR_Q3 2.4.549e-06 + GGGTATGGAGGGAGA
+chr4 99308721 99308732 +V_NFE2_01 5.51939e-06 + TGCTGAGTTAC
+chr4 101562164 101562179 -V_OCT4_01 8.48593e-06 - CATTTTGATGCTAAT
+chr4 101907982 101908012 +V_PAX4_04 3.18907e-06 + AAACATGAGCAGTTTACCCCCACCCACCCC
+chr4 101908001 101908016 +V_SREBP_Q6 2.0576e-06 + CCACCCACCCCACCC
+chr4 101908001 101908016 +V_SREBP1_Q5 8.79017e-07 + CCACCCACCCCACCC
+chr4 101908006 101908019 -V_SP1_Q6 7.54104e-06 - TGGGGGTGGGGTG
+chr4 101908008 101908018 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr4 101908009 101908018 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr4 101908009 101908020 -V_EGR_Q6 8.04446e-06 - GTGGGGGTGGG
+chr4 101908009 101908023 +V_KROX_Q6 2.21131e-07 + CCCACCCCCACCCC
+chr4 101908011 101908023 +V_PAX4_03 2.40392e-07 + CACCCCCACCCC
+chr4 101908014 101908024 +V_SP1_Q2_01 9.56538e-06 + CCCCACCCCT
+chr4 101908029 101908042 +V_SOX_Q6 5.25102e-06 + GTCTTTGTTATGA
+chr4 101908091 101908101 -V_POU3F2_02 7.27852e-06 - ATATGCTAAT
+chr4 103511214 103511233 -V_OCT1_01 7.83092e-06 - GTTGTTATGCAAATGCGAC
+chr4 103511216 103511229 +V_OCT_C 3.7644e-06 + CGCATTTGCATAA
+chr4 103511216 103511230 +V_OCT1_05 1.34806e-06 + CGCATTTGCATAAC
+chr4 103511217 103511228 +V_OCT_Q6 4.86692e-06 + GCATTTGCATA
+chr4 103511218 103511228 -V_OCT1_B 4.33582e-06 - TATGCAAATG
+chr4 103511218 103511233 -V_OCT4_02 8.50894e-06 - GTTGTTATGCAAATG
+chr4 103511219 103511234 -V_OCT4_01 8.76645e-07 - CGTTGTTATGCAAAT
+chr4 103511270 103511285 +V_IRF_Q6 7.15837e-07 + CCCTGTTTCACTTTC
+chr4 103511272 103511284 -V_ICSBP_Q6 8.9236e-06 - AAAGTGAAACAG
+chr4 103511274 103511285 -V_IRF_Q6_01 6.07558e-07 - GAAAGTGAAAC
+chr4 105238541 105238559 -V_GCNF_01 6.88534e-06 - GGGAAGTTAAAGTTCAGA
+chr4 105238542 105238555 +V_HNF4ALPHA_Q6 9.80985e-06 + CTGAACTTTAACT
+chr4 105238649 105238661 +V_CEBP_Q3 8.62923e-07 + GGATTTGGCAAT
+chr4 105581028 105581043 -V_OCT4_02 9.71581e-06 - CTTGTCATGCAAAAG
+chr4 107035563 107035578 -V_OCT4_01 7.94702e-06 - CTTTATTATGTAAAA
+chr4 107764828 107764836 +V_CACD_01 9.89755e-06 + CCACACCC
+chr4 107764869 107764883 +V_COUP_01 7.84802e-06 + TGAACCTAGGACCT
+chr4 107764882 107764901 +V_OCT1_01 9.8471e-06 + TCACATATGCTAATCACTA
+chr4 107764885 107764899 -V_OCT1_05 4.95753e-06 - GTGATTAGCATATG
+chr4 107764886 107764896 +V_POU3F2_02 7.27852e-06 + ATATGCTAAT
+chr4 115068958 115068971 -V_P50P50_Q3 6.86436e-06 - TAGGGAATCCCAC
+chr4 115069063 115069072 -V_ZIC1_01 4.94877e-06 - GGGGTGGTC
+chr4 115069063 115069072 -V_ZIC2_01 2.23138e-06 - GGGGTGGTC
+chr4 115069108 115069120 -V_ICSBP_Q6 6.81092e-06 - AAGGTGAAACTG
+chr4 115230629 115230640 +V_SMAD_Q6_01 6.8135e-06 + TAGGCAGACTC
+chr4 115546085 115546098 -V_NFY_Q6_01 8.20597e-06 - CTTTGGCCAATGA
+chr4 115627446 115627460 -V_KROX_Q6 7.56123e-06 - CCCACCCACTCTCC
+chr4 115627505 115627520 +V_OCT4_01 7.41924e-06 + CATTGTTTTGGAAAT
+chr4 115627506 115627521 +V_OCT4_02 5.69461e-06 + ATTGTTTTGGAAATG
+chr4 115627521 115627541 +V_ARNT_02 1.07594e-06 + GAAAAATCACGTGCTCCCTG
+chr4 115627521 115627541 -V_ARNT_02 1.07594e-06 - CAGGGAGCACGTGATTTTTC
+chr4 115627523 115627539 +V_ARNT_01 2.48799e-06 + AAAATCACGTGCTCCC
+chr4 115627525 115627537 +V_CMYC_01 7.13863e-06 + AATCACGTGCTC
+chr4 118384488 118384498 -V_NUR77_Q5 2.98426e-06 - CTGACCTTGC
+chr4 118384547 118384555 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr4 118384591 118384603 -V_LRH1_Q5 3.77826e-06 - CAGACCTTGAAC
+chr4 119076198 119076221 -V_COUPTF_Q6 5.61078e-07 - TCCCTTGACCCCAGCCCCTTGAT
+chr4 119076203 119076212 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr4 119076220 119076233 +V_NRF2_Q4 9.9544e-07 + ATGCTGATTCATG
+chr4 119076221 119076232 +V_MAF_Q6_01 9.11965e-06 + TGCTGATTCAT
+chr4 119076239 119076256 +V_PU1_01 6.15878e-06 + TTAAAAGGGAACTGGGG
+chr4 119076252 119076267 -V_IPF1_Q4_01 7.76788e-06 - TCAGTCATTACCCCC
+chr4 119843226 119843240 -V_CDX2_Q5 5.62073e-06 - AGAAGTTTATTGCC
+chr4 119843263 119843281 -V_HNF1_Q6 1.96468e-06 - TGGTTATTTATCAACACT
+chr4 119843265 119843280 -V_HNF1_01 4.66545e-06 - GGTTATTTATCAACA
+chr4 119843299 119843318 -V_NRSF_Q4 9.72581e-06 - CCTCTGTCTGCGCAGCTCA
+chr4 120028127 120028141 -V_NFKB_Q6 6.17466e-06 - GGGGAAATTTCCTA
+chr4 120285065 120285076 -V_E12_Q6 1.14424e-06 - GGCAGGTGGCC
+chr4 120285066 120285076 +V_MYOD_Q6 7.66616e-06 + GCCACCTGCC
+chr4 120285068 120285076 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr4 120285121 120285135 +V_ERR1_Q2 6.19815e-07 + ACCTCAAGGTCATT
+chr4 120285124 120285133 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr4 120285169 120285178 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr4 123519701 123519714 -V_IK3_01 1.80063e-06 - GATAGGGAATACC
+chr4 123519707 123519716 -V_LMO2COM_02 3.30926e-06 - CAGATAGGG
+chr4 123519733 123519742 +V_ZIC2_01 9.89755e-06 + GGGGTGGTG
+chr4 123731662 123731672 -V_TITF1_Q3 6.68182e-06 - ACTCAAGTAG
+chr4 124821930 124821945 -V_AR_Q2 2.50163e-07 - AGAACCTGCTGTTCT
+chr4 124880679 124880692 +V_SP1_Q6 3.23457e-06 + TGGGGGAGGGGTG
+chr4 124880680 124880689 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr4 124880680 124880690 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr4 124880681 124880689 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr4 124880681 124880690 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr4 124880681 124880691 +V_SP1_Q6_01 9.74073e-06 + GGGGAGGGGT
+chr4 124880683 124880713 -V_PAX4_04 4.01413e-06 - AAAGATTAACACTTCCACACCCACCCCTCC
+chr4 124880686 124880698 -V_PAX4_03 2.70808e-06 - CACACCCACCCC
+chr4 124880691 124880699 -V_CACD_01 9.89755e-06 - CCACACCC
+chr4 124880699 124880720 -V_HNF1_Q6_01 8.05704e-06 - TGAGGCTAAAGATTAACACTT
+chr4 124880702 124880719 +V_HNF1_C 9.45717e-06 + TGTTAATCTTTAGCCTC
+chr4 124880716 124880734 -V_MYOD_Q6_01 9.19422e-06 - CTAAGACAGGTGTCTGAG
+chr4 124880789 124880801 -V_LRH1_Q5 5.34492e-06 - CTGGCCTTGAAA
+chr4 125250373 125250386 +V_NKX61_01 8.94803e-06 + TTCTTAATGGGTA
+chr4 125250382 125250394 -V_NKX62_Q2 7.5322e-06 - GAGATAATTACC
+chr4 125250456 125250474 +V_AHR_01 7.33376e-06 + TCTCAGGGTCACGTGAGT
+chr4 125250461 125250475 +V_STRA13_01 2.35887e-06 + GGGTCACGTGAGTG
+chr4 125250461 125250475 -V_STRA13_01 2.54118e-06 - CACTCACGTGACCC
+chr4 125250471 125250485 +V_NFY_C 3.68961e-06 + AGTGATTGGCCAGC
+chr4 125250472 125250483 -V_NFY_Q6 3.12147e-06 - TGGCCAATCAC
+chr4 125276944 125276959 +V_OCT4_01 6.39105e-07 + ATTTGTCATGTAAAT
+chr4 125276945 125276960 +V_OCT4_02 6.99193e-06 + TTTGTCATGTAAATA
+chr4 126681735 126681755 +V_P53_01 2.78821e-06 + GGACAATTCCAGGCAAGTCC
+chr4 126681735 126681755 -V_P53_01 4.2418e-06 - GGACTTGCCTGGAATTGTCC
+chr4 126681745 126681755 +V_P53_DECAMER_Q2 2.10476e-06 + AGGCAAGTCC
+chr4 126681821 126681839 -V_MYOD_Q6_01 9.72371e-06 - AGGAAGCAGCTGAGGAAG
+chr4 126681872 126681883 -V_EGR_Q6 6.55683e-06 - GTGGGGGCTGG
+chr4 126681872 126681886 +V_KROX_Q6 7.21197e-06 + CCAGCCCCCACAAC
+chr4 129643732 129643747 +V_OCT4_01 3.04012e-06 + CCTTGTTATGCAAAT
+chr4 129643733 129643752 +V_OCT1_01 2.64279e-06 + CTTGTTATGCAAATGTAGG
+chr4 129643738 129643748 +V_OCT1_B 4.33582e-06 + TATGCAAATG
+chr4 129643738 129643749 -V_OCT_Q6 7.02042e-06 - ACATTTGCATA
+chr4 129643747 129643760 -V_OCT_C 4.29306e-06 - CTCATTTGCCTAC
+chr4 129647564 129647587 -V_OCT1_04 9.79816e-06 - CCAAAGAAATGCAAATTAGAACT
+chr4 129647568 129647581 +V_OCT_C 3.87618e-06 + CTAATTTGCATTT
+chr4 129647568 129647582 +V_OCT1_05 1.2815e-06 + CTAATTTGCATTTC
+chr4 129647568 129647583 -V_OCT1_Q6 3.60611e-07 - AGAAATGCAAATTAG
+chr4 129647569 129647580 +V_OCT1_Q5_01 2.46139e-06 + TAATTTGCATT
+chr4 129647569 129647580 +V_OCT_Q6 3.88942e-06 + TAATTTGCATT
+chr4 129647670 129647685 -V_SPZ1_01 8.91733e-07 - TGAGGAGGGTGTGGC
+chr4 129647671 129647679 +V_CACD_01 9.89755e-06 + CCACACCC
+chr4 129647673 129647688 -V_VDR_Q3 4.52515e-06 - GGTTGAGGAGGGTGT
+chr4 129845606 129845621 -V_SPZ1_01 1.2.4.5e-06 - GAAGGAGGGTGTGGC
+chr4 129845607 129845615 +V_CACD_01 9.89755e-06 + CCACACCC
+chr4 129845649 129845658 -V_T3R_Q6 3.30926e-06 - CCTGTCCTT
+chr4 129845677 129845687 -V_USF_Q6 9.67414e-06 - GTCACGGGAC
+chr4 129845685 129845714 -V_MYOGNF1_01 1.8908e-06 - CTGCTGTTTGTCTTGGCGGCCTGCCTGGT
+chr4 129845686 129845704 -V_NF1_Q6 8.31384e-06 - TCTTGGCGGCCTGCCTGG
+chr4 129845755 129845774 -V_ER_Q6 8.78889e-06 - CAAGGCCAGGGTGACCAGC
+chr4 130358050 130358064 +V_DMRT7_01 1.43161e-06 + TGGATACAATGTTG
+chr4 130358050 130358065 +V_DMRT1_01 3.23848e-08 + TGGATACAATGTTGC
+chr4 130358052 130358067 -V_DMRT1_01 3.53013e-07 - CTGCAACATTGTATC
+chr4 130358075 130358084 +V_CKROX_Q2 8.90515e-06 + TCCCTCCCC
+chr4 130358076 130358084 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr4 130358076 130358085 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr4 130358076 130358090 +V_KROX_Q6 5.42711e-07 + CCCTCCCCCACCCC
+chr4 130358078 130358090 +V_PAX4_03 3.63034e-06 + CTCCCCCACCCC
+chr4 130358080 130358091 +V_SP1SP3_Q4 8.91927e-06 + CCCCCACCCCC
+chr4 130358081 130358091 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr4 130358081 130358100 -V_PPARA_02 3.31972e-06 - ATAGGTAAGGGGGGTGGGG
+chr4 130358082 130358091 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr4 130390172 130390184 -V_LRH1_Q5 9.2187e-06 - TTGGCCTTGGAG
+chr4 130394092 130394105 -V_MAZR_01 2.98074e-06 - AGGGGGGGGGAGG
+chr4 130394095 130394104 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr4 130394095 130394106 +V_SP1SP3_Q4 2.26051e-06 + CCCCCCCCCTC
+chr4 130394096 130394107 +V_SP1SP3_Q4 2.26051e-06 + CCCCCCCCTCT
+chr4 130394107 130394122 +V_DMRT1_01 2.82419e-06 + CAGAAACAATGTATC
+chr4 130394109 130394124 -V_DMRT1_01 6.88848e-09 - TTGATACATTGTTTC
+chr4 130394110 130394124 -V_DMRT7_01 1.30327e-06 - TTGATACATTGTTT
+chr4 130394112 130394127 -V_DMRT3_01 1.87777e-06 - GACTTGATACATTGT
+chr4 130394112 130394128 -V_DMRT2_01 2.77309e-06 - GGACTTGATACATTGT
+chr4 130682051 130682061 -V_TAL1_Q6 7.11328e-06 - TCCACCTGCT
+chr4 132465821 132465836 +V_SREBP1_Q5 6.9181e-06 + GCCTTCACCCCACCT
+chr4 132465875 132465884 -V_SMAD3_Q6 4.03003e-06 - TGTCTGTCT
+chr4 132509616 132509633 -V_RFX1_01 6.16934e-06 - AGGTTACAAGGTAACAA
+chr4 132509667 132509683 -V_NFY_01 4.44608e-07 - ACCAGCCAATGGGAGT
+chr4 132509670 132509681 -V_ALPHACP1_01 4.48665e-06 - CAGCCAATGGG
+chr4 132538930 132538944 -V_ERR1_Q2 4.03886e-06 - GTCTGAAGGTCACA
+chr4 132538985 132538995 -V_SP1_Q6_01 8.48538e-06 - AGGGCGGGGT
+chr4 132539036 132539055 +V_PU1_Q4 8.38434e-06 + CCCAGGCACTTCCTCTCTG
+chr4 132539037 132539052 -V_ETS1_B 2.41591e-07 - AGAGGAAGTGCCTGG
+chr4 132539039 132539051 +V_ETS_Q4 3.41629e-06 + AGGCACTTCCTC
+chr4 132539039 132539053 -V_ETS2_B 1.42527e-06 - GAGAGGAAGTGCCT
+chr4 132539274 132539292 -V_SRF_01 7.69153e-06 - ATGCCCATCTCTGGTGCC
+chr4 135666532 135666545 -V_SP1_Q6 5.65055e-06 - GGGGGGAGGGACT
+chr4 135666534 135666543 +V_CKROX_Q2 8.90515e-06 + TCCCTCCCC
+chr4 135666535 135666543 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr4 135666535 135666544 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr4 135666626 135666635 -V_AP1_C 4.03003e-06 - ATGAGTCAG
+chr4 135666626 135666637 -V_MAF_Q6_01 5.48449e-06 - TGATGAGTCAG
+chr4 137438952 137438964 -V_NANOG_01 4.89365e-06 - GAACCCATTTCC
+chr4 137438979 137438995 +V_AP2_Q3 5.34192e-06 + AGCCCCAGGCCAGGGG
+chr4 137561850 137561864 +V_DMRT7_01 2.62625e-06 + TTGTAACATTGATG
+chr4 138000933 138000946 +V_PPAR_DR1_Q2 6.37174e-06 + GGAACTTTGTCCC
+chr4 138000933 138000946 +V_HNF4_DR1_Q3 4.37494e-06 + GGAACTTTGTCCC
+chr4 138000933 138000946 +V_COUP_DR1_Q6 7.90564e-06 + GGAACTTTGTCCC
+chr4 138000933 138000946 -V_DR1_Q3 4.90971e-06 - GGGACAAAGTTCC
+chr4 138000980 138000995 -V_OCT4_01 1.18992e-06 - TATAGACATGCAAAT
+chr4 138001013 138001025 -V_PAX4_03 9.67001e-06 - AAACCTCACCCG
+chr4 138001049 138001066 +V_DR4_Q2 2.46932e-06 + TGACCTCTTGTGCCCTA
+chr4 138080028 138080042 +V_ERR1_Q2 6.19815e-07 + TGCTCAAGGTCACT
+chr4 138080031 138080040 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr4 138204132 1382.4.57 +V_OCT4_02 2.05222e-06 + TTTGTCATTCTAAAC
+chr4 138204183 138204194 -V_NFY_Q6 4.23487e-06 - TGGCCAATCAG
+chr4 138204229 138204238 +V_RFX_Q6 3.30926e-06 + CTGTTGCCA
+chr4 139145717 139145730 +V_AP2_Q6_01 2.39401e-06 + CTGCCCCCAGGCT
+chr4 139145719 139145735 +V_AP2_Q3 1.63469e-06 + GCCCCCAGGCTAGAAC
+chr4 139145775 139145790 -V_ETS1_B 8.95766e-06 - CCAGGAAGGGGCAGG
+chr4 139371837 139371848 -V_EVI1_02 8.2.4.5e-07 - AGATAAGATAA
+chr4 139371837 139371848 -V_EVI1_03 4.5052e-07 - AGATAAGATAA
+chr4 139371837 139371848 -V_EVI1_05 8.2.4.5e-07 - AGATAAGATAA
+chr4 139371878 139371893 -V_STAT5B_01 5.48058e-06 - TGTTTCTTGGAATCA
+chr4 139558165 139558180 -V_OCT4_01 1.28133e-06 - CATTTAAATGCAAAT
+chr4 140202744 140202760 +V_NFKB_Q6_01 8.55659e-06 + GAGTTGGGAAGCCCCA
+chr4 140202749 140202757 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr4 140202749 140202759 -V_NFKAPPAB_01 4.87508e-06 - GGGGCTTCCC
+chr4 140202852 140202873 -V_STAT1_01 4.88874e-06 - CAACAATTCCGGTAATTAGGC
+chr4 140721998 140722010 +V_LRH1_Q5 5.34492e-06 + CTGGCCTTGAAT
+chr4 140838646 140838660 -V_BLIMP1_Q6 5.74624e-06 - TGGAAGGGAAAGGT
+chr4 140840512 140840526 +V_NFKB_Q6 5.82335e-06 + ATTGGAATTTCCCC
+chr4 140840513 140840527 -V_NFKB_Q6 8.78215e-06 - TGGGGAAATTCCAA
+chr4 140840513 140840529 -V_NFKB_Q6_01 8.55659e-06 - CCTGGGGAAATTCCAA
+chr4 140840514 140840524 +V_NFKAPPAB65_01 5.16177e-06 + TGGAATTTCC
+chr4 140840514 140840526 -V_NFKB_C 6.70077e-06 - GGGGAAATTCCA
+chr4 140840515 140840525 -V_NFKAPPAB_01 7.14234e-06 - GGGAAATTCC
+chr4 140840542 140840556 +V_BLIMP1_Q6 1.70439e-06 + GAGAAGGGAAAGGC
+chr4 140840558 140840571 +V_STAT_Q6 2.21622e-06 + TACCCTTCTGGGA
+chr4 140840564 140840574 +V_IK_Q5 4.33614e-06 + TCTGGGAGGG
+chr4 140840612 140840621 -V_ZIC2_01 7.66616e-06 - AGGGTGGTC
+chr4 140840653 140840668 +V_SPZ1_01 4.92705e-06 + GTGGGTGGGTATGGG
+chr4 141733182 141733197 -V_DMRT1_01 1.51207e-06 - CGGATACTTTGTTGC
+chr4 141733199 141733208 +V_FOXO1_Q5 7.27852e-06 + AAAAACAAA
+chr4 141733209 141733224 +V_ETS1_B 1.74168e-06 + GCAGGAAGGGAGGGG
+chr4 141800044 141800065 +V_PPARG_01 6.19353e-06 + CCTGGGCTCCAAGGTCAGATG
+chr4 141800048 141800061 -V_COUP_DR1_Q6 9.5269e-06 - TGACCTTGGAGCC
+chr4 141800050 141800062 -V_LRH1_Q5 3.22157e-06 - CTGACCTTGGAG
+chr4 141800052 141800061 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr4 141800052 141800062 -V_NUR77_Q5 2.98426e-06 - CTGACCTTGG
+chr4 141800075 141800086 -V_ER_Q6_02 5.98444e-06 - GAGGTCAGGGT
+chr4 141800126 141800141 +V_VDR_Q3 2.13625e-06 + GGGGCAGGGGAGTCA
+chr4 141800534 141800542 +V_CACD_01 9.89755e-06 + CCACACCC
+chr4 141800598 141800609 -V_PAX_Q6 8.43097e-06 - CTAGAACTCAC
+chr4 142267791 142267806 +V_DMRT1_01 8.47921e-07 + CAGTTACAATGTTGC
+chr4 142267793 142267808 -V_DMRT1_01 2.47268e-06 - CTGCAACATTGTAAC
+chr4 144414691 144414710 +V_PPARA_02 7.17762e-06 + AGAGGCCATTGAGGTTTGG
+chr4 144414793 144414808 +V_OCT4_01 7.94702e-06 + TTTTGTTGTGCAAAC
+chr4 144596027 144596040 +V_NFY_Q6_01 1.64014e-06 + GCTTAGCCAATGG
+chr4 144596297 144596312 -V_OCT4_01 3.26181e-06 - CATTCTCATGGAGAT
+chr4 144861685 144861700 +V_OCT4_01 7.41924e-06 + TATTCAAATGCTAAA
+chr4 144861721 144861733 +V_PAX4_03 5.65167e-06 + TACCTCCACCCC
+chr4 145105858 145105873 +V_SPZ1_01 8.55807e-06 + GGTGGGGGGAAGGGA
+chr4 145105859 145105870 +V_EGR_Q6 9.33802e-06 + GTGGGGGGAAG
+chr4 145105864 145105878 +V_BLIMP1_Q6 2.97987e-06 + GGGAAGGGAATTGA
+chr4 145105952 145105967 +V_OCT4_01 1.94673e-06 + CATTGATATGTTAAT
+chr4 145105957 145105967 +V_POU3F2_02 5.63759e-06 + ATATGTTAAT
+chr4 146932369 146932384 +V_OCT4_01 1.94673e-06 + CATTGATATGTTAAT
+chr4 146932374 146932384 +V_POU3F2_02 5.63759e-06 + ATATGTTAAT
+chr4 146932377 146932392 +V_HNF1_01 8.94735e-06 + TGTTAATAGTTACCC
+chr4 146932423 146932436 -V_HNF4ALPHA_Q6 5.26844e-07 - CTGAACTTTGAAG
+chr4 147440319 147440335 +V_LXR_DR4_Q3 8.2407e-08 + TGACCTCTGGTGACCC
+chr4 147440319 147440336 +V_DR4_Q2 2.64389e-08 + TGACCTCTGGTGACCCC
+chr4 147440319 147440337 -V_LXR_Q3 1.84212e-09 - TGGGGTCACCAGAGGTCA
+chr4 147440333 147440342 -V_CACBINDINGPROTEIN_Q6 6.29506e-06 - GAGGCTGGG
+chr4 147440417 147440431 -V_ERR1_Q2 2.53861e-07 - ACCTCAAGGTCAGA
+chr4 147440418 147440432 +V_PAX6_Q2 7.71568e-06 + CTGACCTTGAGGTC
+chr4 147440419 147440428 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr4 148007792 148007804 -V_NANOG_01 6.30438e-06 - AAGACCATTTCC
+chr4 148112915 148112929 +V_BLIMP1_Q6 1.25786e-06 + AGGAAGGGAAAGAA
+chr4 148112933 148112951 -V_PIT1_Q6 2.04669e-06 - CATTCATAATCACACCCA
+chr4 148112940 148112964 +V_COMP1_01 1.47702e-06 + GATTATGAATGCCAAGTAGAAGGG
+chr4 148113006 148113021 -V_VDR_Q3 3.98432e-06 - GGGGAAACAGGTTCA
+chr4 148113023 148113036 -V_HNF3_Q6 7.04647e-06 - CAGAATAAACAGT
+chr4 148714986 148714999 +V_SP1_Q6 2.54389e-06 + CAGGGGCGGGGCA
+chr4 148714987 148714997 -V_SP1_Q2_01 1.0915e-06 - CCCCGCCCCT
+chr4 148714988 148714997 -V_CKROX_Q2 6.67377e-06 - CCCCGCCCC
+chr4 148714988 148714998 +V_SP1_Q6_01 3.39206e-07 + GGGGCGGGGC
+chr4 148715042 148715051 +V_CACBINDINGPROTEIN_Q6 6.29506e-06 + GAGGCTGGG
+chr4 148715055 148715067 +V_ELF1_Q6 6.25224e-06 + GGATGAGGAAGT
+chr4 148715055 148715074 -V_PU1_Q4 9.794e-08 - GCCTTTCACTTCCTCATCC
+chr4 148715060 148715074 +V_BLIMP1_Q6 1.99431e-07 + AGGAAGTGAAAGGC
+chr4 148715061 148715072 +V_IRF_Q6_01 2.5744e-06 + GGAAGTGAAAG
+chr4 148715061 148715076 -V_IRF_Q6 6.09465e-06 - CTGCCTTTCACTTCC
+chr4 148715084 148715101 +V_PPARG_03 6.0242e-06 + CTCAGGGTCAAGGGTCA
+chr4 148715084 148715105 +V_PPARG_01 1.08694e-07 + CTCAGGGTCAAGGGTCAAGGA
+chr4 148715087 148715101 -V_COUP_01 1.28082e-07 - TGACCCTTGACCCT
+chr4 148715088 148715101 +V_RXRLXRB_01 8.03231e-07 + GGGTCAAGGGTCA
+chr4 148715088 148715101 +V_DR1_Q3 7.20305e-08 + GGGTCAAGGGTCA
+chr4 148715088 148715101 -V_PPAR_DR1_Q2 2.13471e-07 - TGACCCTTGACCC
+chr4 148715088 148715101 -V_HNF4_DR1_Q3 1.81134e-07 - TGACCCTTGACCC
+chr4 148715088 148715101 -V_COUP_DR1_Q6 3.35007e-08 - TGACCCTTGACCC
+chr4 148715088 148715102 +V_HNF4_Q6_01 1.40116e-06 + GGGTCAAGGGTCAA
+chr4 148715094 148715106 +V_PXR_Q2 7.73425e-06 + AGGGTCAAGGAA
+chr4 148852105 148852125 -V_FOXP1_01 5.78539e-06 - TTCTTTGTGTTGTCTTGGTG
+chr4 149468279 149468292 -V_MAZR_01 3.32118e-06 - GGGGGAGGGGCGC
+chr4 149468280 149468293 -V_SP1_Q6 2.94457e-07 - GGGGGGAGGGGCG
+chr4 149468281 149468291 -V_SP1_Q6_01 2.74385e-06 - GGGGAGGGGC
+chr4 149468281 149468296 -V_SPZ1_01 7.83729e-06 - GGGGGGGGGAGGGGC
+chr4 149468282 149468291 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr4 149468282 149468292 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr4 149468283 149468291 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr4 149468283 149468292 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr4 149468283 149468297 +V_KROX_Q6 1.5817e-06 + CCCTCCCCCCCCCC
+chr4 149468284 149468297 -V_MAZR_01 1.93317e-06 - GGGGGGGGGGAGG
+chr4 149468287 149468296 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr4 149468287 149468298 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr4 149468288 149468297 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr4 149468288 149468299 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr4 149468289 149468298 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr4 149468289 149468300 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr4 149468290 149468299 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr4 149468290 149468301 +V_SP1SP3_Q4 3.76147e-06 + CCCCCCCCCCA
+chr4 149468291 149468300 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr4 149468291 149468302 +V_SP1SP3_Q4 7.42043e-06 + CCCCCCCCCAC
+chr4 149468291 149468302 -V_EGR_Q6 2.33306e-06 - GTGGGGGGGGG
+chr4 149468352 149468371 -V_PPARA_02 2.92443e-06 - GAGGTTCATGGGGGTCAGT
+chr4 149468352 149468373 +V_DR3_Q4 9.26073e-06 + ACTGACCCCCATGAACCTCTC
+chr4 149468354 149468369 -V_VDRRXR_01 5.54887e-06 - GGTTCATGGGGGTCA
+chr4 149468571 149468581 +V_E2F1_Q6_01 8.28561e-06 + TTTTGGCGCC
+chr4 149529544 149529559 -V_DMRT5_01 6.58136e-06 - ATCTGTTACAGAGTC
+chr4 149529584 149529602 +V_GCNF_01 3.28925e-06 + CTGAGGGTCAAGGTCTGC
+chr4 150034147 150034161 +V_E2A_Q2 8.03505e-06 + TCACCTGTCACTGC
+chr4 150034286 150034295 +V_SMAD_Q6 9.3359e-06 + AGACACCCT
+chr4 150122630 150122644 +V_KROX_Q6 3.23929e-06 + CCAGCCCCCCCTCC
+chr4 150122631 150122644 -V_MAZR_01 4.80613e-06 - GGAGGGGGGGCTG
+chr4 150122632 150122647 -V_VDR_Q3 3.52857e-06 - GGGGGAGGGGGGGCT
+chr4 150122633 150122644 +V_SP1SP3_Q4 6.44809e-06 + GCCCCCCCTCC
+chr4 150122635 150122648 -V_SP1_Q6 1.37941e-06 - GGGGGGAGGGGGG
+chr4 150122636 150122646 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr4 150122636 150122647 +V_SP1SP3_Q4 2.8432e-06 + CCCCCTCCCCC
+chr4 150122637 150122646 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr4 150122637 150122647 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr4 150122638 150122646 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr4 150122638 150122647 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr4 150153597 150153607 -V_EBOX_Q6_01 7.18016e-06 - CCACCTGACT
+chr4 150153597 150153609 +V_MYOD_01 7.90686e-06 + AGTCAGGTGGTG
+chr4 150153638 150153650 +V_PBX_Q3 6.11371e-07 + GATTGATGGCTG
+chr4 150156964 150156978 -V_E2A_Q2 6.24606e-06 - TCACCTGTCCCGTC
+chr4 150156987 150157015 +V_PAX5_01 1.42971e-06 + GCGAGGCTCAGCTGGGAGTGGCCTGACC
+chr4 150157005 150157028 +V_COUPTF_Q6 3.50155e-06 + TGGCCTGACCTCTCATCTCCCCG
+chr4 150262800 150262809 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr4 150262801 150262809 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr4 150262804 150262813 +V_CACBINDINGPROTEIN_Q6 2.23138e-06 + GAGGGTGGG
+chr4 150262831 150262844 +V_CEBPGAMMA_Q6 4.63846e-06 + CTGATTTCAGATA
+chr4 150269375 150269383 +V_CACD_01 9.89755e-06 + CCACACCC
+chr4 151462477 151462487 -V_IK_Q5 2.4.539e-06 - GCTGGGAGGG
+chr4 151462481 151462490 -V_CACBINDINGPROTEIN_Q6 6.29506e-06 - GAGGCTGGG
+chr4 151462532 151462545 +V_STAT_Q6 4.9181e-06 + CTCCCTTCTGGGA
+chr4 151713906 151713914 +V_CACD_01 9.89755e-06 + CCACACCC
+chr4 151713944 151713957 +V_HFH3_01 3.09439e-07 + GCTTGTTTGTTTA
+chr4 151713945 151713958 -V_HNF3_Q6 3.64504e-06 - CTAAACAAACAAG
+chr4 151713994 151714002 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr4 152715150 152715164 -V_NFKB_Q6 7.35667e-06 - TGGGGAAATTCCAG
+chr4 152715151 152715161 +V_NFKAPPAB65_01 5.16177e-06 + TGGAATTTCC
+chr4 152715151 152715163 -V_NFKB_C 6.70077e-06 - GGGGAAATTCCA
+chr4 152715152 152715162 -V_NFKAPPAB_01 7.14234e-06 - GGGAAATTCC
+chr4 152715181 152715196 +V_OCT4_01 2.19035e-07 + CATTATCATGCAAAT
+chr4 152715194 152715204 +V_POU3F2_02 5.63759e-06 + ATATGTTAAT
+chr4 1532.4.52 153204372 +V_HOX13_01 2.3437e-06 + TGATTCTTTCTCCATTTGTGCAGGACTCCT
+chr4 153204406 153204418 -V_AP1_Q2_01 9.83435e-06 - TGACTCACAGGA
+chr4 153204409 153204420 -V_AP1FJ_Q2 5.39606e-06 - GGTGACTCACA
+chr4 153204409 153204420 -V_AP1_Q6 9.43393e-06 - GGTGACTCACA
+chr4 153204409 153204420 -V_AP1_Q4 4.84535e-06 - GGTGACTCACA
+chr4 153204789 153204797 +V_CACD_01 9.89755e-06 + CCACACCC
+chr4 1532.4.51 153204853 +V_LRH1_Q5 2.30644e-06 + CAGGCCTTGAAC
+chr4 153205361 153205372 -V_PAX4_02 9.8103e-06 - GAAAAATTTCC
+chr4 153205383 153205402 -V_PU1_Q4 7.89869e-06 - AGTTCCTGCTTCCCCTTGT
+chr4 153205432 153205442 -V_CETS1P54_01 6.77271e-06 - ACCGGATGTC
+chr4 153205498 153205508 -V_SP1_Q2_01 5.07461e-06 - CCCCTCCCCG
+chr4 153205499 153205507 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr4 153205499 153205508 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr4 153205499 153205509 +V_SP1_Q6_01 8.48538e-06 + GGGGAGGGGG
+chr4 153205499 153205513 -V_KROX_Q6 5.9833e-06 - CCCCCCCCCTCCCC
+chr4 153205501 153205512 -V_SP1SP3_Q4 2.62733e-07 - CCCCCCCCTCC
+chr4 153205502 153205513 -V_SP1SP3_Q4 2.26051e-06 - CCCCCCCCCTC
+chr4 153205502 153205517 +V_VDR_Q3 7.16583e-06 + GAGGGGGGGGGGAGA
+chr4 153205503 153205514 -V_SP1SP3_Q4 2.8432e-06 - CCCCCCCCCCT
+chr4 153205504 153205513 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr4 153205504 153205517 +V_MAZR_01 6.96932e-07 + GGGGGGGGGGAGA
+chr4 153205504 153205518 -V_KROX_Q6 7.56123e-06 - CTCTCCCCCCCCCC
+chr4 153205505 153205514 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr4 153205689 153205698 +V_SMAD3_Q6 4.03003e-06 + TGTCTGTCT
+chr4 153206386 153206409 -V_COUPTF_Q6 1.60088e-06 - TCATGTGACCTTTGCCCTGTGGA
+chr4 153206387 153206404 +V_PPARG_03 2.26255e-06 + CCACAGGGCAAAGGTCA
+chr4 153206387 153206408 +V_PPARG_01 2.81055e-07 + CCACAGGGCAAAGGTCACATG
+chr4 153206390 153206404 -V_COUP_01 2.67709e-07 - TGACCTTTGCCCTG
+chr4 153206391 153206404 +V_RXRLXRB_01 3.39229e-07 + AGGGCAAAGGTCA
+chr4 153206391 153206404 +V_DR1_Q3 9.73878e-08 + AGGGCAAAGGTCA
+chr4 153206391 153206404 -V_PPAR_DR1_Q2 9.96554e-08 - TGACCTTTGCCCT
+chr4 153206391 153206404 -V_HNF4_DR1_Q3 8.69767e-08 - TGACCTTTGCCCT
+chr4 153206391 153206404 -V_COUP_DR1_Q6 3.28001e-07 - TGACCTTTGCCCT
+chr4 153206391 153206405 +V_HNF4_Q6_01 3.33633e-08 + AGGGCAAAGGTCAC
+chr4 153206392 153206405 -V_HNF4ALPHA_Q6 4.2278e-07 - GTGACCTTTGCCC
+chr4 153206457 153206465 +V_CACD_01 9.89755e-06 + CCACACCC
+chr4 153206491 153206505 -V_CEBPB_01 4.06038e-06 - GGGTGGGGAAATCT
+chr4 153206494 153206507 -V_MAZR_01 4.53707e-06 - GGGGGTGGGGAAA
+chr4 153206497 153206507 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr4 153206497 153206516 -V_PPARA_02 7.17762e-06 - TGAGGGGGTGGGGGTGGGG
+chr4 153206498 153206507 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr4 153206498 153206509 -V_EGR_Q6 8.04446e-06 - GTGGGGGTGGG
+chr4 153206498 153206512 +V_KROX_Q6 2.21131e-07 + CCCACCCCCACCCC
+chr4 153206500 153206512 +V_PAX4_03 2.40392e-07 + CACCCCCACCCC
+chr4 153206501 153206514 -V_SP1_Q6 7.54104e-06 - AGGGGGTGGGGGT
+chr4 153206502 153206513 +V_SP1SP3_Q4 8.91927e-06 + CCCCCACCCCC
+chr4 153206503 153206513 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr4 153206504 153206513 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr4 153456258 153456273 -V_OCT4_01 2.28618e-06 - CTTTGTAATGGAGAT
+chr4 153456273 153456286 +V_AP2_Q6_01 2.71709e-06 + CCTTCCCCAGGCC
+chr4 153456323 153456341 -V_AHR_01 8.93808e-06 - GCCTGGGCTAGCCTGAGA
+chr4 153456368 153456392 -V_STAT5A_02 7.28722e-07 - TTCCCAGAGCTCAGGTTCCTTGAA
+chr4 154056645 154056658 -V_HNF4ALPHA_Q6 6.68176e-06 - CTGAGCTTTGCAT
+chr4 154689452 154689463 +V_LEF1TCF1_Q4 1.56074e-06 + CCTTTGATCTC
+chr4 154698764 154698779 -V_SMAD4_Q6 2.13404e-06 - GTGAGCCAGACTGCT
+chr4 154698772 154698786 +V_STRA13_01 6.21204e-06 + GGCTCACGTGAGAC
+chr4 154698772 154698786 -V_STRA13_01 3.61044e-07 - GTCTCACGTGAGCC
+chr4 154698826 154698841 +V_SREBP_Q6 2.612e-06 + GCTCTCACCTCAGGG
+chr4 154698826 154698841 +V_SREBP1_Q5 4.09665e-06 + GCTCTCACCTCAGGG
+chr4 155451061 155451075 -V_FOXO4_02 9.64244e-06 - ACTTTGTTTTCCTG
+chr4 155451085 155451105 +V_FOXP1_01 6.71406e-06 + AGATTTTTGTTTTTGTTTGT
+chr4 155451090 155451099 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr4 155451168 155451183 +V_ETS1_B 8.48353e-06 + CCAGGAAGTGGCTCT
+chr4 155451169 155451181 -V_ETS_Q4 1.02417e-07 - AGCCACTTCCTG
+chr4 155454709 155454721 +V_GATA4_Q3 3.87593e-06 + AGATAGCAGTGA
+chr5 5588753 5588762 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr5 5588807 5588816 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr5 5588819 5588833 -V_KROX_Q6 2.61668e-06 - CCCTCCCCCACTCC
+chr5 5588824 5588833 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr5 5588824 5588834 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr5 5588824 5588835 -V_SP1SP3_Q4 2.8432e-06 - CCCCCTCCCCC
+chr5 5588825 5588833 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr5 5588825 5588834 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr5 5588825 5588835 +V_SP1_Q6_01 8.48538e-06 + GGGGAGGGGG
+chr5 5588825 5588839 -V_KROX_Q6 3.42108e-06 - GCCTCCCCCTCCCC
+chr5 5588875 5588893 +V_HNF3_Q6_01 3.21517e-06 + CAGTTTGTTTACTTTTGC
+chr5 5588876 5588890 +V_FOXO1_02 3.23597e-06 + AGTTTGTTTACTTT
+chr5 5588876 5588890 +V_FOXO4_02 2.83075e-06 + AGTTTGTTTACTTT
+chr5 5588876 5588890 +V_FOXO3_01 3.19881e-06 + AGTTTGTTTACTTT
+chr5 5588877 5588890 +V_FOX_Q2 2.40118e-06 + GTTTGTTTACTTT
+chr5 5824537 5824551 -V_KROX_Q6 2.32952e-06 - CCCACCCCCACCCA
+chr5 5824540 5824551 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr5 5824542 5824551 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr5 5824542 5824552 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr5 5824542 5824555 +V_MAZR_01 5.68389e-06 + GGGGGTGGGGACT
+chr5 5824543 5824555 -V_PAX4_03 3.30124e-06 - AGTCCCCACCCC
+chr5 5824616 5824630 -V_FXR_Q3 1.75925e-06 - CAAGGGCAATAAAC
+chr5 5824673 5824687 +V_NFY_C 6.7165e-06 + TCTAATTGGCTACC
+chr5 8242162 8242177 -V_STAT5A_01 6.37009e-06 - TGTTTCTTGGAAACT
+chr5 8242162 8242177 -V_STAT5B_01 2.49995e-06 - TGTTTCTTGGAAACT
+chr5 8242163 8242176 +V_STAT1STAT1_Q3 3.202e-06 + GTTTCCAAGAAAC
+chr5 12944523 12944534 -V_EBF_Q6 4.83306e-06 - CTCCCTTGAGA
+chr5 12944564 12944580 +V_DMRT2_01 6.20805e-06 + AATAAGGATACAATGT
+chr5 12944568 12944583 +V_DMRT1_01 4.00094e-07 + AGGATACAATGTTGC
+chr5 12944570 12944585 -V_DMRT1_01 2.55408e-06 - AGGCAACATTGTATC
+chr5 13470682 13470700 -V_NF1_Q6 8.31384e-06 - TATTGGCCCAAGGCCTAG
+chr5 13470689 13470708 +V_PPARA_02 2.80256e-06 + TTGGGCCAATAGGGTGGGG
+chr5 13470699 13470711 -V_PAX4_03 9.67001e-06 - GAGCCCCACCCT
+chr5 21332262 21332275 +V_IRF1_01 2.92306e-06 + CAAAAGGGAAACC
+chr5 21332262 21332275 +V_IRF2_01 8.31512e-06 + CAAAAGGGAAACC
+chr5 21332263 21332278 -V_IRF_Q6 9.24077e-06 - TCTGGTTTCCCTTTT
+chr5 21332301 21332324 +V_OCT1_04 2.04591e-06 + GCATTAAAATGCAAATTTATTTG
+chr5 21332302 21332317 +V_OCT4_01 8.06422e-07 + CATTAAAATGCAAAT
+chr5 21332392 21332404 -V_IK2_01 6.4166e-06 - ATTTGGGAAAGC
+chr5 24155255 24155265 +V_IK_Q5 6.81053e-06 + TGTGGGAGGG
+chr5 24155357 24155368 +V_PITX2_Q2 1.22695e-06 + TTTAATCCCAG
+chr5 27018684 27018705 +V_DR3_Q4 8.5209e-06 + CATCGACCCAGTGCCCCTTCT
+chr5 27018732 27018751 +V_SEF1_C 5.09832e-06 + AGCACGCACGCCTGCTGTT
+chr5 27018754 27018766 +V_LMO2COM_01 6.87463e-07 + CCCCAGGTGGTG
+chr5 27018825 27018840 +V_HMGIY_Q3 6.87308e-06 + ACTGGAATTTCCCAT
+chr5 27018826 27018842 -V_NFKB_Q6_01 2.79669e-06 - GGATGGGAAATTCCAG
+chr5 27018827 27018837 +V_NFKAPPAB65_01 5.16177e-06 + TGGAATTTCC
+chr5 27018828 27018838 -V_NFKAPPAB_01 7.14234e-06 - GGGAAATTCC
+chr5 27355314 27355329 +V_OCT4_01 6.46423e-06 + TATTCTTATTTAAAT
+chr5 27355314 27355332 +V_PIT1_Q6 9.55797e-06 + TATTCTTATTTAAATTCA
+chr5 28140956 28140979 +V_OCT1_04 9.79816e-06 + TCAGGGAAATGCAAATCAAAACC
+chr5 28140960 28140975 +V_OCT1_Q6 2.42215e-06 + GGAAATGCAAATCAA
+chr5 28140962 28140975 -V_OCT_C 9.70046e-06 - TTGATTTGCATTT
+chr5 28140963 28140973 +V_OCT1_B 8.43065e-06 + AATGCAAATC
+chr5 28140963 28140974 -V_OCT1_Q5_01 7.39888e-07 - TGATTTGCATT
+chr5 28140963 28140974 -V_OCT_Q6 2.01087e-06 - TGATTTGCATT
+chr5 28141015 28141026 -V_LEF1TCF1_Q4 7.79522e-06 - ACTTTGATCTT
+chr5 28506788 28506805 -V_DR4_Q2 2.19408e-07 - TAACCTTCAGTGACCTC
+chr5 28506920 28506928 +V_STAT3_02 9.89755e-06 + GGCTTCCC
+chr5 32919101 32919116 +V_DMRT5_01 6.17101e-06 + GTTTGCTACTTTGGC
+chr5 32919120 32919135 +V_OCT4_01 9.05006e-06 + TATTCTTATGTTAAC
+chr5 32919176 32919194 -V_CDX_Q5 2.48189e-06 - TACAATTCAAGACATAAA
+chr5 34047951 34047966 -V_SMAD4_Q6 1.44834e-06 - GCCAGCCAGCCAGCT
+chr5 34782748 34782761 +V_CEBP_01 1.78211e-06 + TGTTTGGTAAATT
+chr5 34782758 34782770 -V_ELF1_Q6 6.85423e-06 - ACTAGAGGAAAT
+chr5 36194305 36194327 -V_MEF2_02 7.76526e-06 - TCATATGCTAAATATAGGATCT
+chr5 36194315 36194330 -V_OCT4_01 8.48593e-06 - TTTTCATATGCTAAA
+chr5 36727864 36727873 +V_T3R_Q6 8.74404e-06 + CCTGTCCTC
+chr5 36727883 36727896 -V_MAZR_01 7.66218e-06 - GGGGGTGGGGTAA
+chr5 36727886 36727896 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr5 36727887 36727896 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr5 36727904 36727917 -V_IRF1_01 9.57197e-06 - GAAACCTGAAACC
+chr5 36728007 36728017 -V_ESE1_Q3 5.33438e-06 - AGTTTCCTGA
+chr5 37294210 37294226 -V_GRE_C 2.05932e-06 - TGCACCAGGTGTCCTC
+chr5 37294224 372.4.58 +V_BRACH_01 8.73774e-06 + CATTGAACACCTAGGTGCCATTAG
+chr5 37294224 372.4.58 -V_BRACH_01 1.76041e-08 - CTAATGGCACCTAGGTGTTCAATG
+chr5 37294252 37294267 +V_OCT4_01 1.40241e-06 + CTTTGTAATGCAGAG
+chr5 37294259 37294272 +V_NRF2_Q4 8.37215e-07 + ATGCAGAGTCAGG
+chr5 37294260 37294271 +V_MAF_Q6_01 4.72643e-06 + TGCAGAGTCAG
+chr5 37294332 372.4.53 -V_YY1_Q6_02 4.18118e-06 - GCTGCCATTTT
+chr5 37322556 37322565 -V_FOXM1_01 8.06007e-06 - AGATGGAGT
+chr5 37322657 37322675 -V_GCNF_01 2.71814e-06 - CCCCAGGTCAAGGCCAAG
+chr5 37322661 37322672 -V_ER_Q6_02 9.65928e-06 - CAGGTCAAGGC
+chr5 37389477 37389490 -V_AP2_Q6_01 8.86342e-06 - CCAGCCCCAGGCT
+chr5 37389488 37389498 +V_IK_Q5 4.33614e-06 + GGTGGGAGGG
+chr5 37389489 37389499 -V_SP1_Q2_01 9.56538e-06 - CCCCTCCCAC
+chr5 37389498 37389513 +V_AR_01 1.58003e-06 + GGAACGCCTTGTTCT
+chr5 37389498 37389513 -V_AR_01 7.84655e-06 - AGAACAAGGCGTTCC
+chr5 37389581 37389593 +V_CEBP_Q2_01 7.71281e-07 + ATTGCCCAATTC
+chr5 37389581 37389593 -V_CEBP_Q3 5.50595e-06 - GAATTGGGCAAT
+chr5 38896849 38896864 -V_VDR_Q3 9.46585e-06 - GGGGGAGGGAAGAGA
+chr5 38896854 38896863 +V_CKROX_Q2 8.90515e-06 + TCCCTCCCC
+chr5 38896855 38896863 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr5 38896855 38896864 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr5 53751349 53751363 +V_MTF1_Q4 2.04812e-06 + TCTGCACTCTGGCC
+chr5 53751367 53751386 +V_PPARA_02 8.06812e-06 + CAGGGTCACAGGAGTCTCG
+chr5 53751379 53751395 -V_AP2_Q3 8.07615e-06 - GTCCCCAGGCGAGACT
+chr5 53751384 53751397 -V_AP2_Q6_01 1.66582e-06 - CAGTCCCCAGGCG
+chr5 53896801 53896816 -V_ETS1_B 6.913e-07 - GGAGGAAGTACGTGC
+chr5 53896803 53896817 -V_ETS2_B 1.99939e-06 - TGGAGGAAGTACGT
+chr5 65073810 65073827 -V_NF1_Q6_01 3.85394e-07 - TTGGACAGCTGCCAAAC
+chr5 65073810 65073828 +V_NF1_Q6 4.59425e-06 + GTTTGGCAGCTGTCCAAA
+chr5 65073839 65073850 +V_MYB_Q3 9.34682e-06 + AGGGGCAGTTC
+chr5 65073863 65073877 +V_GATA1_03 6.4708e-06 + ATCAAGATTAGGGC
+chr5 65073876 65073888 +V_LRH1_Q5 4.03654e-06 + CCGGCCTTGGAG
+chr5 68024750 68024765 +V_OCT4_01 1.25077e-07 + CATTGTCATGCTAAT
+chr5 68024751 68024766 +V_OCT4_02 1.41735e-09 + ATTGTCATGCTAATG
+chr5 68024756 68024771 -V_IPF1_Q4_01 3.39872e-06 - TCTGTCATTAGCATG
+chr5 69880352 69880375 -V_COUPTF_Q6 4.88553e-07 - TTTTATGACCTTAGCCCCTTGAC
+chr5 69880353 69880374 +V_PPARG_01 4.37601e-06 + TCAAGGGGCTAAGGTCATAAA
+chr5 69880356 69880370 -V_COUP_01 1.18543e-06 - TGACCTTAGCCCCT
+chr5 69880357 69880370 +V_DR1_Q3 3.99966e-06 + GGGGCTAAGGTCA
+chr5 69880357 69880370 -V_PPAR_DR1_Q2 3.33435e-06 - TGACCTTAGCCCC
+chr5 69880357 69880370 -V_HNF4_DR1_Q3 6.54496e-07 - TGACCTTAGCCCC
+chr5 69880357 69880370 -V_COUP_DR1_Q6 5.72793e-06 - TGACCTTAGCCCC
+chr5 69880357 69880371 +V_HNF4_Q6_01 4.332e-06 + GGGGCTAAGGTCAT
+chr5 69880358 69880371 -V_HNF4ALPHA_Q6 8.75211e-06 - ATGACCTTAGCCC
+chr5 69880365 69880379 -V_CDX2_Q5 9.18428e-06 - AGCATTTTATGACC
+chr5 69880602 69880611 -V_HNF4_Q6 7.33929e-06 - AAGGTCCAA
+chr5 69880615 69880628 -V_HNF3_Q6 9.93672e-06 - TCAAACAAACAGA
+chr5 69880629 69880638 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr5 69880833 69880849 +V_NFKB_Q6_01 2.21649e-06 + AGATGGGAAAATCCCA
+chr5 69880836 69880850 -V_NFKB_Q6 8.01393e-06 - TTGGGATTTTCCCA
+chr5 69880837 69880849 -V_NFKB_C 3.77632e-06 - TGGGATTTTCCC
+chr5 69880838 69880848 -V_NFKAPPAB65_01 9.69629e-06 - GGGATTTTCC
+chr5 69880838 69880848 -V_NFKAPPAB_01 9.4096e-06 - GGGATTTTCC
+chr5 73140044 73140054 -V_IK_Q5 4.8392e-06 - GCTGGGAGGC
+chr5 73759261 73759276 -V_OCT4_01 5.63049e-06 - CATTCTTATTCAAAC
+chr5 73886713 73886727 +V_DMRT7_01 6.91627e-06 + TGGTTACATTGTAT
+chr5 73886713 73886728 +V_DMRT1_01 4.26013e-07 + TGGTTACATTGTATC
+chr5 73886715 73886730 -V_DMRT1_01 1.44151e-06 - CTGATACAATGTAAC
+chr5 73886756 73886770 +V_DMRT7_01 6.91627e-06 + TGGTTACATTGTAT
+chr5 73886756 73886771 +V_DMRT1_01 4.26013e-07 + TGGTTACATTGTATC
+chr5 73886758 73886773 -V_DMRT1_01 1.44151e-06 - CTGATACAATGTAAC
+chr5 74083374 74083388 +V_MTF1_Q4 9.1469e-06 + TCTGCCCACGGCTC
+chr5 74083409 74083424 +V_STAT5A_01 5.96415e-06 + GAATTCCCAGAAACT
+chr5 74083409 74083424 +V_STAT5B_01 3.55219e-06 + GAATTCCCAGAAACT
+chr5 74083409 74083424 -V_STAT5A_01 5.27854e-06 - AGTTTCTGGGAATTC
+chr5 74083409 74083424 -V_STAT5B_01 3.55219e-06 - AGTTTCTGGGAATTC
+chr5 74083434 74083449 -V_OCT4_01 5.63049e-06 - CATTCTCATTCAAAC
+chr5 74196169 74196179 +V_IK_Q5 4.8392e-06 + GCTGGGAGGC
+chr5 74196284 74196299 -V_OCT4_01 7.41924e-06 - CATTTTCATTCAAAT
+chr5 74196314 74196327 +V_OCT_C 7.89827e-06 + CATATTTGCATGC
+chr5 75356549 75356557 +V_CACD_01 9.89755e-06 + CCACACCC
+chr5 75356595 75356607 +V_GATA4_Q3 6.27162e-06 + TGATAAAAGGGA
+chr5 75481305 75481318 -V_OCT_C 3.56696e-06 - GTCATTTGCATAG
+chr5 75481306 75481316 +V_OCT1_B 4.33582e-06 + TATGCAAATG
+chr5 75481306 75481317 -V_OCT1_Q5_01 1.56035e-06 - TCATTTGCATA
+chr5 75481306 75481317 -V_OCT_Q6 7.39888e-07 - TCATTTGCATA
+chr5 75481384 75481399 -V_OCT4_01 1.18992e-06 - CTTTGTCATGCAGAG
+chr5 75997636 75997666 -V_HOX13_01 9.87496e-06 - GGCCAGCCCCTGCAGTAGTGGTTGGCTCCT
+chr5 75997716 75997732 +V_DMRT2_01 7.03073e-07 + TTAATTGCTACATTGT
+chr5 75997717 75997730 -V_DMRT4_01 4.89777e-07 - AATGTAGCAATTA
+chr5 75997717 75997732 +V_DMRT3_01 2.50568e-06 + TAATTGCTACATTGT
+chr5 75997720 75997735 +V_DMRT1_01 6.06059e-07 + TTGCTACATTGTAAC
+chr5 75997722 75997737 -V_DMRT1_01 1.2457e-07 - TTGTTACAATGTAGC
+chr5 75997723 75997737 -V_DMRT7_01 2.92067e-07 - TTGTTACAATGTAG
+chr5 75997724 75997739 -V_DMRT5_01 2.54381e-06 - GTTTGTTACAATGTA
+chr5 75997725 75997740 -V_DMRT3_01 1.09116e-06 - TGTTTGTTACAATGT
+chr5 75997725 75997741 -V_DMRT2_01 5.03993e-06 - GTGTTTGTTACAATGT
+chr5 80255751 80255774 -V_COUPTF_Q6 5.82975e-06 - CCTACTGATCCTTGACCACCTAC
+chr5 80255757 80255770 -V_HNF4ALPHA_Q6 5.73189e-06 - CTGATCCTTGACC
+chr5 80255787 80255797 -V_NUR77_Q5 2.98426e-06 - CTGACCTTGC
+chr5 80255820 80255829 +V_LYF1_01 7.33929e-06 + TTTGGGAGG
+chr5 80255820 80255830 +V_IK_Q5 8.83478e-06 + TTTGGGAGGT
+chr5 89108601 89108613 +V_PAX4_03 2.40392e-07 + GACCCCCACCCC
+chr5 89108602 89108617 +V_SREBP_Q6 8.95186e-06 + ACCCCCACCCCACCC
+chr5 89108602 89108617 +V_SREBP1_Q5 6.9181e-06 + ACCCCCACCCCACCC
+chr5 89108630 89108645 -V_OCT4_01 2.28618e-06 - CTTTCAAATGCAAAG
+chr5 89108686 89108695 -V_RFX_Q6 3.30926e-06 - CTGTTGCCA
+chr5 91604962 91604975 +V_STAT1STAT1_Q3 7.34142e-06 + CTTTACAGGAAAA
+chr5 91605044 91605059 +V_DMRT5_01 9.57435e-06 + TTTTGTTTCTGTTTT
+chr5 91948687 91948701 -V_CEBPB_01 8.00001e-06 - GGATTGAGCAATGC
+chr5 91948689 91948701 +V_CEBP_Q2_01 5.69135e-06 + ATTGCTCAATCC
+chr5 91948699 91948708 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr5 91948699 91948709 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr5 91948700 91948708 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr5 91948700 91948709 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr5 91948707 91948721 -V_E2A_Q2 4.92457e-07 - CCACCTGGCTCTGG
+chr5 91967851 91967865 -V_CREB_Q2_01 1.34097e-06 - GTTGACGTCATTGG
+chr5 91967852 91967863 +V_CREB_Q4_01 5.77805e-06 + CAATGACGTCA
+chr5 92036832 92036841 -V_SMAD3_Q6 4.03003e-06 - TGTCTGTCT
+chr5 92036924 92036935 -V_E12_Q6 8.12765e-06 - AACAGGTGGCC
+chr5 92036926 92036940 +V_E2A_Q2 6.24606e-06 + CCACCTGTTCCTTT
+chr5 92039051 92039069 +V_PAX8_B 6.85814e-06 + GCACACTTGCATGAGCAC
+chr5 92917585 92917603 -V_NF1_Q6 9.30221e-06 - CCTTGGCAACAGTCCCTT
+chr5 92917586 92917603 +V_NF1_Q6_01 5.38936e-06 + AGGGACTGTTGCCAAGG
+chr5 92917591 92917600 +V_RFX_Q6 3.30926e-06 + CTGTTGCCA
+chr5 93331139 93331162 -V_COUPTF_Q6 5.82975e-06 - CCCTGTGACCTTTGGATCAGGCA
+chr5 93555757 93555772 +V_OCT4_02 9.71581e-06 + ATTGTTATTCTGATA
+chr5 93555823 93555842 +V_OCT1_01 3.49896e-06 + AGCTGTATGCTAATTCTGG
+chr5 93555826 93555838 +V_OCT1_07 2.03138e-07 + TGTATGCTAATT
+chr5 97277259 97277277 -V_MYOD_Q6_01 4.51565e-06 - CAGAGGCAGGTGTCCTTG
+chr5 97277262 97277273 -V_E12_Q6 1.97832e-06 - GGCAGGTGTCC
+chr5 97277264 97277278 +V_E2A_Q2 2.05728e-06 + ACACCTGCCTCTGC
+chr5 97277265 97277273 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr5 97632785 97632796 -V_CP2_01 7.66122e-06 - GCTCAAGCCAG
+chr5 97632806 97632821 +V_TAXCREB_02 3.88998e-06 + ATGAAGCCCACCCCC
+chr5 97632812 97632821 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr5 97632865 97632879 -V_GATA1_03 4.82813e-07 - AGGGAGATTATGGC
+chr5 98268421 98268435 +V_KROX_Q6 8.32366e-06 + CCCGCCTACTCGCC
+chr5 98268437 98268448 -V_NFY_Q6 4.23487e-06 - GAACCAATCAC
+chr5 98268465 98268482 -V_DR4_Q2 7.60906e-07 - TGACCTCTTGTGAACCA
+chr5 98268466 98268482 -V_LXR_DR4_Q3 1.07931e-06 - TGACCTCTTGTGAACC
+chr5 98867842 98867856 -V_E2A_Q2 1.73147e-06 - GCACCTGTCTCTTG
+chr5 98867843 98867861 +V_MYOD_Q6_01 4.51565e-06 + AAGAGACAGGTGCTGTAC
+chr5 98867846 98867858 +V_MYOD_01 4.12991e-06 + AGACAGGTGCTG
+chr5 98867847 98867857 -V_MYOD_Q6 1.49213e-06 - AGCACCTGTC
+chr5 98867847 98867858 +V_E12_Q6 9.04659e-06 + GACAGGTGCTG
+chr5 98867886 98867896 +V_GATA1_01 4.96582e-06 + CCTGATGGGG
+chr5 98867891 98867904 +V_P50P50_Q3 8.8244e-06 + TGGGGACTTTCAC
+chr5 98867892 98867904 +V_NFKB_C 7.79971e-06 + GGGGACTTTCAC
+chr5 98867893 98867908 +V_IRF_Q6 4.18064e-06 + GGGACTTTCACTTTT
+chr5 98867896 98867909 -V_IRF1_01 3.77173e-06 - TAAAAGTGAAAGT
+chr5 98867896 98867909 -V_IRF2_01 5.64882e-06 - TAAAAGTGAAAGT
+chr5 98867897 98867908 -V_IRF_Q6_01 9.77502e-07 - AAAAGTGAAAG
+chr5 98867970 98867979 +V_ZIC2_01 7.66616e-06 + AGGGTGGTC
+chr5 99350815 99350830 +V_OCT4_01 1.28133e-06 + CTTTGATATGGAAAT
+chr5 100167262 100167282 +V_FOXP1_01 2.46882e-06 + TTTGTTGTATTTTTTATTGT
+chr5 101967236 101967247 -V_FLI1_Q6 9.02891e-06 - CAGGAAGCCAC
+chr5 103951579 103951602 +V_COUPTF_Q6 2.38001e-07 + GAGGCTGACCTTTGACCTTCACC
+chr5 103951580 103951601 -V_PPARG_01 2.29603e-08 - GTGAAGGTCAAAGGTCAGCCT
+chr5 103951583 103951593 +V_NUR77_Q5 8.43564e-06 + CTGACCTTTG
+chr5 103951583 103951596 +V_HNF4ALPHA_Q6 1.75932e-07 + CTGACCTTTGACC
+chr5 103951583 103951597 -V_HNF4_Q6_01 1.75594e-07 - AGGTCAAAGGTCAG
+chr5 103951584 103951597 +V_PPAR_DR1_Q2 4.89408e-08 + TGACCTTTGACCT
+chr5 103951584 103951597 +V_HNF4_DR1_Q3 6.16195e-08 + TGACCTTTGACCT
+chr5 103951584 103951597 +V_COUP_DR1_Q6 4.89408e-08 + TGACCTTTGACCT
+chr5 103951584 103951597 -V_RXRLXRB_01 1.54401e-08 - AGGTCAAAGGTCA
+chr5 103951584 103951597 -V_DR1_Q3 2.81187e-08 - AGGTCAAAGGTCA
+chr5 103951584 103951598 +V_COUP_01 4.69218e-08 + TGACCTTTGACCTT
+chr5 103951584 103951601 -V_PPARG_03 2.34412e-07 - GTGAAGGTCAAAGGTCA
+chr5 103951589 103951603 -V_ERR1_Q2 8.28315e-06 - GGGTGAAGGTCAAA
+chr5 103951595 103951614 -V_PPARA_02 9.54888e-07 - TGTGGTCAAGTGGGTGAAG
+chr5 103951598 103951608 -V_HMX1_01 2.98426e-06 - CAAGTGGGTG
+chr5 104140648 104140663 +V_DMRT1_01 5.35835e-06 + CTGCTGCATTGTAGC
+chr5 104140664 104140673 +V_LYF1_01 7.33929e-06 + TTTGGGAGG
+chr5 104167726 104167735 +V_AP2ALPHA_01 6.01835e-06 + GCCCCGGGC
+chr5 104167726 104167735 +V_AP2GAMMA_01 6.01835e-06 + GCCCCGGGC
+chr5 104167726 104167735 -V_AP2ALPHA_01 3.00918e-06 - GCCCGGGGC
+chr5 104167726 104167735 -V_AP2GAMMA_01 3.00918e-06 - GCCCGGGGC
+chr5 106208453 106208466 -V_AP1_01 8.76324e-06 - TGGTGACTCAGCC
+chr5 106208454 106208465 -V_AP1FJ_Q2 1.36855e-06 - GGTGACTCAGC
+chr5 106208454 106208465 -V_AP1_Q6 5.77866e-07 - GGTGACTCAGC
+chr5 106208454 106208465 -V_AP1_Q4 2.788e-06 - GGTGACTCAGC
+chr5 106208529 106208542 -V_HNF4ALPHA_Q6 9.11603e-06 - CAGAACCTTGACT
+chr5 106208577 106208588 -V_HELIOSA_02 5.08394e-06 - TTAAGGAAAAT
+chr5 107539183 107539198 -V_OCT4_01 2.83977e-06 - CATTGTTATGTTGAT
+chr5 109525588 109525604 +V_NFKB_Q6_01 6.24418e-07 + TCCAGGGGAATTCCCA
+chr5 109525591 109525604 +V_P50P50_Q3 2.78188e-06 + AGGGGAATTCCCA
+chr5 109525591 109525605 +V_NFKB_Q6 2.23293e-06 + AGGGGAATTCCCAT
+chr5 109525591 109525605 -V_NFKB_Q6 3.25815e-06 - ATGGGAATTCCCCT
+chr5 109525592 109525602 +V_CREL_01 5.43478e-06 + GGGGAATTCC
+chr5 109525592 109525604 +V_NFKB_C 1.08442e-06 + GGGGAATTCCCA
+chr5 109525592 109525604 -V_NFKB_C 7.38002e-06 - TGGGAATTCCCC
+chr5 109525592 109525605 -V_P50P50_Q3 2.3569e-06 - ATGGGAATTCCCC
+chr5 109525592 109525608 -V_NFKB_Q6_01 1.31686e-06 - TGGATGGGAATTCCCC
+chr5 109525593 109525603 +V_NFKAPPAB65_01 7.87917e-06 + GGGAATTCCC
+chr5 109525593 109525603 +V_NFKAPPAB_01 7.46065e-07 + GGGAATTCCC
+chr5 109525593 109525603 -V_NFKAPPAB65_01 7.87917e-06 - GGGAATTCCC
+chr5 109525593 109525603 -V_NFKAPPAB_01 7.46065e-07 - GGGAATTCCC
+chr5 109525747 109525761 -V_BLIMP1_Q6 4.33883e-06 - AGACAGTGAAACTA
+chr5 110845025 110845038 +V_SP1_Q6 8.37935e-07 + AGGGGGAGGGGCT
+chr5 110845026 110845035 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr5 110845026 110845036 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr5 110845026 110845039 +V_MAZR_01 4.80613e-06 + GGGGGAGGGGCTG
+chr5 110845027 110845035 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr5 110845027 110845036 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr5 110845027 110845037 +V_SP1_Q6_01 2.74385e-06 + GGGGAGGGGC
+chr5 110866784 110866801 +V_HSF1_Q6 7.56785e-06 + CTTCCAGAGGGTGCTCC
+chr5 110866837 110866856 -V_OCT1_01 2.51462e-06 - TTTCTTATGCAAATGTTGT
+chr5 110866840 110866851 +V_OCT_Q6 7.02042e-06 + ACATTTGCATA
+chr5 110866841 110866851 -V_OCT1_B 4.33582e-06 - TATGCAAATG
+chr5 110866841 110866856 -V_OCT4_02 1.18248e-06 - TTTCTTATGCAAATG
+chr5 110866842 110866857 -V_OCT4_01 6.45919e-08 - TTTTCTTATGCAAAT
+chr5 110900462 110900471 +V_CACBINDINGPROTEIN_Q6 6.29506e-06 + GAGGCTGGG
+chr5 111599596 111599611 +V_OCT4_01 8.76645e-07 + CATTGTTATGCAGAG
+chr5 111599714 111599726 +V_TTF1_Q6 2.60851e-06 + CTCTCAAGTGCC
+chr5 111867545 111867557 -V_PAX4_03 6.56043e-06 - CAGCTCCACCCC
+chr5 111867563 111867573 -V_SP1_Q2_01 9.56538e-06 - CCCCACCCCT
+chr5 111867564 111867576 -V_PAX4_03 1.24639e-06 - TACCCCCACCCC
+chr5 113503301 113503316 +V_DMRT1_01 9.92712e-06 + ATGATACAATGATGC
+chr5 113503356 113503371 +V_SMAD4_Q6 4.23765e-06 + GAAAGGCAGCCACCT
+chr5 113503395 113503411 +V_DMRT2_01 1.29957e-06 + TAGTGTGATACAATGT
+chr5 113503399 113503414 +V_DMRT1_01 1.17062e-06 + GTGATACAATGTTGC
+chr5 113503401 113503416 -V_DMRT1_01 6.80276e-06 - TCGCAACATTGTATC
+chr5 113551458 113551480 +V_MEF2_02 9.54821e-06 + CCTCAGGCAATAAATAGCTTTC
+chr5 113551480 113551495 +V_DMRT1_01 9.40379e-07 + CAGATACATTGTATC
+chr5 113551482 113551497 -V_DMRT1_01 6.57878e-07 - ATGATACAATGTATC
+chr5 113551485 113551501 -V_DMRT2_01 7.90403e-06 - GATGATGATACAATGT
+chr5 113551575 113551586 -V_EBF_Q6 8.6046e-06 - TTCCCCAGGGT
+chr5 113619556 113619565 -V_CACBINDINGPROTEIN_Q6 6.29506e-06 - GAGGCTGGG
+chr5 113619615 113619625 -V_NCX_01 8.69798e-06 - CCGTAAGTGG
+chr5 113774912 113774926 +V_STAT3STAT3_Q3 1.57156e-06 + TTGCCGGGGACTCC
+chr5 113774975 113774989 -V_NFY_C 3.68961e-06 - TTTGATTGGTAAAT
+chr5 113775050 113775060 -V_POU3F2_02 1.99833e-06 - TTATGTTAAT
+chr5 113871326 113871336 +V_TAL1_Q6 4.87508e-06 + GCCAGCTGCC
+chr5 113871327 113871341 +V_E2A_Q2 4.74359e-06 + CCAGCTGCCACTGC
+chr5 113871365 113871374 -V_CACBINDINGPROTEIN_Q6 6.29506e-06 - GAGGCTGGG
+chr5 113991418 113991428 +V_TAL1_Q6 7.72591e-06 + TCCAGCTGGC
+chr5 113991430 113991445 +V_IRF_Q6 8.68896e-07 + TTCACTTTCAATTCC
+chr5 114087189 114087210 -V_DR3_Q4 9.65243e-06 - AGAGGACGTTCTTCACCGCTT
+chr5 114429547 114429562 +V_VDRRXR_01 4.06631e-06 + AGGTCATCAGGCTCA
+chr5 114429613 114429628 -V_DMRT1_01 1.27344e-06 - TGGATACTTTGTTTC
+chr5 114429627 114429642 +V_VDRRXR_01 4.06631e-06 + AGGTCATCAGGCTCA
+chr5 114456341 114456351 +V_TAL1_Q6 4.87508e-06 + TCCAGCTGGT
+chr5 114456397 114456407 -V_IK_Q5 6.81053e-06 - TGTGGGAGGG
+chr5 114456412 114456427 +V_DMRT3_01 3.75586e-06 + GCTTTGATACAATGT
+chr5 114456415 114456429 +V_DMRT7_01 1.54252e-06 + TTGATACAATGTTT
+chr5 114456415 114456430 +V_DMRT1_01 1.21515e-08 + TTGATACAATGTTTC
+chr5 114456417 114456432 -V_DMRT1_01 6.01487e-06 - AAGAAACATTGTATC
+chr5 114456448 114456463 +V_IRF_Q6 1.76188e-06 + CCCCCTTTCACTTTT
+chr5 114461337 114461355 +V_GCNF_01 4.12631e-06 + AGCAAGGTCAAGGCCTTT
+chr5 114461338 114461348 -V_NUR77_Q5 8.43564e-06 - TTGACCTTGC
+chr5 114461367 114461380 +V_AP2_Q6_01 5.04624e-06 + CAGGCCCCAGGCA
+chr5 114623112 114623127 -V_BACH1_01 5.55381e-06 - GGCATGAGTCACCTT
+chr5 114623113 114623126 -V_AP1_01 5.13952e-06 - GCATGAGTCACCT
+chr5 114623114 114623125 +V_AP1_Q6 9.43393e-06 + GGTGACTCATG
+chr5 114623114 114623125 -V_BACH2_01 1.82283e-06 - CATGAGTCACC
+chr5 114623127 114623138 +V_PITX2_Q2 5.53227e-07 + TGTAATCCCAG
+chr5 114623141 114623150 +V_LYF1_01 7.33929e-06 + TTTGGGAGG
+chr5 114623141 114623151 +V_IK_Q5 3.22045e-06 + TTTGGGAGGC
+chr5 114623152 114623167 +V_VDR_Q3 2.95306e-06 + GAGGCAGGAAGGTCA
+chr5 114623158 114623168 -V_NUR77_Q5 2.98426e-06 - CTGACCTTCC
+chr5 114623168 114623182 -V_PAX6_Q2 5.16503e-06 - CTGGCCTCGAACTC
+chr5 114646174 114646194 +V_P53_01 3.6588e-06 + TGACATGCCTGGGCTTTCCT
+chr5 114646174 114646194 -V_P53_01 4.95981e-06 - AGGAAAGCCCAGGCATGTCA
+chr5 114646183 114646193 +V_CREL_01 7.83548e-06 + TGGGCTTTCC
+chr5 114646247 114646268 +V_NRSE_B 4.51279e-06 + TGTAGCTCCAAGGGGCTAGCC
+chr5 114646319 114646330 +V_LEF1TCF1_Q4 5.90916e-06 + CCTTTGTTCCT
+chr5 115252015 115252028 -V_MAZR_01 1.72459e-07 - TGGGGGGGGGCAA
+chr5 115252018 115252027 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr5 115336445 115336457 -V_FOXD3_01 5.95872e-06 - AAATATTTGTTT
+chr5 115348963 115348979 +V_NFKB_Q6_01 4.87745e-06 + GAAATGGAAACTCCCA
+chr5 115348968 115348978 -V_NFKAPPAB65_01 4.05532e-06 - GGGAGTTTCC
+chr5 116308828 116308843 +V_DMRT5_01 4.43693e-06 + TTCTGTTACATTGTA
+chr5 116308830 116308845 +V_DMRT1_01 2.36549e-06 + CTGTTACATTGTAAC
+chr5 116704814 116704829 -V_BACH1_01 1.37736e-06 - AACATGAGTCATGAA
+chr5 116704816 116704827 -V_BACH2_01 2.44531e-06 - CATGAGTCATG
+chr5 116704868 116704883 -V_DMRT5_01 3.12818e-06 - GGTTGTTACATTGTA
+chr5 116704869 116704884 -V_DMRT3_01 2.6473e-06 - TGGTTGTTACATTGT
+chr5 116704895 116704908 +V_IK1_01 3.36629e-06 + GCTTGGGAAGGCC
+chr5 116704914 116704929 +V_DMRT1_01 1.51207e-06 + CTGCTACAATGTAAC
+chr5 116704916 116704931 -V_DMRT1_01 8.06116e-08 - TTGTTACATTGTAGC
+chr5 116704917 116704931 -V_DMRT7_01 2.34554e-07 - TTGTTACATTGTAG
+chr5 116704918 116704933 -V_DMRT5_01 3.12818e-06 - GGTTGTTACATTGTA
+chr5 116704919 116704934 -V_DMRT3_01 2.6473e-06 - TGGTTGTTACATTGT
+chr5 117229586 117229599 -V_SP1_Q6 8.16238e-06 - GATGGGCGGGACC
+chr5 117229641 117229656 -V_DMRT1_01 1.27344e-06 - TTGATACTTTGTATC
+chr5 118402155 118402169 +V_GATA1_02 8.42748e-06 + GAGGAGATAGGGCT
+chr5 118402171 118402189 +V_MYOD_Q6_01 4.24384e-06 + CCAGCACAGGTGGCCAAT
+chr5 118402193 118402204 +V_EVI1_03 1.7215e-06 + AGATAAGATAT
+chr5 118402193 118402204 +V_EVI1_05 1.27098e-06 + AGATAAGATAT
+chr5 118402210 118402225 +V_AML_Q6 5.76916e-06 + ATTCTTGTGGTTACC
+chr5 118402210 118402225 -V_PEBP_Q6 2.84305e-06 - GGTAACCACAAGAAT
+chr5 118402239 118402247 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr5 118402239 118402248 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr5 118402239 118402249 +V_SP1_Q6_01 8.48538e-06 + GGGGAGGGGG
+chr5 118402288 118402300 -V_LMO2COM_01 5.26561e-06 - CGCCAGCTGCTC
+chr5 118402289 118402299 -V_TAL1_Q6 3.62595e-06 - GCCAGCTGCT
+chr5 118414900 118414917 +V_HSF1_Q6 5.36429e-06 + CTTCTGGAAGCTTCGGT
+chr5 118414901 118414914 +V_HSF_Q6 9.23599e-06 + TTCTGGAAGCTTC
+chr5 118414906 118414919 -V_HSF_Q6 7.63847e-06 - TTACCGAAGCTTC
+chr5 118414922 118414939 -V_NF1_Q6_01 3.71867e-06 - CTGGCCATGGGCCAAGG
+chr5 118414922 118414940 +V_NF1_Q6 3.57123e-06 + CCTTGGCCCATGGCCAGC
+chr5 118414974 118414997 +V_COUPTF_Q6 1.92769e-06 + TTCTCTGACCCTTCTCCCTCCCT
+chr5 118414979 118414992 -V_DR1_Q3 8.65089e-06 - GGGAGAAGGGTCA
+chr5 118414979 118414994 -V_VDR_Q3 3.3177e-06 - GAGGGAGAAGGGTCA
+chr5 118415021 118415030 +V_PAX2_02 7.33929e-06 + CACAAACCC
+chr5 118424740 118424759 +V_PPARA_02.4.53478e-06 + TTTGGGGATGGGGGTGGGG
+chr5 118424744 118424758 -V_KROX_Q6 2.32952e-06 - CCCACCCCCATCCC
+chr5 118424748 118424761 +V_SP1_Q6 8.76141e-06 + TGGGGGTGGGGGG
+chr5 118424749 118424758 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr5 118424749 118424759 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr5 118424749 118424760 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr5 118424750 118424762 -V_PAX4_03 9.67001e-06 - GCCCCCCACCCC
+chr5 118424751 118424765 -V_KROX_Q6 1.2477e-06 - TCCGCCCCCCACCC
+chr5 118424753 118424764 -V_SP1SP3_Q4 5.13339e-06 - CCGCCCCCCAC
+chr5 118424756 118424766 -V_SP1_Q2_01 3.57003e-06 - CTCCGCCCCC
+chr5 118424791 118424805 +V_PAX6_Q2 1.5537e-08 + CTGTCCTGGAACTC
+chr5 118424796 118424807 +V_PAX_Q6 2.04834e-07 + CTGGAACTCAC
+chr5 118471817 118471832 +V_DMRT1_01 5.77282e-07 + TTGAAACATTGTTAC
+chr5 118471819 118471834 -V_DMRT1_01 4.82232e-07 - CTGTAACAATGTTTC
+chr5 118471822 118471835 -V_DMRT4_01 6.48786e-06 - ACTGTAACAATGT
+chr5 118471825 118471839 +V_DMRT7_01 6.0186e-08 + TTGTTACAGTGTGG
+chr5 118471842 118471855 -V_DMRT4_01 3.65283e-06 - AATGTTTCAATGT
+chr5 118471845 118471860 +V_DMRT1_01 5.77282e-07 + TTGAAACATTGTTAC
+chr5 118471847 118471862 -V_DMRT1_01 4.82232e-07 - CTGTAACAATGTTTC
+chr5 118471850 118471863 -V_DMRT4_01 6.48786e-06 - ACTGTAACAATGT
+chr5 118471853 118471867 +V_DMRT7_01 6.0186e-08 + TTGTTACAGTGTGG
+chr5 118471873 118471888 +V_DMRT1_01 5.77282e-07 + TTGAAACATTGTTAC
+chr5 118471875 118471890 -V_DMRT1_01 4.82232e-07 - CTGTAACAATGTTTC
+chr5 118471878 118471891 -V_DMRT4_01 6.48786e-06 - ACTGTAACAATGT
+chr5 118471881 118471895 +V_DMRT7_01 6.0186e-08 + TTGTTACAGTGTGG
+chr5 118471897 118471913 +V_DMRT2_01 7.60933e-06 + GACATTGAAACATTGT
+chr5 118471898 118471911 -V_DMRT4_01 3.65283e-06 - AATGTTTCAATGT
+chr5 118471901 118471916 +V_DMRT1_01 5.77282e-07 + TTGAAACATTGTTAC
+chr5 118471903 118471918 -V_DMRT1_01 4.82232e-07 - CTGTAACAATGTTTC
+chr5 118471906 118471919 -V_DMRT4_01 6.48786e-06 - ACTGTAACAATGT
+chr5 118471909 118471923 +V_DMRT7_01 6.0186e-08 + TTGTTACAGTGTGG
+chr5 118471929 118471943 +V_DMRT7_01 9.87218e-07 + TTGAAACATTGTTG
+chr5 118471929 118471944 +V_DMRT1_01 1.89847e-08 + TTGAAACATTGTTGC
+chr5 118471931 118471946 -V_DMRT1_01 1.87081e-07 - CTGCAACAATGTTTC
+chr5 118471937 118471951 +V_DMRT7_01 7.24493e-07 + TTGTTGCAGTGTGG
+chr5 118471957 118471972 +V_DMRT1_01 7.2905e-06 + TTGAGACATTGTTAT
+chr5 118471965 118471979 +V_DMRT7_01 9.63794e-06 + TTGTTATAGTGTAG
+chr5 118801538 118801548 +V_HSF1_01 5.68466e-06 + AGAACATTCG
+chr5 118801568 118801584 -V_NFY_01 5.89708e-07 - ATGAGCCAATGGGAGC
+chr5 118904750 118904760 +V_SP1_Q6_01 1.91768e-06 + AGGGCGGGGC
+chr5 119251740 119251753 +V_AP2_Q6_01 7.81175e-06 + CCTCCCTCAGGCT
+chr5 119251760 119251772 +V_PAX4_03 9.67001e-06 + AGGCCCCACCCC
+chr5 119251760 119251773 -V_MAZR_01 2.79447e-06 - GGGGGTGGGGCCT
+chr5 119251761 119251774 -V_SP1_Q6 1.00798e-06 - AGGGGGTGGGGCC
+chr5 119251762 119251772 -V_SP1_Q6_01 4.32232e-06 - GGGGTGGGGC
+chr5 119251763 119251773 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr5 119251764 119251773 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr5 119251776 119251793 +V_PPARG_03 2.65068e-07 + TCCTGGGTCATAGGTCA
+chr5 119251776 119251797 +V_PPARG_01 1.00713e-06 + TCCTGGGTCATAGGTCATATT
+chr5 119251780 119251793 +V_RXRLXRB_01 1.25325e-07 + GGGTCATAGGTCA
+chr5 119251780 119251793 +V_DR1_Q3 5.73781e-07 + GGGTCATAGGTCA
+chr5 119251780 119251793 -V_PPAR_DR1_Q2 4.31177e-07 - TGACCTATGACCC
+chr5 119251780 119251793 -V_HNF4_DR1_Q3 1.44379e-06 - TGACCTATGACCC
+chr5 119251780 119251793 -V_COUP_DR1_Q6 1.12381e-06 - TGACCTATGACCC
+chr5 119251827 119251839 -V_PAX4_03 6.56043e-06 - GAGCTCCACCCG
+chr5 119251840 119251851 +V_AP1_Q6 5.6407e-06 + CCTGACTCAGT
+chr5 119252033 119252047 -V_FXR_Q3 6.50443e-06 - CAAGGTCAGTGTCC
+chr5 119252037 119252051 -V_ERR1_Q2 3.31639e-06 - AGTTCAAGGTCAGT
+chr5 119252037 119252055 -V_GCNF_01 1.08437e-07 - TGGAAGTTCAAGGTCAGT
+chr5 119252038 119252050 +V_LRH1_Q5 5.2397e-07 + CTGACCTTGAAC
+chr5 119252038 119252052 +V_PAX6_Q2 2.43898e-07 + CTGACCTTGAACTT
+chr5 119252039 119252048 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr5 119252080 119252089 +V_T3R_Q6 8.74404e-06 + CCTGTCCTG
+chr5 120038468 120038484 -V_AP2_Q3 1.22389e-06 - GCCCTCAGGCTGTAGG
+chr5 120038511 120038522 -V_GATA_C 1.62999e-06 - AGATAAGGACT
+chr5 120088544 120088559 -V_BACH1_01 9.90707e-06 - GTGATGAGTCACCCA
+chr5 120088545 120088558 +V_AP1_01 4.64041e-06 + GGGTGACTCATCA
+chr5 120088546 120088557 +V_AP1_Q6 2.98654e-06 + GGTGACTCATC
+chr5 120088546 120088557 -V_BACH2_01 3.19137e-06 - GATGAGTCACC
+chr5 120088547 120088558 -V_NFE2_01 5.51939e-06 - TGATGAGTCAC
+chr5 120130063 120130074 +V_MYB_Q3 8.33763e-06 + GCTGCCAGTTG
+chr5 120130066 120130076 -V_MYB_Q6 4.20952e-06 - CCCAACTGGC
+chr5 12.4.5187 12.4.5200 -V_DMRT4_01 2.92761e-06 - AATGTTGCAAGTT
+chr5 12.4.5190 12.4.5204 +V_DMRT7_01 3.09746e-06 + TTGCAACATTGTTT
+chr5 12.4.5190 12.4.5205 +V_DMRT1_01 4.79884e-08 + TTGCAACATTGTTTC
+chr5 12.4.5192 12.4.5207 -V_DMRT1_01 2.47268e-06 - AAGAAACAATGTTGC
+chr5 12.4.5202 12.4.5222 +V_FOXP1_01 3.83907e-06 + TTCTTTTAATTGTCTTGTTT
+chr5 12.4.5217 12.4.5233 +V_DMRT2_01 8.22882e-06 + TGTTTTGCTACAATCT
+chr5 121547603 121547621 +V_FOXJ2_01 7.26098e-06 + AATGAAACAAACAATTAA
+chr5 121547605 121547626 +V_HNF1_Q6_01 7.5154e-06 + TGAAACAAACAATTAACCTTG
+chr5 121547607 121547619 -V_FOXD3_01 7.41018e-07 - AATTGTTTGTTT
+chr5 121547672 121547690 +V_FOXJ2_01 5.17183e-06 + AATTCAATAAACATTCCC
+chr5 121549877 121549892 -V_DMRT1_01 1.11988e-06 - ATGTTACATTGTATC
+chr5 121549880 121549895 -V_DMRT3_01 8.22204e-06 - GGAATGTTACATTGT
+chr5 121549880 121549896 -V_DMRT2_01 9.37618e-07 - GGGAATGTTACATTGT
+chr5 121550028 121550047 -V_OCT1_01 9.1206e-06 - GGAGATATGCAAAAGTGAG
+chr5 123461578 123461591 +V_AP2_Q6_01 4.11454e-06 + CAGCCCTCAGGCT
+chr5 123461580 123461596 +V_AP2_Q3 1.41644e-06 + GCCCTCAGGCTATGGC
+chr5 125637462 125637473 +V_EBF_Q6 9.10919e-06 + TTCCCCTGAGG
+chr5 125637481 125637495 -V_STAT3STAT3_Q3 5.71717e-06 - TTGCTGGGAACTGA
+chr5 125637503 125637512 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr5 125637503 125637513 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr5 125637503 125637516 +V_MAZR_01 8.77447e-07 + GGGGGAGGGGACA
+chr5 125637504 125637512 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr5 125637504 125637513 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr5 125637591 125637604 -V_MAZR_01 3.93822e-07 - GGGGGGGGGGAAC
+chr5 125637594 125637603 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr5 125637594 125637605 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr5 125637595 125637604 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr5 125637595 125637606 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr5 125637596 125637605 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr5 125637596 125637607 +V_SP1SP3_Q4 3.76147e-06 + CCCCCCCCCCA
+chr5 125637597 125637606 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr5 125906879 125906891 -V_AP1_Q2_01 2.1613e-06 - TGACTCACAGGC
+chr5 125906885 125906900 +V_VDR_Q3 2.95306e-06 + GAGTCAACAGGGACA
+chr5 125906900 125906928 +V_PAX5_02 7.95894e-06 + GAAGGGAATGCTAGAGCCTGGCCCTGGC
+chr5 125906926 125906941 -V_BACH1_01 4.98171e-06 - GGCGTGAGTCATTGC
+chr5 126818514 126818531 +V_PU1_01 4.61424e-06 + AAATAGAGGAAGTTCTG
+chr5 126818515 126818527 +V_ELF1_Q6 2.57537e-06 + AATAGAGGAAGT
+chr5 126818518 126818533 +V_ETS1_B 8.05749e-06 + AGAGGAAGTTCTGGC
+chr5 127616913 127616926 +V_IK1_01 1.73672e-06 + ATCTGGGAATGCC
+chr5 127616913 127616926 +V_IK3_01 8.31072e-06 + ATCTGGGAATGCC
+chr5 127616998 127617021 +V_COUPTF_Q6 6.50749e-06 + TCAGCTGACCTTGGCTCTCCTTC
+chr5 127617002 127617012 +V_NUR77_Q5 2.98426e-06 + CTGACCTTGG
+chr5 127617003 127617012 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGG
+chr5 128184449 128184463 -V_FOXO1_02 9.07468e-06 - GTTTTGTTTTCTTG
+chr5 128184499 128184508 +V_ZIC2_01 9.89755e-06 + GGGGTGGTG
+chr5 128184501 128184524 +V_COUPTF_Q6 4.40544e-06 + GGTGGTGGCCTTTGCTCATTCAC
+chr5 128184505 128184519 -V_HNF4_Q6_01 2.58532e-06 - TGAGCAAAGGCCAC
+chr5 128713678 128713693 -V_CP2_02 9.87124e-06 - GCAGGGTGGCTCTGG
+chr5 128713796 128713810 -V_BLIMP1_Q6 4.2457e-06 - GAAAAGGGAAAGTC
+chr5 128713797 128713810 -V_IRF2_01 2.58224e-06 - GAAAAGGGAAAGT
+chr5 129788298 129788313 +V_OCT4_01 9.05006e-06 + CATTAAAATGGAAAT
+chr5 130430495 130430507 +V_NANOG_01 8.86042e-06 + GAGCCCATTTGC
+chr5 130430528 130430546 -V_MYOD_Q6_01 1.70927e-08 - CTGGGGCAGGTGGCCAAG
+chr5 130430531 130430542 -V_E12_Q6 1.14424e-06 - GGCAGGTGGCC
+chr5 130430532 130430542 +V_MYOD_Q6 7.66616e-06 + GCCACCTGCC
+chr5 130430533 130430543 +V_EBOX_Q6_01 6.43409e-06 + CCACCTGCCC
+chr5 130430533 130430547 +V_E2A_Q2 1.91151e-08 + CCACCTGCCCCAGG
+chr5 130430534 130430542 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr5 130430536 130430549 +V_AP2_Q6_01 3.58329e-06 + CCTGCCCCAGGCT
+chr5 131333766 131333781 -V_DMRT1_01 8.47921e-07 - TTGTTACTTTGTTGC
+chr5 131333767 131333781 -V_DMRT7_01 7.24493e-07 - TTGTTACTTTGTTG
+chr5 132325680 132325691 -V_CP2_01 2.42582e-06 - GCCAGACCCAG
+chr5 132325800 132325815 -V_IPF1_Q4_01 6.24932e-06 - TCTGTCATTAGTTGC
+chr5 134194557 134194572 -V_SREBP1_Q5 5.07585e-06 - CCAGCCACCCCATGA
+chr5 134194618 134194627 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr5 134194618 134194633 +V_SPZ1_01 8.55807e-06 + GGGGGAGGGAATGCA
+chr5 134194619 134194627 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr5 134194619 134194628 -V_CKROX_Q2 8.90515e-06 - TCCCTCCCC
+chr5 134194679 134194694 +V_OCT4_01 4.7383e-08 + CTTTGACATGCAAAT
+chr5 134194680 134194695 +V_OCT4_02 2.36019e-07 + TTTGACATGCAAATC
+chr5 134194682 134194697 +V_OCT1_Q6 2.61033e-06 + TGACATGCAAATCAG
+chr5 134194683 134194697 -V_OCT1_05 1.1984e-06 - CTGATTTGCATGTC
+chr5 134194684 134194697 -V_OCT_C 6.43366e-07 - CTGATTTGCATGT
+chr5 134194685 134194695 +V_OCT1_B 5.44227e-06 + CATGCAAATC
+chr5 134194685 134194696 -V_OCT1_Q5_01 2.76517e-06 - TGATTTGCATG
+chr5 134194685 134194696 -V_OCT_Q6 2.61843e-06 - TGATTTGCATG
+chr5 134220057 134220070 +V_GATA1_04 5.21518e-06 + GGCAGATAGGAGG
+chr5 134220068 134220091 -V_COUPTF_Q6 9.47737e-06 - GGGGCTGGACTTTGAAACCTTCC
+chr5 134220196 134220209 +V_HFH4_01 6.7208e-06 + CTGCGTTTGTTTT
+chr5 135439551 135439562 -V_EBF_Q6 4.4234e-06 - TTCCCCTGGGG
+chr5 135439609 135439620 -V_FLI1_Q6 1.42541e-06 - CAGGAAGTCAC
+chr5 135439617 135439629 +V_CREB_02 2.10867e-06 + CTGATGACGTCA
+chr5 135439617 135439631 -V_CREB_Q2_01 2.39562e-07 - GGTGACGTCATCAG
+chr5 135439618 135439629 +V_CREB_Q4_01 9.22102e-06 + TGATGACGTCA
+chr5 135439618 135439632 +V_ATF3_Q6 2.21771e-06 + TGATGACGTCACCC
+chr5 135439619 135439631 -V_CREB_Q2 4.53608e-06 - GGTGACGTCATC
+chr5 135439619 135439631 -V_CREB_Q4 4.38815e-07 - GGTGACGTCATC
+chr5 135439619 135439633 +V_CREB_Q2_01 6.82756e-06 + GATGACGTCACCCC
+chr5 135439621 135439630 -V_CREBATF_Q6 3.30926e-06 - GTGACGTCA
+chr5 135439621 135439633 -V_CREB_02 4.53904e-07 - GGGGTGACGTCA
+chr5 135439663 135439673 -V_PR_Q2 2.92358e-06 - GAGAGAACAC
+chr5 135439674 135439687 -V_SP1_Q6 3.06772e-06 - AGGGGGCGGGCGG
+chr5 135439675 135439685 -V_SP1_Q6_01 9.74073e-06 - GGGGCGGGCG
+chr5 135439676 135439685 +V_CKROX_Q2 6.67377e-06 + GCCCGCCCC
+chr5 135439676 135439686 +V_SP1_Q2_01 4.32232e-06 + GCCCGCCCCC
+chr5 135439677 135439688 -V_EGR_Q6 6.21659e-06 - GAGGGGGCGGG
+chr5 135439677 135439691 +V_KROX_Q6 1.5817e-06 + CCCGCCCCCTCCTG
+chr5 135439678 135439689 +V_SP1SP3_Q4 9.31298e-08 + CCGCCCCCTCC
+chr5 135439681 135439692 +V_SP1SP3_Q4 7.42043e-06 + CCCCCTCCTGC
+chr5 135459908 135459917 -V_T3R_Q6 8.74404e-06 - CCTGTCCTG
+chr5 135459924 135459938 +V_BLIMP1_Q6 9.49741e-06 + AACAAGGGAAAGTG
+chr5 135767179 135767195 -V_AP2_Q3 4.44136e-06 - GCCCCCAGGCCACAAC
+chr5 135977868 135977882 +V_ETS2_B 7.93504e-06 + TACAGGAAGCCAGC
+chr5 135977869 135977879 -V_ESE1_Q3 8.80613e-06 - GGCTTCCTGT
+chr5 135977877 135977892 -V_CP2_02 5.58152e-07 - GCTGGGCTGGGCTGG
+chr5 136119343 136119353 +V_TAL1_Q6 7.46065e-07 + TCCAGCTGCT
+chr5 136119363 136119383 +V_PPARA_01 8.27697e-06 + GGCCAATAGGTAAAAGGTCA
+chr5 136119366 136119383 +V_PPARG_03 4.00213e-06 + CAATAGGTAAAAGGTCA
+chr5 136119366 136119387 +V_PPARG_01 8.51429e-07 + CAATAGGTAAAAGGTCAAGGT
+chr5 136119370 136119383 +V_RXRLXRB_01 5.6548e-07 + AGGTAAAAGGTCA
+chr5 136119370 136119383 +V_DR1_Q3 3.04643e-06 + AGGTAAAAGGTCA
+chr5 136119370 136119383 -V_PPAR_DR1_Q2 3.88575e-06 - TGACCTTTTACCT
+chr5 136119370 136119383 -V_COUP_DR1_Q6 6.0379e-06 - TGACCTTTTACCT
+chr5 136133131 136133142 -V_SMAD_Q6_01 3.30698e-06 - CAGCCAGACAG
+chr5 136133167 136133179 +V_VDR_Q6 9.41602e-06 + GCGGTTGAACCC
+chr5 136133216 136133231 +V_OCT4_01 2.11448e-06 + TATTGTAATGCTAAG
+chr5 136133247 136133263 +V_NFY_01 5.22884e-06 + CTGCGCCAATGGGCGG
+chr5 136478727 136478749 +V_MEF2_02 7.76526e-06 + TTCTGTGCTAATTATAGAACCC
+chr5 136478727 136478749 +V_MEF2_03 7.11676e-06 + TTCTGTGCTAATTATAGAACCC
+chr5 136478729 136478751 -V_MEF2_02 7.8249e-07 - CTGGGTTCTATAATTAGCACAG
+chr5 136478729 136478751 -V_MEF2_03 2.33285e-06 - CTGGGTTCTATAATTAGCACAG
+chr5 136478824 136478835 +V_EBF_Q6 3.11689e-06 + GTCCCCTGGGG
+chr5 136478842 136478856 +V_GATA1_03 4.1196e-06 + AGGAAGATTAGGAC
+chr5 137076482 137076497 +V_DMRT1_01 2.82419e-06 + AAGATACATTGTATC
+chr5 137076484 137076499 -V_DMRT1_01 4.82232e-07 - CGGATACAATGTATC
+chr5 137076514 137076529 -V_DMRT1_01 9.21473e-06 - TTGATACAGTGTGTC
+chr5 137076515 137076529 -V_DMRT7_01 4.72677e-06 - TTGATACAGTGTGT
+chr5 137416869 137416882 +V_AP1_01 1.54268e-07 + GAATGAGTCAGCA
+chr5 137416870 137416881 -V_AP1_Q2 7.83818e-06 - GCTGACTCATT
+chr5 137416870 137416881 -V_AP1_Q6 2.98654e-06 - GCTGACTCATT
+chr5 137416871 137416880 +V_AP1_C 4.03003e-06 + ATGAGTCAG
+chr5 137416871 137416882 -V_NFE2_01 1.48643e-06 - TGCTGACTCAT
+chr5 137416887 137416898 -V_PAX_Q6 1.53104e-06 - CTGGAAATCAC
+chr5 137416951 137416963 +V_GATA4_Q3 2.08127e-07 + AGATAAAAGGGA
+chr5 137416976 137416986 +V_IK_Q5 4.33614e-06 + GGTGGGAGGG
+chr5 138072542 138072565 +V_COUPTF_Q6 6.50749e-06 + TCCTGTGCCCCTGAGCCCTGCCT
+chr5 138072684 138072698 -V_E2A_Q2 5.14964e-06 - ACACCTGCCTCTTC
+chr5 138072685 138072703 +V_MYOD_Q6_01 8.69034e-06 + AAGAGGCAGGTGTTGGGC
+chr5 138072688 138072700 +V_MYOD_01 7.90686e-06 + AGGCAGGTGTTG
+chr5 138072689 138072697 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr5 138072689 138072700 +V_E12_Q6 7.75461e-06 + GGCAGGTGTTG
+chr5 139486790 139486811 +V_DR3_Q4 4.50811e-07 + GGTGCCCTCCCTGCCCTGGGG
+chr5 139486796 139486812 -V_AP2_Q3 4.44136e-06 - GCCCCAGGGCAGGGAG
+chr5 139486796 139486819 +V_COUPTF_Q6 8.98752e-07 + CTCCCTGCCCTGGGGCCACTGCT
+chr5 139486804 139486832 +V_PAX5_01 6.09617e-06 + CCTGGGGCCACTGCTGTATCACCAGTCT
+chr5 139486851 139486860 +V_T3R_Q6 8.74404e-06 + CCTGTCCTC
+chr5 139486852 139486862 -V_PR_Q2 7.23e-06 - GAGAGGACAG
+chr5 139486861 139486870 +V_T3R_Q6 8.74404e-06 + CCTGTCCTG
+chr5 139486869 139486878 +V_CKROX_Q2 3.66459e-06 + GCCCTCCCC
+chr5 139486870 139486878 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr5 139557502 139557517 -V_DMRT3_01 7.42577e-06 - CTGTTGTTACATTCT
+chr5 139557543 139557552 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr5 139557543 139557553 -V_NUR77_Q5 8.43564e-06 - TTGACCTTGG
+chr5 140420788 140420801 -V_SP1_Q6 4.47623e-06 - GGGAGGAGGGGCG
+chr5 140420791 140420804 -V_SP1_Q6 8.76141e-06 - GGGGGGAGGAGGG
+chr5 140420796 140420807 -V_EGR_Q6 3.00131e-06 - GTGGGGGGGAG
+chr5 140420821 140420844 +V_OCT1_04 3.74994e-06 + GCACAAATATGCAAATGGTATAA
+chr5 140420823 140420842 +V_OCT1_01 3.05141e-06 + ACAAATATGCAAATGGTAT
+chr5 140420826 140420840 -V_OCT1_05 4.95753e-06 - ACCATTTGCATATT
+chr5 140420828 140420838 +V_OCT1_B 4.33582e-06 + TATGCAAATG
+chr5 140420828 140420839 -V_OCT_Q6 8.67576e-06 - CCATTTGCATA
+chr5 140420848 140420861 +V_HFH3_01 9.38866e-06 + TGTTATTTGTTTT
+chr5 140420853 140420868 +V_OCT4_02 9.10747e-06 + TTTGTTTTGCTGATA
+chr5 140420873 140420888 +V_OCT4_01 4.28625e-06 + GTTTGAAATGCAAAT
+chr5 140420874 140420889 +V_OCT4_02 4.9622e-06 + TTTGAAATGCAAATG
+chr5 140492978 140492990 -V_MYOD_01 1.24875e-06 - CCACAGGTGTTG
+chr5 140492978 140492990 -V_LMO2COM_01 6.99984e-06 - CCACAGGTGTTG
+chr5 140800120 140800132 +V_FOXD3_01 9.53633e-06 + TTTTGTTTGTTT
+chr5 140800120 140800133 +V_HFH4_01 5.28594e-06 + TTTTGTTTGTTTG
+chr5 140800142 140800155 -V_IK3_01 4.81877e-06 - TTCTGGGAATGCT
+chr5 140800199 140800211 +V_LRH1_Q5 3.06315e-07 + CTGGCCTTGAAC
+chr5 140800199 140800213 +V_PAX6_Q2 8.3884e-07 + CTGGCCTTGAACTC
+chr5 140800221 140800230 +V_T3R_Q6 8.74404e-06 + CCTGTCCTG
+chr5 140800230 140800240 -V_IK_Q5 3.22045e-06 - TTTGGGAGGC
+chr5 140800231 140800240 -V_LYF1_01 7.33929e-06 - TTTGGGAGG
+chr5 140800235 140800248 +V_GFI1_Q6 7.38877e-06 + CCAAATCACTTGT
+chr5 142846911 142846920 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr5 142846918 142846926 -V_CACD_01 9.89755e-06 - CCACACCC
+chr5 142846970 142846978 -V_CACD_01 9.89755e-06 - CCACACCC
+chr5 142846988 142846999 -V_E12_Q6 7.75461e-06 - GGCAGGTGCTC
+chr5 142846989 142846999 +V_MYOD_Q6 2.71739e-06 + AGCACCTGCC
+chr5 142846991 142846999 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr5 142943659 142943672 -V_AP2_Q6_01 3.58329e-06 - GGCCCCTCAGGCT
+chr5 142943679 142943692 -V_MAZR_01 6.86006e-06 - GGAGGAGGGGCCG
+chr5 142943680 142943693 -V_SP1_Q6 3.53849e-06 - GGGAGGAGGGGCC
+chr5 142943699 142943711 -V_LRH1_Q5 2.30644e-06 - ATGACCTTGGAC
+chr5 142943701 142943710 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr5 142943702 142943716 +V_FXR_Q3 2.23271e-06 + CAAGGTCATTGGCC
+chr5 142943705 142943719 -V_FXR_Q3 2.84079e-06 - CAAGGCCAATGACC
+chr5 142943718 142943727 +V_AP2ALPHA_01 6.01835e-06 + GCCCCGGGC
+chr5 142943718 142943727 +V_AP2GAMMA_01 6.01835e-06 + GCCCCGGGC
+chr5 142943718 142943727 -V_AP2ALPHA_01 3.00918e-06 - GCCCGGGGC
+chr5 142943718 142943727 -V_AP2GAMMA_01 3.00918e-06 - GCCCGGGGC
+chr5 142943776 142943784 -V_CACD_01 9.89755e-06 - CCACACCC
+chr5 143052919 143052932 -V_AP2_Q6_01 1.66582e-06 - CTGGCCCCAGGCC
+chr5 143598707 143598721 +V_MTF1_Q4 2.04812e-06 + AGTGCACCCTGCCC
+chr5 143598714 143598728 +V_KROX_Q6 7.56123e-06 + CCTGCCCCCAACGC
+chr5 143598742 143598753 -V_EGR_Q6 5.40581e-06 - GTGGGGGTGGC
+chr5 143598758 143598779 +V_NRSE_B 8.83183e-06 + GCCAGCAGCTCAGACAGAGCC
+chr5 143598759 143598778 -V_NRSF_Q4 2.02038e-06 - GCTCTGTCTGAGCTGCTGG
+chr5 143598797 143598817 -V_PPARA_01 9.55693e-06 - CAAAAGCAGGCCTCAGGCCA
+chr5 143598798 143598811 -V_AP2_Q6_01 2.99785e-06 - CAGGCCTCAGGCC
+chr5 143598816 143598828 +V_MYOD_01 8.19551e-06 + GGACAGCTGCTG
+chr5 143994762 143994775 +V_NFY_Q6_01 9.50338e-07 + CATTAGCCAATCA
+chr5 143994763 143994777 -V_NFY_C 1.50183e-07 - ACTGATTGGCTAAT
+chr5 143994765 143994776 +V_ALPHACP1_01 5.68927e-06 + TAGCCAATCAG
+chr5 143994765 143994776 +V_NFY_Q6 1.60535e-06 + TAGCCAATCAG
+chr5 145007417 145007429 +V_PAX4_03 9.67001e-06 + TATCCTCACCCC
+chr5 145007421 145007435 +V_KROX_Q6 4.02412e-06 + CTCACCCCCCCCCC
+chr5 145007422 145007435 -V_MAZR_01 1.39054e-06 - GGGGGGGGGGTGA
+chr5 145007424 145007435 +V_SP1SP3_Q4 3.19906e-06 + ACCCCCCCCCC
+chr5 145007425 145007434 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr5 145007425 145007436 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr5 145007426 145007435 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr5 145007426 145007437 +V_SP1SP3_Q4 3.76147e-06 + CCCCCCCCCCA
+chr5 145007426 145007445 -V_PPARA_02 6.12488e-06 - CCAGGGGATGGGGGGGGGG
+chr5 145007427 145007436 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr5 145007442 145007457 +V_DMRT1_01 1.2457e-07 + TGGATACAATGTAGC
+chr5 145007444 145007459 -V_DMRT1_01 1.58987e-07 - TGGCTACATTGTATC
+chr5 145007496 145007514 +V_AHR_01 2.77749e-06 + CCTGGAGCTGGCGTTAGA
+chr5 147491214 147491232 +V_GCNF_01 2.82479e-06 + GCCCGGTTCAAGGTCACA
+chr5 147491218 147491232 +V_ERR1_Q2 1.82748e-06 + GGTTCAAGGTCACA
+chr5 147491219 147491231 -V_LRH1_Q5 2.30644e-06 - GTGACCTTGAAC
+chr5 147491221 147491230 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr5 147660630 147660642 +V_LRH1_Q5 9.2187e-06 + ATGGCCTTGGAG
+chr5 147660639 147660652 +V_AP1_01 5.13952e-06 + GAGTGAGTCAGAT
+chr5 147660641 147660650 +V_AP1_C 7.33929e-06 + GTGAGTCAG
+chr5 147660662 147660674 +V_LMO2COM_01 6.99984e-06 + CTGCAGGTGTTG
+chr5 148109351 148109364 +V_STAT_Q6 7.7371e-06 + GACACTTCTAGGA
+chr5 148109417 148109428 +V_ER_Q6_02 3.60157e-06 + CAGGTCAGGGC
+chr5 148228522 148228535 -V_HNF4_DR1_Q3 7.61558e-06 - TGAGCCTTGTCCT
+chr5 148732730 148732754 +V_STAT5A_02 5.45619e-06 + TTCCTGGAATGTAGCCTTCCAGAG
+chr5 148732769 148732783 +V_DMRT7_01 6.61071e-07 + ATGTTACAATGTTG
+chr5 148732769 148732784 +V_DMRT1_01 4.00094e-07 + ATGTTACAATGTTGC
+chr5 148732829 148732841 -V_SRY_02 2.9821e-06 - ATAAACAATAGA
+chr5 148732829 148732847 -V_FOXJ2_01 5.6435e-06 - TGCAAAATAAACAATAGA
+chr5 148732830 148732840 -V_SOX5_01 9.25861e-06 - TAAACAATAG
+chr5 148732831 148732843 +V_FOXD3_01 4.65347e-06 + TATTGTTTATTT
+chr5 148732831 148732844 +V_FOX_Q2 6.74059e-07 + TATTGTTTATTTT
+chr5 148732856 148732871 -V_DMRT1_01 6.49273e-06 - CTGATACATTGTAAA
+chr5 149172897 149172910 -V_NFY_Q6_01 5.29946e-06 - CCTTCGCCAATCA
+chr5 149172997 149173015 -V_RFX1_02 4.02208e-06 - TAATACCCATGGCAACCA
+chr5 149173041 149173052 -V_HELIOSA_01 7.75319e-06 - TATAGGGATTA
+chr5 149247368 149247377 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr5 149247383 149247398 -V_DMRT5_01 1.76793e-06 - CTTTGTAACAGTTTC
+chr5 149247448 149247459 +V_NFE2_01 8.09548e-06 + AACTGAGTCAT
+chr5 149247449 149247460 -V_AP1_Q6 8.21187e-06 - CATGACTCAGT
+chr5 149247450 149247459 -V_AP1_Q6_01 4.03003e-06 - ATGACTCAG
+chr5 150258166 150258177 +V_ALPHACP1_01 4.48665e-06 + CAGCCAGTGAG
+chr5 150258237 150258253 +V_DMRT2_01 4.64242e-06 + CAGAGAGATACAATGT
+chr5 150718215 150718230 -V_DMRT1_01 6.01487e-06 - TTGATATATTGTATC
+chr5 150718267 150718282 -V_DMRT1_01 4.22638e-08 - TTGATACATTGTATC
+chr5 150718269 150718284 -V_DMRT5_01 3.59263e-06 - TTTTGATACATTGTA
+chr5 150718270 150718285 -V_DMRT3_01 3.47935e-08 - ATTTTGATACATTGT
+chr5 150718270 150718286 -V_DMRT2_01 2.74808e-08 - TATTTTGATACATTGT
+chr5 150718272 150718285 +V_DMRT4_01 1.44269e-06 + AATGTATCAAAAT
+chr6 4711595 4711604 +V_ZIC2_01 9.89755e-06 + GGGGTGGTG
+chr6 4711604 4711621 +V_PU1_01 3.68232e-06 + TATAAGGGGAAGTGTAG
+chr6 4711605 4711617 +V_ELF1_Q6 7.9902e-06 + ATAAGGGGAAGT
+chr6 4711605 4711624 -V_PU1_Q4 1.19604e-06 - AACCTACACTTCCCCTTAT
+chr6 4711624 4711643 -V_PU1_Q4 8.38434e-06 - GCTCCTCCCTTCCCCTTAT
+chr6 4711628 4711643 +V_VDR_Q3 6.79734e-06 + GGGGAAGGGAGGAGC
+chr6 4711702 4711715 +V_SP1_Q6 6.51994e-06 + AAGGGGAGGGGTG
+chr6 4711703 4711713 -V_SP1_Q2_01 6.40385e-06 - CCCCTCCCCT
+chr6 4711704 4711712 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr6 4711704 4711713 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr6 4711704 4711714 +V_SP1_Q6_01 9.74073e-06 + GGGGAGGGGT
+chr6 4711721 4711734 +V_SP1_Q6 6.51994e-06 + AAGGGGAGGGGTG
+chr6 4711722 4711732 -V_SP1_Q2_01 6.40385e-06 - CCCCTCCCCT
+chr6 4711723 4711731 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr6 4711723 4711732 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr6 4711723 4711733 +V_SP1_Q6_01 9.74073e-06 + GGGGAGGGGT
+chr6 4711747 4711756 +V_ZIC2_01 9.89755e-06 + GGGGTGGTG
+chr6 4887977 4887987 +V_P53_DECAMER_Q2 3.01332e-06 + AGACAAGTCC
+chr6 4888000 4888015 +V_DMRT1_01 9.55793e-06 + TAGCAACAATGTAAC
+chr6 4888002 4888017 -V_DMRT1_01 9.92712e-06 - GAGTTACATTGTTGC
+chr6 4888047 4888057 +V_NKX25_Q5 1.81713e-06 + TGCCACTTGA
+chr6 4888058 4888072 +V_NFKB_Q6 1.05839e-06 + TGGGGACTCTCCAC
+chr6 4888059 4888071 +V_NFKB_C 2.16177e-07 + GGGGACTCTCCA
+chr6 4888059 4888075 -V_NFKB_Q6_01 7.12923e-06 - GATGTGGAGAGTCCCC
+chr6 49682.4.5968276 +V_PBX_Q3 3.10639e-06 + GATGGATGGGTG
+chr6 4968304 4968322 +V_LXR_Q3 5.52015e-07 + CAGGGTCAGTGTGGGGCA
+chr6 4968305 4968322 -V_DR4_Q2 6.45833e-06 - TGCCCCACACTGACCCT
+chr6 4968306 4968322 -V_LXR_DR4_Q3 8.49614e-07 - TGCCCCACACTGACCC
+chr6 5049130 5049143 +V_MAZR_01 8.35903e-06 + GGAGGAGGGGCAA
+chr6 7996705 7996715 -V_TAL1_Q6 4.87508e-06 - TCCAGCTGGT
+chr6 10042114 10042129 -V_OCT4_01 5.63049e-06 - TTTTGTAATGCATAA
+chr6 10042115 10042133 -V_CEBP_C 3.26639e-07 - TGTCTTTTGTAATGCATA
+chr6 12041891 12041908 +V_PU1_01 4.95611e-08 + AAAAAGGGGAAGTGCCT
+chr6 12041892 12041911 -V_PU1_Q4 3.95346e-06 - GAAAGGCACTTCCCCTTTT
+chr6 12765491 12765504 +V_CEBP_01 1.51712e-06 + TCTGTGGTAAGTT
+chr6 12765520 12765535 +V_OCT4_01 1.40241e-06 + TATTGTAATGCTAAA
+chr6 12765521 12765536 +V_OCT4_02 6.55103e-06 + ATTGTAATGCTAAAT
+chr6 12765592 12765607 +V_OCT4_01 7.94702e-06 + TTTTGTTGTGCAAAC
+chr6 15773428 15773444 -V_MAF_Q6 8.80129e-06 - ATAAAGGAAGTTTGGG
+chr6 17028100 17028113 +V_GFI1_Q6 3.59901e-06 + CCAAATCATGGCT
+chr6 18175184 18175196 +V_ETS_Q4 4.90737e-06 + AACCTCTTCCTG
+chr6 18590117 18590129 -V_SRY_02 1.60347e-06 - TTAAACAATAGA
+chr6 18590118 18590128 -V_SOX5_01 9.25861e-06 - TAAACAATAG
+chr6 18590163 18590175 -V_AP1_Q2_01 6.13341e-06 - TGACTCACAGTT
+chr6 18590167 18590176 +V_AP1_C 7.33929e-06 + GTGAGTCAG
+chr6 18590194 18590210 -V_AP2_Q3 9.75043e-07 - GCCCTCGGGCTATGGC
+chr6 18590200 18590209 +V_AP2ALPHA_01 9.68294e-06 + GCCCGAGGG
+chr6 18590200 18590209 +V_AP2GAMMA_01 7.85065e-06 + GCCCGAGGG
+chr6 18772945 18772973 +V_PAX5_01 6.09617e-06 + GCCTGAGGCCAGGTAGCAGGGCAACTTC
+chr6 18772981 18772991 -V_P53_DECAMER_Q2 2.10476e-06 - AGGCAAGTCC
+chr6 18772981 18773001 +V_P53_01 9.97063e-06 + GGACTTGCCTGGAACTGCCC
+chr6 18772981 18773001 -V_P53_01 6.63715e-06 - GGGCAGTTCCAGGCAAGTCC
+chr6 18772985 18772999 +V_STAT3STAT3_Q3 2.42992e-06 + TTGCCTGGAACTGC
+chr6 22317982 22317990 -V_CACD_01 9.89755e-06 - CCACACCC
+chr6 22318050 22318062 +V_USF_Q6_01 4.40024e-06 + GGCCAGGTGACA
+chr6 22318099 22318114 +V_STAT5A_01 6.81283e-06 + CAGTTCTTGGAAACA
+chr6 22367256 22367271 +V_HES1_Q2 8.82762e-06 + AAGCCTGGTGGCTCT
+chr6 22367269 22367280 -V_SMAD_Q6_01 8.17406e-06 - AGGCCAGACAG
+chr6 22367351 22367369 -V_SRF_Q4 1.25759e-06 - GCCAAATAAGGGAATAGA
+chr6 22367353 22367368 -V_SRF_Q5_01 5.01188e-06 - CCAAATAAGGGAATA
+chr6 22367353 22367372 +V_SRF_Q5_02 7.9442e-07 + TATTCCCTTATTTGGCCAC
+chr6 22367354 22367369 -V_SRF_C 8.2074e-06 - GCCAAATAAGGGAAT
+chr6 22367354 22367372 +V_SRF_01 2.16461e-06 + ATTCCCTTATTTGGCCAC
+chr6 22367354 22367372 -V_SRF_01 9.26184e-06 - GTGGCCAAATAAGGGAAT
+chr6 22367356 22367370 -V_SRF_Q6 4.91031e-07 - GGCCAAATAAGGGA
+chr6 22367357 22367372 +V_SRF_C 8.92759e-06 + CCCTTATTTGGCCAC
+chr6 22367365 22367381 -V_MAF_Q6 2.6445e-06 - GAGGAGGAAGTGGCCA
+chr6 22367366 22367383 -V_PU1_01 6.15878e-06 - AGGAGGAGGAAGTGGCC
+chr6 22367370 22367382 -V_ELF1_Q6 3.87486e-06 - GGAGGAGGAAGT
+chr6 23040544 23040565 +V_HNF1_Q6_01 4.55962e-06 + TTCAGTAACTAATTAACATTT
+chr6 23040643 23040658 -V_OCT4_01 7.41924e-06 - TTTTCTTATGGAAAA
+chr6 28853344 28853359 +V_DMRT1_01 1.44151e-06 + CTGATACAATGTAAC
+chr6 28853346 28853361 -V_DMRT1_01 6.49273e-06 - TCGTTACATTGTATC
+chr6 28853349 28853364 -V_DMRT3_01 7.84334e-06 - CAGTCGTTACATTGT
+chr6 29570257 29570272 +V_VDR_Q3 9.09802e-07 + GGGGGAGGGGGGAGG
+chr6 29570272 29570284 +V_EGR2_01 7.57802e-06 + AGGAGTGGGCGT
+chr6 29570278 29570290 -V_CREB_02 1.22819e-06 - GTGGTGACGCCC
+chr6 29570336 29570348 +V_CMYC_02 6.55801e-06 + GGGCACGTGCTT
+chr6 29570336 29570348 -V_CMYC_01 2.31872e-06 - AAGCACGTGCCC
+chr6 29570336 29570348 -V_CMYC_02 4.59628e-06 - AAGCACGTGCCC
+chr6 29570364 29570378 +V_CEBPB_02 2.27259e-07 + AGCTTGCACAACTG
+chr6 29581812 29581826 -V_ETS2_B 4.30291e-06 - TGGAGGAAGTATGT
+chr6 30109673 30109684 +V_HELIOSA_02 8.07231e-06 + TCAAGGAAAAC
+chr6 30109778 30109788 +V_P53_DECAMER_Q2 6.84641e-06 + GGACAAGCCC
+chr6 30222547 30222561 +V_GATA1_03 7.17727e-07 + ATGCAGATTACGGC
+chr6 31177536 31177551 -V_OCT4_02 6.14224e-06 - ATTGATATGTAAATG
+chr6 31177537 31177552 -V_OCT4_01 1.18992e-06 - AATTGATATGTAAAT
+chr6 31177584 31177598 -V_GATA1_03 3.29658e-06 - ATGCTGATTAGAGG
+chr6 31177597 31177620 +V_COUPTF_Q6 8.98752e-07 + TTCCGTGACCCCAGCTCCCTGAT
+chr6 31898288 31898303 -V_OCT4_02 5.88393e-08 - TTTGTGATGCAAATG
+chr6 31898289 31898304 -V_OCT4_01 5.31494e-07 - ATTTGTGATGCAAAT
+chr6 31898343 31898358 -V_ETS1_B 4.95894e-07 - GCAGGAAGGGACTGC
+chr6 31898385 31898404 +V_PU1_Q4 1.19604e-06 + TCACTGTACTTCCTCCTTT
+chr6 31898388 31898405 -V_PU1_01 9.50289e-07 - CAAAGGAGGAAGTACAG
+chr6 31898392 31898404 -V_ELF1_Q6 9.35761e-06 - AAAGGAGGAAGT
+chr6 32152804 32152818 -V_KROX_Q6 1.8783e-06 - CCCACCCCCACCTC
+chr6 32152807 32152818 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr6 32152809 32152818 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr6 32152809 32152819 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr6 32152809 32152822 +V_MAZR_01 9.79421e-06 + GGGGGTGGGGAGC
+chr6 32152867 32152882 -V_OCT4_01 4.57831e-06 - CATTAAAATGCTAAT
+chr6 32152917 32152932 -V_OCT4_01 4.57831e-06 - CATTTAAATGCAGAT
+chr6 34137640 34137655 +V_TAXCREB_02 6.45494e-06 + ATGACACACTTCCCC
+chr6 34137758 34137767 -V_ZIC1_01 9.41154e-06 - TGGGGGGTC
+chr6 34137758 34137767 -V_ZIC3_01 7.18016e-06 - TGGGGGGTC
+chr6 34137760 34137773 +V_AP2_Q6_01 7.38468e-06 + CCCCCCACAGGCT
+chr6 34294228 34294239 -V_ER_Q6_02 1.49026e-06 - AAGGTCACGGT
+chr6 34294237 34294254 +V_HSF1_Q6 1.88941e-07 + TTTCCAGAACCTTCTTC
+chr6 34294238 34294251 +V_HSF_Q6 4.57735e-06 + TTCCAGAACCTTC
+chr6 34294366 34294377 +V_EGR_Q6 8.85524e-06 + GTGGGGGCATC
+chr6 34357491 34357500 +V_FOXO1_Q5 7.27852e-06 + AAAAACAAA
+chr6 34570397 34570407 +V_NKX22_01 4.33582e-06 + TTAAGTAGTT
+chr6 34570414 34570422 -V_CACD_01 9.89755e-06 - CCACACCC
+chr6 34570422 34570443 -V_HNF1_Q6_01 7.00741e-06 - CTGAGATAATGATCAACCAGA
+chr6 34570454 34570463 -V_YY1_Q6 3.30926e-06 - GCCATCTTG
+chr6 34570539 34570551 +V_GLI_Q2 9.40421e-06 + CCTGGGTGGCCT
+chr6 37571752 37571761 -V_SMAD3_Q6 7.33929e-06 - TGTCTGCCT
+chr6 37571769 37571781 -V_MYOD_01 4.12991e-06 - GGACAGCTGGCG
+chr6 37807684 37807699 +V_HMGIY_Q3 1.28381e-06 + CTTGGAATTTCCTGA
+chr6 37807686 37807696 +V_NFKAPPAB65_01 5.16177e-06 + TGGAATTTCC
+chr6 37977981 37977996 +V_IRF_Q6 7.74377e-06 + GGTGCTTTCACTTCT
+chr6 37977984 37977997 -V_IRF1_01 7.58634e-06 - GAGAAGTGAAAGC
+chr6 37977984 37977997 -V_IRF2_01 2.11362e-06 - GAGAAGTGAAAGC
+chr6 37977985 37977996 -V_IRF_Q6_01 5.29553e-06 - AGAAGTGAAAG
+chr6 39383573 39383584 -V_EVI1_03 6.70634e-06 - AGAGAAGATAA
+chr6 39383621 39383630 -V_ZIC1_01 2.71739e-06 - TGGGTGGTC
+chr6 39383621 39383630 -V_ZIC2_01 4.94877e-06 - TGGGTGGTC
+chr6 39383621 39383630 -V_ZIC3_01 2.71739e-06 - TGGGTGGTC
+chr6 39689441 39689454 +V_AP1_01 8.76324e-06 + TCTTGAGTCAGCC
+chr6 39690076 39690086 +V_NKX25_Q5 5.12638e-06 + TCCCACTTCA
+chr6 47203211 47203219 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr6 47316443 47316464 -V_PPARG_01 5.82642e-06 - TGCTGGGTGTAAGGTCAACTG
+chr6 47925112 47925123 -V_FLI1_Q6 9.02891e-06 - CAGGAAGCCAC
+chr6 47925154 47925167 -V_AP2_Q6_01 7.38468e-06 - GAGCCCTCAGGCT
+chr6 49172001 49172012 +V_FOXO4_01 2.58623e-06 + ATAAACAAGTC
+chr6 49172032 49172041 +V_AP2ALPHA_01 3.00918e-06 + GCCCGGGGC
+chr6 49172032 49172041 +V_AP2GAMMA_01 3.00918e-06 + GCCCGGGGC
+chr6 49172032 49172041 -V_AP2ALPHA_01 6.01835e-06 - GCCCCGGGC
+chr6 49172032 49172041 -V_AP2GAMMA_01 6.01835e-06 - GCCCCGGGC
+chr6 49172130 49172148 -V_AHR_01 6.00169e-06 - GTTCCAGCTTGCCTGACT
+chr6 49250988 49251006 -V_NF1_Q6 5.86126e-06 - ACTTGGCTTGGAGCCCCC
+chr6 49251093 49251110 -V_PPARG_03 8.94742e-06 - TGCTTGGGAAAAGGTCT
+chr6 49251099 49251113 -V_EFC_Q6 5.04342e-06 - AGTTGCTTGGGAAA
+chr6 49302967 49302983 -V_HAND1E47_01 2.01502e-06 - AATGGCTTCTGGCAAT
+chr6 49303034 49303049 +V_SREBP_Q6 4.69758e-06 + CTTCTCACCCCAGAG
+chr6 49303068 49303084 -V_HAND1E47_01 8.05914e-06 - GATGGCTTCTGGCAAT
+chr6 50336012 50336026 +V_DMRT7_01 1.189e-06 + TTGAAACAATGTTG
+chr6 50336012 50336027 +V_DMRT1_01 3.23848e-08 + TTGAAACAATGTTGC
+chr6 50336014 50336029 -V_DMRT1_01 1.58987e-07 - TGGCAACATTGTTTC
+chr6 50336025 50336035 +V_TAL1_Q6 4.87508e-06 + GCCAGCTGCC
+chr6 51026936 51026951 +V_VDR_Q3 3.12027e-06 + GGGTGAATGGGGACC
+chr6 51027003 51027019 -V_AP2_Q3 9.58219e-06 - GGCCCTGGGCAGGGCA
+chr6 51027023 51027044 +V_DR3_Q4 5.55774e-06 + GCTCTCCCCCATCACCCCTCT
+chr6 51027025 51027040 -V_VDR_Q3 8.52845e-06 - GGGTGATGGGGGAGA
+chr6 51027029 51027039 -V_GATA1_01 3.85013e-06 - GGTGATGGGG
+chr6 51455897 51455908 -V_SP1SP3_Q4 8.91927e-06 - CCCCCGCCTGC
+chr6 51455898 51455912 -V_KROX_Q6 4.24911e-06 - CCTGCCCCCGCCTG
+chr6 51455901 51455912 +V_EGR_Q6 5.17898e-06 + GCGGGGGCAGG
+chr6 51455910 51455918 -V_CACD_01 9.89755e-06 - CCACACCC
+chr6 51455920 51455934 +V_BLIMP1_Q6 8.21933e-06 + AGAAAGGGAAGGGC
+chr6 51897877 51897886 +V_EVI1_06 5.97675e-06 + ACAAGATAA
+chr6 54161388 54161409 +V_PPARG_01 4.8239e-06 + CCTGGGGCCAAGGGTGACACG
+chr6 54161392 54161405 +V_DR1_Q3 3.68055e-06 + GGGCCAAGGGTGA
+chr6 54161392 54161405 -V_PPAR_DR1_Q2 4.57755e-06 - TCACCCTTGGCCC
+chr6 54161392 54161405 -V_HNF4_DR1_Q3 6.41844e-06 - TCACCCTTGGCCC
+chr6 54161392 54161405 -V_COUP_DR1_Q6 8.56248e-06 - TCACCCTTGGCCC
+chr6 55109468 55109487 -V_OCT1_01 8.13542e-06 - ATGGTTATGCTAATGCAGC
+chr6 55109473 55109483 -V_POU3F2_02 3.63926e-06 - TTATGCTAAT
+chr6 55109473 55109488 -V_OCT4_01 9.65557e-06 - TATGGTTATGCTAAT
+chr6 55109523 55109532 -V_AP1_Q6_01 8.93783e-06 - ATGACTCAA
+chr6 56261151 56261171 -V_FOXP1_01 2.13015e-06 - TTTTTTTTTTTTTTTTTTTT
+chr6 58143740 58143757 +V_PPARG_03 5.76105e-06 + AACTGGGATAAAATTCA
+chr6 58143791 58143800 +V_HNF4_Q6 7.33929e-06 + AAGGTCCAA
+chr6 58143820 58143839 +V_ER_Q6 9.34334e-06 + CAAGGGCTTTGTGACCTTG
+chr6 60703133 60703144 -V_EVI1_02 4.94338e-06 - TGACAAGATAG
+chr6 60703133 60703144 -V_EVI1_05 6.50785e-06 - TGACAAGATAG
+chr6 60703240 60703253 +V_SOX_Q6 1.4467e-06 + CTCTTTGTTCTGT
+chr6 60703259 60703275 +V_NFKB_Q6_01 8.55659e-06 + GACAAGGGAACTCCCC
+chr6 61921154 61921170 +V_MEF2_01 2.10528e-06 + GCCTCAAAATAACTCT
+chr6 61921186 61921203 +V_HSF1_Q6 2.803e-07 + CTTCTAGCACTTTCTCG
+chr6 65220790 65220809 +V_ER_Q6 4.06944e-06 + TGAGGGCTATGTGACCTTC
+chr6 65524543 65524556 +V_RXRLXRB_01 2.29281e-06 + AGGTTGAAGGTCA
+chr6 65524544 65524558 +V_ERR1_Q2 8.28315e-06 + GGTTGAAGGTCAGA
+chr6 65524610 65524620 +V_P53_02 8.65429e-06 + GGGCATGCCT
+chr6 65524610 65524620 -V_P53_02 4.11978e-06 - AGGCATGCCC
+chr6 65524610 65524620 -V_P53_DECAMER_Q2 4.12901e-06 - AGGCATGCCC
+chr6 65524654 65524670 +V_EVI1_01 6.56471e-07 + AGACTAGATAAGAAAA
+chr6 65883396 65883406 +V_OCT1_B 8.43065e-06 + AATGCAAATC
+chr6 67186630 67186645 -V_OCT1_Q6 8.77396e-06 - AGAAATGTAAATAAC
+chr6 67186668 67186681 -V_NKX61_01 9.47725e-06 - TATTTAATTGACT
+chr6 67186693 67186706 +V_NFY_Q6_01 5.96025e-06 + CCCCAGCCAATGG
+chr6 67186694 67186710 +V_NFY_01 2.68498e-06 + CCCAGCCAATGGGGAA
+chr6 67186696 67186707 +V_ALPHACP1_01 4.48665e-06 + CAGCCAATGGG
+chr6 67186712 67186724 -V_NANOG_01 5.79837e-06 - GTGACCATTTCC
+chr6 68802906 68802916 -V_NFKAPPAB65_01 1.65463e-06 - GGGGATTTCC
+chr6 68802906 68802916 -V_CREL_01 1.3587e-06 - GGGGATTTCC
+chr6 68802906 68802916 -V_NFKAPPAB_01 4.37202e-06 - GGGGATTTCC
+chr6 68802928 68802941 -V_DEC_Q1 2.37756e-06 - GGCCAAGTGAAGA
+chr6 68803292 68803305 +V_HNF3_Q6 7.97369e-06 + AAAGACAAACAGT
+chr6 68803301 68803317 +V_S8_01 8.86506e-06 + CAGTCTCAATTAACCT
+chr6 71576129 71576144 +V_OCT1_Q6 5.39975e-06 + CAGAATGCAAAGAAC
+chr6 71576160 71576179 +V_OCT1_01 3.19659e-06 + TTACATATGCTAATTAGAG
+chr6 71576163 71576175 +V_OCT1_07 6.48249e-06 + CATATGCTAATT
+chr6 71576163 71576177 -V_OCT1_05 1.1984e-06 - CTAATTAGCATATG
+chr6 71576164 71576174 +V_POU3F2_02 7.27852e-06 + ATATGCTAAT
+chr6 71576164 71576177 -V_OCT_C 3.34139e-06 - CTAATTAGCATAT
+chr6 71576167 71576181 +V_CHX10_01 9.92707e-06 + TGCTAATTAGAGTA
+chr6 72040084 72040099 -V_SREBP_Q6 4.19274e-06 - CCCCTCACACCACCT
+chr6 72040084 72040099 -V_SREBP1_Q5 1.64512e-06 - CCCCTCACACCACCT
+chr6 72072716 72072730 -V_MEIS1AHOXA9_01 6.45131e-06 - TGTCAGTTTAACGG
+chr6 72072716 72072730 -V_MEIS1BHOXA9_02 7.22837e-06 - TGTCAGTTTAACGG
+chr6 72072770 72072786 +V_DMRT2_01 7.42061e-07 + GAGAAGGATACATTGT
+chr6 72072774 72072789 +V_DMRT1_01 7.31766e-07 + AGGATACATTGTAGC
+chr6 72072776 72072791 -V_DMRT1_01 1.87081e-07 - CTGCTACAATGTATC
+chr6 72072849 72072861 +V_SREBP_Q3 7.64343e-06 + ATGATCACCCTA
+chr6 72410492 72410506 -V_FOXO3_01 4.79165e-06 - TGCTTGTTTATATT
+chr6 72410495 72410506 +V_FOXO4_01 3.20562e-06 + ATAAACAAGCA
+chr6 72410548 72410560 +V_LMO2COM_01 7.876e-06 + GGCCAGGTGCTT
+chr6 73318721 73318736 -V_OCT4_02 1.90479e-06 - TTTGTCATGTTAATG
+chr6 76589792 76589807 -V_OCT4_01 9.65557e-06 - TGTTCTAATGCAGAT
+chr6 76589799 76589818 -V_GR_Q6 5.54808e-06 - GAAGCTCCCTCTGTTCTAA
+chr6 76589816 76589839 -V_OCT1_04 3.74994e-06 - CATTCTTTATGCAAATGAATAGA
+chr6 76589818 76589837 -V_OCT1_01 8.77863e-06 - TTCTTTATGCAAATGAATA
+chr6 76589820 76589833 +V_OCT_C 1.45627e-06 + TTCATTTGCATAA
+chr6 76589821 76589832 +V_OCT1_Q5_01 1.56035e-06 + TCATTTGCATA
+chr6 76589821 76589832 +V_OCT_Q6 7.39888e-07 + TCATTTGCATA
+chr6 76589822 76589832 -V_OCT1_B 4.33582e-06 - TATGCAAATG
+chr6 82781460 82781488 -V_PAX5_01 3.42772e-06 - CCTCAGCCCAGTGAGGAGCAGCCTCAGG
+chr6 83646690 83646702 +V_GABP_B 9.67301e-06 + CCAGGAAGGGCA
+chr6 83646696 83646714 +V_RFX1_02 2.15773e-06 + AGGGCACCACAGCAACCT
+chr6 83843736 83843746 -V_NUR77_Q5 2.98426e-06 - CTGACCTTGC
+chr6 83843738 83843749 +V_ER_Q6_02 7.31305e-06 + AAGGTCAGGGT
+chr6 83843866 83843880 -V_ERR1_Q2 9.65657e-06 - GGTTAAAGGTCAAA
+chr6 83843868 83843881 +V_PPAR_DR1_Q2.4.51267e-06 + TGACCTTTAACCA
+chr6 83843868 83843881 +V_HNF4_DR1_Q3 8.70895e-06 + TGACCTTTAACCA
+chr6 83843868 83843881 -V_RXRLXRB_01 1.64968e-06 - TGGTTAAAGGTCA
+chr6 83843868 83843881 -V_DR1_Q3 3.04643e-06 - TGGTTAAAGGTCA
+chr6 83843868 83843882 +V_COUP_01 1.41012e-06 + TGACCTTTAACCAT
+chr6 83843868 83843885 -V_PPARG_03 6.0242e-06 - GTGATGGTTAAAGGTCA
+chr6 84246153 84246172 -V_PU1_Q4 1.49472e-06 - AGTATCTGGTTCCTCTTTT
+chr6 85894035 85894049 -V_FOXO4_02 7.08786e-06 - CCTTTGTTTACCCT
+chr6 86078877 86078896 -V_PPARA_02 9.41237e-06 - CAAGGTCACTGGGAGGAGG
+chr6 86078886 86078900 -V_ERR1_Q2.4.56186e-06 - ATTTCAAGGTCACT
+chr6 86078888 86078897 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr6 86078923 86078936 -V_ALX4_01 9.59891e-06 - CCTGTGAATAAAC
+chr6 86900975 86900986 +V_EBF_Q6 4.00905e-06 + CTCCCCAGGGA
+chr6 86900997 86901012 -V_OCT4_01 4.28625e-06 - CTTTCAAATGTAGAT
+chr6 86942866 86942878 +V_SRY_02 1.60347e-06 + GAAAACAAAAGG
+chr6 86942938 86942953 +V_SRF_C 3.72534e-06 + ACCCTTTAAGGCCAG
+chr6 86942990 86942999 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr6 87495803 87495815 -V_FOXO3A_Q1 8.18086e-06 - TGTAAATAAATG
+chr6 87495808 87495823 -V_OCT4_01 1.18992e-06 - AATTGATATGTAAAT
+chr6 87495820 87495832 -V_FOXO3A_Q1 9.47139e-06 - TGTAAATAAAAT
+chr6 87495825 87495840 -V_OCT4_01 3.90219e-07 - CTTTGATATGTAAAT
+chr6 87495851 87495866 -V_OCT4_01 1.18992e-06 - AATTGATATGTAAAT
+chr6 87495886 87495898 -V_SRY_02 7.75651e-06 - ATAAACAAAAGG
+chr6 87495899 87495912 -V_NRF2_Q4 1.6217e-06 - ATGCTGATTCAGG
+chr6 87495900 87495911 -V_MAF_Q6_01 9.11965e-06 - TGCTGATTCAG
+chr6 89076090 89076103 -V_SP1_Q6 1.21453e-07 - TGGGGGCGGGGCT
+chr6 89076091 89076101 -V_SP1_Q6_01 3.39206e-07 - GGGGCGGGGC
+chr6 89076092 89076101 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr6 89076092 89076102 +V_SP1_Q2_01 3.39206e-07 + CCCCGCCCCC
+chr6 89076102 89076121 -V_OCT1_01 3.8208e-06 - CTGAATATGCAAAAATGTT
+chr6 89076106 89076121 -V_OCT1_02 1.79138e-06 - CTGAATATGCAAAAA
+chr6 89076123 89076136 -V_HFH3_01 4.77876e-06 - TGGTGTTTATTTT
+chr6 90585749 90585760 +V_OCT1_Q5_01 3.58564e-06 + TTATTTGCATT
+chr6 90585749 90585760 +V_OCT_Q6 3.88942e-06 + TTATTTGCATT
+chr6 90585789 90585798 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr6 90585789 90585799 +V_SP1_Q2_01 6.40385e-06 + CCCCTCCCCT
+chr6 90585790 90585798 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr6 92446178 92446193 +V_TST1_01 1.95939e-07 + GTGGAATTAGACTGC
+chr6 92856073 92856088 +V_ETS1_B 2.43138e-06 + AGAGGAAGTGGGGGA
+chr6 92856074 92856086 -V_ETS_Q4 4.36344e-06 - CCCCACTTCCTC
+chr6 92856113 92856132 -V_PPARA_02 2.92443e-06 - GTGGGTCATGGAGGGGGTG
+chr6 92856122 92856141 -V_PPARA_02 2.57121e-06 - GAAGGCCATGTGGGTCATG
+chr6 92856135 92856149 -V_PAX6_Q2 7.96818e-06 - CTGGGCTGGAAGGC
+chr6 94763876 94763891 +V_IPF1_Q4_01 3.95561e-07 + TCAGTCATTAGAGCC
+chr6 94799887 94799902 -V_VDR_Q3 9.72998e-07 - GGTGGAGTGGGGAGA
+chr6 95053870 95053885 +V_OCT4_01 3.26181e-06 + TATTCTAATGCTAAA
+chr6 95304007 95304019 -V_PXR_Q2 4.02944e-06 - TGGGTTAGTGAC
+chr6 97051775 97051788 +V_HFH4_01 6.29512e-06 + GAGGGTTTGTTTA
+chr6 97051858 97051867 +V_CACBINDINGPROTEIN_Q6 2.23138e-06 + GAGGGTGGG
+chr6 97052045 97052069 +V_STAT5A_02 4.69306e-06 + TGCCCGGAATTGATTTGCATAGAG
+chr6 97052054 97052067 +V_OCT_C 5.64798e-06 + TTGATTTGCATAG
+chr6 97052054 97052069 -V_OCT1_Q6 9.35394e-06 - CTCTATGCAAATCAA
+chr6 97052055 97052066 +V_OCT1_Q5_01 3.69944e-07 + TGATTTGCATA
+chr6 97052055 97052066 +V_OCT_Q6 3.69944e-07 + TGATTTGCATA
+chr6 97052056 97052066 -V_OCT1_B 1.34745e-06 - TATGCAAATC
+chr6 97052078 97052101 -V_COUPTF_Q6 3.7102e-06 - GCCTCTGATCTTTGCTCTGTCCT
+chr6 97052415 97052427 -V_PAX4_03 6.56043e-06 - CAGCTCCACCCC
+chr6 97052445 97052459 -V_BLIMP1_Q6 1.45354e-06 - GAGGAGGGAAAGGG
+chr6 97052465 97052480 +V_OCT4_01 1.66292e-06 + CTTTCAAATGCTAAT
+chr6 97052555 97052569 +V_OCT1_06 8.86248e-06 + CTTATTTACATGTC
+chr6 97052555 97052570 -V_OCT1_Q6 9.35394e-06 - AGACATGTAAATAAG
+chr6 97052558 97052573 -V_OCT4_01 4.91956e-06 - TATAGACATGTAAAT
+chr6 97901847 97901859 -V_PAX4_03 9.67001e-06 - AGCCTCCACCCC
+chr6 97901872 97901887 +V_OCT4_02 1.18248e-06 + TTTGTCATGCAAAGG
+chr6 98433529 98433547 -V_GCNF_01 7.13378e-06 - CTTTAGTTCAAGGGCAAG
+chr6 99977680 99977695 +V_OCT4_01 3.49929e-06 + TTTTGTCATGGAAAA
+chr6 99977681 99977696 +V_OCT4_02 4.3087e-06 + TTTGTCATGGAAAAG
+chr6 100042929 100042940 +V_EBF_Q6 7.15927e-06 + GTCCCCTGAGG
+chr6 100737450 100737463 -V_SP1_Q6 2.54389e-06 - CAGGGGCGGGGCA
+chr6 100737451 100737461 -V_SP1_Q6_01 3.39206e-07 - GGGGCGGGGC
+chr6 100737452 100737461 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr6 100737452 100737462 +V_SP1_Q2_01 1.0915e-06 + CCCCGCCCCT
+chr6 100979549 100979562 +V_SP1_Q6 3.06772e-06 + TGGGGGAGGGGGC
+chr6 100979550 100979559 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr6 100979550 100979560 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr6 100979550 100979561 -V_SP1SP3_Q4 2.8432e-06 - CCCCCTCCCCC
+chr6 100979551 100979559 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr6 100979551 100979560 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr6 100979551 100979561 +V_SP1_Q6_01 8.48538e-06 + GGGGAGGGGG
+chr6 100979551 100979564 +V_MAZR_01 3.8307e-06 + GGGGAGGGGGCAA
+chr6 100979551 100979565 -V_KROX_Q6 3.08349e-06 - CTTGCCCCCTCCCC
+chr6 100979596 100979610 +V_E2A_Q2 6.24606e-06 + GCAGCTGCTGCAGG
+chr6 102696325 102696336 -V_SMAD_Q6_01 5.09972e-06 - CAGGCAGACAG
+chr6 102696326 102696335 +V_SMAD3_Q6 7.33929e-06 + TGTCTGCCT
+chr6 102696381 102696394 +V_HFH4_01 4.06855e-06 + TTGTGTTTGTTTG
+chr6 102696562 102696579 +V_PU1_01 7.57258e-06 + CAAAAGGGGAAGCACTT
+chr6 102696615 102696638 -V_COUPTF_Q6 3.11579e-06 - TCCTATGCCCCTTCCCTCCTGCT
+chr6 102696616 102696631 +V_SPZ1_01 3.49797e-07 + GCAGGAGGGAAGGGG
+chr6 102696631 102696643 +V_NFAT_Q6 8.79182e-07 + CATAGGAAAAAT
+chr6 102696658 102696673 +V_SPZ1_01 6.9171e-07 + GCAGGAGGGATGGGG
+chr6 102696673 102696685 +V_NFAT_Q6 1.42475e-06 + CAGTGGAAAAAG
+chr6 102696679 102696696 +V_PU1_01 3.47628e-07 + AAAAAGAGGAAGTACTT
+chr6 102696680 102696692 +V_ELF1_Q6 9.17254e-07 + AAAAGAGGAAGT
+chr6 102696680 102696699 -V_PU1_Q4 2.63808e-06 - GAGAAGTACTTCCTCTTTT
+chr6 102696682 102696696 +V_ETS2_B 2.52603e-06 + AAGAGGAAGTACTT
+chr6 104934254 104934266 -V_GATA4_Q3 9.72874e-06 - AGATCAAAGGCA
+chr6 104934255 104934265 -V_LEF1_Q2_01 5.84716e-06 - GATCAAAGGC
+chr6 104934287 104934295 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr6 111322071 111322079 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr6 111322071 111322080 -V_CKROX_Q2 8.90515e-06 - TCCCTCCCC
+chr6 111322076 111322086 -V_NFKAPPAB_01 8.50103e-06 - GGGACATCCC
+chr6 112835383 112835394 +V_MYB_Q3 3.40516e-06 + AGGGCCAGTTA
+chr6 112835388 112835402 -V_PAX6_Q2 7.01918e-06 - CTGTGCTGTAACTG
+chr6 112835413 112835423 -V_LEF1_Q2_01 1.81713e-06 - CATCAAAGGG
+chr6 119274876 119274889 -V_ZEC_01 7.63279e-06 - CTTGCTAGGTTGC
+chr6 119288261 119288275 +V_NFKB_Q6 8.78215e-06 + CGGGGACCTTCCTT
+chr6 119288354 119288369 +V_OCT4_01 1.09956e-06 + CATTCAAATGCAAAA
+chr6 119476651 119476664 +V_SP1_Q6 2.31776e-06 + AGTGGGCGGAGCC
+chr6 119476652 119476663 +V_EGR_Q6 9.84646e-06 + GTGGGCGGAGC
+chr6 119476672 119476687 -V_DMRT1_01 1.02233e-06 - CTGATACTTTGTTTC
+chr6 119615772 119615782 -V_NUR77_Q5 2.98426e-06 - CTGACCTTGC
+chr6 119615802 119615814 +V_ELF1_Q6 3.08919e-06 + AGAACAGGAAGT
+chr6 120144602 120144617 -V_SREBP_Q6 9.43867e-07 - GCGACCACCCCACCG
+chr6 120144602 120144617 -V_SREBP1_Q5 1.28926e-06 - GCGACCACCCCACCG
+chr6 120144605 120144617 -V_SREBP_Q3 4.0111e-06 - GCGACCACCCCA
+chr6 120144606 120144615 +V_ZIC1_01 4.94877e-06 + GGGGTGGTC
+chr6 120144606 120144615 +V_ZIC2_01 2.23138e-06 + GGGGTGGTC
+chr6 120144649 120144662 +V_AP2_Q6_01 2.39401e-06 + CTCGCCCCAGGCC
+chr6 120144685 120144707 -V_MEF2_02 6.62572e-06 - CCTAGGGGTTAAAATAGCACCC
+chr6 122292331 122292345 +V_FXR_Q3 5.4984e-06 + GAAGGTCATTAGCC
+chr6 122292333 122292346 -V_FXR_IR1_Q6 8.89682e-06 - AGGCTAATGACCT
+chr6 122574647 122574670 -V_OCT1_04 4.4301e-06 - TTATTAAGATGCAAATTCTCACA
+chr6 122574651 122574665 +V_OCT1_05 5.61051e-06 + AGAATTTGCATCTT
+chr6 122574654 122574669 -V_OCT4_01 3.26181e-06 - TATTAAGATGCAAAT
+chr6 122574672 122574682 +V_TAL1_Q6 4.87508e-06 + TCCAGCTGGT
+chr6 122574697 122574712 -V_OCT4_02 6.36693e-07 - TTTGACATGCAAATT
+chr6 122574698 122574713 -V_OCT4_01 4.7383e-08 - CTTTGACATGCAAAT
+chr6 122727402 122727417 +V_AML_Q6 3.274e-07 + AGCTCTGTGGTTAGC
+chr6 122727402 122727417 -V_PEBP_Q6 2.25458e-08 - GCTAACCACAGAGCT
+chr6 124904528 124904543 +V_OCT4_01 1.40241e-06 + TATTGTAATGCTAAA
+chr6 124904529 124904544 +V_OCT4_02 6.55103e-06 + ATTGTAATGCTAAAT
+chr6 124904549 124904563 +V_ERR1_Q2 8.28315e-06 + ACCTGAAGGTCAGG
+chr6 125690390 125690401 +V_SP1SP3_Q4 2.26051e-06 + CCCCCCCCCTC
+chr6 125690391 125690402 +V_SP1SP3_Q4 5.39613e-06 + CCCCCCCCTCG
+chr6 125690429 125690440 +V_SMAD_Q6_01 8.17406e-06 + TGTGCAGACAG
+chr6 125690450 125690464 +V_MEIS1BHOXA9_02 5.99442e-06 + TGAGACTTTTATGG
+chr6 125690509 125690532 +V_COUPTF_Q6 3.7102e-06 + CTCCCTGACCTCTGGATCTTTAC
+chr6 125690514 125690528 +V_COUP_01 8.81413e-06 + TGACCTCTGGATCT
+chr6 127053646 127053660 -V_OCT1_05 7.22059e-06 - GGAATTAGCATTTT
+chr6 127053653 127053667 -V_PAX6_Q2 7.20633e-07 - CTGTCCTGGAATTA
+chr6 127053659 127053668 -V_T3R_Q6 8.74404e-06 - CCTGTCCTG
+chr6 127053772 127053795 -V_COUPTF_Q6 9.98924e-06 - TCCAGAGATCCCTGCCCCCTGAT
+chr6 127286953 127286972 -V_OCT1_01 4.5231e-06 - ATGAAAATGCAAATGTGGG
+chr6 127286999 127287009 -V_LEF1_Q2_01 4.03003e-06 - CATCAAAGTG
+chr6 127606178 127606194 +V_HAND1E47_01 8.05914e-06 + GATGGCTTCTGGCAAT
+chr6 127606263 127606276 -V_CRX_Q4 2.86299e-06 - TTCCTAATCCCCT
+chr6 127606272 127606287 -V_IRF_Q6 9.74361e-06 - CTAAGTTTCTTTTCC
+chr6 127658325 127658349 -V_STAT5A_02 2.6539e-06 - TTCAAAGTACTTCTGTTCCCTGAG
+chr6 127658420 127658438 -V_HNF3_Q6_01 1.41138e-06 - CCCCTTGTTTGCTTTGCT
+chr6 127658433 127658446 +V_SP1_Q6 3.53849e-06 + AGGGGGCGGGGAG
+chr6 127658434 127658444 -V_SP1_Q2_01 3.39206e-07 - CCCCGCCCCC
+chr6 127658435 127658444 -V_CKROX_Q2 6.67377e-06 - CCCCGCCCC
+chr6 127658435 127658445 +V_SP1_Q6_01 2.74385e-06 + GGGGCGGGGA
+chr6 128211682 128211692 +V_MYOD_Q6 6.66004e-06 + TCCACCTGCC
+chr6 128211683 128211697 +V_E2A_Q2 1.9257e-07 + CCACCTGCCTCTGT
+chr6 128211684 128211692 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr6 129314123 129314138 -V_OCT4_01 5.63049e-06 - CATTCTCATTCAAAC
+chr6 129314139 129314151 +V_TTF1_Q6 8.45617e-06 + CCCCCAAGGGCT
+chr6 129314149 129314162 +V_OCT_C 7.52368e-06 + CTCATTTGAATAC
+chr6 129314200 129314210 -V_TBX5_Q5 9.35431e-06 - GTCACACCTT
+chr6 133913520 133913535 +V_OCT4_01 3.26181e-06 + CATTGTCATGCTTAT
+chr6 133913521 133913536 +V_OCT4_02 8.50894e-06 + ATTGTCATGCTTATC
+chr6 133937013 133937023 +V_GATA1_05 9.8464e-06 + GCTGATAACC
+chr6 133937385 133937415 +V_PAX4_04 7.0256e-06 + AACAATACCACCCTCTTCCACCTCCACCCC
+chr6 133937403 133937415 +V_PAX4_03 1.74945e-06 + CACCTCCACCCC
+chr6 135250613 135250621 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr6 135250644 135250653 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr6 135250716 135250726 -V_GATA6_01 2.4539e-06 - AAAGATAAGC
+chr6 135823438 135823453 -V_OCT4_01 4.01204e-06 - CTTTGAAATGTAAAG
+chr6 135823598 135823612 +V_DMRT7_01 9.63794e-06 + TTGAAACAATGTAG
+chr6 135823598 135823613 +V_DMRT1_01 1.17062e-06 + TTGAAACAATGTAGA
+chr6 136100233 136100241 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr6 136100273 136100287 -V_OCT1_05 9.34101e-06 - CTCATTTCCATTTC
+chr6 136100374 136100388 -V_PAX6_Q2 1.03567e-06 - CTGACCTGGCACCC
+chr6 137118868 137118880 -V_IK2_01 9.85542e-07 - CTTTGGGAATCC
+chr6 137118901 137118913 +V_ELF1_Q6 8.19566e-06 + GCAACAGGAAAT
+chr6 137118903 137118917 +V_ETS2_B 6.44463e-06 + AACAGGAAATGTCT
+chr6 137118967 137118980 -V_AP1_01 3.63092e-06 - CAGTGAGTCACCA
+chr6 137118968 137118979 +V_AP1FJ_Q2 3.49199e-06 + GGTGACTCACT
+chr6 137118968 137118979 +V_AP1_Q6 1.40518e-06 + GGTGACTCACT
+chr6 137118968 137118979 +V_AP1_Q4 1.41718e-06 + GGTGACTCACT
+chr6 137618202 137618220 -V_FOXJ2_01 3.58897e-06 - AAGCAAACAAACAAAAAA
+chr6 137618204 137618216 +V_FOXD3_01 9.53633e-06 + TTTTGTTTGTTT
+chr6 137618204 137618217 +V_HFH4_01 5.28594e-06 + TTTTGTTTGTTTG
+chr6 137618206 137618224 +V_HNF3_Q6_01 1.09651e-06 + TTGTTTGTTTGCTTTTTA
+chr6 137618206 137618224 -V_FOXJ2_01 2.41928e-06 - TAAAAAGCAAACAAACAA
+chr6 137618208 137618221 +V_FOX_Q2 1.93154e-06 + GTTTGTTTGCTTT
+chr6 137618209 137618222 -V_HNF3_Q6 7.04647e-06 - AAAAGCAAACAAA
+chr6 137618238 137618248 +V_SP1_Q2_01 6.40385e-06 + CCCCGCCCAG
+chr6 137618523 137618531 +V_CACD_01 9.89755e-06 + CCACACCC
+chr6 137889493 137889506 -V_OCT_C 8.94137e-06 - CTCATTAGCATGG
+chr6 142701502 142701515 -V_SOX_Q6 2.73292e-06 - CTCTTTGATATGT
+chr6 142701599 142701615 -V_AP2_Q3 5.34192e-06 - GCCCCTGGGCTGGAGA
+chr6 143797252 143797262 -V_NUR77_Q5 8.43564e-06 - TTGACCTTCC
+chr6 144341888 144341906 -V_CMYB_01 4.39308e-06 - CCCTGAGGCAGTTAGCGG
+chr6 145427714 145427725 +V_FLI1_Q6 3.37651e-06 + CAGGAAGTGCC
+chr6 145427714 145427726 -V_ETS_Q4 6.38093e-07 - AGGCACTTCCTG
+chr6 146106824 146106843 +V_SEF1_C 3.81729e-06 + GACACAGAGAGCTGTGATT
+chr6 146106833 146106845 -V_GFI1B_01 1.21702e-06 - TAAATCACAGCT
+chr6 146106838 146106849 +V_OCT1_Q5_01 4.4061e-06 + TGATTTACATA
+chr6 146106838 146106849 +V_OCT_Q6 8.67576e-06 + TGATTTACATA
+chr6 146742075 146742093 +V_FOXJ2_01 2.78657e-08 + TAATAAATAAACAAACAA
+chr6 146742075 146742093 -V_HNF3_Q6_01 7.43361e-06 - TTGTTTGTTTATTTATTA
+chr6 146742078 146742091 -V_FOX_Q2 3.73483e-07 - GTTTGTTTATTTA
+chr6 146742078 146742091 -V_HFH3_01 1.70454e-06 - GTTTGTTTATTTA
+chr6 146742078 146742091 -V_HFH8_01 3.74592e-06 - GTTTGTTTATTTA
+chr6 146742078 146742091 -V_HFH4_01 8.44407e-06 - GTTTGTTTATTTA
+chr6 146742079 146742091 -V_FOXD3_01 2.97484e-06 - GTTTGTTTATTT
+chr6 146742079 146742097 +V_FOXJ2_01 3.2621e-06 + AAATAAACAAACAAACCC
+chr6 146742081 146742094 +V_HNF3_Q6 9.99776e-07 + ATAAACAAACAAA
+chr6 146742082 146742095 -V_FOX_Q2 3.05564e-07 - GTTTGTTTGTTTA
+chr6 146742082 146742095 -V_HFH3_01 7.99234e-07 - GTTTGTTTGTTTA
+chr6 146742082 146742095 -V_HFH4_01 6.7578e-07 - GTTTGTTTGTTTA
+chr6 146742083 146742095 -V_FOXD3_01 9.66278e-07 - GTTTGTTTGTTT
+chr6 146742149 146742163 -V_KROX_Q6 4.70749e-06 - CCCTCCCCCACCCA
+chr6 146742154 146742163 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr6 146742154 146742164 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr6 146742154 146742167 +V_MAZR_01 6.26113e-06 + GGGGGAGGGGTAC
+chr6 146742155 146742163 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr6 146742155 146742164 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr6 146742155 146742165 +V_SP1_Q6_01 9.74073e-06 + GGGGAGGGGT
+chr6 146742184 146742195 -V_EBF_Q6 2.42561e-06 - GTCCCTTGGGG
+chr6 147148062 147148075 -V_AP1_01 7.1696e-06 - CAGTGAGTCAGGC
+chr6 147148064 147148073 -V_AP1_C 7.33929e-06 - GTGAGTCAG
+chr6 147148065 147148077 +V_AP1_Q2_01 4.82754e-06 + TGACTCACTGTT
+chr6 147148169 147148181 +V_ICSBP_Q6 3.08451e-06 + AAACAGAAACTG
+chr6 149086598 149086619 -V_PPARG_01 3.13367e-06 - CACTAGGCCAAAGGTCACTGA
+chr6 149086601 149086614 +V_HNF4ALPHA_Q6 3.03606e-06 + GTGACCTTTGGCC
+chr6 149086601 149086615 -V_HNF4_Q6_01 1.05799e-07 - AGGCCAAAGGTCAC
+chr6 149086602 149086615 +V_PPAR_DR1_Q2 9.96554e-08 + TGACCTTTGGCCT
+chr6 149086602 149086615 +V_HNF4_DR1_Q3 8.69767e-08 + TGACCTTTGGCCT
+chr6 149086602 149086615 +V_COUP_DR1_Q6 1.55372e-07 + TGACCTTTGGCCT
+chr6 149086602 149086615 -V_RXRLXRB_01 3.39229e-07 - AGGCCAAAGGTCA
+chr6 149086602 149086615 -V_DR1_Q3 9.73878e-08 - AGGCCAAAGGTCA
+chr6 149086602 149086619 -V_PPARG_03 2.99542e-08 - CACTAGGCCAAAGGTCA
+chr6 149086602 149086622 -V_PPARA_01 6.10233e-07 - AGTCACTAGGCCAAAGGTCA
+chr6 149086615 149086626 +V_AP1_Q4 2.788e-06 + AGTGACTCACT
+chr6 149086617 149086629 +V_AP1_Q2_01 7.5907e-06 + TGACTCACTCTG
+chr7 3531001 3531010 +V_CACBINDINGPROTEIN_Q6 2.23138e-06 + GAGGGTGGG
+chr7 3531084 3531103 +V_NRSF_Q4 6.61005e-06 + GCTCAGCCCCTTGTCCTGG
+chr7 6730455 6730464 +V_MYB_Q5_01 2.71739e-06 + CAACTGCCC
+chr7 14283313 14283326 +V_AP2_Q6_01 5.04624e-06 + CAGGCCCCAGGCA
+chr7 14283315 14283331 +V_AP2_Q3 7.19772e-06 + GGCCCCAGGCAAGATC
+chr7 17187094 17187105 +V_NFE2_01 1.48643e-06 + AGCTGAGTCAC
+chr7 17187095 17187106 -V_AP1FJ_Q2 1.36855e-06 - GGTGACTCAGC
+chr7 17187095 17187106 -V_AP1_Q6 5.77866e-07 - GGTGACTCAGC
+chr7 17187095 17187106 -V_AP1_Q4 2.788e-06 - GGTGACTCAGC
+chr7 17187127 17187141 +V_BLIMP1_Q6 3.72722e-07 + GGAGAGGGAAAGGA
+chr7 17187199 17187217 -V_HNF1_Q6 8.49535e-06 - TTGTTACTATTTGTCAGA
+chr7 17406590 17406609 +V_PPARA_02 7.462e-06 + ACAGGGCAGATAGGTCAGG
+chr7 17406647 17406663 -V_AP2_Q3 3.38539e-07 - GGCCCCAGGCGGTGTT
+chr7 17406652 17406665 -V_AP2_Q6_01 2.07133e-06 - CTGGCCCCAGGCG
+chr7 17406666 17406677 +V_ER_Q6_02 7.31305e-06 + CAGGTCAGCCT
+chr7 17406684 17406693 +V_LYF1_01 7.33929e-06 + TTTGGGAGA
+chr7 17406700 17406710 -V_NKX22_01 2.69489e-06 - TTAAGTGCTT
+chr7 17406726 17406738 -V_ETS_Q4 9.83264e-07 - CCCCACTTCCTG
+chr7 18920911 18920926 -V_OCT4_02 1.90479e-06 - ATTCAGTTGCAAATT
+chr7 18920983 18920992 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr7 19524595 19524607 +V_AP2_Q6 3.8272e-06 + AGCCCACAGGCG
+chr7 19524605 19524624 -V_PU1_Q4 7.89869e-06 - TGGTCTCACTTCCTCATCG
+chr7 19524749 19524770 -V_PAX4_01 3.56855e-06 - TGCAGTCATGCGGACACCACT
+chr7 20513906 20513919 +V_FXR_IR1_Q6 2.65343e-06 + GGGTGACTGTCCT
+chr7 20513960 20513970 -V_NKX22_01 2.69489e-06 - TTAAGTGCTT
+chr7 20514001 20514016 +V_OCT4_01 6.02107e-06 + TATTGTGATGCTAAG
+chr7 20514002 20514017 +V_OCT4_02 4.76161e-07 + ATTGTGATGCTAAGG
+chr7 25302156 25302166 -V_IK_Q5 6.81053e-06 - TGTGGGAGGG
+chr7 25302257 25302272 +V_OCT4_01 9.05006e-06 + CATTCTTATTCAAAG
+chr7 25415367 25415381 +V_CREB_Q2_01 1.21903e-06 + GCTTACGTCATGGC
+chr7 25415369 25415380 -V_CREB_Q4_01 3.64236e-06 - CCATGACGTAA
+chr7 25730909 25730923 +V_PAX6_Q2 3.82895e-06 + CTGTCCTTGAGCTC
+chr7 25730924 25730936 -V_GABP_B 7.17043e-06 - GCAGGAAGAGCA
+chr7 25730988 25731002 +V_COUP_01 2.86979e-06 + TGACCTCTAAACCT
+chr7 25731038 25731053 -V_DMRT1_01 3.44311e-06 - TTGAAACATAGTTGC
+chr7 25731065 25731081 +V_DMRT2_01 1.13601e-06 + CAAATGGATACTTTGT
+chr7 25731069 25731084 +V_DMRT1_01 9.55793e-06 + TGGATACTTTGTGTC
+chr7 25732908 25732921 -V_SP1_Q6 5.21945e-06 - TGGGGGAGGGGTT
+chr7 25732909 25732919 -V_SP1_Q6_01 9.74073e-06 - GGGGAGGGGT
+chr7 25732910 25732919 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr7 25732910 25732920 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr7 25732911 25732919 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr7 25732911 25732920 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr7 25732911 25732925 +V_KROX_Q6 8.74919e-06 + CCCTCCCCCACAGC
+chr7 25869781 25869796 -V_CP2_02 3.39312e-06 - GCTGGGCTTGGCTGG
+chr7 25869844 25869853 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGG
+chr7 25869844 25869857 +V_PPAR_DR1_Q2 2.31043e-06 + TGACCTTGGGCCC
+chr7 25869844 25869857 +V_HNF4_DR1_Q3 9.09944e-06 + TGACCTTGGGCCC
+chr7 25869844 25869857 +V_COUP_DR1_Q6 2.48866e-06 + TGACCTTGGGCCC
+chr7 25869844 25869857 -V_DR1_Q3 3.04643e-06 - GGGCCCAAGGTCA
+chr7 25869844 25869858 +V_COUP_01 7.84802e-06 + TGACCTTGGGCCCT
+chr7 25869902 25869918 +V_AP2_Q3 8.56865e-06 + GGCCCCGGGCTGCCTC
+chr7 25869903 25869912 +V_AP2ALPHA_01 6.01835e-06 + GCCCCGGGC
+chr7 25869903 25869912 +V_AP2GAMMA_01 6.01835e-06 + GCCCCGGGC
+chr7 25869903 25869912 -V_AP2ALPHA_01 3.00918e-06 - GCCCGGGGC
+chr7 25869903 25869912 -V_AP2GAMMA_01 3.00918e-06 - GCCCGGGGC
+chr7 27491408 27491423 +V_HMGIY_Q3 3.97508e-06 + CGTGGAATTTCCTAA
+chr7 27491410 27491420 +V_NFKAPPAB65_01 5.16177e-06 + TGGAATTTCC
+chr7 27491441 27491452 -V_SMAD_Q6_01 8.79654e-06 - TATCCAGACAC
+chr7 28407377 28407392 +V_OCT4_01 7.94702e-06 + CTTTGGTATGCTAAT
+chr7 28407461 28407472 -V_E12_Q6 3.04076e-06 - GGCAGGTGTCA
+chr7 28407464 28407472 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr7 29545803 29545814 -V_PAX_Q6 1.94869e-06 - CTGGAACTCAA
+chr7 29545829 29545841 +V_SRY_02 9.08784e-06 + TAAAACAAAAGA
+chr7 29545922 29545932 +V_SP1_Q6_01 5.07461e-06 + GAGGCGGGGC
+chr7 31248821 31248830 +V_LRF_Q2 8.50606e-06 + GGGACCCCC
+chr7 31250022 31250032 -V_NUR77_Q5 2.98426e-06 - CTGACCTTCC
+chr7 31250029 31250047 +V_GCNF_01 3.97182e-06 + CAGGAGTTCAAGGTTATC
+chr7 31250071 31250086 +V_AML_Q6 7.82168e-06 + CACTCTGTGGTCAAC
+chr7 31250071 31250086 -V_PEBP_Q6 7.2777e-07 - GTTGACCACAGAGTG
+chr7 31677770 31677788 -V_SRF_Q4 1.51075e-07 - GCCAAATAAGGAAACAGA
+chr7 31677772 31677787 -V_SRF_Q5_01 7.72977e-07 - CCAAATAAGGAAACA
+chr7 31677772 31677791 +V_SRF_Q5_02 1.04701e-06 + TGTTTCCTTATTTGGCCAC
+chr7 31677773 31677788 -V_SRF_C 9.29583e-06 - GCCAAATAAGGAAAC
+chr7 31677775 31677789 -V_SRF_Q6 2.32445e-07 - GGCCAAATAAGGAA
+chr7 31677776 31677791 +V_SRF_C 1.04175e-06 + TCCTTATTTGGCCAC
+chr7 31842374 31842390 +V_AP2_Q3 7.62107e-06 + GCCCCCAGGGTGTGAC
+chr7 35444476 35444491 -V_HES1_Q2 8.2255e-06 - GAGGCTGGTGGCCTG
+chr7 35444585 35444598 +V_SP1_Q6 1.61497e-06 + GGGGGGTGGGGCT
+chr7 35444586 35444595 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr7 35444586 35444596 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr7 35444586 35444599 +V_MAZR_01 7.22993e-06 + GGGGGTGGGGCTG
+chr7 35444587 35444597 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr7 35444587 35444599 -V_PAX4_03 1.74945e-06 - CAGCCCCACCCC
+chr7 35444885 35444904 -V_GR_Q6 6.78487e-06 - ACAGAACCCTGTGTCCTAT
+chr7 35444904 35444918 +V_MEIS1BHOXA9_02 5.08725e-06 + TGACACTTTTGCAA
+chr7 35444944 35444958 -V_PAX6_Q2 1.17669e-06 - GTGACCTGTAACTC
+chr7 35444965 35444979 -V_HNF4_Q6_01 1.10089e-06 - AGACCAAAGGTCAC
+chr7 35444966 35444979 +V_PPAR_DR1_Q2 3.33435e-06 + TGACCTTTGGTCT
+chr7 35444966 35444979 +V_HNF4_DR1_Q3 3.56632e-06 + TGACCTTTGGTCT
+chr7 35444966 35444979 -V_RXRLXRB_01 9.21472e-06 - AGACCAAAGGTCA
+chr7 35444966 35444979 -V_DR1_Q3 5.44728e-06 - AGACCAAAGGTCA
+chr7 35444966 35444980 +V_COUP_01 3.35061e-06 + TGACCTTTGGTCTC
+chr7 35458373 35458384 -V_CP2_01 7.99762e-06 - GCCAGAACCAG
+chr7 35458384 35458403 +V_ER_Q6 2.02592e-06 + TCCAGTCAGGGTGACCTTC
+chr7 35458391 35458402 -V_ER_Q6_02 8.40206e-06 - AAGGTCACCCT
+chr7 35458393 35458414 +V_DR3_Q4 9.65243e-06 + GGTGACCTTCTTGGCTTTCTG
+chr7 35459031 35459044 -V_MAZR_01 6.58989e-06 - GGGGGAGGGGAAG
+chr7 35459034 35459043 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr7 35459034 35459044 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr7 35459035 35459043 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr7 35459035 35459044 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr7 35459044 35459060 -V_HAND1E47_01 3.6553e-06 - TTGAGGATCTGGCTTT
+chr7 35537655 35537668 +V_AP2_Q6_01 2.71709e-06 + GCTGCCCCAGGCC
+chr7 35739900 35739911 -V_PITX2_Q2 2.02962e-06 - AGTAATCCCAG
+chr7 35739901 35739920 +V_GR_Q6 2.94654e-06 + TGGGATTACTGTGTCCTAA
+chr7 35739943 35739956 +V_MAZR_01 7.22993e-06 + TGAGGTGGGGCCA
+chr7 36049360 36049371 +V_EBF_Q6 3.11689e-06 + GTCCCCTGGGG
+chr7 36049387 36049397 -V_NFKAPPAB65_01 8.78773e-06 - TGGGATTTCC
+chr7 36049387 36049397 -V_CREL_01 8.74404e-06 - TGGGATTTCC
+chr7 36049420 36049433 +V_GATA1_04 9.51553e-06 + GGAAGATAAGGGC
+chr7 36136293 36136305 -V_ICSBP_Q6 7.62927e-06 - AAAAAGAAACCG
+chr7 36136302 36136317 +V_OCT4_02 2.2199e-06 + TTTGAGATGCTAAAA
+chr7 36136396 36136410 +V_POU3F2_01 6.50128e-06 + ATTCATTCATTCAT
+chr7 36136400 36136414 +V_POU3F2_01 6.50128e-06 + ATTCATTCATTCAT
+chr7 36136404 36136418 +V_POU3F2_01 6.50128e-06 + ATTCATTCATTCAT
+chr7 36136415 36136428 -V_DEC_Q1 5.69274e-06 - CCCCAACTGAATG
+chr7 36252970 36252987 -V_HSF1_Q6 5.36429e-06 - CCTCTGGGAACTTCACA
+chr7 36253025 36253039 +V_MTF1_Q4 9.78336e-06 + ACTGCACACACCCC
+chr7 36802093 36802110 -V_NF1_Q6_01 3.71867e-06 - CTGGAAAACAGCCAATA
+chr7 37429436 37429451 +V_OCT4_01 7.41924e-06 + TATTCAAATGCTAAA
+chr7 37429507 37429522 +V_OCT4_01 7.94702e-06 + TTTTGTTGTGCAAAC
+chr7 37429548 37429565 +V_PPARG_03 8.20535e-06 + TACAAGGCTAAAGTTTA
+chr7 38030606 38030620 +V_GATA1_02 8.42748e-06 + TTGTAGATAGTGGA
+chr7 38030691 38030706 +V_DMRT3_01 7.84334e-06 + CATCTGATACATTGT
+chr7 38030694 38030709 +V_DMRT1_01 2.06681e-07 + CTGATACATTGTTTT
+chr7 38030711 38030726 +V_DMRT1_01 2.58051e-08 + CTGATACATTGTTTC
+chr7 38030728 38030743 +V_DMRT1_01 2.58051e-08 + CTGATACATTGTTTC
+chr7 38092278 38092295 +V_HSF1_Q6 6.7627e-06 + TTTCCAGGAACTTCATA
+chr7 38092387 38092402 -V_OCT4_02 4.03834e-06 - ATTGTCATGTAGATC
+chr7 38092388 38092403 -V_OCT4_01 4.36639e-07 - CATTGTCATGTAGAT
+chr7 38092397 38092413 -V_DMRT2_01 5.71485e-06 - GAGTATGTTCCATTGT
+chr7 38092419 38092431 +V_LMO2COM_01 5.97756e-06 + CTGCAGGTGGTG
+chr7 38251996 38252005 -V_EVI1_06 5.97675e-06 - ACAAGATAA
+chr7 38252052 38252080 +V_PAX5_01 6.77263e-06 + CTGGGGAGCAGAGTGGAGAAGAGGGCGC
+chr7 38260637 38260649 +V_LMO2COM_01 4.77141e-06 + GTCCAGGTGCAG
+chr7 38260762 38260774 +V_PAX4_03 5.05761e-06 + ACCCCCCACCCC
+chr7 38260763 38260776 -V_SP1_Q6 8.76141e-06 - TGGGGGTGGGGGG
+chr7 38260764 38260775 +V_SP1SP3_Q4 8.91927e-06 + CCCCCACCCCC
+chr7 38260765 38260775 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr7 38260766 38260775 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr7 38260766 38260777 -V_EGR_Q6 8.04446e-06 - GTGGGGGTGGG
+chr7 38260766 38260780 +V_KROX_Q6 9.17068e-06 + CCCACCCCCACACA
+chr7 38338805 38338816 -V_LEF1TCF1_Q4 2.36341e-06 - CCTTTGTTGTC
+chr7 38338815 38338828 -V_SP1_Q6 4.47623e-06 - GAGGGGCGGGAGC
+chr7 38338896 38338910 +V_GATA1_03 7.17727e-07 + AGGAGGATTAGAGC
+chr7 38338914 38338928 -V_BLIMP1_Q6 3.20734e-06 - GGGAAGAGAAAGGA
+chr7 38361629 38361641 +V_FOXD3_01 2.76774e-06 + GAATGTTTGCTT
+chr7 38361657 38361666 +V_LYF1_01 7.33929e-06 + TTTGGGAGG
+chr7 38361657 38361667 +V_IK_Q5 8.83478e-06 + TTTGGGAGGT
+chr7 38361668 38361678 +V_NFAT_Q4_01 4.46892e-06 + GTGGAAACTT
+chr7 38942051 38942066 -V_CP2_02 1.36514e-06 - GCTGGTCTGCTCTGG
+chr7 38942060 38942070 +V_TAL1_Q6 7.11328e-06 + ACCAGCTGCT
+chr7 38942150 38942167 -V_YY1_01 3.11631e-06 - CCACTCCATCTTTGCAG
+chr7 38942156 38942165 +V_FOXM1_01 8.06007e-06 + AGATGGAGT
+chr7 38942159 38942171 +V_EGR2_01 6.79884e-06 + TGGAGTGGGCGG
+chr7 38942162 38942175 +V_SP1_Q6 9.41334e-06 + AGTGGGCGGGGGA
+chr7 38942163 38942173 -V_SP1_Q2_01 1.91768e-06 - CCCCGCCCAC
+chr7 38942163 38942174 +V_EGR_Q6 5.17898e-06 + GTGGGCGGGGG
+chr7 38942164 38942174 +V_SP1_Q6_01 6.23999e-06 + TGGGCGGGGG
+chr7 38942179 38942196 +V_PPARG_03 1.37245e-06 + TGGCAGGTCAGAGGTCA
+chr7 38942179 38942200 +V_PPARG_01 9.73941e-07 + TGGCAGGTCAGAGGTCAAACT
+chr7 39043053 39043068 +V_SPZ1_01 8.55807e-06 + TGAGGTGGGTGTGGG
+chr7 39043059 39043067 -V_CACD_01 9.89755e-06 - CCACACCC
+chr7 39043078 39043101 -V_COUPTF_Q6 3.93002e-06 - TTGATTGCCCTTTGACCTCTCCA
+chr7 39043079 39043100 +V_PPARG_01 2.81055e-07 + GGAGAGGTCAAAGGGCAATCA
+chr7 39043083 39043096 +V_RXRLXRB_01 3.39229e-07 + AGGTCAAAGGGCA
+chr7 39043083 39043096 +V_DR1_Q3 1.39363e-06 + AGGTCAAAGGGCA
+chr7 39043083 39043096 -V_PPAR_DR1_Q2.4.53855e-07 - TGCCCTTTGACCT
+chr7 39043083 39043096 -V_COUP_DR1_Q6 3.95479e-06 - TGCCCTTTGACCT
+chr7 39043083 39043097 +V_HNF4_Q6_01 1.40116e-06 + AGGTCAAAGGGCAA
+chr7 39043131 39043140 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr7 39043131 39043141 -V_NUR77_Q5 2.98426e-06 - CTGACCTTGG
+chr7 47708055 47708066 -V_AP1FJ_Q2 7.56184e-06 - GGTGACTCCCA
+chr7 47708167 47708176 +V_CACBINDINGPROTEIN_Q6 2.23138e-06 + GAGGGTGGG
+chr7 48086387 48086395 +V_CACD_01 9.89755e-06 + CCACACCC
+chr7 48086396 48086415 -V_SRF_Q5_02 2.14565e-07 - CCTTGCCTTATTTGGTGTT
+chr7 48086398 48086412 +V_SRF_Q6 4.21962e-06 + CACCAAATAAGGCA
+chr7 48086399 48086414 +V_SRF_C 4.67205e-06 + ACCAAATAAGGCAAG
+chr7 48086399 48086417 +V_SRF_Q4 1.11746e-06 + ACCAAATAAGGCAAGGTT
+chr7 48086400 48086415 +V_SRF_Q5_01 2.65067e-07 + CCAAATAAGGCAAGG
+chr7 48184513 48184522 -V_HNF4_Q6 7.33929e-06 - AAGGTCCAA
+chr7 48837248 48837266 +V_RFX1_02 9.85627e-08 + TAGTCGCCTTGGCAACAG
+chr7 48837257 48837266 -V_RFX_Q6 3.30926e-06 - CTGTTGCCA
+chr7 48837275 48837299 +V_BRACH_01 1.45604e-07 + TCGCTGTCACCTAGGTGTGATGTT
+chr7 48837595 48837610 +V_OCT4_01 1.28133e-06 + CATTCTTATGCATAT
+chr7 49807304 49807314 -V_FOXO1_01 2.98837e-06 - CATAAACAAA
+chr7 50863358 50863381 -V_COUPTF_Q6 2.60895e-06 - TGAACTGCCCCCTCCTCTCTGCT
+chr7 50863471 50863479 +V_CACD_01 9.89755e-06 + CCACACCC
+chr7 50863489 50863504 +V_OCT4_01 8.06422e-07 + CTTTGTTATGTAAAC
+chr7 51072221 51072233 -V_GABP_B 7.90118e-06 - ACAGGAAGGGCA
+chr7 51072235 51072245 -V_IK_Q5 4.33614e-06 - TCTGGGAGGG
+chr7 51532238 51532251 +V_ALX4_01 2.15928e-06 + CCCGAGAATACTC
+chr7 51532284 51532294 +V_P53_DECAMER_Q2 2.10476e-06 + AGACAAGCCC
+chr7 51532310 51532326 +V_NFKB_Q6_01 6.69541e-06 + ACCCTGGAAAGCCCCA
+chr7 51532315 51532325 -V_NFKAPPAB65_01 7.1331e-06 - GGGGCTTTCC
+chr7 51532315 51532325 -V_CREL_01 6.1263e-07 - GGGGCTTTCC
+chr7 51532315 51532325 -V_NFKAPPAB_01 5.48771e-06 - GGGGCTTTCC
+chr7 51532318 51532330 +V_PAX4_03 5.03061e-07 + AAGCCCCACCCC
+chr7 51532320 51532330 -V_SP1_Q6_01 4.32232e-06 - GGGGTGGGGC
+chr7 51532321 51532331 +V_SP1_Q2_01 9.56538e-06 + CCCCACCCCT
+chr7 51532393 51532406 -V_IK3_01 5.45032e-06 - GCCAAGGAATACC
+chr7 52141930 52141941 -V_ELF5_01 5.31332e-06 - AAAAGGAAATA
+chr7 52141948 52141960 -V_SRY_02 9.08784e-06 - CAAAACAAAAGA
+chr7 52141957 52141971 -V_MEIS1BHOXA9_02 9.59338e-06 - TGACACCTTGACAA
+chr7 52142017 52142031 -V_ERR1_Q2 4.94927e-06 - AGTTCAAGGTCAGC
+chr7 52142017 52142035 -V_GCNF_01 1.4034e-06 - TGTGAGTTCAAGGTCAGC
+chr7 52142018 52142030 +V_LRH1_Q5 5.2397e-07 + CTGACCTTGAAC
+chr7 52142018 52142032 +V_PAX6_Q2 4.67224e-08 + CTGACCTTGAACTC
+chr7 52142019 52142028 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr7 52142023 52142034 +V_PAX_Q6 8.43097e-06 + CTTGAACTCAC
+chr7 52142054 52142066 +V_TTF1_Q6 5.63324e-06 + CTCTCAAGTGCT
+chr7 52142064 52142075 -V_PITX2_Q2 5.53227e-07 - TGTAATCCCAG
+chr7 52484962 52484980 -V_GCNF_01 7.57156e-07 - CTGGAGTTCAAGGCCAGC
+chr7 52484963 52484975 +V_LRH1_Q5 3.06315e-07 + CTGGCCTTGAAC
+chr7 52484963 52484977 +V_PAX6_Q2 8.3884e-07 + CTGGCCTTGAACTC
+chr7 52485007 52485018 -V_PITX2_Q2 9.46105e-06 - CTTAATCCCAG
+chr7 52485054 52485065 +V_GAF_Q6 2.41269e-06 + CAGATTCCCCT
+chr7 52485081 52485096 +V_CP2_02 2.11657e-06 + GCTGGTTTCTTCTGG
+chr7 52820271 52820291 +V_PPARA_01 9.2921e-06 + ACAAGCCAAGACAAAGTTCT
+chr7 52820303 52820316 +V_FOX_Q2 4.08159e-06 + TAATGTTTACTTA
+chr7 52820331 52820339 -V_CACD_01 9.89755e-06 - CCACACCC
+chr7 52854506 52854521 -V_DMRT1_01 2.20757e-06 - TTGCTACAAAGTTGC
+chr7 52854535 52854547 +V_EGR2_01 7.9511e-06 + GTGAGTGGGTGG
+chr7 52854584 52854593 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr7 52854591 52854599 -V_CACD_01 9.89755e-06 - CCACACCC
+chr7 52865237 52865252 -V_DMRT3_01 5.16699e-06 - GGTTTGTTACATATC
+chr7 52865261 52865276 +V_DMRT1_01 9.30708e-08 + CTGATACAATGTAGC
+chr7 52865263 52865278 -V_DMRT1_01 3.05518e-06 - GTGCTACATTGTATC
+chr7 53659051 53659061 -V_SP1_Q2_01 9.56538e-06 - CCCCACCCCT
+chr7 53659052 53659064 -V_PAX4_03 3.63034e-06 - CTCCCCCACCCC
+chr7 53659052 53659066 -V_KROX_Q6 5.42711e-07 - CCCTCCCCCACCCC
+chr7 53659057 53659066 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr7 53659058 53659066 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr7 53659211 53659219 +V_CACD_01 9.89755e-06 + CCACACCC
+chr7 56704118 56704129 +V_SP1SP3_Q4 2.26051e-06 + CCCCCTCCTCC
+chr7 56704150 56704164 +V_BLIMP1_Q6 6.21245e-06 + AGGAAGGGCAAGGC
+chr7 56704166 56704181 -V_OCT4_01 8.48593e-06 - TTTTCTCATGTATAT
+chr7 56704252 56704263 -V_FOXO4_01 7.64453e-06 - GAAAACAAGCC
+chr7 56800420 56800439 +V_PU1_Q4 3.89454e-07 + CTGACTTACTTCCCCTTTC
+chr7 56800423 56800440 -V_PU1_01 6.45521e-07 - AGAAAGGGGAAGTAAGT
+chr7 56800426 56800440 -V_BLIMP1_Q6 4.07265e-06 - AGAAAGGGGAAGTA
+chr7 56800465 56800478 -V_MAZR_01 3.68108e-06 - GGGGGAGGGGACT
+chr7 56800468 56800477 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr7 56800468 56800478 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr7 56800469 56800477 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr7 56800469 56800478 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr7 56800475 56800484 -V_CACBINDINGPROTEIN_Q6 6.29506e-06 - GAGGCTGGG
+chr7 56800486 56800498 +V_AP2_Q6 3.8272e-06 + GGCCCCCAGGCC
+chr7 56800552 56800566 -V_GATA1_02 4.98135e-06 - GAAGAGATAGGAGT
+chr7 72597312 72597321 -V_SMAD3_Q6 4.03003e-06 - TGTCTGTCT
+chr7 72597320 72597332 -V_AP1_Q2_01 2.1613e-06 - TGACTCACTGGT
+chr7 72597322 72597335 +V_AP1_01 1.84286e-06 + CAGTGAGTCATCC
+chr7 72597323 72597334 +V_BACH2_01 6.53539e-06 + AGTGAGTCATC
+chr7 72597323 72597334 -V_AP1_Q6 3.64565e-06 - GATGACTCACT
+chr7 72597365 72597388 -V_COUPTF_Q6 2.93773e-06 - CCTCCTGGCCTCAGGCAGCTGCT
+chr7 72873586 72873598 -V_ATF4_Q2 8.23388e-06 - CATGACGCCAGC
+chr7 72873588 72873599 -V_CREB_Q4_01 7.67228e-06 - CCATGACGCCA
+chr7 72873658 72873673 -V_DMRT1_01 9.09581e-07 - TGGCAACATTGTTGA
+chr7 72873659 72873673 -V_DMRT7_01 2.82482e-06 - TGGCAACATTGTTG
+chr7 72873680 72873698 +V_MYOD_Q6_01 7.30593e-06 + CTGCAGCAGGGGTAGGAG
+chr7 74287480 74287495 +V_SMAD4_Q6 6.67979e-06 + CTCGGGGAGCCACAT
+chr7 74287528 74287542 -V_KROX_Q6 2.22971e-06 - GCTGCCCCCGACCC
+chr7 74287582 74287595 +V_HFH4_01 1.38082e-06 + ATGTGTTTGCTTA
+chr7 74287701 74287718 -V_DR4_Q2 4.64252e-06 - TGACCTCCCCTGAGGCC
+chr7 74287725 74287738 -V_IK3_01 9.0323e-07 - TGCTGGGAATTCC
+chr7 74287725 74287739 -V_STAT3STAT3_Q3 3.50199e-06 - TTGCTGGGAATTCC
+chr7 74287769 74287782 -V_STAT_Q6 3.27105e-06 - CACCTTTCTGGGA
+chr7 79395354 79395373 +V_GR_Q6 8.25481e-06 + TGGGAGCCCTCTGTTGTTG
+chr7 79395413 79395426 -V_MAZR_01 9.79421e-06 - GGGGAAGGGGCCC
+chr7 79395413 79395429 -V_MAF_Q6 6.14259e-06 - TGGGGGGAAGGGGCCC
+chr7 79395416 79395431 -V_SPZ1_01 1.96252e-06 - GGTGGGGGGAAGGGG
+chr7 79395419 79395430 -V_EGR_Q6 9.33802e-06 - GTGGGGGGAAG
+chr7 79395422 79395437 +V_SREBP_Q6 4.65723e-07 + CCCCCCACCCCACCC
+chr7 79395422 79395437 +V_SREBP1_Q5 3.85951e-07 + CCCCCCACCCCACCC
+chr7 79395427 79395440 -V_SP1_Q6 3.06772e-06 - GGGGGGTGGGGTG
+chr7 79395429 79395439 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr7 79395430 79395439 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr7 79395859 79395878 +V_GR_Q6 3.6847e-07 + ACGGGTCACTCTGTTCTAT
+chr7 79395869 79395879 -V_PR_Q2 9.24501e-06 - GATAGAACAG
+chr7 79471067 79471082 +V_OCT4_01 1.47922e-07 + TATTGTAATGCAAAC
+chr7 80290467 80290476 -V_RFX_Q6 3.30926e-06 - CTGTTGCCA
+chr7 80290575 80290596 -V_DR3_Q4 3.55346e-06 - GGAGCCCTCCTTGACCTGGGG
+chr7 80748004 80748018 -V_ETS2_B 6.44463e-06 - GCCAGGAAGTAAGC
+chr7 82900975 82900983 +V_CACD_01 9.89755e-06 + CCACACCC
+chr7 82900993 82901005 +V_OCT1_07 7.71715e-06 + CATATGGTAATT
+chr7 82901009 82901026 -V_HSF1_Q6 7.8788e-06 - CTTCTAGAAGCTTGGTG
+chr7 82901042 82901055 -V_STAT1STAT1_Q3 4.71759e-07 - CTTTCCAGGAAAA
+chr7 84884064 84884080 -V_GRE_C 8.64606e-06 - CTTATCATCTGTCCTT
+chr7 84884096 84884105 +V_T3R_Q6 8.74404e-06 + CCTGTCCTG
+chr7 84884119 84884129 +V_TBX5_Q5 6.59322e-06 + ATCACACCTG
+chr7 84884133 84884152 +V_GR_Q6 8.25481e-06 + TAGACTCTCTGTGTCCAAG
+chr7 84884152 84884166 -V_ERR1_Q2 4.94927e-06 - AGTTCAAGGTCAGC
+chr7 84884152 84884170 -V_GCNF_01 6.65737e-07 - CCTGAGTTCAAGGTCAGC
+chr7 84884153 84884165 +V_LRH1_Q5 5.2397e-07 + CTGACCTTGAAC
+chr7 84884153 84884167 +V_PAX6_Q2 4.67224e-08 + CTGACCTTGAACTC
+chr7 84884154 84884163 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr7 84957063 84957073 +V_POU3F2_02 3.63926e-06 + TTATGCTAAT
+chr7 86403279 86403292 +V_SP1_Q6 7.57405e-07 + TGGGGGAGGGGCC
+chr7 86403280 86403289 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr7 86403280 86403290 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr7 86403280 86403293 +V_MAZR_01 4.32336e-07 + GGGGGAGGGGCCC
+chr7 86403281 86403289 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr7 86403281 86403290 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr7 86403281 86403291 +V_SP1_Q6_01 2.74385e-06 + GGGGAGGGGC
+chr7 86403307 86403319 +V_ETS_Q4 4.90737e-06 + AACAACTTCCTG
+chr7 86403326 86403341 -V_DMRT1_01 2.96272e-06 - TGGCTACAATGTTAT
+chr7 86443770 86443782 -V_NANOG_01 8.86042e-06 - TGGCCCATTACC
+chr7 86443784 86443795 +V_LEF1TCF1_Q4 1.56074e-06 + CCTTTGATCTC
+chr7 86443819 86443833 -V_PAX6_Q2 8.51401e-08 - CTGTCCTGGAACTT
+chr7 86543445 86543458 -V_SP1_Q6 8.37935e-07 - GAGGGGCGGGGTT
+chr7 86543446 86543456 -V_SP1_Q6_01 1.0915e-06 - GGGGCGGGGT
+chr7 86543447 86543456 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr7 86543447 86543457 +V_SP1_Q2_01 1.0915e-06 + CCCCGCCCCT
+chr7 86543484 86543499 +V_OCT4_01 3.74251e-06 + CTTTGTAATGTATAT
+chr7 86543575 86543596 -V_PPARG_01 1.89495e-06 - TCAGAAGTCCAAGGTCATCCT
+chr7 86543577 86543595 -V_GCNF_01 3.68477e-06 - CAGAAGTCCAAGGTCATC
+chr7 86543578 86543590 +V_LRH1_Q5 2.30644e-06 + ATGACCTTGGAC
+chr7 86543579 86543588 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGG
+chr7 87344946 87344958 +V_GLI_Q2 8.13602e-06 + ACTGGGTGGTTC
+chr7 87732676 87732692 +V_ARNT_01 2.21394e-06 + TGGGGCACGTGGCCGC
+chr7 87732677 87732691 +V_MYCMAX_01 4.92095e-06 + GGGGCACGTGGCCG
+chr7 87732677 87732691 +V_USF_01 3.4254e-06 + GGGGCACGTGGCCG
+chr7 87732677 87732691 -V_MYCMAX_01 4.92095e-06 - CGGCCACGTGCCCC
+chr7 87732677 87732691 -V_USF_01 3.4254e-06 - CGGCCACGTGCCCC
+chr7 87732678 87732688 -V_EBOX_Q6_01 4.06927e-06 - CCACGTGCCC
+chr7 87732678 87732690 +V_CMYC_02 3.01379e-06 + GGGCACGTGGCC
+chr7 87732678 87732690 -V_CMYC_01 2.87874e-06 - GGCCACGTGCCC
+chr7 87732678 87732690 -V_CMYC_02 9.14781e-07 - GGCCACGTGCCC
+chr7 87732679 87732689 -V_MYCMAX_B 3.25151e-06 - GCCACGTGCC
+chr7 87732680 87732688 -V_USF_C 9.89755e-06 - CCACGTGC
+chr7 87732693 87732705 +V_PAX4_03 6.56043e-06 + CAGCTCCACCCG
+chr7 87732823 87732834 +V_ALPHACP1_01 4.48665e-06 + CAGCCACTGAG
+chr7 87891442 87891453 -V_E12_Q6 6.12239e-06 - GACAGGTGTCC
+chr7 87891496 87891511 -V_OCT4_01 6.46423e-06 - CTTTGTCATGTACAT
+chr7 87964441 87964457 +V_NFY_01 2.96717e-06 + CAGAGCCAATCAGGAC
+chr7 87964443 87964454 +V_NFY_Q6 9.1733e-06 + GAGCCAATCAG
+chr7 87964470 87964482 +V_LMO2COM_01 6.22761e-08 + CGCCAGGTGCAG
+chr7 87964527 87964557 -V_PAX4_04 8.40578e-07 - AAAAAACAGGCTCAGACCCAGCCTCTCACC
+chr7 87964532 87964541 +V_CACBINDINGPROTEIN_Q6 6.29506e-06 + GAGGCTGGG
+chr7 88202701 88202713 +V_GLI_Q2 5.81723e-06 + TTTGGGTGGTGG
+chr7 88202715 88202723 -V_CACD_01 9.89755e-06 - CCACACCC
+chr7 88208280 88208295 +V_CP2_02 6.9729e-06 + GCTGGGTGTCTCTAG
+chr7 88208398 88208410 -V_MYOD_01 3.22607e-06 - GGACAGGTGGCT
+chr7 88208399 88208409 +V_MYOD_Q6 5.43478e-06 + GCCACCTGTC
+chr7 88208400 88208410 +V_EBOX_Q6_01 4.06927e-06 + CCACCTGTCC
+chr7 88208413 88208429 -V_NFKB_Q6_01 3.00811e-06 - TTCCTGGAAATCCCCG
+chr7 88208414 88208424 +V_NFKAPPAB65_01 1.65463e-06 + GGGGATTTCC
+chr7 88208414 88208424 +V_CREL_01 1.3587e-06 + GGGGATTTCC
+chr7 88208414 88208424 +V_NFKAPPAB_01 4.37202e-06 + GGGGATTTCC
+chr7 88208417 88208432 +V_STAT5B_01 9.87221e-06 + GATTTCCAGGAATGC
+chr7 88208417 88208432 -V_STAT5A_01 4.6087e-06 - GCATTCCTGGAAATC
+chr7 88208417 88208432 -V_STAT5B_01 3.10944e-06 - GCATTCCTGGAAATC
+chr7 88286640 88286655 -V_OCT4_02 6.55103e-06 - ATTGTAATGCTAAAT
+chr7 88286641 88286656 -V_OCT4_01 1.40241e-06 - TATTGTAATGCTAAA
+chr7 88335876 88335890 -V_GATA1_03 5.8872e-06 - AAGCAGATTAGAGC
+chr7 88625899 88625919 -V_FOXP1_01 1.60181e-06 - TTGTTTCTGTTTTTTTCTTT
+chr7 88625980 88625995 -V_OCT4_02 6.14224e-06 - ATTGTTTTGTAAATG
+chr7 88625981 88625996 -V_OCT4_01 2.83977e-06 - CATTGTTTTGTAAAT
+chr7 88626014 88626030 +V_NFY_01 7.41568e-06 + CATAACCAATCAGCAA
+chr7 88626016 88626027 +V_NFY_Q6 6.07558e-07 + TAACCAATCAG
+chr7 89368928 89368943 -V_VDR_Q3 1.14566e-06 - GAGGGAAGGAGGTGA
+chr7 89369056 89369067 -V_GATA_C 2.4.548e-07 - AGATAAGGCCT
+chr7 96632504 96632527 +V_COUPTF_Q6 1.81259e-06 + GGCTGTGCCCTCAGGCCTTTGAC
+chr7 96632508 96632521 +V_AP2_Q6_01 7.38468e-06 + GTGCCCTCAGGCC
+chr7 97146231 97146246 -V_OCT4_02 8.01355e-06 - ATTCTGATGTTAATT
+chr7 97146232 97146247 -V_OCT4_01 7.41924e-06 - TATTCTGATGTTAAT
+chr7 97146335 97146358 +V_OCT1_04 1.42271e-06 + TTACAATTATGCAAATTATAGAG
+chr7 97146337 97146356 +V_OCT1_01 2.39047e-06 + ACAATTATGCAAATTATAG
+chr7 97146339 97146354 +V_OCT1_Q6 8.17489e-06 + AATTATGCAAATTAT
+chr7 97146340 97146352 +V_OCT1_07 7.06349e-06 + ATTATGCAAATT
+chr7 97146340 97146354 -V_OCT1_05 5.68648e-07 - ATAATTTGCATAAT
+chr7 97146341 97146354 -V_OCT_C 4.58343e-06 - ATAATTTGCATAA
+chr7 97146342 97146352 +V_OCT1_B 7.0832e-06 + TATGCAAATT
+chr7 97146342 97146353 -V_OCT1_Q5_01 1.19041e-06 - TAATTTGCATA
+chr7 97146342 97146353 -V_OCT_Q6 1.64093e-06 - TAATTTGCATA
+chr7 97146359 97146389 +V_PAX4_04 8.27552e-06 + ATAAGATACACGTAACACCCAGTCCACCCC
+chr7 102628767 102628780 +V_DMRT4_01 2.92761e-06 + AATGTAGCAATGA
+chr7 102628820 102628835 -V_OCT4_01 5.31494e-07 - TATTTTCATGCAAAT
+chr7 102628896 102628908 +V_MEIS1_01 1.66267e-06 + CAGTGACAGGCC
+chr7 103317527 103317535 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr7 103317545 103317558 -V_MAZR_01 3.32118e-06 - GGGGGAGGGGCAG
+chr7 103317546 103317559 -V_SP1_Q6 3.85413e-06 - AGGGGGAGGGGCA
+chr7 103317547 103317557 -V_SP1_Q6_01 2.74385e-06 - GGGGAGGGGC
+chr7 103317548 103317557 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr7 103317548 103317558 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr7 103317549 103317557 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr7 103317549 103317558 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr7 103317565 103317575 -V_IK_Q5 1.3587e-06 - TTTGGGAGGG
+chr7 103317566 103317575 -V_LYF1_01 7.33929e-06 - TTTGGGAGG
+chr7 103317619 103317627 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr7 103317620 103317635 -V_VDR_Q3 4.22722e-06 - GGGTGAAAGGGGAGG
+chr7 103317622 103317642 -V_PPARA_01 7.81615e-06 - CTGCACTGGGTGAAAGGGGA
+chr7 103317643 103317652 -V_PAX2_02 7.33929e-06 - CACAAACCC
+chr7 103317657 103317669 +V_OCT1_07 5.82884e-06 + CCTATGGTAATT
+chr7 103505081 103505094 +V_HNF4ALPHA_Q6 3.03606e-06 + CAGAACTTTGCCT
+chr7 103505090 103505099 -V_AP2ALPHA_01 9.68294e-06 - GCCCGAGGC
+chr7 103505111 103505120 -V_WT1_Q6 6.67377e-06 - CCCTCCCGC
+chr7 103505124 103505133 +V_CACBINDINGPROTEIN_Q6 6.29506e-06 + GAGGCTGGG
+chr7 103505129 103505147 -V_FOXJ2_01 6.75509e-07 - ATATAAACAAACAGCCCA
+chr7 103505131 103505144 +V_HFH3_01 5.8913e-07 + GGCTGTTTGTTTA
+chr7 103505132 103505145 -V_HNF3_Q6 3.26963e-06 - ATAAACAAACAGC
+chr7 103505135 103505148 +V_HFH8_01 6.53403e-07 + GTTTGTTTATATG
+chr7 103505151 103505164 +V_STAT_Q6 6.34573e-07 + GACACTTCTTGGA
+chr7 103804030 103804046 -V_AP2_Q3 7.62107e-06 - GGCCCTGGGCTGGATG
+chr7 103804045 103804053 +V_CACD_01 9.89755e-06 + CCACACCC
+chr7 103804081 103804096 +V_OCT4_01 7.41924e-06 + CTTTTTGATGCAGAT
+chr7 104232820 104232837 +V_DR4_Q2 6.45833e-06 + GGTCCTCTGGTGACCTC
+chr7 104232825 104232848 +V_COUPTF_Q6 8.52398e-06 + TCTGGTGACCTCAGCCTCCTTCT
+chr7 104867823 104867837 -V_KROX_Q6 3.62033e-06 - CTCGCCCCCGCAGG
+chr7 104867826 104867837 +V_EGR_Q6 2.33306e-06 + GCGGGGGCGAG
+chr7 106413279 106413294 -V_OCT4_01 7.41924e-06 - TTTTCTTATGCCAAT
+chr7 106518802 106518812 +V_NUR77_Q5 8.43564e-06 + CTGACCTTTG
+chr7 106518823 106518833 +V_NUR77_Q5 8.43564e-06 + CTGACCTTTC
+chr7 106518823 106518837 -V_HNF4_Q6_01 7.92317e-06 - GGGGGAAAGGTCAG
+chr7 106518824 106518837 +V_PPAR_DR1_Q2 9.42243e-07 + TGACCTTTCCCCC
+chr7 106518824 106518837 +V_COUP_DR1_Q6 5.72793e-06 + TGACCTTTCCCCC
+chr7 106518824 106518837 -V_DR1_Q3 3.04643e-06 - GGGGGAAAGGTCA
+chr7 106518824 106518841 -V_PPARG_03 5.8919e-07 - AGGTGGGGGAAAGGTCA
+chr7 106518824 106518844 -V_PPARA_01 7.36971e-06 - CTTAGGTGGGGGAAAGGTCA
+chr7 106518919 106518933 +V_PAX6_Q2 7.01918e-06 + CAGAGCTGGAGCTA
+chr7 106660404 106660416 +V_LMO2COM_01 2.36746e-06 + CCCCAGGTGCTT
+chr7 106660426 106660444 -V_GCNF_01 6.88534e-06 - TTTGAGTTCAAGGCCAGC
+chr7 106660427 106660439 +V_LRH1_Q5 3.06315e-07 + CTGGCCTTGAAC
+chr7 106660427 106660441 +V_PAX6_Q2 8.3884e-07 + CTGGCCTTGAACTC
+chr7 106660488 106660503 -V_HES1_Q2 3.16131e-06 - AAGGCTGGTGGCTCA
+chr7 106669446 106669461 -V_DMRT1_01 1.44151e-06 - CTGATACACTGTTGC
+chr7 106813541 106813554 -V_GFI1_Q6 2.74217e-06 - TGAAATCACTGGC
+chr7 106813595 106813605 +V_GATA1_01 4.96582e-06 + CCTGATGGGG
+chr7 106813601 106813616 +V_VDR_Q3 3.77809e-06 + GGGGGAGTGAGGAGT
+chr7 109349236 109349248 -V_LRH1_Q5 9.2187e-06 - GGGGCCTTGAAG
+chr7 109349242 109349255 -V_SP1_Q6 8.16238e-06 - GCTGGGAGGGGCC
+chr7 109349245 109349255 -V_IK_Q5 2.4.539e-06 - GCTGGGAGGG
+chr7 109564552 109564567 +V_OCT4_01 1.94673e-06 + CTTTCTCATGTAAAC
+chr7 112000186 112000205 +V_SEF1_C 2.52635e-06 + AGCACCGCAGTCTATGGTC
+chr7 112633628 112633642 -V_PAX6_Q2 1.24937e-06 - CAGACCTTGAACTC
+chr7 112633630 112633642 -V_LRH1_Q5 3.77826e-06 - CAGACCTTGAAC
+chr7 112633651 112633662 -V_PAX_Q6 6.11495e-06 - CTGGAATTCAC
+chr7 112633653 112633667 -V_PAX6_Q2 4.98674e-07 - CTGTCCTGGAATTC
+chr7 112633700 112633715 +V_SPZ1_01 3.32152e-06 + GGAGGGGGGAGGGGG
+chr7 112633703 112633716 +V_SP1_Q6 8.76141e-06 + GGGGGGAGGGGGA
+chr7 112633703 112633718 +V_VDR_Q3 1.31117e-06 + GGGGGGAGGGGGAGA
+chr7 112633704 112633713 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr7 112633704 112633714 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr7 112633704 112633715 -V_SP1SP3_Q4 2.8432e-06 - CCCCCTCCCCC
+chr7 112633705 112633713 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr7 112633705 112633714 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr7 112633705 112633715 +V_SP1_Q6_01 8.48538e-06 + GGGGAGGGGG
+chr7 112633705 112633719 -V_KROX_Q6 6.2846e-06 - CTCTCCCCCTCCCC
+chr7 112633765 112633779 +V_HNF4_Q6_01 2.45857e-06 + AGACCAAAGGCCAT
+chr7 112672858 112672871 +V_AP1_01 7.1696e-06 + CATTGACTCAGCA
+chr7 112672859 112672872 -V_NRF2_Q4 8.50037e-06 - CTGCTGAGTCAAT
+chr7 112672860 112672871 -V_NFE2_01 2.40297e-06 - TGCTGAGTCAA
+chr7 112672860 112672871 -V_MAF_Q6_01 7.03729e-07 - TGCTGAGTCAA
+chr7 112672951 112672974 +V_COUPTF_Q6 6.16019e-06 + CCCACTGACCTTTACAGCTCAAT
+chr7 112672956 112672970 +V_COUP_01 8.21321e-06 + TGACCTTTACAGCT
+chr7 114351562 114351577 +V_OCT4_01 5.63049e-06 + CATTCTCATTCAAAC
+chr7 114492803 114492815 -V_NKX62_Q2 3.28186e-06 - GTAATAAATAGG
+chr7 117145659 117145671 -V_VDR_Q6 3.87245e-06 - CTGGCTGAACCA
+chr7 117149131 117149143 -V_NANOG_01 4.0942e-06 - AGGGTCATTTCC
+chr7 117149255 117149264 +V_CKROX_Q2 3.66459e-06 + GCCCTCCCC
+chr7 117149256 117149264 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr7 117156848 117156859 -V_SMAD_Q6_01 5.09972e-06 - CAGGCAGACAG
+chr7 117156849 117156858 +V_SMAD3_Q6 7.33929e-06 + TGTCTGCCT
+chr7 117862170 117862184 +V_ERR1_Q2 5.89079e-06 + ACCTGAAGGTCACC
+chr7 117862279 117862297 -V_GCNF_01 6.18313e-06 - GCCCAGGACAAGGTCACC
+chr7 118129520 118129543 +V_COUPTF_Q6 3.12801e-08 + CCATCTGACCTTTGACCTTTGAA
+chr7 118129521 118129542 -V_PPARG_01 8.77573e-09 - TCAAAGGTCAAAGGTCAGATG
+chr7 118129525 118129542 -V_PPARG_03 1.11777e-06 - TCAAAGGTCAAAGGTCA
+chr7 118129557 118129571 -V_FOXO4_02 7.08786e-06 - CTTTTGTTTTCCTG
+chr7 118129606 118129624 -V_NF1_Q6 7.86736e-09 - TCTTGGCAGGAAGCCATG
+chr7 118129607 118129624 +V_NF1_Q6_01 1.37923e-08 + ATGGCTTCCTGCCAAGA
+chr7 118888260 118888274 -V_FOXO1_02 7.6046e-06 - GTGATGTTTACAGC
+chr7 118888464 118888479 -V_SPZ1_01 7.77486e-07 - GCAGGTGGGAATGGG
+chr7 118888472 118888480 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr7 118888478 118888496 -V_NF1_Q6 8.75013e-07 - TGTTGGCAGATGGCCAGG
+chr7 118888479 118888496 +V_NF1_Q6_01 1.22938e-06 + CTGGCCATCTGCCAACA
+chr7 118888526 118888538 -V_PBX_Q3 3.10639e-06 - GATGGATGGCAG
+chr7 119606734 119606743 +V_CACBINDINGPROTEIN_Q6 6.29506e-06 + GAGGCTGGG
+chr7 119606787 119606799 +V_LMO2COM_01 6.44862e-06 + CCCCAGCTGCTC
+chr7 119606813 119606825 +V_SREBP_Q3 1.19813e-06 + AGGGTCACCCCA
+chr7 119606813 119606828 +V_SREBP_Q6 5.28997e-07 + AGGGTCACCCCAGGG
+chr7 119606813 119606828 +V_SREBP1_Q5 7.73938e-07 + AGGGTCACCCCAGGG
+chr7 119606852 119606871 +V_NRSF_Q4 5.35581e-06 + GCAGAGCCCGAGGTGCAGA
+chr7 119804108 119804130 -V_MEF2_02 8.18127e-06 - GGTCTTCCTAATAATAGCACAG
+chr7 119804108 119804130 -V_MEF2_03 3.67046e-06 - GGTCTTCCTAATAATAGCACAG
+chr7 119832094 119832124 -V_PAX4_04 4.49749e-06 - AAAAAAAAGCTGCGCCCCACCCCCCACAAG
+chr7 119832096 119832111 +V_SPZ1_01 8.55807e-06 + TGTGGGGGGTGGGGC
+chr7 119832099 119832112 +V_SP1_Q6 9.29757e-07 + GGGGGGTGGGGCG
+chr7 119832100 119832109 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr7 119832100 119832110 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr7 119832100 119832113 +V_MAZR_01 5.14471e-06 + GGGGGTGGGGCGC
+chr7 119832101 119832111 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr7 119832123 119832141 +V_HNF3_Q6_01 9.0308e-06 + TTCTCTGTTTATTTTCTA
+chr7 119832123 119832141 -V_FOXJ2_01 2.41928e-06 - TAGAAAATAAACAGAGAA
+chr7 119832196 119832211 -V_ETS1_B 6.49821e-06 - CCAGGAAATACCTGG
+chr7 119832198 119832212 -V_ETS2_B 8.24353e-06 - TCCAGGAAATACCT
+chr7 119832232 119832240 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr7 127261050 127261062 -V_GATA4_Q3 9.25891e-06 - AGATCACAGAGA
+chr7 127261088 127261102 +V_CEBPB_02 6.32911e-06 + AGATTGCTTAACTG
+chr7 128004620 128004635 +V_OCT4_01 6.02107e-06 + CTTAGAAATGTAAAT
+chr7 128004752 128004770 +V_CMYB_01 3.39028e-06 + CAGGGAGATGGTTGGGGG
+chr7 128004764 128004777 +V_SP1_Q6 8.76141e-06 + TGGGGGTGGGGGG
+chr7 128004765 128004774 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr7 128004765 128004775 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr7 128004765 128004776 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr7 128004766 128004778 -V_PAX4_03 9.67001e-06 - CCCCCCCACCCC
+chr7 128004769 128004780 +V_EGR_Q6 3.00131e-06 + GTGGGGGGGAG
+chr7 129383991 129384001 +V_GATA1_05 2.21291e-06 + GCTGATAACA
+chr7 129384077 129384088 -V_SP1SP3_Q4 8.683e-07 - CCCCCCCCTGC
+chr7 129384079 129384092 +V_MAZR_01 1.60706e-07 + AGGGGGGGGGCAA
+chr7 129384080 129384089 -V_WT1_Q6 3.00918e-06 - CCCCCCCCC
+chr7 129384086 129384101 +V_DMRT1_01 4.43941e-06 + GGGCAACATTGTTGC
+chr7 129384088 129384103 -V_DMRT1_01 3.56682e-08 - TTGCAACAATGTTGC
+chr7 129384089 129384103 -V_DMRT7_01 6.61071e-07 - TTGCAACAATGTTG
+chr7 130355189 130355204 +V_OCT4_01 1.09956e-06 + CATTGTAATGCTAAA
+chr7 130355190 130355205 +V_OCT4_02 6.55103e-06 + ATTGTAATGCTAAAT
+chr7 131864678 131864690 -V_MEF2_Q6_01 6.45006e-06 - TGCTATATTAAG
+chr7 131864684 131864694 -V_KAISO_01 8.69798e-06 - TTCCTGCTAT
+chr7 131864686 131864700 +V_ETS2_B 3.88969e-06 + AGCAGGAAGTAGCT
+chr7 131864687 131864702 +V_ETS1_B 9.4683e-06 + GCAGGAAGTAGCTGT
+chr7 131864688 131864700 -V_ETS_Q4 1.51985e-06 - AGCTACTTCCTG
+chr7 133364193 133364223 +V_PAX4_04 8.7361e-06 + AAAAATCAACCAGGCTTTGTAGCACACACC
+chr7 133364235 133364249 -V_E2A_Q2 5.8661e-06 - CCACCTGCCTGAGT
+chr7 133364240 133364248 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr7 133364240 133364250 -V_MYOD_Q6 6.66004e-06 - TCCACCTGCC
+chr7 133364286 133364300 -V_BLIMP1_Q6 9.49741e-06 - GAAAAGGGAAATGC
+chr7 133364333 133364346 +V_OCT_C 2.09338e-06 + CTTATTAGCATAC
+chr7 133757730 133757740 -V_GATA1_01 3.85013e-06 - GGTGATGGGG
+chr7 134367689 134367704 -V_SRF_C 4.06523e-06 - GCCATGAATGGCCAT
+chr7 134367703 134367726 +V_COUPTF_Q6 2.31388e-06 + CTGTGTGACCTTGGACATCTTCC
+chr7 134367704 134367725 -V_PPARG_01 3.02999e-06 - GAAGATGTCCAAGGTCACACA
+chr7 134367707 134367719 +V_LRH1_Q5 1.22748e-06 + GTGACCTTGGAC
+chr7 134367708 134367717 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGG
+chr7 134367743 134367753 +V_GATA1_05 9.8464e-06 + GCAGATAACC
+chr7 134367809 134367822 +V_AP1_01 1.54268e-07 + GAATGAGTCAGCA
+chr7 134367810 134367821 -V_AP1_Q2 7.83818e-06 - GCTGACTCATT
+chr7 134367810 134367821 -V_AP1_Q6 2.98654e-06 - GCTGACTCATT
+chr7 134367811 134367820 +V_AP1_C 4.03003e-06 + ATGAGTCAG
+chr7 134367811 134367822 -V_NFE2_01 1.48643e-06 - TGCTGACTCAT
+chr7 136923591 136923605 -V_NFKB_Q6 4.40101e-06 - CGGGGAATCTCCTT
+chr7 136923592 136923604 -V_NFKB_C 7.11162e-06 - GGGGAATCTCCT
+chr7 136923627 136923644 -V_DR4_Q2 3.50068e-06 - TGCCCTGCAGTGCCCTA
+chr7 136923671 136923685 +V_CEBPA_01 9.88249e-06 + ACATTACAAAAGCA
+chr7 136923686 136923699 -V_FXR_IR1_Q6 5.33409e-07 - GGGTGTATGACCT
+chr7 136923687 136923701 -V_FXR_Q3 7.1872e-06 - CAGGGTGTATGACC
+chr7 137805964 137805978 -V_BLIMP1_Q6 2.60504e-06 - AGAAAGGGACAGGA
+chr7 138848051 138848063 -V_VDR_Q6 4.53853e-06 - CTCTGTGAACCT
+chr7 140242495 140242508 +V_HNF4ALPHA_Q6 8.27102e-06 + AAGAACCTTGCAC
+chr7 140242505 140242520 -V_ETS1_B 6.14163e-06 - GCAGGAAGTAGTGTG
+chr7 140242507 140242519 +V_ETS_Q4 6.33208e-06 + CACTACTTCCTG
+chr7 141138838 141138868 -V_HOX13_01 7.23716e-06 - TTCCTCTTCCTTCATCACTGCTGCAGCTCT
+chr7 141138858 141138870 +V_ELF1_Q6 2.15836e-06 + GGAAGAGGAAGA
+chr7 141138932 141138941 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr7 141214017 1412.4.50 -V_OCT1_04 5.21912e-06 - ATTTGCAAATGCAGATATAATGA
+chr7 141214086 141214100 +V_FXR_Q3 6.81949e-07 + CAGGGGGAATGACC
+chr7 141214088 141214101 +V_FXR_IR1_Q6 3.15306e-06 + GGGGGAATGACCT
+chr7 141214093 141214107 -V_ERR1_Q2 1.27776e-06 - AGTTCAAGGTCATT
+chr7 141214093 141214111 -V_GCNF_01 1.99811e-07 - GAGAAGTTCAAGGTCATT
+chr7 141214094 141214106 +V_LRH1_Q5 3.77826e-06 + ATGACCTTGAAC
+chr7 141214094 141214108 +V_PAX6_Q2 2.80439e-06 + ATGACCTTGAACTT
+chr7 141214095 141214104 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr7 141953589 141953603 -V_NFY_C 4.45006e-06 - TCTGATTGGTGAAT
+chr7 141953589 141953605 +V_NFY_01 7.41568e-06 + ATTCACCAATCAGAAC
+chr7 141953591 141953602 +V_NFY_Q6 9.1733e-06 + TCACCAATCAG
+chr7 141953611 141953634 -V_COUPTF_Q6 1.41184e-06 - CCCTGTGACCCTGCTCCCCGCCC
+chr7 141953623 141953638 +V_VDRRXR_01 8.9475e-06 + GGGTCACAGGGTCTA
+chr7 141953659 141953674 -V_OCT4_01 2.11448e-06 - TATTGTAATGCTAAG
+chr7 143225472 143225483 -V_ER_Q6_02 5.98444e-06 - CAGGTCACAGC
+chr7 144942826 144942835 +V_CKROX_Q2 3.66459e-06 + GCCCTCCCC
+chr7 144942827 144942835 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr7 144942827 144942836 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr7 144942860 144942870 -V_IK_Q5 4.33614e-06 - GGTGGGAGGG
+chr7 144942885 144942903 +V_HNF3_Q6_01 8.45028e-07 + TTCTTTGTTTGTTTATCC
+chr7 144942887 144942900 +V_FOX_Q2 1.19654e-06 + CTTTGTTTGTTTA
+chr7 144942887 144942900 +V_HFH4_01 3.21065e-07 + CTTTGTTTGTTTA
+chr7 144942888 144942901 -V_HNF3_Q6 9.99776e-07 - ATAAACAAACAAA
+chr7 146041945 146041958 -V_CRX_Q4 4.43406e-07 - TTACTAATCTCCC
+chr7 146041956 146041971 +V_OCT4_01 7.94702e-06 + AATTGTGATGCTGAT
+chr7 146041957 146041972 +V_OCT4_02 8.07722e-08 + ATTGTGATGCTGATG
+chr7 146041997 146042008 -V_NFY_Q6 7.17826e-06 - GAGCCAATCAC
+chr7 146105687 146105700 -V_AP2_Q6_01 8.86342e-06 - CTGCCCTCAGGCT
+chr7 146105818 146105838 +V_YY1_02 1.7589e-06 + CCAAGGCCATTTTGGCTCTG
+chr7 146105819 146105836 +V_YY1_01 4.0033e-06 + CAAGGCCATTTTGGCTC
+chr7 146871343 146871352 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr7 146871344 146871352 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr7 146871344 146871353 -V_CKROX_Q2 8.90515e-06 - TCCCTCCCC
+chr7 146871396 146871415 +V_ER_Q6 3.55404e-06 + CCAAGGCTCAGTGACCCAG
+chr7 146871407 146871418 -V_RORA_Q4 9.54539e-06 - TATCTGGGTCA
+chr7 146979294 146979305 -V_LEF1TCF1_Q4 3.42525e-06 - CCTTTGAAGTT
+chr7 146979310 146979321 -V_NFY_Q6 7.89171e-06 - TGGCCAATGAC
+chr7 146979406 146979425 +V_SEF1_C 6.20043e-06 + AGAACAAATGTCTGTGGTT
+chr7 147379204 147379216 +V_ETS_Q4 4.90737e-06 + AACCACTTCCGG
+chr7 149417578 149417591 +V_AP1_01 3.30287e-06 + GAATGAGTCAGTA
+chr7 149417580 149417589 +V_AP1_C 4.03003e-06 + ATGAGTCAG
+chr7 149417580 149417591 -V_NFE2_01 6.32206e-06 - TACTGACTCAT
+chr7 149417596 149417607 -V_FLI1_Q6 4.3053e-06 - CAGGAAGTCAT
+chr7 149417602 149417625 +V_COUPTF_Q6 3.7102e-06 + TCCTGTGAACCTTCACCCCACCT
+chr7 149417603 149417624 -V_PPARG_01 1.9589e-06 - GGTGGGGTGAAGGTTCACAGG
+chr7 149417609 149417621 +V_PAX4_03 5.05761e-06 + AACCTTCACCCC
+chr7 149685364 149685378 +V_BLIMP1_Q6 8.88669e-06 + AGGGAATGAAAGGA
+chr7 149685423 149685435 +V_CMYC_02 8.14658e-06 + GACCAGGTGGCC
+chr7 149685423 149685435 +V_USF_Q6_01 9.55721e-06 + GACCAGGTGGCC
+chr7 150536758 150536768 +V_ESE1_Q3 8.06007e-06 + AGCTTCCTGT
+chr7 150536766 150536778 -V_LRH1_Q5 2.30644e-06 - CAGGCCTTGAAC
+chr8 4934153 4934172 -V_ER_Q6 2.51087e-06 - ATAAAACACTGTGACCTAA
+chr8 4934197 4934207 -V_NKX25_Q5 3.30926e-06 - TCCCACTTGC
+chr8 4934241 4934256 -V_OCT4_01 5.63049e-06 - CATTCTTATTCAAAC
+chr8 4934257 4934271 +V_KROX_Q6 5.23964e-06 + CCTGCCCCCAGCCC
+chr8 5756511 5756523 +V_OCT1_07 4.78768e-06 + ATTATGTTAATT
+chr8 5756512 5756522 +V_POU3F2_02 1.99833e-06 + TTATGTTAAT
+chr8 5756537 5756552 -V_OCT4_02 6.55103e-06 - ATTCTCATGTAGATG
+chr8 11482541 11482565 -V_STAT5A_02 7.69677e-06 - TTCTCAGAACTTCAGTTCCCAGTT
+chr8 11482582 11482593 +V_EBF_Q6 9.85663e-07 + GTCCCCAGGGA
+chr8 11530442 11530453 +V_MAF_Q6_01 7.15365e-06 + TGCTGAGTGAG
+chr8 11530469 11530484 -V_OCT4_01 9.65557e-06 - CATTGTCATGGAGAG
+chr8 11530493 11530517 -V_STAT5A_02 7.33225e-06 - TTCTGAGAAGGAAGATACACAGAG
+chr8 11704869 11704881 -V_TTF1_Q6 7.41671e-06 - ACCCCAAGTGCC
+chr8 11704875 11704894 +V_PPARA_02 3.36842e-07 + TGGGGTGGTGGGGGTGGGG
+chr8 11704876 11704885 +V_ZIC2_01 9.89755e-06 + GGGGTGGTG
+chr8 11704879 11704893 -V_KROX_Q6 1.8783e-06 - CCCACCCCCACCAC
+chr8 11704882 11704893 +V_EGR_Q6 8.04446e-06 + GTGGGGGTGGG
+chr8 11704883 11704896 +V_SP1_Q6 7.54104e-06 + TGGGGGTGGGGTG
+chr8 11704884 11704893 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr8 11704884 11704894 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr8 11704886 11704901 -V_SREBP_Q6 2.612e-06 - TCCCTCACCCCACCC
+chr8 11704886 11704901 -V_SREBP1_Q5 7.73938e-07 - TCCCTCACCCCACCC
+chr8 11704916 11704930 +V_ERR1_Q2 2.97688e-06 + AACTCAAGGTCATT
+chr8 11704919 11704928 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr8 11705198 11705210 +V_LRH1_Q5 9.2187e-06 + GTGGCCTTGGAA
+chr8 11705211 11705219 -V_CACD_01 9.89755e-06 - CCACACCC
+chr8 11705231 11705239 -V_CACD_01 9.89755e-06 - CCACACCC
+chr8 11705265 11705273 -V_CACD_01 9.89755e-06 - CCACACCC
+chr8 11705282 11705291 +V_WT1_Q6 6.67377e-06 + CCCTCCCGC
+chr8 12545714 12545727 +V_STAT1STAT1_Q3 4.65803e-06 + CTTTCCCAGAAAG
+chr8 12760242 12760265 -V_COUPTF_Q6 6.50749e-06 - CTCTCTGACCTCTGCAGGCATCA
+chr8 12871523 12871537 +V_STAT3STAT3_Q3 6.47014e-06 + TTGCTGGGGACTCC
+chr8 12871565 12871595 +V_PAX4_04 7.83759e-06 + AAGACTTACCCAGCTAACAAGCCTGACACC
+chr8 14787253 14787261 -V_CACD_01 9.89755e-06 - CCACACCC
+chr8 15062248 15062257 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chr8 15062324 15062335 -V_WHN_B 5.65269e-06 - AGTGACGCTTG
+chr8 17653989 17653998 -V_HNF4_Q6 7.33929e-06 - AAGGTCCAG
+chr8 17653994 17654012 +V_NF1_Q6 4.05732e-06 + CCTTGGCAGTCAGCCTCA
+chr8 17654011 17654028 +V_PU1_01 6.15878e-06 + AGGAGGAGGAAGTGGCC
+chr8 17654012 17654024 +V_ELF1_Q6 3.87486e-06 + GGAGGAGGAAGT
+chr8 17654013 17654029 +V_MAF_Q6 2.6445e-06 + GAGGAGGAAGTGGCCA
+chr8 17654022 17654037 -V_SRF_C 8.92759e-06 - CCCTTATTTGGCCAC
+chr8 17654022 17654041 -V_SRF_Q5_02 9.77927e-07 - TCTTCCCTTATTTGGCCAC
+chr8 17654024 17654038 +V_SRF_Q6 4.91031e-07 + GGCCAAATAAGGGA
+chr8 17654025 17654040 +V_SRF_C 6.07812e-06 + GCCAAATAAGGGAAG
+chr8 17654025 17654043 +V_SRF_Q4 1.25759e-06 + GCCAAATAAGGGAAGAGA
+chr8 17654026 17654041 +V_SRF_Q5_01 8.97242e-06 + CCAAATAAGGGAAGA
+chr8 18497586 18497597 +V_RORA_Q4 8.63683e-06 + TAGATAGGTCA
+chr8 18497686 18497695 -V_AP2ALPHA_01 9.68294e-06 - GCCCGAGGC
+chr8 18497704 18497715 -V_LEF1TCF1_Q4 9.40057e-06 - CCTTTGATGTG
+chr8 18567046 18567056 +V_ESE1_Q3 8.06007e-06 + TGCTTCCTGT
+chr8 18567057 18567072 +V_DMRT1_01 4.43941e-06 + TAGATACAATGTAAC
+chr8 18567059 18567074 -V_DMRT1_01 4.26013e-07 - TGGTTACATTGTATC
+chr8 18567060 18567074 -V_DMRT7_01 6.91627e-06 - TGGTTACATTGTAT
+chr8 18567062 18567077 -V_DMRT3_01 1.5251e-06 - AGTTGGTTACATTGT
+chr8 18567062 18567078 -V_DMRT2_01 7.03073e-07 - CAGTTGGTTACATTGT
+chr8 18567097 18567107 +V_ESE1_Q3 8.06007e-06 + TGCTTCCTGT
+chr8 18567108 18567123 +V_DMRT1_01 4.60942e-06 + TAGCTACAATGTAAC
+chr8 18567110 18567125 -V_DMRT1_01 2.48775e-07 - TGGTTACATTGTAGC
+chr8 18567111 18567125 -V_DMRT7_01 1.43161e-06 - TGGTTACATTGTAG
+chr8 18567149 18567159 +V_ESE1_Q3 8.06007e-06 + TGCTTCCTGT
+chr8 24011693 24011708 +V_OCT4_01 5.63049e-06 + CATTCTCATTCAAAC
+chr8 24664364 24664376 +V_NFAT_Q6 7.33968e-06 + CAAAGGAAAACT
+chr8 24664487 24664502 -V_OCT4_02 5.30392e-06 - ATTGTCATGCAGAGA
+chr8 24672333 24672363 -V_HOX13_01 9.54311e-06 - TTCTCAGGCCTTCATTAGCCTGCAGGACCT
+chr8 24672626 24672641 +V_OCT1_Q6 4.83659e-07 + GGGAATGCAAAGCAG
+chr8 24672628 24672641 -V_OCT_C 8.12e-06 - CTGCTTTGCATTC
+chr8 24672644 24672659 -V_OCT4_02 9.10747e-06 - ATTCAATTGCAAATG
+chr8 24672645 24672660 -V_OCT4_01 5.24325e-06 - TATTCAATTGCAAAT
+chr8 24672718 24672729 +V_EBF_Q6 2.28749e-06 + CTCCCCTGGGA
+chr8 24673155 24673168 -V_SP1_Q6 8.16238e-06 - GATGGGAGGGGCC
+chr8 24864703 24864717 +V_NFKB_Q6 7.6961e-06 + TGGGGACATCCCTG
+chr8 24864705 24864715 +V_NFKAPPAB_01 8.50103e-06 + GGGACATCCC
+chr8 26123492 26123501 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr8 26123493 26123501 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr8 26123493 26123502 -V_CKROX_Q2 8.90515e-06 - TCCCTCCCC
+chr8 26123493 26123508 +V_VDR_Q3 2.95306e-06 + GGGGAGGGAGGGTGA
+chr8 26565543 26565558 -V_SMAD4_Q6 6.25841e-06 - GGGGTGGGGCCAGCC
+chr8 26565546 26565559 -V_MAZR_01 5.89987e-07 - GGGGGTGGGGCCA
+chr8 26565547 26565560 -V_SP1_Q6 2.15093e-06 - TGGGGGTGGGGCC
+chr8 26565548 26565558 -V_SP1_Q6_01 4.32232e-06 - GGGGTGGGGC
+chr8 26565549 26565559 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr8 26565550 26565559 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr8 26565553 26565569 -V_NFY_01 8.06774e-06 - AGTAACCAATGGGGGT
+chr8 26565556 26565567 -V_NFY_Q6 6.30633e-06 - TAACCAATGGG
+chr8 26565560 26565577 -V_HNF1_C 8.3307e-06 - TCTTAATTAGTAACCAA
+chr8 26565561 26565579 +V_HNF1_Q6 1.96468e-06 + TGGTTACTAATTAAGAAA
+chr8 26565571 26565586 -V_HMGIY_Q3 8.28351e-06 - AGGGCATTTTCTTAA
+chr8 26565597 26565617 +V_FOXP1_01 8.3704e-06 + TTATGTAGGCTTTTTTTTTT
+chr8 26591066 26591080 -V_GATA1_02 3.50679e-06 - GCAAAGATAAGGGC
+chr8 26591068 26591078 -V_GATA6_01 6.25525e-06 - AAAGATAAGG
+chr8 27895008 27895022 +V_BLIMP1_Q6 9.49741e-06 + TAAAAGGGAAAGTC
+chr8 28298458 28298467 +V_CKROX_Q2 8.90515e-06 + TCCCTCCCC
+chr8 28298459 28298467 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr8 28298459 28298468 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr8 28298459 28298473 +V_KROX_Q6 5.43581e-06 + CCCTCCCCCTCTCC
+chr8 28298501 28298513 -V_NFKB_C 3.77632e-06 - TGGGATTCTCCA
+chr8 28298538 28298550 -V_GATA4_Q3 2.08127e-07 - AGATAAAAGGGA
+chr8 28298564 28298578 +V_KROX_Q6 7.21054e-07 + CCTGCCCCCCCCCC
+chr8 28298565 28298578 -V_MAZR_01 3.44004e-07 - GGGGGGGGGGCAG
+chr8 28298566 28298579 -V_MAZR_01 7.66218e-06 - GGGGGGGGGGGCA
+chr8 28298566 28298581 -V_VDR_Q3 6.38003e-06 - GGGGGGGGGGGGGCA
+chr8 28298567 28298578 +V_SP1SP3_Q4 7.59003e-06 + GCCCCCCCCCC
+chr8 28298568 28298577 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr8 28298568 28298579 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr8 28298569 28298578 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr8 28298569 28298580 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr8 28298570 28298579 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr8 28298570 28298581 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr8 28298571 28298580 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr8 28298571 28298582 +V_SP1SP3_Q4 3.76147e-06 + CCCCCCCCCCA
+chr8 28298572 28298581 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr8 28298572 28298583 +V_SP1SP3_Q4 7.42043e-06 + CCCCCCCCCAC
+chr8 28298572 28298583 -V_EGR_Q6 2.33306e-06 - GTGGGGGGGGG
+chr8 28298771 28298785 +V_NFKB_Q6 6.39997e-06 + TGGGGAATTTACTG
+chr8 28298789 28298806 -V_HSF1_Q6 3.6225e-07 - CTTCCAGAAGCTTCACA
+chr8 28298792 28298805 -V_HSF_Q6 1.00892e-07 - TTCCAGAAGCTTC
+chr8 28298832 28298848 -V_AP2_Q3 1.13801e-06 - GCCCTCAGGCAGTGGC
+chr8 28298870 28298880 +V_TAL1_Q6 3.62595e-06 + GCCAGCTGCT
+chr8 28298908 28298919 -V_ELF5_01 8.57585e-06 - ACCAGGAAGTA
+chr8 31087312 31087325 +V_SP1_Q6 4.19627e-06 + AGGGGGTGGGGTG
+chr8 31087313 31087322 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr8 31087313 31087323 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr8 31087315 31087330 -V_SREBP_Q6 4.69758e-06 - CTCCCCACCCCACCC
+chr8 31087315 31087330 -V_SREBP1_Q5 7.63808e-06 - CTCCCCACCCCACCC
+chr8 31087343 31087360 +V_PU1_01 9.25815e-06 + GCAAAGAGGAAGCAGGT
+chr8 31087344 31087363 -V_PU1_Q4 3.70004e-06 - TCTACCTGCTTCCTCTTTG
+chr8 31087403 31087418 +V_OCT4_01 1.94673e-06 + ATTTGAAATGTAAAT
+chr8 33187615 33187630 +V_DMRT1_01 4.93806e-06 + CTGTTACTTTGTATC
+chr8 33187645 33187654 -V_CACBINDINGPROTEIN_Q6 8.12736e-06 - GGGGCTGGG
+chr8 35142642 35142661 +V_NRSF_Q4 8.39296e-06 + CCACTGTTCGCTGTGAAGA
+chr8 35142661 35142672 +V_PAX_Q6 6.2248e-07 + CTGGGACTCAC
+chr8 37009601 37009612 -V_ER_Q6_02 5.98444e-06 - GAGGTCAGGGT
+chr8 37009605 37009619 +V_COUP_01 6.51424e-06 + TGACCTCTGCATCT
+chr8 37602642 37602653 -V_ALPHACP1_01 8.33823e-06 - CAGCGAATGAG
+chr8 40414717 40414726 -V_LMO2COM_02 3.30926e-06 - CAGATAGGG
+chr8 40414808 40414823 -V_ETS1_B 1.60879e-06 - ACAGGAAATGTGTGC
+chr8 40414810 40414824 -V_ETS2_B 2.38641e-06 - TACAGGAAATGTGT
+chr8 40414814 40414826 -V_ELF1_Q6 7.75166e-06 - ATTACAGGAAAT
+chr8 40414831 40414854 +V_OCT1_04 1.07374e-06 + GGAGGATTATGCAAATTAGTTGG
+chr8 40414833 40414852 +V_OCT1_01 1.82906e-06 + AGGATTATGCAAATTAGTT
+chr8 40414834 40414852 -V_CART1_01 5.98652e-06 - AACTAATTTGCATAATCC
+chr8 40414835 40414850 +V_OCT1_Q6 1.91341e-06 + GATTATGCAAATTAG
+chr8 40414836 40414848 +V_OCT1_07 7.06349e-06 + ATTATGCAAATT
+chr8 40414836 40414850 -V_OCT1_05 4.01534e-07 - CTAATTTGCATAAT
+chr8 40414837 40414850 -V_OCT_C 1.32119e-06 - CTAATTTGCATAA
+chr8 40414838 40414848 +V_OCT1_B 7.0832e-06 + TATGCAAATT
+chr8 40414838 40414849 -V_OCT1_Q5_01 1.19041e-06 - TAATTTGCATA
+chr8 40414838 40414849 -V_OCT_Q6 1.64093e-06 - TAATTTGCATA
+chr8 415272.4.51527299 +V_DMRT1_01 3.71498e-06 + TTGCTACTTTGTTAC
+chr8 41527289 41527302 -V_DMRT4_01 8.86278e-06 - ACTGTAACAAAGT
+chr8 41527290 41527305 +V_DMRT5_01 3.48558e-07 + CTTTGTTACAGTGTC
+chr8 41527292 41527306 +V_DMRT7_01 5.18644e-06 + TTGTTACAGTGTCT
+chr8 46087078 46087091 +V_NRF2_Q4 5.51501e-06 + CTGTTGAGTCACT
+chr8 46087108 46087117 -V_PAX2_02 7.33929e-06 - CACAAACCC
+chr8 46087152 46087165 -V_AP2_Q6_01 2.71709e-06 - GCTGCCCCAGGCC
+chr8 46087154 46087168 -V_E2A_Q2 5.8661e-06 - ACAGCTGCCCCAGG
+chr8 46087155 46087173 +V_MYOD_Q6_01 1.18169e-06 + CTGGGGCAGCTGTAGAAG
+chr8 49264486 49264498 +V_LRH1_Q5 6.09185e-06 + CTCGCCTTGAAC
+chr8 49264594 49264613 +V_OCT1_01 6.72058e-06 + ATGGAAATGCAAATTTCCT
+chr8 52267252 52267263 -V_EVI1_03 1.7215e-06 - AGATAAGATAT
+chr8 52267252 52267263 -V_EVI1_05 1.27098e-06 - AGATAAGATAT
+chr8 55161823 55161838 +V_OCT4_01 2.11448e-06 + CTTTCTCTTGCAAAT
+chr8 55161824 55161839 +V_OCT4_02 4.76161e-07 + TTTCTCTTGCAAATG
+chr8 55161895 55161914 +V_GR_Q6 8.25481e-06 + TCTGGACCATCTGTCCTTC
+chr8 55161897 55161913 +V_GRE_C 1.26226e-06 + TGGACCATCTGTCCTT
+chr8 58697734 58697749 -V_OCT4_02 6.14224e-06 - ATTGATATGTAAATG
+chr8 58697735 58697750 -V_OCT4_01 1.18992e-06 - AATTGATATGTAAAT
+chr8 58697804 58697813 -V_CACBINDINGPROTEIN_Q6 6.29506e-06 - GAGGCTGGG
+chr8 63882344 63882354 -V_NUR77_Q5 2.98426e-06 - CTGACCTTGC
+chr8 63882345 63882364 +V_PPARA_02 5.21998e-06 + CAAGGTCAGGGGAGTGAAG
+chr8 63883281 63883291 +V_TAL1_Q6 7.72591e-06 + TCCAGCTGGC
+chr8 63883284 63883299 -V_SMAD4_Q6 1.35824e-06 - AGGAGGCAGCCAGCT
+chr8 63904107 63904122 -V_ETS1_B 2.60229e-06 - GCAGGATGTGGCAGG
+chr8 63904109 63904121 +V_ETS_Q4 7.92948e-06 + TGCCACATCCTG
+chr8 63904190 63904202 -V_GATA4_Q3 8.07533e-07 - AGATAACAGAGA
+chr8 63904251 63904266 -V_SPZ1_01 7.19322e-06 - TAAGGAGGGTGTGGG
+chr8 63904252 63904260 +V_CACD_01 9.89755e-06 + CCACACCC
+chr8 66887578 66887601 +V_COUPTF_Q6 3.19111e-07 + TGCCCTGACCTCTGCACCACACC
+chr8 66887582 66887596 -V_HNF4_Q6_01 2.45857e-06 - GGTGCAGAGGTCAG
+chr8 66887583 66887596 +V_PPAR_DR1_Q2 7.19742e-06 + TGACCTCTGCACC
+chr8 66887722 66887737 +V_OCT4_01 9.436e-07 + TTTTGTTATTCAAAT
+chr8 66887723 66887738 +V_OCT4_02 8.01355e-06 + TTTGTTATTCAAATT
+chr8 72123972 72123983 +V_RORA_Q4 6.07427e-06 + TTAGTGGGTCA
+chr8 72124040 72124054 +V_MEIS1AHOXA9_01 5.75423e-06 + TGACAGGTTTAGAA
+chr8 72124040 72124054 +V_MEIS1BHOXA9_02 2.7616e-06 + TGACAGGTTTAGAA
+chr8 72124080 72124093 +V_STAT1STAT1_Q3 5.18772e-06 + GTTTCACAGAAAC
+chr8 75236587 75236599 +V_ELF1_Q6 9.35761e-06 + AGAGGAGGAAAT
+chr8 75236590 75236605 +V_ETS1_B 7.64126e-06 + GGAGGAAATGGTTCA
+chr8 75236614 75236626 +V_AP2_Q6 5.22571e-06 + CACCCCCAGGCC
+chr8 75627850 75627862 +V_TTF1_Q6 4.68363e-06 + CCTTCAAGAGCC
+chr8 75628072 75628092 -V_FOXP1_01 6.91049e-06 - TTGTTTGTGTTGTAAATGAT
+chr8 75628086 75628106 -V_FOXP1_01 3.5119e-07 - TTACTTGTCTTTTTTTGTTT
+chr8 75628105 75628118 -V_NKX61_01 2.30763e-06 - CTTTTAATTGGCT
+chr8 75902182 75902204 +V_MEF2_02 7.20201e-08 + TCTTTTGCTATAAATAGCTTCT
+chr8 75902182 75902204 +V_MEF2_03 1.09447e-07 + TCTTTTGCTATAAATAGCTTCT
+chr8 75902182 75902204 +V_MEF2_04 8.3027e-08 + TCTTTTGCTATAAATAGCTTCT
+chr8 75902189 75902201 -V_MEF2_Q6_01 7.26043e-06 - AGCTATTTATAG
+chr8 76291219 76291233 +V_BLIMP1_Q6 7.96729e-06 + GGGAAGGGGAAGTG
+chr8 76291220 76291232 +V_ELF1_Q6 7.75166e-06 + GGAAGGGGAAGT
+chr8 77371383 77371393 +V_ESE1_Q3 2.21291e-06 + TGTTTCCTGT
+chr8 77371395 77371407 -V_NFKB_C 3.77632e-06 - TGGGATTCTCCA
+chr8 77371397 77371417 +V_P53_01 7.08333e-06 + GAGAATCCCAGGGCATCTCT
+chr8 77371478 77371496 -V_CMYB_01 3.86342e-06 - GCTTTCGGCAGTTGGGGG
+chr8 77371480 77371490 +V_MYB_Q6 5.43478e-06 + CCCAACTGCC
+chr8 77371482 77371491 +V_MYB_Q5_01 5.43478e-06 + CAACTGCCG
+chr8 77587327 77587342 +V_SMAD4_Q6 5.24442e-06 + GAGGGCCAGCCTCCC
+chr8 77587342 77587352 +V_NKX25_Q5 5.12638e-06 + TCCCACTTCA
+chr8 77587415 77587427 -V_CEBP_Q3 4.13513e-06 - GGCTTTGGCAAA
+chr8 77587460 77587475 -V_SMAD4_Q6 7.69322e-08 - GGGGGCCAGCCAGCC
+chr8 79997910 79997923 -V_SP1_Q6 2.58612e-08 - GGGGGGCGGGGCT
+chr8 79997911 79997921 -V_SP1_Q6_01 3.39206e-07 - GGGGCGGGGC
+chr8 79997912 79997921 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr8 79997912 79997922 +V_SP1_Q2_01 3.39206e-07 + CCCCGCCCCC
+chr8 79997913 79997927 +V_KROX_Q6 1.67588e-06 + CCCGCCCCCCAACC
+chr8 79997950 79997968 -V_SRF_Q4 7.32009e-06 - TCCATAAAAGGCCTTGGG
+chr8 79997952 79997967 -V_SRF_Q5_01 5.30156e-06 - CCATAAAAGGCCTTG
+chr8 79997953 79997968 -V_SRF_C 6.07812e-06 - TCCATAAAAGGCCTT
+chr8 80592590 80592602 +V_LMO2COM_01 2.70597e-06 + GGCCAGGTGCTC
+chr8 80592612 80592625 +V_DMRT4_01 5.97817e-06 + AATGTTTCAAGTT
+chr8 80592677 80592692 +V_CP2_02 1.83402e-06 + GCTGGCTGGAGCTGC
+chr8 81038749 81038757 -V_CACD_01 9.89755e-06 - CCACACCC
+chr8 82555982 82555992 -V_GATA1_05 5.81636e-06 - ACAGATAACA
+chr8 82556648 82556663 -V_SREBP_Q6 1.80893e-06 - CAGATCACCCCAGGA
+chr8 82556648 82556663 -V_SREBP1_Q5 3.28655e-06 - CAGATCACCCCAGGA
+chr8 82556651 82556663 -V_SREBP_Q3 1.8438e-06 - CAGATCACCCCA
+chr8 82556660 82556670 +V_NUR77_Q5 8.43564e-06 + CTGACCTTTC
+chr8 82557019 82557031 +V_PAX4_03 3.30124e-06 + AGTCCCCACCCC
+chr8 82557019 82557032 -V_MAZR_01 5.68389e-06 - GGGGGTGGGGACT
+chr8 82557022 82557032 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr8 82557023 82557032 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr8 82557023 82557034 -V_EGR_Q6 8.04446e-06 - GTGGGGGTGGG
+chr8 82557023 82557037 +V_KROX_Q6 1.8783e-06 + CCCACCCCCACCTC
+chr8 82557045 82557058 +V_HSF_Q6 5.65866e-06 + TTCTAGTGGCTTC
+chr8 82763199 82763209 +V_TAL1_Q6 4.87508e-06 + TCCAGCTGGT
+chr8 82889622 82889641 -V_GR_Q6 7.48457e-06 - GAGCCCCATTCTGTTCTCA
+chr8 82889656 82889679 -V_COUPTF_Q6 2.31388e-06 - TCCCCTGCCCTCTACTCCTTTCG
+chr8 84417326 84417341 -V_OCT4_01 7.41924e-06 - TTTTGTTATGTAACT
+chr8 85683690 85683704 -V_NFY_C 7.36566e-06 - CCTGACTGGTTAAT
+chr8 85683829 85683838 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr8 86343137 86343167 -V_PAX4_04 8.40578e-07 - AGAGAAACACCCCACCCCCACCCCCACCCC
+chr8 86343185 86343200 +V_OCT4_01 2.28618e-06 + AATTGTTATGTAAAC
+chr8 86343214 86343227 -V_SOX_Q6 5.84183e-06 - ATCTTTGTTAAGT
+chr8 86343226 86343236 +V_TAL1_Q6 7.11328e-06 + TCCACCTGCT
+chr8 86343227 86343241 +V_E2A_Q2 1.48735e-06 + CCACCTGCTTCTGA
+chr8 86343251 86343262 -V_PITX2_Q2 1.22695e-06 - TTTAATCCCAG
+chr8 87269551 87269564 -V_SP1_Q6 1.00457e-07 - AGGGGGCGGGGTG
+chr8 87269552 87269562 -V_SP1_Q6_01 1.0915e-06 - GGGGCGGGGT
+chr8 87269553 87269562 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr8 87269553 87269563 +V_SP1_Q2_01 3.39206e-07 + CCCCGCCCCC
+chr8 87269554 87269565 -V_EGR_Q6 6.21659e-06 - GAGGGGGCGGG
+chr8 87269554 87269568 +V_KROX_Q6 1.5817e-06 + CCCGCCCCCTCCAG
+chr8 87269555 87269566 +V_SP1SP3_Q4 9.31298e-08 + CCGCCCCCTCC
+chr8 87269640 87269654 -V_COUP_01 5.74208e-06 - TGACCCCTGACCAG
+chr8 87269641 87269654 +V_DR1_Q3 3.99966e-06 + TGGTCAGGGGTCA
+chr8 87269641 87269654 -V_PPAR_DR1_Q2 7.19742e-06 - TGACCCCTGACCA
+chr8 87269641 87269654 -V_COUP_DR1_Q6 2.97763e-06 - TGACCCCTGACCA
+chr8 87269662 87269674 -V_TTF1_Q6 2.60851e-06 - ACCTCAAGAGCC
+chr8 88022611 88022619 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr8 88022617 88022626 -V_CACBINDINGPROTEIN_Q6 8.12736e-06 - GGGGCTGGG
+chr8 88022621 88022637 +V_AP2_Q3 1.41644e-06 + GCCCCTGGGCTGGAGG
+chr8 88022643 88022657 -V_KROX_Q6 4.94478e-06 - CCCACCCCCTACCC
+chr8 88022647 88022660 +V_SP1_Q6 8.76141e-06 + AGGGGGTGGGGCA
+chr8 88022648 88022657 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr8 88022648 88022658 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr8 88022648 88022661 +V_MAZR_01 7.66218e-06 + GGGGGTGGGGCAT
+chr8 88022649 88022659 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr8 88022649 88022661 -V_PAX4_03 6.56043e-06 - ATGCCCCACCCC
+chr8 88022711 88022727 -V_HAND1E47_01 9.35685e-06 - AAGTGGGTCTGGCTGC
+chr8 88022743 88022756 +V_SOX_Q6 2.67168e-06 + CGCTTTGTTAGGC
+chr8 89273762 89273777 -V_DMRT1_01 5.16206e-06 - TTGTTACTTTGTTGA
+chr8 89273763 89273777 -V_DMRT7_01 7.24493e-07 - TTGTTACTTTGTTG
+chr8 89273764 89273779 -V_DMRT5_01 6.58136e-06 - TCTTGTTACTTTGTT
+chr8 89273849 89273861 -V_GATA4_Q3 7.75537e-06 - AGAAAGGAGGGA
+chr8 90463427 90463451 -V_STAT5A_02 2.51628e-06 - TTCCTGGAACTCAGGCACCCTGGA
+chr8 90463439 90463454 +V_STAT5A_01 8.22978e-06 + GAGTTCCAGGAAGCT
+chr8 90463439 90463454 -V_STAT5A_01 8.69429e-06 - AGCTTCCTGGAACTC
+chr8 90463460 90463471 -V_SP1SP3_Q4 4.25103e-06 - CCACCCCCTCC
+chr8 90463463 90463472 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr8 90463464 90463476 -V_PAX4_03 2.70808e-06 - CACACCCACCCC
+chr8 90463469 90463477 -V_CACD_01 9.89755e-06 - CCACACCC
+chr8 90463771 90463792 -V_STAT3_01 2.56653e-06 - TCGGGAATCCCGGAAGTGATT
+chr8 90463772 90463783 -V_FLI1_Q6 1.08246e-06 - CCGGAAGTGAT
+chr8 91600018 91600033 +V_OCT4_01 5.24325e-06 + CTTTCTCATGGAAAC
+chr8 91600071 91600087 +V_NFKB_Q6_01 7.12923e-06 + AGGAGGGGAAGCCCCT
+chr8 91600076 91600084 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr8 91600076 91600086 -V_NFKAPPAB_01 4.87508e-06 - GGGGCTTCCC
+chr8 91600102 91600120 -V_SRF_Q4 2.57328e-06 - GCCATAAAAGGGGACACT
+chr8 91600104 91600123 +V_SRF_Q5_02 2.12682e-06 + TGTCCCCTTTTATGGCCTT
+chr8 91600107 91600121 -V_SRF_Q6 6.58624e-06 - GGCCATAAAAGGGG
+chr8 91600108 91600123 +V_SRF_C 9.71445e-06 + CCCTTTTATGGCCTT
+chr8 91603114 91603124 +V_PR_Q2 7.23e-06 + GAAAGAACAT
+chr8 91603164 91603177 -V_RXRLXRB_01 9.21472e-06 - AGGTCAGAAGTCA
+chr8 91603170 91603180 +V_NUR77_Q5 2.98426e-06 + CTGACCTTGG
+chr8 91603171 91603180 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGG
+chr8 91603191 91603207 -V_MAF_Q6 2.76173e-06 - TGAGAGGAAGTTCCCT
+chr8 91691051 91691062 -V_EBF_Q6 4.4234e-06 - GTCCCCTGGGT
+chr8 91691097 91691109 +V_GLI_Q2 5.13911e-06 + AGTGGGTGGGCC
+chr8 91691121 91691136 +V_OCT4_01 2.64195e-06 + TATTCTAATGTTAAT
+chr8 91795637 91795652 +V_OCT4_01 6.02107e-06 + CATTTATATGCTAAT
+chr8 91795642 91795652 +V_POU3F2_02 7.27852e-06 + ATATGCTAAT
+chr8 91795754 91795769 -V_OCT4_02 3.96885e-07 - ATTGTTTTGCTAATC
+chr8 93346569 93346580 +V_CREB_Q4_01 9.66545e-06 + CCATGACGTCG
+chr8 93346605 93346616 -V_SMAD_Q6_01 1.1191e-06 - TGGCCAGACAC
+chr8 93346632 93346643 +V_LEF1TCF1_Q4 2.56824e-06 + CCTTTGATCCC
+chr8 93346673 93346684 +V_GATA_C 4.75146e-06 + AGATAAGTCCA
+chr8 93375608 93375623 +V_OCT4_02 2.4.503e-06 + TTTGTTATTCTAATG
+chr8 93375621 93375634 -V_MAZR_01 2.79447e-06 - TGGGGAGGGGTCA
+chr8 93375623 93375633 -V_SP1_Q6_01 9.74073e-06 - GGGGAGGGGT
+chr8 93375624 93375633 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr8 93375625 93375633 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr8 93375645 93375655 +V_POU3F2_02 3.63926e-06 + TTATGCTAAT
+chr8 93428389 93428407 +V_PIT1_Q6 8.99316e-06 + ACTTCATAATCATGACAA
+chr8 9342.4.5 93428432 -V_CMYB_01 2.90026e-07 - TCGGGTGGCAGTTGGGAG
+chr8 93428416 93428426 +V_MYB_Q6 5.43478e-06 + CCCAACTGCC
+chr8 93428418 93428427 +V_MYB_Q5_01 8.74404e-06 + CAACTGCCA
+chr8 93428418 93428429 -V_MYB_Q3 4.01779e-06 - GGTGGCAGTTG
+chr8 93428435 93428450 -V_OCT4_02 8.50894e-06 - ATTCAATTGCTAATG
+chr8 94216057 94216067 -V_NUR77_Q5 8.43564e-06 - TTGACCTTCC
+chr8 94567017 94567032 +V_OCT4_01 6.02107e-06 + CATTGGTATGCTAAT
+chr8 94567021 94567035 -V_OCT1_05 4.33219e-06 - GTCATTAGCATACC
+chr8 94567022 94567035 -V_OCT_C 3.21193e-06 - GTCATTAGCATAC
+chr8 94567049 94567061 +V_PBX_Q3 7.4367e-06 + GATGGATGGCCC
+chr8 96378623 96378636 +V_AP2_Q6_01 9.55245e-06 + CCTGCCCCAGGCA
+chr8 96378710 96378721 +V_HELIOSA_02 5.08394e-06 + TTAAGGAAAAT
+chr8 97726740 97726754 +V_HNF4_Q6_01 7.92317e-06 + AGGCTAAAGTCCAA
+chr8 97726831 97726844 -V_ZEC_01 1.81991e-06 - CTTGGTTGGTTGT
+chr8 97882695 97882710 -V_STAT5A_01 3.10626e-06 - GGATTCTTGGAAACA
+chr8 97882695 97882710 -V_STAT5B_01 6.50815e-06 - GGATTCTTGGAAACA
+chr8 103374294 103374305 -V_PITX2_Q2 9.46105e-06 - CTTAATCCCAG
+chr8 103374351 103374364 +V_NFY_Q6_01 9.89171e-06 + AATTAGCCAATGG
+chr8 103374369 103374384 -V_OCT1_Q6 7.6349e-06 - AGAGATGCAAATCCT
+chr8 103374396 103374409 -V_IRF1_01 3.77173e-06 - GGAAAGTGAAAGC
+chr8 103374396 103374409 -V_IRF2_01 5.5375e-07 - GGAAAGTGAAAGC
+chr8 103374397 103374408 -V_IRF_Q6_01 3.03779e-07 - GAAAGTGAAAG
+chr8 106617410 106617433 +V_OCT1_04 6.64092e-06 + GAGAAGCTATGCATATTCATATA
+chr8 106617415 106617430 -V_OCT1_02 2.4.537e-06 - ATGAATATGCATAGC
+chr8 106617417 106617435 +V_PIT1_Q6 3.88193e-06 + TATGCATATTCATATACA
+chr8 106617418 106617433 +V_OCT1_02 7.8154e-06 + ATGCATATTCATATA
+chr8 106934877 106934892 +V_OCT4_01 2.83977e-06 + CTTTTTTATGCAAAC
+chr8 106934899 106934918 -V_NRSF_Q4 2.44818e-06 - GTACTGTTCCCTGGGCTGG
+chr8 109786131 109786146 -V_ETS1_B 2.97813e-06 - GCAGGAAGCAGTTCC
+chr8 109786133 109786145 +V_ETS_Q4 4.36344e-06 + AACTGCTTCCTG
+chr8 109786133 109786147 -V_ETS2_B 3.12849e-06 - TGCAGGAAGCAGTT
+chr8 109786146 109786167 -V_PPARG_01 2.16478e-06 - GCAGAGGTCAGAGGACAACGT
+chr8 109786150 109786163 +V_PPAR_DR1_Q2 5.84493e-06 + TGTCCTCTGACCT
+chr8 109786150 109786163 -V_RXRLXRB_01 6.42396e-06 - AGGTCAGAGGACA
+chr8 109786150 109786163 -V_DR1_Q3 5.94376e-06 - AGGTCAGAGGACA
+chr8 111130878 111130897 -V_GR_Q6 3.65698e-06 - TGTCCCCTCTCTGTTCTCC
+chr8 114325493 114325512 -V_NRSF_Q4 2.15312e-06 - GAGCTTTTCCTGCTGCTGA
+chr8 114325525 114325539 -V_ETS2_B 4.30291e-06 - TACAGGAAACAACT
+chr8 114325528 114325538 +V_ESE1_Q3 2.21291e-06 + TGTTTCCTGT
+chr8 116248124 116248137 -V_ZEC_01 5.66569e-06 - CAAGGTTGCTTGT
+chr8 116248150 116248169 +V_GR_Q6 4.82984e-07 + GGGGATCACTCTGTTCAGG
+chr8 116248206 116248219 -V_P50P50_Q3 3.39799e-06 - AAGGGAATTCCTC
+chr8 116640071 116640083 -V_NANOG_01 2.80149e-06 - GAGCTCATTTCC
+chr8 119097193 119097208 +V_OCT4_01 1.18992e-06 + AATTCTCATGCAAAC
+chr8 119097194 119097209 +V_OCT4_02 3.27036e-06 + ATTCTCATGCAAACG
+chr8 119541117 119541127 -V_NKX25_Q5 5.12638e-06 - TCCCACTTCA
+chr8 119636284 119636296 +V_AP2_Q6 4.04184e-06 + AGCCCCACGGCG
+chr8 119636297 119636307 +V_SP1_Q2_01 9.56538e-06 + CCCCTCCCAC
+chr8 119636298 119636308 -V_IK_Q5 4.33614e-06 - GGTGGGAGGG
+chr8 119636399 119636413 -V_HNF4_Q6_01 7.37368e-06 - AGGCCAAAGGCCTC
+chr8 119636400 119636413 +V_HNF4_DR1_Q3 8.70895e-06 + AGGCCTTTGGCCT
+chr8 119636400 119636413 -V_DR1_Q3 6.75098e-06 - AGGCCAAAGGCCT
+chr8 119636400 119636420 -V_PPARA_01 8.85233e-07 - CAGCCCTAGGCCAAAGGCCT
+chr8 119708722 119708740 -V_MYOD_Q6_01 1.68518e-06 - CGAGGGCAGGTGGCCTGG
+chr8 119708725 119708736 -V_E12_Q6 1.14424e-06 - GGCAGGTGGCC
+chr8 119708726 119708736 +V_MYOD_Q6 7.66616e-06 + GCCACCTGCC
+chr8 119708727 119708737 +V_EBOX_Q6_01 6.43409e-06 + CCACCTGCCC
+chr8 119708727 119708741 +V_E2A_Q2 1.48735e-06 + CCACCTGCCCTCGC
+chr8 119708728 119708736 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr8 119708746 119708762 -V_LXR_DR4_Q3 6.24603e-06 - TGACCTCACCTCACCC
+chr8 119746416 119746427 -V_PITX2_Q2 1.22695e-06 - TTTAATCCCAG
+chr8 119746466 119746480 +V_DMRT7_01 1.54252e-06 + TTGATACAATGTTT
+chr8 119746466 119746481 +V_DMRT1_01 1.21515e-08 + TTGATACAATGTTTC
+chr8 119746508 119746526 -V_NF1_Q6 1.5869e-06 - AGTTGGCAGCCACCCAAA
+chr8 119746509 119746526 +V_NF1_Q6_01 5.38936e-06 + TTGGGTGGCTGCCAACT
+chr8 119794931 119794940 +V_AP2ALPHA_01 9.68294e-06 + GCCCGAGGC
+chr8 119794975 119794987 -V_GFI1B_01 1.21702e-06 - TAAATCACAGCT
+chr8 120390708 120390721 +V_AP2_Q6_01 7.81175e-06 + CCTCCCTCAGGCT
+chr8 122115500 122115514 -V_ERR1_Q2 1.4372e-06 - TGATAAAGGTCATT
+chr8 122560226 122560234 -V_CACD_01 9.89755e-06 - CCACACCC
+chr8 122560270 122560286 +V_AP2_Q3 7.15703e-07 + GGCCCCAGGCAGGGGA
+chr8 122560280 122560294 +V_NFKB_Q6 2.84227e-06 + AGGGGAATTACCCG
+chr8 122560308 122560320 +V_VDR_Q6 7.92178e-06 + CCCACTGAACCT
+chr8 123081177 123081192 +V_DMRT1_01 2.58784e-07 + TGGCAACATTGTAGC
+chr8 123081179 123081194 -V_DMRT1_01 6.49273e-06 - GAGCTACAATGTTGC
+chr8 123081238 123081251 -V_MAZR_01 3.32118e-06 - GGGGGAGGGGCAG
+chr8 123081239 123081252 -V_SP1_Q6 2.76363e-06 - GGGGGGAGGGGCA
+chr8 123081240 123081250 -V_SP1_Q6_01 2.74385e-06 - GGGGAGGGGC
+chr8 123081241 123081250 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr8 123081241 123081251 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr8 123081242 123081250 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr8 123081242 123081251 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr8 124628672 124628686 +V_ETS2_B 6.44463e-06 + TACAGGAAGTCACC
+chr8 124628674 124628685 +V_FLI1_Q6 1.42541e-06 + CAGGAAGTCAC
+chr8 124628692 124628707 -V_SPZ1_01 9.3792e-06 - AAGGGAGGGTATGCG
+chr8 124628713 124628732 -V_OCT1_01 2.27046e-06 - ATTTTTATGCTAATTTCGC
+chr8 124628717 124628729 -V_OCT1_07 6.53658e-07 - TTTATGCTAATT
+chr8 124628718 124628728 -V_POU3F2_02 3.63926e-06 - TTATGCTAAT
+chr8 124628718 124628733 -V_OCT4_01 3.26181e-06 - TATTTTTATGCTAAT
+chr8 124752874 124752886 -V_LRH1_Q5 8.26289e-06 - CTGGCCTTGGGC
+chr8 124752928 124752943 -V_OCT4_01 3.04012e-06 - CTTTATCATGCAAAG
+chr8 124752942 124752955 -V_IK3_01 1.08541e-07 - TCCTGGGAACACC
+chr8 124752952 124752964 +V_ICSBP_Q6 9.64187e-06 + GGAGTGAAACTG
+chr8 124752992 124753001 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr8 125103009 125103021 -V_NANOG_01 8.2798e-06 - GGGCCCATTAGC
+chr8 125103073 125103089 -V_AP2_Q3 3.44455e-06 - ACCCCCAGGCTGTGAA
+chr8 125103078 125103091 -V_AP2_Q6_01 9.55245e-06 - GCACCCCCAGGCT
+chr8 126241531 126241544 -V_AP1_01 3.63092e-06 - CAGTGAGTCACCA
+chr8 126241532 126241543 +V_AP1FJ_Q2 3.49199e-06 + GGTGACTCACT
+chr8 126241532 126241543 +V_AP1_Q6 1.40518e-06 + GGTGACTCACT
+chr8 126241532 126241543 +V_AP1_Q4 1.41718e-06 + GGTGACTCACT
+chr8 126241555 126241574 -V_PPARA_02 9.41237e-06 - CAGGGTCACTGGGCTGTGT
+chr8 126281182 126281206 +V_BRACH_01 8.73774e-06 + CTCATCTCACCTGGCTGTAACTTT
+chr8 126281227 126281242 +V_DMRT1_01 5.16206e-06 + CTGCAACTTTGTATC
+chr8 126281249 126281279 +V_PAX4_04 4.01413e-06 + GGACATTGTCTCCTCCCCCCACCCCCCACC
+chr8 126379428 126379440 +V_SRY_02 5.02837e-06 + GAAAACAATAAA
+chr8 126487729 126487742 -V_OCT_C 6.71556e-06 - AACATTTGCATGC
+chr8 126487756 126487771 -V_DMRT1_01 4.79884e-08 - TTGATACATTGTTGT
+chr8 126487757 126487771 -V_DMRT7_01 1.65289e-07 - TTGATACATTGTTG
+chr8 126487759 126487774 -V_DMRT3_01 1.87777e-06 - ACATTGATACATTGT
+chr8 126487759 126487775 -V_DMRT2_01 3.03478e-06 - AACATTGATACATTGT
+chr8 126487761 126487774 +V_DMRT4_01 1.13767e-06 + AATGTATCAATGT
+chr8 126487781 126487796 -V_DMRT1_01 9.21473e-06 - TAGTTACACTGTTGC
+chr8 126487873 126487889 +V_MEF2_01 1.69805e-07 + TTCTAAAAAGAACTCT
+chr8 126842707 126842725 +V_NF1_Q6 5.86126e-06 + GCTTGGCTAGCACTCCGG
+chr8 126842760 126842775 +V_DMRT1_01 4.26013e-07 + TGGAAACATTGTATC
+chr8 126842762 126842777 -V_DMRT1_01 1.21515e-08 - TTGATACAATGTTTC
+chr8 126842763 126842777 -V_DMRT7_01 1.54252e-06 - TTGATACAATGTTT
+chr8 126842765 126842780 -V_DMRT3_01 5.0655e-07 - CAATTGATACAATGT
+chr8 126842765 126842781 -V_DMRT2_01 2.33602e-06 - GCAATTGATACAATGT
+chr8 126842786 126842797 +V_ALPHACP1_01 4.48665e-06 + CAGCCACTGAG
+chr8 126970313 126970328 +V_DMRT1_01 1.79174e-06 + TGGATACAATGTAAC
+chr8 126970315 126970330 -V_DMRT1_01 2.12704e-06 - CAGTTACATTGTATC
+chr8 126970645 126970660 -V_DMRT1_01 8.79038e-06 - TAGTTACTATGTTTC
+chr8 126970693 126970708 -V_DMRT1_01 3.71498e-06 - TGGTTACTATGTTTC
+chr8 126970732 126970755 +V_COUPTF_Q6 6.88321e-07 + CCCGCTGACCTCTGACCTTGTGC
+chr8 126970733 126970754 -V_PPARG_01 1.04142e-06 - CACAAGGTCAGAGGTCAGCGG
+chr8 126970736 126970750 -V_HNF4_Q6_01 1.6524e-06 - AGGTCAGAGGTCAG
+chr8 126970737 126970750 +V_PPAR_DR1_Q2 3.27463e-07 + TGACCTCTGACCT
+chr8 126970737 126970750 +V_HNF4_DR1_Q3 2.08574e-06 + TGACCTCTGACCT
+chr8 126970737 126970750 +V_COUP_DR1_Q6 4.91833e-07 + TGACCTCTGACCT
+chr8 126970737 126970750 -V_RXRLXRB_01 1.66123e-07 - AGGTCAGAGGTCA
+chr8 126970737 126970750 -V_DR1_Q3 4.22832e-07 - AGGTCAGAGGTCA
+chr8 126970737 126970751 +V_COUP_01 5.96038e-07 + TGACCTCTGACCTT
+chr8 126970737 126970754 -V_PPARG_03 1.11777e-06 - CACAAGGTCAGAGGTCA
+chr8 126970737 126970757 -V_PPARA_01 3.03617e-07 - CTGCACAAGGTCAGAGGTCA
+chr8 126970742 126970756 -V_ERR1_Q2 3.64695e-06 - TGCACAAGGTCAGA
+chr8 127231564 127231580 -V_NFY_01 7.41568e-06 - GCCAGCCAATGAGACA
+chr8 127231567 127231578 -V_ALPHACP1_01 2.04834e-07 - CAGCCAATGAG
+chr8 127231689 127231707 -V_HNF3_Q6_01 6.08391e-06 - GACACTGTTTGCATAGGT
+chr8 127231691 127231704 +V_HNF3_Q6 4.65532e-06 + CTATGCAAACAGT
+chr8 127281009 127281022 +V_AP1_01 9.37963e-07 + GCGTGACTCAGCA
+chr8 127281010 127281021 +V_AP1_Q6 5.6407e-06 + CGTGACTCAGC
+chr8 127281010 127281023 -V_NRF2_Q4 4.03856e-07 - TTGCTGAGTCACG
+chr8 127281011 127281022 -V_NFE2_01 2.04834e-07 - TGCTGAGTCAC
+chr8 127281011 127281022 -V_MAF_Q6_01 4.72643e-06 - TGCTGAGTCAC
+chr8 128040000 128040016 +V_S8_01 2.37644e-06 + AAAAGCCAATTAGCTT
+chr8 128189763 128189777 +V_ETS2_B 6.44463e-06 + TGCAGGAAGTGGGA
+chr8 128189764 128189776 +V_GABP_B 8.25185e-06 + GCAGGAAGTGGG
+chr8 128189764 128189779 +V_ETS1_B 2.97813e-06 + GCAGGAAGTGGGATG
+chr8 128189765 128189777 -V_ETS_Q4 1.1218e-06 - TCCCACTTCCTG
+chr8 128189767 128189777 -V_NKX25_Q5 8.11064e-06 - TCCCACTTCC
+chr8 128223546 128223560 -V_CEBP_Q2 4.29984e-06 - ATATTGCTTAAGGA
+chr8 128223583 128223594 -V_AP1FJ_Q2 4.57673e-06 - GGTGACTAAGA
+chr8 128223583 128223594 -V_AP1_Q2 2.65242e-06 - GGTGACTAAGA
+chr8 128223583 128223594 -V_AP1_Q4 2.788e-06 - GGTGACTAAGA
+chr8 128223594 128223611 +V_PU1_01 8.10558e-06 + AGAAGGGGGAACTGAAA
+chr8 128223595 128223614 -V_PU1_Q4 4.80518e-06 - ATGTTTCAGTTCCCCCTTC
+chr8 12842.4.5 128426493 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGG
+chr8 128426617 128426626 +V_AP2ALPHA_01 6.01835e-06 + GCCCCGGGG
+chr8 128426617 128426626 +V_AP2GAMMA_01 4.51376e-06 + GCCCCGGGG
+chr8 128882039 128882054 -V_OCT4_02 7.53505e-07 - TTTGTTTTGCTAATG
+chr8 128882040 128882055 -V_OCT4_01 4.91956e-06 - CTTTGTTTTGCTAAT
+chr8 128882065 128882080 -V_SREBP_Q6 5.20933e-06 - CCAGCCACCCCAGTC
+chr8 129002837 129002852 +V_DMRT1_01 1.87081e-07 + CTGCAACAATGTTTC
+chr8 129002839 129002854 -V_DMRT1_01 1.95997e-06 - GTGAAACATTGTTGC
+chr8 129002874 129002889 +V_DMRT1_01 8.47921e-07 + CTGCAACAATGTTTT
+chr8 129002904 129002914 -V_GATA6_01 2.4539e-06 - AAAGATAAGC
+chr8 129002912 129002926 +V_DMRT7_01 3.5461e-06 + TTGCAACAATGTTT
+chr8 129002912 129002927 +V_DMRT1_01 4.26013e-07 + TTGCAACAATGTTTT
+chr8 129050915 129050943 +V_PAX5_01 1.48702e-06 + TGCATGGGCAGTGGAGAGGAAAGGCCCC
+chr8 129050999 129051011 -V_GLI_Q2 6.68438e-06 - CCTGGGTGGTGT
+chr8 129051034 129051043 +V_FOXO1_Q5 7.27852e-06 + AAAAACAAA
+chr8 129051047 129051055 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr8 129063347 129063360 -V_CHOP_01 1.61268e-06 - GGATGCAATCACC
+chr8 129063376 129063389 -V_MAZR_01 9.79421e-06 - GGGGGTGGGGAGC
+chr8 129063379 129063389 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr8 129063380 129063389 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr8 129063380 129063391 -V_EGR_Q6 8.04446e-06 - GTGGGGGTGGG
+chr8 129063380 129063394 +V_KROX_Q6 2.21131e-07 + CCCACCCCCACCCC
+chr8 129063382 129063394 +V_PAX4_03 2.40392e-07 + CACCCCCACCCC
+chr8 129063384 129063395 +V_SP1SP3_Q4 8.91927e-06 + CCCCCACCCCC
+chr8 129063385 129063395 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr8 129063386 129063395 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr8 129063417 129063430 +V_NRF2_Q4 8.50037e-06 + CTGCTGACTCATG
+chr8 129063418 129063429 +V_NFE2_01 1.48643e-06 + TGCTGACTCAT
+chr8 129063418 129063431 -V_AP1_01 8.40995e-08 - GCATGAGTCAGCA
+chr8 129063419 129063430 -V_BACH2_01 3.70252e-06 - CATGAGTCAGC
+chr8 129063420 129063429 -V_AP1_C 4.03003e-06 - ATGAGTCAG
+chr8 129283777 129283799 +V_MEF2_02 3.80628e-06 + TCCCAAACTAAAAATAGTGAAG
+chr8 129443305 129443316 +V_AP1_Q4 9.46297e-06 + GGTGACTAATT
+chr8 129443307 129443323 -V_S8_01 1.41429e-06 - ATTAACCAATTAGTCA
+chr8 129443333 129443344 +V_LEF1TCF1_Q4 5.90916e-06 + CCTTTGAAGCT
+chr8 129443398 129443409 -V_AP1FJ_Q2 2.02766e-06 - GCTGACTCAGA
+chr8 129443398 129443409 -V_AP1_Q2 8.19335e-07 - GCTGACTCAGA
+chr8 129443398 129443409 -V_AP1_Q6 4.26015e-06 - GCTGACTCAGA
+chr8 129443398 129443409 -V_AP1_Q4 7.9984e-06 - GCTGACTCAGA
+chr8 129443417 129443427 -V_IK_Q5 7.92622e-06 - GGTGGGAGGC
+chr8 129443437 129443452 +V_SMAD4_Q6 1.35824e-06 + CTGAGCCAGCCAGCC
+chr8 129504134 129504142 +V_CACD_01 9.89755e-06 + CCACACCC
+chr9 3215388 3215402 +V_KROX_Q6 6.2846e-06 + CTCTCCCCCTCCCC
+chr9 3215389 3215404 -V_VDR_Q3 1.31117e-06 - GGGGGGAGGGGGAGA
+chr9 3215391 3215404 -V_SP1_Q6 8.76141e-06 - GGGGGGAGGGGGA
+chr9 3215392 3215402 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr9 3215392 3215403 +V_SP1SP3_Q4 2.8432e-06 + CCCCCTCCCCC
+chr9 3215393 3215402 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr9 3215393 3215403 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr9 3215394 3215402 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr9 3215394 3215403 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr9 3215394 3215408 +V_KROX_Q6 1.5817e-06 + CCCTCCCCCCCCCC
+chr9 3215395 3215408 -V_MAZR_01 1.93317e-06 - GGGGGGGGGGAGG
+chr9 3215398 3215407 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr9 3215398 3215409 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr9 3215399 3215408 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr9 3215399 3215410 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr9 3215400 3215409 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr9 3215400 3215411 +V_SP1SP3_Q4 3.39206e-07 + CCCCCCCCCCC
+chr9 3215401 3215410 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr9 3215401 3215412 +V_SP1SP3_Q4 6.44809e-06 + CCCCCCCCCCG
+chr9 3215402 3215411 +V_WT1_Q6 3.00918e-06 + CCCCCCCCC
+chr9 3216082 3216091 -V_AP1_Q6_01 4.03003e-06 - ATGACTCAG
+chr9 3216206 3216222 -V_MEF2_01 5.58815e-06 - CTCTAAAAAGGACCTT
+chr9 3521215 3521226 +V_LEF1TCF1_Q4 9.40057e-06 + CCTTTGATGTG
+chr9 7686349 7686359 +V_TBX5_Q5 8.44574e-06 + CTCACACCTC
+chr9 7686372 7686385 +V_HSF_Q6 9.40862e-06 + TTCAAGGAGCTTC
+chr9 8733664 8733675 -V_RORA_Q4 6.07427e-06 - TTACTGGGTCA
+chr9 8733692 8733703 -V_LEF1TCF1_Q4 4.49892e-06 - ACTTTGATGTT
+chr9 8733694 8733704 +V_LEF1_Q2_01 4.03003e-06 + CATCAAAGTG
+chr9 8733737 8733752 -V_OCT4_01 5.63049e-06 - TTTAGAGATGCAAAT
+chr9 12058664 12058673 -V_HNF4_Q6 7.33929e-06 - AAGGTCCAG
+chr9 12058716 12058727 +V_EBF_Q6 4.4234e-06 + GTCCCTAGGGG
+chr9 12058724 12058734 -V_P53_DECAMER_Q2 6.1263e-07 - AGGCAAGCCC
+chr9 12887401 12887415 -V_ERR1_Q2 2.97688e-06 - AGATAAAGGTCACC
+chr9 12887422 12887433 -V_EBF_Q6 2.83527e-06 - GTCCCTAGAGA
+chr9 12887427 12887439 +V_NFKB_C 4.56464e-06 + AGGGACATTCCA
+chr9 15882258 15882276 -V_MYOD_Q6_01 5.1029e-06 - GTGAGGCAGCTGCTGAGG
+chr9 15882270 15882288 -V_MYOD_Q6_01 5.42852e-06 - TCAGGCCAGGTGGTGAGG
+chr9 15882273 15882285 -V_LMO2COM_01 2.70597e-06 - GGCCAGGTGGTG
+chr9 15882275 15882285 +V_EBOX_Q6_01 6.43409e-06 + CCACCTGGCC
+chr9 15882413 15882427 +V_ERR1_Q2 2.97688e-06 + AGATAAAGGTCACC
+chr9 15882418 15882429 +V_ER_Q6_02 8.40206e-06 + AAGGTCACCCT
+chr9 18538802 18538813 +V_NFE2_01 1.48643e-06 + AGCTGAGTCAC
+chr9 18538802 18538815 -V_AP1_01 7.96108e-06 - GTGTGACTCAGCT
+chr9 18538886 18538899 -V_P50P50_Q3 6.38701e-06 - AGGGGAATTCCAT
+chr9 18538888 18538898 -V_CREL_01 5.43478e-06 - GGGGAATTCC
+chr9 20258324 20258345 +V_PPARG_01 5.82642e-06 + CAGGAGGGCAAAGGACAAGGA
+chr9 20258328 20258341 +V_RXRLXRB_01 7.77466e-06 + AGGGCAAAGGACA
+chr9 20258328 20258341 +V_DR1_Q3 1.54097e-06 + AGGGCAAAGGACA
+chr9 20258328 20258341 -V_PPAR_DR1_Q2 2.21229e-06 - TGTCCTTTGCCCT
+chr9 20258328 20258341 -V_HNF4_DR1_Q3 2.40262e-06 - TGTCCTTTGCCCT
+chr9 20258328 20258342 +V_HNF4_Q6_01 3.36869e-06 + AGGGCAAAGGACAA
+chr9 20258354 20258370 -V_ARNT_01 7.24792e-06 - GAAGTCACGTGTGTGC
+chr9 21154725 21154736 -V_PITX2_Q2 5.53227e-07 - TGTAATCCCAG
+chr9 21154735 21154750 -V_SMAD4_Q6 4.06719e-06 - GTGAGGCGGCCTCCT
+chr9 21154767 21154779 -V_VDR_Q6 3.87245e-06 - CTCTCTGAACCC
+chr9 22850086 22850097 -V_LEF1TCF1_Q4 5.53227e-07 - CCTTTGATGTC
+chr9 22850088 22850098 +V_LEF1_Q2_01 5.84716e-06 + CATCAAAGGC
+chr9 22850099 22850113 -V_KROX_Q6 9.17068e-06 - CCCACCCCCTCTGC
+chr9 22850104 22850113 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr9 22850104 22850114 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr9 22850109 22850122 +V_MAZR_01 9.79421e-06 + TGGGGAGGGGAAG
+chr9 22850110 22850118 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr9 22850110 22850119 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr9 22850139 22850153 +V_BLIMP1_Q6 4.97194e-06 + AGAGAGAGAAAGGA
+chr9 23342736 23342747 -V_ER_Q6_02 9.79111e-07 - CAGGTCAGGGT
+chr9 23965008 23965022 +V_KROX_Q6 4.24911e-06 + TCCTCCCCCTCCCC
+chr9 23965012 23965022 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr9 23965012 23965023 +V_SP1SP3_Q4 2.8432e-06 + CCCCCTCCCCC
+chr9 23965013 23965022 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr9 23965013 23965023 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr9 23965014 23965022 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr9 23965014 23965023 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr9 23965042 23965054 -V_OCT1_07 1.65282e-06 - TATATGTTAATT
+chr9 23965043 23965053 -V_POU3F2_02 5.63759e-06 - ATATGTTAAT
+chr9 23965061 23965074 -V_SOX_Q6 1.74599e-06 - CTCTTTGTTCCCA
+chr9 23965123 23965141 +V_HNF3_Q6_01 9.93411e-06 + TTCAGTGTTTGCCGTGGC
+chr9 24761178 24761190 -V_MEIS1_01 2.10527e-06 - TAGTGACAGGAC
+chr9 24761209 24761219 -V_LEF1_Q2_01 5.84716e-06 - CATCAAAGGC
+chr9 24761231 24761248 -V_FOXP3_Q4 4.05736e-06 - GAAGTGTTGAGACAGGG
+chr9 27361057 27361072 -V_AML_Q6 8.96093e-06 - CAGGCTGTGGTTTTT
+chr9 27361111 27361129 -V_MYOD_Q6_01 2.89007e-06 - TCAGGCCAGGTGGTGGAG
+chr9 27361114 27361126 -V_LMO2COM_01 2.70597e-06 - GGCCAGGTGGTG
+chr9 27361116 27361126 +V_EBOX_Q6_01 6.43409e-06 + CCACCTGGCC
+chr9 27371932 27371942 +V_SP1_Q2_01 9.56538e-06 + CCCCTCCCAC
+chr9 27371933 27371943 -V_IK_Q5 4.33614e-06 - GGTGGGAGGG
+chr9 27371952 27371970 +V_GCNF_01 3.82484e-06 + GGCTAGGTCAAGTTCCAT
+chr9 27634741 27634751 +V_KAISO_01 1.65463e-06 + CTCCTGCTAG
+chr9 27634811 27634821 +V_SP1_Q6_01 7.15614e-06 + AGGGCGGGGG
+chr9 27634811 27634825 -V_KROX_Q6 9.17068e-06 - CGAGCCCCCGCCCT
+chr9 29730427 29730446 +V_ER_Q6 8.2639e-06 + AGAGGTCTGCCTGACCTTC
+chr9 29730443 29730457 +V_ERR1_Q2 1.63433e-06 + TTCTCAAGGTCACT
+chr9 29730446 29730455 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGA
+chr9 29730462 29730474 -V_LRH1_Q5 9.2187e-06 - GGGGCCTTGCAG
+chr9 29848157 29848167 +V_LEF1_Q2_01 5.84716e-06 + GATCAAAGGC
+chr9 29848165 29848182 -V_NF1_Q6_01 2.18952e-06 - TGGGACAAGTGCCAAGC
+chr9 29848165 29848183 +V_NF1_Q6 9.30221e-06 + GCTTGGCACTTGTCCCAG
+chr9 30775863 30775876 -V_NRF2_Q4 6.45994e-06 - CTGAAGAGTCATC
+chr9 30775900 30775910 -V_NUR77_Q5 8.43564e-06 - TTGACCTTCC
+chr9 30775916 30775934 -V_HNF3_Q6_01 8.19906e-06 - TGCTGTGTTGGCTTTGTT
+chr9 31070020 31070035 -V_HES1_Q2 4.66378e-06 - GGCCCTGGTGGCTAG
+chr9 31070033 31070051 -V_SRF_Q4 1.21815e-07 - GCCAAATAAGGAACTAGG
+chr9 31070035 31070050 -V_SRF_Q5_01 4.97726e-07 - CCAAATAAGGAACTA
+chr9 31070035 31070054 +V_SRF_Q5_02 7.92314e-08 + TAGTTCCTTATTTGGCCAT
+chr9 31070036 31070054 -V_SRF_01 1.23577e-06 - ATGGCCAAATAAGGAACT
+chr9 31070038 31070052 -V_SRF_Q6 2.32445e-07 - GGCCAAATAAGGAA
+chr9 31070039 31070054 +V_SRF_C 6.98151e-07 + TCCTTATTTGGCCAT
+chr9 31070052 31070064 -V_ELF1_Q6 6.25224e-06 - GGAGGAGGAAAT
+chr9 31070076 31070085 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr9 31070076 31070086 -V_NUR77_Q5 8.43564e-06 - TTGACCTTGG
+chr9 31070120 31070131 -V_ALPHACP1_01 7.72372e-06 - CAGCCAAAGAG
+chr9 31495473 31495486 -V_AP2_Q6_01 8.86342e-06 - CCAGCCCCAGGCT
+chr9 31495553 31495571 +V_NF1_Q6 5.19255e-06 + CCTTGGCAGAGGCCCTGC
+chr9 31903332 31903343 +V_ELF5_01 6.5946e-06 + ATCAGGAAGTT
+chr9 31903334 31903346 -V_ETS_Q4 4.90737e-06 - AACAACTTCCTG
+chr9 31903343 31903358 +V_OCT4_01 5.24325e-06 + GTTTGTCATGCAGAT
+chr9 31903344 31903359 +V_OCT4_02 1.18248e-06 + TTTGTCATGCAGATT
+chr9 32222679 32222691 +V_GLI_Q2 1.77433e-06 + TCTGGGTGGTGC
+chr9 32222740 32222758 +V_CART1_01 3.51458e-06 + TGCTAATTTGCATTACTA
+chr9 32222742 32222755 +V_OCT_C 9.93499e-06 + CTAATTTGCATTA
+chr9 32222742 32222756 +V_OCT1_05 5.90695e-06 + CTAATTTGCATTAC
+chr9 32222742 32222757 -V_OCT1_Q6 3.59681e-06 - AGTAATGCAAATTAG
+chr9 32222743 32222754 +V_OCT1_Q5_01 2.46139e-06 + TAATTTGCATT
+chr9 32222743 32222754 +V_OCT_Q6 3.88942e-06 + TAATTTGCATT
+chr9 32222745 32222760 -V_OCT4_01 3.90219e-07 - CATAGTAATGCAAAT
+chr9 32222750 32222764 +V_EFC_Q6 3.44057e-06 + CATTACTATGGAAA
+chr9 32528842 32528853 -V_MYB_Q3 3.40516e-06 - AGGGGCAGTTA
+chr9 32528847 32528863 +V_AP2_Q3 4.72602e-06 + GCCCCTGGGCTGGAAC
+chr9 32528851 32528865 +V_PAX6_Q2 2.24219e-07 + CTGGGCTGGAACTC
+chr9 32740856 32740868 +V_PAX4_03 9.67001e-06 + CAGCCCCACCCT
+chr9 32740877 32740899 +V_MEF2_03 3.49417e-06 + CTTTGTTCTAAAGATAGCCCTT
+chr9 32740882 32740898 +V_MEF2_01 4.04902e-06 + TTCTAAAGATAGCCCT
+chr9 32740961 32740975 +V_CEBPB_01 6.18472e-06 + GGATTGGGAAAGGG
+chr9 36872844 36872852 -V_CACD_01 9.89755e-06 - CCACACCC
+chr9 40047456 40047470 -V_HNF4_Q6_01 3.36869e-06 - TGGCCAGAGGTCAA
+chr9 40047457 40047470 +V_PPAR_DR1_Q2 1.70612e-06 + TGACCTCTGGCCA
+chr9 40047457 40047470 +V_HNF4_DR1_Q3 5.33101e-06 + TGACCTCTGGCCA
+chr9 40047457 40047470 +V_COUP_DR1_Q6 2.1801e-06 + TGACCTCTGGCCA
+chr9 40047457 40047470 -V_DR1_Q3 2.76991e-06 - TGGCCAGAGGTCA
+chr9 40047457 40047471 +V_COUP_01 3.35061e-06 + TGACCTCTGGCCAG
+chr9 40047457 40047474 -V_PPARG_03 8.20535e-06 - GTCCTGGCCAGAGGTCA
+chr9 40047467 40047486 -V_NRSF_Q4 8.64281e-06 - GCTCTCTTCCTTGTCCTGG
+chr9 40047543 40047558 -V_OCT4_01 3.26181e-06 - AATTCAAATGTAAAT
+chr9 40047558 40047568 +V_OCT1_B 8.43065e-06 + AATGCAAATC
+chr9 40048008 40048022 -V_KROX_Q6 7.56123e-06 - CCCTCCCCCTCCTC
+chr9 40048013 40048022 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chr9 40048013 40048023 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chr9 40048013 40048026 +V_MAZR_01 2.98074e-06 + GGGGGAGGGGAAA
+chr9 40048014 40048022 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr9 40048014 40048023 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chr9 40048015 40048029 +V_BLIMP1_Q6 5.2171e-06 + GGGAGGGGAAAGGG
+chr9 40048071 40048083 +V_PXR_Q2 5.07494e-06 + AGGGTCAGGAAA
+chr9 40048106 40048116 -V_SP1_Q2_01 2.74385e-06 - CCCCGCCCTC
+chr9 40048144 40048159 -V_STAT5B_01 9.39014e-07 - GCTTTCCTGGAATTT
+chr9 41827227 41827239 -V_PAX4_03 5.05761e-06 - AACCTCCACCCT
+chr9 41827257 41827273 +V_DMRT2_01 2.89866e-06 + CAAATGGCAACATTGT
+chr9 41827261 41827275 +V_DMRT7_01 2.82482e-06 + TGGCAACATTGTTG
+chr9 41827261 41827276 +V_DMRT1_01 8.36868e-08 + TGGCAACATTGTTGC
+chr9 41827263 41827278 -V_DMRT1_01 4.45823e-07 - TAGCAACAATGTTGC
+chr9 42686648 42686660 +V_CEBP_Q3 2.82879e-06 + CAGTTTGGCAAA
+chr9 42999900 42999911 -V_ELF5_01 8.57585e-06 - ACCAGGAAGTA
+chr9 42999908 42999921 +V_CHOP_01 1.20053e-06 + GGTTGCAATCCCC
+chr9 43253000 43253011 -V_SMAD_Q6_01 1.1191e-06 - TGGCCAGACAC
+chr9 43537841 43537855 +V_HNF4_Q6_01 7.92317e-06 + GGGGCAGGGTCCAA
+chr9 43666303 43666317 +V_ETS2_B 9.24814e-06 + AACAGGAAATCTCT
+chr9 43666342 43666357 +V_VDR_Q3 1.74075e-06 + GGGGCAGGGAGGTGG
+chr9 43666940 43666958 -V_RFX1_02 5.5622e-06 - GAGGAGCTCTGGTAACAC
+chr9 43667030 43667042 -V_EGR2_01 8.36299e-06 - GGGCGTGGGAGT
+chr9 43667035 43667048 +V_AP2_Q6_01 2.39401e-06 + CACGCCCCAGGCT
+chr9 43667037 43667053 +V_AP2_Q3 1.41644e-06 + CGCCCCAGGCTGCAGC
+chr9 43667046 43667058 -V_LMO2COM_01 2.05922e-06 - CCCCAGCTGCAG
+chr9 43801901 43801914 -V_IK1_01 3.06456e-06 - TATCGGGAATACC
+chr9 43801901 43801914 -V_IK3_01 7.2564e-07 - TATCGGGAATACC
+chr9 43801977 43801992 -V_VDR_Q3 1.06886e-06 - GGGGCAAAGAGGAGA
+chr9 44403554 44403569 -V_OCT4_02 3.74554e-06 - TTTCACTTGCTAATA
+chr9 46700013 46700027 +V_OCT1_05 3.18061e-06 + GGGATTTGCATTTT
+chr9 46700013 46700028 -V_OCT1_Q6 6.7472e-06 - TAAAATGCAAATCCC
+chr9 46700014 46700025 +V_OCT1_Q5_01 7.81079e-06 + GGATTTGCATT
+chr9 46700015 46700025 -V_OCT1_B 8.43065e-06 - AATGCAAATC
+chr9 46700016 46700031 -V_OCT4_01 8.06422e-07 - CATTAAAATGCAAAT
+chr9 46700100 46700113 +V_SP1_Q6 2.31776e-06 + AGGGGGTGGGGCT
+chr9 46700101 46700110 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr9 46700101 46700111 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr9 46700101 46700114 +V_MAZR_01 3.32118e-06 + GGGGGTGGGGCTA
+chr9 46700102 46700112 +V_SP1_Q6_01 4.32232e-06 + GGGGTGGGGC
+chr9 46700102 46700114 -V_PAX4_03 5.65167e-06 - TAGCCCCACCCC
+chr9 46700119 46700129 -V_NUR77_Q5 2.98426e-06 - CTGACCTTGC
+chr9 47322521 47322533 +V_IK2_01 1.22274e-06 + GTTTGGGAAACC
+chr9 47322552 47322567 -V_OCT4_01 9.65557e-06 - CCTTGTGATGCAAAT
+chr9 47322579 47322594 +V_OCT4_01 4.28625e-06 + TTTACAAATGCAAAT
+chr9 47322580 47322599 +V_OCT1_01 6.72058e-06 + TTACAAATGCAAATTCCAG
+chr9 47322582 47322597 +V_OCT1_Q6 6.28245e-06 + ACAAATGCAAATTCC
+chr9 47322583 47322597 -V_OCT1_05 8.83657e-06 - GGAATTTGCATTTG
+chr9 47322600 47322610 -V_SP1_Q6_01 3.49614e-06 - GGGGCGGAGC
+chr9 47670033 47670048 +V_AML_Q6 3.60538e-06 + CAGCCTGTGGTGACC
+chr9 47670033 47670048 -V_PEBP_Q6 3.67856e-06 - GGTCACCACAGGCTG
+chr9 48586435 48586447 +V_IPF1_Q4 9.05091e-07 + GCTCTAATGACC
+chr9 48647790 48647800 +V_CREL_01 7.83548e-06 + TGGGCTTTCC
+chr9 48647832 48647856 +V_COMP1_01 9.80402e-07 + AGTTTTGAATGACAGTAAAACATC
+chr9 48647863 48647875 +V_TTF1_Q6 1.51693e-06 + CACTCAAGAGCT
+chr9 48647884 48647899 -V_OCT4_02 4.9622e-06 - ATTCACATGCAAGTA
+chr9 48647885 48647900 -V_OCT4_01 4.01204e-06 - CATTCACATGCAAGT
+chr9 48698349 48698363 -V_E2A_Q2 7.51334e-06 - CCACCTGTCTCTCC
+chr9 48698350 48698368 +V_MYOD_Q6_01 1.26853e-06 + GAGAGACAGGTGGAGAAC
+chr9 48698354 48698364 -V_MYOD_Q6 4.20952e-06 - TCCACCTGTC
+chr9 48799901 48799914 -V_SP1_Q6 5.21945e-06 - TGGGGGCGGGGAC
+chr9 48799902 48799912 -V_SP1_Q6_01 2.74385e-06 - GGGGCGGGGA
+chr9 48799903 48799912 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr9 48799903 48799913 +V_SP1_Q2_01 3.39206e-07 + CCCCGCCCCC
+chr9 48799904 48799915 -V_EGR_Q6 7.81764e-06 - CTGGGGGCGGG
+chr9 49914836 49914846 +V_POU3F2_02 7.27852e-06 + ATATGCTAAT
+chr9 49914836 49914849 -V_OCT_C 3.87618e-06 - TTCATTAGCATAT
+chr9 49914868 49914883 -V_SPZ1_01 2.6946e-06 - GGAGGGGGGTGTGTG
+chr9 50392985 50392997 -V_ETS_Q4 7.06097e-06 - AGCTACTTCCTC
+chr9 50393035 50393048 +V_AP2_Q6_01 8.86342e-06 + CTCGCCTCAGGCC
+chr9 50393044 50393054 -V_EBOX_Q6_01 6.43409e-06 - CCACCTGGCC
+chr9 50393048 50393061 +V_MAZR_01 9.36507e-06 + AGGTGGGGGGTCA
+chr9 50393051 50393060 +V_ZIC1_01 9.41154e-06 + TGGGGGGTC
+chr9 50393051 50393060 +V_ZIC3_01 7.18016e-06 + TGGGGGGTC
+chr9 50393074 50393084 -V_P53_DECAMER_Q2 2.10476e-06 - AGGCAAGTCC
+chr9 50393074 50393094 -V_P53_01 7.23896e-06 - GGGCAATTCCAGGCAAGTCC
+chr9 50841500 50841511 -V_AP1FJ_Q2 1.61799e-06 - AGTGACTCAGA
+chr9 50841500 50841511 -V_AP1_Q2 1.31823e-06 - AGTGACTCAGA
+chr9 50841500 50841511 -V_AP1_Q4 2.788e-06 - AGTGACTCAGA
+chr9 52086553 52086568 -V_OCT4_01 3.49929e-06 - TATTCTAATGTAAAG
+chr9 52086605 52086620 +V_OCT4_01 9.05006e-06 + TATTGTGATGGTAAT
+chr9 52086606 52086621 +V_OCT4_02 8.38472e-07 + ATTGTGATGGTAATG
+chr9 52086705 52086716 -V_HELIOSA_01 3.49757e-06 - TATAGGGATAG
+chr9 52557391 52557405 +V_USF_01 9.79746e-06 + GCACCACGTGATAG
+chr9 52557391 52557405 -V_USF_01 9.79746e-06 - CTATCACGTGGTGC
+chr9 52557392 52557404 +V_MYCMAX_02 8.16861e-06 + CACCACGTGATA
+chr9 52557415 52557426 -V_EBF_Q6 3.11689e-06 - GTCCCCTGGGG
+chr9 52557442 52557456 +V_NFY_C 2.25205e-06 + CCTGATTGGCAGCT
+chr9 56014835 56014851 +V_DMRT2_01 7.60933e-06 + CAGTTCGATACAATGT
+chr9 56014836 56014851 +V_DMRT3_01 2.81625e-06 + AGTTCGATACAATGT
+chr9 56014839 56014854 +V_DMRT1_01 1.22102e-06 + TCGATACAATGTTGC
+chr9 56014841 56014856 -V_DMRT1_01 1.58987e-07 - TTGCAACATTGTATC
+chr9 57651162 57651175 -V_GATA1_04 5.17426e-07 - ATCTGATAAGGGC
+chr9 57651194 57651213 -V_NRSF_Q4 9.44244e-06 - ACATTGTCCCTGGAGCTGC
+chr9 58303769 58303784 -V_OCT4_02 2.55124e-08 - ATTCTCATGCTAATG
+chr9 58303770 58303785 -V_OCT4_01 3.55466e-07 - CATTCTCATGCTAAT
+chr9 58369286 58369296 -V_MYOD_Q6 4.20952e-06 - TGCACCTGTC
+chr9 58369286 58369297 +V_E12_Q6 9.04659e-06 + GACAGGTGCAG
+chr9 58369341 58369356 +V_DMRT1_01 8.80703e-07 + CAGCAACAATGTTGC
+chr9 58369343 58369358 -V_DMRT1_01 3.08592e-07 - ATGCAACATTGTTGC
+chr9 58369344 58369358 -V_DMRT7_01 9.63794e-06 - ATGCAACATTGTTG
+chr9 58369370 58369378 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr9 59321151 59321166 -V_OCT4_01 3.74251e-06 - CTTTCATATGTAGAT
+chr9 60596169 60596187 +V_MYOD_Q6_01 1.80414e-06 + CCACCACAGGTGGTGCAG
+chr9 60596172 60596184 +V_MYOD_01 8.31028e-07 + CCACAGGTGGTG
+chr9 60596172 60596184 +V_LMO2COM_01 5.97756e-06 + CCACAGGTGGTG
+chr9 60596178 60596193 +V_SMAD4_Q6 7.63557e-06 + GTGGTGCAGTCTTCT
+chr9 60596206 60596221 +V_OCT4_01 1.40241e-06 + TATTGTAATGCTAAA
+chr9 60596207 60596222 +V_OCT4_02 6.55103e-06 + ATTGTAATGCTAAAT
+chr9 61070567 61070582 -V_OCT4_01 3.74251e-06 - CTTTCTTATGCACAT
+chr9 61070672 61070683 -V_SP1SP3_Q4 1.18826e-06 - CCGCCTCCTCC
+chr9 61070678 61070693 +V_SPZ1_01 1.96252e-06 + GGCGGAGGGAATTCC
+chr9 61070682 61070695 +V_P50P50_Q3 2.01374e-06 + GAGGGAATTCCAG
+chr9 61113247 61113265 +V_RFX1_02 4.29409e-06 + CCATCACAATGGCAACAA
+chr9 61113276 61113296 +V_PPARA_01 8.51836e-06 + TCTACCTAGGCCAAAGGTGA
+chr9 61113279 61113296 +V_PPARG_03 8.56995e-08 + ACCTAGGCCAAAGGTGA
+chr9 61113283 61113296 +V_RXRLXRB_01 7.77466e-06 + AGGCCAAAGGTGA
+chr9 61113283 61113296 +V_DR1_Q3 1.89346e-06 + AGGCCAAAGGTGA
+chr9 61113283 61113296 -V_PPAR_DR1_Q2 1.37101e-06 - TCACCTTTGGCCT
+chr9 61113283 61113296 -V_HNF4_DR1_Q3 3.4109e-06 - TCACCTTTGGCCT
+chr9 61113283 61113296 -V_COUP_DR1_Q6 9.5269e-06 - TCACCTTTGGCCT
+chr9 61113330 61113341 -V_TGIF_01 5.81052e-06 - ACCTGTCAGGA
+chr9 61113376 61113393 -V_HSF1_Q6 9.15188e-06 - CTTCTAGGTCATTCTTC
+chr9 61319129 61319144 -V_OCT4_01 1.40241e-06 - CTTTGTAATGCAGAG
+chr9 61319184 61319195 +V_MYB_Q3 8.33763e-06 + GCTGCCAGTTG
+chr9 61601641 61601669 +V_PAX5_01 8.6289e-06 + TTACAAAGCAAGGAGGCGGAGCGCCAGG
+chr9 61601651 61601664 +V_SP1_Q6 4.83523e-06 + AGGAGGCGGAGCG
+chr9 61601757 61601769 -V_AP2_Q6 9.71638e-07 - CACCCCCAGGCG
+chr9 61601777 61601796 -V_PU1_Q4 7.43608e-06 - TTCTCCTGCTTCCCCCTCT
+chr9 61749373 61749386 +V_AP2_Q6_01 1.88894e-06 + GTGCCCCCAGGCC
+chr9 61749375 61749391 +V_AP2_Q3 5.02857e-06 + GCCCCCAGGCCACAGT
+chr9 61800070 61800081 +V_EVI1_02 9.51473e-06 + CGACAAGATAG
+chr9 61800168 61800181 +V_ALX4_01 5.12378e-06 + CCAGAGAACAATC
+chr9 62.4.593 62041509 -V_AP2_Q3 7.62107e-06 - GCCCCAGGGCTAGAGC
+chr9 62327114 62327128 -V_KROX_Q6 7.21197e-06 - CCTGCCCCCACTTC
+chr9 62327117 62327128 +V_EGR_Q6 1.38101e-06 + GTGGGGGCAGG
+chr9 62327147 62327161 +V_BLIMP1_Q6 7.61005e-06 + AGAAATGGAAAGTG
+chr9 62327158 62327171 +V_AP2_Q6_01 4.54811e-06 + GTGCCCCCAGGCT
+chr9 62327160 62327176 +V_AP2_Q3 9.58219e-06 + GCCCCCAGGCTAGCCC
+chr9 62327179 62327191 +V_GLI_Q2 9.06878e-06 + CCTGGGTGTTCT
+chr9 62923221 62923238 +V_RFX1_01 1.5227e-06 + CCGGTGCCTAGCAACAA
+chr9 62923257 62923271 -V_HIF1_Q3 2.59862e-06 - GTGTACGTGCAGGC
+chr9 62923258 62923270 -V_HIF1_Q5 6.92258e-06 - TGTACGTGCAGG
+chr9 63864538 63864555 +V_NF1_Q6_01 9.5806e-06 + TCAGCCAGGAGCCAAGA
+chr9 63864575 63864590 -V_CP2_02 1.10092e-06 - GCTGGGTTGGGCAGG
+chr9 63864578 63864589 +V_CP2_01 6.65879e-07 + GCCCAACCCAG
+chr9 63864685 63864695 +V_NFKAPPAB65_01 7.1331e-06 + GGGGGTTTCC
+chr9 63864685 63864695 +V_CREL_01 3.33002e-06 + GGGGGTTTCC
+chr9 64209494 64209507 -V_GFI1_Q6 5.19482e-06 - CCAAATCAGAGGC
+chr9 64209505 64209518 +V_CHOP_01 8.68297e-07 + GGGTGCAACCCCC
+chr9 64209509 64209524 -V_VDR_Q3 3.98432e-06 - GGGGGAGGGGGTTGC
+chr9 64209512 64209525 -V_SP1_Q6 4.47623e-06 - CGGGGGAGGGGGT
+chr9 64209513 64209523 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chr9 64209513 64209524 +V_SP1SP3_Q4 2.8432e-06 + CCCCCTCCCCC
+chr9 64209514 64209523 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr9 64209514 64209524 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chr9 64209515 64209523 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr9 64209515 64209524 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chr9 64209644 64209653 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr9 66099037 66099047 -V_TITF1_Q3 1.10645e-06 - ACTCAAGTGT
+chr9 66119779 66119787 -V_CACD_01 9.89755e-06 - CCACACCC
+chr9 66955910 66955919 +V_YY1_Q6 6.61851e-06 + GCCATGTTG
+chr9 66955920 66955933 -V_MAZR_01 7.66218e-06 - AGGGGAGGGGAGA
+chr9 66955923 66955932 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chr9 66955923 66955933 +V_SP1_Q2_01 6.40385e-06 + CCCCTCCCCT
+chr9 66955924 66955932 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr9 66955995 66956007 +V_MEIS1_01 2.58112e-06 + CTCTGACAGGGC
+chr9 69935408 69935422 -V_E2A_Q2.4.58924e-06 - CCAGCTGTCTCCTC
+chr9 70108442 70108456 +V_ETS2_B 9.62665e-06 + AACAGGAAACCCCT
+chr9 70108443 70108453 -V_ESE1_Q3 3.12147e-06 - GGTTTCCTGT
+chr9 70122254 70122266 -V_LMO2COM_01 3.81592e-06 - CTCCAGGTGCTC
+chr9 70122280 70122299 -V_GR_Q6 7.48457e-06 - GCGGAACACTGTGTGCACA
+chr9 70122295 70122308 +V_AP2_Q6_01 1.25133e-07 + CCGCCCCCAGGCT
+chr9 70122296 70122308 +V_AP2_Q6 8.15619e-06 + CGCCCCCAGGCT
+chr9 70835228 70835243 -V_PEBP_Q6 7.64793e-06 - ATAGACCACAGAGGG
+chr9 70835244 70835255 -V_LEF1TCF1_Q4 9.40057e-06 - CCTTTGATGTG
+chr9 70835246 70835256 +V_LEF1_Q2_01 5.84716e-06 + CATCAAAGGC
+chr9 71075212 71075224 -V_MYOD_01 2.63895e-06 - AAACAGGTGTTG
+chr9 71075325 71075334 +V_CKROX_Q2 8.90515e-06 + TCCCTCCCC
+chr9 71075326 71075334 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chr9 71075489 71075503 +V_GATA1_02 3.9709e-06 + GTAGTGATAGTGGG
+chr9 71209351 71209366 -V_OCT4_01 3.04012e-06 - CTTTGAAATGTTAAT
+chr9 71685283 71685298 -V_HNF1_01 8.94735e-06 - GGTTATTGATCAAAA
+chr9 71685317 71685338 +V_PAX6_01 5.25696e-06 + GCCTTTCACGCTTTAATGAGG
+chr9 71685334 71685343 -V_T3R_Q6 8.74404e-06 - CCTGTCCTC
+chr9 71685338 71685358 -V_YY1_02 5.84771e-06 - CCAGGGCCATCCTGCCCTGT
+chr9 71685364 71685387 -V_COUPTF_Q6 3.42983e-07 - TGCCCTGCCCTCTGGCCTCCGTC
+chr9 71685369 71685382 -V_PPAR_DR1_Q2 4.03749e-06 - TGCCCTCTGGCCT
+chr9 71685369 71685383 +V_HNF4_Q6_01 6.93604e-06 + AGGCCAGAGGGCAG
+chr9 71685379 71685397 -V_MYOD_Q6_01 9.72371e-06 - TCGGGCCAGGTGCCCTGC
+chr9 71685382 71685394 -V_LMO2COM_01 7.876e-06 - GGCCAGGTGCCC
+chr9 71983757 71983766 -V_SMAD_Q6 9.3359e-06 - AGACACCAC
+chr9 72103184 72103201 -V_HSF1_Q6 3.46315e-06 - CTTCTAGAAACTTGGCA
+chr9 72103237 72103252 +V_HMGIY_Q3 4.90156e-06 + AGTGGAAATTTCTGG
+chr9 72505602 72505615 +V_NFY_Q6_01 1.39331e-06 + TCTTAACCAATCA
+chr9 72505603 72505617 -V_NFY_C 2.79094e-06 - TCTGATTGGTTAAG
+chr9 72505603 72505619 +V_NFY_01 3.29049e-07 + CTTAACCAATCAGAGG
+chr9 72505605 72505616 +V_NFY_Q6 6.07558e-07 + TAACCAATCAG
+chr9 72505649 72505663 +V_ETS2_B 4.36467e-07 + GACAGGAAATGCTT
+chr9 72505650 72505665 +V_ETS1_B 1.60879e-06 + ACAGGAAATGCTTGA
+chr9 72505707 72505722 -V_OCT4_02 8.50894e-06 - ATTCATATGCTGATT
+chr9 72505708 72505723 -V_OCT4_01 4.57831e-06 - TATTCATATGCTGAT
+chr9 75116342 75116353 -V_AP1_Q4 8.85541e-06 - AGTGACTGAGT
+chr9 75116347 75116363 -V_AP2_Q3 3.02252e-06 - GCCCTCAGGCAGTGAC
+chr9 75116417 75116426 -V_SMAD3_Q6 4.03003e-06 - TGTCTGTCT
+chr9 75311317 75311332 -V_OCT4_01 6.90794e-07 - ATTTGTTATGCAAAC
+chr9 77464758 77464772 -V_ATF3_Q6 5.7333e-06 - CCCTGACATCACTG
+chr9 77464833 77464848 +V_OCT4_02 9.71581e-06 + ATTGTGATGTTGATT
+chr9 77464868 77464880 +V_ATF4_Q2 6.80291e-06 + CCTGACTTAAGG
+chr9 82955106 82955115 +V_FOXM1_01 8.06007e-06 + AGATGGACT
+chr9 82955115 82955132 -V_FOXP3_Q4 8.24931e-06 - GGAATGCTATCTCAGAC
+chr9 82955135 82955148 -V_SP1_Q6 1.79654e-07 - CAGGGGCGGGGCC
+chr9 82955136 82955146 -V_SP1_Q6_01 3.39206e-07 - GGGGCGGGGC
+chr9 82955137 82955146 +V_CKROX_Q2 6.67377e-06 + CCCCGCCCC
+chr9 82955137 82955147 +V_SP1_Q2_01 1.0915e-06 + CCCCGCCCCT
+chr9 83193759 83193778 -V_PPARA_02 5.21998e-06 - TTGGGTATTTGGGGTGGGG
+chr9 83193813 83193823 -V_NKX22_01 5.97675e-06 - TTAAGTACTT
+chr9 84133920 84133931 -V_PAX_Q6 7.52241e-06 - CTGTAACTCAC
+chr9 84134247 84134260 -V_STAT1STAT1_Q3 9.34459e-07 - GTTTCACAGAAAA
+chr9 84134374 84134389 +V_OCT4_02 7.53505e-07 + ATTCTGATTCAAATG
+chr9 84134471 84134489 +V_HNF3_Q6_01 8.19906e-06 + ACTATTGTTTGCACAGGC
+chr9 84737746 84737761 -V_OCT4_01 7.94702e-06 - TTTTGTTGTGCAAAC
+chr9 84737776 84737791 -V_SRF_C 8.56356e-06 - GCCTTGTAAGGGCTT
+chr9 85234084 85234099 -V_IRF_Q6 8.21296e-06 - GTTTGTTTCAGTTCC
+chr9 85234119 85234134 +V_ETS1_B 1.87346e-06 + AGAGGAAGGGGGTGG
+chr9 85234127 85234136 +V_ZIC2_01 9.89755e-06 + GGGGTGGTG
+chr9 85234154 85234175 +V_PPARG_01 3.35201e-06 + ACGAAAGTCAAAGGTCAGATC
+chr9 85234157 85234171 -V_COUP_01 2.02653e-06 - TGACCTTTGACTTT
+chr9 85234158 85234171 +V_RXRLXRB_01 6.78298e-07 + AAGTCAAAGGTCA
+chr9 85234158 85234171 +V_DR1_Q3 1.39363e-06 + AAGTCAAAGGTCA
+chr9 85234158 85234171 -V_PPAR_DR1_Q2.4.51267e-06 - TGACCTTTGACTT
+chr9 85234158 85234171 -V_HNF4_DR1_Q3 7.59509e-07 - TGACCTTTGACTT
+chr9 85234158 85234171 -V_COUP_DR1_Q6 3.15323e-07 - TGACCTTTGACTT
+chr9 85234158 85234172 +V_HNF4_Q6_01 6.93604e-06 + AAGTCAAAGGTCAG
+chr9 85234159 85234172 -V_HNF4ALPHA_Q6 8.9975e-07 - CTGACCTTTGACT
+chr9 85234162 85234172 -V_NUR77_Q5 8.43564e-06 - CTGACCTTTG
+chr9 87870467 87870484 -V_DR4_Q2 4.15062e-06 - TGAACTGCTCTGCCCCT
+chr9 87870473 87870496 -V_COUPTF_Q6 9.98924e-06 - TCATCTGAACCTTGAACTGCTCT
+chr9 87870477 87870491 -V_COUP_01 1.18543e-06 - TGAACCTTGAACTG
+chr9 87870478 87870492 +V_HNF4_Q6_01 8.37803e-06 + AGTTCAAGGTTCAG
+chr9 87870479 87870492 -V_HNF4ALPHA_Q6 8.9975e-07 - CTGAACCTTGAAC
+chr9 87870508 87870523 -V_AR_01 6.36571e-06 - GGAACGTTTTGTGCT
+chr9 87870570 87870585 +V_DMRT5_01 7.94465e-06 + TTCTGTTACTTTGTT
+chr9 87870572 87870587 +V_DMRT1_01 2.26736e-06 + CTGTTACTTTGTTTC
+chr9 87870578 87870593 +V_DMRT5_01 8.98763e-06 + CTTTGTTTCAGTGTC
+chr9 88214269 88214282 +V_MAZR_01 5.68389e-06 + AGGAGGGGGGACA
+chr9 88214270 88214285 +V_SPZ1_01 5.43563e-06 + GGAGGGGGGACAGGC
+chr9 88214301 88214309 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chr9 88214301 88214310 -V_CKROX_Q2 3.66459e-06 - GCCCTCCCC
+chr9 94562305 94562320 -V_OCT4_01 7.41924e-06 - CTTAGTGATGTAAAT
+chr9 94562432 94562443 -V_LEF1TCF1_Q4 3.42525e-06 - CCTTTGAAGTT
+chr9 94562509 94562527 +V_FOXJ2_01 7.26098e-06 + TTTAAAACAAATAATTGA
+chr9 94562512 94562525 -V_HFH4_01 9.85665e-06 - AATTATTTGTTTT
+chr9 94562513 94562525 -V_FOXD3_01 5.33063e-06 - AATTATTTGTTT
+chr9 94562529 94562548 +V_PU1_Q4 4.80518e-06 + ACCCCTTTGTTCCTCTTCC
+chr9 94562531 94562541 -V_LEF1_Q2_01 9.48141e-06 - GAACAAAGGG
+chr9 94562532 94562543 +V_LEF1TCF1_Q4 5.90916e-06 + CCTTTGTTCCT
+chr9 94562597 94562609 -V_MEIS1_01 5.48151e-06 - TTCTGACAGGTC
+chr9 94562598 94562609 +V_TGIF_01 5.10679e-06 + ACCTGTCAGAA
+chr9 94562633 94562643 -V_LEF1_Q2_01 5.84716e-06 - GATCAAAGGC
+chr9 94562634 94562645 +V_LEF1TCF1_Q4 2.56824e-06 + CCTTTGATCCC
+chr9 95292668 95292681 +V_NRF2_Q4 1.35691e-06 + GTGCTGAGTCAGC
+chr9 95292669 95292680 +V_MAF_Q6_01 4.54281e-07 + TGCTGAGTCAG
+chr9 95292670 95292681 -V_AP1FJ_Q2 8.1176e-06 - GCTGACTCAGC
+chr9 95292670 95292681 -V_AP1_Q6 7.46065e-07 - GCTGACTCAGC
+chr9 95292676 95292696 -V_PPARA_01 1.19277e-06 - CAGAAGTGGGGCATAGCTGA
+chr9 95292686 95292699 +V_STAT_Q6 1.50589e-06 + CCCACTTCTGGGA
+chr9 95582692 95582707 +V_HES1_Q2 6.50005e-06 + AACGCTGGTGCCCCA
+chr9 95582719 95582732 +V_NRF2_Q4 8.01719e-06 + CTGCTGTGTCACA
+chr9 95582764 95582775 +V_HELIOSA_02 8.07231e-06 + AATAGGAAAAA
+chr9 95582775 95582784 +V_AP2ALPHA_01 3.00918e-06 + GCCCGGGGC
+chr9 95582775 95582784 +V_AP2GAMMA_01 3.00918e-06 + GCCCGGGGC
+chr9 95582775 95582784 -V_AP2ALPHA_01 6.01835e-06 - GCCCCGGGC
+chr9 95582775 95582784 -V_AP2GAMMA_01 6.01835e-06 - GCCCCGGGC
+chr9 95675327 95675342 +V_DMRT5_01 7.0094e-06 + GATGGATACAGTGTC
+chr9 95675413 95675429 +V_DMRT2_01 3.03478e-06 + TGGATGGATACAATGT
+chr9 95675414 95675429 +V_DMRT3_01 4.93902e-06 + GGATGGATACAATGT
+chr9 95675419 95675434 -V_DMRT1_01 3.71498e-06 - TGGTGACATTGTATC
+chr9 95675437 95675451 -V_KROX_Q6 4.94478e-06 - GCCACCCACTCCCC
+chr9 95675457 95675473 +V_DMRT2_01 3.03478e-06 + TGGATGGATACAATGT
+chr9 95675458 95675473 +V_DMRT3_01 4.93902e-06 + GGATGGATACAATGT
+chr9 95675463 95675478 -V_DMRT1_01 3.71498e-06 - TGGTGACATTGTATC
+chr9 96061353 96061365 +V_LRH1_Q5 6.8178e-06 + CTGACCTTGAAA
+chr9 96061354 96061363 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr9 96061398 96061414 -V_AP2_Q3 4.72602e-06 - GGCCTCAGGCAGGGCC
+chr9 96061465 96061476 +V_MYB_Q3 8.33763e-06 + GGGGTCAGTTG
+chr9 96130809 96130822 +V_NFY_Q6_01 5.96025e-06 + TATTAACCAATCA
+chr9 96130810 96130824 -V_NFY_C 1.19255e-07 - TCTGATTGGTTAAT
+chr9 96130810 96130826 +V_NFY_01 9.91219e-07 + ATTAACCAATCAGAGA
+chr9 96130812 96130823 +V_NFY_Q6 6.07558e-07 + TAACCAATCAG
+chr9 96130868 96130878 +V_NUR77_Q5 8.43564e-06 + TTGACCTTGC
+chr9 96130899 96130914 -V_OCT4_02 3.02765e-06 - ATTCAGATGCTGATT
+chr9 99105076 99105089 +V_COUP_DR1_Q6 3.41319e-06 + TGACCTTTGGGAC
+chr9 99301442 99301455 +V_AP2_Q6_01 1.37342e-06 + CCTGCCCCAGGCC
+chr9 99301569 99301585 +V_NFKB_Q6_01 1.88211e-06 + AAGAGGGAAATTCCCC
+chr9 99301571 99301584 +V_P50P50_Q3 4.2671e-06 + GAGGGAAATTCCC
+chr9 99301571 99301585 +V_NFKB_Q6 8.78215e-06 + GAGGGAAATTCCCC
+chr9 99301572 99301586 -V_NFKB_Q6 1.52827e-07 - TGGGGAATTTCCCT
+chr9 99301573 99301583 +V_NFKAPPAB_01 7.14234e-06 + GGGAAATTCC
+chr9 99301573 99301585 -V_NFKB_C 1.49079e-06 - GGGGAATTTCCC
+chr9 99301573 99301586 -V_P50P50_Q3 1.75855e-06 - TGGGGAATTTCCC
+chr9 99301574 99301584 -V_NFKAPPAB65_01 9.08563e-07 - GGGAATTTCC
+chr9 99301574 99301584 -V_CREL_01 7.08941e-06 - GGGAATTTCC
+chr9 99301574 99301584 -V_NFKAPPAB_01 1.65463e-06 - GGGAATTTCC
+chr9 99320446 99320469 +V_COUPTF_Q6 8.98927e-06 + TTAGCTGACCTTTGCTGTGGACC
+chr9 99320450 99320460 +V_NUR77_Q5 8.43564e-06 + CTGACCTTTG
+chr9 99320462 99320478 +V_NFY_01 7.41568e-06 + GTGGACCAATCGGATA
+chr9 99320493 99320505 +V_LRH1_Q5 6.8178e-06 + CTGACCTTGAAT
+chr9 99320493 99320507 +V_PAX6_Q2 1.36823e-06 + CTGACCTTGAATTC
+chr9 9932.4.5 99320503 +V_SF1_Q6_01 7.33929e-06 + TGACCTTGA
+chr9 99320526 99320534 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr9 100349147 100349170 +V_COUPTF_Q6 6.16019e-06 + GTGGCTGCCCTCAGGCCACTTCG
+chr9 100349151 100349164 +V_AP2_Q6_01 4.11454e-06 + CTGCCCTCAGGCC
+chr9 100349166 100349185 +V_PU1_Q4 7.89869e-06 + TTCGTCTGTTTCCTCATTC
+chr9 100974599 100974609 +V_PR_Q2 8.13856e-06 + GAAAGGACAG
+chr9 100974661 100974675 +V_COUP_01 7.43468e-06 + TGACCCTAGCACTT
+chr9 100974668 100974680 -V_TTF1_Q6 1.21614e-06 - CCCCCAAGTGCT
+chr9 100974675 100974684 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chr9 100974675 100974685 -V_SP1_Q2_01 2.33076e-06 - CCCCACCCCC
+chr9 100974675 100974686 -V_SP1SP3_Q4 8.91927e-06 - CCCCCACCCCC
+chr9 100974676 100974688 -V_PAX4_03 1.74945e-06 - ATCCCCCACCCC
+chr9 100974676 100974690 -V_KROX_Q6 8.32366e-06 - CCATCCCCCACCCC
+chr9 100974695 100974713 +V_GCNF_01 5.34973e-06 + CTGGAGCTCAAGGTTATC
+chr9 100974721 100974735 -V_PAX6_Q2 9.64555e-06 - CTGGCCTGGAAATG
+chr9 101164519 101164537 +V_GCNF_01 4.28212e-06 + CTAGAGGTCAAGGACAGA
+chr9 101164560 101164571 +V_EBF_Q6 3.11689e-06 + GTCCCCTGGGG
+chr9 101271886 101271898 -V_TTF1_Q6 1.51693e-06 - CACTCAAGAGCT
+chr9 101271905 101271918 +V_GATA1_04 5.17426e-07 + AGCTGATAAGGGC
+chr9 102571933 102571947 -V_OCT1_06 8.86248e-06 - CAAAATGTCATTCT
+chr9 103086790 103086805 -V_CP2_02 3.60911e-06 - GCTGGCTGGCTCTTG
+chr9 103086906 103086921 -V_ETS1_B 2.00417e-06 - ACAGGAAGGGTTTGG
+chr9 103389439 103389454 +V_VDR_Q3 7.57997e-06 + GGGTGAATGAGGAGG
+chr9 103389450 103389459 +V_CACBINDINGPROTEIN_Q6 2.23138e-06 + GAGGGTGGG
+chr9 103416415 103416424 +V_SMAD3_Q6 4.03003e-06 + TGTCTGTCT
+chr9 103416433 103416456 -V_OCT1_04 7.77296e-06 - CTTTACAAATGCAAATTAATCTT
+chr9 103416438 103416449 +V_OCT1_Q5_01 2.46139e-06 + TAATTTGCATT
+chr9 103416438 103416449 +V_OCT_Q6 3.88942e-06 + TAATTTGCATT
+chr9 103416440 103416455 -V_OCT4_01 4.28625e-06 - TTTACAAATGCAAAT
+chr9 103416517 103416532 +V_SMAD4_Q6 3.63904e-06 + GTGGGGCAGCCAGGC
+chr9 104005376 104005395 -V_OCT1_01 4.90831e-06 - AATGGTATGCAAATGTGAG
+chr9 104005378 104005391 +V_OCT_C 7.73458e-07 + CACATTTGCATAC
+chr9 104005379 104005390 +V_OCT_Q6 7.02042e-06 + ACATTTGCATA
+chr9 104005380 104005390 -V_OCT1_B 4.33582e-06 - TATGCAAATG
+chr9 104005401 104005416 +V_OCT4_01 9.436e-07 + TTTTCTCATGCAAAG
+chr9 104005402 104005417 +V_OCT4_02 4.9622e-06 + TTTCTCATGCAAAGC
+chr9 104005402 104005420 -V_PAX8_B 9.12898e-06 - TCAGCTTTGCATGAGAAA
+chr9 104005416 104005426 +V_NUR77_Q5 2.98426e-06 + CTGACCTTGC
+chr9 104005424 104005442 -V_NF1_Q6 3.13934e-06 - TCTTGGCAGGTGGACAGC
+chr9 104005425 104005442 +V_NF1_Q6_01 2.86423e-06 + CTGTCCACCTGCCAAGA
+chr9 104005428 104005438 +V_MYOD_Q6 6.66004e-06 + TCCACCTGCC
+chr9 104005430 104005438 +V_E2A_Q6 9.89755e-06 + CACCTGCC
+chr9 104699210 104699221 +V_EBF_Q6 7.15927e-06 + CTCCCTAGAGA
+chr9 106322862 106322874 +V_CEBP_Q3 4.13513e-06 + AAATTTGGCAAG
+chr9 106322982 106323001 -V_ER_Q6 9.92854e-06 - GCAGGATGATGTGACCTTT
+chr9 106322993 106323016 +V_COUPTF_Q6 4.40544e-06 + CATCCTGCCCTCTCTCCCCTTCC
+chr9 107160878 107160887 +V_SMAD_Q6 9.3359e-06 + AGACACCAC
+chr9 107160922 107160935 +V_IK3_01 8.31072e-06 + TCCCAGGAATGCC
+chr9 107160990 107161000 -V_ESE1_Q3 2.21291e-06 - TGTTTCCTGT
+chr9 109820687 109820698 -V_GATA_C 2.1386e-06 - AGATAAGTCCT
+chr9 111478491 111478505 +V_KROX_Q6 3.62033e-06 + CCAGCCCACACACC
+chr9 111478530 111478545 +V_OCT4_02 2.2199e-06 + TTTGAGATGCTAAAA
+chr9 111478563 111478578 +V_SMAD4_Q6 7.63557e-06 + GGGGCTCAGCCACCT
+chr9 111782452 111782463 +V_SMAD_Q6_01 9.38894e-06 + TACCCAGACAG
+chr9 111782569 111782583 -V_BLIMP1_Q6 4.2457e-06 - AAGGAGTGAAAGTC
+chr9 112077399 112077420 -V_NRSE_B 2.37268e-06 - TTTATCTCCTGGGAGATCAGC
+chr9 112077435 112077446 -V_ALPHACP1_01 4.48665e-06 - CAGCCAGTGAG
+chr9 113102101 113102114 +V_NRF2_Q4 2.86036e-06 + CTGCTGTGTCACC
+chr9 113996672 113996685 -V_HSF_Q6 2.81328e-06 - TTCCAGAGTCTTC
+chr9 113996725 113996740 +V_OCT4_01 4.01204e-06 + TTTTGTCATTTAAAT
+chr9 113996744 113996757 -V_HFH4_01 6.29512e-06 - AATTGATTGTTTA
+chr9 113996755 113996764 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr9 114764405 114764420 +V_DMRT1_01 2.47268e-06 + AGGAAACATTGTATC
+chr9 114764407 114764422 -V_DMRT1_01 2.58784e-07 - TAGATACAATGTTTC
+chr9 114764410 114764426 -V_DMRT2_01 9.26879e-06 - GGGTTAGATACAATGT
+chr9 114764446 114764454 -V_CACD_01 9.89755e-06 - CCACACCC
+chr9 114764511 114764525 +V_CEBPB_02 6.32911e-06 + AGGTTGCGTCACTG
+chr9 114764512 114764524 -V_CREBP1_Q2 7.52465e-06 - AGTGACGCAACC
+chr9 114764512 114764526 +V_CREB_Q2_01 2.75427e-06 + GGTTGCGTCACTGC
+chr9 114859279 114859292 -V_DMRT4_01 5.41272e-06 - AATGTAGCAGAGT
+chr9 114859282 114859297 +V_DMRT1_01 2.69689e-08 + CTGCTACATTGTTTC
+chr9 114859284 114859299 -V_DMRT1_01 1.2457e-07 - TTGAAACAATGTAGC
+chr9 114859285 114859299 -V_DMRT7_01 9.63794e-06 - TTGAAACAATGTAG
+chr9 114859299 114859314 +V_AR_Q2 1.74659e-06 + AGTGGCTGCTGTTCT
+chr9 114859343 114859355 +V_GABP_B 6.8315e-06 + CCCGGAAGCTCA
+chr9 114859372 114859382 +V_IK_Q5 6.81053e-06 + CTTGGGAGGG
+chr9 114859384 114859402 +V_GCNF_01 5.75095e-06 + AGGCAGTTCAAGGCCAAC
+chr9 114859389 114859401 -V_LRH1_Q5 2.30644e-06 - TTGGCCTTGAAC
+chr9 115633310 115633324 +V_NFKB_Q6 2.23293e-06 + TAGGGAATTTCCTT
+chr9 115633311 115633323 +V_NFKB_C 6.70077e-06 + AGGGAATTTCCT
+chr9 115633311 115633327 -V_NFKB_Q6_01 6.69541e-06 - GAAAAGGAAATTCCCT
+chr9 115633312 115633322 +V_NFKAPPAB65_01 9.08563e-07 + GGGAATTTCC
+chr9 115633312 115633322 +V_CREL_01 7.08941e-06 + GGGAATTTCC
+chr9 115633312 115633322 +V_NFKAPPAB_01 1.65463e-06 + GGGAATTTCC
+chr9 115633354 115633366 -V_SRY_02 6.58101e-06 - AATAACAATAGG
+chr9 115633370 115633382 +V_OCT1_07 7.26663e-06 + CCTATGTTAATT
+chr9 116012822 116012830 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr9 116012830 116012842 -V_PAX4_03 7.48009e-06 - ATTCTCCACCCG
+chr9 116012848 116012863 +V_DMRT1_01 1.2457e-07 + TGGATACAATGTAGC
+chr9 116012850 116012865 -V_DMRT1_01 3.18884e-06 - TCGCTACATTGTATC
+chr9 116012853 116012868 -V_DMRT3_01 4.93902e-06 - AATTCGCTACATTGT
+chr9 116012853 116012869 -V_DMRT2_01 5.71485e-06 - TAATTCGCTACATTGT
+chr9 116012855 116012868 +V_DMRT4_01 1.44269e-06 + AATGTAGCGAATT
+chr9 116012874 116012885 -V_FLI1_Q6 8.77629e-07 - CCGGAAGTCAG
+chr9 116012880 116012900 +V_YY1_02 4.11358e-06 + TCCGGGCCATCTGGGAACAA
+chr9 116371452 116371470 +V_FOXJ2_01 1.76112e-06 + CCAAAAACAAACAAAACA
+chr9 116371454 116371463 +V_FOXO1_Q5 7.27852e-06 + AAAAACAAA
+chr9 116371454 116371467 +V_HNF3_Q6 4.17324e-06 + AAAAACAAACAAA
+chr9 116371455 116371468 -V_FOX_Q2 1.93154e-06 - TTTTGTTTGTTTT
+chr9 116371455 116371468 -V_HFH4_01 3.17054e-06 - TTTTGTTTGTTTT
+chr9 116371456 116371468 -V_FOXD3_01 9.53633e-06 - TTTTGTTTGTTT
+chr9 116371535 116371550 -V_EVI1_04 7.84617e-06 - GAATAAGAAAGGAAA
+chr9 116371554 116371563 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr9 116371572 116371587 -V_OCT4_01 4.01204e-06 - TATTGTAATGTTGAT
+chr9 118315406 118315421 -V_OCT4_01 7.94702e-06 - TTTTGTTGTGCAAAC
+chr9 118315472 118315487 -V_OCT4_02 6.55103e-06 - ATTGTAATGCTAAAT
+chr9 118315473 118315488 -V_OCT4_01 1.40241e-06 - TATTGTAATGCTAAA
+chr9 118446837 118446852 +V_ETS1_B 7.24631e-06 + GCAGGAAGGGCTGAG
+chr9 118446911 118446926 -V_VDR_Q3 4.22722e-06 - GGGTCAAGCAGGACA
+chr9 118447253 118447272 +V_PU1_Q4 5.45848e-06 + CTGCTGCACTTCCTCATTG
+chr9 118447256 118447273 -V_PU1_01 8.64552e-07 - ACAATGAGGAAGTGCAG
+chr9 118447265 118447278 +V_SOX_Q6 9.2201e-06 + CTCATTGTTAACA
+chr9 118562689 118562702 +V_IRF1_01 1.75029e-06 + GCAAAGTGAAACC
+chr9 118562689 118562702 +V_IRF2_01 4.82073e-07 + GCAAAGTGAAACC
+chr9 118562758 118562774 -V_AP2_Q3 3.44455e-06 - GGCCCTGGGCAGTGAC
+chr9 118562775 118562787 -V_TTF1_Q6 1.51693e-06 - CCCCCAAGAGTC
+chr9 118562782 118562791 -V_LRF_Q2 3.33688e-06 - AGGGCCCCC
+chr9 118772810 118772825 +V_OCT4_01 7.41924e-06 + CTTTGTTGTGCAAAA
+chr9 118772852 118772866 -V_E2A_Q2 1.54839e-07 - CCACCTGCCCCATG
+chr9 118772853 118772871 +V_MYOD_Q6_01 3.0826e-06 + ATGGGGCAGGTGGTATAG
+chr9 118772856 118772866 -V_EBOX_Q6_01 6.43409e-06 - CCACCTGCCC
+chr9 118772856 118772868 +V_MYOD_01 9.75956e-06 + GGGCAGGTGGTA
+chr9 118772857 118772865 -V_E2A_Q6 9.89755e-06 - CACCTGCC
+chr9 118772857 118772867 -V_MYOD_Q6 2.71739e-06 - ACCACCTGCC
+chr9 118772888 118772896 -V_CACD_01 9.89755e-06 - CCACACCC
+chr9 119903517 119903528 +V_AP1FJ_Q2 8.1176e-06 + GCTGACTCAGC
+chr9 119903517 119903528 +V_AP1_Q6 7.46065e-07 + GCTGACTCAGC
+chr9 119903517 119903530 -V_NRF2_Q4 4.63559e-06 - AGGCTGAGTCAGC
+chr9 119903518 119903529 -V_MAF_Q6_01 1.07676e-06 - GGCTGAGTCAG
+chr9 120336551 120336562 -V_FOXO4_01 6.84186e-06 - GTAAACAAGCA
+chr9 120336576 120336592 -V_AP2_Q3 1.51951e-06 - AGCCCCAGGCTGAGTG
+chr9 120336602 120336612 +V_TBX5_Q5 8.44574e-06 + CTCACACCTC
+chr9 120336691 120336700 -V_SF1_Q6_01 7.33929e-06 - TGACCTTGG
+chr9 120590659 120590668 -V_AP2ALPHA_01 9.68294e-06 - GCCCGAGGC
+chr9 120590677 120590692 -V_VDRRXR_01 3.03513e-06 - AGGTCACAGGGTCCA
+chr9 120590703 120590716 -V_SP1_Q6 7.54104e-06 - TGGGGGTGGGGTG
+chr9 120590705 120590715 +V_SP1_Q2_01 2.33076e-06 + CCCCACCCCC
+chr9 120590706 120590715 -V_CACBINDINGPROTEIN_Q6 4.06368e-06 - GGGGGTGGG
+chr9 120590706 120590717 -V_EGR_Q6 8.04446e-06 - GTGGGGGTGGG
+chr9 120590706 120590720 +V_KROX_Q6 6.89701e-06 + CCCACCCCCACCCT
+chr9 120590708 120590720 +V_PAX4_03 2.70808e-06 + CACCCCCACCCT
+chr9 120599864 120599879 -V_OCT4_02 9.20547e-07 - TTTGAGATGCAGATG
+chr9 120599883 120599894 +V_RBPJK_01 2.4.52e-06 + AGCGTGGGAAT
+chr9 120599919 120599934 -V_SREBP1_Q5 4.09665e-06 - CCCCACACCCCACCA
+chr9 120660295 120660303 -V_STAT3_02 9.89755e-06 - GGCTTCCC
+chr9 120660358 120660376 -V_FOXJ2_01 7.26098e-06 - AAAAAAGCAAACAGCCCA
+chr9 120660388 120660403 +V_DMRT1_01 9.21473e-06 + AGGCTACAATGTAAC
+chr9 120660390 120660405 -V_DMRT1_01 8.06116e-08 - TTGTTACATTGTAGC
+chr9 120660391 120660405 -V_DMRT7_01 2.34554e-07 - TTGTTACATTGTAG
+chr9 120660393 120660408 -V_DMRT3_01 2.1162e-06 - ACATTGTTACATTGT
+chr9 120660393 120660409 -V_DMRT2_01 8.16548e-07 - CACATTGTTACATTGT
+chr9 120660395 120660408 +V_DMRT4_01 3.66086e-07 + AATGTAACAATGT
+chr9 120752836 120752848 -V_MEIS1_01 4.40868e-06 - CTATGACAGGTG
+chr9 120752870 120752885 -V_DMRT1_01 1.88888e-06 - TGGTTACTTTGTTGC
+chr9 120752871 120752885 -V_DMRT7_01 3.5461e-06 - TGGTTACTTTGTTG
+chr9 120800100 120800115 -V_DMRT1_01 2.20757e-06 - TGGTAACAATGTTTT
+chr9 120800101 120800115 -V_DMRT7_01 3.78668e-06 - TGGTAACAATGTTT
+chr9 120800144 120800153 -V_FOXO1_Q5 7.27852e-06 - AAAAACAAA
+chr9 120800154 120800177 -V_COUPTF_Q6 3.30357e-06 - CCTCATGGACTCTCCCCCTGGAC
+chr9 120800189 120800201 +V_PBX_Q3 3.10639e-06 + GATGGATGGCTG
+chr9 123340249 123340264 -V_OCT4_01 3.26181e-06 - TATTCTAATGCTAAA
+chr9 123640616 123640631 +V_OCT4_01 5.75922e-07 + CTTTGATATGCTAAT
+chr9 123640617 123640632 +V_OCT4_02 1.26855e-06 + TTTGATATGCTAATC
+chr9 123640621 123640631 +V_POU3F2_02 7.27852e-06 + ATATGCTAAT
+chr9 123640644 123640654 +V_POU3F2_02 5.63759e-06 + ATATGTTAAT
+chr9 123640696 123640708 -V_NFAT_Q6 5.53405e-06 - CATAGGAAAATA
+chrX 6775077 6775092 +V_SPZ1_01 4.92705e-06 + GTTGGAGGGAAGGGC
+chrX 6775168 6775179 +V_ELF5_01 8.57585e-06 + TCAAGGAAGTA
+chrX 6777790 6777799 +V_CKROX_Q2 8.90515e-06 + TCCCTCCCC
+chrX 6777791 6777799 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chrX 6777820 6777831 +V_GATA_C 2.89666e-06 + TGATAAGGCCC
+chrX 7342150 7342162 +V_ICSBP_Q6 8.75679e-06 + AAAGTGAACCTG
+chrX 7342173 7342186 +V_SOX_Q6 1.68475e-06 + CTCTTTGTGATGC
+chrX 7398968 7398998 +V_PAX4_04 7.42128e-06 + AAGAAACATCCACACTAGTCCCCCCTCCCC
+chrX 7398984 7398999 -V_VDR_Q3 5.65227e-07 - GGGGGAGGGGGGACT
+chrX 7398987 7399000 -V_SP1_Q6 3.85413e-06 - TGGGGGAGGGGGG
+chrX 7398988 7398998 -V_SP1_Q6_01 8.48538e-06 - GGGGAGGGGG
+chrX 7398988 7398999 +V_SP1SP3_Q4 2.8432e-06 + CCCCCTCCCCC
+chrX 7398989 7398998 +V_CKROX_Q2 3.66459e-06 + CCCCTCCCC
+chrX 7398989 7398999 +V_SP1_Q2_01 1.50459e-06 + CCCCTCCCCC
+chrX 7398990 7398998 -V_MAZ_Q6 8.12736e-06 - GGGGAGGG
+chrX 7398990 7398999 +V_WT1_Q6 6.67377e-06 + CCCTCCCCC
+chrX 7398998 7399022 -V_COMP1_01 6.66077e-06 - GCTGTGGAAAGGCGGGGAGAAGTG
+chrX 7399014 7399030 -V_AP2_Q3 8.80988e-08 - GCCCCCAGGCTGTGGA
+chrX 7399019 7399032 -V_AP2_Q6_01 2.39401e-06 - CTGCCCCCAGGCT
+chrX 7399021 7399049 +V_PAX5_01 3.30356e-06 + CCTGGGGGCAGGGAGGGGACACAGCACT
+chrX 7399025 7399040 +V_VDR_Q3 1.06886e-06 + GGGGCAGGGAGGGGA
+chrX 7399030 7399058 -V_PAX5_01 5.88503e-06 - GAATGATGCAGTGCTGTGTCCCCTCCCT
+chrX 7399065 7399081 -V_AP2_Q3 8.07615e-06 - GCCCCAGAGCGGAGTG
+chrX 7399076 7399088 +V_NANOG_01 5.79837e-06 + GGGGCCATTAAC
+chrX 7399118 7399135 +V_FOXP3_Q4 1.02132e-06 + GTGCTGCTGATTCAGAC
+chrX 7399121 7399134 +V_NRF2_Q4 6.25751e-06 + CTGCTGATTCAGA
+chrX 7399122 7399133 +V_MAF_Q6_01 9.11965e-06 + TGCTGATTCAG
+chrX 7447164 7447176 -V_MYOD_01 7.90686e-06 - AAGCAGGTGGTG
+chrX 7745185 7745197 +V_NKX3A_01 4.38917e-06 + GTATAAGTATAA
+chrX 7760583 7760591 -V_CACD_01 9.89755e-06 - CCACACCC
+chrX 7786982 7786994 -V_CEBP_Q2_01 3.36862e-07 - ATTGCACAATCT
+chrX 7786982 7786996 +V_CEBPB_01 3.05692e-06 + AGATTGTGCAATTT
+chrX 7786982 7786996 -V_CEBPA_01 3.30014e-06 - AAATTGCACAATCT
+chrX 8656031 8656041 -V_SP1_Q6_01 1.91768e-06 - AGGGCGGGGC
+chrX 8656078 8656108 +V_HOX13_01 5.08067e-06 + TGCTCCAACACTCATTACTTCTGATGCCCT
+chrX 8656102 8656132 +V_HOX13_01 6.74767e-06 + TGCCCTGCCTCCCATTAGCCCTGGGGCTGC
+chrX 10324016 10324027 +V_ELF5_01 1.41361e-06 + ACAAGGAAGTA
+chrX 12400402 12400419 -V_HSF1_Q6 5.36429e-06 - TTGCTAGACAGTTCTCA
+chrX 14205863 14205878 -V_BACH1_01 9.90707e-06 - CTGATGAGTCACATT
+chrX 14205865 14205878 -V_NRF2_Q4 9.11585e-06 - CTGATGAGTCACA
+chrX 14205866 14205877 -V_NFE2_01 5.51939e-06 - TGATGAGTCAC
+chrX 18276420 18276435 +V_AR_Q2 6.7239e-07 + AGTGCTTGCTGTTCT
+chrX 18305216 18305227 -V_EBF_Q6 8.47547e-07 - TTCCCCTGGGA
+chrX 18305217 18305233 +V_NFKB_Q6_01 7.88839e-07 + CCCAGGGGAATTCCCT
+chrX 18305220 18305233 +V_P50P50_Q3 9.77769e-07 + AGGGGAATTCCCT
+chrX 18305220 18305234 +V_NFKB_Q6 9.22738e-07 + AGGGGAATTCCCTT
+chrX 18305220 18305234 -V_NFKB_Q6 5.15179e-06 - AAGGGAATTCCCCT
+chrX 18305221 18305231 +V_CREL_01 5.43478e-06 + GGGGAATTCC
+chrX 18305221 18305233 +V_NFKB_C 6.15227e-06 + GGGGAATTCCCT
+chrX 18305221 18305233 -V_NFKB_C 5.17264e-06 - AGGGAATTCCCC
+chrX 18305221 18305234 -V_P50P50_Q3 1.33286e-07 - AAGGGAATTCCCC
+chrX 18305221 18305237 -V_NFKB_Q6_01 4.87745e-06 - TGGAAGGGAATTCCCC
+chrX 18305222 18305232 +V_NFKAPPAB65_01 7.87917e-06 + GGGAATTCCC
+chrX 18305222 18305232 +V_NFKAPPAB_01 7.46065e-07 + GGGAATTCCC
+chrX 18305222 18305232 -V_NFKAPPAB65_01 7.87917e-06 - GGGAATTCCC
+chrX 18305222 18305232 -V_NFKAPPAB_01 7.46065e-07 - GGGAATTCCC
+chrX 21248102 21248111 +V_CACBINDINGPROTEIN_Q6 8.12736e-06 + GGGGCTGGG
+chrX 35633293 35633309 +V_DMRT2_01 5.25267e-06 + CAATCTGTTACAATGT
+chrX 35633294 35633307 -V_DMRT4_01 9.60733e-06 - ATTGTAACAGATT
+chrX 35633294 35633309 +V_DMRT3_01 6.06326e-06 + AATCTGTTACAATGT
+chrX 35633297 35633312 +V_DMRT1_01 1.79174e-06 + CTGTTACAATGTATT
+chrX 39042192 39042201 +V_CACBINDINGPROTEIN_Q6 4.06368e-06 + GGGGGTGGG
+chrX 39042302 39042315 +V_SP1_Q6 9.41334e-06 + CAGGGGCGTGGCC
+chrX 39042304 39042314 +V_SP1_Q6_01 8.48538e-06 + GGGGCGTGGC
+chrX 40820587 40820606 +V_ER_Q6 4.65006e-06 + TCAGGACCCTTTGACCCCA
+chrX 40820593 40820616 +V_COUPTF_Q6 4.40544e-06 + CCCTTTGACCCCAGCCCTTTTAT
+chrX 40820621 40820634 +V_IRF2_01 9.58215e-06 + GGAAAGGGAAAGC
+chrX 40820621 40820635 +V_BLIMP1_Q6 4.2457e-06 + GGAAAGGGAAAGCA
+chrX 40820622 40820633 +V_IRF_Q6_01 8.39845e-06 + GAAAGGGAAAG
+chrX 40820697 40820707 +V_FOXO1_01 1.34745e-06 + CATAAACAAG
+chrX 40820721 40820734 -V_STAT_Q6 5.58101e-06 - GGTAGTTCTGGGA
+chrX 45425363 45425384 +V_DR3_Q4 6.60853e-06 + GATGGCCCTGCTGCTCCTCCT
+chrX 45576095 45576110 +V_OCT4_01 7.41924e-06 + TATTCAAATGCTAAA
+chrX 45576145 45576156 +V_GAF_Q6 7.13471e-06 + CAAATTCCCAT
+chrX 46247256 46247271 +V_OCT4_02 3.02765e-06 + ATTCAGATGCTGATT
+chrX 47098480 47098491 -V_HELIOSA_02 8.07231e-06 - AATAGGAAAAA
+chrX 47098543 47098562 +V_OCT1_01 7.53757e-06 + TTGAAAATGCAAATGTGCT
+chrX 47098608 47098625 +V_PU1_01 3.97348e-06 + ACAATGGGGAAGCACAG
+chrX 48868129 48868159 -V_HOX13_01 7.49406e-06 - TCACACCACCCAAATCAGTGGGGCCCCCCT
+chrX 48868131 48868140 -V_LRF_Q2 1.50459e-06 - GGGGCCCCC
+chrX 48868148 48868163 -V_SREBP_Q6 8.07305e-06 - CCACTCACACCACCC
+chrX 48868148 48868163 -V_SREBP1_Q5 1.85171e-06 - CCACTCACACCACCC
+chrX 48868194 48868204 +V_LEF1_Q2_01 7.66428e-06 + CTTCAAAGGG
+chrX 48868210 48868221 +V_EBF_Q6 9.10919e-06 + TTCCCCTGAGG
+chrX 53983304 53983334 -V_PAX4_04 3.00909e-06 - AACAATTAGCACCACTTCAAGCAGCTCCCC
+chrX 53983351 53983364 -V_AP2_Q6_01 2.71709e-06 - TCCGCCCCAGGCC
+chrX 53983416 53983432 -V_HAND1E47_01 5.06161e-06 - ACTGAGGTCTGGTATT
+chrX 57422817 57422832 +V_SMAD4_Q6 2.72571e-07 + GGGGTTCAGACAGCT
+chrX 57422818 57422830 -V_VDR_Q6 3.87245e-06 - CTGTCTGAACCC
+chrX 57422843 57422858 +V_SMAD4_Q6 5.45681e-06 + CTGGGCCAGACACAT
+chrX 57422852 57422870 +V_PAX8_B 8.15746e-06 + ACACATTTGCATGGGTTG
+chrX 57422953 57422968 +V_OCT4_01 2.11448e-06 + CATTGTGATTCAAAT
+chrX 57422954 57422969 +V_OCT4_02 2.03326e-07 + ATTGTGATTCAAATG
+chrX 58981230 58981245 +V_OCT4_01 2.64195e-06 + TATTGTTATGCCAAT
+chrX 58981231 58981246 +V_OCT4_02 8.50894e-06 + ATTGTTATGCCAATT
+chrX 58981251 58981264 +V_STAT_Q6 7.7371e-06 + TGCTCTTCTGAGA
+chrX 67966307 67966317 -V_NUR77_Q5 2.98426e-06 - CTGACCTTCC
+chrX 68812683 68812693 +V_PR_Q2 5.13649e-06 + GAAAGAACAC
+chrX 68812684 68812703 -V_GR_Q6 2.94654e-06 - GGGCCTCCAAGTGTTCTTT
+chrX 68812697 68812709 +V_NANOG_01 7.60378e-06 + AGGCCCATTGAC
+chrX 68812703 68812718 +V_OCT4_02 4.618e-06 + ATTGACTTGAAAATT
+chrX 68812739 68812753 -V_OCT1_05 4.1196e-06 - ATGATTTCCATATG
+chrX 68812753 68812771 +V_HNF3_Q6_01 8.19906e-06 + TGCCCTGTTTGCTTTCTT
+chrX 70840576 70840584 +V_CACD_01 9.89755e-06 + CCACACCC
+chrX 70840621 70840634 +V_SP1_Q6 3.85413e-06 + TGGGGGAGGGGGG
+chrX 70840622 70840631 -V_WT1_Q6 6.67377e-06 - CCCTCCCCC
+chrX 70840622 70840632 -V_SP1_Q2_01 1.50459e-06 - CCCCTCCCCC
+chrX 70840622 70840633 -V_SP1SP3_Q4 2.8432e-06 - CCCCCTCCCCC
+chrX 70840623 70840631 +V_MAZ_Q6 8.12736e-06 + GGGGAGGG
+chrX 70840623 70840632 -V_CKROX_Q2 3.66459e-06 - CCCCTCCCC
+chrX 70840623 70840633 +V_SP1_Q6_01 8.48538e-06 + GGGGAGGGGG
+chrX 70840625 70840636 -V_SP1SP3_Q4 2.8432e-06 - ACCCCCCCTCC
+chrX 70840792 70840812 +V_PPARA_01 6.75518e-06 + TAGAAGCTGGACAAAGGTCT
+chrX 70840795 70840812 +V_PPARG_03 1.44563e-06 + AAGCTGGACAAAGGTCT
+chrX 70840799 70840812 +V_DR1_Q3 2.40864e-06 + TGGACAAAGGTCT
+chrX 70840799 70840812 -V_PPAR_DR1_Q2 2.43547e-06 - AGACCTTTGTCCA
+chrX 70840799 70840812 -V_HNF4_DR1_Q3 8.70895e-06 - AGACCTTTGTCCA
+chrX 70840799 70840812 -V_COUP_DR1_Q6 6.0379e-06 - AGACCTTTGTCCA
+chrX 70840889 70840900 -V_PAX_Q6 5.66067e-06 - CTGGAACTATC
+chrX 70841321 70841333 +V_MEIS1_01 6.42435e-06 + CTGTGACAGAAC
+chrX 70841361 70841372 +V_CP2_01 5.25662e-06 + GCCCTAGCCAG
+chrX 73299880 73299891 -V_IRF_Q6_01 5.29553e-06 - AGAAGTGAAAG
+chrX 73299906 73299915 -V_HNF4_Q6 7.33929e-06 - AAGGTCCAG
+chrX 74912883 74912898 +V_SMAD4_Q6 1.18767e-06 + GGCAGGCAGACTCCT
+chrX 74912958 74912970 -V_PAX4_03 9.67001e-06 - GACCTCCACCCT
+chrX 81689458 81689467 +V_FOXO1_Q5 7.27852e-06 + AAAAACAAA
+chrX 81689488 81689503 -V_AR_Q2 2.46616e-06 - AGAAGCTTTTGTACT
+chrX 81689523 81689538 +V_OCT4_01 4.28625e-06 + CATTCAATTGCAAAT
+chrX 83438909 83438921 -V_ICSBP_Q6 1.32749e-06 - AAAGAGAAACTG
+chrX 83438911 83438922 -V_IRF_Q6_01 5.29553e-06 - GAAAGAGAAAC
+chrX 83439006 83439016 +V_NKX25_Q5 3.30926e-06 + TGCCACTTGC
+chrX 83439037 83439050 -V_MAZR_01 7.46484e-08 - GGGGGGGGGGCAA
+chrX 83439039 83439050 +V_SP1SP3_Q4 7.59003e-06 + GCCCCCCCCCC
+chrX 90343045 90343057 +V_EGR2_01 9.93172e-06 + GTGTGTGGGTGG
+chrX 96752362 96752377 +V_OCT4_01 6.91054e-06 + CTTGGTCATGCAGAT
+chrX 98279687 98279702 -V_SPZ1_01 5.95976e-06 - GGTGGAGGGAGTGGG
+chrX 98279817 98279828 -V_PITX2_Q2 8.24871e-06 - TGTAATCCCCA
+chrX 98430958 98430970 -V_PAX4_03 9.67001e-06 - AAACCTCACCCC
+chrX 98431013 98431024 +V_SMAD_Q6_01 4.52186e-06 + TAGCCAGACTC
+chrX 98474153 98474169 -V_AP2_Q3 1.13801e-06 - GCCCCCAGGCCGTAAC
+chrX 101117836 101117847 +V_TGIF_01 3.12147e-06 + AGCTGTCAAGA
+chrX 101117914 101117943 +V_MYOGNF1_01 6.11601e-06 + CAGGTGTTCTCACTGGCCAGGCACCAGCT
+chrX 125272487 125272501 -V_NFY_C 1.78604e-06 - TTTGATTGGCTGCC
+chrX 125272487 125272503 +V_NFY_01 6.24707e-06 + GGCAGCCAATCAAAAG
+chrX 125272527 125272539 -V_USF_Q6_01 3.20896e-06 - GGCCAGGTGACC
+chrX 125272550 125272563 +V_AP1_01 3.50586e-07 + CAGTGAGTCAGCA
+chrX 125272551 125272562 -V_AP1_Q6 1.77821e-06 - GCTGACTCACT
+chrX 125272551 125272562 -V_AP1_Q4 7.9984e-06 - GCTGACTCACT
+chrX 125272552 125272561 +V_AP1_C 7.33929e-06 + GTGAGTCAG
+chrX 125272552 125272563 -V_NFE2_01 8.27314e-07 - TGCTGACTCAC
+chrX 134981289 134981302 -V_IK3_01 8.3508e-07 - TGCTGGGAATATC
+chrX 136534772 136534785 +V_DEC_Q1 1.47092e-06 + GCCCAAGTGAGGA
+chrX 136740482 136740495 +V_AP2_Q6_01 9.55245e-06 + CATCCCTCAGGCC
+chrX 140258719 140258729 -V_GATA6_01 6.25525e-06 - AATGATAAGC
+chrX 151640175 151640190 +V_OCT4_01 3.49929e-06 + TATTGAAATGCTAAA
+chrX 156619032 156619047 -V_SREBP_Q6 2.33414e-06 - CCACCCACCCCAGGA
+chrX 156619032 156619047 -V_SREBP1_Q5 1.13545e-06 - CCACCCACCCCAGGA
+chrX 156619098 156619118 -V_FOXP1_01 5.1135e-06 - TTATGTATGTCTTGTAGTTT
+chrX 156619111 156619124 -V_HFH8_01 6.03954e-06 - CTGTGTTTATGTA
+chrX 156619123 156619136 -V_CEBP_01 6.60967e-06 - ACTTTGGAAAGGC
+chrX 156887043 156887058 -V_CP2_02 1.97191e-06 - GCTGGGTCTGACTTG
+chrX 156887072 156887087 +V_DMRT5_01 1.18352e-06 + TATTGTAACTGTGTA
+chrX 156887159 156887170 -V_AP1FJ_Q2 5.39606e-06 - GGTGACTCCAT
+chrX 158315153 158315167 -V_KROX_Q6 6.89701e-06 - TCCGCCCACTGCCC
+chrX 158315157 158315170 +V_SP1_Q6 4.83523e-06 + AGTGGGCGGAGCT
+chrX 158315158 158315169 +V_EGR_Q6 9.84646e-06 + GTGGGCGGAGC
+chrX 158315197 158315208 -V_EBF_Q6 9.10919e-06 - TTCCCCTGAGG
+chrX 163841592 163841601 -V_AP1_Q6_01 4.03003e-06 - ATGACTCAG
+chrX 164579227 164579235 -V_CACD_01 9.89755e-06 - CCACACCC
diff --git a/docs/assets/reference/statistics/reference_bedmap_motifs.starch b/docs/assets/reference/statistics/reference_bedmap_motifs.starch
new file mode 100644
index 0000000..5122fa0
Binary files /dev/null and b/docs/assets/reference/statistics/reference_bedmap_motifs.starch differ
diff --git a/docs/assets/reference/statistics/reference_bedmap_reference.bed b/docs/assets/reference/statistics/reference_bedmap_reference.bed
new file mode 100644
index 0000000..fcd7676
--- /dev/null
+++ b/docs/assets/reference/statistics/reference_bedmap_reference.bed
@@ -0,0 +1,3 @@
+chr21 33031200 33032400 ref-1
+chr21 33031400 33031800 ref-2
+chr21 33031900 33032000 ref-3
diff --git a/docs/assets/reference/statistics/reference_bedmap_reference.starch b/docs/assets/reference/statistics/reference_bedmap_reference.starch
new file mode 100644
index 0000000..b4b97c3
Binary files /dev/null and b/docs/assets/reference/statistics/reference_bedmap_reference.starch differ
diff --git a/docs/assets/reference/statistics/reference_bedmap_reference_padded.bed b/docs/assets/reference/statistics/reference_bedmap_reference_padded.bed
new file mode 100644
index 0000000..d297113
--- /dev/null
+++ b/docs/assets/reference/statistics/reference_bedmap_reference_padded.bed
@@ -0,0 +1,3 @@
+chr21 33031100 33032500 ref-1
+chr21 33031300 33031900 ref-2
+chr21 33031800 33032100 ref-3
diff --git a/docs/assets/usage-examples/Frequencies-DHSs.bed.starch b/docs/assets/usage-examples/Frequencies-DHSs.bed.starch
new file mode 100644
index 0000000..10f73a2
Binary files /dev/null and b/docs/assets/usage-examples/Frequencies-DHSs.bed.starch differ
diff --git a/docs/assets/usage-examples/Frequencies-SNPs.bed.starch b/docs/assets/usage-examples/Frequencies-SNPs.bed.starch
new file mode 100644
index 0000000..22274be
Binary files /dev/null and b/docs/assets/usage-examples/Frequencies-SNPs.bed.starch differ
diff --git a/docs/assets/usage-examples/SNP_DHS_data.tgz b/docs/assets/usage-examples/SNP_DHS_data.tgz
new file mode 100644
index 0000000..ad1c5c6
Binary files /dev/null and b/docs/assets/usage-examples/SNP_DHS_data.tgz differ
diff --git a/docs/assets/usage-examples/SNP_DHS_heatmap.tcsh b/docs/assets/usage-examples/SNP_DHS_heatmap.tcsh
new file mode 100644
index 0000000..edc7f91
--- /dev/null
+++ b/docs/assets/usage-examples/SNP_DHS_heatmap.tcsh
@@ -0,0 +1,51 @@
+#!/bin/tcsh -efx
+
+set snps = GWAS_SNPs.bed
+set dhss = (LNCaP_DHS.bed PrEC_DHS.bed CACO2_DHS.bed HEPG2_DHS.bed K562_DHS.bed MCF7_DHS.bed)
+
+sort-bed $snps > $snps:r.sorted.bed
+
+
+rm -f SNP_DHS_matrix.bed
+set column_names = ("Names")
+foreach dhs ($dhss)
+ set column_names = ($column_names $dhs:r)
+
+ # add a column of DHS overlap counts to the output matrix
+ if ( ! -s SNP_DHS_matrix.bed ) then
+ # first entry -> include SNP description as the first few columns of output
+ bedmap --ec --delim "\t" --bp-ovr 1 --echo --count GWAS_SNPs.sorted.bed $dhs > SNP_DHS_matrix.bed
+ else
+ # paste on the counts
+ bedmap --ec --delim "\t" --bp-ovr 1 --count GWAS_SNPs.sorted.bed $dhs \
+ | paste SNP_DHS_matrix.bed - \
+ > tmp.bed
+
+ mv tmp.bed SNP_DHS_matrix.bed
+ endif
+end
+
+
+# sort by disease trait and condense data fields into matrix2png form
+sort -k5dr SNP_DHS_matrix.bed \
+ | awk '{ \
+ printf $1":"$2"-"$3"-"$4"-"$5"-"$6; \
+ for ( i = 7; i <= NF; ++i ) { \
+ printf "\t"$(i); \
+ } \
+ printf "\n"; \
+ }' \
+ > SNP_DHS_matrix.txt
+
+# add header information
+echo $column_names \
+ | tr ' ' '\t' \
+ | cat - SNP_DHS_matrix.txt \
+ > tmp.bed
+
+mv tmp.bed SNP_DHS_matrix.txt
+
+# make heatmap
+matrix2png -r -c -g -size 16:16 -mincolor yellow -midcolor black -maxcolor red -data SNP_DHS_matrix.txt > SNP_DHS_matrix.png
+
+exit 0
diff --git a/docs/assets/usage-examples/SNP_DHS_matrix.png b/docs/assets/usage-examples/SNP_DHS_matrix.png
new file mode 100644
index 0000000..7869d73
Binary files /dev/null and b/docs/assets/usage-examples/SNP_DHS_matrix.png differ
diff --git a/docs/assets/usage-examples/SNP_DHS_matrix_diseaseSorted.png b/docs/assets/usage-examples/SNP_DHS_matrix_diseaseSorted.png
new file mode 100644
index 0000000..5642541
Binary files /dev/null and b/docs/assets/usage-examples/SNP_DHS_matrix_diseaseSorted.png differ
diff --git a/docs/conf.py b/docs/conf.py
new file mode 100644
index 0000000..8da62f4
--- /dev/null
+++ b/docs/conf.py
@@ -0,0 +1,330 @@
+# -*- coding: utf-8 -*-
+#
+# BEDOPS documentation build configuration file, created by
+# sphinx-quickstart on Wed Aug 28 12:48:53 2013.
+#
+# This file is execfile()d with the current directory set to its containing dir.
+#
+# Note that not all possible configuration values are present in this
+# autogenerated file.
+#
+# All configuration values have a default; values that are commented out
+# serve to show the default.
+
+import sys, os
+from better import better_theme_path
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+sys.path.insert(0, os.path.abspath('.'))
+
+# -- General configuration -----------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+#needs_sphinx = '1.0'
+
+# Add any Sphinx extension module names here, as strings. They can be extensions
+# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
+extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.intersphinx', 'sphinx.ext.todo', 'sphinx.ext.coverage', 'sphinx.ext.pngmath', 'sphinx.ext.mathjax', 'sphinx.ext.ifconfig', 'sphinx.ext.viewcode']
+#, 'sphinx.ext.mathbase']
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix of source filenames.
+source_suffix = '.rst'
+
+# The encoding of source files.
+#source_encoding = 'utf-8-sig'
+
+# The master toctree document.
+master_doc = 'index'
+
+# General information about the project.
+project = u'BEDOPS'
+copyright = u'2011-2016, Shane Neph, Alex Reynolds'
+
+# The version info for the project you're documenting, acts as replacement for
+# |version| and |release|, also used in various other places throughout the
+# built documents.
+#
+# The short X.Y version.
+version = '2.4'
+# The full version, including alpha/beta/rc tags.
+release = '2.4.20'
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#language = None
+
+# There are two options for replacing |today|: either, you set today to some
+# non-false value, then it is used:
+#today = ''
+# Else, today_fmt is used as the format for a strftime call.
+#today_fmt = '%B %d, %Y'
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+exclude_patterns = ['_build']
+
+# The reST default role (used for this markup: `text`) to use for all documents.
+#default_role = None
+
+# If true, '()' will be appended to :func: etc. cross-reference text.
+#add_function_parentheses = True
+
+# If true, the current module name will be prepended to all description
+# unit titles (such as .. function::).
+#add_module_names = True
+
+# If true, sectionauthor and moduleauthor directives will be shown in the
+# output. They are ignored by default.
+#show_authors = False
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+# A list of ignored prefixes for module index sorting.
+#modindex_common_prefix = []
+
+# If true, keep warnings as "system message" paragraphs in the built documents.
+#keep_warnings = False
+
+
+# -- Options for HTML output ---------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages. See the documentation for
+# a list of builtin themes.
+#html_theme = 'default'
+html_theme = 'better'
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further. For a list of options available for each theme, see the
+# documentation.
+html_theme_options = {
+# 'cssfiles': ['_static/custom.css']
+# "collapsiblesidebar": "true",
+# "linkcolor": "blue",
+# "visitedlinkcolor": "darkblue"
+}
+
+# Add any paths that contain custom themes here, relative to this directory.
+#html_theme_path = []
+html_theme_path = [better_theme_path]
+
+# The name for this set of Sphinx documents. If None, it defaults to
+# "<project> v<release> documentation".
+html_title = "%s v%s" % (project, release)
+
+# A shorter title for the navigation bar. Default is the same as html_title.
+#html_short_title = None
+html_short_title = "Home"
+
+# The name of an image file (relative to this directory) to place at the top
+# of the sidebar.
+html_logo = 'assets/logo_with_label_v3.png'
+
+# The name of an image file (within the static path) to use as favicon of the
+# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
+# pixels large.
+html_favicon = 'assets/favicon.ico'
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+#html_static_path = ['_build/html/_static']
+#html_static_path = ['_static']
+
+# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
+# using the given strftime format.
+#html_last_updated_fmt = '%b %d, %Y'
+
+# If true, SmartyPants will be used to convert quotes and dashes to
+# typographically correct entities.
+#html_use_smartypants = True
+
+# Custom sidebar templates, maps document names to template names.
+#html_sidebars = {}
+html_sidebars = {
+ '**': ['localtoc.html', 'sourcelink.html', 'searchbox.html'],
+}
+
+# Additional templates that should be rendered to pages, maps page names to
+# template names.
+#html_additional_pages = {}
+
+# If false, no module index is generated.
+#html_domain_indices = True
+
+# If false, no index is generated.
+#html_use_index = True
+
+# If true, the index is split into individual pages for each letter.
+#html_split_index = False
+
+# If true, links to the reST sources are added to the pages.
+#html_show_sourcelink = True
+
+# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
+#html_show_sphinx = True
+
+# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
+#html_show_copyright = True
+
+# If true, an OpenSearch description file will be output, and all pages will
+# contain a <link> tag referring to it. The value of this option must be the
+# base URL from which the finished HTML is served.
+#html_use_opensearch = ''
+
+# This is the file name suffix for HTML files (e.g. ".xhtml").
+#html_file_suffix = None
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'BEDOPSdoc'
+
+
+# -- Options for LaTeX output --------------------------------------------------
+
+latex_elements = {
+# The paper size ('letterpaper' or 'a4paper').
+#'papersize': 'letterpaper',
+
+# The font size ('10pt', '11pt' or '12pt').
+#'pointsize': '10pt',
+
+# Additional stuff for the LaTeX preamble.
+#'preamble': '',
+}
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title, author, documentclass [howto/manual]).
+latex_documents = [
+ ('index', 'BEDOPS.tex', u'BEDOPS Documentation',
+ u'Shane Neph, Alex Reynolds', 'manual'),
+]
+
+# The name of an image file (relative to this directory) to place at the top of
+# the title page.
+#latex_logo = None
+
+# For "manual" documents, if this is true, then toplevel headings are parts,
+# not chapters.
+#latex_use_parts = False
+
+# If true, show page references after internal links.
+#latex_show_pagerefs = False
+
+# If true, show URL addresses after external links.
+#latex_show_urls = False
+
+# Documents to append as an appendix to all manuals.
+#latex_appendices = []
+
+# If false, no module index is generated.
+#latex_domain_indices = True
+
+
+# -- Options for manual page output --------------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+ ('index', 'bedops', u'BEDOPS Documentation',
+ [u'Shane Neph, Alex Reynolds'], 1)
+]
+
+# If true, show URL addresses after external links.
+#man_show_urls = False
+
+
+# -- Options for Texinfo output ------------------------------------------------
+
+# Grouping the document tree into Texinfo files. List of tuples
+# (source start file, target name, title, author,
+# dir menu entry, description, category)
+texinfo_documents = [
+ ('index', 'BEDOPS', u'BEDOPS Documentation',
+ u'Shane Neph, Alex Reynolds', 'BEDOPS', 'One line description of project.',
+ 'Miscellaneous'),
+]
+
+# Documents to append as an appendix to all manuals.
+#texinfo_appendices = []
+
+# If false, no module index is generated.
+#texinfo_domain_indices = True
+
+# How to display URL addresses: 'footnote', 'no', or 'inline'.
+#texinfo_show_urls = 'footnote'
+
+# If true, do not generate a @detailmenu in the "Top" node's menu.
+#texinfo_no_detailmenu = False
+
+
+# -- Options for Epub output ---------------------------------------------------
+
+# Bibliographic Dublin Core info.
+epub_title = u'BEDOPS'
+epub_author = u'Shane Neph, Alex Reynolds'
+epub_publisher = u'Shane Neph, Alex Reynolds'
+epub_copyright = u'2013, Shane Neph, Alex Reynolds'
+
+# The language of the text. It defaults to the language option
+# or en if the language is not set.
+#epub_language = ''
+
+# The scheme of the identifier. Typical schemes are ISBN or URL.
+#epub_scheme = ''
+
+# The unique identifier of the text. This can be a ISBN number
+# or the project homepage.
+#epub_identifier = ''
+
+# A unique identification for the text.
+#epub_uid = ''
+
+# A tuple containing the cover image and cover page html template filenames.
+#epub_cover = ()
+
+# A sequence of (type, uri, title) tuples for the guide element of content.opf.
+#epub_guide = ()
+
+# HTML files that should be inserted before the pages created by sphinx.
+# The format is a list of tuples containing the path and title.
+#epub_pre_files = []
+
+# HTML files shat should be inserted after the pages created by sphinx.
+# The format is a list of tuples containing the path and title.
+#epub_post_files = []
+
+# A list of files that should not be packed into the epub file.
+#epub_exclude_files = []
+
+# The depth of the table of contents in toc.ncx.
+#epub_tocdepth = 3
+
+# Allow duplicate toc entries.
+#epub_tocdup = True
+
+# Fix unsupported image types using the PIL.
+#epub_fix_images = False
+
+# Scale large images.
+#epub_max_image_width = 0
+
+# If 'no', URL addresses will not be shown.
+#epub_show_urls = 'inline'
+
+# If false, no index is generated.
+#epub_use_index = True
+
+
+# Example configuration for intersphinx: refer to the Python standard library.
+intersphinx_mapping = {'http://docs.python.org/': None}
+
+#RTD_OLD_THEME = True
+
+#html_style = 'test.css'
+def setup(app):
+ app.add_stylesheet("custom.css")
diff --git a/docs/content/installation.rst b/docs/content/installation.rst
new file mode 100644
index 0000000..7bea093
--- /dev/null
+++ b/docs/content/installation.rst
@@ -0,0 +1,377 @@
+.. _installation:
+
+Installation
+============
+
+BEDOPS is available to users as :ref:`pre-built binaries <installation_via_packages>` and :ref:`source code <installation_via_source_code>`.
+
+.. _installation_via_packages:
+
+======================
+Via pre-built packages
+======================
+
+Pre-built binaries offer the easiest and fastest installation option for users of BEDOPS. At this time, we offer binaries for 32- and 64-bit versions of Linux and OS X (Intel) platforms.
+
+-----
+Linux
+-----
+
+1. Download the current 32- or 64-bit package for Linux from `Github BEDOPS Releases <https://github.com/bedops/bedops/releases>`_.
+2. Extract the package to a location of your choice.
+ In the case of 32-bit Linux: ::
+
+ $ tar jxvf bedops_linux_i386-vx.y.z.tar.bz2
+
+ In the case of 64-bit Linux: ::
+
+ $ tar jxvf bedops_linux_x86_64-vx.y.z.tar.bz2
+
+ Replace ``x``, ``y`` and ``z`` with the version number of BEDOPS you have downloaded.
+3. Copy the extracted binaries to a location of your choice which is in your environment's ``PATH``, *e.g.* ``/usr/local/bin``: ::
+
+ $ cp bin/* /usr/local/bin
+
+ Change this destination folder, as needed.
+
+--------
+Mac OS X
+--------
+
+1. Download the current Mac OS X package for BEDOPS from `Github BEDOPS Releases <https://github.com/bedops/bedops/releases>`_.
+2. Locate the installer package (usually located in ``~/Downloads`` |--| this will depend on your web browser configuration):
+
+ .. image:: ../assets/installation/bedops_macosx_installer_icon.png
+
+3. Double-click to open the installer package. It will look something like this:
+
+ .. image:: ../assets/installation/bedops_macosx_installer_screen_v2.png
+ :width: 99%
+
+4. Follow the instructions to install BEDOPS and library dependencies to your Mac. (If you are upgrading from a previous version, components will be overwritten or removed, as needed.)
+
+.. _installation_via_source_code:
+
+===============
+Via source code
+===============
+
+.. _installation_via_source_code_on_linux:
+
+-----
+Linux
+-----
+
+Compilation of BEDOPS on Linux requires GCC 4.8.2 (both ``gcc`` and ``g++`` and related components) or greater, which includes support for `C++11 <http://en.wikipedia.org/wiki/C%2B%2B11>`_ features required by core BEDOPS tools. Other tools may be required as described in the installation documentation that follows.
+
+1. If you do not have GCC 4.8.2 or greater installed (both ``gcc`` and ``g++``), first install these tools. You can check the state of your GCC installation with ``gcc --version`` and ``g++ --version``, *e.g.*:
+
+ ::
+
+ $ gcc --version
+ gcc (GCC) 4.8.2 20140120 (Red Hat 4.8.2-15)
+ ...
+
+ If you lack a compiler or have a compiler that is older than 4.8.2, use your favorite package manager to install or upgrade the newer package. For example, in Ubuntu, you might run the following:
+
+ ::
+
+ $ sudo apt-get install gcc-4.8
+ $ sudo apt-get install g++-4.8
+ $ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50
+ $ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 50
+
+ The specifics of this process will depend on your distribution and what you want to install. Please check with your system administration or support staff if you are unsure what your options are.
+
+ You may also need to install static libraries. For instance, in a CentOS- or RH-like environment:
+
+ ::
+
+ $ sudo yum install libstdc++-static
+ $ sudo yum install glibc-static
+
+ In Ubuntu, you might instead do:
+
+ ::
+
+ $ sudo apt-get install libc6-dev
+ $ sudo apt-get install build-essentials
+
+2. Install a ``git`` client of your choice, if you do not already have one installed. Github offers an `installation guide <https://help.github.com/articles/set-up-git#platform-all>`_.
+
+ Alternatively, use ``apt-get`` or another package manager to install one, *e.g.* in Ubuntu:
+
+ ::
+
+ $ sudo apt-get install git
+
+ And in CentOS:
+
+ ::
+
+ $ sudo yum install git
+
+3. Clone the BEDOPS Git repository in an appropriate local directory:
+
+ ::
+
+ $ git clone https://github.com/bedops/bedops.git
+
+4. Enter the top-level of the local copy of the BEDOPS repository and run ``make`` to begin the build process:
+
+ ::
+
+ $ cd bedops
+ $ make
+
+.. tip:: BEDOPS now supports parallel builds. If you are compiling on a multicore or multiprocessor workstation, use ``make -j N`` where ``N`` is ``2``, ``4`` or however many cores or processors you have, in order to parallelize and speed up the build process.
+
+5. Once the build is complete, install compiled binaries and scripts to a local ``bin`` folder:
+
+ ::
+
+ $ make install
+
+6. Copy the extracted binaries to a location of your choice that is in your environment's ``PATH``, *e.g.* ``/usr/local/bin``:
+
+ ::
+
+ $ cp bin/* /usr/local/bin
+
+ Change this destination folder, as needed.
+
+.. _installation_via_source_code_on_mac_os_x:
+
+--------
+Mac OS X
+--------
+
+In Mac OS X, you have two options to install BEDOPS via source code: Compile the code manually, or use the Homebrew package manager to manage installation of a prebuilt pacakge.
+
+Compilation of BEDOPS on Mac OS X via either procedure requires Clang/LLVM 3.5 or greater, which includes support for `C++11 <http://en.wikipedia.org/wiki/C%2B%2B11>`_ features required by core BEDOPS tools. Other tools may be required as described in the installation documentation that follows. GNU GCC is no longer required for compilation on OS X hosts.
+
+^^^^^^^^^^^^^^^^^^
+Manual compilation
+^^^^^^^^^^^^^^^^^^
+
+1. If you do not have Clang/LLVM 3.5 or greater installed, first do so. You can check this with ``clang -v``, *e.g.*:
+
+ ::
+
+ $ clang -v
+ Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn)
+ ...
+
+ For Mac OS X users, we recommend installing `Apple Xcode <https://developer.apple.com/xcode/>`_ and its Command Line Tools, via the ``Preferences > Downloads`` option within Xcode. At the time of this writing, Xcode 6.1.1 includes the necessary command-line tools to compile BEDOPS.
+
+2. Install a ``git`` client of your choice, if you do not already have one installed. Github offers an `installation guide <https://help.github.com/articles/set-up-git#platform-all>`_.
+
+3. Clone the BEDOPS Git repository in an appropriate local directory:
+
+ ::
+
+ $ git clone https://github.com/bedops/bedops.git
+
+4. Run ``make`` in the top-level of the local copy of the BEDOPS repository:
+
+ ::
+
+ $ cd bedops
+ $ make
+
+.. tip:: BEDOPS now supports parallel builds. If you are compiling on a multicore or multiprocessor workstation, use ``make -j N`` where ``N`` is ``2``, ``4`` or however many cores or processors you have, in order to parallelize and speed up the build process.
+
+5. Once the build is complete, install compiled binaries and scripts to a local ``bin`` folder:
+
+ ::
+
+ $ make install
+
+6. Copy the extracted binaries to a location of your choice that is in your environment's ``PATH``, *e.g.* ``/usr/local/bin``:
+
+ ::
+
+ $ cp bin/* /usr/local/bin
+
+ Change this destination folder, as needed.
+
+^^^^^^^^^^^^^^^^^^^^^^^^^
+Installation via Homebrew
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Homebrew is a popular package management toolkit for Mac OS X. It facilitates easy installation of common scientific and other packages. Homebrew can usually offer a version of BEDOPS concurrent with the present release; occasionally, it may be one or two minor versions behind.
+
+1. If you do not have Clang/LLVM 3.5 or greater installed, first do so. You can check this with ``clang -v``, *e.g.*:
+
+ ::
+
+ $ clang -v
+ Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn)
+ ...
+
+ For Mac OS X users, we recommend installing `Apple Xcode <https://developer.apple.com/xcode/>`_ and its Command Line Tools, via the ``Preferences > Downloads`` option within Xcode. At the time of this writing, Xcode 6.1.1 includes the necessary command-line tools to compile BEDOPS.
+
+2. Follow the instructions listed on the `Homebrew site <http://brew.sh>`_ to install the basic package manager components.
+
+3. Run the following command:
+
+ ::
+
+ $ brew install homebrew/science/bedops
+
+.. _installation_via_source_code_on_docker:
+
+------
+Docker
+------
+
+`Docker <https://www.docker.com/what-docker>`_ containers wrap up a piece of software (such as BEDOPS) in a complete, self-contained VM.
+
+To set up a CentOS 7-based Docker container with BEDOPS binaries, you can use the following steps:
+
+ ::
+
+ $ git clone https://github.com/bedops/bedops.git
+ $ cd bedops
+ $ make docker
+ ...
+ $ docker run -i -t bedops
+
+The following then generates a set of RPMs using the CentOS 7 image, which can run in CentOS 6 and Fedora 21 containers:
+
+ ::
+
+ $ make rpm
+
+Thanks go to Leo Comitale for his efforts here.
+
+.. _installation_via_source_code_on_cygwin:
+
+------
+Cygwin
+------
+
+1. Make sure you are running a 64-bit version of Cygwin. Compilation of BEDOPS on 32-bit versions of Cygwin is not supported.
+
+ To be sure, open up your Cywin installer application (separate from the Cygwin terminal application) and look for the **64 bit** marker next to the setup application version number:
+
+ .. image:: ../assets/installation/bedops_cygwin_installer_screen.png
+ :width: 99%
+
+ For instance, this Cygwin installer is version 2.831 and is 64-bit.
+
+2. Check that you have GCC 4.8.2 or greater installed. You can check this by opening the Cygwin terminal window (note that this is not the same as the Cygwin installer application) and typing ``gcc --version``, *e.g.*:
+
+ ::
+
+ $ gcc --version
+ gcc (GCC) 4.8.2
+ ...
+
+ If you do not have ``gcc`` installed, then open the Cygwin (64-bit) installer application again, navigate through the current setup options, and then mark the GCC 4.8.* packages for installation:
+
+ .. image:: ../assets/installation/bedops_cygwin_installer_gcc_screen.png
+ :width: 99%
+
+ If it helps, type in ``gcc`` into the search field to filter results to GCC-related packages. Make sure to mark the following packages for installation, at least:
+
+ * **gcc-core**
+ * **gcc-debuginfo**
+ * **gcc-g++**
+ * **gcc-tools-xyz**
+ * **libgcc1**
+
+ Click "Next" to follow directives to install those and any other selected package items. Then run ``gcc --version`` as before, to ensure you have a working GCC setup.
+
+3. Install a ``git`` client of your choice. You can compile one or use the precompiled ``git`` package available through the Cygwin (64-bit) installer:
+
+ .. image:: ../assets/installation/bedops_cygwin_installer_git_screen.png
+ :width: 99%
+
+ If it helps, type in ``git`` into the search field to filter results to Git-related packages. Make sure to install the following package, at least:
+
+ * **git**
+
+4. In a Cygwin terminal window, clone the BEDOPS Git repository to an appropriate local directory:
+
+ ::
+
+ $ git clone https://github.com/bedops/bedops.git
+
+4. Enter the top-level of the local copy of the BEDOPS repository and run ``make`` to begin the build process:
+
+ ::
+
+ $ cd bedops
+ $ make
+
+.. tip:: BEDOPS now supports parallel builds. If you are compiling on a multicore or multiprocessor workstation, use ``make -j N`` where ``N`` is ``2``, ``4`` or however many cores or processors you have, in order to parallelize and speed up the build process.
+
+5. Once the build is complete, install compiled binaries and scripts to a local ``bin`` folder:
+
+ ::
+
+ $ make install
+
+6. Copy the extracted binaries to a location of your choice that is in your environment's ``PATH``, *e.g.* ``/usr/bin``:
+
+ ::
+
+ $ cp bin/* /usr/bin
+
+ Change this destination folder, as needed.
+
+.. _installation_os_x_installer_construction:
+
+=====================================================
+Building an OS X installer package for redistribution
+=====================================================
+
+1. Follow steps 1-3 and step 5 from the :ref:`Via Source Code <installation_via_source_code>` documentation.
+
+2. Run ``make install_osx_packaging_bins`` in the top-level of the local copy of the BEDOPS repository:
+
+ ::
+
+ $ make install_osx_packaging_bins
+
+3. Install `WhiteBox Packages.app <http://s.sudre.free.fr/Software/Packages/about.html>`_, an application for building OS X installers, if not already installed.
+
+4. Create a ``build`` directory to store the installer and open the ``BEDOPS.pkgproj`` file in the top-level of the local copy of the BEDOPS repository, in order to open the BEDOPS installer project, *e.g.*:
+
+ ::
+
+ $ mkdir -p packaging/os_x/build && open packaging/os_x/BEDOPS.pkgproj
+
+ This will open up the installer project with the ``Packages.app`` application.
+
+5. Within ``Packages.app``, modify the project to include the current project version number or other desired changes, as applicable. Make sure the project is set up to build a `"flat"-formatted (xar) <http://s.sudre.free.fr/Stuff/Ivanhoe/FLAT.html>`_ package, not a bundle, otherwise the digital signing step will fail.
+
+6. Run the ``Build > Build`` menu selection to construct the installer package, located in the ``packaging/os_x/build`` subdirectory. Move this installer to the ``/tmp`` directory:
+
+ ::
+
+ $ mv packaging/os_x/build/BEDOPS\ X.Y.Z.pkg /tmp/BEDOPS.X.Y.Z.unsigned.pkg
+
+7. Find the ``Developer ID Installer`` name that will be used to digitally sign the installer ``pkg`` file, *e.g.*:
+
+ ::
+
+ $ security find-certificate -a -c "Developer ID Installer" | grep "alis"
+ "alis"<blob>="Developer ID Installer: Foo B. Baz (ABCD12345678)"
+
+ Here, the name is ``Developer ID Installer: Foo B. Baz``.
+
+ (This certificate name is unique to the developer. If necessary, you may need to sign up for a `Mac Developer Program <https://developer.apple.com/programs/mac/>`_ account with Apple to set up `required certificates <https://developer.apple.com/library/mac/documentation/IDEs/Conceptual/AppDistributionGuide/DistributingApplicationsOutside/DistributingApplicationsOutside.html>`_.)
+
+8. Sign the package installer, *e.g.*:
+
+ ::
+
+ $ productsign --timestamp --sign "Developer ID Installer: Foo B. Baz" /tmp/BEDOPS.X.Y.Z.unsigned.pkg /tmp/BEDOPS.X.Y.Z.signed.pkg
+
+9. Compress the signed ``pkg`` file and publish via GitHub releases (see :ref:`release preparation <release>` for information about publishing the installer).
+
+.. |--| unicode:: U+2013 .. en dash
+.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace
+ :trim:
diff --git a/docs/content/overview.rst b/docs/content/overview.rst
new file mode 100644
index 0000000..21461af
--- /dev/null
+++ b/docs/content/overview.rst
@@ -0,0 +1,72 @@
+.. _overview:
+
+Overview
+========
+
+============
+About BEDOPS
+============
+BEDOPS is an open-source command-line toolkit that performs highly efficient and scalable Boolean and other set operations, statistical calculations, archiving, conversion and other management of genomic data of arbitrary scale.
+
+The suite includes tools for set and statistical operations (:ref:`bedops`, :ref:`bedmap` and :ref:`closest-features`) and compression of large inputs into a novel lossless format (:ref:`starch`) that can provide greater space savings and faster data extractions than current alternatives. BEDOPS offers native support for this deep compression format, in addition to BED.
+
+BEDOPS also offers logarithmic time search to per-chromosome regions in sorted BED data (in :ref:`bedextract` and core BEDOPS tools). This feature makes whole-genome analyses "embarassingly parallel", in that per-chromosome computations can be distributed onto separate work nodes, with results collated at the end in `map-reduce <http://en.wikipedia.org/wiki/MapReduce>`_ fashion.
+
+Sorting arbitrarily large BED files is easy with :ref:`sort-bed`, which easily scales beyond available system memory, as needed. We also offer portable conversion scripts that transform data in common genomic formats (SAM/BAM, GFF/GTF, PSL, WIG, and VCF) to sorted BED data that are ready to use with core BEDOPS utilities.
+
+All of these tools are made to be glued together with common UNIX input and output streams. This helps make your pipeline design and maintenance easy, fast and flexible.
+
+=========================
+Why you should use BEDOPS
+=========================
+
+-------------------------
+BEDOPS tools are flexible
+-------------------------
+
+Our tools fit easily into analysis pipelines, allow practically unlimited inputs, and reduce I/O overhead through standard UNIX input and output streams: ::
+
+ $ bedops --intersect A.bed B.bed C.bed \
+ | bedmap --echo --mean - D.bed \
+ | ... \
+ > Answer.bed
+
+Our :ref:`bedops` core tool offers numerous set operations of all kinds, including those in the slide below:
+
+.. image:: ../assets/overview/BEDOPS_Presentation_bedops_ops.png
+ :width: 75%
+
+The :ref:`bedmap` core tool applies a wide variety of statistical and mapping operations to genomic inputs:
+
+.. image:: ../assets/overview/BEDOPS_Presentation_bedmap_ops.png
+ :width: 75%
+
+These and other tools send their results to the output stream, ready for consumption by processes downstream along your pipeline.
+
+-----------------------------------
+BEDOPS tools are fast and efficient
+-----------------------------------
+
+BEDOPS tools take advantage of the information in a sorted BED file to use only what data are needed to perform the analysis. Our tools are agnostic about genomes: Run BEDOPS tools on genomes as small as *Circovirus* or as large as *Polychaos dubium*!
+
+`Independent tests <http://www.ncbi.nlm.nih.gov/pubmed/23277498>`_ comparing various kits show that BEDOPS offers the fastest operations with the lowest memory overhead:
+
+.. image:: ../assets/overview/BEDOPS_Presentation_grok_tests.png
+ :width: 75%
+
+BEDOPS also introduces a novel and **lossless** compression format called :ref:`Starch <starch_specification>` that reduces whole-genome BED datasets to **~5%** of their original size (and BAM datasets to roughly 35% of their original size), while adding useful metadata and random access, allowing instantaneous retrieval of any compressed chromosome:
+
+.. image:: ../assets/overview/BEDOPS_Presentation_starch_efficiency.png
+ :width: 75%
+
+--------------------------------------------------------------
+BEDOPS tools make your work embarrassingly easy to parallelize
+--------------------------------------------------------------
+
+BEDOPS tools introduce the ``--chrom`` option to efficiently locate a specified chromosome within a sorted BED file, useful for “embarrassingly parallel” whole-genome analyses, where work can be logically divided by units of chromosome in a "map-reduce" fashion.
+
+-----------------------------------------------
+BEDOPS tools are open, documented and supported
+-----------------------------------------------
+
+`BEDOPS <https://github.com/bedops/bedops>`_ is available as GPL-licensed source code and precompiled binaries for Linux and Mac OS X. We offer support through online forums such as our `own <http://bedops.uwencode.org/forum/>`_ and `Biostars <http://www.biostars.org>`_ and `recipes <https://bedops.readthedocs.org/en/latest/content/usage-examples.html>`_ showing BEDOPS tools in use for answering common research questions.
diff --git a/docs/content/performance.rst b/docs/content/performance.rst
new file mode 100644
index 0000000..6e368b2
--- /dev/null
+++ b/docs/content/performance.rst
@@ -0,0 +1,137 @@
+Performance
+===========
+
+In this document, we compare the performance of our set operations and compression utilities with common alternatives. In-house performance measures include speed, memory usage, and compression efficiency on a dual-core machine with 18 GB of virtual memory. Additionally, we report independently-generated performance statistics collected by a research group that has recently released a similar analysis toolkit.
+
+-------------------------
+Test environment and data
+-------------------------
+
+Timed results were derived using actual running times (also known as wall-clock times), averaged over 3 runs. All timed tests were performed using a single 64-bit Linux machine with a dual-core 3 GHz Intel Xeon processor, 8 GB of physical RAM, and 18 GB of total virtual memory. All caches were purged in between sequential program runs to remove hardware biases.
+
+Random subsamples of `phyloP conservation <http://compgen.bscb.cornell.edu/phast/>`_ for the human genome were used as inputs for testing whenever the full phyloP results were not used. The full phyloP results were downloaded from `UCSC <http://hgdownload.cse.ucsc.edu/goldenPath/hg19/phyloP46way/>`_.
+
+------------------------------
+Set operations with ``bedops``
+------------------------------
+
+In this section, we provide time and memory measurements of various :ref:`bedops` operations against analogous `BEDTools <http://code.google.com/p/bedtools/>`_ utilities.
+
+^^^^^^^^^^^^^^^^^^^^^
+Direct merge (sorted)
+^^^^^^^^^^^^^^^^^^^^^
+
+The performance of the ``mergeBed`` program (with the ``-i`` option) from the BEDTools suite (v2.12.0) was compared with that of the ``--merge`` option of our :ref:`bedops` utility.
+
+.. image:: ../assets/performance/performance_bedops_merge_sorted.png
+ :width: 99%
+
+As measured, the ``mergeBed`` program loads all data from a file into memory and creates an index before computing results, incurring longer run times and higher memory costs that can lead to failures. The :ref:`bedops` utility minimizes memory consumption by retaining only the information required to compute the next line of output.
+
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Complement and intersection
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The ``complementBed`` (with ``-i`` and ``-g`` options) and ``intersectBed`` (with ``-u``, ``-a``, and ``-b`` options) programs from the BEDTools suite (v2.12.0) also were compared to our :ref:`bedops` program.
+
+.. image:: ../assets/performance/performance_bedops_complement_sorted.png
+ :width: 99%
+
+.. image:: ../assets/performance/performance_bedops_intersect_sorted.png
+ :width: 99%
+
+Both BEDTools programs were unable to complete operations after 51M elements with the allocated 18 GB of memory. The :ref:`bedops` program continued operating on the full dataset.
+
+.. important:: It is our understanding that the BEDTools' ``intersectBed`` program was modified to accept (optionally) sorted data for improved performance some time after these results were published.
+
+ A :ref:`more recent study <independent_testing>` suggests ``bedops --intersect`` still offers better memory and running time performance characteristics than recent versions of BEDTools.
+
+^^^^^^^^^^^^^^^^^^^^^^^
+Direct merge (unsorted)
+^^^^^^^^^^^^^^^^^^^^^^^
+
+In typical pipelines, where utilities are chained together to perform more complex operations, the performance and scalability gaps between BEDOPS and competitive tool suites widen. We show here the use of :ref:`sort-bed` on unsorted BED input, piping it to BEDOPS tools:
+
+.. image:: ../assets/performance/performance_bedops_merge_unsorted.png
+ :width: 99%
+
+Time performance of :ref:`bedops` stays under that of ``mergeBed`` (BEDTools v2.12), while continuing past the point where ``mergeBed`` fails. Memory limitations of the system are easily overcome by using the ``--max-mem`` operator with :ref:`sort-bed`, allowing the ``--merge`` operation to continue unimpeded even with ever-larger unsorted BED inputs.
+
+^^^^^^^^^^
+Discussion
+^^^^^^^^^^
+
+The :ref:`bedops` utility performs a wide range of set operations (merge, intersect, union, symmetric difference, and so forth). As with all main utilities in BEDOPS, the program requires :ref:`sorted <sort-bed>` inputs and creates sorted results on output. As such, sorting is, at most, a *one-time cost* to operate on data any number of times in the most efficient way. Also, as shown in an :ref:`independent study <independent_testing>`, BEDOPS also sorts data more efficiently than other [...]
+
+Another important feature of :ref:`bedops` that separates it from the competition is its ability to work with :ref:`any number of inputs <multiple_inputs>` at once. Every operation (union, difference, intersection, and so forth) accepts an arbitrary number of inputs, and each input can be of any size.
+
+-----------------------------------------
+Compression characteristics of ``starch``
+-----------------------------------------
+
+The :ref:`starch` utility offers high-quality BED compression into a format with a smaller footprint than common alternatives. The format is designed to help manage data bloat in this genomic era. Further, the format actually enables improved access times to the vast majority of datasets, as compared with raw (uncompressed) and naively-compressed data.
+
+Here, we provide two measures of this format's utility: comparing the compression efficiency of the ``bzip2``-backed Starch format against common, "naive" ``bzip2``-compression of UCSC `BedGraph <http://genome.ucsc.edu/goldenPath/help/bedgraph.html>`_ and `WIG <http://genome.ucsc.edu/goldenPath/help/wiggle.html>`_ forms of BED data, and by comparing the time required to extract the records for any one chromosome from these formats as well as from a raw (uncompressed) BED file.
+
+^^^^^^^^^^^^^^^^^^^^^^
+Compression efficiency
+^^^^^^^^^^^^^^^^^^^^^^
+
+After just 10K rows (roughly 300 kB of raw BED data storing phyloP conservation scores), compression into the Starch format begins to consistently outperform ``bzip2`` compression of the same data stored in either variable-step WIG or UCSC BedGraph formats.
+
+.. image:: ../assets/performance/performance_starch_efficiency.png
+ :width: 99%
+
+For very large raw BED datasets, the Starch format stores the original data in approximately 5% of the original input size. These improved compression results generalize to compressed versions of the fixed-step WIG format, as well. For more information, refer to the Supplemental Data in our `Bioinformatics <http://bioinformatics.oxfordjournals.org/content/28/14/1919.abstract>`_ paper.
+
+^^^^^^^^^^^^^^^
+Extraction time
+^^^^^^^^^^^^^^^
+
+Data were sorted per sort-bed with chromosomes in lexicographical order. Extractions by chromosomes were significantly faster in general with the Starch format, even over raw (sequentially-processed) BED inputs:
+
+.. image:: ../assets/performance/performance_unstarch_extractiontime.png
+ :width: 99%
+
+Under the assumption that chromosomes create very natural partitions of the data, the Starch format was designed using a chromosome-indexing scheme. This mechanism for random access further helps to improve data processing times within a clustered environment. Again, for more information, refer to the Supplemental Data in our `Bioinformatics <http://bioinformatics.oxfordjournals.org/content/28/14/1919.abstract>`_ paper.
+
+.. important:: Our :ref:`bedextract` program similarly makes it possible to extract data quickly by chromosome in any properly sorted BED file. However, for large (or many) data sets, deep compression has serious benefit. In our lab, more than 99% of all files are not touched (even) on a monthly basis |---| and new results are generated every day. Why would we want to keep all of that data in fully-bloated BED form? The workhorse programs of BEDOPS accept inputs in Starch format directly [...]
+
+.. _independent_testing:
+
+-------------------
+Independent testing
+-------------------
+
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Genomic Region Operation Kit (GROK)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Ovaska, et al. independently developed a genomic analysis toolkit called Genomic Region Operation Kit (GROK), which is described in more detail in `their publication in IEEE/ACM Transactions on Computational Biology and Bioinformatics <http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=6399464&isnumber=4359833>`_.
+
+In it, they compare the performance characteristics of their GROK toolkit with their analogs in the BEDTools and BEDOPS suites, which they summarize as follows:
+
+.. topic:: Results
+
+ Results of the benchmark analyses are shown in Table VII. GROK and BEDTools perform at comparable levels for speed and memory efficiency. In this benchmark BEDOPS is the fastest and least memory consuming method, which was expected due to performance optimized implementation of its operations :sup:`9`. The optimized performance of BEDOPS, however, entails stronger assumptions for the input than GROK and BEDTools, in particular the requirement for pre-sorting the input BED files.
+
+Operational input was a 14 MB BED file containing annotations of human gene and exon coordinates, totaling ~423k records. We summarize the results of operations on that input here:
+
+.. image:: ../assets/performance/performance_independent_grok.png
+ :width: 99%
+
+Remember that with BEDOPS, sorting is, at most, a *one-time cost* to operate on data any number of times in the most efficient way. Since the programs in BEDOPS produce sorted outputs, you never need to sort results before using them in downstream analyses.
+
+-----------------------------
+Worst-case memory performance
+-----------------------------
+
+Non-sorting utilities operate efficiently with large inputs by keeping memory overhead low. The worst-case design scenario, however, causes the :ref:`bedops` or :ref:`bedmap` programs to load all data from a single chromosome from a single input file into memory. For :ref:`bedops`, the worst-case scenario applies only to the ``--element-of`` and ``--not-element-of`` options.
+
+Fortunately, worst-case situations are conceptually easy to understand, and their underlying questions often require no windowing logic to answer, so simpler approaches can sometimes be used. Conceptually, any summary analysis over an entire chromosome triggers the worst-case scenario. For example, to determine the number of sequencing tags mapped to a given chromosome, :ref:`bedmap` loads all tag data for that one chromosome into memory, whereas a one-line ``awk`` statement can provide [...]
+
+We note that the worst case memory performance of non-sorting BEDOPS utilities still improves upon the best case performance of current alternatives.
+
+.. |--| unicode:: U+2013 .. en dash
+.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace
+ :trim:
diff --git a/docs/content/reference.rst b/docs/content/reference.rst
new file mode 100644
index 0000000..3e20767
--- /dev/null
+++ b/docs/content/reference.rst
@@ -0,0 +1,8 @@
+Reference
+=========
+
+.. toctree::
+
+ reference/set-operations
+ reference/statistics
+ reference/file-management
diff --git a/docs/content/reference/file-management.rst b/docs/content/reference/file-management.rst
new file mode 100644
index 0000000..ee6a5c8
--- /dev/null
+++ b/docs/content/reference/file-management.rst
@@ -0,0 +1,8 @@
+File management
+===============
+
+.. toctree::
+
+ file-management/sorting
+ file-management/compression
+ file-management/conversion
diff --git a/docs/content/reference/file-management/compression.rst b/docs/content/reference/file-management/compression.rst
new file mode 100644
index 0000000..42d30e9
--- /dev/null
+++ b/docs/content/reference/file-management/compression.rst
@@ -0,0 +1,9 @@
+Compression
+===========
+
+.. toctree::
+
+ compression/starch
+ compression/unstarch
+ compression/starchcat
+ compression/starch-specification
diff --git a/docs/content/reference/file-management/compression/starch-specification.rst b/docs/content/reference/file-management/compression/starch-specification.rst
new file mode 100644
index 0000000..7f3e202
--- /dev/null
+++ b/docs/content/reference/file-management/compression/starch-specification.rst
@@ -0,0 +1,180 @@
+.. _starch_specification:
+
+Starch (v2.x) specification
+===========================
+
+This document describes the specification for a "Starch v2.x"-formatted archive, which is created by the :ref:`starch` and :ref:`starchcat` utilities and extracted with the :ref:`unstarch` utility.
+
+.. _starch_archive_structure:
+
+=================
+Archive structure
+=================
+
+A Starch v2.x archive is divided up into six portions:
+
+.. image:: ../../../../assets/reference/file-management/compression/starch_specification.png
+ :width: 99%
+
+Each portion is explained below.
+
+.. _starch_archive_magic_bytes:
+
+===========
+Magic bytes
+===========
+
+.. image:: ../../../../assets/reference/file-management/compression/starch_specification_magicbytes.png
+
+We use four ``unsigned char`` bytes ``ca5cade5`` to identify the file as a Starch v2.x archive. BEDOPS utilities and applications which process Starch archives search for these magic bytes at the start of the file to identify it as a v2.x archive.
+
+If the file does not have these bytes, it may still be a legacy (v1, v1.2 or v1.5) Starch archive, which is identified and processed by other means not described in this document.
+
+.. _starch_archive_chromosome_streams:
+
+==================
+Chromosome streams
+==================
+
+.. image:: ../../../../assets/reference/file-management/compression/starch_specification_chromosomestreams.png
+
+These variable-length data streams contain compressed, transformed BED data separated by chromosome.
+
+Transformation is performed on BED input to remove redundancy in the coordinate data provided in the second and third columns ("start" and "stop" coordinates). Data in any additional columns are left unchanged. Transformed data are highly reduced and compressed further with open-source ``bzip2`` or ``gzip`` libraries.
+
+Starch v2 streams extracted with :ref:`unstarch`, :ref:`bedops`, :ref:`bedmap` or :ref:`closest-features` are uncompressed with the requisite backend compression library calls and then reverse-transformed to recover the original BED input.
+
+.. _starch_archive_metadata:
+
+========
+Metadata
+========
+
+The archive metadata is made up of data, offset and hash components, each with different characteristics as described below.
+
+.. _starch_archive_metadata_data:
+
+----
+Data
+----
+
+.. image:: ../../../../assets/reference/file-management/compression/starch_specification_metadata.png
+
+This variable-length portion of the archive is a `JSON <http://www.json.org/>`_ -formatted ASCII string that describes the Starch archive contents. We choose JSON as it provides a human-readable structure, allows easier extensibility for future revisions of BEDOPS and is a common format in web services, facilitating usage with web- and command-line-based bioinformatics pipelines.
+
+The format of a typical Starch v2 JSON object is made up of two key-value pairs, one for archive and the second for streams, which we describe in greater detail below.
+
+.. _starch_archive_metadata_archive:
+
+^^^^^^^
+Archive
+^^^^^^^
+
+The archive key scheme is described below:
+
+::
+
+ {
+ "archive": {
+ "type": "starch",
+ "customUCSCHeaders": (Boolean),
+ "creationTimestamp": (string),
+ "version": { "major": 2, "minor": 1, "revision": 0 },
+ "compressionFormat": (unsigned integer),
+ "note": (string, optional)
+ },
+ ...
+ }
+
+At this time, the ``type`` key will specify ``starch``.
+
+The ``customUCSCHeaders`` value is either ``true`` or ``false``. If ``true``, the ``--header`` option was provided to :ref:`starch` when the archive was created, and the archive may likely contain `UCSC headers <http://genome.ucsc.edu/FAQ/FAQformat.html#format1.7>`_ commonly encountered with UCSC Genome Browser data downloads. Archives created with :ref:`starchcat` do not support UCSC headers (*i.e.*, this value is false in archives created with :ref:`starchcat`).
+
+The ``creationTimestamp`` value is an `ISO 8601 <http://en.wikipedia.org/wiki/ISO-8601>`_ string that specifies the creation date and time of the archive. Most scripting and programming languages can parse ISO 8601-formatted date strings with little or no extra work.
+
+The ``version`` is a triplet of integer values specifying the version of the archive. For a v2.x archive, the major version will be set to ``2``. Major, minor and revision values need not necessarily be the identical to the version of the :ref:`starch` binary used to create the archive. At this time (April 2014), we offer v2 and v2.1 archives: each make different stream metadata fields available.
+
+The ``compressionFormat`` key specifies the backend compression format used for the chromosome streams contained within the archive. We currently use ``0`` to specify ``bzip2`` and ``1`` to specify ``gzip``. No other backend formats are available at this time.
+
+The ``note`` key is an optional string that can contain information if the ``--note="abc..."`` option is provided to :ref:`starch` when the archive is created. If this option is not specified at creation time, this key will not be present in the metadata.
+
+.. _starch_archive_metadata_stream:
+
+^^^^^^^
+Streams
+^^^^^^^
+
+The ``streams`` key scheme contains an array of objects, each describing the attributes of an individually-compressed chromosome stream, sorted on chromosome name:
+
+::
+
+ {
+ ...,
+ "streams": [
+ {
+ "chromosome": (string),
+ "filename": (string),
+ "size": (unsigned integer),
+ "uncompressedLineCount": (unsigned integer),
+ "nonUniqueBaseCount": (unsigned integer),
+ "uniqueBaseCount": (unsigned integer),
+ "duplicateElementExists": (Boolean),
+ "nestedElementExists": (Boolean)
+ },
+ ...
+ ]
+ }
+
+The ``chromosome`` key specifies the name of the chromosome associated with the compressed regions. For example, this might be ``chr1``, ``chrX``, etc.
+
+The ``filename`` key is a string that concatenates the chromosome name, process ID and host strings (unless a ``unique-tag`` value is given to :ref:`starch` when creating an archive, which would replace the process ID and host values). It is a holdover from a procedure for creating legacy archives and exists for backwards-compatibility.
+
+The ``size`` key specifies the byte-size of the compressed stream and exists for calculating offsets within the archive where a chromosome stream begins (and ends). In this way, :ref:`unstarch` and other Starch-capable applications can extract data only from a desired chromosome, without wasteful processing of the remainder of the archive.
+
+The ``uncompressedLineCount`` key specifies the number of BED elements that were compressed into the chromosome stream. This is a precomputed equivalent to the result of a ``wc -l`` (line count) operation performed on BED elements that match the given chromosome, without needing to stream through the entire file.
+
+The ``nonUniqueBaseCount`` key specifies the sum of non-unique bases across all BED elements compressed into the chromosome stream. Non-uniqueness allows multiple counting of bases in elements which overlap.
+
+The ``uniqueBaseCount`` key specifies the sum of unique bases across all BED elements compressed into the chromosome stream. Uniqueness takes into account overlapping elements and therefore only counts bases once.
+
+The ``duplicateElementExists`` key specifies if there is a duplicate BED element somewhere within the compressed chromosome stream. A duplicate element is defined by matching chromosome name and start and stop coordinates; id, score, strand and other optional information are ignored when determining if a duplicate element exists.
+
+The ``nestedElementExists`` key specifies if there is a nested BED element somewhere within the compressed chromosome stream. Refer to BEDOPS documentation to see how :ref:`nested elements <nested_elements>` are defined.
+
+.. _starch_archive_metadata_offset:
+
+------
+Offset
+------
+
+.. image:: ../../../../assets/reference/file-management/compression/starch_specification_metadataoffset.png
+
+The metadata offset is a 20-byte long, zero-padded string that specifies the number of bytes into the file where the JSON-formatted metadata string is stored.
+
+The :ref:`unstarch` utility and the newer versions of :ref:`bedops` and :ref:`bedmap` applications use this offset to jump to the correct point in the file where the metadata can be read into memory and processed into an internal data structure.
+
+.. _starch_archive_metadata_checksum:
+
+----
+Hash
+----
+
+.. image:: ../../../../assets/reference/file-management/compression/starch_specification_metadatachecksum.png
+
+The metadata hash is a 28-byte long, `Base64 <http://en.wikipedia.org/wiki/Base64>`_ -encoded `SHA-1 <http://en.wikipedia.org/wiki/SHA-1#Data_Integrity>`_ hash of the bytes that make up the JSON-formatted metadata string.
+
+This data is used to validate the integrity of the metadata: Any change to the metadata (*e.g.*, data corruption that changes stream offset values) causes :ref:`unstarch` and other Starch utilities and applications to exit early with a fatal, informative error.
+
+.. _starch_archive_padding:
+
+=======
+Padding
+=======
+
+.. image:: ../../../../assets/reference/file-management/compression/starch_specification_padding.png
+
+The remainder of the file is made up of 80 bytes of padding, which are unused at this time.
+
+.. |--| unicode:: U+2013 .. en dash
+.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace
+ :trim:
diff --git a/docs/content/reference/file-management/compression/starch.rst b/docs/content/reference/file-management/compression/starch.rst
new file mode 100644
index 0000000..8f3c4b4
--- /dev/null
+++ b/docs/content/reference/file-management/compression/starch.rst
@@ -0,0 +1,123 @@
+.. _starch:
+
+`starch`
+========
+
+With high-throughput sequencing generating large amounts of genomic data, archiving can be a critical part of an analysis toolkit. BEDOPS includes the ``starch`` utility to provide a method for efficient and lossless compression of `UCSC BED-formatted data <http://genome.ucsc.edu/FAQ/FAQformat.html#format1>`_ into the :ref:`Starch v2 format <starch_specification>`.
+
+Starch v2 archives can be extracted with :ref:`unstarch` to recover the original BED input, or processed as inputs to :ref:`bedops` and :ref:`bedmap`, where set operations and element calculations can be performed directly and without the need for intermediate file extraction.
+
+The :ref:`starch` utility includes `large file support <http://en.wikipedia.org/wiki/Large_file_support>`_ on 64-bit operating systems, enabling compression of more than 2 GB of data (a common restriction on 32-bit systems).
+
+Data can be stored with one of two open-source backend compression methods, either ``bzip2`` or ``gzip``, providing the end user with a reasonable tradeoff between speed and storage performance that can be useful for working with constrained storage situations or slower hardware.
+
+==================
+Inputs and outputs
+==================
+
+-----
+Input
+-----
+
+As with other BEDOPS utilities, :ref:`starch` takes in :ref:`sorted <sort-bed>` BED data as input. You can use :ref:`sort-bed` to sort BED data, piping it into :ref:`starch` as standard input (see :ref:`Example <starch_example>` section below).
+
+.. note:: While more than three columns may be specified, most of the space savings in the Starch format are derived from from a pre-processing step on the coordinates. Therefore, minimizing or removing unnecessary columnar data from the fourth column on (*e.g.*, with ``cut -f1-3`` or similar) can help improve compression efficiency considerably.
+
+------
+Output
+------
+
+This utility outputs a :ref:`Starch v2-formatted <starch_specification>` archive file.
+
+.. _starch_example:
+
+============
+Requirements
+============
+
+The :ref:`starch` tool requires data in a relaxed variation of the BED format as described by `UCSC’s browser documentation <http://genome.ucsc.edu/FAQ/FAQformat.html#format1>`_. BED data should be sorted before compression, *e.g.* with BEDOPS :ref:`sort-bed`.
+
+At a minimum, three columns are required to specify the chromosome name and start and stop positions. Additional columns may be specified, containing up to 128 kB of data per row (including tab delimiters).
+
+=====
+Usage
+=====
+
+Use the ``--help`` option to list all options:
+
+::
+
+ starch
+ citation: http://bioinformatics.oxfordjournals.org/content/28/14/1919.abstract
+ binary version: 2.4.20 (creates archive version: 2.1.0)
+ authors: Alex Reynolds and Shane Neph
+
+ USAGE: starch [--note="foo bar..."] [--bzip2 | --gzip] [--header] [<unique-tag>] <bed-file>
+
+ * BED input must be sorted lexicographically (e.g., using BEDOPS sort-bed).
+ * Please use '-' to indicate reading BED data from standard input.
+ * Output must be directed to a regular file.
+ * The bzip2 compression type makes smaller archives, while gzip extracts faster.
+
+ Process Flags:
+
+ --note="foo bar..." Append note to output archive metadata (optional)
+ --bzip2 | --gzip Specify backend compression type (optional, default is bzip2)
+ --header Support BED input with custom UCSC track, SAM or VCF headers, or generic comments (optional)
+ <unique-tag> Specify unique identifier for transformed data (optional)
+ --help Show this usage message
+ --version Show binary version
+
+=======
+Options
+=======
+
+------------------------
+Backend compression type
+------------------------
+
+Use the ``--bzip2`` or ``--gzip`` operators to use the ``bzip2`` or ``gzip`` compression algorithms on transformed BED data. By default, :ref:`starch` uses the ``bzip2`` method.
+
+----
+Note
+----
+
+Use the ``--note="xyz..."`` option to add a custom string that describes the archive. This data can be retrieved with ``unstarch --note``.
+
+.. tip:: Examples of usage might include a description of the experiment associated with the data, a URL to a UCSC Genome Browser session, or a bar code or other unique identifier for internal lab or LIMS use.
+
+.. note:: The only limitation on the length of a note is the command-line shell's maximum argument length parameter (as found on most UNIX systems with the command ``getconf ARG_MAX``) minus the length of the non- ``--note="..."`` command components. On most desktop systems, this value will be approximately 256 kB.
+
+-------
+Headers
+-------
+
+Add the ``--header`` flag if the BED data being compressed contain `extra header data <http://genome.ucsc.edu/FAQ/FAQformat.html#format1.7>`_ that are exported from a UCSC Genome Browser session.
+
+.. note:: If the BED data contain custom headers and ``--header`` is not specified, :ref:`starch` will be unable to read chromosome data correctly and exit with an error state.
+
+----------
+Unique tag
+----------
+
+Adding a ``<unique-tag>`` string replaces portions of the `filename` key in the archive's :ref:`stream metadata <starch_archive_metadata_stream>`.
+
+.. note:: This feature is largely obsolete and included for legacy support. It is better to use the ``--note="xyz..."`` option to add identifiers or other custom data.
+
+=======
+Example
+=======
+
+To compress unsorted BED data (or data of unknown sort order), we feed :ref:`starch` a :ref:`sorted <sort-bed>` stream, using the hyphen (``-``) to specify standard input:
+
+::
+
+ $ sort-bed unsorted.bed | starch - > sorted.starch
+
+This creates the file ``sorted.starch``, which uses the ``bzip2`` algorithm to compress transformed BED data from a sorted permutation of data in ``unsorted.bed``. No note or custom tag data is added.
+
+It is possible to speed up the compression of a BED file by using a cluster. Start by reviewing our :ref:`starchcluster <starchcluster>` script.
+
+.. |--| unicode:: U+2013 .. en dash
+.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace
+ :trim:
diff --git a/docs/content/reference/file-management/compression/starchcat.rst b/docs/content/reference/file-management/compression/starchcat.rst
new file mode 100644
index 0000000..fc258e8
--- /dev/null
+++ b/docs/content/reference/file-management/compression/starchcat.rst
@@ -0,0 +1,100 @@
+.. _starchcat:
+
+`starchcat`
+===========
+
+The ``starchcat`` utility efficiently merges per-chromosome records contained within one or more BEDOPS :ref:`Starch-formatted <starch_specification>` archives. This is an equivalent operation to ``bedops --everything`` or ``bedops -u`` (a :ref:`multiset union <bedops_everything>`), but inputs are :ref:`starch` archives rather than uncompressed BED files.
+
+As a further advantage to using this over :ref:`bedops`, in the case where a :ref:`starch` input contains BED elements exclusive to one chromosome, this utility will directly and quickly copy over compressed elements to a new archive, avoiding the need for costly and wasteful extraction and re-compression.
+
+In the general case, where two or more :ref:`starch` inputs contain BED elements from the same chromosome, a :ref:`sorted <sort-bed>` merge is performed and the stream reprocessed into a :ref:`Starch-formatted <starch_specification>` archive.
+
+===============
+Parallelization
+===============
+
+Those with access to a computational cluster such as an Oracle/Sun Grid Engine or a group of hosts running SSH services should find :ref:`starchcat` highly useful, as this facilitates:
+
+* Much faster compression of an entire genome of BED data, using nodes of a computational cluster to compress separate chromosomes, followed by a collation step with :ref:`starchcat` (see the :ref:`starchcluster` documentation).
+
+* Extraction, manipulation and reintegration of a :ref:`starch` -ed chromosome into a larger :ref:`starch` archive
+
+* Refreshing metadata or re-compressing the data within a lone :ref:`starch` archive.
+
+To demonstrate the first application of this utility, we have packaged a helper script with the BEDOPS suite called :ref:`starchcluster <starchcluster>`, which archives data much faster than :ref:`starch` alone. By distributing work across the nodes of a computational cluster, the upper bound on compression time is almost entirely determined by the largest chromosome, reducing compression time by an order of magnitude.
+
+==================
+Inputs and outputs
+==================
+
+-----
+Input
+-----
+
+The input to :ref:`starchcat` consists of one or more BEDOPS :ref:`Starch-formatted <starch_specification>` archive files.
+
+.. note:: If a single archive is provided as input, it may be reprocessed with specified options. When two or more archives are specified, the output will be the equivalent of a multiset union of the inputs.
+
+.. note:: This utility does not accept standard input.
+
+------
+Output
+------
+
+The :ref:`starchcat` tool outputs a :ref:`starch` -formatted archive to standard output, which is usually redirected to a file.
+
+Additionally, an optional compression flag specifies if the final :ref:`starch` output should be compressed with either the ``bzip2`` or ``gzip`` method (the default being ``bzip2``).
+
+.. note:: If :ref:`starch` inputs use a different backend compression method, the input stream is re-compressed before integrated into the larger archive. This will incur extra processing overhead.
+
+=====
+Usage
+=====
+
+Use the ``--help`` option to list all options:
+
+::
+
+ starchcat
+ citation: http://bioinformatics.oxfordjournals.org/content/28/14/1919.abstract
+ version: 2.4.20
+ authors: Alex Reynolds and Shane Neph
+
+ USAGE: starchcat [ --note="..." ] [ --bzip2 | --gzip ] <starch-file-1> [<starch-file-2> ...]
+
+ * At least one lexicographically-sorted, headerless starch archive is required.
+ While two or more inputs make sense for a multiset union operation, you can starchcat
+ one file in order to update its metadata, recompress it with a different backend method,
+ or add a note annotation.
+
+ * Compressed data are sent to standard output. Use the '>' operator to redirect
+ to a file.
+
+ Process Flags:
+
+ --note="foo bar..." Append note to output archive metadata (optional)
+ --bzip2 | --gzip Specify backend compression type (optional, default is bzip2)
+ --version Show binary version
+ --help Show this usage message
+
+-------
+Example
+-------
+
+Let's say we have a set of 23 :ref:`starch` archives, one for each chromosome of the human genome: ``chr1.starch``, ``chr2.starch``, and so on, to ``chrY.starch``. (To simplify this example, we leave out mitochondrial, random, pseudo- and other chromosomes.) We would like to build a new :ref:`starch` archive from these 23 separate files:
+
+::
+
+ $ starchcat chr1.starch chr2.starch ... chrY.starch > humanGenome.starch
+
+The :ref:`starchcat` utility parses the metadata from each of the 23 inputs, determines what data to either simple copy or reprocess, and then it performs the merge. Cleanup is performed afterwards, as necessary, and the output is a brand new :ref:`starch` file, written to ``humanGenome.starch``.
+
+.. note:: No filtering or processing is performed on extracted BED elements, before they are written to the final output. Thus, *it is possible for duplicate BED elements to occur*.
+
+ However, the final archive is sorted per :ref:`sort-bed` ordering, so that data extracted from this archive will be ready for use with BEDOPS utilities.
+
+.. note:: When input archives contain data on disjoint chromosomes, use of :ref:`starchcat` is very efficient as data are simply copied, instead of extracted and re-compressed.
+
+.. |--| unicode:: U+2013 .. en dash
+.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace
+ :trim:
diff --git a/docs/content/reference/file-management/compression/unstarch.rst b/docs/content/reference/file-management/compression/unstarch.rst
new file mode 100644
index 0000000..cb6fabc
--- /dev/null
+++ b/docs/content/reference/file-management/compression/unstarch.rst
@@ -0,0 +1,269 @@
+.. _unstarch:
+
+`unstarch`
+==========
+
+With high-throughput sequencing generating large amounts of genomic data, archiving can be a critical part of an analysis toolkit. BEDOPS includes the ``unstarch`` utility to recover original BED input and whole-file or per-chromosome data attributes from archives created with :ref:`starch` (these can be v1.x or :ref:`v2.x archives <starch_specification>`).
+
+The :ref:`unstarch` utility includes `large file support <http://en.wikipedia.org/wiki/Large_file_support>`_ on 64-bit operating systems, enabling extraction of more than 2 GB of data (a common restriction on 32-bit systems).
+
+Starch data can be stored with one of two open-source backend compression methods, either ``bzip2`` or ``gzip``. The :ref:`unstarch` utility will transparently extract data, without the end user needing to specify the backend type.
+
+==================
+Inputs and outputs
+==================
+
+-----
+Input
+-----
+
+The :ref:`unstarch` utility takes in a Starch v1.x or v2.x archive as input.
+
+------
+Output
+------
+
+The typical output of :ref:`unstarch` is :ref:`sorted <sort-bed>` BED data, which is sent to standard output.
+
+Specifying certain options will instead send :ref:`archive metadata <unstarch_archive_metadata>` to standard output, either in text or JSON format, or export :ref:`whole-file or per-chromosome attributes <unstarch_stream_attributes>` (also to standard output).
+
+============
+Requirements
+============
+
+The metadata of a Starch v2.x archive must pass an integrity check before :ref:`unstarch` can extract data. Any manual changes to the metadata will cause extraction to fail.
+
+=====
+Usage
+=====
+
+Use the ``--help`` option to list all options:
+
+::
+
+ unstarch
+ citation: http://bioinformatics.oxfordjournals.org/content/28/14/1919.abstract
+ binary version: 2.4.20 (extracts archive version: 2.1.0 or older)
+ authors: Alex Reynolds and Shane Neph
+
+ USAGE: unstarch [ <chromosome> ] [ --elements | --bases | --bases-uniq | --duplicatesExist | --nestedsExist | --list | --list-json | --list-chromosomes | --archive-timestamp | --note | --archive-version | --is-starch ] <starch-file>
+
+ Process Flags:
+
+ <chromosome> Optional. Either unarchives chromosome-specific records from the starch archive file or restricts action of operator to chromosome (e.g., chr1, chrY, etc.).
+ --elements Show total element count for archive. If <chromosome> is specified, the result shows the element count for the chromosome.
+ --bases,
+ --bases-uniq Show total and unique base counts, respectively, for archive. If <chromosome> is specified, the count is specific to the chromosome, if available.
+ --has-duplicate, Show whether there is one or more duplicate elements in the specified chromosome, either as a numerical (1/0) or string (true/false) value. If no <chromosome> is specified, the value given indicates if there is one or more duplicate elements across all chromosome records.
+ --has-duplicate-as-string
+ --has-nested, Show whether there is one ore more nested elements in the specified chromosome, either as a numerical (1/0) or string (true/false) value. If no <chromosome> is specified, the value given indicates if there is one or more nested elements across all chromosome records.
+ --has-nested-as-string
+ --list List archive metadata (output is in text format). If chromosome is specified, the attributes of the given chromosome are shown.
+ --list-json, List archive metadata (output is in JSON format)
+ --list-json-no-trailing-newline
+ --list-chr, List all or specified chromosome in starch archive (similar to "bedextract --list-chr"). If <chromosome> is specified but is not in the output list, nothing is returned.
+ --list-chromosomes
+ --note Show descriptive note, if available.
+ --sha1-signature Show SHA1 signature of JSON-formatted metadata (Base64-encoded).
+ --archive-timestamp Show archive creation timestamp (ISO 8601 format).
+ --archive-type Show archive compression type.
+ --archive-version Show archive version.
+ --is-starch Test if <starch-file> is a valid archive and print 0/1 (false/true) to standard output.
+ --version Show binary version.
+ --help Show this usage message.
+
+----------
+Extraction
+----------
+
+Specify a specific chromosome to extract data only from that chromosome. This is optional; if a chromosome is not specified, data are extracted from all chromosomes in the archive.
+
+::
+
+ $ unstarch chr12 example.starch
+ ...
+
+.. _unstarch_archive_metadata:
+
+------------------
+Archive attributes
+------------------
+
+Archive attributes are described in greater depth in the :ref:`Starch specification <starch_specification>` page. We provide an overview here of the major points.
+
+^^^^^^^^
+Metadata
+^^^^^^^^
+
+Use the ``--list-json`` or ``--list`` options to export the archive metadata as a JSON- or table-formatted text string, sent to standard output:
+
+::
+
+ $ unstarch --list-json example.starch
+ {
+ "archive": {
+ "type": "starch",
+ "customUCSCHeaders": false,
+ "creationTimestamp": "2014-05-01T14:09:29-0700",
+ "version": {
+ "major": 2,
+ "minor": 1,
+ "revision": 0
+ },
+ "compressionFormat": 0
+ },
+ "streams": [
+ {
+ "chromosome": "chr1",
+ "filename": "chr1.pid31740.fiddlehead.regulomecorp.com",
+ "size": "88330",
+ "uncompressedLineCount": 10753,
+ "nonUniqueBaseCount": 549829,
+ "uniqueBaseCount": 548452,
+ "duplicateElementExists": false,
+ "nestedElementExists": false
+ },
+ ...
+ ]
+ }
+
+The ``--list-chr`` (or ``--list-chromosomes``) option exports a list of chromosomes stored in the Starch archive.
+
+^^^^
+Note
+^^^^
+
+Using ``--note`` will export any note stored with the archive, when created.
+
+.. tip:: One can use :ref:`starchcat` to add a new note to an existing Starch archive.
+
+^^^^^^^^^
+Timestamp
+^^^^^^^^^
+
+The ``--archive-timestamp`` option will report the archive's creation date and time as an `ISO 8601 <http://en.wikipedia.org/wiki/ISO-8601>`_ -formatted string.
+
+^^^^^^^^^^^^^^^^
+Compression type
+^^^^^^^^^^^^^^^^
+
+The ``--archive-type`` option will report the compression type of the archive, either ``bzip2`` or ``gzip``:
+
+::
+
+ $ unstarch --archive-type example.starch
+ unstarch
+ archive compression type: bzip2
+
+^^^^^^^
+Version
+^^^^^^^
+
+The ``--version`` option reports the Starch archive version. This value is different from the version of the :ref:`starch` binary used to create the archive.
+
+.. _unstarch_stream_attributes:
+
+---------------------------------------
+Whole-file or per-chromosome attributes
+---------------------------------------
+
+^^^^^^^^
+Elements
+^^^^^^^^
+
+The ``--elements`` operator reports the number of BED elements that were compressed into the chromosome stream, if specified. If no chromosome is specified, the sum of elements over all chromosomes is reported.
+
+.. tip:: This option is equivalent to a ``wc -l`` (line count) operation performed on BED elements that match the given chromosome, but is much, much faster as data are precomputed and stored with the archive, retrieved from the metadata in O(1) time.
+
+^^^^^
+Bases
+^^^^^
+
+The ``--bases`` and ``--bases-uniq`` flags return the overall and unique base counts for a specified chromosome, or the sum of counts over all chromosomes, if no one chromosome is specified.
+
+^^^^^^^^^^^^^^^^^^^^
+Duplicate element(s)
+^^^^^^^^^^^^^^^^^^^^
+
+The ``--has-duplicate`` operator reports whether the chromosome stream contains one or more duplicate elements, printing a ``0`` if the chromosome does *not* contain a duplicate element, and a ``1`` if the chromosome *does* contain a duplicate.
+
+.. note:: A duplicate element exists if there are two or more BED elements where the chromosome name and start and stop positions are identical. Id, score, strand and any other optional columns are ignored when determining if a duplicate element is present.
+
+.. tip:: To get a string value of ``true`` or ``false`` in place of ``1`` and ``0``, use the ``--has-duplicate-as-string`` operator, instead.
+
+.. note:: If the chromosome name argument to ``unstarch`` is omitted, or set to ``all``, the ``--has-duplicate`` and ``--has-duplicate-as-string`` operators will return a result for all chromosomes (if any one chromosome has one or more duplicate elements, the return value is ``1`` or ``true``, respectively). If the chromosome name is provided and the archive does not contain metadata for the given chromosome, these operators will return a ``0`` or ``false`` result.
+
+^^^^^^^^^^^^^^^^^
+Nested element(s)
+^^^^^^^^^^^^^^^^^
+
+The ``--has-nested`` operator reports whether the chromosome stream contains one or more :ref:`nested elements <nested_elements>`, printing a ``0`` if the chromosome does *not* contain a nested element, and a ``1`` if the chromosome *does* contain a nested element.
+
+.. note:: The definition of a nested element relies on coordinates and is explained in the :ref:`documentation for nested elements <nested_elements>`. Id, score, strand and any other optional columns are ignored when determining if a nested element is present.
+
+.. tip:: To get a string value of ``true`` or ``false`` in place of ``1`` and ``0``, use the ``--has-nested-as-string`` operator, instead.
+
+.. note:: If the chromosome name argument to ``unstarch`` is omitted, or set to ``all``, the ``--has-nested`` and ``--has-nested-as-string`` operators will return a result for all chromosomes (if any one chromosome has one or more nested elements, the return value is ``1`` or ``true``, respectively). If the chromosome name is provided and the archive does not contain metadata for the given chromosome, these operators will return a ``0`` or ``false`` result.
+
+=======
+Example
+=======
+
+To extract a generic Starch file input to a BED file:
+
+::
+
+ $ unstarch example.starch > example.bed
+
+This creates the :ref:`sorted <sort-bed>` file ``example.bed``, containing BED data from extracting ``example.starch``. This can be a ``bzip2`` or ``gzip`` -formatted Starch archive |---| :ref:`unstarch` knows how to extract either type transparently.
+
+To list the chromosomes in a Starch v2 archive, use the ``--list-chr`` (or ``--list-chromosomes``) option:
+
+::
+
+ $ unstarch --list-chr example.starch
+ chr1
+ chr10
+ chr11
+ chr11_gl000202_random
+ chr12
+ chr13
+ chr14
+ chr15
+ chr16
+ chr17
+ ...
+
+To show the number of BED elements in chromosome ``chr13``, use the ``--elements`` operator:
+
+::
+
+ $ unstarch chr13 --elements example.starch
+ 10753
+
+To find the number of unique bases in chromosome ``chr8``:
+
+::
+
+ $ unstarch chr8 --bases-uniq example.starch
+ 545822
+
+To report if the chromosome ``chr14`` contains at least one duplicate BED element:
+
+::
+
+ $ unstarch chr14 --has-duplicate-as-string example.starch
+ true
+
+To show when the archive was created:
+
+::
+
+ $ unstarch --archive-timestamp example.starch
+ 2014-05-01T14:09:29-0700
+
+.. note:: Some option calls will not work with legacy v1.x or v2.0 archives. For instance, to get a result for nested or duplicate elements, you need to input a v2.1 archive. If you have a v1.x or v2.0 archive, use the :ref:`starchcat` utility to upgrade an older archive to a Starch v2.1 file, which will recalculate and make all current attributes available.
+
+.. |--| unicode:: U+2013 .. en dash
+.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace
+ :trim:
diff --git a/docs/content/reference/file-management/conversion.rst b/docs/content/reference/file-management/conversion.rst
new file mode 100644
index 0000000..0e833ac
--- /dev/null
+++ b/docs/content/reference/file-management/conversion.rst
@@ -0,0 +1,23 @@
+.. _conversion_scripts:
+
+Data conversion
+===============
+
+Wrapper scripts around the :ref:`convert2bed <convert2bed>` utility quickly convert a variety of common genomic data types to BED with no loss of information. In using these tools, you can easily prepare data from these formats for use with core BEDOPS tools, whether VCF, GFF/GTF/GVF, BAM/SAM, PSL (Blat), RepeatMasker annotation output, etc.
+
+Some other formats not covered here can be converted with, for instance, the `UCSC Kent toolset <http://genomewiki.ucsc.edu/index.php/Kent_source_utilities>`_ (*e.g.*, altGraphX, bigWig, bigBed, etc.). Just remember to use the :ref:`sort-bed` utility to prepare BED output from external programs for use with BEDOPS core tools.
+
+.. toctree::
+
+ conversion/convert2bed
+ conversion/bam2bed
+ conversion/parallel_bam2bed
+ conversion/parallel_bam2starch
+ conversion/gff2bed
+ conversion/gtf2bed
+ conversion/gvf2bed
+ conversion/psl2bed
+ conversion/rmsk2bed
+ conversion/sam2bed
+ conversion/vcf2bed
+ conversion/wig2bed
diff --git a/docs/content/reference/file-management/conversion/bam2bed.rst b/docs/content/reference/file-management/conversion/bam2bed.rst
new file mode 100644
index 0000000..682e699
--- /dev/null
+++ b/docs/content/reference/file-management/conversion/bam2bed.rst
@@ -0,0 +1,134 @@
+.. _bam2bed:
+
+`bam2bed`
+=========
+
+The ``bam2bed`` script converts 0-based, half-open ``[start-1, end)`` `Binary (Sequence) Alignment/Map <http://samtools.sourceforge.net/SAM1.pdf>`_ (BAM) to sorted, 0-based, half-open ``[start-1, end)`` UCSC BED data.
+
+For convenience, we also offer ``bam2starch``, which performs the extra step of creating a :ref:`Starch-formatted <starch_specification>` archive.
+
+The ``bam2bed`` script is "non-lossy" (with the use of specific options, described below). Other toolkits tend to throw out information from the original BAM input upon conversion; ``bam2bed`` can retain everything, facilitating reuse of converted data and conversion to other formats.
+
+.. tip:: Doing the extra step of creating a :ref:`Starch-formatted <starch_specification>` archive can save a lot of space relative to the original BAM format, up to 33% of the original BAM dataset, while offering per-chromosome random access.
+
+============
+Dependencies
+============
+
+The ``bam2bed`` wrapper script is dependent upon the installation of `SAMtools <http://samtools.sourceforge.net/>`_ and :ref:`convert2bed <convert2bed>`. The ``bam2starch`` wrapper script is further dependent on the installation of the :ref:`starch <starch>` binary, part of a typical BEDOPS installation.
+
+======
+Source
+======
+
+The ``bam2bed`` and ``bam2starch`` conversion scripts are part of the binary and source downloads of BEDOPS. See the :ref:`Installation <installation>` documentation for more details.
+
+=====
+Usage
+=====
+
+The ``bam2bed`` script parses BAM data from standard input and prints :ref:`sorted <sort-bed>` BED to standard output. The ``bam2starch`` script uses an extra step to parse BAM to a compressed BEDOPS :ref:`Starch-formatted <starch_specification>` archive, which is also directed to standard output.
+
+The header data of a BAM file is usually discarded, unless you add the ``--keep-header`` option. In this case, BED elements are created from these data, using the chromosome name ``_header`` to denote content. Line numbers are specified in the start and stop coordinates, and unmodified header data are placed in the fourth column (ID field).
+
+.. tip:: If you work with RNA-seq data, you may use the ``--split`` option to process reads with ``N``-CIGAR operations, splitting them into separate BED elements.
+
+.. tip:: By default, all conversion scripts now output sorted BED data ready for use with BEDOPS utilities. If you do not want to sort converted output, use the ``--do-not-sort`` option. Run the script with the ``--help`` option for more details.
+
+.. tip:: If sorting converted data larger than system memory, use the ``--max-mem`` option to limit sort memory usage to a reasonable fraction of available memory, *e.g.*, ``--max-mem 2G`` or similar. See ``--help`` for more details.
+
+=======
+Example
+=======
+
+To demonstrate these scripts, we use a sample binary input called ``foo.bam`` (see the :ref:`Downloads <bam2bed_downloads>` section to grab this file).
+
+We can convert it to sorted BED data in the following manner (omitting standard error messages):
+
+::
+
+ $ bam2bed < foo.bam
+ seq1 0 36 B7_591:4:96:693:509 99 + 73 36M * 0 0 CACTAGTGGCTCATTGTAAATGTGTGGTTTAACTCG <<<<<<<<<<<<<<<;<<<<<<<<<5<<<<<;:<;7 MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+ seq1 2 37 EAS54_65:7:152:368:113 99 + 73 35M * 0 0 CTAGTGGCTCATTGTAAATGTGTGGTTTAACTCGT <<<<<<<<<<0<<<<655<<7<<<:9<<3/:<6): MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+ seq1 4 39 EAS51_64:8:5:734:57 99 + 137 35M * 0 0 AGTGGCTCATTGTAAATGTGTGGTTTAACTCGTCC <<<<<<<<<<<7;71<<;<;;<7;<<3;);3*8/5 MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+ seq1 5 41 B7_591:1:289:587:906 63 + 137 36M * 0 0 GTGGCTCATTGTAATTTTTTGTTTTAACTCTTCTCT (-&----,----)-)-),'--)---',+-,),''*, MF:i:130 Aq:i:63 NM:i:5 UQ:i:38 H0:i:0 H1:i:0
+ ...
+
+Note that we strip the header section from the output. If we want to keep this, the use of the ``--keep-header`` option will preserve the BAM file's header, turning it into BED elements that use ``_header`` as a chromosome name.
+
+Here's an example:
+
+::
+
+ $ bam2bed --keep-header < foo.bam
+ _header 0 1 @HD VN:1.0 SO:coordinate
+ _header 1 2 @SQ SN:seq1 LN:5000
+ _header 2 3 @SQ SN:seq2 LN:5000
+ _header 3 4 @CO Example of SAM/BAM file format.
+ seq1 0 36 B7_591:4:96:693:509 99 + 73 36M * 0 0 CACTAGTGGCTCATTGTAAATGTGTGGTTTAACTCG <<<<<<<<<<<<<<<;<<<<<<<<<5<<<<<;:<;7 MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+ seq1 2 37 EAS54_65:7:152:368:113 99 + 73 35M * 0 0 CTAGTGGCTCATTGTAAATGTGTGGTTTAACTCGT <<<<<<<<<<0<<<<655<<7<<<:9<<3/:<6): MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+ seq1 4 39 EAS51_64:8:5:734:57 99 + 137 35M * 0 0 AGTGGCTCATTGTAAATGTGTGGTTTAACTCGTCC <<<<<<<<<<<7;71<<;<;;<7;<<3;);3*8/5 MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+ seq1 5 41 B7_591:1:289:587:906 63 + 137 36M * 0 0 GTGGCTCATTGTAATTTTTTGTTTTAACTCTTCTCT (-&----,----)-)-),'--)---',+-,),''*, MF:i:130 Aq:i:63 NM:i:5 UQ:i:38 H0:i:0 H1:i:0
+ ...
+
+With this option, the ``bam2bed`` and ``bam2starch`` scripts are completely "non-lossy" (with the exception of unmapped reads; see note below). Use of ``awk`` or other scripting tools can munge these data back into a SAM-formatted file.
+
+.. note:: The provided scripts **strip out unmapped reads** from the BAM file. We believe this makes sense under most circumstances. Add the ``--all-reads`` option if you need unmapped and mapped reads.
+
+.. _bam2bed_column_mapping:
+
+==============
+Column mapping
+==============
+
+In this section, we describe how non-header BAM data (converted to SAM columns) are mapped to BED columns. We start with the first six UCSC BED columns as follows:
+
++---------------------------+---------------------+---------------+
+| SAM field | BED column index | BED field |
++===========================+=====================+===============+
+| RNAME | 1 | chromosome |
++---------------------------+---------------------+---------------+
+| POS - 1 | 2 | start |
++---------------------------+---------------------+---------------+
+| POS + length(CIGAR) - 1 | 3 | stop |
++---------------------------+---------------------+---------------+
+| QNAME | 4 | id |
++---------------------------+---------------------+---------------+
+| MAPQ | 5 | score |
++---------------------------+---------------------+---------------+
+| 16 & FLAG | 6 | strand |
++---------------------------+---------------------+---------------+
+
+The remaining SAM-converted columns are mapped as-is, in same order, to adjacent BED columns:
+
++---------------------------+---------------------+---------------+
+| SAM field | BED column index | BED field |
++===========================+=====================+===============+
+| FLAG | 7 | |
++---------------------------+---------------------+---------------+
+| CIGAR | 8 | |
++---------------------------+---------------------+---------------+
+| RNEXT | 9 | |
++---------------------------+---------------------+---------------+
+| PNEXT | 10 | |
++---------------------------+---------------------+---------------+
+| TLEN | 11 | |
++---------------------------+---------------------+---------------+
+| SEQ | 12 | |
++---------------------------+---------------------+---------------+
+| QUAL | 13 | |
++---------------------------+---------------------+---------------+
+
+Because we have mapped all columns, we can translate converted BED data back to headered or headerless SAM reads with a simple ``awk`` statement (or other script) that reverts back to 1-based coordinates and permutes columns to SAM-based ordering.
+
+.. _bam2bed_downloads:
+
+=========
+Downloads
+=========
+
+* Sample BAM dataset: :download:`foo.bam <../../../../assets/reference/file-management/conversion/reference_bam2bed_foo.bam>`
+
+.. |--| unicode:: U+2013 .. en dash
+.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace
+ :trim:
diff --git a/docs/content/reference/file-management/conversion/convert2bed.rst b/docs/content/reference/file-management/conversion/convert2bed.rst
new file mode 100644
index 0000000..7467951
--- /dev/null
+++ b/docs/content/reference/file-management/conversion/convert2bed.rst
@@ -0,0 +1,57 @@
+.. _convert2bed:
+
+`convert2bed`
+=============
+
+The ``convert2bed`` binary converts common binary and text genomic formats (BAM, GFF, GTF, GVF, PSL, RepeatMasker annotation output (OUT), SAM, VCF and WIG) to unsorted or sorted, extended BED or :ref:`BEDOPS Starch <starch_specification>` (compressed BED) with additional per-format options.
+
+Convenience wrapper bash scripts are provided for each of these input formats, which convert standard input to unsorted or sorted BED, or to BEDOPS Starch (compressed BED). Scripts expose format-specific ``convert2bed`` options.
+
+We also provide ``bam2bed_sge``, ``bam2bed_gnuParallel``, ``bam2starch_sge`` and ``bam2starch_gnuParallel`` convenience scripts, which parallelize the conversion of indexed BAM to BED or to BEDOPS Starch via a Sun Grid Engine-based computational cluster or local GNU Parallel installation.
+
+============
+Dependencies
+============
+
+Conversion of BAM and SAM input is dependent upon the installation of `SAMtools <http://samtools.sourceforge.net/>`_ and :ref:`convert2bed <convert2bed>`. All ``*2starch`` wrapper scripts are further dependent on the installation of the :ref:`starch <starch>` binary, part of a typical BEDOPS installation.
+
+======
+Source
+======
+
+The ``convert2bed`` conversion tool is part of the binary and source downloads of BEDOPS. See the :ref:`Installation <installation>` documentation for more details.
+
+=====
+Usage
+=====
+
+Generally, to convert data in format ``xyz`` to sorted BED:
+
+::
+
+ $ convert2bed -i xyz < input.xyz > output.bed
+
+Add the ``-o starch`` option to write a BEDOPS Starch file, which stores compressed BED data and feature metadata:
+
+::
+
+ $ convert2bed -i xyz -o starch < input.xyz > output.starch
+
+Wrappers are available for each of the supported formats to convert to BED or Starch, *e.g.*:
+
+::
+
+ $ bam2bed < reads.bam > reads.bed
+ $ bam2starch < reads.bam > reads.starch
+
+.. tip:: Format-specific options are available for each wrapper; use ``--help`` with a wrapper script or ``--help-bam``, ``--help-gff`` etc. with ``convert2bed`` to get a format-specific description of the conversion procedure and options.
+
+=======
+Example
+=======
+
+Please review documentation for each wrapper script to see format-specific examples of their use.
+
+.. |--| unicode:: U+2013 .. en dash
+.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace
+ :trim:
diff --git a/docs/content/reference/file-management/conversion/gff2bed.rst b/docs/content/reference/file-management/conversion/gff2bed.rst
new file mode 100644
index 0000000..d57a344
--- /dev/null
+++ b/docs/content/reference/file-management/conversion/gff2bed.rst
@@ -0,0 +1,130 @@
+.. _gff2bed:
+
+`gff2bed`
+=========
+
+The ``gff2bed`` script converts 1-based, closed ``[start, end]`` `General Feature Format v3 <http://www.sequenceontology.org/gff3.shtml>`_ (GFF3) to sorted, 0-based, half-open ``[start-1, end)`` extended BED-formatted data.
+
+For convenience, we also offer ``gff2starch``, which performs the extra step of creating a :ref:`Starch-formatted <starch_specification>` archive.
+
+============
+Dependencies
+============
+
+The ``gff2bed`` script requires :ref:`convert2bed <convert2bed>`. The ``gff2starch`` script requires :ref:`starch <starch>`. Both dependencies are part of a typical BEDOPS installation.
+
+This script is also dependent on input that follows the GFF3 specification. A GFF3-format validator is available `here <http://modencode.oicr.on.ca/cgi-bin/validate_gff3_online>`_ to ensure your input follows specification.
+
+.. tip:: Conversion of data which are GFF-like, but which do not follow the specification can cause parsing issues. If you run into problems, please check that your input follows the GFF3 specification. Tools such as the `GFF3 Online Validator <http://genometools.org/cgi-bin/gff3validator.cgi>`_ are useful for this task.
+
+======
+Source
+======
+
+The ``gff2bed`` and ``gff2starch`` conversion scripts are part of the binary and source downloads of BEDOPS. See the :ref:`Installation <installation>` documentation for more details.
+
+=====
+Usage
+=====
+
+The ``gff2bed`` script parses GFF3 from standard input and prints sorted BED to standard output. The ``gff2starch`` script uses an extra step to parse GFF to a compressed BEDOPS :ref:`Starch-formatted <starch_specification>` archive, which is also directed to standard output.
+
+The header data of a GFF file is usually discarded, unless you add the ``--keep-header`` option. In this case, BED elements are created from these data, using the chromosome name ``_header`` to denote content. Line numbers are specified in the start and stop coordinates, and unmodified header data are placed in the fourth column (ID field).
+
+.. tip:: By default, all conversion scripts now output sorted BED data ready for use with BEDOPS utilities. If you do not want to sort converted output, use the ``--do-not-sort`` option. Run the script with the ``--help`` option for more details.
+
+.. tip:: If sorting converted data larger than system memory, use the ``--max-mem`` option to limit sort memory usage to a reasonable fraction of available memory, *e.g.*, ``--max-mem 2G`` or similar. See ``--help`` for more details.
+
+=======
+Example
+=======
+
+To demonstrate these scripts, we use a sample GFF input called ``foo.gff`` (see the :ref:`Downloads <gff2bed_downloads>` section to grab this file).
+
+::
+
+ ##gff-version 3
+ chr1 Canada exon 1300 1300 . + . ID=exon00001;score=1
+ chr1 USA exon 1050 1500 . - 0 ID=exon00002;Ontology_term="GO:0046703";Ontology_term="GO:0046704"
+ chr1 Canada exon 3000 3902 . ? 2 ID=exon00003;score=4;Name=foo
+ chr1 . exon 5000 5500 . . . ID=exon00004;Gap=M8 D3 M6 I1 M6
+ chr1 . exon 7000 9000 10 + 1 ID=exon00005;Dbxref="NCBI_gi:10727410"
+
+We can convert it to sorted BED data in the following manner:
+
+::
+
+ $ gff2bed < foo.gff3
+ chr1 1049 1500 exon00002 . - USA exon 0 ID=exon00002;Ontology_term="GO:0046703";Ontology_term="GO:0046704"
+ chr1 1299 1300 exon00001 . + Canada exon . ID=exon00001;score=1;zeroLengthInsertion=True
+ chr1 2999 3902 exon00003 . ? Canada exon 2 ID=exon00003;score=4;Name=foo
+ chr1 4999 5500 exon00004 . . . exon . ID=exon00004;Gap=M8 D3 M6 I1 M6
+ chr1 6999 9000 exon00005 10 + . exon 1 ID=exon00005;Dbxref="NCBI_gi:10727410"
+
+The default usage strips the leading pragma, or header (``##gff-version 3``), but adding the ``--keep-header`` option will preserve this as a BED element that uses ``_header`` as a chromosome name:
+
+::
+
+ $ gff2bed --keep-header < foo.gff3
+ _header 0 1 ##gff-version 3
+ chr1 1049 1500 exon00002 . - USA exon 0 ID=exon00002;Ontology_term="GO:0046703";Ontology_term="GO:0046704"
+ chr1 1299 1300 exon00001 . + Canada exon . ID=exon00001;score=1;zero_length_insertion=True
+ chr1 2999 3902 exon00003 . ? Canada exon 2 ID=exon00003;score=4;Name=foo
+ chr1 4999 5500 exon00004 . . . exon . ID=exon00004;Gap=M8 D3 M6 I1 M6
+ chr1 6999 9000 exon00005 10 + . exon 1 ID=exon00005;Dbxref="NCBI_gi:10727410"
+
+.. note:: Zero-length insertion elements are given an extra attribute called ``zeroLengthInsertion`` which lets a BED-to-GFF or other parser know that the element will require conversion back to a right-closed element ``[a, b]``, where ``a`` and ``b`` are equal.
+
+.. note:: Note the conversion from 1- to 0-based coordinate indexing, in the transition from GFF3 to BED. *BEDOPS supports operations on input with any coordinate indexing*, but the coordinate change made here is believed to be convenient for most end users.
+
+.. _gff2bed_column_mapping:
+
+==============
+Column mapping
+==============
+
+In this section, we describe how GFF3 columns are mapped to BED columns. We start with the first six UCSC BED columns as follows:
+
++---------------------------+---------------------+---------------+
+| GFF3 field | BED column index | BED field |
++===========================+=====================+===============+
+| seqid | 1 | chromosome |
++---------------------------+---------------------+---------------+
+| start | 2 | start |
++---------------------------+---------------------+---------------+
+| end | 3 | stop |
++---------------------------+---------------------+---------------+
+| ID (via attributes) | 4 | id |
++---------------------------+---------------------+---------------+
+| score | 5 | score |
++---------------------------+---------------------+---------------+
+| strand | 6 | strand |
++---------------------------+---------------------+---------------+
+
+The remaining columns are mapped as follows:
+
++---------------------------+---------------------+---------------+
+| GFF3 field | BED column index | BED field |
++===========================+=====================+===============+
+| source | 7 | |
++---------------------------+---------------------+---------------+
+| type | 8 | |
++---------------------------+---------------------+---------------+
+| phase | 9 | |
++---------------------------+---------------------+---------------+
+| attributes | 10 | |
++---------------------------+---------------------+---------------+
+
+If we encounter zero-length insertion elements (which are defined where the ``start`` and ``stop`` GFF3 field values are equivalent), the ``start`` coordinate is decremented to convert to 0-based, half-open indexing, and a ``zero_length_insertion`` attribute is added to the ``attributes`` GFF3 field value.
+
+.. _gff2bed_downloads:
+
+=========
+Downloads
+=========
+
+* Sample GFF dataset: :download:`foo.gff <../../../../assets/reference/file-management/conversion/reference_gff2bed_foo.gff>`
+
+.. |--| unicode:: U+2013 .. en dash
+.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace
+ :trim:
diff --git a/docs/content/reference/file-management/conversion/gtf2bed.rst b/docs/content/reference/file-management/conversion/gtf2bed.rst
new file mode 100644
index 0000000..58bb2bb
--- /dev/null
+++ b/docs/content/reference/file-management/conversion/gtf2bed.rst
@@ -0,0 +1,125 @@
+.. _gtf2bed:
+
+`gtf2bed`
+=========
+
+The ``gtf2bed`` script converts 1-based, closed ``[start, end]`` `Gene Transfer Format v2.2 <http://mblab.wustl.edu/GTF22.html>`_ (GTF2.2) to sorted, 0-based, half-open ``[start-1, end)`` extended BED-formatted data.
+
+For convenience, we also offer ``gtf2starch``, which performs the extra step of creating a Starch-formatted archive.
+
+============
+Dependencies
+============
+
+The ``gtf2bed`` script requires :ref:`convert2bed <convert2bed>`. The ``gtf2starch`` script requires :ref:`starch <starch>`. Both dependencies are part of a typical BEDOPS installation.
+
+This script is also dependent on input that follows the GTF 2.2 specification. A GTF-format validator is available `here <http://mblab.wustl.edu/software.html>`_ to ensure your input follows specification.
+
+.. tip:: Conversion of data which are GTF-like, but which do not follow the specification can cause parsing issues. If you run into problems, please check that your input follows the GTF specification.
+
+======
+Source
+======
+
+The ``gtf2bed`` and ``gtf2starch`` conversion scripts are part of the binary and source downloads of BEDOPS. See the :ref:`Installation <installation>` documentation for more details.
+
+=====
+Usage
+=====
+
+The ``gtf2bed`` script parses GTF from standard input and prints sorted BED to standard output. The ``gtf2starch`` script uses an extra step to parse GTF to a compressed BEDOPS :ref:`Starch-formatted <starch_specification>` archive, which is also directed to standard output.
+
+.. tip:: By default, all conversion scripts now output sorted BED data ready for use with BEDOPS utilities. If you do not want to sort converted output, use the ``--do-not-sort`` option. Run the script with the ``--help`` option for more details.
+
+.. tip:: If sorting converted data larger than system memory, use the ``--max-mem`` option to limit sort memory usage to a reasonable fraction of available memory, *e.g.*, ``--max-mem 2G`` or similar. See ``--help`` for more details.
+
+=======
+Example
+=======
+
+To demonstrate these scripts, we use a sample GTF input called ``foo.gtf`` (see the :ref:`Downloads <gtf2bed_downloads>` section to grab this file).
+
+::
+
+ chr20 protein_coding exon 9874841 9874841 . + . gene_id "ENSBTAG00000020601"; transcript_id "ENSBTAT0000002.4.20"; gene_name "ZNF366";
+ chr20 protein_coding CDS 9873504 9874841 . + 0 gene_id "ENSBTAG00000020601"; transcript_id "ENSBTAT0000002.4.20"; gene_name "ZNF366";
+ chr20 protein_coding exon 9877488 9877679 . + . gene_id "ENSBTAG00000020601"; transcript_id "ENSBTAT0000002.4.20";
+
+We can convert it to sorted BED data in the following manner:
+
+::
+
+ $ gtf2bed < foo.gtf
+ chr20 9874840 9874841 ZNF366 . + protein_coding exon . gene_id "ENSBTAG00000020601"; transcript_id "ENSBTAT0000002.4.20"; gene_name "ZNF366"; zero_length_insertion "True";
+ chr20 9873503 9874841 ZNF366 . + protein_coding CDS 0 gene_id "ENSBTAG00000020601"; transcript_id "ENSBTAT0000002.4.20"; gene_name "ZNF366";
+ chr20 9877487 9877679 ENSBTAG00000020601 . + protein_coding exon . gene_id "ENSBTAG00000020601"; transcript_id "ENSBTAT0000002.4.20";
+
+.. tip:: After, say, performing set or statistical operations with :ref:`bedops`, :ref:`bedmap` etc., converting data back to GTF is accomplished through an ``awk`` statement that re-orders columns and shifts the coordinate index:
+
+ ::
+
+ $ awk '{print $1"\t"$7"\t"$8"\t"($2+1)"\t"$3"\t"$5"\t"$6"\t"$9"\t"(substr($0, index($0,$10)))}' foo_subset.bed > foo_subset.gtf
+
+.. note:: Zero-length insertion elements are given an extra attribute called ``zero_length_insertion`` which lets a BED-to-GTF or other parser know that the element will require conversion back to a right-closed element ``[a, b]``, where ``a`` and ``b`` are equal.
+
+.. note:: Note the conversion from 1- to 0-based coordinate indexing, in the transition from GTF to BED. *BEDOPS supports operations on input with any coordinate indexing*, but the coordinate change made here is believed to be convenient for most end users.
+
+.. _gtf2bed_column_mapping:
+
+==============
+Column mapping
+==============
+
+In this section, we describe how GTF2.2 columns are mapped to BED columns. We start with the first six UCSC BED columns as follows:
+
++---------------------------+---------------------+---------------+
+| GFF2.2 field | BED column index | BED field |
++===========================+=====================+===============+
+| seqname | 1 | chromosome |
++---------------------------+---------------------+---------------+
+| start | 2 | start |
++---------------------------+---------------------+---------------+
+| end | 3 | stop |
++---------------------------+---------------------+---------------+
+| gene_id | 4 | id |
++---------------------------+---------------------+---------------+
+| score | 5 | score |
++---------------------------+---------------------+---------------+
+| strand | 6 | strand |
++---------------------------+---------------------+---------------+
+
+The remaining columns are mapped as follows:
+
++---------------------------+---------------------+---------------+
+| GFF2.2 field | BED column index | BED field |
++===========================+=====================+===============+
+| source | 7 | |
++---------------------------+---------------------+---------------+
+| feature | 8 | |
++---------------------------+---------------------+---------------+
+| frame | 9 | |
++---------------------------+---------------------+---------------+
+| attributes | 10 | |
++---------------------------+---------------------+---------------+
+
+If present in the GTF2.2 input, the following column is also mapped:
+
++---------------------------+---------------------+---------------+
+| GFF2.2 field | BED column index | BED field |
++===========================+=====================+===============+
+| comments | 11 | |
++---------------------------+---------------------+---------------+
+
+If we encounter zero-length insertion elements (which are defined where the ``start`` and ``stop`` GFF3 field values are equivalent), the ``start`` coordinate is decremented to convert to 0-based, half-open indexing, and a ``zero_length_insertion`` attribute is added to the ``attributes`` GTF2.2 field value.
+
+.. _gtf2bed_downloads:
+
+=========
+Downloads
+=========
+
+* Sample GTF dataset: :download:`foo.gtf <../../../../assets/reference/file-management/conversion/reference_gtf2bed_foo.gtf>`
+
+.. |--| unicode:: U+2013 .. en dash
+.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace
+ :trim:
diff --git a/docs/content/reference/file-management/conversion/gvf2bed.rst b/docs/content/reference/file-management/conversion/gvf2bed.rst
new file mode 100644
index 0000000..360d9b1
--- /dev/null
+++ b/docs/content/reference/file-management/conversion/gvf2bed.rst
@@ -0,0 +1,145 @@
+.. _gvf2bed:
+
+`gvf2bed`
+=========
+
+The ``gvf2bed`` script converts 1-based, closed ``[start, end]`` `Genome Variation Format <http://www.sequenceontology.org/resources/gvf.html#summary>`_ (GVF, a type of `General Feature Format v3 <http://www.sequenceontology.org/gff3.shtml>`_ or GFF3) to sorted, 0-based, half-open ``[start-1, end)`` extended BED-formatted data.
+
+For convenience, we also offer ``gvf2starch``, which performs the extra step of creating a :ref:`Starch-formatted <starch_specification>` archive.
+
+============
+Dependencies
+============
+
+The ``gvf2bed`` script requires :ref:`convert2bed <convert2bed>`. The ``gvf2starch`` script requires :ref:`starch <starch>`. Both dependencies are part of a typical BEDOPS installation.
+
+This script is also dependent on input that follows the GFF3 specification. A GFF3-format validator is available `here <http://modencode.oicr.on.ca/cgi-bin/validate_gff3_online>`_ to ensure your input follows specification.
+
+.. tip:: Conversion of data which are GFF-like, but which do not follow the specification can cause parsing issues. If you run into problems, please check that your input follows the GFF3 specification. Tools such as the `GFF3 Online Validator <http://genometools.org/cgi-bin/gff3validator.cgi>`_ are useful for this task.
+
+======
+Source
+======
+
+The ``gvf2bed`` and ``gvf2starch`` conversion scripts are part of the binary and source downloads of BEDOPS. See the :ref:`Installation <installation>` documentation for more details.
+
+=====
+Usage
+=====
+
+The ``gvf2bed`` script parses GVF from standard input and prints sorted BED to standard output. The ``gvf2starch`` script uses an extra step to parse GVF to a compressed BEDOPS :ref:`Starch-formatted <starch_specification>` archive, which is also directed to standard output.
+
+The header data of a GVF file is usually discarded, unless you add the ``--keep-header`` option. In this case, BED elements are created from these data, using the chromosome name ``_header`` to denote content. Line numbers are specified in the start and stop coordinates, and unmodified header data are placed in the fourth column (ID field).
+
+.. tip:: By default, all conversion scripts now output sorted BED data ready for use with BEDOPS utilities. If you do not want to sort converted output, use the ``--do-not-sort`` option. Run the script with the ``--help`` option for more details.
+
+.. tip:: If sorting converted data larger than system memory, use the ``--max-mem`` option to limit sort memory usage to a reasonable fraction of available memory, *e.g.*, ``--max-mem 2G`` or similar. See ``--help`` for more details.
+
+=======
+Example
+=======
+
+To demonstrate these scripts, we use a sample GVF input called ``foo.gvf`` (see the :ref:`Downloads <gvf2bed_downloads>` section to grab this file).
+
+::
+
+ ##gvf-version 1.07
+ ##feature-ontology http://www.sequenceontology.org/resources/obo_files/current_release.obo
+ ##multi-individual NA19240,NA18507,NA12878,NA19238
+ ##genome-build NCBI B36.3
+ ##sequence-region chr16 1 88827254
+
+ chr16 dbSNP SNV 49291360 49291360 . + . ID=ID_2;Variant_seq=C,G;Individual=0,1,2,3;Genotype=0:1,0:0,1:1,0:1;
+ chr16 dbSNP SNV 49302125 49302125 . + . ID=ID_3;Variant_seq=C,T;Individual=0,1,3;Genotype=0:1,2:2,0:2;
+ chr16 dbSNP SNV 49302365 49302365 . + . ID=ID_4;Variant_seq=G;Individual=0,1;Genotype=0:0,0:0;
+ chr16 dbSNP SNV 49302700 49302700 . + . ID=ID_5;Variant_seq=C,T;Individual=2,3;Genotype=0:1,0:0;
+ chr16 dbSNP SNV 49303084 49303084 . + . ID=ID_6;Variant_seq=T,G,A;Individual=3;Genotype=1,2:;
+ chr16 dbSNP SNV 49303427 49303427 . + . ID=ID_8;Variant_seq=T;Individual=0;Genotype=0:0;
+ chr16 dbSNP SNV 49303596 49303596 . + . ID=ID_9;Variant_seq=A,G,T;Individual=0,1,3;Genotype=1:2,3:3,1:3;
+
+We can convert it to sorted BED data in the following manner:
+
+::
+
+ $ gvf2bed < foo.gvf
+ chr16 49291359 49291360 ID_2 . + dbSNP SNV . ID=ID_2;Variant_seq=C,G;Individual=0,1,2,3;Genotype=0:1,0:0,1:1,0:1;zero_length_insertion=True
+ chr16 49302124 49302125 ID_3 . + dbSNP SNV . ID=ID_3;Variant_seq=C,T;Individual=0,1,3;Genotype=0:1,2:2,0:2;zero_length_insertion=True
+ chr16 49302364 49302365 ID_4 . + dbSNP SNV . ID=ID_4;Variant_seq=G;Individual=0,1;Genotype=0:0,0:0;zero_length_insertion=True
+ chr16 49302699 49302700 ID_5 . + dbSNP SNV . ID=ID_5;Variant_seq=C,T;Individual=2,3;Genotype=0:1,0:0;zero_length_insertion=True
+ chr16 49303083 49303084 ID_6 . + dbSNP SNV . ID=ID_6;Variant_seq=T,G,A;Individual=3;Genotype=1,2:;zero_length_insertion=True
+ chr16 49303426 49303427 ID_8 . + dbSNP SNV . ID=ID_8;Variant_seq=T;Individual=0;Genotype=0:0;zero_length_insertion=True
+ chr16 49303595 49303596 ID_9 . + dbSNP SNV . ID=ID_9;Variant_seq=A,G,T;Individual=0,1,3;Genotype=1:2,3:3,1:3;zero_length_insertion=True
+
+As shown, the default usage strips the leading pragmas (``##gvf-version 1.07``, *etc.*), but adding the ``--keep-header`` option will preserve pragmas as BED elements that use ``_header`` as a chromosome name:
+
+::
+
+ $ gvf2bed --keep-header < foo.gvf
+ _header 0 1 ##gvf-version 1.07
+ _header 1 2 ##feature-ontology http://www.sequenceontology.org/resources/obo_files/current_release.obo
+ _header 2 3 ##multi-individual NA19240,NA18507,NA12878,NA19238
+ _header 3 4 ##genome-build NCBI B36.3
+ _header 4 5 ##sequence-region chr16 1 88827254
+ chr16 49291359 49291360 ID_2 . + dbSNP SNV . ID=ID_2;Variant_seq=C,G;Individual=0,1,2,3;Genotype=0:1,0:0,1:1,0:1;zero_length_insertion=True
+ chr16 49302124 49302125 ID_3 . + dbSNP SNV . ID=ID_3;Variant_seq=C,T;Individual=0,1,3;Genotype=0:1,2:2,0:2;zero_length_insertion=True
+ chr16 49302364 49302365 ID_4 . + dbSNP SNV . ID=ID_4;Variant_seq=G;Individual=0,1;Genotype=0:0,0:0;zero_length_insertion=True
+ chr16 49302699 49302700 ID_5 . + dbSNP SNV . ID=ID_5;Variant_seq=C,T;Individual=2,3;Genotype=0:1,0:0;zero_length_insertion=True
+ chr16 49303083 49303084 ID_6 . + dbSNP SNV . ID=ID_6;Variant_seq=T,G,A;Individual=3;Genotype=1,2:;zero_length_insertion=True
+ chr16 49303426 49303427 ID_8 . + dbSNP SNV . ID=ID_8;Variant_seq=T;Individual=0;Genotype=0:0;zero_length_insertion=True
+ chr16 49303595 49303596 ID_9 . + dbSNP SNV . ID=ID_9;Variant_seq=A,G,T;Individual=0,1,3;Genotype=1:2,3:3,1:3;zero_length_insertion=True
+
+.. note:: Zero-length insertion elements are given an extra attribute called ``zero_length_insertion`` which lets a BED-to-GVF or other parser know that the element will require conversion back to a right-closed element ``[a, b]``, where ``a`` and ``b`` are equal.
+
+.. note:: Note the conversion from 1- to 0-based coordinate indexing, in the transition from GVF to BED. *BEDOPS supports operations on input with any coordinate indexing*, but the coordinate change made here is believed to be convenient for most end users.
+
+.. _gvf2bed_column_mapping:
+
+==============
+Column mapping
+==============
+
+In this section, we describe how GVF columns are mapped to BED columns. We start with the first six UCSC BED columns as follows:
+
++---------------------------+---------------------+---------------+
+| GVF field | BED column index | BED field |
++===========================+=====================+===============+
+| seqid | 1 | chromosome |
++---------------------------+---------------------+---------------+
+| start | 2 | start |
++---------------------------+---------------------+---------------+
+| end | 3 | stop |
++---------------------------+---------------------+---------------+
+| ID (via attributes) | 4 | id |
++---------------------------+---------------------+---------------+
+| score | 5 | score |
++---------------------------+---------------------+---------------+
+| strand | 6 | strand |
++---------------------------+---------------------+---------------+
+
+The remaining columns are mapped as follows:
+
++---------------------------+---------------------+---------------+
+| GVF field | BED column index | BED field |
++===========================+=====================+===============+
+| source | 7 | |
++---------------------------+---------------------+---------------+
+| type | 8 | |
++---------------------------+---------------------+---------------+
+| phase | 9 | |
++---------------------------+---------------------+---------------+
+| attributes | 10 | |
++---------------------------+---------------------+---------------+
+
+When we encounter zero-length insertion elements (which are defined where the ``start`` and ``stop`` GVF field values are equivalent), the ``start`` coordinate is decremented to convert to 0-based, half-open indexing, and a ``zero_length_insertion`` attribute is added to the ``attributes`` field value.
+
+.. _gvf2bed_downloads:
+
+=========
+Downloads
+=========
+
+* Sample GVF dataset: :download:`foo.gvf <../../../../assets/reference/file-management/conversion/reference_gvf2bed_foo.gvf>`
+
+.. |--| unicode:: U+2013 .. en dash
+.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace
+ :trim:
diff --git a/docs/content/reference/file-management/conversion/parallel_bam2bed.rst b/docs/content/reference/file-management/conversion/parallel_bam2bed.rst
new file mode 100644
index 0000000..6bc5366
--- /dev/null
+++ b/docs/content/reference/file-management/conversion/parallel_bam2bed.rst
@@ -0,0 +1,32 @@
+.. _parallel_bam2bed:
+
+Parallel `bam2bed`
+===================
+
+The ``bam2bed_sge`` and ``bam2bed_gnuParallel`` scripts use a Sun or Oracle Grid Engine (SGE/OGE) or `GNU Parallel <https://en.wikipedia.org/wiki/GNU_parallel>`_ job scheduler to parallelize the work of ``bam2bed``, which converts an **indexed**, 0-based, half-open ``[start-1, end)`` `Binary (Sequence) Alignment/Map <http://samtools.sourceforge.net/SAM1.pdf>`_ (BAM) file to a sorted, 0-based, half-open ``[start-1, end)`` UCSC BED dataset.
+
+This script splits the indexed BAM file by chromosome name. Each chromosome of BAM records is converted to a BED-formatted dataset with ``bam2bed`` (via ``convert2bed``). Once all per-chromosome BED files are made, they are collated into one final BED file with a multiset union performed with :ref:`bedops --everything <bedops>`.
+
+============
+Dependencies
+============
+
+This shell script is dependent upon a working computational grid that is managed with Sun Grid Engine 6.1u5 (or higher), or installation of GNU Parallel v20130922 or greater.
+
+======
+Source
+======
+
+The ``bam2bed_sge`` and ``bam2bed_gnuParallel`` conversion scripts are part of the binary and source downloads of BEDOPS. See the :ref:`Installation <installation>` documentation for more details.
+
+=====
+Usage
+=====
+
+.. note:: Please review and edit the contents of the relevant script before use with your data, particularly if you use a Sun or Oracle Grid Engine environment and make use of the SGE version of this script. Customization may be required to match your SGE/OGE or GNU Parallel installation and environment, as well as the nature of your BAM data.
+
+At minimum, use of this script with an SGE/OGE computational cluster will require editing of the ``queue`` parameter, possible adjustments to ``qsub`` options, and may also require adjustments to paths to working BEDOPS and Samtools binaries.
+
+You will also need to make sure your BAM data are indexed. There must be a second BAI file with the same name as the BAM file you wish to compress, located in the same working directory. If this index file is not present, the script will exit early with an error.
+
+You may also wish to review other parameters available with the ``bam2bed`` script, applying them in this script as needed (see the :ref:`bam2bed <bam2bed>` documentation for more details).
diff --git a/docs/content/reference/file-management/conversion/parallel_bam2starch.rst b/docs/content/reference/file-management/conversion/parallel_bam2starch.rst
new file mode 100644
index 0000000..4deb3d5
--- /dev/null
+++ b/docs/content/reference/file-management/conversion/parallel_bam2starch.rst
@@ -0,0 +1,34 @@
+.. _parallel_bam2starch:
+
+Parallel `bam2starch`
+=====================
+
+The ``bam2starch_sge`` and ``bam2starch_gnuParallel`` scripts use a Sun or Oracle Grid Engine (SGE/OGE) or `GNU Parallel <https://en.wikipedia.org/wiki/GNU_parallel>`_ job scheduler to parallelize the work of ``bam2starch``, which converts an **indexed**, 0-based, half-open ``[start-1, end)`` `Binary (Sequence) Alignment/Map <http://samtools.sourceforge.net/SAM1.pdf>`_ (BAM) file to a sorted, 0-based, half-open ``[start-1, end)`` UCSC BED dataset, and thence converts this to a :ref:`Star [...]
+
+This script splits the indexed BAM file by chromosome name. Each chromosome of BAM records is converted to a :ref:`Starch-formatted <starch_specification>` archive with ``bam2starch`` (via ``convert2bed``). Once all per-chromosome archives are made, they are collated into one final Starch archive with :ref:`starchcat <starchcat>`.
+
+.. tip:: A :ref:`Starch-formatted <starch_specification>` archive can save a great deal of space relative to the original BAM format, up to 33% of the original BAM dataset, while offering per-chromosome random access. Further, use of a computational grid practically reduces the total compression time to that of the largest chromosome (*e.g.*, ``chr1`` or similar), an order of magnitude reduction over ``bam2starch`` alone.
+
+============
+Dependencies
+============
+
+This shell script is dependent upon a working computational grid that is managed with Sun Grid Engine 6.1u5 (or higher), or installation of GNU Parallel v20130922 or greater.
+
+======
+Source
+======
+
+The ``bam2starch_sge`` and ``bam2starch_gnuParallel`` conversion scripts are part of the binary and source downloads of BEDOPS. See the :ref:`Installation <installation>` documentation for more details.
+
+=====
+Usage
+=====
+
+.. note:: Please review and edit the contents of this script before use with your data. Customization may be required to match your SGE/OGE or GNU Parallel installation and environment, as well as the nature of your BAM data.
+
+At minimum, use of this script with an SGE/OGE computational cluster will require editing of the ``queue`` parameter, possible adjustments to ``qsub`` options, and may require adjustments to paths to working BEDOPS binaries.
+
+You will also need to make sure your BAM data are indexed. There must be a second BAI file with the same name as the BAM file you wish to compress, located in the same working directory. If this index file is not present, the script will exit early with an error.
+
+You may also wish to review other parameters available with the ``bam2starch`` script, applying them in this script as needed (see the :ref:`bam2bed <bam2bed>` documentation for more details).
diff --git a/docs/content/reference/file-management/conversion/psl2bed.rst b/docs/content/reference/file-management/conversion/psl2bed.rst
new file mode 100644
index 0000000..9c0e318
--- /dev/null
+++ b/docs/content/reference/file-management/conversion/psl2bed.rst
@@ -0,0 +1,192 @@
+.. _psl2bed:
+
+`psl2bed`
+=========
+
+The ``psl2bed`` script converts 0-based, half-open ``[start-1, end)`` `Pattern Space Layout <http://genome.ucsc.edu/FAQ/FAQformat.html#format2>`_ (PSL) to sorted, 0-based, half-open ``[start-1, end)`` extended BED-formatted data.
+
+For convenience, we also offer ``psl2starch``, which performs the extra step of creating a Starch-formatted archive.
+
+============
+Dependencies
+============
+
+The ``psl2bed`` script requires :ref:`convert2bed <convert2bed>`. The ``psl2starch`` script requires :ref:`starch <starch>`. Both dependencies are part of a typical BEDOPS installation.
+
+This script is also dependent on input that follows the `PSL specification <http://genome.ucsc.edu/FAQ/FAQformat.html#format2>`_.
+
+.. tip:: Conversion of data which are PSL-like, but which do not follow the specification can cause parsing issues. If you run into problems, please check that your input follows the PSL specification.
+
+======
+Source
+======
+
+The ``psl2bed`` and ``psl2starch`` conversion scripts are part of the binary and source downloads of BEDOPS. See the :ref:`Installation <installation>` documentation for more details.
+
+=====
+Usage
+=====
+
+The ``psl2bed`` script parses PSL from standard input and prints sorted BED to standard output. The ``psl2starch`` script uses an extra step to parse GFF to a compressed BEDOPS :ref:`Starch-formatted <starch_specification>` archive, which is also directed to standard output.
+
+The header data of a headered PSL file is usually discarded, unless you add the ``--keep-header`` option. In this case, BED elements are created from these data, using the chromosome name ``_header`` to denote content. Line numbers are specified in the start and stop coordinates, and unmodified header data are placed in the fourth column (ID field).
+
+If your data contains a record with multiple blocks (``block count`` is greater than one, and the ``tStarts`` field has multiple target start positions), you can use the ``--split`` option to print that record to separate BED elements, each with a start position defined by ``tStarts`` and a length defined by the associated value in the ``blockSizes`` string.
+
+.. tip:: By default, all conversion scripts now output sorted BED data ready for use with BEDOPS utilities. If you do not want to sort converted output, use the ``--do-not-sort`` option. Run the script with the ``--help`` option for more details.
+
+.. tip:: If you are sorting data larger than system memory, use the ``--max-mem`` option to limit sort memory usage to a reasonable fraction of available memory, *e.g.*, ``--max-mem 2G`` or similar. See ``--help`` for more details.
+
+=======
+Example
+=======
+
+To demonstrate these scripts, we use a sample PSL input called ``foo.psl`` (see the :ref:`Downloads <psl2bed_downloads>` section to grab this file).
+
+::
+
+ psLayout version 3
+
+ match mis- rep. N's Q gap Q gap T gap T gap strand Q Q Q Q T T T T block blockSizes qStarts tStarts
+ match match count bases count bases name size start end name size start end count
+ ---------------------------------------------------------------------------------------------------------------------------------------------------------------
+ 35 0 0 0 0 0 0 0 + foo 50 15 50 chrX 155270560 40535836 40535871 1 35, 15, 40535836,
+ 34 2 0 0 0 0 0 0 + foo 50 14 50 chrX 155270560 68019028 68019064 1 36, 14, 68019028,
+ 33 2 0 0 0 0 0 0 + foo 50 14 49 chrX 155270560 43068135 43068170 1 35, 14, 43068135,
+ 35 2 0 0 0 0 0 0 + foo 50 13 50 chr8 146364022 131572122 131572159 1 37, 13, 131572122,
+ 30 0 0 0 0 0 0 0 + foo 50 14 44 chr6 171115067 127685756 127685786 1 30, 14, 127685756,
+ 30 0 0 0 0 0 0 0 + foo 50 14 44 chr6 171115067 93161871 93161901 1 30, 14, 93161871,
+ 31 0 0 0 0 0 0 0 + foo 50 13 44 chr5 180915260 119897315 119897346 1 31, 13, 119897315,
+ 30 0 0 0 0 0 0 0 + foo 50 14 44 chr5 180915260 123254725 1232.4.205 1 30, 14, 123254725,
+ ...
+
+We can convert it to sorted BED data in the following manner:
+
+::
+
+ $ psl2bed < foo.psl
+ chr1 30571100 30571135 foo 50 - 35 0 0 0 0 0 0 0 15 50 249250621 1 35, 0, 30571100,
+ chr1 69592160 69592195 foo 50 - 34 1 0 0 0 0 0 0 15 50 249250621 1 35, 0, 69592160,
+ chr1 107200050 107200100 foo 50 + 50 0 0 0 0 0 0 0 0 50 249250621 1 50, 0, 107200050,
+ chr11 12618347 12618389 foo 50 + 39 3 0 0 0 0 0 0 8 50 135006516 1 42, 8, 12618347,
+ chr11 32933028 32933063 foo 50 + 35 0 0 0 1 1 0 0 8 44 135006516 2 4,31, 8,13, 32933028,32933032,
+ chr11 80116421 80116457 foo 50 + 35 1 0 0 0 0 0 0 14 50 135006516 1 36, 14, 80116421,
+ chr11 133952291 133952327 foo 50 + 34 2 0 0 0 0 0 0 14 50 135006516 1 36, 14, 133952291,
+ chr13 99729482 99729523 foo 50 + 39 2 0 0 0 0 0 0 8 49 115169878 1 41, 8, 99729482,
+ chr13 111391852 111391888 foo 50 + 34 2 0 0 0 0 0 0 14 50 115169878 1 36, 14, 111391852,
+ chr16 8149657 8149694 foo 50 + 36 1 0 0 0 0 0 0 13 50 90354753 1 37, 13, 8149657,
+ ...
+
+As you see here, the header data of a headered PSL file is discarded, unless you add the ``--keep-header`` option. In this case, BED elements are created from these data, using the chromosome name ``_header`` to denote content. Line numbers are specified in the start and stop coordinates, and unmodified header data are placed in the fourth column (ID field).
+
+Here is a demonstration of conversion of the same headered input, adding the ``--keep-header`` option:
+
+::
+
+ $ psl2bed --keep-header < foo.psl
+ _header 0 1 psLayout version 3
+ _header 1 2
+ _header 2 3 match mis- rep. N's Q gap Q gap T gap T gap strand Q Q Q Q T T T T block blockSizes qStarts tStarts
+ _header 3 4 match match count bases count bases name size start end name size start end count
+ _header 4 5 ---------------------------------------------------------------------------------------------------------------------------------------------------------------
+ chr1 30571100 30571135 foo 50 - 35 0 0 0 0 0 0 0 15 50 249250621 1 35, 0, 30571100,
+ chr1 69592160 69592195 foo 50 - 34 1 0 0 0 0 0 0 15 50 249250621 1 35, 0, 69592160,
+ chr1 107200050 107200100 foo 50 + 50 0 0 0 0 0 0 0 0 50 249250621 1 50, 0, 107200050,
+ chr11 12618347 12618389 foo 50 + 39 3 0 0 0 0 0 0 8 50 135006516 1 42, 8, 12618347,
+ chr11 32933028 32933063 foo 50 + 35 0 0 0 1 1 0 0 8 44 135006516 2 4,31, 8,13, 32933028,32933032,
+ chr11 80116421 80116457 foo 50 + 35 1 0 0 0 0 0 0 14 50 135006516 1 36, 14, 80116421,
+ chr11 133952291 133952327 foo 50 + 34 2 0 0 0 0 0 0 14 50 135006516 1 36, 14, 133952291,
+ chr13 99729482 99729523 foo 50 + 39 2 0 0 0 0 0 0 8 49 115169878 1 41, 8, 99729482,
+ chr13 111391852 111391888 foo 50 + 34 2 0 0 0 0 0 0 14 50 115169878 1 36, 14, 111391852,
+ chr16 8149657 8149694 foo 50 + 36 1 0 0 0 0 0 0 13 50 90354753 1 37, 13, 8149657,
+ ...
+
+With this option, the ``psl2bed`` and ``psl2starch`` scripts are completely "non-lossy". Use of ``awk`` or other scripting tools can munge these data back into a PSL-formatted file.
+
+This example PSL file contains one record with a block count of 2. If we were to add the ``--split`` option, this record would be split into two separate BED elements that have start positions ``32933028`` and ``32933032``, with lengths ``4`` and ``31``, respectively. These elements fall within the genomic range already defined by the ``tStart`` and ``tEnd`` fields (``32933028`` and ``32933063``).
+
+.. note:: The ``psl2bed`` and ``psl2starch`` scripts work with headered or headerless PSL data.
+
+.. note:: By default, the ``psl2bed`` and ``psl2starch`` scripts assume that PSL data do *not* need splitting. If you expect your data to contain multiple blocks, add the ``--split`` option.
+
+.. _psl2bed_column_mapping:
+
+==============
+Column mapping
+==============
+
+In this section, we describe how PSL columns are mapped to BED columns. We start with the first six UCSC BED columns as follows:
+
++---------------------------+---------------------+---------------+
+| PSL field | BED column index | BED field |
++===========================+=====================+===============+
+| tName | 1 | chromosome |
++---------------------------+---------------------+---------------+
+| tStart(*) | 2 | start |
++---------------------------+---------------------+---------------+
+| tEnd(*) | 3 | stop |
++---------------------------+---------------------+---------------+
+| qName | 4 | id |
++---------------------------+---------------------+---------------+
+| matches | 5 | score |
++---------------------------+---------------------+---------------+
+| strand | 6 | strand |
++---------------------------+---------------------+---------------+
+
+The remaining PSL columns are mapped, in order, to the remaining columns of the BED output:
+
++---------------------------+---------------------+---------------+
+| PSL field | BED column index | BED field |
++===========================+=====================+===============+
+| qSize | 7 | |
++---------------------------+---------------------+---------------+
+| misMatches | 8 | |
++---------------------------+---------------------+---------------+
+| repMatches | 9 | |
++---------------------------+---------------------+---------------+
+| nCount | 10 | |
++---------------------------+---------------------+---------------+
+| qNumInsert | 11 | |
++---------------------------+---------------------+---------------+
+| qBaseInsert | 12 | |
++---------------------------+---------------------+---------------+
+| tNumInsert | 13 | |
++---------------------------+---------------------+---------------+
+| tBaseInsert | 14 | |
++---------------------------+---------------------+---------------+
+| qStart | 15 | |
++---------------------------+---------------------+---------------+
+| qEnd | 16 | |
++---------------------------+---------------------+---------------+
+| tSize | 17 | |
++---------------------------+---------------------+---------------+
+| blockCount | 18 | |
++---------------------------+---------------------+---------------+
+| blockSizes | 19 | |
++---------------------------+---------------------+---------------+
+| qStarts | 20 | |
++---------------------------+---------------------+---------------+
+| tStarts | 21 | |
++---------------------------+---------------------+---------------+
+
+This is a lossless mapping. Because we have mapped all columns, we can translate converted BED data back to headerless PSL with a simple ``awk`` statement that permutes columns to PSL-based ordering:
+
+::
+
+ $ awk 'BEGIN { OFS = "\t" } \
+ { \
+ print $5" "$8" "$9" "$10" "$11" "$12" "$13" "$14" "$6" "$4" "$7" "$15" "$16" "$1" "$17" "$2" "$3" "$18" "$19" "$20" "$21 }' converted.bed > original.psl
+
+In the case where the ``--split`` option is added, the ``tStart`` and ``tEnd`` fields are replaced with each of the values in the larger ``tStarts`` string, added to the respective values in the larger ``blockSizes`` string. This is still a lossless conversion, but modifications to the ``awk`` script printed above would be required to rebuild the original PSL.
+
+.. _psl2bed_downloads:
+
+=========
+Downloads
+=========
+
+* Sample PSL dataset: :download:`foo.psl <../../../../assets/reference/file-management/conversion/reference_psl2bed_foo.psl>`
+
+.. |--| unicode:: U+2013 .. en dash
+.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace
+ :trim:
diff --git a/docs/content/reference/file-management/conversion/rmsk2bed.rst b/docs/content/reference/file-management/conversion/rmsk2bed.rst
new file mode 100644
index 0000000..c1d9bd5
--- /dev/null
+++ b/docs/content/reference/file-management/conversion/rmsk2bed.rst
@@ -0,0 +1,150 @@
+.. _rmsk2bed:
+
+`rmsk2bed`
+==========
+
+The ``rmsk2bed`` script converts 1-based, closed ``[start, end]`` `RepeatMasker annotation output <http://www.repeatmasker.org/webrepeatmaskerhelp.html>`_ (OUT) to sorted, 0-based, half-open ``[start-1, end)`` extended BED-formatted data.
+
+For convenience, we also offer ``rmsk2starch``, which performs the extra step of creating a :ref:`Starch-formatted <starch_specification>` archive.
+
+============
+Dependencies
+============
+
+The ``rmsk2bed`` script requires :ref:`convert2bed <convert2bed>`. The ``rmsk2starch`` script requires :ref:`starch <starch>`. Both dependencies are part of a typical BEDOPS installation.
+
+This script is also dependent on input that follows the RepeatMasker annotation output specification, outlined here: `http://www.repeatmasker.org/webrepeatmaskerhelp.html <http://www.repeatmasker.org/webrepeatmaskerhelp.html>`_.
+
+======
+Source
+======
+
+The ``rmsk2bed`` and ``rmsk2starch`` conversion scripts are part of the binary and source downloads of BEDOPS. See the :ref:`Installation <installation>` documentation for more details.
+
+=====
+Usage
+=====
+
+The ``rmsk2bed`` script parses RepeatMasker annotation output from standard input and prints sorted BED to standard output. The ``rmsk2starch`` script uses an extra step to parse RepeatMasker annotation output to a compressed BEDOPS :ref:`Starch-formatted <starch_specification>` archive, which is also directed to standard output.
+
+The header data of a RepeatMasker annotation output file is usually discarded, unless you add the ``--keep-header`` option. In this case, BED elements are created from these data, using the chromosome name ``_header`` to denote content. Line numbers are specified in the start and stop coordinates, and unmodified header data are placed in the fourth column (ID field).
+
+.. tip:: By default, all conversion scripts now output sorted BED data ready for use with BEDOPS utilities. If you do not want to sort converted output, use the ``--do-not-sort`` option. Run the script with the ``--help`` option for more details.
+
+.. tip:: If sorting converted data larger than system memory, use the ``--max-mem`` option to limit sort memory usage to a reasonable fraction of available memory, *e.g.*, ``--max-mem 2G`` or similar. See ``--help`` for more details.
+
+=======
+Example
+=======
+
+To demonstrate these scripts, we use a sample RepeatMasker annotation output input called ``foo.out`` (see the :ref:`Downloads <rmsk2bed_downloads>` section to grab this file).
+
+::
+
+ SW perc perc perc query position in query matching repeat position in repeat
+ score div. del. ins. sequence begin end (left) repeat class/family begin end (left) ID
+ ...
+ 1320 15.6 6.2 0.0 HSU08988 6563 6781 (22462) C MER7A DNA/MER2_type (0) 337 104 20
+ 12279 10.5 2.1 1.7 HSU08988 6782 7718 (21525) C Tigger1 DNA/MER2_type (0) 2418 1486 19
+ 1769 12.9 6.6 1.9 HSU08988 7719 8022 (21221) C AluSx SINE/Alu (0) 317 1 17
+ 12279 10.5 2.1 1.7 HSU08988 8023 8694 (20549) C Tigger1 DNA/MER2_type (932) 1486 818 19
+ 2335 11.1 0.3 0.7 HSU08988 8695 9000 (20243) C AluSg SINE/Alu (5) 305 1 18
+ 12279 10.5 2.1 1.7 HSU08988 9001 9695 (19548) C Tigger1 DNA/MER2_type (1600) 818 2 19
+ 721 21.2 1.4 0.0 HSU08988 9696 9816 (19427) C MER7A DNA/MER2_type (224) 122 2 20
+
+We can convert it to sorted BED data in the following manner:
+
+::
+
+ $ rmsk2bed < foo.out
+ HSU08988 6562 6781 MER7A 1320 - 15.6 6.2 0.0 (22462) DNA/MER2_type (0) 337 104 20
+ HSU08988 6781 7718 Tigger1 12279 - 10.5 2.1 1.7 (21525) DNA/MER2_type (0) 2418 1486 19
+ HSU08988 7718 8022 AluSx 1769 - 12.9 6.6 1.9 (21221) SINE/Alu (0) 317 1 17
+ HSU08988 8022 8694 Tigger1 12279 - 10.5 2.1 1.7 (20549) DNA/MER2_type (932) 1486 818 19
+ HSU08988 8694 9000 AluSg 2335 - 11.1 0.3 0.7 (20243) SINE/Alu (5) 305 1 18
+ HSU08988 9000 9695 Tigger1 12279 - 10.5 2.1 1.7 (19548) DNA/MER2_type (1600) 818 2 19
+ HSU08988 9695 9816 MER7A 721 - 21.2 1.4 0.0 (19427) DNA/MER2_type (224) 122 2 20
+
+.. note:: Use :ref:`bedops --merge <bedops_merge>` to merge elements, *e.g.*: ``rmsk2bed < foo.out | bedops --merge - > merged_repeatmasker_elements.bed``
+
+As shown above, we strip the header element, but adding the ``--keep-header`` option will preserve this header as a BED element that uses ``_header`` as a chromosome name:
+
+::
+
+ $ rmsk2bed --keep-header < foo.out
+ HSU08988 6562 6781 MER7A 1320 - 15.6 6.2 0.0 (22462) DNA/MER2_type (0) 337 104 20
+ HSU08988 6781 7718 Tigger1 12279 - 10.5 2.1 1.7 (21525) DNA/MER2_type (0) 2418 1486 19
+ HSU08988 7718 8022 AluSx 1769 - 12.9 6.6 1.9 (21221) SINE/Alu (0) 317 1 17
+ HSU08988 8022 8694 Tigger1 12279 - 10.5 2.1 1.7 (20549) DNA/MER2_type (932) 1486 818 19
+ HSU08988 8694 9000 AluSg 2335 - 11.1 0.3 0.7 (20243) SINE/Alu (5) 305 1 18
+ HSU08988 9000 9695 Tigger1 12279 - 10.5 2.1 1.7 (19548) DNA/MER2_type (1600) 818 2 19
+ HSU08988 9695 9816 MER7A 721 - 21.2 1.4 0.0 (19427) DNA/MER2_type (224) 122 2 20
+ _header 0 1 SW perc perc perc query position in query matching repeat position in repeat
+ _header 1 2 score div. del. ins. sequence begin end (left) repeat class/family begin end (left) ID
+ _header 2 3 ...
+
+.. note:: Note the conversion from 1- to 0-based coordinate indexing, in the transition from RepeatMasker annotation output to BED. *BEDOPS supports operations on input with any coordinate indexing*, but the coordinate change made here is believed to be convenient for most end users.
+
+.. _rmsk2bed_column_mapping:
+
+==============
+Column mapping
+==============
+
+In this section, we describe how RepeatMasker annotation columns are mapped to BED columns. We start with the first six UCSC BED columns as follows:
+
++-------------------------------+---------------------+---------------+
+| RepeatMasker annotation field | BED column index | BED field |
++===============================+=====================+===============+
+| Query sequence | 1 | chromosome |
++-------------------------------+---------------------+---------------+
+| Query start | 2 | start |
++-------------------------------+---------------------+---------------+
+| Query end | 3 | stop |
++-------------------------------+---------------------+---------------+
+| Repeat name | 4 | id |
++-------------------------------+---------------------+---------------+
+| Smith-Waterman score | 5 | score |
++-------------------------------+---------------------+---------------+
+| Strand | 6 | strand |
++-------------------------------+---------------------+---------------+
+
+The remaining columns are mapped as follows:
+
++-------------------------------+---------------------+---------------+
+| RepeatMasker annotation field | BED column index | BED field |
++===============================+=====================+===============+
+| Percentage, substitutions | 7 | |
++-------------------------------+---------------------+---------------+
+| Percentage, deleted bases | 8 | |
++-------------------------------+---------------------+---------------+
+| Percentage, inserted bases | 9 | |
++-------------------------------+---------------------+---------------+
+| Bases in query, past match | 10 | |
++-------------------------------+---------------------+---------------+
+| Repeat class | 11 | |
++-------------------------------+---------------------+---------------+
+| Bases in complement of the | 12 | |
+| repeat consensus sequence | | |
++-------------------------------+---------------------+---------------+
+| Match start | 13 | |
++-------------------------------+---------------------+---------------+
+| Match end | 14 | |
++-------------------------------+---------------------+---------------+
+| Unique ID | 15 | |
++-------------------------------+---------------------+---------------+
+| Higher-scoring match | 16 | |
+| (optional) | | |
++-------------------------------+---------------------+---------------+
+
+.. _rmsk2bed_downloads:
+
+=========
+Downloads
+=========
+
+* Sample RepeatMasker annotation dataset: :download:`foo.out <../../../../assets/reference/file-management/conversion/reference_rmsk2bed_foo.out>`
+
+.. |--| unicode:: U+2013 .. en dash
+.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace
+ :trim:
diff --git a/docs/content/reference/file-management/conversion/sam2bed.rst b/docs/content/reference/file-management/conversion/sam2bed.rst
new file mode 100644
index 0000000..bab6a02
--- /dev/null
+++ b/docs/content/reference/file-management/conversion/sam2bed.rst
@@ -0,0 +1,148 @@
+.. _sam2bed:
+
+`sam2bed`
+=========
+
+The ``sam2bed`` script converts 1-based, closed ``[start, end]`` `Sequence Alignment/Map <http://samtools.sourceforge.net/>`_ (SAM) to sorted, 0-based, half-open ``[start-1, end)`` UCSC BED data.
+
+For convenience, we also offer ``sam2starch``, which performs the extra step of creating a :ref:`Starch-formatted <starch_specification>` archive.
+
+The ``sam2bed`` script is "non-lossy" (with the use of specific options, described below). Other toolkits tend to throw out information from the original SAM input upon conversion; ``sam2bed`` retains everything, facilitating reuse of converted data and conversion to other formats.
+
+.. tip:: Doing the extra step of creating a :ref:`Starch-formatted <starch_specification>` archive can save a lot of space relative to the original SAM format, up to 33% of the original SAM dataset, while offering per-chromosome random access.
+
+============
+Dependencies
+============
+
+The ``sam2bed`` wrapper script is dependent upon the installation of `SAMtools <http://samtools.sourceforge.net/>`_ and :ref:`convert2bed <convert2bed>`. The ``sam2starch`` wrapper script is further dependent on the installation of the :ref:`starch <starch>` binary, part of a typical BEDOPS installation.
+
+======
+Source
+======
+
+The ``sam2bed`` and ``sam2starch`` conversion scripts are part of the binary and source downloads of BEDOPS. See the :ref:`Installation <installation>` documentation for more details.
+
+=====
+Usage
+=====
+
+The ``sam2bed`` script parses SAM data from standard input and prints :ref:`sorted <sort-bed>` BED to standard output. The ``sam2starch`` script uses an extra step to parse SAM to a compressed BEDOPS :ref:`Starch-formatted <starch_specification>` archive, which is also directed to standard output.
+
+The header data of a SAM file is usually discarded, unless you add the ``--keep-header`` option. In this case, BED elements are created from these data, using the chromosome name ``_header`` to denote content. Line numbers are specified in the start and stop coordinates, and unmodified header data are placed in the fourth column (ID field).
+
+.. tip:: If you work with RNA-seq data, you can use the ``--split`` option to process reads with ``N``-CIGAR operations, splitting them into separate BED elements.
+
+.. tip:: By default, all conversion scripts now output sorted BED data ready for use with BEDOPS utilities. If you do not want to sort converted output, use the ``--do-not-sort`` option. Run the script with the ``--help`` option for more details.
+
+.. tip:: If sorting converted data larger than system memory, use the ``--max-mem`` option to limit sort memory usage to a reasonable fraction of available memory, *e.g.*, ``--max-mem 2G`` or similar. See ``--help`` for more details.
+
+=======
+Example
+=======
+
+To demonstrate these scripts, we use a sample binary input called ``foo.sam`` (see the :ref:`Downloads <sam2bed_downloads>` section to grab this file).
+
+::
+
+ @HD VN:1.0 SO:coordinate
+ @SQ SN:seq1 LN:5000
+ @SQ SN:seq2 LN:5000
+ @CO Example of SAM/BAM file format.
+ B7_591:4:96:693:509 73 seq1 1 99 36M * 0 0 CACTAGTGGCTCATTGTAAATGTGTGGTTTAACTCG <<<<<<<<<<<<<<<;<<<<<<<<<5<<<<<;:<;7 MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+ EAS54_65:7:152:368:113 73 seq1 3 99 35M * 0 0 CTAGTGGCTCATTGTAAATGTGTGGTTTAACTCGT <<<<<<<<<<0<<<<655<<7<<<:9<<3/:<6): MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+ EAS51_64:8:5:734:57 137 seq1 5 99 35M * 0 0 AGTGGCTCATTGTAAATGTGTGGTTTAACTCGTCC <<<<<<<<<<<7;71<<;<;;<7;<<3;);3*8/5 MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+ ...
+
+
+We can convert it to sorted BED data in the following manner (omitting standard error messages):
+
+::
+
+ $ sam2bed < foo.sam
+ seq1 0 36 B7_591:4:96:693:509 99 + 73 36M * 0 0 CACTAGTGGCTCATTGTAAATGTGTGGTTTAACTCG <<<<<<<<<<<<<<<;<<<<<<<<<5<<<<<;:<;7 MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+ seq1 2 37 EAS54_65:7:152:368:113 99 + 73 35M * 0 0 CTAGTGGCTCATTGTAAATGTGTGGTTTAACTCGT <<<<<<<<<<0<<<<655<<7<<<:9<<3/:<6): MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+ seq1 4 39 EAS51_64:8:5:734:57 99 + 137 35M * 0 0 AGTGGCTCATTGTAAATGTGTGGTTTAACTCGTCC <<<<<<<<<<<7;71<<;<;;<7;<<3;);3*8/5 MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+ seq1 5 41 B7_591:1:289:587:906 63 + 137 36M * 0 0 GTGGCTCATTGTAATTTTTTGTTTTAACTCTTCTCT (-&----,----)-)-),'--)---',+-,),''*, MF:i:130 Aq:i:63 NM:i:5 UQ:i:38 H0:i:0 H1:i:0
+ ...
+
+Note also that we strip the header section from the output. If we want to keep this, the use of the ``--keep-header`` option will preserve the BAM file's header, turning it into BED elements that use ``_header`` as a chromosome name.
+
+Here's an example:
+
+::
+
+ $ sam2bed --keep-header < foo.sam
+ _header 0 1 @HD VN:1.0 SO:coordinate
+ _header 1 2 @SQ SN:seq1 LN:5000
+ _header 2 3 @SQ SN:seq2 LN:5000
+ _header 3 4 @CO Example of SAM/BAM file format.
+ seq1 0 36 B7_591:4:96:693:509 99 + 73 36M * 0 0 CACTAGTGGCTCATTGTAAATGTGTGGTTTAACTCG <<<<<<<<<<<<<<<;<<<<<<<<<5<<<<<;:<;7 MF:i:18 Aq:i:73 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+ seq1 2 37 EAS54_65:7:152:368:113 99 + 73 35M * 0 0 CTAGTGGCTCATTGTAAATGTGTGGTTTAACTCGT <<<<<<<<<<0<<<<655<<7<<<:9<<3/:<6): MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+ seq1 4 39 EAS51_64:8:5:734:57 99 + 137 35M * 0 0 AGTGGCTCATTGTAAATGTGTGGTTTAACTCGTCC <<<<<<<<<<<7;71<<;<;;<7;<<3;);3*8/5 MF:i:18 Aq:i:66 NM:i:0 UQ:i:0 H0:i:1 H1:i:0
+ seq1 5 41 B7_591:1:289:587:906 63 + 137 36M * 0 0 GTGGCTCATTGTAATTTTTTGTTTTAACTCTTCTCT (-&----,----)-)-),'--)---',+-,),''*, MF:i:130 Aq:i:63 NM:i:5 UQ:i:38 H0:i:0 H1:i:0
+ ...
+
+With this option, the ``sam2bed`` and ``sam2starch`` scripts are completely "non-lossy" (with the exception of unmapped reads; see note below). Use of ``awk`` or other scripting tools can munge these data back into a SAM-formatted file.
+
+.. note:: The provided scripts **strip out unmapped reads** from the SAM file. We believe this makes sense under most circumstances. Add the ``--all-reads`` option if you need unmapped and mapped reads.
+
+.. note:: Note the conversion from 1- to 0-based coordinates. While BEDOPS fully supports 0- and 1-based coordinates, the coordinate change in BED is believed to be convenient to most end users.
+
+.. _sam2bed_column_mapping:
+
+==============
+Column mapping
+==============
+
+In this section, we describe how SAM columns are mapped to BED columns. We start with the first six UCSC BED columns as follows:
+
++---------------------------+---------------------+---------------+
+| SAM field | BED column index | BED field |
++===========================+=====================+===============+
+| RNAME | 1 | chromosome |
++---------------------------+---------------------+---------------+
+| POS - 1 | 2 | start |
++---------------------------+---------------------+---------------+
+| POS + length(CIGAR) - 1 | 3 | stop |
++---------------------------+---------------------+---------------+
+| QNAME | 4 | id |
++---------------------------+---------------------+---------------+
+| MAPQ | 5 | score |
++---------------------------+---------------------+---------------+
+| 16 & FLAG | 6 | strand |
++---------------------------+---------------------+---------------+
+
+The remaining SAM columns are mapped as-is, in same order, to adjacent BED columns:
+
++---------------------------+---------------------+---------------+
+| SAM field | BED column index | BED field |
++===========================+=====================+===============+
+| FLAG | 7 | |
++---------------------------+---------------------+---------------+
+| CIGAR | 8 | |
++---------------------------+---------------------+---------------+
+| RNEXT | 9 | |
++---------------------------+---------------------+---------------+
+| PNEXT | 10 | |
++---------------------------+---------------------+---------------+
+| TLEN | 11 | |
++---------------------------+---------------------+---------------+
+| SEQ | 12 | |
++---------------------------+---------------------+---------------+
+| QUAL | 13 | |
++---------------------------+---------------------+---------------+
+
+Because we have mapped all columns, we can translate converted BED data back to headered or headerless SAM reads with a simple ``awk`` statement (or other script) that reverts back to 1-based coordinates and permutes columns to SAM-based ordering.
+
+.. _sam2bed_downloads:
+
+=========
+Downloads
+=========
+
+* Sample SAM dataset: :download:`foo.sam <../../../../assets/reference/file-management/conversion/reference_sam2bed_foo.sam>`
+
+.. |--| unicode:: U+2013 .. en dash
+.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace
+ :trim:
diff --git a/docs/content/reference/file-management/conversion/vcf2bed.rst b/docs/content/reference/file-management/conversion/vcf2bed.rst
new file mode 100644
index 0000000..bc77780
--- /dev/null
+++ b/docs/content/reference/file-management/conversion/vcf2bed.rst
@@ -0,0 +1,216 @@
+.. _vcf2bed:
+
+`vcf2bed`
+=========
+
+The ``vcf2bed`` script converts 1-based, closed ``[start, end]`` `Variant Call Format v4.2 <http://vcftools.sourceforge.net/specs.html>`_ (VCF) to sorted, 0-based, half-open ``[start-1, start)`` extended BED data.
+
+.. note:: Note that this script converts from ``[start, end]`` to ``[start-1, start)``. Unless the ``--snvs``, ``--insertions`` or ``--deletions`` options are added, we perform the equivalent of a *single-base insertion* to make BED output that is guaranteed to work with BEDOPS, **regardless of what the actual variant may be**, to allow operations to be performed. The converted output contains additional columns which allow reconstruction of the original VCF data and associated variant p [...]
+
+For convenience, we also offer ``vcf2starch``, which performs the extra step of creating a :ref:`Starch-formatted <starch_specification>` archive.
+
+============
+Dependencies
+============
+
+The ``vcf2bed`` script requires :ref:`convert2bed <convert2bed>`. The ``vcf2starch`` script requires :ref:`starch <starch>`. Both dependencies are part of a typical BEDOPS installation.
+
+This script is also dependent on input that follows the VCF v4.2 specification.
+
+.. tip:: Conversion of data which are VCF-like, but which do not follow the specification can cause parsing issues. If you run into problems, please check that your input follows the VCF specification using validation tools, such as those packaged with `VCFTools <http://vcftools.sourceforge.net/perl_module.html#vcf-validator>`_.
+
+======
+Source
+======
+
+The ``vcf2bed`` and ``vcf2starch`` conversion scripts are part of the binary and source downloads of BEDOPS. See the :ref:`Installation <installation>` documentation for more details.
+
+=====
+Usage
+=====
+
+The ``vcf2bed`` script parses VCF from standard input and prints sorted BED to standard output. The ``vcf2starch`` script uses an extra step to parse VCF to a compressed BEDOPS :ref:`Starch-formatted <starch_specification>` archive, which is also directed to standard output.
+
+The header data of a VCF file is usually discarded, unless you add the ``--keep-header`` option. In this case, BED elements are created from these data, using the chromosome name ``_header`` to denote content. Line numbers are specified in the start and stop coordinates, and unmodified header data are placed in the fourth column (ID field).
+
+.. note:: By default, multiple BED annotations are printed if there are multiple alternate alleles in a variant call. Use the ``--do-not-split-alt-alleles`` option to preserve the alternate allele string and print only one BED element for the variant call.
+
+.. tip:: By default, all conversion scripts now output sorted BED data ready for use with BEDOPS utilities. If you do not want to sort converted output, use the ``--do-not-sort`` option. Run the script with the ``--help`` option for more details.
+
+.. tip:: If you are sorting data larger than system memory, use the ``--max-mem`` option to limit sort memory usage to a reasonable fraction of available memory, *e.g.*, ``--max-mem 2G`` or similar. See ``--help`` for more details.
+
+.. _vcf2bed_custom_variants:
+
+===========================
+Customized variant handling
+===========================
+
+By default, the ``vcf2bed`` script translates all variants to single-base positions in the resulting BED output. Depending on the category of variant you are interested in, however, you may want more specific categories handled differently.
+
+Based on the VCF v4.2 specification, we also provide three custom options for filtering input for each of the three types of variants listed: ``--snvs``, ``--insertions`` and ``--deletions``. In each case, we use the length of the reference and alternate alleles to determine which type of variant is being handled.
+
+In addition, using any of these three custom options automatically results in processing of mixed variant records for a microsatellite, where present. For instance, the following record contains a mixture of a deletion and insertion variant (``GTC -> G`` and ``GTC -> GTCT``, respectively):
+
+::
+
+ #CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NA00001 NA00002 NA00003
+ 20 12.4.207 microsat1 GTC G,GTCT 50 PASS NS=3;DP=9;AA=G GT:GQ:DP 0/1:35:4 0/2:17:2 1/1:40:3
+
+When using ``--snvs``, ``--insertions`` or ``--deletions``, this record is split into two distinct BED records and filtered depending on which custom option was chosen. The ``--insertions`` option would only export the single-base position of the insertion in this mixed variant, while ``--deletions`` would show the deletion.
+
+In this way, you can control what kinds of variants are translated into BED outputs |---| most importantly, there is also no confusion about what the length of the BED element signifies.
+
+=======
+Example
+=======
+
+To demonstrate these scripts, we use a sample VCF input called ``foo.vcf`` (see the :ref:`Downloads <vcf2bed_downloads>` section to grab this file).
+
+.. note:: This data is also publicly available from the `Broad Institute <http://www.broadinstitute.org/gsa/wiki/index.php/Understanding_the_Unified_Genotyper's_VCF_files>`_.
+
+::
+
+ ##fileformat=VCFv4.0
+ ##FILTER=<ID=LowQual,Description="QUAL < 50.0">
+ ##FORMAT=<ID=AD,Number=.,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">
+ ##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth (only filtered reads used for calling)">
+ ##FORMAT=<ID=GQ,Number=1,Type=Float,Description="Genotype Quality">
+ ##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+ ##FORMAT=<ID=PL,Number=3,Type=Float,Description="Normalized, Phred-scaled likelihoods for AA,AB,BB genotypes where A=ref and B=alt; not applicable if site is not biallelic">
+ ##INFO=<ID=AC,Number=.,Type=Integer,Description="Allele count in genotypes, for each ALT allele, in the same order as listed">
+ ##INFO=<ID=AF,Number=.,Type=Float,Description="Allele Frequency, for each ALT allele, in the same order as listed">
+ ##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
+ ##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP Membership">
+ ##INFO=<ID=DP,Number=1,Type=Integer,Description="Total Depth">
+ ##INFO=<ID=DS,Number=0,Type=Flag,Description="Were any of the samples downsampled?">
+ ##INFO=<ID=Dels,Number=1,Type=Float,Description="Fraction of Reads Containing Spanning Deletions">
+ ##INFO=<ID=HRun,Number=1,Type=Integer,Description="Largest Contiguous Homopolymer Run of Variant Allele In Either Direction">
+ ##INFO=<ID=HaplotypeScore,Number=1,Type=Float,Description="Consistency of the site with two (and only two) segregating haplotypes">
+ ##INFO=<ID=MQ,Number=1,Type=Float,Description="RMS Mapping Quality">
+ ##INFO=<ID=MQ0,Number=1,Type=Integer,Description="Total Mapping Quality Zero Reads">
+ ##INFO=<ID=QD,Number=1,Type=Float,Description="Variant Confidence/Quality by Depth">
+ ##INFO=<ID=SB,Number=1,Type=Float,Description="Strand Bias">
+ ##INFO=<ID=VQSLOD,Number=1,Type=Float,Description="log10-scaled probability of variant being true under the trained gaussian mixture model">
+ ##UnifiedGenotyperV2="analysis_type=UnifiedGenotyperV2 input_file=[TEXT CLIPPED FOR CLARITY]"
+ #CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NA12878
+ chr1 873762 . T G 5231.78 PASS AC=1;AF=0.50;AN=2;DP=315;Dels=0.00;HRun=2;HaplotypeScore=15.11;MQ=91.05;MQ0=15;QD=16.61;SB=-1533.02;VQSLOD=-1.5473 GT:AD:DP:GQ:PL 0/1:173,141:282:99:255,0,255
+ chr1 877664 rs3828047 A G 3931.66 PASS AC=2;AF=1.00;AN=2;DB;DP=105;Dels=0.00;HRun=1;HaplotypeScore=1.59;MQ=92.52;MQ0=4;QD=37.44;SB=-1152.13;VQSLOD=0.1185 GT:AD:DP:GQ:PL 1/1:0,105:94:99:255,255,0
+ chr1 899282 rs28548431 C T 71.77 PASS AC=1;AF=0.50;AN=2;DB;DP=4;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=99.00;MQ0=0;QD=17.94;SB=-46.55;VQSLOD=-1.9148 GT:AD:DP:GQ:PL 0/1:1,3:4:25.92:103,0,26
+ chr1 974165 rs9442391 T C 29.84 LowQual AC=1;AF=0.50;AN=2;DB;DP=18;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=95.26;MQ0=0;QD=1.66;SB=-0.98 GT:AD:DP:GQ:PL 0/1:14,4:14:60.91:61,0,255
+
+We can convert VCF to sorted BED data in the following manner:
+
+::
+
+ $ vcf2bed < foo.vcf
+ chr1 873761 873762 . 5231.78 T G PASS AC=1;AF=0.50;AN=2;DP=315;Dels=0.00;HRun=2;HaplotypeScore=15.11;MQ=91.05;MQ0=15;QD=16.61;SB=-1533.02;VQSLOD=-1.5473 GT:AD:DP:GQ:PL 0/1:173,141:282:99:255,0,255
+ chr1 877663 877664 rs3828047 3931.66 A G PASS AC=2;AF=1.00;AN=2;DB;DP=105;Dels=0.00;HRun=1;HaplotypeScore=1.59;MQ=92.52;MQ0=4;QD=37.44;SB=-1152.13;VQSLOD=0.1185 GT:AD:DP:GQ:PL 1/1:0,105:94:99:255,255,0
+ chr1 899281 899282 rs28548431 71.77 C T PASS AC=1;AF=0.50;AN=2;DB;DP=4;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=99.00;MQ0=0;QD=17.94;SB=-46.55;VQSLOD=-1.9148 GT:AD:DP:GQ:PL 0/1:1,3:4:25.92:103,0,26
+ chr1 974164 974165 rs9442391 29.84 T C LowQual AC=1;AF=0.50;AN=2;DB;DP=18;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=95.26;MQ0=0;QD=1.66;SB=-0.98 GT:AD:DP:GQ:PL 0/1:14,4:14:60.91:61,0,255
+
+As you see here, the header data of the VCF file is discarded, unless you add the ``--keep-header`` option. In this case, BED elements are created from these data, using the chromosome name ``_header`` to denote content. Line numbers are specified in the start and stop coordinates, and unmodified header data are placed in the fourth column (ID field).
+
+Here we use ``--keep-header`` with our example dataset:
+
+::
+
+ $ vcf2bed --keep-header < foo.vcf
+ _header 0 1 ##fileformat=VCFv4.0
+ _header 1 2 ##FILTER=<ID=LowQual,Description="QUAL < 50.0">
+ _header 2 3 ##FORMAT=<ID=AD,Number=.,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">
+ _header 3 4 ##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth (only filtered reads used for calling)">
+ _header 4 5 ##FORMAT=<ID=GQ,Number=1,Type=Float,Description="Genotype Quality">
+ _header 5 6 ##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+ _header 6 7 ##FORMAT=<ID=PL,Number=3,Type=Float,Description="Normalized, Phred-scaled likelihoods for AA,AB,BB genotypes where A=ref and B=alt; not applicable if site is not biallelic">
+ _header 7 8 ##INFO=<ID=AC,Number=.,Type=Integer,Description="Allele count in genotypes, for each ALT allele, in the same order as listed">
+ _header 8 9 ##INFO=<ID=AF,Number=.,Type=Float,Description="Allele Frequency, for each ALT allele, in the same order as listed">
+ _header 9 10 ##INFO=<ID=AN,Number=1,Type=Integer,Description="Total number of alleles in called genotypes">
+ _header 10 11 ##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP Membership">
+ _header 11 12 ##INFO=<ID=DP,Number=1,Type=Integer,Description="Total Depth">
+ _header 12 13 ##INFO=<ID=DS,Number=0,Type=Flag,Description="Were any of the samples downsampled?">
+ _header 13 14 ##INFO=<ID=Dels,Number=1,Type=Float,Description="Fraction of Reads Containing Spanning Deletions">
+ _header 14 15 ##INFO=<ID=HRun,Number=1,Type=Integer,Description="Largest Contiguous Homopolymer Run of Variant Allele In Either Direction">
+ _header 15 16 ##INFO=<ID=HaplotypeScore,Number=1,Type=Float,Description="Consistency of the site with two (and only two) segregating haplotypes">
+ _header 16 17 ##INFO=<ID=MQ,Number=1,Type=Float,Description="RMS Mapping Quality">
+ _header 17 18 ##INFO=<ID=MQ0,Number=1,Type=Integer,Description="Total Mapping Quality Zero Reads">
+ _header 18 19 ##INFO=<ID=QD,Number=1,Type=Float,Description="Variant Confidence/Quality by Depth">
+ _header 19 20 ##INFO=<ID=SB,Number=1,Type=Float,Description="Strand Bias">
+ _header 20 21 ##INFO=<ID=VQSLOD,Number=1,Type=Float,Description="log10-scaled probability of variant being true under the trained gaussian mixture model">
+ _header 21 22 ##UnifiedGenotyperV2="analysis_type=UnifiedGenotyperV2 input_file=[TEXT CLIPPED FOR CLARITY]"
+ _header 22 23 #CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NA12878
+ chr1 873761 873762 . 5231.78 T G PASS AC=1;AF=0.50;AN=2;DP=315;Dels=0.00;HRun=2;HaplotypeScore=15.11;MQ=91.05;MQ0=15;QD=16.61;SB=-1533.02;VQSLOD=-1.5473 GT:AD:DP:GQ:PL 0/1:173,141:282:99:255,0,255
+ chr1 877663 877664 rs3828047 3931.66 A G PASS AC=2;AF=1.00;AN=2;DB;DP=105;Dels=0.00;HRun=1;HaplotypeScore=1.59;MQ=92.52;MQ0=4;QD=37.44;SB=-1152.13;VQSLOD=0.1185 GT:AD:DP:GQ:PL 1/1:0,105:94:99:255,255,0
+ chr1 899281 899282 rs28548431 71.77 C T PASS AC=1;AF=0.50;AN=2;DB;DP=4;Dels=0.00;HRun=0;HaplotypeScore=0.00;MQ=99.00;MQ0=0;QD=17.94;SB=-46.55;VQSLOD=-1.9148 GT:AD:DP:GQ:PL 0/1:1,3:4:25.92:103,0,26
+ chr1 974164 974165 rs9442391 29.84 T C LowQual AC=1;AF=0.50;AN=2;DB;DP=18;Dels=0.00;HRun=1;HaplotypeScore=0.16;MQ=95.26;MQ0=0;QD=1.66;SB=-0.98 GT:AD:DP:GQ:PL 0/1:14,4:14:60.91:61,0,255
+
+With this option, the ``vcf2*`` scripts are completely "non-lossy". Use of ``awk`` or other scripting tools can munge these data back into a VCF-formatted file.
+
+.. note:: Note the conversion from 1- to 0-based coordinate indexing, in the transition from VCF to BED. While BEDOPS supports 0- and 1-based coordinate indexing, the coordinate change made here is believed to be convenient for most end users.
+
+.. _vcf2bed_column_mapping:
+
+==============
+Column mapping
+==============
+
+In this section, we describe how VCF v4.2 columns are mapped to BED columns. We start with the first five UCSC BED columns as follows:
+
++---------------------------+---------------------+---------------+
+| VCF v4.2 field | BED column index | BED field |
++===========================+=====================+===============+
+| #CHROM | 1 | chromosome |
++---------------------------+---------------------+---------------+
+| POS - 1 | 2 | start |
++---------------------------+---------------------+---------------+
+| POS (*) | 3 | stop |
++---------------------------+---------------------+---------------+
+| ID | 4 | id |
++---------------------------+---------------------+---------------+
+| QUAL | 5 | score |
++---------------------------+---------------------+---------------+
+
+The remaining columns are mapped as follows:
+
++---------------------------+---------------------+---------------+
+| VCF v4.2 field | BED column index | BED field |
++===========================+=====================+===============+
+| REF | 6 | |
++---------------------------+---------------------+---------------+
+| ALT | 7 | |
++---------------------------+---------------------+---------------+
+| FILTER | 8 | |
++---------------------------+---------------------+---------------+
+| INFO | 9 | |
++---------------------------+---------------------+---------------+
+
+If present in the VCF v4.2 input, the following columns are also mapped:
+
++---------------------------+---------------------+---------------+
+| VCF v4.2 field | BED column index | BED field |
++===========================+=====================+===============+
+| FORMAT | 10 | |
++---------------------------+---------------------+---------------+
+| Sample ID 1 | 11 | |
++---------------------------+---------------------+---------------+
+| Sample ID 2 | 12 | |
++---------------------------+---------------------+---------------+
+| ... | 13, 14, etc. | |
++---------------------------+---------------------+---------------+
+
+When using ``--deletions``, the stop value of the BED output is determined by the length difference between ALT and REF alleles. Use of ``--insertions`` or ``--snvs`` yields a one-base BED element.
+
+If the ALT field contains more than one allele, multiple BED records will be printed. Use the ``--do-not-split`` option if you only want one BED record per variant call.
+
+The "meta-information" (starting with ``##``) and "header" lines (starting with ``#``) are discarded, unless the ``--keep-headers`` options is specified.
+
+.. _vcf2bed_downloads:
+
+=========
+Downloads
+=========
+
+* Sample VCF dataset: :download:`foo.vcf <../../../../assets/reference/file-management/conversion/reference_vcf2bed_foo.vcf>`
+
+.. |--| unicode:: U+2013 .. en dash
+.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace
+ :trim:
diff --git a/docs/content/reference/file-management/conversion/wig2bed.rst b/docs/content/reference/file-management/conversion/wig2bed.rst
new file mode 100644
index 0000000..963c47a
--- /dev/null
+++ b/docs/content/reference/file-management/conversion/wig2bed.rst
@@ -0,0 +1,99 @@
+.. _wig2bed:
+
+`wig2bed`
+=========
+
+The ``wig2bed`` script converts both *variable* - and *fixed* -step, 1-based, closed ``[start, end]`` `UCSC Wiggle format <http://genome.ucsc.edu/goldenPath/help/wiggle.html>`_ (WIG) to sorted, 0-based, half-open ``[start-1, end)`` extended BED data.
+
+In the case where WIG data are sourced from ``bigWigToWig`` or other tools that generate 0-based, half-open ``[start-1, end)`` WIG, a ``--zero-indexed`` option is provided to generate coordinate output without any re-indexing.
+
+For convenience, we also offer ``wig2starch``, which performs the extra step of creating a :ref:`Starch-formatted <starch_specification>` archive.
+
+The utility also supports multiple embedded WIG sections in a single file, which are output to the BED file with modified ID fields, using the ``--multisplit`` option.
+
+======
+Source
+======
+
+The ``wig2bed`` script requires :ref:`convert2bed <convert2bed>`. The ``wig2starch`` script requires :ref:`starch <starch>`. Both dependencies are part of a typical BEDOPS installation.
+
+=====
+Usage
+=====
+
+The ``wig2bed`` script parses WIG from standard input and prints sorted BED to standard output. The ``wig2starch`` script uses an extra step to parse WIG to a compressed BEDOPS :ref:`Starch-formatted <starch_specification>` archive, which is also directed to standard output.
+
+The header data of a WIG file is usually discarded, unless you add the ``--keep-header`` option. In this case, BED elements are created from these data, using the chromosome name ``_header`` to denote content. Line numbers are specified in the start and stop coordinates, and unmodified header data are placed in the fourth column (ID field).
+
+If the input data contain WIG elements with a start position of 0, the default use of ``wig2bed`` and ``wig2starch`` will exit early with an ``EINVAL`` error. Add the ``--zero-indexed`` option to denote that the input WIG data are zero-indexed, and re-run the conversion tool to print unmodified output coordinates.
+
+.. tip:: If your WIG input is potentially zero-indexed, *e.g.*, if derived from ``bigWigToWig``, where the ``bigWig`` data are themselves sourced from BAM- or bedGraph-formatted data, then it is recommended to use the ``--zero-indexed`` option as a safety measure.
+
+If your data contain multiple WIG sections, use the ``--multisplit <basename>`` option to split sections out to BED elements with modified ID fields. This option can be used in conjunction with the ``--keep-header`` option to preserve metadata.
+
+.. tip:: By default, all conversion scripts now output sorted BED data ready for use with BEDOPS utilities. If you do not want to sort converted output, use the ``--do-not-sort`` option. Run the script with the ``--help`` option for more details.
+
+.. tip:: If sorting converted data larger than system memory, use the ``--max-mem`` option to limit sort memory usage to a reasonable fraction of available memory, *e.g.*, ``--max-mem 2G`` or similar. See ``--help`` for more details.
+
+=======
+Example
+=======
+
+To demonstrate these scripts, we use a sample multi-section WIG input called ``foo.wig`` (see the :ref:`Downloads <wig2bed_downloads>` section to grab this file). We can convert WIG to sorted BED data in the following manner:
+
+::
+
+ $ wig2bed < foo.wig
+ chr1 147971108 147971158 id-1 -0.590000
+ chr1 147971146 147971196 id-2 0.120000
+ chr1 147971184 147971234 id-3 0.110000
+ chr1 147971222 147971272 id-4 -0.760000
+ ...
+
+.. note:: Even though our WIG input ``foo.wig`` has multiple sections, we can omit the use of ``--multisplit``, because conversion and sorting puts everything into one sorted BED file. However, the header data of the WIG file is discarded.
+
+If we want to preserve the header data, we can add the ``--keep-header`` option. In this case, BED elements are created from these data, using the chromosome name ``_header`` to denote content. Line numbers are specified in the start and stop coordinates, and unmodified header data are placed in the fourth column (ID field).
+
+In the case of the sample input ``foo.wig``, we will also need to add the ``--multisplit`` option, as header BED elements from each section will otherwise be collated in a non-sensical way. Adding ``--multisplit`` ensures that header data are converted and stored in separate BED files.
+
+To demonstrate, we next repeat the above conversion, adding the ``--keep-header`` and ``--multisplit`` options:
+
+::
+
+ $ wig2bed --multisplit bar --keep-header < foo.wig > foo.bed
+
+Conversion of this two-section WIG input results in output with modified ID fields to denote their section association:
+
+::
+
+ $ more foo.bed
+ _header 0 1 bar.1 track type=wiggle_0 name=foo description=foo
+ _header 1 2 bar.2 track type=wiggle_0 name=testfixed
+ _header 2 3 bar.2 fixedStep chrom=chrX start=100 step=10 span=5
+ chr1 147971108 147971158 bar.1-id-1 -0.590000
+ chr1 147971146 147971196 bar.1-id-2 0.120000
+ chr1 147971184 147971234 bar.1-id-3 0.110000
+ chr1 147971222 147971272 bar.1-id-4 -0.760000
+ chrX 99 104 bar.2-id-11 1.900000
+ chrX 109 114 bar.2-id-12 2.300000
+ chrX 119 124 bar.2-id-13 -0.100000
+ chrX 129 134 bar.2-id-14 1.100000
+ chrX 139 144 bar.2-id-15 4.100000
+
+.. note:: Note the conversion from 1- to 0-based coordinate indexing, in the transition from WIG to BED. While BEDOPS supports 0- and 1-based coordinate indexing, the coordinate change made here is believed to be convenient for most end users.
+
+ In the case where the WIG data contain elements that have a start position of 0, the default use of ``wig2bed`` and ``wig2starch`` will exit early with an ``EINVAL`` error. Add the ``--zero-indexed`` option to denote that the WIG input is zero-indexed and re-run to convert without any coordinate shift.
+
+.. note:: Multiple WIG sections in the input file are merged together by the default ``wig2bed`` behavior. When using the ``--multisplit`` option, each WIG section instead receives its own ID prefix.
+
+.. _wig2bed_downloads:
+
+=========
+Downloads
+=========
+
+* Sample WIG dataset: :download:`foo.wig <../../../../assets/reference/file-management/conversion/reference_wig2bed_foo.wig>`
+
+.. |--| unicode:: U+2013 .. en dash
+.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace
+ :trim:
diff --git a/docs/content/reference/file-management/sorting.rst b/docs/content/reference/file-management/sorting.rst
new file mode 100644
index 0000000..7bafda8
--- /dev/null
+++ b/docs/content/reference/file-management/sorting.rst
@@ -0,0 +1,6 @@
+Sorting
+=======
+
+.. toctree::
+
+ sorting/sort-bed
diff --git a/docs/content/reference/file-management/sorting/sort-bed.rst b/docs/content/reference/file-management/sorting/sort-bed.rst
new file mode 100644
index 0000000..65fa34a
--- /dev/null
+++ b/docs/content/reference/file-management/sorting/sort-bed.rst
@@ -0,0 +1,75 @@
+.. _sort-bed:
+
+`sort-bed`
+==========
+
+The ``sort-bed`` utility sorts BED files of any size, even larger than system memory. BED files that are in lexicographic-chromosome order allow BEDOPS utilities to work efficiently with data from any species without software modifications. Further, sorted files can be traversed very quickly.
+
+Sorted BED order is defined first by lexicographic chromosome order, then ascending integer start coordinate order, and finally by ascending integer end coordinate order.
+
+Other utilities in the BEDOPS suite require data in sorted order as described. You only need to sort once: BEDOPS utilities all read and write data in sorted order.
+
+==================
+Inputs and outputs
+==================
+
+-----
+Input
+-----
+
+The :ref:`sort-bed` utility requires one or more three-column BED file(s). Support for common headers (such as `UCSC BED track headers <http://genome.ucsc.edu/FAQ/FAQformat.html#format1>`_) is included, although headers will be stripped from the output.
+
+------
+Output
+------
+
+The :ref:`sort-bed` utility sends lexicographically-sorted BED data to standard output, which can be redirected to a file or piped to other utilities, including core BEDOPS utilities like :ref:`bedops` and :ref:`bedmap`.
+
+=====
+Usage
+=====
+
+The ``--help`` option is fairly basic, but describes the usage:
+
+::
+
+ sort-bed
+ citation: http://bioinformatics.oxfordjournals.org/content/28/14/1919.abstract
+ version: 2.4.20
+ authors: Scott Kuehn
+
+ USAGE: sort-bed [--help] [--version] [--check-sort] [--max-mem <val>] [--tmpdir <path>] <file1.bed> <file2.bed> <...>
+ Sort BED file(s).
+ May use '-' to indicate stdin.
+ Results are sent to stdout.
+
+ <val> for --max-mem may be 8G, 8000M, or 8000000000 to specify 8 GB of memory.
+ --tmpdir is useful only with --max-mem.
+
+A simple example of using :ref:`sort-bed` would be:
+
+::
+
+ $ sort-bed unsortedData.bed > sortedData.bed
+
+The :ref:`sort-bed` program efficiently sorts BED inputs. By default, all input records are read into system memory and sorted. If your BED dataset is larger than available system memory, use the ``--max-mem`` option to limit the amount of memory :ref:`sort-bed` uses to do its work:
+
+::
+
+ $ sort-bed --max-mem 2G reallyHugeUnsortedData.bed > reallyHugeSortedData.bed
+
+This option allows :ref:`sort-bed` to scale to input of any size.
+
+The ``--tmpdir`` option allows specification of an alternative temporary directory, when used in conjunction with ``--max-mem`` option. This is useful if the host operating system’s standard temporary directory (*e.g.*, ``/tmp`` on Linux or OS X) does not have sufficient space to hold intermediate results.
+
+For example, to use the current working directory to store temporary data, one could use the ``$PWD`` environment variable:
+
+::
+
+ $ sort-bed --max-mem 2G --tmpdir $PWD reallyHugeUnsortedData.bed > reallyHugeSortedData.bed
+
+Use of the ``--check-sort`` option returns a message if the input is sorted, or not.
+
+.. |--| unicode:: U+2013 .. en dash
+.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace
+ :trim:
diff --git a/docs/content/reference/set-operations.rst b/docs/content/reference/set-operations.rst
new file mode 100644
index 0000000..9b82ebf
--- /dev/null
+++ b/docs/content/reference/set-operations.rst
@@ -0,0 +1,9 @@
+Set operations
+==============
+
+.. toctree::
+
+ set-operations/bedops
+ set-operations/bedextract
+ set-operations/closest-features
+ set-operations/nested-elements
diff --git a/docs/content/reference/set-operations/bedextract.rst b/docs/content/reference/set-operations/bedextract.rst
new file mode 100644
index 0000000..f21845e
--- /dev/null
+++ b/docs/content/reference/set-operations/bedextract.rst
@@ -0,0 +1,239 @@
+.. _bedextract:
+
+`bedextract`
+============
+
+The ``bedextract`` utility performs three primary tasks, with the goal of doing them very quickly:
+
+1. Lists all the chromosomes in a sorted input BED file.
+2. Extracts all the elements in a sorted input BED file, for a given chromosome.
+3. Finds elements of one BED file, which overlap elements in a second, reference BED file (when specific element criteria are satisfied).
+
+One might ask why use this utility, when the first two tasks can already be performed with common UNIX text processing tools, such as ``cut``, ``sort``, ``uniq``, and ``awk``, and the third task can be performed with :ref:`bedops` with the ``--element-of 1`` options?
+
+The ``bedextract`` utility does the work of all those tools without streaming through an entire BED file, resulting in massive performance improvements. By using the hints provided by sorted BED input, the :ref:`bedextract` tool can jump around, seeking very quick answers to these questions about your data.
+
+============
+How it works
+============
+
+Specifically, sorting with :ref:`sort-bed` allows us to perform a `binary search <http://en.wikipedia.org/wiki/Binary_search_algorithm>`_:
+
+1. We jump to the middle byte of the BED file, stream to the nearest element, then parse and test the chromosome name.
+2. Either we have a match, or we jump to the middle of the remaining left or right half (decided by dictionary order), parse and test again.
+3. We repeat steps 1 and 2 until we have matches that define the bounds of the target chromosome.
+
+.. image:: ../../../assets/reference/set-operations/reference_bedextract_mechanism.png
+ :width: 99%
+
+To indicate the kind of speed gain that the :ref:`bedextract` tool provides, in local testing, a naïve listing of chromosomes from a 36 GB BED input using UNIX ``cut`` and ``uniq`` utilities took approximately 20 minutes to complete on a typical Core 2 Duo-based Linux workstation. Retrieval of the same chromosome listing with ``bedextract --list-chr`` took only 2 seconds (cache flushed |---| no cheating!).
+
+.. tip:: While listing chromosomes is perhaps a trivial task, 1200 seconds to 2 seconds is a **600-fold** speedup. Similar improvements are gained from using ``--chrom`` and ``--faster`` options with other core BEDOPS tools like :ref:`bedops` and :ref:`bedmap`. If your data meet the criteria for using this approach |---| and a lot of genomic datasets do |---| we strongly encourage adding this to your toolkit.
+
+==================
+Inputs and outputs
+==================
+
+-----
+Input
+-----
+
+Depending on specified options, :ref:`bedextract` requires one or two :ref:`sorted <sort-bed>` BED files.
+
+.. note:: It is critical that inputs are :ref:`sorted <sort-bed>` as the information in a sorted file allows :ref:`bedextract` to do its work correctly. If your datasets are output from other BEDOPS tools, then they are already sorted!
+
+------
+Output
+------
+
+Depending on specified options, the :ref:`bedextract` program will send a list of chromosomes or BED elements to standard output.
+
+.. tip:: The use of UNIX-like standard streams allows easy downstream analysis or post-processing with other tools and scripts, including other BEDOPS utilities.
+
+=====
+Usage
+=====
+
+The ``--help`` option describes the functionality available to the end user:
+
+::
+
+ bedextract
+ citation: http://bioinformatics.oxfordjournals.org/content/28/14/1919.abstract
+ version: 2.4.20
+ authors: Shane Neph & Alex Reynolds
+
+ Every input file must be sorted per sort-bed.
+
+ USAGE:
+ 0) --help or --version Print requested info and exit successfully.
+ 1) --list-chr <input.bed> Print all unique chromosome names found in <input.bed>.
+ 2) <chromosome> <input.bed> Retrieve all rows for chr8 with: bedextract chr8 <input.bed>.
+ 3) <query.bed> <target> Grab elements from the <query.bed> that overlap elements in <target>. Same as
+ `bedops -e 1 <query.bed> <target>`, except that this option fails silently
+ if <query.bed> contains fully-nested BED elements. If no fully-nested
+ element exists, bedextract can vastly improve upon the performance of bedops.
+ <target> may be a BED or Starch file (with or without fully-nested elements).
+ Using '-' for <target> indicates input (in BED format) comes from stdin.
+
+-------------------
+Listing chromosomes
+-------------------
+
+Use the ``--list-chr`` option to quickly retrieve a listing of chromosomes from a given sorted BED input.
+
+For example, the following lists the chromosomes in an example BED file of FIMO motif hits (see the :ref:`Downloads <bedextract_downloads>` section):
+
+::
+
+ $ bedextract --list-chr motifs.bed
+ chr1
+ chr10
+ chr11
+ chr12
+ ...
+ chr9
+ chrX
+
+.. note:: The ``bedextract --list-chr`` operation only works on BED files. If you have a Starch file, use ``unstarch --list-chr`` to list its chromosomes.
+
+----------------------------------------------
+Retrieving elements from a specific chromosome
+----------------------------------------------
+
+To quickly retrieve the subset of elements from a sorted BED file associated with a given chromosome, apply the second usage case and specify the chromosome as the argument.
+
+For example, to retrieve ``chrX`` from the same motif sample:
+
+::
+
+ $ bedextract chrX motifs.bed
+ chrX 6775077 6775092 +V_SPZ1_01 4.92705e-06 + GTTGGAGGGAAGGGC
+ chrX 6775168 6775179 +V_ELF5_01 8.57585e-06 + TCAAGGAAGTA
+ chrX 6777790 6777799 +V_CKROX_Q2 8.90515e-06 + TCCCTCCCC
+ ...
+
+.. note:: The ``bedextract <chromosome>`` operation only works on BED files. If you have a Starch file, use ``unstarch <chromosome>`` to list the elements associated with that chromosome.
+
+-------------------------------------------------
+Retrieving elements which overlap target elements
+-------------------------------------------------
+
+A common :ref:`bedops` query involves asking which elements overlap one or more bases between two BED datasets, which we will call here ``Query`` and ``Target``.
+
+One can already use ``bedops --element-of 1`` to accomplish this task, but if certain specific criteria are met (which we will describe shortly) then a much faster result can often be obtained by instead using :ref:`bedextract`.
+
+Three criteria make the use of :ref:`bedextract` in this mode very successful in practice, with potentially massive speed improvements:
+
+1. ``Query`` is a huge file.
+2. There are relatively few regions of interest in ``Target`` (say, roughly 30,000 or fewer).
+3. There are **no fully-nested elements** in ``Query`` (but duplicate coordinates are fine).
+
+.. note:: With some extra work, it is possible to use this mode of bedextract with a huge ``Query`` BED file that includes fully-nested elements. The technique requires that you create a merged version of ``Query`` and keep that result, ``Query-Index``, around along with ``Query``.
+
+::
+
+ $ bedops -m Query > Query-Index
+ $ bedextract Query-Index Target \
+ | bedextract Query - \
+ | bedops --element-of 1 - Target \
+ > answer.bed
+
+.. note:: You may change the final overlap criterion to the `bedops --element-of` as you see fit for your final answer.
+
+.. _bedextract_nested_elements:
+
+^^^^^^^^^^^^^^^^^^^^^^^^^
+What are nested elements?
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+For a precise definition of a nested element, refer to the :ref:`documentation on nested elements <nested_elements>`.
+
+For an example, we show the following sorted BED file:
+
+::
+
+ chr1 1 100
+ chr1 100 200
+ chr1 125 150
+ chr1 150 1000
+
+In this sorted dataset, the element ``chr1:125-150`` is entirely nested within ``chr1:100-200``:
+
+.. image:: ../../../assets/reference/set-operations/reference_bedextract_nested_elements.png
+ :width: 99%
+
+.. note:: Fully-nested elements are not a problem for the other two :ref:`bedextract` features: 1) Listing all chromosomes, and 2) Retrieving all information for a single chromosome.
+
+Fully-nested elements are only an issue for :ref:`bedextract` if they exist in the ``Query`` dataset. Results are not affected if the ``Target`` dataset contains nested elements. Overlapping (but not fully-nested) elements in the ``Query`` input file are fine, as are duplicated genomic positions.
+
+.. note:: Our lab works with BED data of various types: cut-counts, hotspots, peaks, footprints, etc. These data generally do not contain nested elements and so are amenable to use with :ref:`bedextract` for extracting overlapping elements.
+
+ However, other types of ``Query`` datasets can be problematic. FIMO search results, for example, might cause trouble, where the boundaries of one motif hit can be contained within another larger hit. Or paired-end sequence data, where tags are not of a fixed length. Be sure to consider the makeup of your BED data before using :ref:`bedextract`.
+
+^^^^^^^^^^^^^
+Demonstration
+^^^^^^^^^^^^^
+
+To demonstrate this use of :ref:`bedextract`, for our ``Query`` dataset we will use the ``Map`` example from our :ref:`bedmap` documentation, which contains raw DNaseI hypersensitivity signal from a human K562 cell line (see the :ref:`Downloads <bedextract_downloads>` section for sample data):
+
+::
+
+ $ cat query.bed
+ chr21 33031165 33031185 map-1 1.000000
+ chr21 33031185 33031205 map-2 3.000000
+ chr21 33031205 33031225 map-3 3.000000
+ chr21 33031225 33031245 map-4 3.000000
+ ...
+ chr21 33032445 33032465 map-65 5.000000
+ chr21 33032465 33032485 map-66 6.000000
+
+Our ``Target`` data is simply an *ad-hoc* BED region which overlaps part of the ``Query`` dataset, stored in a :ref:`Starch-formatted <starch>` archive:
+
+::
+
+ $ unstarch target.starch
+ chr21 33031600 33031700
+
+We can now ask which elements of ``Query`` overlap the element in ``Target``:
+
+::
+
+ $ bedextract query.bed target.starch
+ chr21 33031585 33031605 map-22 26.000000
+ chr21 33031605 33031625 map-23 27.000000
+ chr21 33031625 33031645 map-24 29.000000
+ chr21 33031645 33031665 map-25 31.000000
+ chr21 33031665 33031685 map-26 31.000000
+ chr21 33031685 33031705 map-27 37.000000
+
+Our ``Target`` dataset is a Starch-formatted file. Note that we can also use "-" to denote standard input for the ``Target`` dataset, as well as a regular BED- or Starch-formatted file. In other words, we can pipe target elements from another process to :ref:`bedextract`, *e.g.* we can query for an ad-hoc element as follows:
+
+::
+
+ $ echo -e "chr21\t33031590\t33031600" | bedextract query.bed -
+ chr21 33031585 33031605 map-22 26.000000
+
+Instead of an *ad-hoc* element as in this example, however, target elements could just as easily be piped in from upstream :ref:`bedmap` or :ref:`bedops` operations, or extracted elements from a Starch archive, etc.
+
+.. tip:: The output of this particular use of :ref:`bedextract` is made up of elements from the ``Query`` dataset and is therefore :ref:`sorted <sort-bed>` BED data, which can be piped to :ref:`bedops`, :ref:`bedmap` and other BEDOPS utilities for further downstream processing.
+
+.. note:: Though :ref:`bedextract` only supports the overlap equivalent of ``bedops --element-of 1``, other overlap criteria are efficiently supported by combining :ref:`bedextract` with :ref:`bedops`.
+
+ Specifically, we can quickly filter through just the results given by :ref:`bedextract` and implement other overlap criteria with :ref:`bedops`, *e.g.*:
+
+ ``$ bedextract query.bed target.bed | bedops -e 50% - target.bed``
+
+.. _bedextract_downloads:
+
+=========
+Downloads
+=========
+
+* Sample :download:`FIMO motifs <../../../assets/reference/set-operations/reference_bedextract_motifs.bed>`
+* Sample ``Query`` dataset: :download:`DHS signal <../../../assets/reference/statistics/reference_bedmap_map.bed>`
+* Sample ``Target`` dataset: :download:`ad-hoc coordinates <../../../assets/reference/set-operations/reference_bedextract_target.starch>`
+
+.. |--| unicode:: U+2013 .. en dash
+.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace
+ :trim:
diff --git a/docs/content/reference/set-operations/bedops.rst b/docs/content/reference/set-operations/bedops.rst
new file mode 100644
index 0000000..24ae1c4
--- /dev/null
+++ b/docs/content/reference/set-operations/bedops.rst
@@ -0,0 +1,854 @@
+.. _bedops:
+
+`bedops`
+========
+
+``bedops`` is a core tool for finding relationships between two or more genomic datasets.
+
+This is an important category of problems to solve. As examples, one might want to:
+
+* Know how much overlap exists between the elements of two datasets, to quantitatively establish the degree to which they are similar.
+* Merge or filter elements. For example, retrieving non-overlapping, "unique" elements from multiple BED files.
+* Split elements from multiple BED files into disjoint subsets.
+
+The :ref:`bedops` program offers several Boolean set and multiset operations, including union, subset, and difference, to assist investigators with answering these types of questions.
+
+Importantly, :ref:`bedops` handles any number of any-size inputs at once when computing results in order to maximize efficiency. This use case has :ref:`serious practical consequences <multiple_inputs>` for many genomic studies.
+
+One can also use :ref:`bedops` to symmetrically or asymmetrically pad coordinates.
+
+==================
+Inputs and outputs
+==================
+
+-----
+Input
+-----
+
+The :ref:`bedops` program reads :ref:`sorted <sort-bed>` BED data and BEDOPS :ref:`Starch-formatted <starch>` archives as input.
+
+Finally, :ref:`bedops` requires specification of a set operation (and, optionally, may include modifier options).
+
+Support for common headers (including UCSC track headers) is offered through the ``--header`` option. Headers are stripped from output.
+
+------
+Output
+------
+
+The :ref:`bedops` program returns :ref:`sorted <sort-bed>` BED results to standard output. This output can be redirected to a file or piped to other utilities.
+
+=====
+Usage
+=====
+
+The :ref:`bedops` program takes sorted BED-formatted data as input, either from a file or streamed from standard input. It will process any number of input files in parallel.
+
+If your data are unsorted, use BEDOPS :ref:`sort-bed` to prepare data for :ref:`bedops`. You only need to sort once, as all BEDOPS tools read and write sorted BED data.
+
+Because memory usage is very low, one can use sorted inputs of any size. Processing times generally follow a simple linear relationship with input sizes (*e.g.*, as the input size doubles, the processing time doubles accordingly).
+
+The ``--help`` option describes the set operation and other options available to the end user:
+
+::
+
+ bedops
+ citation: http://bioinformatics.oxfordjournals.org/content/28/14/1919.abstract
+ version: 2.4.20
+ authors: Shane Neph & Scott Kuehn
+
+ USAGE: bedops [process-flags] <operation> <File(s)>*
+
+ Every input file must be sorted per the sort-bed utility.
+ Each operation requires a minimum number of files as shown below.
+ There is no fixed maximum number of files that may be used.
+ Input files must have at least the first 3 columns of the BED specification.
+ The program accepts BED and Starch file formats.
+ May use '-' for a file to indicate reading from standard input (BED format only).
+
+ Process Flags:
+ --chrom <chromosome> Process data for given <chromosome> only.
+ --ec Error check input files (slower).
+ --header Accept headers (VCF, GFF, SAM, BED, WIG) in any input file.
+ --help Print this message and exit successfully.
+ --help-<operation> Detailed help on <operation>.
+ An example is --help-c or --help-complement
+ --range L:R Add 'L' bp to all start coordinates and 'R' bp to end
+ coordinates. Either value may be + or - to grow or
+ shrink regions. With the -e/-n operations, the first
+ (reference) file is not padded, unlike all other files.
+ --range S Pad or shink input file(s) coordinates symmetrically by S.
+ This is shorthand for: --range -S:S.
+ --version Print program information.
+
+ Operations: (choose one of)
+ -c, --complement [-L] File1 [File]*
+ -d, --difference ReferenceFile File2 [File]*
+ -e, --element-of [number% | number] ReferenceFile File2 [File]*
+ by default, -e 100% is used. 'bedops -e 1' is also popular.
+ -i, --intersect File1 File2 [File]*
+ -m, --merge File1 [File]*
+ -n, --not-element-of [number% | number] ReferenceFile File2 [File]*
+ by default, -n 100% is used. 'bedops -n 1' is also popular.
+ -p, --partition File1 [File]*
+ -s, --symmdiff File1 File2 [File]*
+ -u, --everything File1 [File]*
+ -w, --chop [bp] [--stagger [bp]] [-x] File1 [File]*
+ by default, -w 1 is used with no staggering.
+
+ Example: bedops --range 10 -u file1.bed
+ NOTE: Only operations -e|n|u preserve all columns (no flattening)
+
+.. note:: Extended help is available for all operations in :ref:`bedops`. For example, the ``--help-symmdiff`` option in :ref:`bedops` gives detailed information on the ``--symmdiff`` operation.
+
+==========
+Operations
+==========
+
+To demonstrate the various operations in :ref:`bedops`, we start with two simple datasets ``A`` and ``B``, containing genomic elements on generic chromsome ``chrN``:
+
+.. image:: ../../../assets/reference/set-operations/reference_setops_bedops_inputs at 2x.png
+ :width: 99%
+
+These datasets can be :ref:`sorted <sort-bed>` BED or :ref:`Starch-formatted <starch>` files or streams.
+
+.. note:: The :ref:`bedops` tool can operate on two or more multiple inputs, but we show here the results of operations acting on just two or three sets, in order to help demonstrate the basic principles of applying set operations.
+
+.. _bedops_everything:
+
+-----------------------------
+Everything (-u, --everything)
+-----------------------------
+
+The ``--everything`` option is equivalent to concatenating and sorting BED elements from multiple files, but works much faster:
+
+.. image:: ../../../assets/reference/set-operations/reference_setops_bedops_everything at 2x.png
+ :width: 99%
+
+As with all BEDOPS tools and operations, the output of this operation is :ref:`sorted <sort-bed>`.
+
+.. note:: The ``--everything`` option preserves all columns from all inputs. This is useful for multiset unions of datasets with additional ID, score or other metadata.
+
+.. admonition:: Example
+ :class: admonition-example
+
+ To demonstrate the use of ``--everything`` in performing a multiset union, we show three sorted sets ``First.bed``, ``Second.bed`` and ``Third.bed`` and the result of their union with ``bedops``:
+
+ .. code:: bash
+
+ $ more First.bed
+ chr1 100 200
+ chr2 150 300
+ chr2 200 250
+ chr3 100 150
+
+ .. code:: bash
+
+ $ more Second.bed
+ chr2 50 150
+ chr2 400 600
+
+ .. code:: bash
+
+ $ more Third.bed
+ chr3 150 350
+
+ .. code:: bash
+
+ $ bedops --everything First.bed Second.bed Third.bed > Result.bed
+
+ .. code:: bash
+
+ $ more Result.bed
+ chr1 100 200
+ chr2 50 150
+ chr2 150 300
+ chr2 200 250
+ chr2 400 600
+ chr3 100 150
+ chr3 150 350
+
+ This example uses three input sets, but you can specify two, four or even more sets with ``--everything`` to take their union.
+
+.. _bedops_element_of:
+
+-----------------------------
+Element-of (-e, --element-of)
+-----------------------------
+
+The ``--element-of`` operation shows the elements of the first ("*reference*") file that overlap elements in the second and subsequent "*query*" files by the specified length (in bases) or by percentage of length.
+
+In the following example, we search for elements in the reference set ``A`` which overlap elements in query set ``B`` by at least one base:
+
+.. image:: ../../../assets/reference/set-operations/reference_setops_bedops_elementof_ab at 2x.png
+ :width: 99%
+
+Elements that are returned are always from the reference set (in this case, set ``A``).
+
+.. note:: The ``--element-of`` option preserves all columns from the first (reference) input.
+
+.. admonition:: Example
+ :class: admonition-example
+
+ The argument to ``--element-of`` is a value that species to degree of overlap for elements. The value is either integral for per-base overlap, or fractional for overlap measured by length.
+
+ Here is a demonstration of the use of ``--element-of 1`` on two sorted sets ``First.bed`` and ``Second.bed``, which looks for elements in the ``First`` set that overlap elements in the ``Second`` set by one or more bases:
+
+ .. code:: bash
+
+ $ more First.bed
+ chr1 100 200
+ chr1 150 160
+ chr1 200 300
+ chr1 400 475
+ chr1 500 550
+
+ .. code:: bash
+
+ $ more Second.bed
+ chr1 120 125
+ chr1 150 155
+ chr1 150 160
+ chr1 460 470
+ chr1 490 500
+
+ .. code:: bash
+
+ $ bedops --element-of 1 First.bed Second.bed > Result.bed
+
+ .. code:: bash
+
+ $ more Result.bed
+ chr1 100 200
+ chr1 150 160
+ chr1 400 475
+
+ One base is the least stringent (default) integral criterion. We can be more restrictive about our overlap requirement by increasing this value, say to 15 bases:
+
+ .. code:: bash
+
+ $ bedops --element-of 15 First.bed Second.bed > Result.bed
+
+ .. code:: bash
+
+ $ more Result.bed
+ chr1 100 200
+
+ Only this element from the ``First`` set overlaps one or more elements in the ``Second`` set by a total of fifteen or more bases.
+
+ We can also use percentage of overlap as our argument. Let's say that we only want elements from the ``First`` set, which overlap half their length or more of a qualifying element in the ``Second`` set:
+
+ .. code:: bash
+
+ $ bedops --element-of 50% First.bed Second.bed > Result.bed
+
+ .. code:: bash
+
+ $ more Result.bed
+ chr1 150 160
+
+Note that `--element-of` is *not* a symmetric operation, as demonstrated by reversing the order of the reference and query set:
+
+.. image:: ../../../assets/reference/set-operations/reference_setops_bedops_elementof_ba at 2x.png
+ :width: 99%
+
+.. admonition:: Example
+ :class: admonition-example
+
+ As we show here, by inverting the usual order of our sample sets ``First`` and ``Second``, we retrieve elements from the ``Second`` set:
+
+ .. code:: bash
+
+ $ bedops --element-of 1 Second.bed First.bed > Result.bed
+
+ .. code:: bash
+
+ $ more Result.bed
+ chr1 120 125
+ chr1 150 155
+ chr1 150 160
+ chr1 460 470
+
+While this operation is not symmetric with respect to ordering of input sets, ``--element-of`` (``-e``) does produce exactly everything that ``--not-element-of`` (``-n``) does not, given the same overlap criterion and ordered input sets.
+
+.. note:: We show usage examples with two files, but ``--element-of`` supports three or more input sets. For a more in-depth discussion of ``--element-of`` and how overlaps are determined with three or more input files, please review the `BEDOPS forum discussion <http://bedops.uwencode.org/forum/index.php?topic=20.0>`_ on this subject.
+
+.. _bedops_not_element_of:
+
+-------------------------------------
+Not-element-of (-n, --not-element-of)
+-------------------------------------
+
+The ``--not-element-of`` operation shows elements in the reference file which do not overlap elements in all other sets. For example:
+
+.. image:: ../../../assets/reference/set-operations/reference_setops_bedops_notelementof_ab at 2x.png
+ :width: 99%
+
+.. admonition:: Example
+ :class: admonition-example
+
+ We again use sorted sets ``First.bed`` and ``Second.bed`` to demonstrate ``--not-element-of``, in order to look for elements in the ``First`` set that *do not* overlap elements in the ``Second`` set by one or more bases:
+
+ .. code:: bash
+
+ $ more First.bed
+ chr1 100 200
+ chr1 150 160
+ chr1 200 300
+ chr1 400 475
+ chr1 500 550
+
+ .. code:: bash
+
+ $ more Second.bed
+ chr1 120 125
+ chr1 150 155
+ chr1 150 160
+ chr1 460 470
+ chr1 490 500
+
+ .. code:: bash
+
+ $ bedops --not-element-of 1 First.bed Second.bed > Result.bed
+
+ .. code:: bash
+
+ $ more Result.bed
+ chr1 200 300
+ chr1 500 550
+
+As with the ``--element-of`` (``-e``) operator, the overlap criterion for ``--not-element-of`` (``-n``) can be specified either by length in bases, or by percentage of length.
+
+Similarly, this operation is not symmetric |--| the order of inputs will specify the reference set, and thus the elements in the result (if any).
+
+.. note:: The ``--not-element-of`` operatior preserves columns from the first (reference) dataset.
+
+.. note:: The same caveat applies to use of ``--not-element-of`` (``-n``) as with ``--element-of`` (``-e``), namely that the second and all subsequent input files are merged before the set operation is applied. Please review the BEDOPS `forum discussion thread <http://bedops.uwencode.org/forum/index.php?topic=20.0>`_ on this topic for more details.
+
+.. _bedops_complement:
+
+-----------------------------
+Complement (-c, --complement)
+-----------------------------
+
+The ``--complement`` operation calculates the genomic regions in the gaps between the contiguous per-chromosome ranges defined by one or more inputs. The following example shows the use of two inputs:
+
+.. image:: ../../../assets/reference/set-operations/reference_setops_bedops_complement_ab at 2x.png
+ :width: 99%
+
+Note this **computed result** will lack ID, score and other columnar data other than the first three columns that contain positional data. That is, computed elements will not come from any of the input sets, but are new elements created from the input set space.
+
+.. admonition:: Example
+ :class: admonition-example
+
+ To demonstrate ``--complement``, we again use sorted sets ``First.bed`` and ``Second.bed``, in order to compute the "gaps" between their inputs:
+
+ .. code:: bash
+
+ $ more First.bed
+ chr1 100 200
+ chr1 150 160
+ chr1 200 300
+ chr1 400 475
+ chr1 500 550
+
+ .. code:: bash
+
+ $ more Second.bed
+ chr1 120 125
+ chr1 150 155
+ chr1 150 160
+ chr1 460 470
+ chr1 490 500
+
+ .. code:: bash
+
+ $ bedops --complement First.bed Second.bed > Result.bed
+
+ .. code:: bash
+
+ $ more Result.bed
+ chr1 300 400
+ chr1 475 490
+
+ As we see here, for a given chromosome, gaps are computed between the leftmost and rightmost edges of elements in the union of elements across all input sets.
+
+.. note:: For a more in-depth discussion on using ``--complement`` with left and right bounds of input chromosomes, please review the BEDOPS `forum discussion <http://bedops.uwencode.org/forum/index.php?topic=19.0>`_ on this subject.
+
+.. _bedops_difference:
+
+-----------------------------
+Difference (-d, --difference)
+-----------------------------
+
+The ``--difference`` operation calculates the genomic regions found within the first (reference) input file, excluding regions in all other input files:
+
+.. image:: ../../../assets/reference/set-operations/reference_setops_bedops_difference_ab at 2x.png
+ :width: 99%
+
+.. admonition:: Example
+ :class: admonition-example
+
+ To demonstrate ``--difference``, we use sorted sets ``First.bed`` and ``Second.bed`` and compute the genomic space in ``First`` that excludes (or "subtracts") ranges from ``Second``:
+
+ .. code:: bash
+
+ $ more First.bed
+ chr1 100 200
+ chr1 150 160
+ chr1 200 300
+ chr1 400 475
+ chr1 500 550
+
+ .. code:: bash
+
+ $ more Second.bed
+ chr1 120 125
+ chr1 150 155
+ chr1 150 160
+ chr1 460 470
+ chr1 490 500
+
+ .. code:: bash
+
+ $ bedops --difference First.bed Second.bed > Result.bed
+
+ .. code:: bash
+
+ $ more Result.bed
+ chr1 100 120
+ chr1 125 150
+ chr1 160 300
+ chr1 400 460
+ chr1 470 475
+ chr1 500 550
+
+.. note:: As with ``--element-of`` and ``--not-element-of``, this operation is not symmetric. While ``--not-element-of`` preserves all columns of elements found in the reference input and allows one to define overlaps, the ``--difference`` operator simply reports every genomic range as three-column BED, which does not overlap elements found in the second and subsequent input files by any amount.
+
+.. _bedops_symmetric_difference:
+
+-------------------------------------
+Symmetric difference (-s, --symmdiff)
+-------------------------------------
+
+The ``--symmdiff`` operation calculates the genomic range that is exclusive to each input, excluding any ranges shared across inputs:
+
+.. image:: ../../../assets/reference/set-operations/reference_setops_bedops_symmetricdifference_ab at 2x.png
+ :width: 99%
+
+.. admonition:: Example
+ :class: admonition-example
+
+ To demonstrate ``--symmdiff``, we use sorted sets ``First.bed`` and ``Second.bed`` and compute the genomic space that is unique to ``First`` and ``Second``:
+
+ .. code:: bash
+
+ $ more First.bed
+ chr1 100 200
+ chr1 150 160
+ chr1 200 300
+ chr1 400 475
+ chr1 500 550
+
+ .. code:: bash
+
+ $ more Second.bed
+ chr1 120 125
+ chr1 150 155
+ chr1 150 160
+ chr1 460 470
+ chr1 490 500
+
+ .. code:: bash
+
+ $ bedops --symmdiff First.bed Second.bed > Result.bed
+
+ .. code:: bash
+
+ $ more Result.bed
+ chr1 100 120
+ chr1 125 150
+ chr1 160 300
+ chr1 400 460
+ chr1 470 475
+ chr1 490 550
+
+.. tip:: It has been observed that ``--symmdiff`` (``-s``) is the same as the union of ``--difference A B`` with ``--difference B A``, but ``--symmdiff`` runs faster in practice.
+
+.. _bedops_intersect:
+
+---------------------------
+Intersect (-i, --intersect)
+---------------------------
+
+The ``--intersect`` operation determines genomic regions common to all input sets:
+
+.. image:: ../../../assets/reference/set-operations/reference_setops_bedops_intersect_ab at 2x.png
+ :width: 99%
+
+.. admonition:: Example
+ :class: admonition-example
+
+ To demonstrate ``--intersect``, we use sorted sets ``First.bed`` and ``Second.bed`` and compute the genomic space that is common to both ``First`` and ``Second``:
+
+ .. code:: bash
+
+ $ more First.bed
+ chr1 100 200
+ chr1 150 160
+ chr1 200 300
+ chr1 400 475
+ chr1 500 550
+
+ .. code:: bash
+
+ $ more Second.bed
+ chr1 120 125
+ chr1 150 155
+ chr1 150 160
+ chr1 460 470
+ chr1 490 500
+
+ .. code:: bash
+
+ $ bedops --intersect First.bed Second.bed > Result.bed
+
+ .. code:: bash
+
+ $ more Result.bed
+ chr1 120 125
+ chr1 150 160
+ chr1 460 470
+
+ Notice how this computed result is quite different from that of ``--element-of N``, which functions more like a LEFT JOIN operation in SQL.
+
+.. _bedops_merge:
+
+-------------------
+Merge (-m, --merge)
+-------------------
+
+The ``--merge`` operation flattens all disjoint, overlapping, and adjoining element regions into contiguous, disjoint regions:
+
+.. image:: ../../../assets/reference/set-operations/reference_setops_bedops_merge_ab at 2x.png
+ :width: 99%
+
+.. admonition:: Example
+ :class: admonition-example
+
+ To demonstrate ``--merge``, we use sorted sets ``First.bed`` and ``Second.bed`` and compute the contiguous genomic space across both ``First`` and ``Second``:
+
+ .. code:: bash
+
+ $ more First.bed
+ chr1 100 200
+ chr1 150 160
+ chr1 200 300
+ chr1 400 475
+ chr1 500 550
+
+ .. code:: bash
+
+ $ more Second.bed
+ chr1 120 125
+ chr1 150 155
+ chr1 150 160
+ chr1 460 470
+ chr1 490 500
+
+ .. code:: bash
+
+ $ bedops --merge First.bed Second.bed > Result.bed
+
+ .. code:: bash
+
+ $ more Result.bed
+ chr1 100 300
+ chr1 400 475
+ chr1 490 550
+
+.. tip:: The preceding example shows use of ``--merge`` (``-m``) with two inputs, but the merge operation works just as well with one input, collapsing elements within the file that overlap or which are directly adjoining.
+
+.. _bedops_partition:
+
+---------------------------
+Partition (-p, --partition)
+---------------------------
+
+The ``--partition`` operator splits all overlapping input regions into a set of disjoint segments. One or more input files may be provided; this option will segment regions from all inputs:
+
+.. image:: ../../../assets/reference/set-operations/reference_setops_bedops_partition_ab at 2x.png
+ :width: 99%
+
+.. admonition:: Example
+ :class: admonition-example
+
+ To demonstrate ``--partition``, we use sorted sets ``First.bed`` and ``Second.bed`` and compute disjointed genomic regions across both ``First`` and ``Second``:
+
+ .. code:: bash
+
+ $ more First.bed
+ chr1 100 200
+ chr1 150 160
+ chr1 200 300
+ chr1 400 475
+ chr1 500 550
+
+ .. code:: bash
+
+ $ more Second.bed
+ chr1 120 125
+ chr1 150 155
+ chr1 150 160
+ chr1 460 470
+ chr1 490 500
+
+ .. code:: bash
+
+ $ bedops --partition First.bed Second.bed > Result.bed
+
+ .. code:: bash
+
+ $ more Result.bed
+ chr1 100 120
+ chr1 120 125
+ chr1 125 150
+ chr1 150 155
+ chr1 155 160
+ chr1 160 200
+ chr1 200 300
+ chr1 400 460
+ chr1 460 470
+ chr1 470 475
+ chr1 490 500
+ chr1 500 550
+
+ Notice that the result set of partitioned elements excludes any duplicates from input regions, thus enforcing the disjoint nature of the computed result.
+
+.. note:: As with ``--merge``, ``--complement`` and other "computing" operations, note the lack of ID, score and other columnar data in this computed result.
+
+.. _bedops_chop:
+
+-----------------
+Chop (-w, --chop)
+-----------------
+
+The ``--chop`` operator merges all overlapping input regions and "chops" them up into a set of disjoint segments of identical length (with a default of one base). One or more input files may be provided; this option will segment regions from all inputs:
+
+.. image:: ../../../assets/reference/set-operations/reference_setops_bedops_chop_ab at 2x.png
+ :width: 99%
+
+.. admonition:: Example
+ :class: admonition-example
+
+ To demonstrate ``--chop``, we use a sorted set called ``Regions.bed`` and compute a set of one-base genomic regions constructed from the merged input elements:
+
+ .. code:: bash
+
+ $ more Regions.bed
+ chr1 100 105
+ chr1 120 127
+ chr1 122 124
+
+ .. code:: bash
+
+ $ bedops --chop 1 Regions.bed > Result.bed
+
+ .. code:: bash
+
+ $ more Result.bed
+ chr1 100 101
+ chr1 101 102
+ chr1 102 103
+ chr1 103 104
+ chr1 104 105
+ chr1 120 121
+ chr1 121 122
+ chr1 122 123
+ chr1 123 124
+ chr1 124 125
+ chr1 125 126
+ chr1 126 127
+
+.. note:: Overlapping and nested regions are merged into contiguous ranges before chopping. The end result contains unique, non-overlapping elements.
+
+.. _bedops_stagger:
+
+-------------------
+Stagger (--stagger)
+-------------------
+
+The ``--stagger`` operator works in conjunction with :ref:`--chop <bedops_chop>`. While ``--chop`` sets the size of each cut, the ``--stagger`` operator moves the start position of each cut by the specified number of bases, across each merged interval.
+
+.. image:: ../../../assets/reference/set-operations/reference_setops_bedops_stagger_ab at 2x.png
+ :width: 99%
+
+.. admonition:: Example
+ :class: admonition-example
+
+ To demonstrate ``--stagger``, we use a sorted set called ``Regions.bed`` and compute a set of one-base genomic regions constructed from the merged input elements, but move the start position across the merged regions by three bases, before generating the next chop:
+
+ .. code:: bash
+
+ $ more Regions.bed
+ chr1 100 105
+ chr1 120 127
+ chr1 122 124
+
+ .. code:: bash
+
+ $ bedops --chop 1 --stagger 3 Regions.bed > Result.bed
+
+ .. code:: bash
+
+ $ more Result.bed
+ chr1 100 101
+ chr1 103 104
+ chr1 120 121
+ chr1 123 124
+ chr1 126 127
+
+.. note:: Overlapping and nested regions are merged into contiguous ranges before chopping and staggering. The end result contains unique, non-overlapping elements.
+
+------------
+Exclude (-x)
+------------
+
+Like ``--stagger``, ``-x`` is a sub-option of the :ref:`--chop <bedops_chop>` operator, and it may be used with or without ``--stagger``. This option will remove any remainder genomic chunk that is smaller than that specified with ``--chop``. For example, if you start with a 10 nt region and use ``--chop 4``, the final segment would be 2 nt in length if ``-x`` is not specified. With ``-x``, that last segment does not go to output. With ``-x``, the ``chop`` operation produces output r [...]
+
+.. _bedops_chrom:
+
+-----------------------------------
+Per-chromosome operations (--chrom)
+-----------------------------------
+
+All operations on inputs can be restricted to one chromosome, by adding the ``--chrom <val>`` operator.
+
+.. note:: This operator is highly useful for parallelization, where operations on large BED inputs can be split up by chromosome and pushed to separate nodes on a computational cluster. See the :ref:`starchcluster` documentation for a demonstration of this technique in action.
+
+.. admonition:: Example
+ :class: admonition-example
+
+ To demonstrate the use of ``--chrom`` to restrict operations to a chromosome (such as ``chr3``), we perform a per-chromosome union of elements from three sorted sets ``First.bed``, ``Second.bed`` and ``Third.bed``, each with elements from multiple chromosomes:
+
+ .. code:: bash
+
+ $ more First.bed
+ chr1 100 200
+ chr2 150 300
+ chr2 200 250
+ chr3 100 150
+
+ .. code:: bash
+
+ $ more Second.bed
+ chr2 50 150
+ chr2 400 600
+
+ .. code:: bash
+
+ $ more Third.bed
+ chr3 150 350
+
+ .. code:: bash
+
+ $ bedops --chrom chr3 --everything First.bed Second.bed Third.bed > Result.bed
+
+ .. code:: bash
+
+ $ more Result.bed
+ chr3 100 150
+ chr3 150 350
+
+.. _bedops_range:
+
+---------------
+Range (--range)
+---------------
+
+The ``--range`` operation works in conjunction with other operations.
+
+When used with one value (``--range S``), this operation **symmetrically** pads all elements of input sets by the specified integral value ``S``. When the specified value is positive, every genomic segment grows in size. An element will grow asymmetrically to prevent growth beyond base position 0, if needed. Otherwise, when negative, elements shrink, and any element with zero (or less) length is discarded.
+
+Alternatively, when used with two values (``--range L:R``), this operation **asymmetrically** pads elements, adding ``L`` to each start coordinate, and adding ``R`` to each stop coordinate. Negative values may be specified to grow or shrink the region, accordingly.
+
+.. _bed_index_shifting:
+
+This option is immediately useful for adjusting the coordinate index of BED files. For example, to shift from 1-based to 0-based coordinate indexing:
+
+::
+
+ $ bedops --range -1:-1 --everything my1BasedCoordinates.bed > my0BasedCoordinates.bed
+
+And, likewise, for 0-based to 1-based indexing:
+
+::
+
+ $ bedops --range 1:1 --everything my0BasedCoordinates.bed > my1BasedCoordinates.bed
+
+.. note:: The ``--range`` value is applied to inputs prior to the application of other operations (such as ``--intersect`` or ``--merge``, etc.).
+
+Padding elements with :ref:`bedops` is much more efficient that doing so with ``awk`` or some other script, *and you do not need to go back and resort your data*. Even symmetric padding can cause data to become unsorted in non-obvious ways. Using ``--range`` ensures that your data remain sorted and it works efficiently with any set operation.
+
+Also, note that the ``--element-of`` and ``--not-element-of`` operations behave differently with ``--range``, in that only the second and subsequent input files are padded.
+
+.. _bedops_starch:
+
+==============
+Starch support
+==============
+
+The :ref:`bedops` application supports use of :ref:`Starch <starch>`-formatted archives as inputs, as well as text-based BED data. One or multiple inputs may be Starch archives.
+
+.. tip:: By combining the ``--chrom`` operator with operations on :ref:`Starch <starch>` archives, the end user can achieve improved computing performance and disk space savings, particularly where :ref:`bedops`, :ref:`bedmap` and :ref:`closest-features` operations are applied with a computational cluster on separate chromosomes.
+
+.. _bedops_error_checking:
+
+=====================
+Error checking (--ec)
+=====================
+
+Use the ``--ec`` option in conjunction with any aforementioned operation to do more stringent checking of the inputs' compliance to :ref:`bedops` requirements, including sorting checks, delimiter checks, among others.
+
+To demonstrate, we can deliberately introduce a typo in dataset `A`, using the ``--ec`` option to try to catch it:
+
+::
+
+ $ bedops --ec --everything BEDFileA
+ May use bedops --help for more help.
+
+ Error: in BEDFileA
+ First column should not have spaces. Consider 'chr1' vs. 'chr1 '. These are different names.
+ See row: 3
+
+The typo introduced was the addition of a space within the third line of dataset ``A``.
+
+.. note:: Use of the ``--ec`` option will roughly *double* the running times of set operations, but it provides stringent error checking to ensure inputs and outputs are valid. ``--ec`` can help check problematic input and offers helpful hints for any needed corrections, when problems are detected.
+
+====
+Tips
+====
+
+-------------------
+Chaining operations
+-------------------
+
+You can efficiently chain operations together, *e.g.*:
+
+::
+
+ $ bedops --range 50 --merge A | bedops --intersect - B > answer.bed
+
+In this example, elements from ``A`` are padded 50 bases up- and downstream and merged, before intersecting with coordinates in ``B``.
+
+--------------
+Sorting inputs
+--------------
+
+For unsorted input, be sure to first use :ref:`sort-bed` to presort the data stream before using with :ref:`bedops`. Unsorted input will not work properly with BEDOPS tools.
+
+.. tip:: If you will use an initially-unsorted file more than once, save the results of sorting. You only need to sort once! BEDOPS tools take in and export sorted data.
+
+.. |--| unicode:: U+2013 .. en dash
+.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace
+ :trim:
+.. role:: admonition-example-title
diff --git a/docs/content/reference/set-operations/closest-features.rst b/docs/content/reference/set-operations/closest-features.rst
new file mode 100644
index 0000000..25b441f
--- /dev/null
+++ b/docs/content/reference/set-operations/closest-features.rst
@@ -0,0 +1,133 @@
+.. _closest-features:
+
+`closest-features`
+==================
+
+The ``closest-features`` program efficiently associates nearest features between two sorted inputs, based upon genomic distance measures.
+
+An application of this tool in our own research is :ref:`finding the nearest DNase hypersensitive sites <distance_frequencies>` upstream and downstream from a given SNP, as well as signed distances. The :ref:`closest-features` program can report both results.
+
+As another example of what one can do with this utility, we can identify the closest transcriptional start site for a given putative replication origin. Suppose we have a sorted BED file named ``TSS.bed`` that contains all transcriptional start sites of all genes in some genome. Further, suppose that we have a set of measurements showing probable replication origins for the same species in a sorted BED file named ``RepOrigins.bed``. The following command gives the closest TSS to each origin:
+
+::
+
+ $ closest-features --closest RepOrigins.bed TSS.bed
+
+By default, the program will echo each entry from ``RepOrigins.bed``, followed by the two closest elements in ``TSS.bed`` (the closest element to each side of the entry from ``RepOrigins.bed``), with output columns separated by a pipe (``|``). With the ``--shortest`` option, the echoed entry from ``RepOrigins.bed`` and only the single nearest element in ``TSS.bed`` will be part of the output.
+
+==================
+Inputs and outputs
+==================
+
+-----
+Input
+-----
+
+The :ref:`closest-features` program takes two sorted BED files (a so-called *reference* file and a *map* file), as well as optional arguments for modifying behavior and outputs.
+
+Alternatively, :ref:`closest-features` can accept :ref:`Starch-formatted archives <starch>` as inputs, with no need to extract archive data to intermediate BED files!
+
+Support for common headers (such as UCSC track headers) is offered through the ``--header`` option. Headers are stripped from output.
+
+------
+Output
+------
+
+The :ref:`closest-features` program returns summary data to standard output, which may include reference and nearest elements and distance values (depending on provided options).
+
+=====
+Usage
+=====
+
+The ``--help`` option describes the various operations and options available to the end user:
+
+::
+
+ closest-features
+ citation: http://bioinformatics.oxfordjournals.org/content/28/14/1919.abstract
+ version: 2.4.20
+ authors: Shane Neph & Scott Kuehn
+
+ USAGE: closest-features [Process-Flags] <input-file> <query-file>
+ All input files must be sorted per sort-bed.
+ The program accepts BED and Starch file formats
+ May use '-' for a file to indicate reading from standard input (BED format only).
+
+ For every element in <input-file>, determine the two elements from <query-file> falling
+ nearest to its left and right edges (See NOTES below). By default, echo the <input-file>
+ element, followed by those left and right elements found in <query-file>.
+
+ Process Flags:
+ --chrom <chromosome> : Process data for given <chromosome> only.
+ --closest : Choose the closest element for output only. Ties go the left element.
+ --delim <delim> : Change output delimiter from '|' to <delim> between columns (e.g. '\t')
+ --dist : Print the signed distances to the <input-file> element as additional
+ columns of output. An overlapping element has a distance of 0.
+ --ec : Error check all input files (slower).
+ --header : Accept headers (VCF, GFF, SAM, BED, WIG) in any input file.
+ --help : Print this message and exit successfully.
+ --no-overlaps : Overlapping elements from <query-file> will not be reported.
+ --no-ref : Do not echo elements from <input-file>.
+ --version : Print program information.
+
+ NOTES:
+ If an element from <query-file> overlaps the <input-file> element, its distance is zero.
+ An overlapping element takes precedence over all non-overlapping elements. This is true
+ even when the overlapping element's edge-to-edge distance to the <input-file>'s element
+ is greater than the edge-to-edge distance from a non-overlapping element.
+ Overlapping elements may be ignored completely (no precedence) with --no-overlaps.
+ Elements reported as closest to the left and right edges are never the same.
+ When no qualifying element from <query-file> exists as a closest feature, 'NA' is reported.
+
+===================================
+Per-chromosome operations (--chrom)
+===================================
+
+All operations on inputs can be restricted to one chromosome, by adding the ``--chrom <val>`` operator.
+
+.. tip:: This option is highly useful for cluster-based work, where operations on large BED inputs can be split up by chromosome and pushed to separate cluster nodes.
+
+To demonstrate the use of this option, we take two sample Starch-archived BED datasets ``A`` and ``B`` (refer to the :ref:`Downloads <closest-features_downloads>` section for sample inputs) which contain regions from multiple chromosomes:
+
+::
+
+ $ unstarch A.starch
+ chr1 100 200 id-001A
+ chr1 400 500 id-002A
+ chr2 100 300 id-003A
+
+ $ unstarch B.starch
+ chr1 150 300 id-001B
+ chr1 500 600 id-002B
+ chr2 100 150 id-003B
+ chr2 180 500 id-004B
+
+Now we want to ask, what is the closest element from ``chr2`` in ``A``, to ``chr2`` elements in ``B``:
+
+::
+
+ $ closest-features --chrom chr2 --closest A.starch B.starch
+ chr2 100 300 id-003A|chr2 100 150 id-003B
+
+As we expect, element ``id-003A`` is closest to element ``id-003B`` between the two datasets.
+
+==============
+Error checking
+==============
+
+For performance reasons, no error checking of input is done, by default. Add ``--ec`` for stringent error checking and debugging purposes.
+
+.. note:: Using ``--ec`` will slow down analysis considerably. We recommend using this option to test and debug pipelines and then removing it for use in production.
+
+.. _closest-features_downloads:
+
+=========
+Downloads
+=========
+
+* Sample dataset :download:`A <../../../assets/reference/set-operations/reference_closestfeatures_a.starch>`
+* Sample dataset :download:`B <../../../assets/reference/set-operations/reference_closestfeatures_b.starch>`
+
+.. |--| unicode:: U+2013 .. en dash
+.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace
+ :trim:
diff --git a/docs/content/reference/set-operations/nested-elements.rst b/docs/content/reference/set-operations/nested-elements.rst
new file mode 100644
index 0000000..bbfa9df
--- /dev/null
+++ b/docs/content/reference/set-operations/nested-elements.rst
@@ -0,0 +1,72 @@
+.. _nested_elements:
+
+Nested elements
+===============
+
+This page describes nested BED elements, their impact on the performance of BEDOPS tools, and how we can identify them beforehand.
+
+.. _what_are_nested_elements:
+
+==========
+Definition
+==========
+
+A *nested element* is defined as a BED element from a sorted BED file, where a genomic range is entirely enclosed by the previous element's range.
+
+Loosely speaking, consider the following five overlap cases for pairings of generic, half-open intervals:
+
+.. image:: ../../../assets/reference/set-operations/reference_nested_elements.png
+ :width: 33%
+
+Of these five interval pairs, the fifth overlap pairing identifies a nested element, where the second interval is nested within the first.
+
+More rigorously, we define two generic, half-open BED elements :math:`A` and :math:`B`, both located on the same generic chromosome :math:`N`, each with ranges :math:`{[a_{start}, a_{stop})}` and :math:`{[b_{start}, b_{stop})}`, respectively.
+
+These two elements :math:`A` and :math:`B` have the following relations:
+
+ 1. :math:`a_{start} < a_{stop}`
+ 2. :math:`b_{start} < b_{stop}`
+ 3. :math:`a_{start} <= b_{start}`
+ 4. :math:`a_{stop} <= b_{stop}`
+
+.. note:: The third and fourth conditions place elements :math:`A` and :math:`B` into sort order, as applied by the :ref:`sort-bed <sort-bed>` application.
+
+If we further restrict these ranges: :math:`a_{start} < b_{start}` and :math:`b_{stop} < a_{stop}`, then for the purposes of BEDOPS we call the element :math:`B` a *nested element*, one which is contained or *nested* within element :math:`A`.
+
+.. _example_of_a_nested_element:
+
+=======
+Example
+=======
+
+A more concrete example of a sorted BED file which contains a nested element follows. Consider the following simple, sorted BED dataset:
+
+::
+
+ chr1 1 100
+ chr1 100 200
+ chr1 125 150
+ chr1 150 1000
+
+Here, the element ``chr1:125-150`` is entirely nested within ``chr1:100-200``:
+
+.. image:: ../../../assets/reference/set-operations/reference_bedextract_nested_elements.png
+ :width: 99%
+
+.. _why_nested_elements_matter:
+
+==========================
+Why nested elements matter
+==========================
+
+BEDOPS :ref:`bedmap <bedmap>` and :ref:`bedextract <bedextract>` tools offer the ``--faster`` option to perform very fast retrieval of overlapping elements, so long as input datasets do not contain nested elements, as defined above.
+
+To extract maximum performance out of the use of the BEDOPS toolkit, therefore, it is very useful to know if the input datasets contain such elements — if they do not, then we can apply this optimization.
+
+Common datasets we work with do not contain nested elements: reads, peaks, footprints, and others. However, other datasets do, such as motif hits or paired-end sequencing reads.
+
+How can we find out if our inputs have nested elements, before we start applying any operations?
+
+The compression tool :ref:`starch <starch>` (v2.5 and greater) will look for these elements in an input BED file and store this condition as a flag in the output archive's metadata. This value can be retrieved in constant time with :ref:`unstarch <unstarch>` and other tools which make use of the Starch C++ API.
+
+Additionally, the ``--ec`` (error-correction) option in :ref:`bedmap <bedmap>` will also report if inputs contain nested elements. This option doubles execution time, but when used in conjunction with the ``--faster`` option, the speed gains are more than recovered.
diff --git a/docs/content/reference/statistics.rst b/docs/content/reference/statistics.rst
new file mode 100644
index 0000000..211adec
--- /dev/null
+++ b/docs/content/reference/statistics.rst
@@ -0,0 +1,6 @@
+Statistics
+==========
+
+.. toctree::
+
+ statistics/bedmap
diff --git a/docs/content/reference/statistics/bedmap.rst b/docs/content/reference/statistics/bedmap.rst
new file mode 100644
index 0000000..5cfc374
--- /dev/null
+++ b/docs/content/reference/statistics/bedmap.rst
@@ -0,0 +1,840 @@
+.. _bedmap:
+
+`bedmap`
+========
+
+The ``bedmap`` program is used to retrieve and process signal or other features over regions of interest in BED files (including DNase hypersensitive regions, SNPs, transcription factor binding sites, etc.), performing tasks such as: :ref:`smoothing raw tag <smoothing_raw_tags>` count signal in preparation for uploading to the UCSC Genome Browser, :ref:`finding subsets of elements <finding_elements_within_elements>` within a larger coordinate set, :ref:`filtering multiple BED files <mast [...]
+
+==================
+Inputs and outputs
+==================
+
+-----
+Input
+-----
+
+The :ref:`bedmap` program takes in *reference* and *mapping* files and calculates statistics for each reference element. These calculations |---| *operations* |---| are applied to overlapping elements from the mapped file:
+
+.. image:: ../../../assets/reference/statistics/reference_bedmap_inputs.png
+ :width: 99%
+
+The :ref:`bedmap` program requires files in a relaxed variation of the BED format as described by `UCSC's browser documentation <http://genome.ucsc.edu/FAQ/FAQformat.html#format1>`_. The chromosome field can be any non-empty string, the score field can be any valid numeric value, and information is unconstrained beyond the minimum number of columns required by the chosen options.
+
+Alternatively, :ref:`bedmap` can accept :ref:`Starch-formatted archives <starch>` of BED data as input |---| it is no longer necessary to extract Starch archive data to intermediate BED files!
+
+Support for common headers (including UCSC browser track headers) is available with the ``--header`` option, although headers are stripped from output.
+
+Most importantly, :ref:`bedmap` expects :ref:`sorted <sort-bed>` inputs. You can use the BEDOPS :ref:`sort-bed` program to ensure your inputs are properly sorted.
+
+.. note:: You only need to sort once, and only if your input data are unsorted, as all BEDOPS tools take in and export sorted BED data.
+
+Operations are applied over map elements that overlap the coordinates of each reference element. You can use the default overlap criterion of one base, or define your own criteria using the :ref:`overlap criteria operators <bedmap_overlap_criteria>`.
+
+Once you have overlapping elements, you can either perform :ref:`numerical calculations <bedmap_score_operations>` on their scores or return identifiers or other :ref:`non-score information <bedmap_non_score_operations>`. Additional :ref:`modifier operators <bedmap_modifier_operations>` allow customization of how output is presented, to assist with downstream processing in a pipeline setting.
+
+------
+Output
+------
+
+Depending on specified options, the :ref:`bedmap` program can send a variety of delimited information about the reference and mapped elements (as well as analytical results) to standard output. If the ``--echo`` option is used, the output will be at least a three-column BED file. The use of predictable delimiters (which are customizable) and the use of UNIX-like standard streams allows easy downstream analysis or post-processing with other tools and scripts.
+
+=====
+Usage
+=====
+
+The ``--help`` option describes the various mapping and analytical operations and other options available to the end user:
+
+::
+
+ bedmap
+ citation: http://bioinformatics.oxfordjournals.org/content/28/14/1919.abstract
+ version: 2.4.20
+ authors: Shane Neph & Scott Kuehn
+
+ USAGE: bedmap [process-flags] [overlap-option] <operation(s)...> <ref-file> [map-file]
+ Any input file must be sorted per the sort-bed utility.
+ The program accepts BED and Starch file formats.
+ You may use '-' for a BED file to indicate the input comes from stdin.
+
+ Traverse <ref-file>, while applying <operation(s)> on qualified, overlapping elements from
+ <map-file>. Output is one line for each line in <ref-file>, sent to standard output. There
+ is no limit on the number of operations you can specify to compute in one bedmap call.
+ If <map-file> is omitted, the given file is treated as both the <ref-file> and <map-file>.
+ This usage is more efficient than specifying the same file twice.
+ Arguments may be given in any order before the input file(s).
+
+ Process Flags:
+ --------
+ --chrom <chromosome> Jump to and process data for given <chromosome> only.
+ --delim <delim> Change output delimiter from '|' to <delim> between columns (e.g. '\t').
+ --ec Error check all input files (slower).
+ --faster (advanced) Strong input assumptions are made. Compatible with:
+ --bp-ovr, --range, --fraction-both, and --exact overlap options only.
+ --header Accept headers (VCF, GFF, SAM, BED, WIG) in any input file.
+ --help Print this message and exit successfully.
+ --multidelim <delim> Change delimiter of multi-value output columns from ';' to <delim>.
+ --prec <int> Change the post-decimal precision of scores to <int>. 0 <= <int>.
+ --sci Use scientific notation for score outputs.
+ --skip-unmapped Print no output for a row with no mapped elements.
+ --sweep-all Ensure <map-file> is read completely (helps to prevent broken pipes).
+ --version Print program information.
+
+ Overlap Options (At most, one may be selected. By default, --bp-ovr 1 is used):
+ --------
+ --bp-ovr <int> Require <int> bp overlap between elements of input files.
+ --exact First 3 fields from <map-file> must be identical to <ref-file>'s.
+ --fraction-ref <val> The fraction of the element's size from <ref-file> that must overlap
+ the element in <map-file>. Expect 0 < val <= 1.
+ --fraction-map <val> The fraction of the element's size from <map-file> that must overlap
+ the element in <ref-file>. Expect 0 < val <= 1.
+ --fraction-both <val> Both --fraction-ref <val> and --fraction-map <val> must be true to
+ qualify as overlapping. Expect 0 < val <= 1.
+ --fraction-either <val> Either --fraction-ref <val> or --fraction-map <val> must be true to
+ qualify as overlapping. Expect 0 < val <= 1.
+ --range <int> Grab <map-file> elements within <int> bp of <ref-file>'s element,
+ where 0 <= int. --range 0 is an alias for --bp-ovr 1.
+
+ Operations: (Any number of operations may be used any number of times.)
+ ----------
+ SCORE:
+ <ref-file> must have at least 3 columns and <map-file> 5 columns.
+
+ --cv The result of --stdev divided by the result of --mean.
+ --kth <val> Generalized median. Report the value, x, such that the fraction <val>
+ of overlapping elements' scores from <map-file> is less than x,
+ and the fraction 1-<val> of scores is greater than x. 0 < val <= 1.
+ --mad <mult=1> The median absolute deviation of overlapping elements in <map-file>.
+ Multiply mad score by <mult>. 0 < mult, and mult is 1 by default.
+ --max The highest score from overlapping elements in <map-file>.
+ --max-element An element with the highest score from overlapping elements in <map-file>.
+ --mean The average score from overlapping elements in <map-file>.
+ --median The median score from overlapping elements in <map-file>.
+ --min The lowest score from overlapping elements in <map-file>.
+ --min-element An element with the lowest score from overlapping elements in <map-file>.
+ --stdev The square root of the result of --variance.
+ --sum Accumulated scores from overlapping elements in <map-file>.
+ --tmean <low> <hi> The mean score from overlapping elements in <map-file>, after
+ ignoring the bottom <low> and top <hi> fractions of those scores.
+ 0 <= low <= 1. 0 <= hi <= 1. low+hi <= 1.
+ --variance The variance of scores from overlapping elements in <map-file>.
+
+ ----------
+ NON-SCORE:
+ <ref-file> must have at least 3 columns.
+ For --echo-map-id/echo-map-id-uniq, <map-file> must have at least 4 columns.
+ For --echo-map-score, <map-file> must have at least 5 columns.
+ For all others, <map-file> requires at least 3 columns.
+
+ --bases The total number of overlapping bases from <map-file>.
+ --bases-uniq The number of distinct bases from <ref-file>'s element covered by
+ overlapping elements in <map-file>.
+ --bases-uniq-f The fraction of distinct bases from <ref-file>'s element covered by
+ overlapping elements in <map-file>.
+ --count The number of overlapping elements in <map-file>.
+ --echo Print each line from <ref-file>.
+ --echo-map List all overlapping elements from <map-file>.
+ --echo-map-id List IDs from all overlapping <map-file> elements.
+ --echo-map-id-uniq List unique IDs from overlapping <map-file> elements.
+ --echo-map-range Print genomic range of overlapping elements from <map-file>.
+ --echo-map-score List scores from overlapping <map-file> elements.
+ --echo-map-size List the full length of every overlapping element.
+ --echo-overlap-size List lengths of overlaps.
+ --echo-ref-name Print the first 3 fields of <ref-file> using chrom:start-end format.
+ --echo-ref-row-id Print 'id-' followed by the line number of <ref-file>.
+ --echo-ref-size Print the length of each line from <ref-file>.
+ --indicator Print 1 if there exists an overlapping element in <map-file>, 0 otherwise.
+
+.. _bedmap_operations:
+
+==========
+Operations
+==========
+
+To demonstrate the various operations in :ref:`bedmap`, we start with two simple, pre-sorted BED files that we label as ``Map`` and ``Reference`` (see the :ref:`Downloads <bedmap_downloads>` section for files you can use to follow along).
+
+Our ``Map`` file is a snippet of real-world BED data derived from `ENCODE <http://www.uwencode.org/>`_ experiments conducted by our lab: specifically, raw `DNaseI hypersensitivity <http://en.wikipedia.org/wiki/Hypersensitive_site>`_ signal for the human K562 cell line (region ``chr21:33031165-33032485``, assembly ``GRCh37/h19`` and table ``wgEncodeUwDnaseK562RawRep1`` from the `UCSC Genome Browser <http://genome.ucsc.edu/>`_).
+
+This raw signal is the density of sequence tags which map within a 150 bp sliding window, at 20 bp steps across the genome |---| a smoothed picture of DNaseI hypersensitivity:
+
+::
+
+ chr21 33031165 33031185 map-1 1.000000
+ chr21 33031185 33031205 map-2 3.000000
+ chr21 33031205 33031225 map-3 3.000000
+ chr21 33031225 33031245 map-4 3.000000
+ chr21 33031245 33031265 map-5 3.000000
+ chr21 33031265 33031285 map-6 5.000000
+ chr21 33031285 33031305 map-7 7.000000
+ chr21 33031305 33031325 map-8 7.000000
+ chr21 33031325 33031345 map-9 8.000000
+ chr21 33031345 33031365 map-10 14.000000
+ chr21 33031365 33031385 map-11 15.000000
+ chr21 33031385 33031405 map-12 17.000000
+ chr21 33031405 33031425 map-13 17.000000
+ ...
+ chr21 33032425 33032445 map-64 5.000000
+ chr21 33032445 33032465 map-65 5.000000
+ chr21 33032465 33032485 map-66 6.000000
+
+When visualized, the signal data has the following appearance:
+
+.. image:: ../../../assets/reference/statistics/reference_bedmap_mapref_all.png
+ :width: 99%
+
+.. note:: Rectangles colored in grey represent each of the sixty-six ``map`` elements. The x-axis represents the start coordinate of the ``map`` element, while the y-axis denotes the tag density, or sum of tags over that element's 20-base window.
+
+Our sample ``Reference`` file is not as exciting. It is just three BED elements which span portions of this density file:
+
+::
+
+ chr21 33031200 33032400 ref-1
+ chr21 33031400 33031800 ref-2
+ chr21 33031900 33032000 ref-3
+
+These reference elements could be exons, promoter regions, etc. It doesn't matter for purposes of demonstration here, except to say that we can use :ref:`bedmap` to ask some questions about the ``Reference`` set.
+
+Among them, what are the quantitative and qualitative features of the ``map`` elements that span over these three reference regions? For example, we might want to know the mean DNase hypersensitivity across each |---| the answer may have some biological significance.
+
+It may help to first visualize the reference regions and the mapped elements associated with them. A default :ref:`bedmap` task will operate on the following set of mapped (red-colored) elements, for each reference element ``ref-1``, ``-2`` and ``-3``.
+
+Here we show elements from the ``Map`` set which overlap the ``ref-1`` region ``chr21:33031200-33032400``, colored in red:
+
+.. image:: ../../../assets/reference/statistics/reference_bedmap_mapref_ref1.png
+ :width: 99%
+
+Likewise, here are elements of the ``Map`` set which overlap the ``ref-2`` element ``chr21:33031400-33031800`` and ``ref-3`` element ``chr21:33031900-33032000``, respectively, with the same coloring applied:
+
+.. image:: ../../../assets/reference/statistics/reference_bedmap_mapref_ref2.png
+ :width: 99%
+
+.. image:: ../../../assets/reference/statistics/reference_bedmap_mapref_ref3.png
+ :width: 99%
+
+In these sample files, we provide the ``Map`` file with ID and score columns, and the ``Reference`` file with an ID column. These extra columns are not required by :ref:`bedmap`, but we can use the information in these columns in conjunction with the options provided by :ref:`bedmap` to identify matches, retrieve matched signals, and summarize data about signal across mapped elements.
+
+.. _bedmap_overlap_criteria:
+
+----------------
+Overlap criteria
+----------------
+
+The default overlap criterion that :ref:`bedmap` uses is *one base*. That is, one or more bases of overlap between reference and mapping elements is sufficient for inclusion in operations. This value can be adjusted with the ``--bp-ovr`` option. The ``--range`` overlap option implicitly applies ``--bp-ovr 1`` after symmetrically padding elements.
+
+If a fractional overlap is desired, the ``--fraction-{ref,map,both,either}`` options provide the ability to filter on overlap by a specified percentage of the length of either or both the reference and mapping elements.
+
+Finally, the ``--exact`` flag enforces exact matches between reference and mapping elements.
+
+.. note:: The ``--exact`` option is an alias for ``--fraction-both 1``.
+
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Using ``--faster`` with ``--bp-ovr``, ``--fraction-both``, ``--exact`` or ``--range``
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The ``--faster`` modifier works with the ``--bp-ovr``, ``--fraction-both`` and ``--exact`` (``--fraction-both 1``) overlap and ``--range`` specifiers to dramatically increase the performance of :ref:`bedmap`, when the following input restriction is met:
+
+* No :ref:`fully-nested elements <nested_elements>` in any input mapping file (duplicate elements and other overlapping elements are okay).
+
+.. note:: The details of this restriction are explained in more detail in the :ref:`nested element documentation <nested_elements>`.
+
+This option also works with the ``--ec`` error checking flag, which indicates if the data contain nested elements. Using ``--ec`` carries its usual overhead, but as it only doubles the much-improved execution time, it may be worth using.
+
+.. tip:: To give an idea of the speed improvement, a ``--range 100000 --echo --count`` operation on 8.4 million, non-nested mapping elements (DNaseI footprints across multiple cell types) took *2 minutes and 55 seconds* without speed-up. By adding the ``--faster`` flag, the same calculation took *10 seconds*. That is an **18-fold** speed improvement.
+
+ One scenario where this option can provide great speed gains is where ``--range`` is used with a large numerical parameter. Another scenario where this option is very useful is where the reference file has large elements, and the mapping file is made up of many small elements |---| specifically, where a number of small elements overlap each big element from the reference file.
+
+ An example of a research application for our lab which benefits from this flag is where we perform statistical analysis of large numbers of small sequence tags that fall in hotspot regions.
+
+ If your data meet the :ref:`non-nesting criteria <nested_elements>`, using ``--faster`` with ``--bp-ovr``, ``--fraction-both``, ``--exact`` or ``--range`` is *highly recommended*.
+
+.. note:: Our lab works with BED data of various types: cut-counts, hotspots, peaks, footprints, etc. These data generally do not contain nested elements and so are amenable to use with :ref:`bedmap's <bedmap>` ``--faster`` flag for extracting overlapping elements.
+
+ However, other types of data can be problematic. `FIMO <http://meme.nbcr.net/meme/fimo-intro.html>`_ search results, for example, may cause trouble, where the boundaries of one motif hit can be contained within another larger hit. Or paired-end sequence data, where tags are not of a fixed length.
+
+ Be sure to consider the makeup of your BED data before using ``--faster``.
+
+.. tip:: Using ``--ec`` with ``--faster`` will report if any nested elements exist in your data.
+
+.. _bedmap_score_operations:
+
+----------------
+Score operations
+----------------
+
+Score operators apply a numerical calculation on the values of the score column of mapping elements. Per `UCSC specifications <http://genome.ucsc.edu/FAQ/FAQformat.html#format1>`_, :ref:`bedmap` assumes the score data are stored in the fifth column.
+
+The variety of score operators include common statistical measures:
+
+* `mean <http://en.wikipedia.org/wiki/Expected_value>`_ (``--mean``)
+* `trimmed mean <http://en.wikipedia.org/wiki/Truncated_mean>`_ (``--tmean``)
+* `standard deviation <http://en.wikipedia.org/wiki/Standard_deviation>`_ (``--stdev``)
+* `variance <http://en.wikipedia.org/wiki/Variance>`_ (``--variance``)
+* `coefficient of variance <http://en.wikipedia.org/wiki/Coefficient_of_variation>`_ (``--cv``)
+* `median <http://en.wikipedia.org/wiki/Median>`_ (``--median``)
+* `median absolute deviation <http://en.wikipedia.org/wiki/Median_absolute_deviation>`_ (``--mad``)
+* `k-th order statistic <http://en.wikipedia.org/wiki/Order_statistic>`_ (``--kth``)
+
+One can also take the sum of scores (``--sum``), find the minimum or maximum score over a region (``--min`` and ``--max``, respectively), or retrieve the map element with the least or greatest signal over the reference region (``--min-element`` and ``--max-element``, respectively).
+
+We will demonstrate some of these operators by applying them to the ``Reference`` and ``Map`` datasets (see the :ref:`Downloads <bedmap_downloads>` section for sample inputs).
+
+As a reminder, the ``Map`` file contains regions of DNaseI-seq tag density. If we want the mean of the density across `Reference` elements, we use the ``--mean`` option:
+
+::
+
+ $ bedmap --echo --mean reference.bed map.bed > mappedReferences.mean.bed
+
+The ``--echo`` flag prints each ``Reference`` element, while the ``--mean`` flag calculates the mean signal of the ``Map`` elements which overlap the reference element:
+
+::
+
+ $ more mappedReferences.mean.bed
+ chr21 33031200 33032400 ref-1|43.442623
+ chr21 33031400 33031800 ref-2|31.571429
+ chr21 33031900 33032000 ref-3|154.500000
+
+This result tells us that the mean density across regions ``ref-1``, ``ref-2`` and ``ref-3`` is ``44.442623``, ``31.571429`` and ``154.5``, respectively.
+
+.. note:: The pipe character (``|``) delimits the results of each specified option (with the exception of the so-called "multi" operators that return multiple results — this is discussed in the section on ``--echo`` flags). In the provided example, the delimiter divides the reference element from the mean score across the reference element.
+
+.. tip:: Because we used the ``--echo`` flag in this example, we are guaranteed output that is at least three-column BED format and which is :ref:`sorted <sort-bed>`, which can be useful for `pipeline <http://en.wikipedia.org/wiki/Pipeline_(Unix)>`_ design, where results are piped downstream to :ref:`bedmap`, :ref:`bedops` and other BEDOPS and UNIX utilities.
+
+If we simply want the mean values and don't care about the reference data, we can skip ``--echo``:
+
+::
+
+ $ bedmap --mean reference.bed map.bed
+ 43.442623
+ 31.571429
+ 154.500000
+
+While not very detailed, this single-column representation can be useful for those who use UNIX utilities like ``paste`` or need to do additional downstream calculations with ``R`` or other utilities, where the reference information is unnecessary (or, at least, more work to excise).
+
+If a reference element does not overlap any map element, then a ``NAN`` is returned for any operation on that entry, *e.g.*, we know that the *ad hoc* element ``chr21:1000-2000`` does not overlap any member of our ``Map`` dataset, and there is therefore no mean value that can be calculated for that element:
+
+::
+
+ $ echo -e "chr21\t1000\t2000\tfoo-1" | bedmap --echo --mean - map.bed
+ chr21 1000 2000 foo-1|NAN
+
+.. tip:: For this example, we use ``echo -e`` to send :ref:`bedmap` a sample reference coordinate by way of standard input. The :ref:`bedmap` program can process any BED data from the standard input stream, either as the reference or map data, by placing the dash character (``-``) where the file name would otherwise go.
+
+ In the example above, we sent :ref:`bedmap` a single reference element via standard input, but multiple lines of BED data can come from other upstream processes.
+
+ Using `standard streams <http://en.wikipedia.org/wiki/Pipeline_(Unix)>`_ is useful for reducing file I/O and improving performance, especially in situations where one is using :ref:`bedmap` in the middle of an extended pipeline.
+
+While :ref:`bedmap` returns a ``NAN`` if there are no mapped elements that associate with a reference element, we may want to filter these lines out. We can apply the ``--skip-unmapped`` option to leave out reference elements without mapped elements:
+
+::
+
+ $ echo -e "chr21\t1000\t2000\tfoo-1" | bedmap --echo --mean --skip-unmapped - map.bed
+ $
+
+.. note:: Some operations may yield a reference element with one or more mapped elements, which still return a ``NAN`` value by virtue of the calculation result. The ``--skip-unmapped`` operand will still allow these reference elements to be printed out!
+
+ For instance, consider the ``--variance`` operator, which requires two or more map elements to calculate a variance. Where there is only one mapped element associated with the reference element, a ``--variance`` calculation will return a ``NAN``. In this case, ``--skip-unmapped`` will still print this element, even though the result is ``NAN``.
+
+ Given the following statement:
+
+ ::
+
+ $ bedmap --skip-unmapped --variance file1 file2
+
+ This is functionally equivalent to the following statement:
+
+ ::
+
+ $ bedmap --indicator --variance --delim "\t" file1 file2 | awk '($1==1) {print $2}'
+
+ The ``--indicator`` operand calculates whether there are any mapped elements (or none) |---| see the :ref:`indicator <bedmap_indicator>` section for more detail. The ``awk`` statement then prints results which have one or more mapped elements, effectively filtering unmapped references.
+
+ It should therefore be more convenient to use ``--skip-unmapped`` where unmapped reference elements are not needed.
+
+Another option is to retrieve the mapping element with the highest or lowest score within the reference region, using the ``--max-element`` or ``--min-element`` operators, respectively.
+
+Going back to our sample ``Reference`` and ``Map`` data, we can search for the highest scoring mapping elements across the three reference elements:
+
+::
+
+ $ bedmap --echo --max-element --prec 0 reference.bed map.bed
+ chr21 33031200 33032400 ref-1|chr21 33031885 33031905 map-37 165
+ chr21 33031400 33031800 ref-2|chr21 33031785 33031805 map-32 82
+ chr21 33031900 33032000 ref-3|chr21 33031885 33031905 map-37 165
+
+Over reference elements ``ref-1`` and ``ref-3``, the mapping element ``map-37`` has the highest score. Over reference element ``ref-2``, the highest scoring mapping element is ``map-32``.
+
+Likewise, we can repeat this operation, but look for the lowest scoring elements, instead:
+
+::
+
+ $ bedmap --echo --min-element --prec 0 reference.bed map.bed
+ chr21 33031200 33032400 ref-1|chr21 33032265 33032285 map-56 2
+ chr21 33031400 33031800 ref-2|chr21 33031525 33031545 map-19 13
+ chr21 33031900 33032000 ref-3|chr21 33031985 33032005 map-42 138
+
+.. note:: Where there are ties in score values, there is no guarantee about which tied element will be chosen. In this case, the ``--echo-map`` operator can be used to manually examine the full list of elements and apply different logic.
+
+We can also perform multiple score operations, which are summarized on one line, *e.g.*, to show the mean, standard deviation, and minimum and maximum signal over each ``Reference`` element, we simply add the requisite options in series:
+
+::
+
+ $ bedmap --echo --mean --stdev --min --max reference.bed map.bed
+ chr21 33031200 33032400 ref-1|43.442623|50.874527|2.000000|165.000000
+ chr21 33031400 33031800 ref-2|31.571429|19.638155|13.000000|82.000000
+ chr21 33031900 33032000 ref-3|154.500000|9.311283|138.000000|165.000000
+
+Multiple score-operational results are ordered identically with the command-line options. The section on :ref:`formatting score output <bedmap_formatting_score_output>` demonstrates how one can change the precision and general format of numerical score results.
+
+.. _bedmap_non_score_operations:
+
+--------------------
+Non-score operations
+--------------------
+
+Sometimes it is useful to get summary or non-score statistics about the map elements. This category of operators returns information from the ID column of mapping elements, or can return counts and base overlap totals.
+
+.. note:: As with score data, we follow the `UCSC convention <http://genome.ucsc.edu/FAQ/FAQformat.html#format1>`_ for the BED format and retrieve ID data from the fourth column.
+
+.. _bedmap_echo:
+
+^^^^
+Echo
+^^^^
+
+The ID, score and coordinate columns of the reference and map files are very useful for reading and debugging results, or reporting a more detailed mapping.
+
+We can use the ``--echo``, ``--echo-map``, ``--echo-map-id``, ``--echo-map-id-uniq``, ``--echo-map-score``, ``--echo-map-range``, ``--echo-map-size``, ``--echo-overlap-size``, ``--echo-ref-name``, ``--echo-ref-row-id``, and ``echo-ref-size`` flags to tell :ref:`bedmap` to report additional details about the reference and map elements.
+
+The ``--echo`` flag reports each reference element. We have already seen the application of ``--echo`` in earlier examples. The option helps to clearly associate results from other chosen operations with specific reference elements. Additionally, ``--echo`` enables the output from :ref:`bedmap` to be used as input to additional BEDOPS utilities, including :ref:`bedmap` itself.
+
+The ``--echo-map`` flag gathers overlapping mapped elements for every reference element. The option is useful for debugging and detailed downstream processing needs. This is the most general operation in :ref:`bedmap` in that overlapping elements are returned in full detail, for every reference element. While results are well-defined and easily parsed, the output can be very large and difficult to read.
+
+As an example of using the ``--echo-map-id`` operator in a biological context, we examine a `FIMO <http://meme.nbcr.net/meme/fimo-intro.html>`_ analysis that returns a subset of transcription factor binding sites in BED format, with `TRANSFAC <http://en.wikipedia.org/wiki/TRANSFAC>`_ motif names listed in the ID column:
+
+::
+
+ chr1 4534161 4534177 -V_GRE_C 4.20586e-06 - CGTACACACAGTTCTT
+ chr1 4534192.4.204205 -V_STAT_Q6 2.21622e-06 - AGCACTTCTGGGA
+ chr1 4534209 4534223 +V_HNF4_Q6_01 6.93604e-06 + GGACCAGAGTCCAC
+ chr1 4962522.4.202540 -V_GCNF_01 9.4497e-06 - CCCAAGGTCAAGATAAAG
+ chr1 4962529 4962539 +V_NUR77_Q5 8.43564e-06 + TTGACCTTGG
+ ...
+
+This input is available from the :ref:`Downloads <bedmap_downloads>` section as the ``Motifs`` dataset.
+
+We will treat this as a map file, asking which motif IDs are associated with a region of interest (``chr1:4534150-4534300``). To do this using :ref:`bedmap`, we use the ``--echo-map-id`` option to summarize the IDs of mapped elements:
+
+::
+
+ $ echo -e "chr1\t4534150\t4534300\tref-1" | bedmap --echo --echo-map-id - motifs.bed
+ chr1 4534150 4534300 ref-1|-V_GRE_C;-V_STAT_Q6;+V_HNF4_Q6_01
+
+.. note:: To expand on the types of questions one can answer with :ref:`bedmap` in this context, in conjunction with the ``--count`` operator (described below), one can quantify predicted transcription factor binding sites by sliding a reference window across the entire genome.
+
+ One could determine, for example, where predicted sites are most prevalent and investigate the distribution of factors or other genomic features at or around these dense regions.
+
+The ``--echo-map-id-uniq`` operator works exactly like ``--echo-map-id``, except that duplicate IDs are removed from the result. For example, we can pull all the motifs hits from a wide region on ``chr2``:
+
+::
+
+ $ echo -e "chr2\t1000\t10000000\tref-1" | bedmap --echo --echo-map-id - motifs.bed
+ chr2 1000 10000000 ref-1|+V_OCT1_05;+V_OCT_C;-V_CACD_01;+V_IRF_Q6;-V_BLIMP1_Q6;-V_IRF2_01;-V_IRF_Q6_01;+V_SMAD_Q6_01;-V_TATA_01;-V_TATA_C;-V_CEBP_01;-V_HNF6_Q6;+V_MTF1_Q4;+V_MYOD_Q6_01;-V_KROX_Q6;+V_EGR1_01;-V_SP1SP3_Q4;+V_EGR_Q6;+V_SP1_Q6;-V_SP1_Q2_01;-V_CKROX_Q2;+V_SP1_Q6_01;-V_SREBP1_Q5;+V_VDR_Q3;-V_DMRT1_01;-V_DMRT7_01;+V_DMRT1_01;-V_DMRT1_01;-V_DMRT7_01;+V_DMRT1_01;-V_DMRT1_01;-V_DMRT7_01
+
+However, some hits (*e.g.*, ``-V_DMRT7_01``) show up two or more times. If we want a non-redundant list, we replace ``--echo-map-id`` with ``--echo-map-id-uniq``:
+
+::
+
+ $ echo -e "chr2\t1000\t10000000\tref-1" | bedmap --echo --echo-map-id-uniq - motifs.bed
+ chr2 1000 10000000 ref-1|+V_DMRT1_01;+V_EGR1_01;+V_EGR_Q6;+V_IRF_Q6;+V_MTF1_Q4;+V_MYOD_Q6_01;+V_OCT1_05;+V_OCT_C;+V_SMAD_Q6_01;+V_SP1_Q6;+V_SP1_Q6_01;+V_VDR_Q3;-V_BLIMP1_Q6;-V_CACD_01;-V_CEBP_01;-V_CKROX_Q2;-V_DMRT1_01;-V_DMRT7_01;-V_HNF6_Q6;-V_IRF2_01;-V_IRF_Q6_01;-V_KROX_Q6;-V_SP1SP3_Q4;-V_SP1_Q2_01;-V_SREBP1_Q5;-V_TATA_01;-V_TATA_C
+
+The ``--echo-map-score`` flag works in a similar fashion to ``--echo-map-id``, reporting scores instead of IDs. The :ref:`formatting score output <bedmap_formatting_score_output>` section demonstrates how one can use ``--echo-map-score`` to summarize score data from mapped elements.
+
+.. note:: Both the ``--echo-map-id`` and ``--echo-map-score`` flags use the semi-colon (``;``) as a default delimiter, which may be changed with the ``--multidelim`` option (see the :ref:`Delimiters <bedmap_delimiters>` section for more information on this and other modifier operators).
+
+The ``--echo-map-range`` flag tells :ref:`bedmap` to report the genomic range of overlapping mapped elements. If we apply this flag to the ``Reference`` and ``Map`` datasets (see :ref:`Downloads <bedmap_downloads>`), we get the following result:
+
+::
+
+ $ bedmap --echo --echo-map-range reference.bed map.bed
+ chr21 33031200 33032400 ref-1|chr21 33031185 33032405
+ chr21 33031400 33031800 ref-2|chr21 33031385 33031805
+ chr21 33031900 33032000 ref-3|chr21 33031885 33032005
+
+.. note:: The ``--echo-map-range`` option produces three-column BED results that are not always guaranteed to be sorted. The ``--echo`` operation is independent, and it produces reference elements in proper BEDOPS order, as shown. If the results of the ``--echo-map-range`` option will be used directly as BED coordinates in downstream BEDOPS analyses (*i.e.*, no ``--echo`` operator), first pipe them to :ref:`sort-bed` to ensure proper sort order.
+
+The ``--echo-ref-size`` flag reports the difference between the stop and start coordinates of the reference element. The ``--echo-ref-name`` flag produces a converted format for the first 3 BED fields, A:B-C, where A is the chromosome name, B is the start coordinate, and C is the stop coordinate for that reference element.
+
+The ``--echo-ref-row-id`` flag prints the prefix ``id-`` with the line number of the reference element.
+
+Finally, the ``--echo-map-size`` flag reports the difference between the stop and start coordinates of each mapped element, while the ``--echo-overlap-size`` flag reports the length of the overlap between the reference element and each mapped element.
+
+.. _bedmap_element_and_overlap_statistics:
+
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Element and overlap statistics
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Looking back at the ``Map`` and ``Reference`` datasets, let's say we want to count the number of elements in ``Map`` that overlap a given ``Reference`` element, as well as the extent of that overlap as measured by the total number of overlapping bases from mapped elements. For this, we use the ``--count`` and ``--bases`` flags, respectively:
+
+::
+
+ $ bedmap --echo --count --bases reference.bed map.bed
+ chr21 33031200 33032400 ref-1|61|1200
+ chr21 33031400 33031800 ref-2|21|400
+ chr21 33031900 33032000 ref-3|6|100
+
+This result tells us that there are 61 elements in ``Map`` that overlap ``ref-1``, and 1200 total bases from the 61 elements overlap bases of ``ref-1``. Similarly, 21 elements overlap ``ref-2``, and 400 total bases from the 21 elements overlap bases of ``ref-2``, etc.
+
+The ``--bases`` operator works on ``Map`` elements. If, instead, we want to quantify the degree to which ``Reference`` elements overlap ``Map`` , we can use the ``--bases-uniq`` and ``--bases-uniq-f`` flags to count the number of bases and, respectively, the fraction of total bases within ``Reference`` which are covered by overlapping elements in ``Map``.
+
+This last example uses ``Motifs`` elements and all of the options: ``--bases``, ``--bases-uniq`` and ``--bases-uniq-f``, to illustrate their different behaviors:
+
+::
+
+ $ echo -e "chr1\t4534161\t4962550\tadhoc-1" | bedmap --echo --bases --bases-uniq --bases-uniq-f - motifs.bed
+ chr1 4534161 4962550 adhoc-1|169|71|0.000166
+
+.. _bedmap_indicator:
+
+^^^^^^^^^
+Indicator
+^^^^^^^^^
+
+If we simply want to know if a reference element overlaps one or more map elements, we can use the ``--indicator`` operator, which returns a ``1`` or ``0`` value, depending on whether there is or is not an overlap, respectively. For example:
+
+::
+
+ $ bedmap --echo --indicator reference.bed map.bed
+ chr21 33031200 33032400 ref-1|1
+ chr21 33031400 33031800 ref-2|1
+ chr21 33031900 33032000 ref-3|1
+
+All three of our reference elements have mapped elements associated with them. If we, instead, test a reference element that we know ahead of time does not contain overlapping map elements, we get a ``0`` result, as we expect:
+
+::
+
+ $ echo -e "chr21\t1000\t2000\tfoo-1" | bedmap --echo --indicator - map.bed
+ chr21 1000 2000 foo-1|0
+
+.. note:: The ``--indicator`` option is equivalent to testing if the result from ``--count`` is equal to or greater than ``0``:
+
+ ::
+
+ $ bedmap --count foo bar | awk '{ print ($1 > 0 ? "1" : "0") }' -
+
+ This option eliminates the need for piping :ref:`bedmap` results to ``awk``.
+
+.. _bedmap_modifier_operations:
+
+---------
+Modifiers
+---------
+
+These options can modify the coordinates used for generating the set of mapped regions, as well as alter the presentation of results. These modifiers can be useful, depending on how :ref:`bedmap` is used in your own workflow.
+
+.. _bedmap_range:
+
+^^^^^
+Range
+^^^^^
+
+The ``--range`` option uses ``--bp-ovr 1`` (*i.e.*, :ref:`one base of overlap <bedmap_overlap_criteria>`) after internally and symmetrically padding reference coordinates by a specified positive integer value. The larger reference elements are used to determine overlapping mapped elements, prior to applying chosen operations.
+
+.. tip:: To change the coordinates of a BED file on *output* (symmetrically or asymmetrically), see the ``--range`` option applied with :ref:`bedops --everything <bedops_range>`.
+
+As an example, we look again at element ``ref-3`` from the ``Reference`` dataset and where it overlaps with ``Map``:
+
+::
+
+ chr21 33031900 33032000 ref-3
+
+.. image:: ../../../assets/reference/statistics/reference_bedmap_mapref_ref3.png
+ :width: 99%
+
+If we want to apply an operation on 100 bp upstream and downstream of this and the other reference elements, we can use the ``--range`` option:
+
+::
+
+ $ bedmap --echo --echo-map-id --range 100 reference.bed map.bed > mappedReference.padded.bed
+
+Any operation will now be applied to a broader set of mapped elements, as visualized here with a "padded" version of ``ref-3``:
+
+.. image:: ../../../assets/reference/statistics/reference_bedmap_mapref_ref3_padded.png
+ :width: 99%
+
+We can compare mean densities, in order to see the effect of using ``--range``. Here is the mean density across the original, unpadded ``ref-3``:
+
+::
+
+ $ bedmap --echo --mean reference.bed map.bed
+ ...
+ chr21 33031900 33032000 ref-3|154.500000
+
+And here is the mean density across the padded ``ref-3``:
+
+::
+
+ $ bedmap --echo --range 100 --mean reference.bed map.bed
+ ...
+ chr21 33031900 33032000 ref-3|117.750000
+
+Looking at the visualizations above, we would expect the mean density to be lower, as the expanded reference region includes map elements with lower tag density, which pushes down the overall mean.
+
+.. note:: The ``--range`` option is classified as an overlap option (like ``--fraction-map`` or ``--exact``) that implicitly uses ``--bp-ovr 1`` after padding reference elements. As shown above, the extended padding is an internal operation and it is not reflected in the output with the ``--echo`` option. Real padding can be added by using ``bedops --range 100 --everything reference.bed`` and piping results to :ref:`bedmap`.
+
+.. note:: Because ``--range`` is an internal operation, some statistical operations like ``--bases`` and ``--bases-uniq`` do not work as one might expect.
+
+ As an example, we might want to count the number of overlapping, unique bases between a 1000-base window around a reference element and a set of mapped elements. The following command will not work:
+
+ ::
+
+ $ bedmap --echo --range 1000 --bases-uniq reference.bed map.bed
+
+ Instead, use :ref:`bedops` to build the window, piping it into a downstream :ref:`bedmap` command. The result of this operation can be piped into the core utility ``paste`` with the original reference set, in order to associate reference elements with the windowed operation result:
+
+ ::
+
+ $ bedops --range 1000 --everything reference.bed \
+ | bedmap --bases-uniq - map.bed \
+ | paste reference.bed -
+
+ To extend this demonstration even further, let's say we are interested in calculations of unique base counts across 1, 2.5 and 5 kilobase windows around reference elements. We can build a matrix-like result through a judicious use of UNIX pipes that progressively expand windows:
+
+ ::
+
+ $ bedops --range 1000 --everything reference.bed \
+ | bedmap --echo --bases-uniq - map.bed \
+ | bedops --range 1500 --everything - \
+ | bedmap --echo --bases-uniq - map.bed \
+ | bedops --range 2500 --everything - \
+ | bedmap --echo --bases-uniq - map.bed \
+ | cut -f2- -d'|' \
+ | paste reference.bed - \
+ | tr '|' '\t'
+
+ To explain how this works, we first build a 1 kilobase window around reference elements with :ref:`bedops` and pipe these windows to :ref:`bedmap`, which does two things:
+
+ 1. Use ``--echo`` to print the windowed element.
+ 2. Use ``--bases-uniq`` to print the number of uniquely-mapped bases across the window.
+
+ In turn, this result is passed to the second :ref:`bedops` operation, which expands the 1-kilobase window from :ref:`bedmap` by another 1.5 kilobases. This creates a window that is now 2.5 kilobases around the original reference element. We pipe this to the second :ref:`bedmap` operation, which prints the 2.5 kb window and the number of bases across *that* window.
+
+ In the third and last round of operations, we expand the 2.5 kb window by another 2.5 kb, creating a 5000-base window around the original reference element. We repeat the same mapping operation.
+
+ At this point, each line of the output consists of a windowed reference element, and pipe characters (the default :ref:`bedmap` delimiter) which separate the unique base counts across the 1, 2.5 and 5 kilobase windows. The final ``cut``, ``paste`` and ``tr`` operations strip out the windows, paste in the original reference elements and replace default delimiters with tab characters, creating a matrix-like output.
+
+ To make this analysis run quickly, use the ``--faster`` modifier on each of the :ref:`bedmap`, if the data allow it. See the following section for more details on where and how ``--faster`` can be used.
+
+.. _bedmap_using_faster_with_range:
+
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Using ``--faster`` with ``--range``
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The ``--faster`` modifier works with the ``--bp-ovr``, ``--fraction-both`` and ``--exact`` (``--fraction-both 1``) overlap and ``--range`` specifiers to dramatically increase the performance of :ref:`bedmap`, when the following input restriction is met:
+
+* No :ref:`fully-nested elements <nested_elements>` in any input mapping file (duplicate elements and other overlapping elements are okay).
+
+.. note:: The details of this restriction are explained in more detail in the :ref:`nested element documentation <nested_elements>`.
+
+This option also works with the ``--ec`` error checking flag, which indicates if the data contain nested elements. Using ``--ec`` carries its usual overhead, but as it only doubles the much-improved execution time, it may be worth using.
+
+.. tip:: To give an idea of the speed improvement, a ``--range 100000 --echo --count`` operation on 8.4 million, non-nested mapping elements (DNaseI footprints across multiple cell types) took *2 minutes and 55 seconds* without speed-up. By adding the ``--faster`` flag, the same calculation took *10 seconds*. That is an **18-fold** speed improvement.
+
+ One scenario where this option can provide great speed gains is where ``--range`` is used with a large numerical parameter. Another scenario where this option is very useful is where the reference file has large elements, and the mapping file is made up of many small elements |---| specifically, where a number of small elements overlap each big element from the reference file.
+
+ An example of a research application for our lab which benefits from this flag is where we perform statistical analysis of large numbers of small sequence tags that fall in hotspot regions.
+
+ If your data meet the :ref:`non-nesting criteria <nested_elements>`, using ``--faster`` with ``--bp-ovr``, ``--exact`` or ``--range`` is **highly recommended**.
+
+.. note:: Our lab works with BED data of various types: cut-counts, hotspots, peaks, footprints, etc. These data generally do not contain nested elements and so are amenable to use with :ref:`bedmap's <bedmap>` ``--faster`` flag for extracting overlapping elements.
+
+ However, other types of data can be problematic. `FIMO <http://meme.nbcr.net/meme/fimo-intro.html>`_ search results (motif hits), for example, may cause trouble, where the boundaries of one motif hit can be contained within another larger hit. Or paired-end sequence data, where tags are not of a fixed length.
+
+ Be sure to consider the makeup of your BED data before using ``--faster``.
+
+.. tip:: Using ``--ec`` with ``--faster`` will report if any nested elements exist in your data. Using ``--ec`` carries its usual overhead, but as it only doubles the much-improved execution time, it may be worth using.
+
+.. _bedmap_formatting_score_output:
+
+^^^^^^^^^^^^^^^^^^^^^^^
+Formatting score output
+^^^^^^^^^^^^^^^^^^^^^^^
+
+The ``--prec`` and ``--sci`` process flags are useful for controlling the `arithmetic precision <http://en.wikipedia.org/wiki/Precision_(arithmetic)>`_ and `notation <http://en.wikipedia.org/wiki/Scientific_notation>`_ of score output, when used with the ``--echo-map-score``, ``--sum``, ``--mean`` and other numerical score operators. This will also format results from the non-score operator ``--bases-uniq-f``.
+
+To demonstrate their use, we revisit the ``Motifs`` dataset, which includes *p*-values reporting the statistical significance of putative transcription factor binding sites:
+
+::
+
+ chr1 4534161 4534177 -V_GRE_C 4.20586e-06 - CGTACACACAGTTCTT
+ chr1 4534192.4.204205 -V_STAT_Q6 2.21622e-06 - AGCACTTCTGGGA
+ chr1 4534209 4534223 +V_HNF4_Q6_01 6.93604e-06 + GGACCAGAGTCCAC
+ chr1 4962522.4.202540 -V_GCNF_01 9.4497e-06 - CCCAAGGTCAAGATAAAG
+ chr1 4962529 4962539 +V_NUR77_Q5 8.43564e-06 + TTGACCTTGG
+ ...
+
+Let's say we want a list of motifs and associated *p*-values mapped to a coordinate range of interest (``chr1:4534150-4534300``). In order to conserve space, however, we only want two significant figures for the score data. So we use ``--prec 2`` to try to reformat the score output:
+
+::
+
+ $ echo -e "chr1\t4534150\t4534300\tref-1" \
+ | bedmap --prec 2 --echo --echo-map-id --echo-map-score - motifs.bed \
+ > motifsForRef1.bed
+
+Here is the output:
+
+::
+
+ chr1 4534150 4534300 ref-1|-V_GRE_C;-V_STAT_Q6;+V_HNF4_Q6_01|0.00;0.00;0.00
+
+It looks like our *p*-values were rounded down to zeroes, which is not what we want. But we remember that the binding site *p*-values are listed in scientific notation, and so we add the ``--sci`` flag to preserve the format of the score data in scientific notation:
+
+::
+
+ $ echo -e "chr1\t4534150\t4534300\tref-1" \
+ | bedmap --prec 2 --sci --echo --echo-map-id --echo-map-score - motifs.bed \
+ > correctedMotifsForRef1.bed
+
+Here is the corrected output:
+
+::
+
+ chr1 4534150 4534300 ref-1|-V_GRE_C;-V_STAT_Q6;+V_HNF4_Q6_01|4.21e-06;2.22e-06;6.94e-06
+
+Rounding of the mantissa is done to the precision specified in ``--prec``.
+
+Obviously, the ``--sci`` flag is useful for very small or large score data. You probably wouldn't use ``--sci`` with most integer signal (*e.g.*, raw tag counts or most discrete measurements).
+
+.. _bedmap_delimiters:
+
+^^^^^^^^^^
+Delimiters
+^^^^^^^^^^
+
+As shown in the examples above, the pipe (``|``) and semi-colon (``;``) characters are used to split operational and ``echo``-ed results, respectively. The ``--delim`` and ``--multidelim`` flags change these delimiters to characters of your choice, which let you pick what makes most sense for your custom post-processing or other downstream pipelining work (for instance, in our lab ``--delim "\t"`` is a popular alternative to the default ``|`` character).
+
+As an example, the following :ref:`bedmap` result is obtained from using the ``--echo``, ``--echo-map-id``, ``--echo-map-score`` and ``--max`` options on the ``Motifs`` dataset:
+
+::
+
+ chr1 4534150 4534300 ref-1|-V_GRE_C;-V_STAT_Q6;+V_HNF4_Q6_01|4.21e-06;2.22e-06;6.94e-06|6.94e-06
+
+For this result, the :ref:`bedmap` program organizes data using the default set of delimiters:
+
+::
+
+ [reference-line] | [map-IDs] | [map-scores] | [maximum-map-score]
+
+Here, you can use the ``--delim`` option to replace the pipe character with an alternative delimiter.
+
+Within the ``map-IDs`` and ``map-scores`` subgroups, individual results are split further by semi-colon:
+
+::
+
+ [id-1] ; [id-2] ; ... ; [id-N]
+
+::
+
+ [score-1] ; [score-2] ; ... ; [score-N]
+
+You can use the ``--multidelim`` option to replace the semi-colon with another delimiter, *e.g.*:
+
+::
+
+ $ echo -e "chr1\t4534150\t4534300\tref-1" | bedmap --multidelim '$' --echo --echo-map-id - motifs.bed
+ chr1 4534150 4534300 ref-1|-V_GRE_C$-V_STAT_Q6$+V_HNF4_Q6_01
+
+.. note:: Grouped results derived with the ``--echo-map``, ``--echo-map-id``, and ``--echo-map-score`` options are listed in identical order. In other words, ID results line up at the same position as their score result counterparts when both ``--echo-map-id`` and ``--echo-map-score`` are chosen together. The same applies to the ``--echo-map`` option.
+
+.. _bedmap_io_event_handling:
+
+==================
+I/O event handling
+==================
+
+During normal use of ``bedmap``, the application will usually terminate when it is determined that no more map data needs to be processed. This improves performance by limiting execution time to only that which is required to do actual work. However, closing early can trigger ``SIGPIPE`` or broken pipe errors that can cause batch scripts that use the standard input stream to pass data to ``bedmap`` to terminate early with an error state (even though there is often no functional problem f [...]
+
+When adding ``--ec``, ``bedmap`` will go into :ref:`error checking mode <bedmap_error_checking>` and read through the entire map dataset.
+
+One method for dealing with this is to override how ``SIGPIPE`` errors are caught by the interpreter (bash, Python, etc.) and retrapping them or ignoring them. However, it may not a good idea to do this as other situations may arise in production pipelines where it is ideal to trap and handle all I/O errors in a default manner.
+
+Until now, we have proposed using the ``--ec`` (error checking) option in ``bedmap`` as one way to prevent raising ``SIGPIPE`` events when chaining commands via pipes, by forcing all inputs to be read entirely. Early pipe termination can cause scripts to stop processing when certain flags are set (for example, when -e is used with tcsh). This hidden behavior of ``--ec`` has been replaced with the explicit option ``--sweep-all``.
+
+The ``--ec`` and ``--sweep-all`` options work independently, and ``--ec`` no longer has the ``--sweep-all`` side-effect. These options may be used in conjunction. The ``--sweep-all`` option can add significant execution time in cases where early termination is possible.
+
+.. _bedmap_per_chromosome_operations:
+
+===================================
+Per-chromosome operations (--chrom)
+===================================
+
+All operations on inputs described so far can be restricted to one chromosome, by adding the ``--chrom <val>`` operator. This is highly useful for cluster-based work, where operations on large BED inputs can be split up by chromosome and pushed to separate cluster nodes.
+
+Here, we use the ``--echo`` and ``--echo-map-id`` operators on our ``Motifs`` dataset, but we limit operations to those on elements on chromosome ``chr2``:
+
+::
+
+ $ echo -e "chr2\t1000000\t5000000\tref-1" | bedmap --chrom chr2 --echo --echo-map-id - motifs.bed
+ chr2 1000000 5000000 ref-1|+V_OCT1_05;+V_OCT_C;-V_CACD_01;+V_IRF_Q6;-V_BLIMP1_Q6;-V_IRF2_01;-V_IRF_Q6_01
+
+If the reference elements are not on the specified chromosome provided to ``--chrom``, then no output is generated. In the following example, our reference element is on ``chr2``, but we ask for operations to be limited to ``chr3``, yielding an empty set:
+
+::
+
+ $ echo -e "chr2\t1000000\t5000000\tref-1" | bedmap --chrom chr3 --echo --echo-map-id - motifs.bed
+ $
+
+.. _bedmap_starch_support:
+
+==============
+Starch support
+==============
+
+The :ref:`bedmap` application supports use of :ref:`Starch-formatted archives <starch>` as inputs, as well as text-based BED data. One or multiple inputs may be Starch archives.
+
+For example, we can repeat the overlapping-motif example from the :ref:`Echo section <bedmap_echo>`, using a Starch archive made from the regions in ``Motifs``:
+
+::
+
+ $ echo -e "chr1\t4534150\t4534300\tref-1" | bedmap --echo --echo-map-id - motifs.bed.starch
+ chr1 4534150 4534300 ref-1|-V_GRE_C;-V_STAT_Q6;+V_HNF4_Q6_01
+
+By combining the ``--chrom`` operator with operations on Starch archives, the end user can achieve improved computing performance and disk space savings, particularly where :ref:`bedops`, :ref:`bedmap` and :ref:`closest-features` operations are applied with a computational cluster on separate chromosomes.
+
+.. _bedmap_error_checking:
+
+==============
+Error checking
+==============
+
+The bedmap program does not perform error checking by default, but it offers an ``--ec`` option for comprehensive checks.
+
+.. note:: Use of the ``--ec`` option will roughly double the running time, but it provides stringent error checking to ensure all inputs are valid. ``--ec`` can help check problematic input and offers helpful hints for any needed corrections, when problems are detected.
+
+.. _bedmap_endlines:
+
+========
+Endlines
+========
+
+The :ref:`bedmap` program expects endlines (``\n``) appropriate to Linux and Mac OS X operating systems. Microsoft Windows uses different characters for endlines. In UNIX-like environments, you can quickly check to see if your file contains the native endlines with this command:
+
+::
+
+ $ head myData.bed | cat -et
+
+The appropriate endlines will show up as a ``$`` character at the end of each line. See the ``dos2unix`` program (sometimes called ``fromdos``) to convert newlines from files saved on Microsoft Windows. The ``unix2dos`` (or ``todos``) program can convert files in the other direction, if needed.
+
+.. _bedmap_downloads:
+
+=========
+Downloads
+=========
+
+* Sample ``Reference`` dataset: :download:`reference elements <../../../assets/reference/statistics/reference_bedmap_reference.bed>`
+* Sample ``Map`` dataset: :download:`map elements <../../../assets/reference/statistics/reference_bedmap_map.bed>`
+* Sample ``Motifs`` dataset: :download:`motif elements <../../../assets/reference/statistics/reference_bedmap_motifs.bed>`
+
+.. |--| unicode:: U+2013 .. en dash
+.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace
+ :trim:
diff --git a/docs/content/release.rst b/docs/content/release.rst
new file mode 100644
index 0000000..1f78bc0
--- /dev/null
+++ b/docs/content/release.rst
@@ -0,0 +1,186 @@
+.. _release:
+
+Release
+=======
+
+This document attempts to enumerate steps to get from a development branch to a final release, with all associated packages and documentation changes.
+
+===========
+Preparation
+===========
+
+Preparing a major, minor or maintenance release of BEDOPS from a development branch involves several steps, which we outline here:
+
+1. Review the `Github issues list <https://github.com/bedops/bedops/issues>`_
+
+ a. Close out open documentation or feature issues, making necessary pushes to the current development branch.
+
+ b. If any issues can't be closed out, rename the assigned version tag to the next anticipated release version (*e.g.*, *v2.4.20* to *v2p5p0*, etc.)
+
+2. Pull the most recent commit for the development branch to a local folder on build hosts (Linux with sufficiently old kernel, current OS X, etc.).
+
+ a. Follow the :ref:`Installation (via source code) <installation_via_source_code>` documentation to build BEDOPS for the given platform.
+
+ 1) For Linux, we build two versions, one 64-bit and one 32-bit. It may help to use `VirtualBox <https://www.virtualbox.org>`_ or a similar virtualization host to set up and run different (and consistent) versions of Linux build hosts.
+
+ 2) For Mac OS X, we currently build the Mac target with whatever the modern Xcode and current OS X release happens to be (currently, command-line tools that ship with Xcode 7 and OS X El Capitan/10.11). If things work correctly, build flags generate "fat" binaries that should run on 10.7 and newer OS releases.
+
+ b. For all platforms, run test suites for various tools and conversion scripts; tests should pass on supported platforms. If not, add an Issue ticket, fix it, close it and start over with the build/test process.
+
+ c. If things work properly, make a bzip2-compressed tarball from the compiled binaries.
+
+ The naming scheme we currently use for Linux packages is as follows:
+
+ ::
+
+ bedops_linux_x86_64-vX.Y.Z.tar.bz2 (64-bit)
+ bedops_linux_i386-vX.Y.Z.tar.bz2 (32-bit)
+
+ Run ``shasum -a 256`` on each tarball to get its SHA256 hash (store this SHA256 hash in a file for later retrieval).
+
+ For the OS X Installer, use ``productsign`` per :ref:`OS X Installer <installation_os_x_installer_construction>` documentation to digitally sign the package. Compress the Installer with the Finder or `zip`:
+
+ ::
+
+ BEDOPS.X.Y.Z.pkg.zip
+
+ The *X.Y.Z* scheme should follow the development branch name, *e.g.* 2.4.20, etc.
+
+3. Collect tarballs and zipped Installer in one location for later addition with web browser, via BEDOPS Github web site.
+
+=======
+Release
+=======
+
+1. Merge BEDOPS development branch into master branch:
+
+ ::
+
+ $ git checkout master
+ $ git pull origin master
+ $ git merge vXpYpZ
+ $ git push origin master
+
+ Ideally, whatever steps are used to merge the development branch into the master branch should preserve the overall commit history.
+
+ As before, the *X.Y.Z* scheme should follow the development branch name, *e.g.* 2.4.20, etc.
+
+2. Add a `new release <https://github.com/bedops/bedops/releases/new>`_ via the Github site. Or click on the `Draft a new release <https://github.com/bedops/bedops/releases>`_ button from the Github Releases page.
+
+ Fill out the resulting form, as described below:
+
+ a. *Tag version* should be of the form *vX.Y.Z* (using the "semantic versioning" naming scheme triggers Github to set up useful and automatic package features).
+
+ Tags should be applied to the *master* branch, since we pushed the development branch up to the master branch.
+
+ b. *Release title* can be of the form *BEDOPS vX.Y.Z*.
+
+ c. *Describe this release* can be populated with the following Markdown-formatted boilerplate:
+
+ ::
+
+ Downloads are available at the bottom of this page. Please read the [BEDOPS vX.Y.Z revision history](http://bedops.readthedocs.io/en/latest/content/revision-history.html#vX-Y-Z), which summarizes new features and fixes in this release.
+
+ ------
+
+ ### Linux
+ **bedops_linux_x86_64-vX.Y.Z.tar.bz2** (64-bit, SHA256: ``abcd1234``)
+ **bedops_linux_i386-vX.Y.Z.tar.bz2** (32-bit, SHA256: ``abcd1234``)
+ This package of BEDOPS vX.Y.Z binaries is for Linux 64- and 32-bit hosts. Pick the installer that matches your host architecture. If your host can run 64-bit binaries, we recommend downloading the 64-bit package.
+
+ For installation instructions, please read [§2.1.1. Linux] (http://bedops.readthedocs.io/en/latest/content/installation.html#linux) of the BEDOPS Installation document.
+
+ ------
+
+ ### Mac OS X
+ **BEDOPS.X.Y.Z.pkg.zip**
+ This package of BEDOPS vX.Y.Z binaries is a digitally-signed installer for OS X (10.7 - 10.11) running on Intel-based Macs.
+
+ For installation instructions, please read [§2.1.2. Mac OS X] (http://bedops.readthedocs.io/en/latest/content/installation.html#mac-os-x) of the BEDOPS Installation document.
+
+ d. Attach per-platform binaries to this release by dragging each of them into the field underneath the description text. It can take a few moments for the web browser to upload each binary into the release page, so be patient. There should be at least three binaries: two for Linux 64- and 32-bit, and one for (fat) Mac OS X.
+
+ e. Click the *Publish Release* button.
+
+3. After at least 5-10 minutes from pushing the development branch to the master branch, check the `BEDOPS documentation site <http://bedops.readthedocs.io/en/latest/>`_ to ensure that the "latest" or default documenation shown is for the new version.
+
+ If not, take a look at the `build <https://readthedocs.org/builds/bedops/>`_ page to manually trigger document rebuilds, or examine error logs, if necessary.
+
+4. Update the Github bedops/bedops master `README.md <https://github.com/bedops/bedops/blob/v2p5p0/README.md>`_ file to note the current version number, if necessary.
+
+5. Push fixes to any documentation errors in the master branch.
+
+.. note:: We should aim to fix typos and other errors as soon after a new release as possible, because then shortly afterwards we can simply pull a new development branch off the current state of the master branch with minimal commit losses.
+
+.. tip:: If we push any subsequent changes to the ``master`` branch, it's not the end of the world. However, it is recommended that the version tag is pushed forwards to the latest commit:
+
+ ::
+
+ $ git tag -f -a vX.Y.Z -m 'pushed current version tag forwards to latest commit'
+ ...
+ $ git push -f --tags
+ ...
+
+ This way, anyone who downloads source via GitHub will get the "freshest" code, with all the typo fixes and so forth.
+
+6. Visit the `BEDOPS documentation administration site <https://readthedocs.org/dashboard/bedops/edit/>`_ to disable documentation for the development branch.
+
+ Specifically, click on the `versions <https://readthedocs.org/dashboard/bedops/versions/>`_ tab to deactivate the old development branch. (Likewise, when adding a new development branch, add an active link here, so that edits to the documentation folder in the new development branch are available.)
+
+7. Update a local fork of `homebrew-science <https://github.com/Homebrew/homebrew-science>`_ with details for the BEDOPS `formula <https://github.com/Homebrew/homebrew-science/blob/master/bedops.rb>`_. Submit pull request to homebrew-science folks.
+
+ a. After establishing a local fork, add the upstream remote so that you can fetch/pull updated formulas from Homebrew (if this is already done, this step can be skipped):
+
+ ::
+
+ $ git remote add upstream git://github.com/homebrew/homebrew-science.git
+
+ b. Fetch and pull data to the master branch from the upstream remote:
+
+ ::
+
+ $ git checkout master
+ $ git fetch
+ $ git pull upstream master
+ ...
+
+ c. Make a branch of the master entitled *bedops-vXpYpZ* and check it out:
+
+ ::
+
+ $ git branch bedops-vXpYpZ
+ $ git checkout bedops-vXpYpZ
+
+ d. Edit changes to *bedops.rb* formula. Change the version number in the tarball download and remove the ``sha1`` line (you'll replace this later on).
+
+ e. Test the new formula. Add the ``--build-from-source`` option to skip the per-platform bottle code:
+
+ ::
+
+ $ brew install ./bedops.rb --build-from-source
+
+ f. If the installation is successful, there will be a SHA1 validation code that you can copy and paste into the formula with the ``sha1`` header (see step *d* |---| basically, you are updating the line you removed in that step).
+
+ g. Add, commit and push the updated formula to the *bedops-vXpYpZ* branch:
+
+ ::
+
+ $ git add bedops.rb
+ $ git commit -am 'BEDOPS X.Y.Z'
+ $ git push origin bedops-vXpYpZ
+
+ h. Visit the `homebrew-science <https://github.com/Homebrew/homebrew-science>`_ site and initiate a pull request from your local fork's newly pushed branch (there will be a big green button at the top of the GitHub site that asks you to start this pull request).
+
+ i. Wait for success or failure; the homebrew-science people will indicate if there are any problems, usually within 48-72 hours.
+
+8. Consider closing out or deleting the development branch, as well as setting up the next development branch.
+
+=========
+Celebrate
+=========
+
+At this point, we can email links to Linux packages to IT for updating the cluster BEDOPS module and make announcements on websites, mailing lists, etc.
+
+.. |--| unicode:: U+2013 .. en dash
+.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace
+ :trim:
diff --git a/docs/content/revision-history.rst b/docs/content/revision-history.rst
new file mode 100644
index 0000000..0195785
--- /dev/null
+++ b/docs/content/revision-history.rst
@@ -0,0 +1,722 @@
+.. _revision_history:
+
+Revision history
+================
+
+This page summarizes some of the more important changes between releases.
+
+.. _revision_history_of_current_version:
+
+===============
+Current version
+===============
+
+-------
+v2.4.20
+-------
+
+Released: **July 27, 2016**
+
+* :ref:`convert2bed <convert2bed>`
+
+ * Increased memory allocation for maximum number of per-read CIGAR operations in BAM and SAM conversion to help improve stability. Thanks to Adam Freedman for the report!
+
+ * Improved reliability of gene ID parsing from GTF input, where ``gene_id`` field may be positioned at start, middle, or end of attributes string, or may be empty. Thanks to blaiseli for the report!
+
+=================
+Previous versions
+=================
+
+-------
+v2.4.19
+-------
+
+Released: **May 9, 2016**
+
+* :ref:`convert2bed <convert2bed>`
+
+ * Fixed bug in BAM and SAM parallel conversion scripts (``*_gnuParallel`` and ``*_sge``) with inputs containing chromosome names without ``chr`` prefix. Thanks to Eric Haugen for the bug report!
+
+* Starch C++ API
+
+ * Fixed bug with extraction of bzip2- and gzip-backed archives with all other non-primary Starch tools (all tools except `starch`, `unstarch`, `starchcat`, and `sort-bed`). Thanks to Eric Haugen for the bug report!
+
+-------
+v2.4.18
+-------
+
+Released: **April 28, 2016**
+
+* :ref:`convert2bed <convert2bed>`
+
+ * Fixed compile warnings.
+ * Fixed bug in BAM and SAM conversion with optional field line overflow. Thanks to Jemma Nelson for the bug report!
+
+* General documentation improvements
+
+ * Updated OS X Installer and Github release instructions
+ * Added thank-you to Feng Tian for bug report
+
+-------
+v2.4.17
+-------
+
+Released: **April 26, 2016**
+
+* :ref:`bam2bed <bam2bed>` and :ref:`sam2bed <sam2bed>`
+
+ * Improved parsing of non-split BAM and SAM inputs.
+
+* Docker container build target added for Debian
+
+ * Thanks to Leo Comitale (Poldo) for writing a Makefile target and spec for creating a BEDOPS Docker container for the Debian target.
+
+* Starch C++ API
+
+ * Fixed bug with extraction of bzip2- and gzip-backed archives with all other non-primary Starch tools (all tools except `starch`, `unstarch`, `starchcat`, and `sort-bed`). Thanks to Feng Tian for reports.
+
+-------
+v2.4.16
+-------
+
+Released: **April 5, 2016**
+
+* :ref:`bedmap <bedmap>`
+
+ * Added new ``--echo-ref-row-id`` option to report reference row ID elements.
+
+* Starch C++ API
+
+ * Fixed bug with extraction of archives made with ``starch --gzip`` (thanks to Brad Gulko for the bug report and Paul Verhoeven and Peter Weir for compile and testing assistance).
+
+* General improvements
+
+ * Small improvements to build cleanup targets.
+
+-------
+v2.4.15
+-------
+
+Released: **January 21, 2016**
+
+* Docker container build target added for CentOS 7
+
+ * Thanks to Leo Comitale (Poldo) for writing a Makefile target and spec for creating a BEDOPS Docker container for CentOS 7.
+
+* :ref:`convert2bed <convert2bed>`
+
+ * Fixed buffer overflows in ``convert2bed`` to improve conversion reliability for VCF files (thanks to Jared Andrews and Kousik Kundu for bug reports).
+
+* General improvements
+
+ * Improved OS X 10.11 build process.
+
+-------
+v2.4.14
+-------
+
+Released: **April 21, 2015**
+
+* :ref:`convert2bed <convert2bed>`
+
+ * Fixed missing ``samtools`` variable references in cluster conversion scripts (thanks to Brad Gulko for the bug report).
+
+* General suite-wide improvements
+
+ * Fixed exception error message for ``stdin`` check (thanks to Brad Gulko for the bug report).
+
+
+-------
+v2.4.13
+-------
+
+Released: **April 20, 2015**
+
+* :ref:`bedops <bedops>`
+
+ * Resolved issue in using ``--ec`` with ``bedops`` when reading from ``stdin`` (thanks to Brad Gulko for the bug report).
+
+* General suite-wide improvements
+
+ * Addressed inconsistency with constants defined for the suite at the extreme end of the limits we allow for coordinate values (thanks again to Brad Gulko for the report).
+
+-------
+v2.4.12
+-------
+
+Released: **March 13, 2015**
+
+* :ref:`bedops <bedops>`
+
+ * Checks have been added to determine if an integer argument is a file in the current working directory, before interpreting that argument as an overlap criterion for ``-e`` and ``-n`` options. To reduce ambiguity, if an integer is used as a file input, ``bedops`` issues a warning of the interpretation and provides guidance on how to force that value to instead be used as an overlap specification, if desired (thanks to E. Rynes for the pointer).
+
+* :ref:`bedmap <bedmap>`
+
+ * Added support for ``--prec``/``--sci`` with ``--min-element`` and ``--max-element`` operations (thanks to E. Rynes for the pointer).
+
+* :REF:`bedops <bedops>` | :ref:`bedmap <bedmap>` | :ref:`closest-features <closest-features>`
+
+ * Added support for ``bash`` process substitution/named pipes with specification of ``--chrom`` and/or ``--ec`` options (thanks to B. Gulko for the bug report).
+ * Fixed code that extracts ``gzip``-backed Starch archives from ``bedops`` and other core tools (thanks again to B. Gulko for the bug report).
+
+* :ref:`convert2bed <convert2bed>`
+
+ * Switched ``matches`` and ``qSize`` fields in order of :ref:`psl2bed <psl2bed>` output. Refer to documentation for new field order.
+ * Added null sentinel to GTF ID value.
+ * To help reduce the chance of buffer overflows, the `convert2bed` tool increases the maximum field length from 8191 to 24575 characters to allow parsing of inputs with longer field length, such as very long attributes from `mosquito GFF3 <https://www.vectorbase.org/download/aedes-aegypti-liverpoolbasefeaturesaaegl33gff3gz>`_ data (thanks to T. Karginov for the bug report).
+
+-------
+v2.4.11
+-------
+
+Released: **February 24, 2015**
+
+* :ref:`convert2bed <convert2bed>`
+
+ * Fixed bug in :ref:`psl2bed <psl2bed>` where ``matches`` column value was truncated by one character. Updated unit tests. Thanks to M. Wirthlin for the bug report.
+
+-------
+v2.4.10
+-------
+
+Released: **February 23, 2015**
+
+* :ref:`starch <starch>`
+
+ * In addition to checking chromosome interleaving, the ``starch`` tool now enforces :ref:`sort-bed <sort-bed>` sort ordering on BED input and exits with an ``EINVAL`` error if the data are not sorted correctly.
+
+* :ref:`convert2bed <convert2bed>`
+
+ * Added ``--zero-indexed`` option to ``wig2bed`` and ``wig2starch`` wrappers and ``convert2bed`` binary, which converts WIG data that are zero-indexed without any coordinate adjustments. This is useful for WIG data sourced from the UCSC Kent tool ``bigWigToWig``, where the ``bigWig`` data can potentially be sourced from 0-indexed BAM- or bedGraph-formatted data.
+
+ * If the WIG input contains any element with a start coordinate of 0, the default use of ``wig2bed``, ``wig2starch`` and ``convert2bed`` will exit early with an error condition, suggesting the use of ``--zero-indexed``.
+
+ * Updated copyright date range of wrapper scripts
+
+------
+v2.4.9
+------
+
+Released: **February 17, 2015**
+
+* :ref:`sort-bed <sort-bed>`
+
+ * Added support for ``--check-sort`` to report if input is sorted (or not)
+
+* Starch
+
+ * Improved support for ``starch --header``, where header contains tab-delimited fields
+
+* Starch C++ API
+
+ * Fixed bug with ``starch --header`` functionality, such that BEDOPS core tools (``bedops``, etc.) would be unable to extract correct data from headered Starch archive
+
+------
+v2.4.8
+------
+
+Released: **February 7, 2015**
+
+* Mac OS X packaging
+
+ * Installer signed with `productsign <https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/productsign.1.html#//apple_ref/doc/man/1/productsign>`_ to pass `OS X Gatekeeper <http://support.apple.com/en-us/HT202491>`_
+
+* Linux packaging
+
+ * SHA1 hashes of each tarball are now part of the `BEDOPS Releases <https://github.com/bedops/bedops/releases/>`_ description page, going forwards
+
+* Updated copyright dates in source code
+
+------
+v2.4.7
+------
+
+Released: **February 2, 2015**
+
+* :ref:`convert2bed <convert2bed>` fixes and improvements
+
+ * Fixed `--split` support in :ref:`psl2bed <psl2bed>` (thanks to Marco A.)
+ * Fixed compilation warning regarding comparison of signed and unsigned values
+ * Fixed corrupted :ref:`psl2bed <psl2bed>` test inputs
+
+------
+v2.4.6
+------
+
+Released: **January 30, 2015**
+
+* :ref:`convert2bed <convert2bed>` fixes and improvements
+
+ * Added support for conversion of the `GVF file format <http://www.sequenceontology.org/resources/gvf.html#summary>`_, including wrapper scripts and unit tests. Refer to the :ref:`gvf2bed <gvf2bed>` documentation for more information.
+
+ * Fixed bug in string copy of zero-length element attribute for :ref:`gff2bed` and :ref:`gtf2bed` (GFF and GTF) formats
+
+* General fixes and improvements
+
+ * Fixed possibly corrupt bzip2, Jansson and zlib tarballs (thanks to rekado, Shane N. and Richard S.)
+
+ * Fixed typo in :ref:`bedextract <bedextract>` documentation
+
+ * Fixed broken image in :ref:`Overview <overview>`
+
+ * Removed 19 MB ``_build`` intermediate result directory (which should improve overall ``git clone`` time considerably!)
+
+------
+v2.4.5
+------
+
+Released: **January 28, 2015**
+
+* ``convert2bed`` improvements
+
+ * Addition of RepeatMasker annotation output (``.out``) file conversion support, ``rmsk2bed`` and ``rmsk2starch`` wrappers, and unit tests
+
+------
+v2.4.4
+------
+
+Released: **January 25, 2015**
+
+* Documentation improvements
+
+ * Implemented substantial style changes via `A Better Sphinx Theme <http://github.com/irskep/sphinx-better-theme>`_ and various customizations. We also include responsive web style elements to help improve browsing on mobile devices.
+
+ * Fixes to typos in conversion and other documents.
+
+------
+v2.4.3
+------
+
+Released: **December 18, 2014**
+
+* Compilation improvements
+
+ * Shane Neph put in a great deal of work to enable parallel builds (*e.g.*, ``make -j N`` to build various targets in parallel). Depending on the end user's environment, this can speed up compilation time by a factor of 2, 4 or more.
+
+ * Fixed numerous compilation warnings of debug builds of :ref:`starch` toolkit under RHEL6/GCC and OS X 10.10.1/LLVM.
+
+* New :ref:`bedops` features
+
+ * Added ``--chop`` and ``--stagger`` options to "melt" inputs into contiguous or staggered disjoint regions of equivalent size.
+
+ * For less confusion, arguments for ``--element-of``, ``--chop`` and other ``bedops`` operations that take numerical modifiers no longer require a leading hyphen character. For instance, ``--element-of 1`` is now equivalent to the former usage of ``--element-of -1``.
+
+* New :ref:`bedmap` features
+
+ * The ``--sweep-all`` option reads through the entire map file without early termination and can help deal with ``SIGPIPE`` errors. It adds to execution time, but the penalty is not as severe as with the use of ``--ec``. Using ``--ec`` alone will enable error checking, but will now no longer read through the entire map file. The ``--ec`` option can be used in conjunction with ``--sweep-all``, with the associated time penalties. (Another method for dealing with issue this is to override [...]
+
+ * New ``--echo-ref-size`` and ``--echo-ref-name`` operations report genomic length of reference element, and rename the reference element in ``chrom:start-end`` (useful for labeling rows for input for ``matrix2png`` or ``R`` or other applications).
+
+* :ref:`bedextract`
+
+ * Fixed upper bound bug that would cause incorrect output in some cases
+
+* :ref:`conversion scripts <conversion_scripts>`
+
+ * Brand new C99 binary called :ref:`convert2bed`, which wrapper scripts (``bam2bed``, etc.) now call. No more Python version dependencies, and the C-based rewrite offers massive performance improvements over old Python-based scripts.
+
+ * Added :ref:`parallel_bam2starch` script, which parallelizes creation of :ref:`Starch <starch_specification>` archive from very large BAM files in SGE environments.
+
+ * Added bug fix for missing code in :ref:`starchcluster.gnu_parallel <starchcluster>` script, where the final collation step was missing.
+
+ * The :ref:`vcf2bed` script now accepts the ``--do-not-split`` option, which prints one BED element for all alternate alleles.
+
+* :ref:`Starch <starch_specification>` archival format and compression/extraction tools
+
+ * Added duplicate- and :ref:`nested-element <nested_elements>` flags in v2.1 of Starch metadata, which denote if a chromosome contains one or more duplicate and/or nested elements. BED files compressed with :ref:`starch` v2.5 or greater, or Starch archives updated with :ref:`starchcat` v2.5 or greater will include these values in the archive metadata. The :ref:`unstarch` extraction tool offers ``--has-duplicate`` and ``--has-nested`` options to retrieve these flag values for a specifie [...]
+
+ * Added ``--is-starch`` option to :ref:`unstarch` to test if specified input file is a Starch v1 or v2 archive.
+
+ * Added bug fix for compressing BED files with :ref:`starch`, where the archive would not include the last element of the BED input, if the BED input lacked a trailing newline. The compression tools now include a routine for capturing the last line, if there is no newline.
+
+* Documentation improvements
+
+ * Remade some image assets throughout the documents to support Retina-grade displays
+
+------
+v2.4.2
+------
+
+Released: **April 10, 2014**
+
+* :ref:`conversion scripts <conversion_scripts>`
+
+ * Added support for :ref:`sort-bed` ``--tmpdir`` option to conversion scripts, to allow specification of alternative temporary directory for sorted results when used in conjunction with ``--max-mem`` option.
+
+ * Added support for GFF3 files which include a FASTA directive in ``gff2bed`` and ``gff2starch`` (thanks to Keith Hughitt).
+
+ * Extended support for Python-based conversion scripts to support use with Python v2.6.2 and forwards, except for ``sam2bed`` and ``sam2starch``, which still require Python v2.7 or greater (and under Python3).
+
+ * Fixed ``--insertions`` option in :ref:`vcf2bed` to now report a single-base BED element (thanks to Matt Maurano).
+
+------
+v2.4.1
+------
+
+Released: **February 26, 2014**
+
+* :ref:`bedmap`
+
+ * Added ``--fraction-both`` and ``--exact`` (``--fraction-both 1``) to list of compatible overlap options with ``--faster``.
+
+ * Added 5% performance improvement with `bedmap` operations without ``--faster``.
+
+ * Fixed scenario that can yield incorrect results (cf. `Issue 43 <https://github.com/bedops/bedops/issues/43>`_).
+
+* :ref:`sort-bed`
+
+ * Added ``--tmpdir`` option to allow specification of an alternative temporary directory, when used in conjunction with ``--max-mem`` option. This is useful if the host operating system's standard temporary directory (*e.g.*, ``/tmp`` on Linux or OS X) does not have sufficient space to hold intermediate results.
+
+* All :ref:`conversion scripts <conversion_scripts>`
+
+ * Improvements to error handling in Python-based conversion scripts, in the case where no input is specified.
+
+ * Fixed typos in :ref:`gff2bed` and :ref:`psl2bed` documentation (cf. `commit a091e18 <https://github.com/bedops/bedops/commit/a091e18>`_).
+
+* OS X compilation improvements
+
+ * We have completed changes to the OS X build process for the remaining half of the BEDOPS binaries, which now allows direct, full compilation with Clang/LLVM (part of the Apple Xcode distribution).
+
+ All OS X BEDOPS binaries now use Apple's system-level C++ library, instead of GNU's ``libstdc++``. It is no longer required (or recommended) to use GNU gcc to compile BEDOPS on OS X.
+
+ Compilation is faster and simpler, and we can reduce the size and complexity of Mac OS X builds and installer packages. By using Apple's C++ library, we also eliminate the likelihood of missing library errors.
+
+ In the longer term, this gets us closer to moving BEDOPS to using the CMake build system, to further abstract and simplify the build process.
+
+* Cleaned up various compilation warnings found with ``clang``/``clang++`` and GCC kits.
+
+------
+v2.4.0
+------
+
+Released: **January 9, 2014**
+
+* :ref:`bedmap`
+
+ * Added new ``--echo-map-size`` and ``--echo-overlap-size`` options to calculate sizes of mapped elements and overlaps between mapped and reference elements.
+
+ * Improved performance for all ``--echo-map-*`` operations.
+
+ * Updated documentation.
+
+* Major enhancements and fixes to :ref:`sort-bed`:
+
+ * Improved performance.
+
+ * Fixed memory leak.
+
+ * Added support for millions of distinct chromosomes.
+
+ * Improved internal estimation of memory usage with ``--max-mem`` option.
+
+* Added support for compilation on Cygwin (64-bit). Refer to the :ref:`installation documentation <installation_via_source_code_on_cygwin>` for build instructions.
+
+* :ref:`starchcat`
+
+ * Fixed embarassing buffer overflow condition that caused segmentation faults on Ubuntu 13.
+
+* All :ref:`conversion scripts <conversion_scripts>`
+
+ * Python-based scripts no longer use temporary files, which reduces file I/O and improves performance. This change also reduces the need for large amounts of free space in a user's ``/tmp`` folder, particularly relevant for users converting multi-GB BAM files.
+
+ * We now test for ability to locate ``starch``, ``sort-bed``, ``wig2bed_bin`` and ``samtools`` in user environment, quitting with the appropriate error state if the dependencies cannot be found.
+
+ * Improved documentation. In particular, we have added descriptive tables to each script's documentation page which describe how columns map from original data input to BED output.
+
+ * :ref:`bam2bed` and :ref:`sam2bed`
+
+ * Added ``--custom-tags <value>`` command-line option to support a comma-separated list of custom tags (cf. `Biostars discussion <http://www.biostars.org/p/87062/>`_), *i.e.*, tags which are not part of the original SAMtools specification.
+
+ * Added ``--keep-header`` option to preserve header and metadata as BED elements that use ``_header`` as the chromosome name. This now makes these conversion scripts fully "non-lossy".
+
+ * :ref:`vcf2bed`
+
+ * Added new ``--snvs``, ``--insertions`` and ``--deletions`` options that filter VCF variants into three separate subcategories.
+
+ * Added ``--keep-header`` option to preserve header and metadata as BED elements that use ``_header`` as the chromosome name. This now makes these conversion scripts fully "non-lossy".
+
+ * :ref:`gff2bed`
+
+ * Added ``--keep-header`` option to preserve header and metadata as BED elements that use ``_header`` as the chromosome name. This now makes these conversion scripts fully "non-lossy".
+
+ * :ref:`psl2bed`
+
+ * Added ``--keep-header`` option to preserve header and metadata as BED elements that use ``_header`` as the chromosome name. This now makes these conversion scripts fully "non-lossy".
+
+ * :ref:`wig2bed`
+
+ * Added ``--keep-header`` option to :ref:`wig2bed` binary and ``wig2bed``/``wig2starch`` wrapper scripts, to preserve header and metadata as BED elements that use ``_header`` as the chromosome name. This now makes these conversion scripts fully "non-lossy".
+
+* Added OS X uninstaller project to allow end user to more easily remove BEDOPS tools from this platform.
+
+* Cleaned up various compilation warnings found with ``clang``/``clang++`` and GCC kits.
+
+------
+v2.3.0
+------
+
+Released: **October 2, 2013**
+
+* Migration of BEDOPS code and documentation from Google Code to Github.
+
+ * Due to changes with Google Code hosting policies at the end of the year, we have decided to change our process for distributing code, packages and documentation. While most of the work is done, we appreciate feedback on any problems you may encounter. Please email us at `bedops at stamlab.org <mailto:bedops at stamlab.org>`_ with details.
+
+ * Migration to Github should facilitate requests for code by those who are familiar with ``git`` and want to fork our project to submit `pull requests <https://help.github.com/articles/using-pull-requests>`_.
+
+* :ref:`bedops`
+
+ * General ``--ec`` performance improvements.
+
+* :ref:`bedmap`
+
+ * Adds support for the new ``--skip-unmapped`` option, which filters out reference elements which do not have mapped elements associated with them. See the end of the :ref:`score operations <bedmap_score_operations>` section of the :ref:`bedmap` documentation for more detail.
+
+ * General ``--ec`` performance improvements.
+
+* :ref:`starch`
+
+ * Fixed bug with :ref:`starch` where zero-byte BED input (*i.e.*, an "empty set") created a truncated and unusable archive. We now put in a "dummy" chromosome for zero-byte input, which :ref:`unstarch` can now unpack.
+
+ This should simplify error handling with certain pipelines, specifically where set or other BEDOPS operations yield an "empty set" BED file that is subsequently compressed with :ref:`starch`.
+
+* :ref:`unstarch`
+
+ * Can now unpack zero-byte ("empty set") compressed :ref:`starch` archive (see above).
+
+ * Changed ``unstarch --list`` option to print to ``stdout`` stream (this was previously sent to ``stderr``).
+
+* :ref:`starch` metadata library
+
+ * Fixed array overflow bug with BEDOPS tools that take :ref:`starch <starch_specification>` archives as inputs, which affected use of archives as inputs to :ref:`closest-features`, :ref:`bedops` and :ref:`bedmap`.
+
+* All :ref:`conversion scripts <conversion_scripts>`
+
+ * Python scripts require v2.7+ or greater.
+
+ * Improved (more "Pythonic") error code handling.
+
+ * Disabled support for ``--max-mem`` sort parameter until :ref:`sort-bed` `issue <https://github.com/bedops/bedops/issues/1>`_ is resolved. Scripts will continue to sort, but they will be limited to available system memory. If you are processing files larger than system memory, please contact us at `bedops at stamlab.org <mailto:bedops at stamlab.org>`_ for details of a temporary workaround.
+
+* :ref:`gff2bed` conversion script
+
+ * Resolved ``IndexError`` exceptions by fixing header support, bringing script in line with `v1.21 GFF3 spec <http://www.sequenceontology.org/gff3.shtml>`_.
+
+* :ref:`bam2bed` and :ref:`sam2bed` conversion scripts
+
+ * Rewritten ``bam2*`` and ``sam2*`` scripts from ``bash`` into Python (v2.7+ support).
+
+ * Improved BAM and SAM input validation against the `v1.4 SAM spec <http://samtools.sourceforge.net/SAMv1.pdf>`_.
+
+ * New ``--split`` option prints reads with ``N`` CIGAR operations as separated BED elements.
+
+ * New ``--all-reads`` option prints all reads, mapped and unmapped.
+
+* :ref:`bedextract`
+
+ * Fixed ``stdin`` bug with :ref:`bedextract`.
+
+* New documentation via `readthedocs.org <readthedocs.org>`_.
+
+ * Documentation is now part of the BEDOPS distribution, instead of being a separate download.
+
+ * We use `readthedocs.org <readthedocs.org>`_ to host indexed and searchable HTML.
+
+ * `PDF and eBook <https://readthedocs.org/projects/bedops/downloads/>`_ documents are also available for download.
+
+ * Documentation is refreshed and simplified, with new installation and compilation guides.
+
+* OS X compilation improvements
+
+ * We have made changes to the OS X build process for half of the BEDOPS binaries, which allows direct compilation with Clang/LLVM (part of the Apple Xcode distribution). Those binaries now use Apple's system-level C++ library, instead of GNU's ``libstdc++``.
+
+ This change means that we require Mac OS X 10.7 ("Lion") or greater |---| we do not support 10.6 at this time.
+
+ Compilation is faster and simpler, and we can reduce the size and complexity of Mac OS X builds and installer packages. By using Apple's C++ library, we also reduce the likelihood of missing library errors. When this process is completed for the remaining binaries, it will no longer be necessary to install GCC 4.7+ (by way of MacPorts or other package managers) in order to build BEDOPS on OS X, nor will we have to bundle ``libstdc++`` with the installer.
+
+-------
+v2.2.0b
+-------
+
+* Fixed bug with OS X installer's post-installation scripts.
+
+------
+v2.2.0
+------
+
+Released: **May 22, 2013**
+
+* Updated packages
+
+ * Precompiled packages are now available for Linux (32- and 64-bit) and Mac OS X 10.6-10.8 (32- and 64-bit) hosts.
+
+* :ref:`Starch v2 test suite <starch_specification>`
+
+ * We have added a test suite for the Starch archive toolkit with the source download. Test inputs include randomized BED data generated from chromosome and bounds data stored on UCSC servers as well as static FIMO search results. Tests put :ref:`starch`, :ref:`unstarch` and :ref:`starchcat` through various usage scenarios. Please refer to the Starch-specific Makefiles and the test target and subfolder's `README` doc for more information.
+
+* :ref:`starchcat`
+
+ * Resolves bug with ``--gzip`` option, allowing updates of ``gzip`` -backed v1.2 and v1.5 archives to the :ref:`v2 Starch format <starch_specification>` (either ``bzip2`` - or ``gzip`` -backed).
+
+* :ref:`unstarch`
+
+ * Resolves bug with extraction of :ref:`Starch <starch>` archive made from BED files with four or more columns. A condition where the total length of additional columns exceeds a certain number of characters would result in extracted data in those columns being cut off. As an example, this could affect Starch archives made from the raw, uncut output of GTF- and GFF- :ref:`conversion scripts <conversion_scripts>`.
+
+* :ref:`conversion scripts <conversion_scripts>`
+
+ * We have partially reverted :ref:`wig2bed`, providing a Bash shell wrapper to the original C binary. This preserves consistency of command-line options across the conversion suite, while making use of the C binary to recover performance lost from the Python-based v2.1 revision of :ref:`wig2bed` (which at this time is no longer supported). (Thanks to Matt Maurano for reporting this issue.)
+
+------
+v2.1.1
+------
+
+Released: **May 3, 2013**
+
+* :ref:`bedmap`
+
+ * Major performance improvements made in v2.1.1, such that current :ref:`bedmap` now operates as fast or faster than the v1.2.5 version of :ref:`bedmap`!
+
+* :ref:`bedops`
+
+ * Resolves bug with ``--partition`` option.
+
+* :ref:`conversion scripts <conversion_scripts>`
+
+ * All v2.1.0 Python-based scripts now include fix for ``SIGPIPE`` handling, such that use of ``head`` or other common UNIX utilities to process buffered standard output no longer yields ``IOError`` exceptions. (Thanks to Matt Maurano for reporting this bug.)
+
+* 32-bit Linux binary support
+
+ * Pre-built Linux binaries are now available for end users with 32-bit workstations.
+
+Other issues fixed:
+
+* Jansson tarball no longer includes already-compiled libraries that could potentially interfere with 32-bit builds.
+
+* Minor changes to conversion script test suite to exit with useful error code on successful completion of test.
+
+------
+v2.1.0
+------
+
+Released: **April 22, 2013**
+
+* :ref:`bedops`
+
+ * New ``--partition`` operator efficiently generates disjoint segments made from genomic boundaries of all overlapping inputs.
+
+* :ref:`conversion scripts <conversion_scripts>`
+
+ * All scripts now use :ref:`sort-bed` behind the scenes to output sorted BED output, ready for use with BEDOPS utilities. It is no longer necessary to pipe data to or otherwise post-process converted data with :ref:`sort-bed`.
+
+ * New :ref:`psl2bed` conversion script, converting `PSL-formatted UCSC BLAT output <http://genome.ucsc.edu/FAQ/FAQformat.html#format2>`_ to BED.
+
+ * New :ref:`wig2bed` conversion script written in Python.
+
+ * New ``*2starch`` :ref:`conversion scripts <conversion_scripts>` offered for all ``*2bed`` scripts, which output Starch v2 archives.
+
+* :ref:`closest-features`
+
+ * Replaced ``--shortest`` option name with ``--closest``, for clarity. (Old scripts which use ``--shortest`` will continue to work with the deprecated option name for now. We advise editing pipelines, as needed.)
+
+* :ref:`starch`
+
+ * Improved error checking for interleaved records. This also makes use of ``*2starch`` conversion scripts with the ``--do-not-sort`` option safer.
+
+* Improved Mac OS X support
+
+ * New Mac OS X package installer makes installation of BEDOPS binaries and scripts very easy for OS X 10.6 - 10.8 hosts.
+
+ * Installer resolves fatal library errors seen by some end users of older OS X BEDOPS releases.
+
+-------
+v2.0.0b
+-------
+
+Released: **February 19, 2013**
+
+* Added :ref:`starchcluster` script variant which supports task distribution with `GNU Parallel <http://www.gnu.org/software/parallel/>`_.
+
+* Fixed minor problem with :ref:`bam2bed` and :ref:`sam2bed` conversion scripts.
+
+-------
+v2.0.0a
+-------
+
+Released: **February 7, 2013**
+
+* :ref:`bedmap`
+
+ * Takes in Starch-formatted archives as input, as well as raw BED (i.e., it is no longer required to extract a Starch archive to an intermediate, temporary file or named pipe before applying operations).
+
+ * New ``--chrom`` operator jumps to and operates on information for specified chromosome only.
+
+ * New ``--echo-map-id-uniq`` operator lists unique IDs from overlapping mapping elements.
+
+ * New ``--max-element`` and ``--min-element`` operators return the highest or lowest scoring overlapping map element.
+
+* :ref:`bedops`
+
+ * Takes in Starch-formatted archives as input, as well as raw BED.
+
+ * New ``--chrom`` operator jumps to and operates on information for specified chromosome only.
+
+* :ref:`closest-features`
+
+ * Takes in Starch-formatted archives as input, as well as raw BED.
+
+ * New ``--chrom`` operator jumps to and operates on information for specified chromosome only.
+
+* :ref:`sort-bed` and ``bbms``
+
+ * New ``--max-mem`` option to limit system memory on large BED inputs.
+
+ * Incorporated ``bbms`` functionality into :ref:`sort-bed` with use of ``--max-mem`` operator.
+
+* :ref:`starch`, :ref:`starchcat` and :ref:`unstarch`
+
+ * New metadata enhancements to Starch-format archival and extraction, including: ``--note``, ``--elements``, ``--bases``, ``--bases-uniq``, ``--list-chromosomes``, ``--archive-timestamp``, ``--archive-type`` and ``--archive-version`` (see ``--help`` to :ref:`starch`, :ref:`starchcat` and :ref:`unstarch` binaries, or view the documentation for these applications for more detail).
+
+ * Adds 20-35% performance boost to creating Starch archives with :ref:`starch` utility.
+
+ * New documentation with technical overview of the Starch format specification.
+
+* :ref:`conversion scripts <conversion_scripts>`
+
+ * New :ref:`gtf2bed` conversion script, converting GTF (v2.2) to BED.
+
+* Scripts are now part of main download; it is no longer necessary to download the BEDOPS companion separately.
+
+-------
+v1.2.5b
+-------
+
+Released: **January 14, 2013**
+
+* Adds support for Apple 32- and 64-bit Intel hardware running OS X 10.5 through 10.8.
+
+* Adds ``README`` for companion download.
+
+* Removes some obsolete code.
+
+------
+v1.2.5
+------
+
+Released: **October 13, 2012**
+
+* Fixed unusual bug with :ref:`unstarch`, where an extra (and incorrect) line of BED data can potentially be extracted from an archive.
+
+* Updated companion download with updated :ref:`bam2bed` and :ref:`sam2bed` conversion scripts to address 0-indexing error with previous revisions.
+
+------
+v1.2.3
+------
+
+Released: **August 17, 2012**
+
+* Added ``--indicator`` option to :ref:`bedmap`.
+
+* Assorted changes to conversion scripts and associated companion download.
+
+.. |--| unicode:: U+2013 .. en dash
+.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace
+ :trim:
diff --git a/docs/content/summary.rst b/docs/content/summary.rst
new file mode 100644
index 0000000..c26d5a2
--- /dev/null
+++ b/docs/content/summary.rst
@@ -0,0 +1,348 @@
+.. _summary:
+
+Summary
+=======
+
+These tables summarize BEDOPS utilities by option, file inputs and BED column requirements.
+
+=======================================
+Set operation and statistical utilities
+=======================================
+
+--------------
+``bedextract``
+--------------
+
+* Efficiently extracts features from BED input.
+* BEDOPS :ref:`bedextract` documentation.
+
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| option | description | min. file inputs | max. file inputs | min. BED columns |
++===============================+======================================================================+==================+==================+==================+
+| ``--list-chr`` | Print every chromosome found in ``input.bed`` | 1 | 1 | 3 |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``<chromosome>`` | Retrieve all rows for specified chromosome, *e.g.* ``bedextract chr8 | 1 | 1 | 3 |
+| | input.bed`` | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``<query> <reference>`` | Grab elements of ``query`` that overlap elements in reference. Same | 2 | 2 | 3 |
+| | as ``bedops -e -1 query reference``, except that this option fails | | | |
+| | when ``query`` contains fully-nested BED elements. May use ``-`` to | | | |
+| | indicate ``stdin`` for ``reference`` only. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+
+----------
+``bedmap``
+----------
+
+* Maps source signals from ``map-file`` onto qualified target regions from ``ref-file``. Calculates an output for every ``ref-file`` element.
+* BEDOPS :ref:`bedmap` documentation.
+
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| option | description | min. file inputs | max. file inputs | min. BED columns |
++===============================+======================================================================+==================+==================+==================+
+| ``--bases`` | Reports the total number of bases from ``map-file`` that overlap the | 1 | 2 | 3 |
+| | ``ref-file`` 's element. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--bases-uniq`` | Reports the number of distinct bases from ``ref-file`` 's element | 1 | 2 | 3 |
+| | overlapped by elements in ``map-file``. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--bases-uniq-f`` | Reports the fraction of distinct bases from ``ref-file`` 's element | 1 | 2 | 3 |
+| | elements in ``map-file``. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--bp-ovr <int>`` | Require ``<int>`` bases of overlap between elements of input files. | 1 | 2 | 3 |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--chrom <chromosome>`` | Process data for given ``<chromosome>`` only. | 1 | 2 | 3 |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--count`` | Reports the number of overlapping elements in ``map-file``. | 1 | 2 | 3 |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--cv`` | Reports the Coefficient of Variation: the result of ``--stdev`` | 1 | 2 | 5 |
+| | divided by the result of ``--mean``. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--ec`` | Error-check all input files (slower). | 1 | 2 | 3 |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--echo`` | Echo each line from ``ref-file``. | 1 | 2 | 3 |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--echo-map`` | Reports the overlapping elements found in ``map-file``. | 1 | 2 | 3 |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--echo-map-id`` | Reports the IDs (4th column) from overlapping ``map-file`` elements. | 1 | 2 | 4 |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--echo-map-id-uniq`` | List unique IDs from overlapping ``map-file`` elements. | 1 | 2 | 4 |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--echo-map-range`` | Reports the genomic range of overlapping elements from ``map-file``. | 1 | 2 | 3 |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--echo-map-score`` | Reports the scores (5th column) from overlapping ``map-file`` | 1 | 2 | 5 |
+| | elements. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--echo-map-size`` | Calculates difference between start and stop coordinates (or size) | 1 | 2 | 3 |
+| | of each mapped element. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--echo-overlap-size`` | Calculates size of overlap between each mapped element and its | 1 | 2 | 3 |
+| | reference element. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--echo-ref-name`` | Reports the first 3 fields of ``ref-file`` element in | 1 | 2 | 3 |
+| | chrom:start-end format. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--echo-ref-size`` | Reports the length of the ``ref-file`` element. | 1 | 2 | 3 |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--faster`` | **(Advanced)** Strong input assumptions are made. Review documents | 1 | 2 | 5 |
+| | before use. Compatible with ``--bp-ovr`` and ``--range`` overlap | | | |
+| | options only. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--fraction-ref <val>`` | The fraction of the element's size from ``ref-file`` that must | 1 | 2 | 5 |
+| | overlap the element in ``map-file``. Expects ``0 < val <= 1``. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--fraction-map <val>`` | The fraction of the element's size from ``map-file`` that must | 1 | 2 | 5 |
+| | overlap the element in ``ref-file``. Expects ``0 < val <= 1``. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--fraction-both <val>`` | Both ``--fraction-ref <val>`` and ``--fraction-map <val>`` must be | 1 | 2 | 5 |
+| | true to qualify as overlapping. Expects ``0 < val <= 1``. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--fraction-either <val>`` | Both ``--fraction-ref <val>`` and ``--fraction-map <val>`` must be | 1 | 2 | 5 |
+| | true to qualify as overlapping. Expects ``0 < val <= 1``. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--exact`` | Shorthand for ``--fraction-both 1``. First three fields from | 1 | 2 | 5 |
+| | ``map-file`` must be identical to ``ref-file`` element. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--indicator`` | Reports the presence of one or more overlapping elements in | 1 | 2 | 3 |
+| | ``map-file`` as a binary value (``0`` or ``1``). | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--kth <val>`` | Reports the value at the *k* th fraction. A generalized median-like | 1 | 2 | 5 |
+| | calculation, where ``--kth 0.5`` is the median. (``0 < val <= 1``) | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--mad <mult=1>`` | Reports the 'median absolute deviation' of overlapping elements in | 1 | 2 | 5 |
+| | ``map-file``, multiplied by ``<mult>``. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--max`` | Reports the highest score from overlapping elements in ``map-file``. | 1 | 2 | 5 |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--max-element`` | An element with the highest score from overlapping elements in | 1 | 2 | 5 |
+| | ``map-file``. If no overlapping element exists, ``NAN`` is reported. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--mean`` | Reports the average score from overlapping elements in ``map-file``. | 1 | 2 | 5 |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--median`` | Reports the median score from overlapping elements in ``map-file``. | 1 | 2 | 5 |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--min`` | Reports the lowest score from overlapping elements in ``map-file``. | 1 | 2 | 5 |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--min-element`` | An element with the lowest score from overlapping elements in | 1 | 2 | 5 |
+| | ``map-file``. If no overlapping element exists, ``NAN`` is reported. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--skip-unmapped`` | Omits printing reference elements which do not associate with any | 1 | 2 | 3 |
+| | mapped elements. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--stdev`` | Reports the square root of the result of ``--variance``. | 1 | 2 | 5 |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--sum`` | Reports the accumulated value from scores of overlapping elements in | 1 | 2 | 5 |
+| | ``map-file``. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--sweep-all`` | Reads through entire ``map-file`` dataset to avoid early termination | 1 | 2 | 3 |
+| | that may cause SIGPIPE or other I/O errors. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--tmean <low> <hi>`` | Reports the mean score from overlapping elements in ``map-file``, | 1 | 2 | 5 |
+| | after ignoring the bottom ``<low>`` and top ``<hi>`` fractions of | | | |
+| | those scores. (``0 <= low <= 1``, ``0 <= hi <= 1``, ``low + hi <= | | | |
+| | 1``). | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--variance`` | Reports the variance of scores from overlapping elements in | 1 | 2 | 5 |
+| | ``map-file``. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+
+----------
+``bedops``
+----------
+
+* Offers set and multiset operations for files in BED format.
+* BEDOPS :ref:`bedops` documentation.
+
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| option | description | min. file inputs | max. file inputs | min. BED columns |
++===============================+======================================================================+==================+==================+==================+
+| ``--chrom <chromosome>`` | Process data for given ``chromosome`` only. | 1 | No imposed limit | 3 |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--complement``, ``-c`` | Reports the intervening intervals between the input coordinate | 1 | No imposed limit | 3 |
+| | segments. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--chop``, ``-w`` | Breaks up merged regions into fixed-size chunks, optionally anchored | 1 | No imposed limit | 3 |
+| | on start coordinates a fixed distance apart. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--difference``, ``-d`` | Reports the intervals found in the first file that are not present | 2 | No imposed limit | 3 |
+| | in any other input file. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--ec`` | Error-check input files (slower). | 1 | No imposed limit | 3 |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--element-of``, ``-e`` | Reports rows from the first file that overlap, by a specified | 2 | No imposed limit | 3 |
+| | percentage or number of base pairs, the merged segments from all | | | |
+| | other input files. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--header`` | Accept headers (VCF, GFF, SAM, BED, WIG) in any input file. | 1 | No imposed limit | 3 |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--intersect``, ``-i`` | Reports the intervals common to all input files. | 2 | No imposed limit | 3 |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--merge``, ``-m`` | Reports intervals from all input files, after merging overlapping | 1 | No imposed limit | 3 |
+| | and adjoining segments. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--not-element-of``, ``-n`` | Reports exactly everything that ``--element-of`` does not, given the | 2 | No imposed limit | 3 |
+| | same overlap criterion. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--partition``, ``-p`` | Reports all disjoint intervals from all input files. Overlapping | 1 | No imposed limit | 3 |
+| | segments are cut up into pieces at all segment boundaries. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--range L:R`` | Add ``L`` bases to all start coordinates and ``R`` base to end | 1 | No imposed limit | 3 |
+| | coordinates. Either value may be positive or negative to grow or | | | |
+| | shrink regions, respectively. With the ``-e`` or ``-n`` operation, | | | |
+| | the first (reference) file is not padded, unlike all other files. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--range S`` | Pad input file(s) coordinates symmetrically by ``S`` bases. This is | 1 | No imposed limit | 3 |
+| | shorthand for ``--range -S:S``. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--symmdiff``, ``-s`` | Reports the intervals found in exactly one input file. | 2 | No imposed limit | 3 |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--everything``, ``-u`` | Reports the intervals from all input files in sorted order. | 1 | No imposed limit | 3 |
+| | Duplicates are retained in the output. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+
+--------------------
+``closest-features``
+--------------------
+
+* For every element in ``input-file``, find those elements in ``query-file`` nearest to its left and right edges.
+* BEDOPS :ref:`closest-features` documentation.
+
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| option | description | min. file inputs | max. file inputs | min. BED columns |
++===============================+======================================================================+==================+==================+==================+
+| (no option) | NA | 2 | 2 | 3 |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--chrom <chromosome>`` | Process data for given ``<chromosome>`` only. | 2 | 2 | 3 |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--dist`` | Output includes the signed distances between the ``input-file`` | 2 | 2 | 3 |
+| | element and the closest elements in ``query-file``. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--ec`` | Error-check all input files (slower). | 2 | 2 | 3 |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--no-overlaps`` | Do not consider elements that overlap. Overlapping elements, | 2 | 2 | 3 |
+| | otherwise, have highest precedence. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--no-ref`` | Do not echo elements from ``input-file``. | 2 | 2 | 3 |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--closest`` | Choose the nearest element from ``query-file`` only. Ties go to the | 2 | 2 | 3 |
+| | leftmost closest element. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+
+=======
+Sorting
+=======
+
+------------
+``sort-bed``
+------------
+
+* Sorts input BED file(s) into the order required by other utilities. Loads all input data into memory.
+* BEDOPS :ref:`sort-bed` documentation.
+
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| option | description | min. file inputs | max. file inputs | min. BED columns |
++===============================+======================================================================+==================+==================+==================+
+| (no option) | NA | 1 | 1000 | 3 |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--max-mem <val>`` | ``<val>`` specifies the maximum memory usage for the :ref:`sort-bed` | 1 | 1000 | 3 |
+| | process, which is useful for very large BED inputs. For example, | | | |
+| | ``--max-mem`` may be ``8G``, ``8000M``, or ``8000000000`` to specify | | | |
+| | 8 GB of memory. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+
+==========================
+Compression and extraction
+==========================
+
+----------
+``starch``
+----------
+
+* Lossless compression of any BED file.
+* BEDOPS :ref:`starch` documentation.
+
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| option | description | min. file inputs | max. file inputs | min. BED columns |
++===============================+======================================================================+==================+==================+==================+
+| (no option) | NA | 1 | 1 | 3 |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--bzip2`` or ``--gzip`` | The internal compression method. The default ``--bzip2`` method | 1 | 1 | 3 |
+| | favors storage efficiency, while ``--gzip`` favors compression and | | | |
+| | extraction time performance. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--note="foo bar..."`` | Append note to output archive metadata (optional). | 1 | 1 | 3 |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+
+------------
+``unstarch``
+------------
+
+* Extraction of a ``starch`` archive or attributes.
+* BEDOPS :ref:`unstarch` documentation.
+
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| option | description | min. file inputs | max. file inputs | min. BED columns |
++===============================+======================================================================+==================+==================+==================+
+| (no option) | NA | 1 | 1 | NA |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--archive-type`` | Show archive's compression type (either ``bzip2`` or ``gzip``). | 1 | 1 | NA |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--archive-version`` | Show archive version (at this time, either 1.x or 2.x). | 1 | 1 | NA |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--archive-timestamp`` | Show archive creation timestamp (ISO 8601 format). | 1 | 1 | NA |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--bases <chromosome>`` | Show total, non-unique base counts for optional ``<chromosome>`` | 1 | 1 | NA |
+| | (omitting ``<chromosome>`` shows total non-unique base count). | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--bases-uniq <chromosome>`` | Show unique base counts for optional ``<chromosome>`` (omitting | 1 | 1 | NA |
+| | ``<chromosome>`` shows total, unique base count). | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``<chromosome>`` | Decompress information for a single ``<chromosome>`` only. | 1 | 1 | NA |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--duplicatesExist`` or | Report if optional ``<chromosome>`` or chromosomes contain duplicate | 1 | 1 | NA |
+| ``--duplicatesExistAsString`` | elements as 0/1 numbers or false/true strings | | | |
+| with ``<chromosome>`` | | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--elements <chromosome>`` | Show element count for optional ``<chromosome>`` (omitting | 1 | 1 | NA |
+| | ``<chromosome>`` shows total element count). | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--is-starch`` | Test if the <starch-file> is a valid starch archive, returning 0/1 | 1 | 1 | NA |
+| | for a false/true result | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--list`` or ``--list-json`` | Print the metadata for a ``starch`` file, either in tabular form or | 1 | 1 | NA |
+| | with JSON formatting. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--list-chr`` or | List all chromosomes in ``starch`` archive (similar to | 1 | 1 | NA |
+| ``--list-chromosomes`` | ``bedextract --list-chr``). | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--nestedsExist`` or | Report if optional ``<chromosome>`` or chromosomes contain nested | 1 | 1 | NA |
+| ``--nestedsExistAsString`` | elements as 0/1 numbers or false/true strings | | | |
+| with ``<chromosome>`` | | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--note`` | Show descriptive note (if originally added to archive). | 1 | 1 | NA |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--sha1-signature`` | Show SHA1 signature of JSON-formatted metadata (Base64-encoded). | 1 | 1 | NA |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+
+-------------
+``starchcat``
+-------------
+
+* Merge multiple ``starch`` archive inputs into one ``starch`` archive output.
+* BEDOPS :ref:`starchcat` documentation.
+
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| option | description | min. file inputs | max. file inputs | min. BED columns |
++===============================+======================================================================+==================+==================+==================+
+| (no option) | NA | 1 | No imposed limit | NA |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--bzip2`` or ``--gzip`` | The internal compression method. The default ``--bzip2`` method | 1 | No imposed limit | NA |
+| | favors storage efficiency, while ``--gzip`` favors compression and | | | |
+| | extraction time performance. | | | |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+| ``--note="foo bar..."`` | Append note to output archive metadata (optional). | 1 | No imposed limit | NA |
++-------------------------------+----------------------------------------------------------------------+------------------+------------------+------------------+
+
+.. |--| unicode:: U+2013 .. en dash
+.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace
+ :trim:
diff --git a/docs/content/usage-examples.rst b/docs/content/usage-examples.rst
new file mode 100644
index 0000000..5031e17
--- /dev/null
+++ b/docs/content/usage-examples.rst
@@ -0,0 +1,14 @@
+Usage examples
+==============
+
+The following examples demonstrate the use of BEDOPS in analyzing genomic data. Here, we provide source code and snippets of data to demonstrate "real-world" examples based on daily usage of these tools in the `Stamatoyannopoulos <http://www.gs.washington.edu/faculty/stamj.htm>`_ lab.
+
+.. toctree::
+
+ usage-examples/snp-visualization
+ usage-examples/master-list
+ usage-examples/distance-frequencies
+ usage-examples/snps-within-dhses
+ usage-examples/smoothing-tags
+ usage-examples/starchcluster
+ usage-examples/multiple-inputs
diff --git a/docs/content/usage-examples/distance-frequencies.rst b/docs/content/usage-examples/distance-frequencies.rst
new file mode 100644
index 0000000..8d9de0f
--- /dev/null
+++ b/docs/content/usage-examples/distance-frequencies.rst
@@ -0,0 +1,57 @@
+.. _distance_frequencies:
+
+Measuring the frequency of signed distances between SNPs and nearest DHSes
+==========================================================================
+
+In this example, we would like to find the **signed** distance between a single nucleotide repeat and the DNase-hypersensitive site nearest to it, as measured in base pairs (bp).
+
+===================
+BEDOPS tools in use
+===================
+
+To find nearest elements, we will use :ref:`closest-features` with the ``--dist``, ``--closest``, and ``--no-ref`` options.
+
+======
+Script
+======
+
+SNPs are in a BED-formatted file called ``SNPs.bed`` sorted lexicographically with :ref:`sort-bed`. The DNase-hypersensitive sites are stored in a sorted BED-formatted file called ``DHSs.bed``. These two files are available in the :ref:`distance_frequencies_downloads` section.
+
+::
+
+ # author : Eric Rynes
+ closest-features --dist --closest --no-ref SNPs.bed DHSs.bed \
+ | cut -f2 -d '|' \
+ | grep -w -F -v -e "NA" \
+ > answer.bed
+
+==========
+Discussion
+==========
+
+The ``--dist`` option returns signed distances between input elements and reference elements, ``--closest`` chooses the single closest element, and ``--no-ref`` keeps SNP coordinates from being printed out.
+
+The output from :ref:`closest-features` contains coordinates and the signed distance to the closest DHS, separated by the pipe (``|``) character. Such output might look something like this:
+
+::
+
+ chr1 2513240 2513390 MCV-11 97.201400|25
+
+This type of result is chopped up with the standard UNIX utility ``cut`` to get at the distances to the closest elements. Finally, we use ``grep -v`` to throw out any non-distance, denoted by ``NA``. This can occur if there exists some chromosome in the SNP dataset that does not exist in the DHSs.
+
+Thus, for every SNP, we have a corresponding distance to nearest DHS. As an example, from this data we could build a histogram showing the frequencies of distances-to-nearest-DHS.
+
+.. _distance_frequencies_downloads:
+
+=========
+Downloads
+=========
+
+* :download:`SNP <../../assets/usage-examples/Frequencies-SNPs.bed.starch>` elements
+* :download:`DNase-hypersensitive <../../assets/usage-examples/Frequencies-DHSs.bed.starch>` elements
+
+The :ref:`closest-features` tool can operate directly on Starch-formatted archives. Alternatively, use the :ref:`unstarch` tool to decompress Starch data files to sorted BED format.
+
+.. |--| unicode:: U+2013 .. en dash
+.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace
+ :trim:
diff --git a/docs/content/usage-examples/master-list.rst b/docs/content/usage-examples/master-list.rst
new file mode 100644
index 0000000..2aef47d
--- /dev/null
+++ b/docs/content/usage-examples/master-list.rst
@@ -0,0 +1,110 @@
+.. _master_list:
+
+Collapsing multiple BED files into a master list by signal
+==========================================================
+
+Given a list of five-column UCSC BED files, where scores are kept in the fifth column, we want to build a "master list" of non-overlapping elements from all the inputs. Elements that initially overlap are ranked by score, and the highest scoring element is added to the master list.
+
+===================
+BEDOPS tools in use
+===================
+
+In the following example, we want to merge hotspot peaks for five fetal adrenal tissues, picking the highest scoring element where there are overlapping peaks. We'll use a mix of :ref:`bedmap` and its ``--max-element`` operation with :ref:`bedops` set operations to accomplish this.
+
+======
+Script
+======
+
+::
+
+ #!/bin/bash
+ # author : Bob Thurman
+
+ beds=(fAdrenal-DS12528.dhs.bed
+ fAdrenal-DS15123.dhs.bed
+ fAdrenal-DS17319.dhs.bed
+ fAdrenal-DS17677.dhs.bed
+ fAdrenal-DS20343.dhs.bed)
+
+ out=fAdrenal.master.merge.bed
+
+ tmpd=/tmp/tmp$$
+ mkdir -p $tmpd
+
+ ## First, union all the peaks together into a single file.
+ bedlist=""
+ for bed in ${beds[*]}
+ do
+ bedlist="$bedlist $bed"
+ done
+
+ bedops -u $bedlist > $tmpd/tmp.bed
+
+ ## The master list is constructed iteratively. For each pass through
+ ## the loop, elements not yet in the master list are merged into
+ ## non-overlapping intervals that span the union (this is just bedops
+ ## -m). Then for each merged interval, an original element of highest
+ ## score within the interval is selected to go in the master list.
+ ## Anything that overlaps the selected element is thrown out, and the
+ ## process then repeats.
+ iters=1
+ solns=""
+ stop=0
+ while [ $stop == 0 ]
+ do
+ echo "merge steps..."
+
+ ## Condense the union into merged intervals. This klugey bit
+ ## before and after the merging is because we don't want to merge
+ ## regions that are simply adjacent but not overlapping
+ bedops -m --range 0:-1 $tmpd/tmp.bed \
+ | bedops -u --range 0:1 - \
+ > $tmpd/tmpm.bed
+
+ ## Grab the element with the highest score among all elements forming each interval.
+ ## If multiple elements tie for the highest score, just grab one of them.
+ ## Result is the current master list. Probably don't need to sort, but do it anyway
+ ## to be safe since we're not using --echo with bedmap call.
+ bedmap --max-element $tmpd/tmpm.bed $tmpd/tmp.bed \
+ | sort-bed - \
+ > $tmpd/$iters.bed
+ solns="$solns $tmpd/$iters.bed"
+ echo "Adding `awk 'END { print NR }' $tmpd/$iters.bed` elements"
+
+ ## Are there any elements that don't overlap the current master
+ ## list? If so, add those in, and repeat. If not, we're done.
+ bedops -n 1 $tmpd/tmp.bed $tmpd/$iters.bed \
+ > $tmpd/tmp2.bed
+
+ mv $tmpd/tmp2.bed $tmpd/tmp.bed
+
+ if [ ! -s $tmpd/tmp.bed ]
+ then
+ stop=1
+ fi
+
+ ((iters++))
+ done
+
+ ## final solution
+ bedops -u $solns \
+ > $out
+
+ ## Clean up
+ rm -r $tmpd
+
+ exit 0
+
+==========
+Discussion
+==========
+
+A broad array of human cell tissue hotspot data for testing this example are available for public download from the UCSC Genome Browser:
+
+* `http://genome.ucsc.edu/cgi-bin/hgFileUi?db=hg19&g=wgEncodeUwDnase <http://genome.ucsc.edu/cgi-bin/hgFileUi?db=hg19&g=wgEncodeUwDnase>`_
+
+This includes hotspot data for ``DS12528``, ``DS15123``, ``DS17319``, ``DS17677`` and ``DS20343`` lines.
+
+.. |--| unicode:: U+2013 .. en dash
+.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace
+ :trim:
diff --git a/docs/content/usage-examples/multiple-inputs.rst b/docs/content/usage-examples/multiple-inputs.rst
new file mode 100644
index 0000000..92b1115
--- /dev/null
+++ b/docs/content/usage-examples/multiple-inputs.rst
@@ -0,0 +1,57 @@
+.. _multiple_inputs:
+
+Working with many input files at once with ``bedops`` and ``bedmap``
+====================================================================
+
+BEDOPS is designed to work with as many input files at once as you need, either through the :ref:`bedops` program, or through a combined use of that program with others in the suite.
+
+==========
+Discussion
+==========
+
+Say we have five input BED files (``A``, ``B``, ``C``, ``D``, ``E``), and we need to identify those regions where any two (or more) of the input files (``{A,B}``, ``{A,C}``, ``{A,D}``, ``{A,E}``, ``{B,C}``, ...) overlap reciprocally by 30% or more.
+
+One concrete application may be where we have multiple biological replicates, and we take any repeatable result (in two or more inputs, in this case) as true signal. Similarly, we might be interested in a problem like this if we have multiple related (or even unrelated) cell type samples and we want to be confident in peak calls for DNaseI sequencing of ChIP-seq experiments.
+
+These sorts of problems often have efficient solutions in BEDOPS. Here, the solution is independent of how many inputs we start with, what overlap criteria we use, and whether the requirement calls for two or more files of overlap (or whether it is 4 or more files in the overlap, or 9, or whatever).
+
+Consider a case study of one such problem that utilizes both :ref:`bedops` and :ref:`bedmap` together to create an efficient solution:
+
+::
+
+ $ bedops -u file1.bed file2.bed ... fileN.bed \
+ | bedmap --echo --echo-map-id-uniq --fraction-both 0.5 - \
+ | awk -F"|" '(split($2, a, ";") > 1)' \
+ > answer.bed
+
+Here, we pass in as many files as we have to :ref:`bedops`. The requirement of elements overlapping reciprocally is met by using ``--fraction-both``, and the requirement that overlapping elements must come from two or more (distinct) files is satisfied by checking how many elements there are via the ``--echo-map-id-uniq`` operator.
+
+The requirements for ``file1.bed`` through ``fileN.bed`` are that each is properly :ref:`sorted <sort-bed>` (as expected for any BEDOPS input) and that their respective fourth-column ID fields identify the file. For example:
+
+::
+
+ $ head -2 file1.bed
+ chr1 1 50 1 anything-else
+ chr1 230 400 1 whatever-you-like
+
+ $ head -2 file2.bed
+ chr1 23 78 2 other-fields
+ chr1 56 98 2 5.678 + peak-2
+
+As a nice side-effect, ``answer.bed`` will show from which file each entry originated. If we don't want that extra information, we simply cut it out:
+
+::
+
+ cut -f1-3,5- answer.bed >! my-final-answer.bed
+
+There is also a column that shows exactly which files are part of the per-row intersection. If we don't want that information, then we just cut that:
+
+::
+
+ cut -f1 -d'|' my-final-answer.bed
+
+While this is just one example of how the tools can be used together to answer complicated questions efficiently, it demonstrates why it is worthwhile to learn about the relatively few core programs in BEDOPS.
+
+If we look at what is required to answer this kind of question using other tool suites, we will quickly find that solutions do not scale to the number of files, nor with the requirement that overlaps must come from *k* or more distinct input files. Even in the simplest case of just requiring the regions overlap in 2 of *n* inputs, we must build on the order of *n*:sup:`2`/2 intermediate files (and sweep through the *n* original inputs *n*:sup:`2` times as well). If our requirement is 3 o [...]
+
+*The solution with BEDOPS is far more efficient than this and requires no intermediate results.*
diff --git a/docs/content/usage-examples/smoothing-tags.rst b/docs/content/usage-examples/smoothing-tags.rst
new file mode 100644
index 0000000..d67cdda
--- /dev/null
+++ b/docs/content/usage-examples/smoothing-tags.rst
@@ -0,0 +1,75 @@
+.. _smoothing_raw_tags:
+
+Smoothing raw tag count data across the genome
+==============================================
+
+In this example, we generate smoothed density signal by binning the genome into 20 bp intervals and counting the number of non-paired-end tag reads falling within 75 bp of each interval. A simple follow-on script marks up results to wig or bigWig format for loading into a track of a local UCSC Genome Browser.
+
+===================
+BEDOPS tools in use
+===================
+
+For this script, we use :ref:`bam2bed` to convert a BAM file to BED, then we use :ref:`bedmap` to run a sliding density window over input genomic regions. Finally :ref:`starch` compresses the results.
+
+======
+Script
+======
+
+::
+
+ #!/bin/tcsh -ef
+ # author : Richard Sandstrom
+
+ if ( $#argv != 5 ) then
+ printf "Wrong number of arguments\n"
+ printf "<bam-file> <out-file> <window-size> <step-size> <chromosome-file>\n"
+ printf " where <chromosome-file> contains whole chromosome BED items for the\n"
+ printf " genome, e.g., sort-bed formatted output from the UCSC hg19.chromInfo table.\n"
+ exit -1
+ endif
+
+ # BAM file
+ set inBam = $argv[1]
+ # resulting density file
+ set outDensity = $argv[2]
+ # +/- window for counting read 5' ends
+ set window = $argv[3]
+ # step size across genome
+ set binI = $argv[4]
+ # chromosome file for organism of interest
+ set chromsfile = $argv[5]
+
+ set outDir = $outDensity:h
+ mkdir -p $outDir
+
+ set tmpDir = /tmp/`whoami`/scratch/$$
+ if ( -d $tmpDir ) then
+ rm -rf $tmdDir
+ endif
+ mkdir -p $tmpDir
+
+ # clip tags to single 5' end base
+ bam2bed < $inBam \
+ | awk '{if($6=="+"){s=$2; e=$2+1}else{s=$3-1; e=$3}print $1"\t"s"\t"e}' \
+ | sort-bed --max-mem 2G - \
+ >! $tmpDir/tags.bed
+
+ # create genome-wide bins and count how many tags fall within range of each
+ awk -v binI=$binI -v win=$window \
+ '{ \
+ i = 0; \
+ for(i = $2; i <= $3-binI; i += binI) { print $1"\t"i"\t"i + binI } \
+ # end of chrome may include a bin of size < binI \
+ if ( i < $3 ) { print $1"\t"i"\t"$3; } \
+ }' $chromsfile \
+ | bedmap --faster --range $window --echo --count --delim "\t" - $tmpDir/tags.bed \
+ | starch - \
+ >! $outDensity
+
+ rm -rf $tmpDir
+
+ exit 0
+
+.. |--| unicode:: U+2013 .. en dash
+.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace
+ :trim:
diff --git a/docs/content/usage-examples/snp-visualization.rst b/docs/content/usage-examples/snp-visualization.rst
new file mode 100644
index 0000000..1652614
--- /dev/null
+++ b/docs/content/usage-examples/snp-visualization.rst
@@ -0,0 +1,107 @@
+Visualizing the relationship of SNPs and generic genomic features
+=================================================================
+
+We want to visualize how genome-wide association study single nucleotide repeats (GWAS SNPs) relate to other genomic features |---| in this case, these features are DNaseI-hypersensitive sites (DHSs). We could, instead, look at methylated regions, CpG islands, coding sequence or other genomic features. Normally, we might do this for all sites in the genome, but to reduce the file sizes we only look at a subset of data here and we have taken a subset of the real data for the purposes of d [...]
+
+Roughly speaking, we considered two classes of SNPs: those which are prostate-related (associated with PSA and prostate cancer) and some not (height). We have some BED files with positions of DNaseI-hypersensitive sites for various tissues: two from prostate (LNCaP and PrEC), the rest from other tissues (CACO2, HEPG2, K562, MCF7).
+
+We will use BEDOPS tools to generate per-tissue DHS counts associated with our SNPs, using `matrix2png`_ to visualize results as a heatmap.
+
+===================
+BEDOPS tools in use
+===================
+
+For this example, we use :ref:`sort-bed` to sort the input SNP data, and :ref:`bedmap` to count the number of single-base or greater overlaps between a SNP and a tissue-specific DHS. A modified version of this script uses loops and other shell features.
+
+======
+Script
+======
+
+::
+
+ #!/bin/tcsh -efx
+
+ sort-bed GWAS_SNPs.bed > GWAS_SNPs.sorted.bed
+ bedmap --ec --delim "\t" --bp-ovr 1 --echo --count GWAS_SNPs.sorted.bed LNCaP_DHS.bed > SNP_DHS_matrix.bed
+
+ # add PrEC DHS overlap counts to matrix
+ bedmap --ec --delim "\t" --bp-ovr 1 --count GWAS_SNPs.sorted.bed PrEC_DHS.bed > counts.txt
+ paste SNP_DHS_matrix.bed counts.txt > new_SNP_DHS_matrix.bed
+ mv new_SNP_DHS_matrix.bed SNP_DHS_matrix.bed
+
+ # add CACO2 DHS overlap counts to matrix
+ bedmap --ec --delim "\t" --bp-ovr 1 --count GWAS_SNPs.sorted.bed CACO2_DHS.bed > counts.txt
+ paste SNP_DHS_matrix.bed counts.txt > new_SNP_DHS_matrix.bed
+ mv new_SNP_DHS_matrix.bed SNP_DHS_matrix.bed
+
+ # add HEPG2 DHS overlap counts to matrix
+ bedmap --ec --delim "\t" --bp-ovr 1 --count GWAS_SNPs.sorted.bed HEPG2_DHS.bed > counts.txt
+ paste SNP_DHS_matrix.bed counts.txt > new_SNP_DHS_matrix.bed
+ mv new_SNP_DHS_matrix.bed SNP_DHS_matrix.bed
+
+ # add K562 DHS overlap counts to matrix
+ bedmap --ec --delim "\t" --bp-ovr 1 --count GWAS_SNPs.sorted.bed K562_DHS.bed > counts.txt
+ paste SNP_DHS_matrix.bed counts.txt > new_SNP_DHS_matrix.bed
+ mv new_SNP_DHS_matrix.bed SNP_DHS_matrix.bed
+
+ # add MCF7 DHS overlap counts to matrix
+ bedmap --ec --delim "\t" --bp-ovr 1 --count GWAS_SNPs.sorted.bed MCF7_DHS.bed > counts.txt
+ paste SNP_DHS_matrix.bed counts.txt > new_SNP_DHS_matrix.bed
+ mv new_SNP_DHS_matrix.bed SNP_DHS_matrix.bed
+
+ # cleanup and sort by disease trait
+ rm counts.txt
+ sort -k5d SNP_DHS_matrix.bed > new_SNP_DHS_matrix.bed
+ mv new_SNP_DHS_matrix.bed SNP_DHS_matrix.bed
+
+ # condense data fields into matrix2png form
+ awk '{print $1":"$2"-"$3"_"$4"_"$5"_"$6"\t"$7"\t"$8"\t"$9"\t"$10"\t"$11"\t"$12}' SNP_DHS_matrix.bed > new_SNP_DHS_matrix.txt
+ mv new_SNP_DHS_matrix.txt SNP_DHS_matrix.txt
+
+ # add header
+ echo -e "0\tLNCaP\tPrEC\tCACO\tHEPG2\tK562\tMCF7" | cat - SNP_DHS_matrix.txt > new_SNP_DHS_matrix.txt
+ mv new_SNP_DHS_matrix.txt SNP_DHS_matrix.txt
+
+ # make heatmap
+ matrix2png -r -c -g -size 16:16 -mincolor yellow -midcolor black -maxcolor red -data SNP_DHS_matrix.txt > SNP_DHS_matrix.png
+
+==========
+Discussion
+==========
+
+Each use of :ref:`bedmap` is identical: the options ``--ec --delim "\t" --bp-ovr 1 --count`` add several settings:
+
+* Error checking/correction (``--ec``)
+* Use of the tab character as a custom field delimiter (``--delim "\t"``) to make results easier to parse with ``awk`` further downstream
+* Manual specification of a single base-pair criteria for overlap (``--bp-ovr 1``, although this is the default)
+* Using ``--count``, counting the number of mapping elements (DHSs) which overlap a reference instance (a given SNP)
+
+These results are calculated for each of the seven cell types and collated into matrix form to run through `matrix2png`_. We show it here to give an idea of what kind of data :ref:`bedmap` generates, to help create these quantitative visualizations:
+
+.. image:: ../../assets/usage-examples/SNP_DHS_matrix.png
+ :width: 99%
+
+Rows are presented in :ref:`sort-bed` order. Cells in red show greatest relative number of counts, while yellow shows the least. Examining this heatmap, DHS elements appear to associate with prostate disease-related GWAS SNPs.
+
+To make this clearer, here is the same result, with rows sorted by disease name:
+
+.. image:: ../../assets/usage-examples/SNP_DHS_matrix_diseaseSorted.png
+ :width: 99%
+
+While there are some DHSs associated with non-disease SNPs, the majority accumulate with the prostate SNPs.
+
+=========
+Downloads
+=========
+
+* The :download:`example <../../assets/usage-examples/SNP_DHS_heatmap.tcsh>` script, after modification to use loops and other shell features.
+* :download:`Data <../../assets/usage-examples/SNP_DHS_data.tgz>` for this example are contained in a tarball (use ``tar -xzf`` to extract files).
+
+The :ref:`bedmap` tool can operate directly on Starch-formatted archives. Alternatively, use the :ref:`unstarch` tool to decompress Starch data files to sorted BED format.
+
+Note that these are not the full datasets that went into the original research, but snippets that should otherwise demonstrate the disease-DHS association phenomenon and the use of parts of the BEDOPS toolset.
+
+.. _matrix2png: http://www.chibi.ubc.ca/matrix2png/
+.. |--| unicode:: U+2013 .. en dash
+.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace
+ :trim:
diff --git a/docs/content/usage-examples/snps-within-dhses.rst b/docs/content/usage-examples/snps-within-dhses.rst
new file mode 100644
index 0000000..ae741ac
--- /dev/null
+++ b/docs/content/usage-examples/snps-within-dhses.rst
@@ -0,0 +1,52 @@
+.. _finding_elements_within_elements:
+
+Finding the subset of SNPs within DHSes
+=======================================
+
+In this example, we would like to identify the set of SNPs that are within a DHS, printing out both the SNP element *and* the DHS it is contained within.
+
+===================
+BEDOPS tools in use
+===================
+
+We use :ref:`bedmap` to answer this question, as it traverses a *reference* BED file (in this example, SNPs), and identifies overlapping elements from the *mapping* BED file (in this example, DHSs).
+
+======
+Script
+======
+
+SNPs are in a BED-formatted file called ``SNPs.bed`` sorted lexicographically with :ref:`sort-bed`. The DNase-hypersensitive sites are stored in a sorted BED-formatted file called ``DHSs.bed``. These two files are available in the :ref:`snps_within_dhses_downloads` section.
+
+::
+
+ bedmap --skip-unmapped --echo --echo-map SNPs.bed DHSs.bed \
+ > subsetOfSNPsWithinAssociatedDHS.bed
+
+==========
+Discussion
+==========
+
+The output of this :ref:`bedmap` statement might look something like this:
+
+::
+
+ chr1 10799576 10799577 rs12046278 Systolic_blood_pressure Cardiovascular|chr1 10799460 10799610 MCV-1 9.18063
+
+The output is delimited by pipe symbols (``|``), showing the reference element (SNP) and the mapped element (DHS).
+
+If multiple elements are mapped onto a single reference element, the mapped elements are further separated by semicolons, by default.
+
+.. _snps_within_dhses_downloads:
+
+=========
+Downloads
+=========
+
+* :download:`SNP <../../assets/usage-examples/Frequencies-SNPs.bed.starch>` elements
+* :download:`DNase-hypersensitive <../../assets/usage-examples/Frequencies-DHSs.bed.starch>` elements
+
+The :ref:`bedmap` tool can operate directly on Starch-formatted archives. Alternatively, use the :ref:`unstarch` tool to decompress Starch data files to sorted BED format.
+
+.. |--| unicode:: U+2013 .. en dash
+.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace
+ :trim:
diff --git a/docs/content/usage-examples/starchcluster.rst b/docs/content/usage-examples/starchcluster.rst
new file mode 100644
index 0000000..4061b05
--- /dev/null
+++ b/docs/content/usage-examples/starchcluster.rst
@@ -0,0 +1,70 @@
+.. _starchcluster:
+
+Efficiently creating Starch-formatted archives with a cluster
+=============================================================
+
+In this example, we demonstrate how to use :ref:`bedextract` and :ref:`starchcat` to efficiently generate Starch-formatted archives from BED datasets.
+
+===================
+BEDOPS tools in use
+===================
+
+For this script, we use :ref:`bedextract` to quickly build a list of chromosomes in an input BED dataset and extract records for each chromosome to separate files. We then use :ref:`starch` to compress each per-chromosome file and :ref:`starchcat` to concatenate per-chromosome Starch archives into one file.
+
+======
+Script
+======
+
+Two versions of the ``starchcluster`` script are included with the source and package distributions of BEDOPS (see :ref:`Installation <installation>` for more detail).
+
+One version makes use of an `Oracle Grid Engine <http://en.wikipedia.org/wiki/Oracle_Grid_Engine>`_ (or Sun Grid Engine) cluster environment to distribute per-chromosome tasks, while the other script uses `GNU Parallel <http://www.gnu.org/software/parallel/>`_ to split the workload over cores or processors on the local host.
+
+==========
+Discussion
+==========
+
+The overview that follows applies to the Grid Engine-based version of the `starchcluster` script. However, the general algorithm is identical for both the Grid Engine- and GNU Parallel-based compression scripts.
+
+-------------------
+Splitting BED files
+-------------------
+
+Whole-genome analyses are often "`embarassingly parallel <http://en.wikipedia.org/wiki/Embarrassingly_parallel>`_", in that per-chromosome computations can be placed onto separate work nodes of a computational cluster, with results collated at the end in "`map-reduce <http://en.wikipedia.org/wiki/MapReduce>`_" fashion.
+
+If we want to filter any BED file to retrieve elements from a specific chromosome (say, to compress a BED file, one chromosome at a time), to arrange this kind of analysis, one trivial |---| but very slow |---| way to do this involves sequentially walking line by line through the file to parse and test each element. This can take a while to do.
+
+However, just as BEDOPS tools use the information in :ref:`sorted data <sort-bed>` to apply efficient set and statistical operations, we can use this same information to jump quickly through our data of interest.
+
+Specifically, sorting allows us to perform a `binary search <http://en.wikipedia.org/wiki/Binary_search_algorithm>`_:
+
+1. We jump to the middle byte of the BED file, stream to the nearest element, then parse and test the chromosome name.
+2. Either we have a match, or we jump to the middle of the remaining left or right half (decided by dictionary order), parse and test again.
+3. We repeat steps 1 and 2 until we have matches that define the bounds of the target chromosome.
+
+.. image:: ../../assets/reference/set-operations/reference_bedextract_mechanism.png
+ :width: 99%
+
+To indicate the kind of speed gain that the :ref:`bedextract` tool provides, in local testing, a naïve listing of chromosomes from a 36 GB BED input using UNIX ``cut`` and ``uniq`` utilities took approximately 20 minutes to complete on a typical Core 2 Duo-based Linux workstation. Retrieval of the same chromosome listing with ``bedextract --list-chr`` took only 2 seconds (cache flushed |---| no cheating!).
+
+-----------------------
+Compressing BED subsets
+-----------------------
+
+Now we can very quickly demarcate where chromosomes start and stop in a BED file, we can apply :ref:`starch` on those subsets on separate cluster nodes.
+
+----------------------------------
+Stitching together compressed sets
+----------------------------------
+
+Once we have per-chromosome Starch-formatted archives, we need some way to put them all together into one archive. This is where :ref:`starchcat` comes in, taking all the per-chromosome archives as inputs and creating a new archive as output.
+
+The big picture view is like this:
+
+.. image:: ../../assets/reference/file-management/compression/starchcluster_mechanism.png
+ :width: 99%
+
+As the figure notes, the compression time for a very large BED file is reduced roughly to the time taken to compress the largest chromosome in the original file. Parallelization of this process is an order of magnitude faster than compressing chromosomes in serial.
+
+.. |--| unicode:: U+2013 .. en dash
+.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace
+ :trim:
diff --git a/docs/index.rst b/docs/index.rst
new file mode 100644
index 0000000..c98ada1
--- /dev/null
+++ b/docs/index.rst
@@ -0,0 +1,289 @@
+===================================================================================
+BEDOPS: the fast, highly scalable and easily-parallelizable genome analysis toolkit
+===================================================================================
+
+**BEDOPS** is an open-source command-line toolkit that performs highly efficient and scalable Boolean and other set operations, statistical calculations, archiving, conversion and other management of genomic data of arbitrary scale. Tasks can be easily split by chromosome for distributing whole-genome analyses across a computational cluster.
+
+You can read more about **BEDOPS** and how it can be useful for your research in the :ref:`Overview <overview>` documentation, as well as in the `original manuscript <http://bioinformatics.oxfordjournals.org/content/28/14/1919.abstract>`_.
+
+|downloads|
+
+|reference|
+
+========
+Citation
+========
+
+If you use **BEDOPS** in your research, please cite the following manuscript:
+
+ Shane Neph, M. Scott Kuehn, Alex P. Reynolds, et al. **BEDOPS: high-performance genomic feature operations**. *Bioinformatics* (2012) 28 (14): 1919-1920. `doi: 10.1093/bioinformatics/bts277 <http://bioinformatics.oxfordjournals.org/content/28/14/1919.abstract>`_
+
+========
+Contents
+========
+
+.. toctree::
+ :numbered:
+
+ content/overview
+ content/installation
+ content/revision-history
+ content/usage-examples
+ content/performance
+ content/reference
+ content/summary
+ content/release
+
+.. |header| raw:: html
+
+ <h1>BEDOPS: the fast, highly scalable and easily-parallelizable genome analysis toolkit</h1>
+
+.. |about_html| raw:: html
+
+ <br><strong>BEDOPS</strong> is an open-source command-line toolkit that performs highly efficient and scalable Boolean and other set operations, statistical calculations, archiving, conversion and other management of genomic data of arbitrary scale. Tasks can be easily split by chromosome for distributing whole-genome analyses across a computational cluster.
+
+ <p>You can read more about <strong>BEDOPS</strong> and how it can be useful for your research in the <a href="content/overview.html">Overview</a> documentation, as well as in the <a href="http://bioinformatics.oxfordjournals.org/content/28/14/1919.abstract">original manuscript</a>.</p><br>
+
+.. |quick_start| image:: assets/index/quick_start.png
+
+.. |quick_start_html| raw:: html
+
+ <br><img src="_images/quick_start.png" style="height:150px;">
+
+.. |downloads| raw:: html
+
+ <img src="_images/downloads_v3.png" style="height:36px; margin:0; width: auto !important;">
+ <div class="index_cols">
+ <div class="col_element">
+ <img src="_images/linux_v2.png" style="height:26px; width: auto !important; margin-bottom:10px;">
+ <ul style="list-style-type:square; font-size:smaller; margin-left:0; margin-right:0px; padding-right:0px; padding-left:20px;">
+ <li><a href="https://github.com/bedops/bedops/releases/download/v2.4.20/bedops_linux_x86_64-v2.4.20.tar.bz2">x86-64 (64-bit)</a> binaries</li>
+ <li><a href="https://github.com/bedops/bedops/releases/download/v2.4.20/bedops_linux_i386-v2.4.20.tar.bz2">i386 (32-bit)</a> binaries</li>
+ <li><a href="content/installation.html#linux">Installation instructions</a> for Linux hosts</li>
+ </ul>
+ </div>
+ <div class="col_element">
+ <img src="_images/macosx_v2.png" style="height:26px; width: auto !important; margin-bottom:10px;">
+ <ul style="list-style-type:square; font-size:smaller; margin-left:0; margin-right:0px; padding-right:0px; padding-left:20px;">
+ <li><a href="https://github.com/bedops/bedops/releases/download/v2.4.20/BEDOPS.2.4.20.pkg.zip">Intel (32-/64-bit, 10.7-10.11)</a> installer package</li>
+ <li><a href="content/installation.html#mac-os-x">Installation instructions</a> for Mac OS X hosts</li>
+ </ul>
+ </div>
+ <div class="col_element">
+ <img src="_images/source_v2.png" style="height:26px; width: auto !important; margin-bottom:10px;">
+ <ul style="list-style-type:square; font-size:smaller; margin-left:0; margin-right:0px; padding-right:0px; padding-left:20px;">
+ <li><a href="https://github.com/bedops/bedops/archive/v2.4.20.tar.gz">Source code</a> (tar.gz)</li>
+ <li><a href="https://github.com/bedops/bedops/archive/v2.4.20.zip">Source code</a> (zip)</li>
+ <li><a href="content/installation.html#installation-via-source-code">Compilation instructions</a></li>
+ </ul>
+ </div>
+ </div>
+
+.. |downloads_png| image:: assets/index/downloads_v3.png
+ :height: 30px
+
+.. |downloads_html| raw:: html
+
+ <img src="_images/downloads_v3.png" style="height:36px;">
+
+.. |linux_png| image:: assets/index/linux_v2.png
+ :height: 26px
+
+.. |linux_html| raw:: html
+
+ <img src="_images/linux_v2.png" style="height:26px;">
+
+.. |linux_downloads| raw:: html
+
+ <ul style="list-style-type:square; font-size:smaller; margin:10px; padding:0;">
+ <li><a href="https://github.com/bedops/bedops/releases/download/v2.4.20/bedops_linux_x86_64-v2.4.20.tar.bz2">x86-64 (64-bit)</a> binaries</li>
+ <li><a href="https://github.com/bedops/bedops/releases/download/v2.4.20/bedops_linux_i386-v2.4.20.tar.bz2">i386 (32-bit)</a> binaries</li>
+ <li><a href="content/installation.html#linux">Installation instructions</a> for Linux hosts</li>
+ </ul>
+
+.. |macosx_png| image:: assets/index/macosx_v2.png
+ :height: 26px
+
+.. |macosx_html| raw:: html
+
+ <img src="_images/macosx_v2.png" style="height:26px;">
+
+.. |macosx_downloads| raw:: html
+
+ <ul style="list-style-type:square; font-size:smaller; margin:10px; padding:0;">
+ <li><a href="https://github.com/bedops/bedops/releases/download/v2.4.20/BEDOPS.2.4.20.pkg.zip">Intel (32-/64-bit, 10.7-10.10)</a> installer package</li>
+ <li><a href="content/installation.html#mac-os-x">Installation instructions</a> for Mac OS X hosts</li>
+ </ul>
+
+.. |source_png| image:: assets/index/source_v2.png
+ :height: 26px
+
+.. |source_html| raw:: html
+
+ <img src="_images/source_v2.png" style="height:26px;">
+
+.. |source_downloads| raw:: html
+
+ <ul style="list-style-type:square; font-size:smaller; margin:10px; padding:0;">
+ <li><a href="https://github.com/bedops/bedops/archive/v2.4.20.tar.gz">Source code</a> (tar.gz)</li>
+ <li><a href="https://github.com/bedops/bedops/archive/v2.4.20.zip">Source code</a> (zip)</li>
+ <li><a href="content/installation.html#installation-via-source-code">Compilation instructions</a></li>
+ </ul>
+
+.. |reference| raw:: html
+
+ <img src="_images/reference_v2.png" style="height:36px; margin:0; width:auto !important;">
+ <div class="index_cols">
+ <div class="col_element">
+ <img src="_images/set_operations_v2.png" style="height:130px; margin:0; width:auto !important; margin-bottom:12px;">
+ <ul style="list-style-type:square; font-size:smaller; margin-left:0; margin-right:2px; padding-right:0px; padding-left:20px;">
+ <li><a href="content/reference/set-operations/bedops.html"><tt>bedops</tt></a> - apply set operations on any number of BED inputs</li>
+ <li><a href="content/reference/set-operations/bedextract.html"><tt>bedextract</tt></a> - efficiently extract BED features</li>
+ <li><a href="content/reference/set-operations/closest-features.html"><tt>closest-features</tt></a> - matches nearest features between BED files</li>
+ </ul>
+ </div>
+ <div class="col_element">
+ <img src="_images/statistics_v2.png" style="height:130px; margin:0; width:auto !important; margin-bottom:12px;">
+ <ul style="list-style-type:square; font-size:smaller; margin-left:0; margin-right:2px; padding-right:0px; padding-left:20px;">
+ <li><a href="content/reference/statistics/bedmap.html"><tt>bedmap</tt></a> - map overlapping BED elements onto target regions and optionally compute any number of common statistical operations</li>
+ </ul>
+ </div>
+ <div class="col_element">
+ <img src="_images/file_management_v2.png" style="height:130px; margin:0; width:auto !important; margin-bottom:12px;">
+ <ul style="list-style-type:square; font-size:smaller; margin-left:0; margin-right:2px; padding-right:0px; padding-left:20px;">
+ <li><a href="content/reference/file-management/sorting/sort-bed.html"><tt>sort-bed</tt></a> - apply lexicographical sort to BED data</li>
+ <li><a href="content/reference/file-management/compression/starch.html"><tt>starch</tt></a> and <a href="content/reference/file-management/compression/unstarch.html"><tt>unstarch</tt></a> - compress and extract BED data</li>
+ <li><a href="content/reference/file-management/compression/starchcat.html"><tt>starchcat</tt></a> - merge compressed archives</li>
+ <li><a href="content/reference/file-management/conversion.html">Conversion tools</a> - convert common genomic formats to BED</li>
+ </ul>
+ </div>
+ </div>
+ <div class="index_cols">
+ <div class="col_element">
+ <img src="_images/performance_v2.png" style="height:130px; margin:0; width:auto !important; margin-bottom:12px;">
+ <ul style="list-style-type:square; font-size:smaller; margin:0; margin-right:2px; padding-right:0px; padding-left:20px;">
+ <li>Parallel <a href="content/reference/file-management/conversion/parallel_bam2bed.html"><tt>bam2bed</tt></a> and <a href="content/reference/file-management/conversion/parallel_bam2starch.html"><tt>bam2starch</tt></a> - parallelized conversion and compression of BAM data</li>
+ <li><a href="content/performance.html#set-operations-with-bedops">Set operations with <tt>bedops</tt></li>
+ <li><a href="content/performance.html#compression-characteristics-of-starch">Compression characteristics of <tt>starch</tt></li>
+ <li><a href="content/performance.html#independent-testing">Independent testing</a></li>
+ </ul>
+ </div>
+ <div class="col_element">
+ <img src="_images/toc_v2.png" style="height:130px; margin:0; width:auto !important; margin-bottom:12px;">
+ <ul style="list-style-type:square; font-size:smaller; margin:0; margin-right:2px; padding-right:0px; padding-left:20px;">
+ <li><a href="content/summary.html">Table summary</a> of <strong>BEDOPS</strong> toolkit</li>
+ <li><a href="content/reference/file-management/compression/starch-specification.html">Starch v2.1</a> format specification</li>
+ <li><a href="content/reference/set-operations/nested-elements.html">About nested elements</a>
+ <li><a href="content/revision-history.html">Revision history</a></li>
+ <li><a href="content/release.html">Github release instructions</a></li>
+ <li><a href="https://github.com/bedops/bedops">Github repository</a></li>
+ </ul>
+ </div>
+ <div class="col_element">
+ <img src="_images/support_v2.png" style="height:130px; margin:0; width:auto !important; margin-bottom:12px;">
+ <ul style="list-style-type:square; font-size:smaller; margin:0; margin-right:2px; padding-right:0px; padding-left:20px;">
+ <li><a href="content/installation.html">How to install <strong>BEDOPS</strong></a></li>
+ <li><a href="content/usage-examples.html">Usage examples</a> of <strong>BEDOPS</strong> tools in action</li>
+ <li><a href="http://bedops.uwencode.org/forum/"><strong>BEDOPS</strong> user forum</a></li>
+ <li><a href="http://groups.google.com/group/bedops-discuss"><strong>BEDOPS</strong> discusssion mailing list</a></li>
+ </ul>
+ </div>
+ </div>
+
+.. |reference_png| image:: assets/index/reference_v2.png
+ :height: 36px
+
+.. |reference_html| raw:: html
+
+ <img src="_images/reference_v2.png" style="height:36px;">
+
+.. |set_operations_png| image:: assets/index/set_operations_v2.png
+ :height: 130px
+
+.. |set_operations_html| raw:: html
+
+ <img src="_images/set_operations_v2.png" style="height:130px;">
+
+.. |set_operations| raw:: html
+
+ <ul style="list-style-type:square; font-size:smaller; margin:10px; padding:0;">
+ <li><a href="content/reference/set-operations/bedops.html"><tt>bedops</tt></a> - apply set operations on any number of BED inputs</li>
+ <li><a href="content/reference/set-operations/bedextract.html"><tt>bedextract</tt></a> - efficiently extract BED features</li>
+ <li><a href="content/reference/set-operations/closest-features.html"><tt>closest-features</tt></a> - matches nearest<br/>features between BED files</li>
+ </ul>
+
+.. |statistics_png| image:: assets/index/statistics_v2.png
+ :height: 130px
+
+.. |statistics_html| raw:: html
+
+ <img src="_images/statistics_v2.png" style="height:130px;">
+
+.. |statistics| raw:: html
+
+ <ul style="list-style-type:square; font-size:smaller; margin:10px; padding:0;">
+ <li><a href="content/reference/statistics/bedmap.html"><tt>bedmap</tt></a> - map overlapping BED elements onto target regions and optionally compute any number of common statistical operations</li>
+ </ul>
+
+.. |file_management_png| image:: assets/index/file_management_v2.png
+ :height: 130px
+
+.. |file_management_html| raw:: html
+
+ <img src="_images/file_management_v2.png" style="height:130px;">
+
+.. |file_management| raw:: html
+
+ <ul style="list-style-type:square; font-size:smaller; margin:10px; padding:0;">
+ <li><a href="content/reference/file-management/sorting/sort-bed.html"><tt>sort-bed</tt></a> - apply lexicographical sort to BED data</li>
+ <li><a href="content/reference/file-management/compression/starch.html"><tt>starch</tt></a> and <a href="content/reference/file-management/compression/unstarch.html"><tt>unstarch</tt></a> - compress and extract BED data</li>
+ <li><a href="content/reference/file-management/compression/starchcat.html"><tt>starchcat</tt></a> - merge compressed archives</li>
+ <li><a href="content/reference/file-management/conversion.html">Conversion tools</a> - convert common genomic formats to BED</li>
+ </ul>
+
+.. |performance_png| image:: assets/index/performance_v2.png
+
+.. |performance_html| raw:: html
+
+ <img src="_images/performance_v2.png" style="height:130px;">
+
+.. |performance| raw:: html
+
+ <ul style="list-style-type:square; font-size:smaller; margin:10px; padding:0;">
+ <li>Parallel <a href="content/reference/file-management/conversion/parallel_bam2bed.html"><tt>bam2bed</tt></a> and <a href="content/reference/file-management/conversion/parallel_bam2starch.html"><tt>bam2starch</tt></a> - parallelized conversion and compression of BAM data</li>
+ <li><a href="content/performance.html#set-operations-with-bedops">Set operations with <tt>bedops</tt></li>
+ <li><a href="content/performance.html#compression-characteristics-of-starch">Compression characteristics of <tt>starch</tt></li>
+ <li><a href="content/performance.html#independent-testing">Independent testing</a></li>
+ </ul>
+
+.. |support_png| image:: assets/index/support_v2.png
+
+.. |support_html| raw:: html
+
+ <img src="_images/support_v2.png" style="height:130px;">
+
+.. |support| raw:: html
+
+ <ul style="list-style-type:square; font-size:smaller; margin:10px; padding:0;">
+ <li><a href="content/installation.html">How to install <strong>BEDOPS</strong></a></li>
+ <li><a href="content/usage-examples.html">Usage examples</a> of <strong>BEDOPS</strong> tools in action</li>
+ <li><a href="http://bedops.uwencode.org/forum/"><strong>BEDOPS</strong> user forum</li>
+ <li><a href="http://groups.google.com/group/bedops-discuss"><strong>BEDOPS</strong> discusssion mailing list</li>
+ </ul>
+
+.. |other_png| image:: assets/index/toc_v2.png
+
+.. |other_html| raw:: html
+
+ <img src="_images/toc_v2.png" style="height:130px;">
+
+.. |other| raw:: html
+
+ <ul style="list-style-type:square; font-size:smaller; margin:10px; padding:0;">
+ <li><a href="content/summary.html">Table summary</a> of <strong>BEDOPS</strong> toolkit</li>
+ <li><a href="content/reference/file-management/compression/starch-specification.html">Starch v2.1</a> format specification</li>
+ <li><a href="content/reference/set-operations/nested-elements.html">About nested elements</a>
+ <li><a href="content/revision-history.html">Revision history</a></li>
+ <li><a href="content/release.html">Github release instructions</a></li>
+ <li><a href="https://github.com/bedops/bedops">Github repository</a></li>
+ </ul>
diff --git a/docs/requirements.txt b/docs/requirements.txt
new file mode 100644
index 0000000..8582fa9
--- /dev/null
+++ b/docs/requirements.txt
@@ -0,0 +1 @@
+sphinx-better-theme==0.1.4
diff --git a/interfaces/general-headers/algorithm/WindowSweep.hpp b/interfaces/general-headers/algorithm/WindowSweep.hpp
new file mode 100644
index 0000000..e85a251
--- /dev/null
+++ b/interfaces/general-headers/algorithm/WindowSweep.hpp
@@ -0,0 +1,94 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Thu Nov 29 18:03:26 PST 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef WINDOWED_SWEEP_ALGORITHM_H
+#define WINDOWED_SWEEP_ALGORITHM_H
+
+#include "data/bed/BedDistances.hpp"
+
+namespace WindowSweep {
+
+ //================================================================
+ // sweep() Overload1 : A single input iterator pair
+ // This version is meant to sweep over a single input iterator
+ // pair. Examples usages may be for calculating trimmed means,
+ // smoothing operations, interpolation, etc.
+ //================================================================
+ template <
+ class InputIterator,
+ class RangeComp,
+ class EventVisitor
+ >
+ void sweep(InputIterator start, InputIterator end,
+ RangeComp inRange, EventVisitor& visitor);
+
+ template <
+ class InputIterator,
+ class EventVisitor
+ >
+ void sweep(InputIterator start, InputIterator end,
+ Bed::Overlapping inRange, EventVisitor& visitor);
+
+
+ //=================================================================
+ // sweep() Overload2 : Two pair of input iterator pairs
+ // This version is meant to sweep over two input iterator pairs.
+ // Examples usages may be for convolution calculations & mapping
+ // aggregated values from iterator pair 2 onto iterator pair 1.
+ //=================================================================
+ template <
+ class InputIterator1,
+ class InputIterator2,
+ class RangeComp,
+ class EventVisitor
+ >
+ void sweep(InputIterator1 refStart, InputIterator1 refEnd,
+ InputIterator2 mapFromStart, InputIterator2 mapFromEnd,
+ RangeComp inRange, EventVisitor& visitor, bool sweepMapAll = false);
+
+
+ /*
+ sweep() Assumptions:
+ 1) in terms of RangeComp(a, b):
+ return 0 if a and b are 'within range' of each other
+ return less than 0 if a is 'greater than' b
+ return greater than 0 if a is 'less than' b
+
+ 2) in terms of RangeComp(c, c):
+ return 0 : object must always be in range of itself
+
+ 3) EventVisitor::reference_type, and in the case of the 2nd
+ sweep() overload, EventVisitor::mapping_type, must be
+ constructible from items pointed to by the iterators
+ passed into sweep(). In many cases, this is the copy
+ constructor, but may be any constructor with the appropriate
+ argument type. An example could be a constructor taking
+ a string, where the iterators passed in point to strings.
+ */
+
+} // namespace WindowSweep
+
+#include "../../src/algorithm/sweep/WindowSweepImpl.cpp"
+#include "../../src/algorithm/sweep/WindowSweepImpl.specialize.cpp"
+
+#endif // WINDOWED_SWEEP_ALGORITHM_H
diff --git a/interfaces/general-headers/algorithm/bed/FindBedRange.hpp b/interfaces/general-headers/algorithm/bed/FindBedRange.hpp
new file mode 100644
index 0000000..1f0733a
--- /dev/null
+++ b/interfaces/general-headers/algorithm/bed/FindBedRange.hpp
@@ -0,0 +1,193 @@
+/*
+ Author: Shane Neph & Alex Reynolds
+ Date: Mon Jan 23 06:29:10 PST 2012
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef BED_RANGE_FINDER_ALGORITHM_H
+#define BED_RANGE_FINDER_ALGORITHM_H
+
+#include <cstdio>
+#include <iterator>
+#include <map>
+#include <utility>
+
+#include "data/bed/BedCompare.hpp"
+#include "data/bed/BedDistances.hpp"
+#include "data/bed/BedTypes.hpp"
+#include "suite/BEDOPS.Constants.hpp"
+
+namespace Bed {
+
+ typedef Bed::SignedCoordType ByteOffset;
+
+ namespace extract_details {
+
+ template <typename BedType>
+ struct CompBed {
+ bool operator()(const BedType& b1, const BedType& b2) const {
+ static Bed::GenomicCompare<BedType, BedType> gc;
+ return gc(&b1,&b2);
+ }
+ };
+
+ template <typename BT1, typename BT2>
+ bool check_overlap(BT1 const* b1, BT2 const* b2) {
+ static Bed::Overlapping overlap;
+ return overlap(b1, b2) == 0;
+ }
+
+ typedef Bed::B3Rest QueryBedType; // file 1
+ typedef QueryBedType TargetBedType; // file 2 -> must be same type as QueryBedType
+ typedef std::map< QueryBedType, ByteOffset, CompBed<QueryBedType> > MType;
+
+ } // namespace extract_details
+
+
+ //==================
+ // find_bed_range() : think bedops -e -1 with file1 = qfile and titer pointing at file2
+ //==================
+ template <typename TargetIter, typename Op>
+ std::pair<bool, ByteOffset> find_bed_range(FILE* qfile, TargetIter titer, TargetIter teof, Op op) {
+
+ extract_details::TargetBedType reference;
+ extract_details::QueryBedType last, current;
+ Bed::Overlapping overlap, lessthan, greaterthan; // any overlap
+ ByteOffset prev_pos = 0, cur_pos = 0, start_pos = 0, end_pos = 0;
+ extract_details::MType bounds;
+
+ cur_pos = std::ftell(qfile); // may not be start of file if, for ex., qfile has headers we skipped
+ std::fseek(qfile, 0, SEEK_END); // apparently dangerous on some platforms in binary mode -> padded nulls;
+ const ByteOffset at_end = std::ftell(qfile); // I'll assume msft is the problem until I know better
+ std::fseek(qfile, cur_pos, SEEK_SET);
+ prev_pos = cur_pos;
+
+ std::iterator_traits<FILE*>::difference_type count, step;
+ bool didWork = false, first = true, donequery = false;
+
+ while ( titer != teof ) {
+ extract_details::TargetBedType* const refelement = *titer++;
+ if ( donequery ) { // read through and delete items in [titer,teof) for posterity
+ delete refelement;
+ continue;
+ } else if ( !first && (greaterthan(&last, refelement) > 0) ) { // last lower_bound is still applicable
+ delete refelement;
+ continue;
+ }
+
+ // only use reference where you need to compare to starting base. Otherwise, use refelement.
+ reference = *refelement;
+ reference.end(reference.start()+1);
+
+ start_pos = std::ftell(qfile);
+ while ( true ) {
+ extract_details::MType::iterator miter = bounds.upper_bound(*refelement); // define end_pos
+ if ( miter == bounds.end() ) {
+ end_pos = at_end;
+ bounds.clear();
+ break;
+ } else {
+ // it's possible that miter->first and refelement overlap but are not picked up in
+ // bounds.upper_bound() search b/c bounds is ordered by the analog of "<", where
+ // start coord takes precedence. Consider when refelement is less than miter->first
+ // but refelement->end() > miter->first.start(). In such a case miter->first would
+ // not be a proper upper bound. Remove it and try again.
+ bounds.erase(bounds.begin(), miter);
+ end_pos = miter->second;
+ if ( extract_details::check_overlap(refelement, &miter->first) )
+ bounds.erase(miter);
+ else
+ break;
+ }
+ } // while
+ count = end_pos - start_pos; // how many bytes between positions
+ didWork = false;
+
+ while ( count > 0 ) {
+ std::fseek(qfile, start_pos, SEEK_SET);
+
+ step = count/2;
+ std::fseek(qfile, step, SEEK_CUR);
+
+ // find beginning of current line
+ while ( std::ftell(qfile) != start_pos ) {
+ if ( static_cast<char>(std::fgetc(qfile)) != '\n' ) {
+ std::fseek(qfile, -2, SEEK_CUR);
+ } else {
+ break;
+ }
+ } // while
+
+ // read in the line; incrementing to start of next QueryBedType element.
+ prev_pos = std::ftell(qfile);
+ current.readline(qfile);
+ cur_pos = std::ftell(qfile);
+ bounds.insert(std::make_pair(current, prev_pos));
+
+ // compare 'current' to starting base
+ if ( lessthan(¤t, &reference) < 0 ) {
+ count = (end_pos - cur_pos);
+
+ start_pos = cur_pos;
+ if ( 0 == count ) {
+ if ( end_pos != at_end ) {
+ prev_pos = cur_pos;
+ current.readline(qfile);
+ cur_pos = std::ftell(qfile);
+ bounds.insert(std::make_pair(current, prev_pos));
+ } else {
+ prev_pos = at_end;
+ }
+ }
+ } else {
+ count = (prev_pos - start_pos);
+ end_pos = prev_pos;
+ }
+
+ didWork = true;
+ } // while
+
+ // spit elements in range
+ if ( didWork ) {
+ while ( prev_pos != at_end && extract_details::check_overlap(¤t, refelement) ) {
+ op(¤t);
+ prev_pos = std::ftell(qfile);
+ if ( prev_pos != at_end )
+ current.readline(qfile);
+ } // while
+ }
+
+ if ( refelement )
+ delete refelement;
+
+ std::fseek(qfile, prev_pos, SEEK_SET); // because start_pos = std::ftell(qfile); on next go-around
+ if ( prev_pos == at_end )
+ donequery = true;
+ last = current;
+ first = false;
+ } // while
+
+ return std::make_pair(!first, prev_pos);
+ }
+
+
+} // namespace Bed
+
+#endif // BED_RANGE_FINDER_ALGORITHM_H
diff --git a/interfaces/general-headers/algorithm/visitors/BedVisitors.hpp b/interfaces/general-headers/algorithm/visitors/BedVisitors.hpp
new file mode 100644
index 0000000..936e7ad
--- /dev/null
+++ b/interfaces/general-headers/algorithm/visitors/BedVisitors.hpp
@@ -0,0 +1,38 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Thu Dec 17 20:01:34 PST 2009
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef _BED_WINDOW_VISITOR_TYPES_HPP
+#define _BED_WINDOW_VISITOR_TYPES_HPP
+
+#include "bed/BedBaseVisitor.hpp"
+#include "bed/EchoMapBedVisitor.hpp" // do not include other/EchoMapVisitor.hpp
+#include "bed/EchoMapIntersectLengthVisitor.hpp"
+#include "bed/OvrAggregateVisitor.hpp"
+#include "bed/OvrUniqueVisitor.hpp"
+#include "bed/OvrUniqueFractionVisitor.hpp"
+#include "NumericalVisitors.hpp"
+#include "other/EchoVisitor.hpp"
+#include "other/MultiVisitor.hpp"
+#include "Visitors.hpp"
+
+#endif // _BED_WINDOW_VISITOR_TYPES_HPP
diff --git a/interfaces/general-headers/algorithm/visitors/NumericalVisitors.hpp b/interfaces/general-headers/algorithm/visitors/NumericalVisitors.hpp
new file mode 100644
index 0000000..f72f14f
--- /dev/null
+++ b/interfaces/general-headers/algorithm/visitors/NumericalVisitors.hpp
@@ -0,0 +1,41 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Tue Aug 14 23:11:19 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef _NUMERICAL_WINDOW_VISITOR_TYPES_H
+#define _NUMERICAL_WINDOW_VISITOR_TYPES_H
+
+#include "numerical/AverageVisitor.hpp"
+#include "numerical/CoeffVariationVisitor.hpp"
+#include "numerical/CountVisitor.hpp"
+#include "numerical/ExtremeVisitor.hpp"
+#include "numerical/IndicatorVisitor.hpp"
+#include "numerical/MedianAbsoluteDeviationVisitor.hpp"
+#include "numerical/MedianVisitor.hpp"
+#include "numerical/RollingKthVisitor.hpp"
+#include "numerical/RollingKthAverageVisitor.hpp"
+#include "numerical/StdevVisitor.hpp"
+#include "numerical/SumVisitor.hpp"
+#include "numerical/TrimmedMeanVisitor.hpp"
+#include "numerical/VarianceVisitor.hpp"
+
+#endif // _NUMERICAL_WINDOW_VISITOR_TYPES_H
diff --git a/interfaces/general-headers/algorithm/visitors/OtherVisitors.hpp b/interfaces/general-headers/algorithm/visitors/OtherVisitors.hpp
new file mode 100644
index 0000000..4816665
--- /dev/null
+++ b/interfaces/general-headers/algorithm/visitors/OtherVisitors.hpp
@@ -0,0 +1,31 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Tue Aug 14 23:11:19 PDT 2007
+*/
+
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef _OTHER_WINDOW_VISITOR_TYPES_H
+#define _OTHER_WINDOW_VISITOR_TYPES_H
+
+#include "other/EchoVisitor.hpp"
+#include "other/MultiVisitor.hpp"
+
+#endif // _OTHER_WINDOW_VISITOR_TYPES_H
diff --git a/interfaces/general-headers/algorithm/visitors/VisitorFactory.hpp b/interfaces/general-headers/algorithm/visitors/VisitorFactory.hpp
new file mode 100644
index 0000000..994b007
--- /dev/null
+++ b/interfaces/general-headers/algorithm/visitors/VisitorFactory.hpp
@@ -0,0 +1,50 @@
+/*
+ Author: Scott Kuehn, Shane Neph
+ Date: Thu Sep 27 16:47:55 PDT 2007
+*/
+
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef VISITORFACTORY_HPP
+#define VISITORFACTORY_HPP
+
+#include <string>
+#include "algorithm/Visitors.hpp"
+#include "utility/Factory.hpp"
+#include "utility/SingletonType.hpp"
+
+namespace Visitors {
+
+ template <
+ typename T1,
+ typename T2 = T1
+ typename BaseVisitor = Visitors::Visitor<T1, T2>
+ >
+ struct VisitorTraits {
+ typedef T1 RefType;
+ typedef T2 MapType;
+ typedef BaseVisitor BaseClass;
+ typedef BaseClass* (*VisitorCreationFunc)();
+ typedef Ext::SingletonType< Ext::Factory<BaseClass, std::string, VisitorCreationFunc> > VisitorFactory;
+ };
+
+} // namespace Visitors
+
+#endif // VISITORFACTORY_HPP
diff --git a/interfaces/general-headers/algorithm/visitors/Visitors.hpp b/interfaces/general-headers/algorithm/visitors/Visitors.hpp
new file mode 100644
index 0000000..2af6a5d
--- /dev/null
+++ b/interfaces/general-headers/algorithm/visitors/Visitors.hpp
@@ -0,0 +1,62 @@
+/*
+ Author: Shane Neph, Scott Kuehn
+ Date: Thu Sep 27 10:50:39 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef SWEEP_VISITORS_HPP
+#define SWEEP_VISITORS_HPP
+
+#include "algorithm/WindowSweep.hpp"
+
+namespace Visitors {
+
+ // Visitor that should be inherited when using sweep() algorithm.
+ template <typename Ref, typename Map = Ref>
+ struct Visitor {
+ typedef const Ref RefType;
+ typedef const Map MapType;
+
+ // interface for sweep()
+ inline bool ManagesOwnMemory() const { return(false); }
+ inline void OnAdd(MapType* u) { Add(u); }
+ inline void OnDelete(MapType* u) { Delete(u); }
+ inline void OnDone() { DoneReference(); }
+ inline void OnEnd() { End(); }
+ inline void OnPurge() { Purge(); }
+ inline void OnStart(RefType* t) { SetReference(t); }
+
+ public:
+ Visitor() { /* */ }
+ template <typename U> explicit Visitor(const U&) { /* */ }
+ virtual ~Visitor() { /* */ }
+
+ // Derived Class interface : Must be public due to MultiVisitor-type usage
+ virtual void Delete(MapType*) = 0;
+ virtual void Add(MapType*) = 0;
+ virtual void DoneReference() = 0;
+ virtual void SetReference(RefType*) { /* */ }
+ virtual void End() { /* */ }
+ virtual void Purge() { /* */ }
+ };
+
+} // namespace Visitors
+
+#endif // SWEEP_VISITORS_HPP
diff --git a/interfaces/general-headers/algorithm/visitors/bed/BedBaseVisitor.hpp b/interfaces/general-headers/algorithm/visitors/bed/BedBaseVisitor.hpp
new file mode 100644
index 0000000..9926b6c
--- /dev/null
+++ b/interfaces/general-headers/algorithm/visitors/bed/BedBaseVisitor.hpp
@@ -0,0 +1,229 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Dec. 7, 2009
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef _BED_BASE_VISITOR_HPP
+#define _BED_BASE_VISITOR_HPP
+
+#include <list>
+#include <set>
+#include <type_traits>
+
+#include "algorithm/WindowSweep.hpp"
+#include "data/bed/BedCompare.hpp"
+#include "data/bed/BedDistances.hpp"
+#include "utility/Assertion.hpp"
+#include "utility/Exception.hpp"
+
+/*
+ Bed types are not sequences of simple numbers. WindowSweep::sweep() can
+ be used with both types, but there are inherent difficulties with BED.
+
+ Take, for instance, the properly ordered coordinates:
+ Problem 1:
+ chr1 0 100
+ chr1 23 25
+ chr1 23 107
+ chr1 30 45
+ chr1 31 32
+ chr1 99 100
+ chr1 101 107
+
+ When the first element is evaluated, everything but the last row is part
+ of the current window. When you change to the second row, chr1 99 100 is
+ no longer part of the current window. Then it is for the 3rd row, then
+ not for the 4th. We do not account for such possibilities within sweep()
+ or the main Visitor baseclass via events.
+
+ BedBaseVisitor implements logic to deal with these problems, and issues
+ events to subclasses appropriately. Bed type visitors should inherit
+ from BedBaseVisitor and use its public interface.
+
+ The same sort of issue exists on the left end.
+ Problem 2:
+ chr1 0 100
+ chr1 23 25
+ chr1 39 100
+
+ When the 3rd row is the current item, row 2 does not make up its window,
+ but row 1 does. Once row 2 is behind and out of scope relative to the
+ current item; it never comes back into play.
+
+ I believe memory management can no longer be passed down to derived classes
+ due to buffering that goes on within this class. I haven't thought about
+ it much yet as no Visitor has yet needed its own memory management.
+
+ I have tried optimizing things when the overlap method is based upon bp's and
+ not percentages and received much better runtimes. Unfortunately, my assumptions
+ were wrong. The bottom line is that you need to look at every element in the
+ current window, both going out of range to the left and coming into range on
+ the right in fixWindow(). Here is the case that fails:
+
+ chr1 1 200 a 1
+ chr1 10 20 b 3
+ chr1 50 150 c 4
+
+ when used with bedmap --bp-ovr 11 --count -
+
+ row 2 has no hits, but row 1 goes with row 3's output. Cannot assume that once
+ row 2 is out of range that everything to the left of it is out of range too,
+ even when looking at straight bp's. The main issue shown here is that the
+ --bp-ovr 11 is larger than row 2's range. It can never qualify but row 1 can.
+
+ All of the problems mentioned can be attributed to fully nested elements. There
+ are scenarios without fully nested elements that are problematic too without this
+ BedBaseVisitor. For example, consider using Visitors.hpp as base class with the
+ bedmap application under the following scenario:
+ bedmap --fraction-map 0.1 --echo --count with the following file:
+
+ chr1 564622 564633
+ chr1 564629 564637
+ chr1 564634 564677
+ chr1 564673 564681
+ chr1 564974 565006
+ chr1 564978 565023
+ chr1 565007 565040
+ chr1 565256 565294
+
+ When at line 2, line 3 does not map b/c 0.1*43nt = 4nt while line 2 and line 3
+ overlap by 3 nt. But, when we go to line 3 as the reference, line 2 is an
+ overlapping element that qualifies since its size is 8 nt (0.1*8nt -> any
+ overlap satisfies). Unfortunately, sweep() has already flushed out line 2
+ since it has the inherent symmetry assumption: dist(a,b) == dist(b,a).
+ BedBaseVisitor deals with this scenario properly.
+*/
+
+
+namespace Visitors {
+
+ template <typename BedDist, typename Ref, typename Map = Ref>
+ struct BedBaseVisitor {
+ typedef BedDist DistType;
+ typedef const Ref RefType;
+ typedef const Map MapType;
+
+ protected:
+ // typedefs
+ typedef std::set<MapType*, Bed::CoordAddressCompare<MapType>> OrderLesser;
+ typedef OrderLesser OrderCache;
+ typedef OrderLesser OrderWin;
+
+ public:
+ // Interface for sweep()
+ inline bool ManagesOwnMemory() const { return(false); }
+
+ inline void OnStart(RefType* t) {
+ // Give derived class the new reference
+ SetReference(t);
+ ref_ = t;
+ }
+
+ inline void OnAdd(MapType* u) {
+ // Add(u); Do not add until deletions done in fixWindow()
+ cache_.insert(u);
+ }
+
+ inline void OnDelete(MapType* u) {
+ static typename OrderWin::iterator winIter;
+ winIter = win_.find(u);
+ if ( winIter != win_.end() ) { // update
+ Delete(u);
+ win_.erase(winIter);
+ } else {
+ cache_.erase(u);
+ }
+ }
+
+ void OnDone() {
+ fixWindow(); // deletions before insertions
+ DoneReference();
+ }
+
+ inline void OnEnd() {
+ End();
+ win_.clear();
+ cache_.clear();
+ }
+
+ inline void OnPurge() {
+ // bed types can violate sweep's OnPurge() checks and they aren't really needed
+ }
+
+ explicit BedBaseVisitor(const DistType& d = DistType()) : dist_(d)
+ { /* */ }
+
+ virtual ~BedBaseVisitor() { /* */ }
+
+ // Derived Class interface : Must be public due to MultiVisitor-type usage
+ virtual void Delete(MapType*) = 0;
+ virtual void Add(MapType*) = 0;
+ virtual void DoneReference() = 0;
+ virtual inline void SetReference(RefType*) { /* */ }
+ virtual inline void End() { /* */ }
+
+ private:
+ void fixWindow() {
+ // Deletions must come before insertions for consistency with sweep()
+ // Realize that, at a minimum, ref_ has changed -> all time-consuming
+ // checks are necessary
+
+ // Are any items in the window really out of range of 't'? See problem 2.
+ static std::list<MapType*> lst;
+ auto winIter = win_.begin();
+ while ( winIter != win_.end() ) {
+ if ( dist_.Map2Ref(*winIter, ref_) != 0 ) {
+ Delete(*winIter);
+ lst.push_back(*winIter);
+ win_.erase(winIter++);
+ } else {
+ ++winIter;
+ }
+ } // while
+
+ auto cacheIter = cache_.begin();
+ while ( cacheIter != cache_.end() ) {
+ if ( 0 == dist_.Map2Ref(*cacheIter, ref_) ) {
+ Add(*cacheIter);
+ win_.insert(*cacheIter);
+ cache_.erase(cacheIter++);
+ } else {
+ ++cacheIter;
+ }
+ } // while
+
+ cache_.insert(lst.begin(), lst.end());
+ lst.clear();
+ }
+
+ private:
+ // MUST use a set with value/address compare here instead of a std::multiset
+ // This is for deleting elements and making sure multiple rows with the
+ // same coordinates each receive Delete() calls to derived classes.
+ DistType dist_;
+ RefType* ref_;
+ OrderCache cache_;
+ OrderWin win_;
+ };
+
+} // namespace Visitors
+
+#endif // _BED_BASE_VISITOR_HPP
diff --git a/interfaces/general-headers/algorithm/visitors/bed/EchoMapBedVisitor.hpp b/interfaces/general-headers/algorithm/visitors/bed/EchoMapBedVisitor.hpp
new file mode 100644
index 0000000..53fbd44
--- /dev/null
+++ b/interfaces/general-headers/algorithm/visitors/bed/EchoMapBedVisitor.hpp
@@ -0,0 +1,73 @@
+/*
+ Author: Scott Kuehn, Shane Neph
+ Date: Thu Nov 8 13:31:09 PST 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef ECHO_MAP_BED_VISITOR_HPP
+#define ECHO_MAP_BED_VISITOR_HPP
+
+#include <set>
+
+#include "data/bed/BedCompare.hpp"
+
+namespace Visitors {
+
+ namespace BedSpecific { // use other/EchoMapVisitor.hpp for numeric types
+
+ template <
+ typename Process,
+ typename BaseVisitor
+ >
+ struct EchoMapBed : BaseVisitor {
+ typedef BaseVisitor BaseClass;
+ typedef Process ProcessType;
+ typedef typename BaseVisitor::RefType RefType;
+ typedef typename BaseVisitor::MapType MapType;
+
+ explicit EchoMapBed(const ProcessType& pt = ProcessType()) : pt_(pt)
+ { /* */ }
+
+ inline void Add(MapType* t) {
+ win_.insert(t);
+ }
+
+ inline void Delete(MapType* t) {
+ win_.erase(t);
+ }
+
+ inline void DoneReference() {
+ pt_.operator()(win_.begin(), win_.end());
+ }
+
+ virtual ~EchoMapBed() { }
+
+ private:
+ typedef std::set< MapType*, Bed::GenomicAddressCompare<MapType, MapType> > SType; // consistent w/sort-bed
+ ProcessType pt_;
+ SType win_;
+ };
+
+ } // namespace BedSpecific
+
+} // namespace Visitors
+
+
+#endif // ECHO_MAP_BED_VISITOR_HPP
diff --git a/interfaces/general-headers/algorithm/visitors/bed/EchoMapIntersectLengthVisitor.hpp b/interfaces/general-headers/algorithm/visitors/bed/EchoMapIntersectLengthVisitor.hpp
new file mode 100644
index 0000000..8cf33f7
--- /dev/null
+++ b/interfaces/general-headers/algorithm/visitors/bed/EchoMapIntersectLengthVisitor.hpp
@@ -0,0 +1,89 @@
+/*
+ Author: Shane Neph
+ Date: Mon Dec 9 16:07:08 PST 2013
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef INTERSECT_REF_VISITOR_HPP
+#define INTERSECT_REF_VISITOR_HPP
+
+#include <set>
+#include <type_traits>
+
+#include "data/bed/Bed.hpp"
+#include "data/bed/BedCompare.hpp"
+
+namespace Visitors {
+
+ namespace BedSpecific {
+
+ // Collect the total number of overlapping positions
+
+ template <
+ typename ProcessType,
+ typename BaseVisitor
+ >
+ struct EchoMapIntersectLength : BaseVisitor {
+ typedef BaseVisitor BaseClass;
+ typedef typename BaseClass::RefType RefType;
+ typedef typename BaseClass::MapType MapType;
+
+ EchoMapIntersectLength(const ProcessType& pt = ProcessType()) : refItem_(0), pt_(pt)
+ { /* */ }
+
+ inline void SetReference(RefType* t) {
+ refItem_ = t;
+ }
+
+ inline void Delete(MapType* v) {
+ win_.erase(v);
+ }
+
+ inline void Add(MapType* v) {
+ win_.insert(v);
+ }
+
+ inline void DoneReference() {
+ std::vector<long> vec;
+ typename SType::const_iterator i = win_.begin();
+ while ( i != win_.end() ) {
+ typename std::remove_const<RefType>::type c = *refItem_;
+ c.intersection(**i++);
+ vec.push_back(c.length());
+ } // while
+ pt_.operator()(vec.begin(), vec.end());
+ }
+
+ virtual ~EchoMapIntersectLength() { }
+
+ protected:
+ typedef Bed::GenomicAddressCompare<MapType, MapType> Comp;
+ typedef std::set<MapType*, Comp> SType;
+
+ RefType* refItem_;
+ ProcessType pt_;
+ SType win_;
+ };
+
+ } // namespace BedSpecific
+
+} // namespace Visitors
+
+#endif // INTERSECT_REF_VISITOR_HPP
diff --git a/interfaces/general-headers/algorithm/visitors/bed/OvrAggregateVisitor.hpp b/interfaces/general-headers/algorithm/visitors/bed/OvrAggregateVisitor.hpp
new file mode 100644
index 0000000..a5c0223
--- /dev/null
+++ b/interfaces/general-headers/algorithm/visitors/bed/OvrAggregateVisitor.hpp
@@ -0,0 +1,114 @@
+/*
+ Author: Scott Kuehn, Shane Neph
+ Date: Wed Sep 5 09:40:33 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef OVR_AGGREGATE_VISITOR_HPP
+#define OVR_AGGREGATE_VISITOR_HPP
+
+#include <set>
+
+#include "data/bed/BedCompare.hpp"
+
+namespace Visitors {
+
+ namespace BedSpecific {
+
+ // Collect the total number of overlapping positions
+
+ template <
+ typename ProcessType,
+ typename BaseVisitor
+ >
+ struct OvrAggregate : BaseVisitor {
+ typedef BaseVisitor BaseClass;
+ typedef typename BaseClass::RefType RefType;
+ typedef typename BaseClass::MapType MapType;
+
+ OvrAggregate(const ProcessType& pt = ProcessType()) : ovr_(0), refItem_(0), pt_(pt)
+ { /* */ }
+
+ inline void SetReference(RefType* t) {
+ refItem_ = t;
+ ovr_ = 0;
+ if ( !cache_.empty() ) {
+ for ( cacheI i = cache_.begin(); i != cache_.end(); ++i )
+ ovr_ += coordCompare(refItem_, *i);
+ }
+ }
+
+ inline void Delete(MapType* v) {
+ cacheI iter = cache_.find(v);
+ if ( iter != cache_.end() )
+ ovr_ -= coordCompare(refItem_, v);
+ cache_.erase(v);
+ }
+
+ inline void Add(MapType* v) {
+ cache_.insert(v);
+ ovr_ += coordCompare(refItem_, v);
+ }
+
+ inline void DoneReference() {
+ pt_.operator()(ovr_);
+ }
+
+ virtual ~OvrAggregate() { }
+
+ protected:
+ inline unsigned long coordCompare(RefType* t, MapType* v) {
+ if ( t->start() >= v->start() ) {
+ if ( v->end() > t->start() ) {
+ if( v->end() > t->end() )
+ return (t->end() - t->start());
+ else
+ return (v->end() - t->start());
+ }
+ else
+ return 0;
+ } else { // t->start() < v->start()
+ if ( t->end() > v->start() ) {
+ if ( v->end() < t->end() )
+ return (v->end() - v->start());
+ else
+ return (t->end() - v->start());
+ }
+ else
+ return 0;
+ }
+ }
+
+ protected:
+ typedef Bed::GenomicAddressCompare<MapType, MapType> Comp;
+ typedef std::set<MapType*, Comp> SType;
+ typedef typename SType::const_iterator cacheI;
+
+ unsigned long ovr_;
+ RefType* refItem_;
+ ProcessType pt_;
+ SType cache_;
+ };
+
+ } // namespace BedSpecific
+
+} // namespace Visitors
+
+#endif // OVR_AGGREGATE_VISITOR_HPP
diff --git a/interfaces/general-headers/algorithm/visitors/bed/OvrUniqueFractionVisitor.hpp b/interfaces/general-headers/algorithm/visitors/bed/OvrUniqueFractionVisitor.hpp
new file mode 100644
index 0000000..828b9f7
--- /dev/null
+++ b/interfaces/general-headers/algorithm/visitors/bed/OvrUniqueFractionVisitor.hpp
@@ -0,0 +1,62 @@
+/*
+ Author: Scott Kuehn, Shane Neph
+ Date: Wed Sep 5 09:33:15 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef OVR_UNIQUE_FRACT_VISITOR_HPP
+#define OVR_UNIQUE_FRACT_VISITOR_HPP
+
+#include "algorithm/visitors/bed/OvrUniqueVisitor.hpp"
+#include "algorithm/visitors/helpers/ProcessVisitorRow.hpp"
+
+namespace Visitors {
+
+ namespace BedSpecific {
+
+ template <
+ typename Process,
+ typename BaseVisitor
+ >
+ struct OvrUniqueFract : OvrUnique<Visitors::Helpers::Keep<double>, BaseVisitor> {
+ typedef OvrUnique<Visitors::Helpers::Keep<double>, BaseVisitor> BaseClass;
+ typedef Process ProcessType;
+
+ OvrUniqueFract(const ProcessType& pt = ProcessType()) : BaseClass(Visitors::Helpers::Keep<double>()), prt_(pt)
+ { /* */ }
+
+ // Just give the fraction of refItem_'s bases covered
+ inline void DoneReference() {
+ BaseClass::DoneReference();
+ prt_.operator()(BaseClass::pt_.value_ / BaseClass::refItem_->length());
+ }
+
+ virtual ~OvrUniqueFract() { /* */ }
+
+ protected:
+ ProcessType prt_;
+ };
+
+ } // namespace BedSpecific
+
+} // namespace Visitors
+
+
+#endif // OVR_UNIQUE_FRACT_VISITOR_HPP
diff --git a/interfaces/general-headers/algorithm/visitors/bed/OvrUniqueVisitor.hpp b/interfaces/general-headers/algorithm/visitors/bed/OvrUniqueVisitor.hpp
new file mode 100644
index 0000000..618c9eb
--- /dev/null
+++ b/interfaces/general-headers/algorithm/visitors/bed/OvrUniqueVisitor.hpp
@@ -0,0 +1,98 @@
+/*
+ Author: Scott Kuehn, Shane Neph
+ Date: Wed Sep 5 09:33:15 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef OVR_UNIQUE_VISITOR_HPP
+#define OVR_UNIQUE_VISITOR_HPP
+
+#include <set>
+#include <type_traits>
+
+#include "data/bed/BedCompare.hpp"
+
+namespace Visitors {
+
+ namespace BedSpecific {
+
+ template <
+ typename ProcessType,
+ typename BaseVisitor
+ >
+ struct OvrUnique : BaseVisitor {
+ typedef BaseVisitor BaseClass;
+ typedef typename BaseClass::RefType RefType;
+ typedef typename BaseClass::MapType MapType;
+
+ OvrUnique(const ProcessType& pt = ProcessType()) : pt_(pt), refItem_(0)
+ { /* */ }
+
+ inline void SetReference(RefType* t) {
+ refItem_ = t;
+ }
+
+ // Append an element comprised of the coords overlapping target and reference
+ inline void Add(MapType* u) {
+ cache_.insert(u);
+ }
+
+ inline void Delete(MapType* u) {
+ cache_.erase(u);
+ }
+
+ // Calculate the sum of overlapping ranges
+ inline void DoneReference() {
+ unsigned int ovr = 0;
+ if ( !cache_.empty() ) {
+ typename std::remove_const<MapType>::type tmpOvrRange = **cache_.begin();
+ cacheI i = cache_.begin();
+ for ( ++i; i != cache_.end(); ++i ) {
+ if ( tmpOvrRange.overlap(**i) )
+ tmpOvrRange.eunion(**i);
+ else {
+ ovr += tmpOvrRange.intersection(*refItem_).length();
+ tmpOvrRange = **i;
+ }
+ } // for
+ ovr += tmpOvrRange.intersection(*refItem_).length();
+ }
+ pt_.operator()(ovr);
+ }
+
+ virtual ~OvrUnique() { /* */ }
+
+ protected:
+ typedef Bed::GenomicCompare<MapType, MapType> Comp;
+ typedef std::set<MapType*, Comp> SType; // OK not to use multiset
+
+ typedef typename SType::const_iterator cacheI;
+
+ ProcessType pt_;
+ RefType* refItem_;
+ SType cache_;
+ };
+
+ } // namespace BedSpecific
+
+} // namespace Visitors
+
+
+#endif // OVR_UNIQUE_VISITOR_HPP
diff --git a/interfaces/general-headers/algorithm/visitors/helpers/NamedVisitors.hpp b/interfaces/general-headers/algorithm/visitors/helpers/NamedVisitors.hpp
new file mode 100644
index 0000000..628185e
--- /dev/null
+++ b/interfaces/general-headers/algorithm/visitors/helpers/NamedVisitors.hpp
@@ -0,0 +1,237 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Sun Dec 13 23:50:58 PST 2009
+*/
+
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef _NAMED_VISITORS_HPP
+#define _NAMED_VISITORS_HPP
+
+#include <sstream>
+#include <string>
+#include <vector>
+
+#include "algorithm/visitors/BedVisitors.hpp"
+#include "algorithm/visitors/NumericalVisitors.hpp"
+#include "algorithm/visitors/OtherVisitors.hpp"
+#include "algorithm/visitors/helpers/ProcessBedVisitorRow.hpp"
+#include "algorithm/visitors/helpers/ProcessVisitorRow.hpp"
+#include "utility/OrderCompare.hpp"
+
+// Names returned via VisitorName<...>::Name() must be unique
+// to every other specialization here. Compiler cannot catch.
+
+namespace Visitors {
+
+ namespace Helpers {
+
+ // default undefined:
+ // compiler can help catch unimplemented details
+ template <typename T>
+ struct VisitorName;
+
+ template <typename A, typename B>
+ struct VisitorName< Visitors::Count<A,B> > {
+ static std::string Name()
+ { return "count"; }
+ };
+
+ template <typename A, typename B>
+ struct VisitorName< Visitors::CoeffVariation<A,B> > {
+ static std::string Name()
+ { return "cv"; }
+ };
+
+ template <typename A, typename B>
+ struct VisitorName< Visitors::Echo<A,B> > {
+ static std::string Name()
+ { return "echo"; }
+ };
+
+ template <typename B>
+ struct VisitorName< Visitors::Echo<Visitors::BedHelpers::PrintLength,B> > {
+ static std::string Name()
+ { return "echo-ref-size"; }
+ };
+
+ template <typename B>
+ struct VisitorName< Visitors::Echo<Visitors::BedHelpers::PrintSpanName,B> > {
+ static std::string Name()
+ { return "echo-ref-name"; }
+ };
+
+ template <typename B>
+ struct VisitorName< Visitors::Echo<Visitors::BedHelpers::PrintRowID, B> > {
+ static std::string Name()
+ { return "echo-ref-row-id"; }
+ };
+
+ template <typename A, typename B>
+ struct VisitorName< Visitors::Indicator<A,B> > {
+ static std::string Name()
+ { return "indicator"; }
+ };
+
+ template <typename A, typename B, typename C>
+ struct VisitorName< Visitors::RollingKthAverage<A,B,C> > {
+ static std::string Name()
+ { return "kth"; }
+ };
+
+ template <typename A, typename B, typename C>
+ struct VisitorName< Visitors::MedianAbsoluteDeviation<A,B,C> > {
+ static std::string Name()
+ { return "mad"; }
+ };
+
+ template <typename A, typename B, typename C>
+ struct VisitorName< Visitors::Extreme< A,B,Ordering::CompValueThenAddressGreater<C,C> > > {
+ static std::string Name()
+ { return "max"; }
+ };
+
+ template <typename A, typename B>
+ struct VisitorName< Visitors::Average<A,B> > {
+ static std::string Name()
+ { return "mean"; }
+ };
+
+ template <typename A, typename B>
+ struct VisitorName< Visitors::Median<A,B> > {
+ static std::string Name()
+ { return "median"; }
+ };
+
+ template <typename A, typename B, typename C>
+ struct VisitorName< Visitors::Extreme< A,B,Ordering::CompValueThenAddressLesser<C, C> > > {
+ static std::string Name()
+ { return "min"; }
+ };
+
+ template <typename A, typename B>
+ struct VisitorName< Visitors::StdDev<A,B> > {
+ static std::string Name()
+ { return "stdev"; }
+ };
+
+ template <typename A, typename B>
+ struct VisitorName< Visitors::Sum<A,B> > {
+ static std::string Name()
+ { return "sum"; }
+ };
+
+ template <typename A, typename B, typename C>
+ struct VisitorName< Visitors::TrimmedMean<A,B,C> > {
+ static std::string Name()
+ { return "tmean"; }
+ };
+
+ template <typename A, typename B, typename C>
+ struct VisitorName< Visitors::RollingKth<A,B,C> > {
+ static std::string Name()
+ { return "value-at"; }
+ };
+
+ template <typename A, typename B>
+ struct VisitorName< Visitors::Variance<A,B> > {
+ static std::string Name()
+ { return "variance"; }
+ };
+
+
+ // BED
+ template <typename A, typename B>
+ struct VisitorName< Visitors::BedSpecific::OvrAggregate<A,B> > {
+ static std::string Name()
+ { return "bases"; }
+ };
+
+ template <typename A, typename B>
+ struct VisitorName< Visitors::BedSpecific::OvrUnique<A,B> > {
+ static std::string Name()
+ { return "bases-uniq"; }
+ };
+
+ template <typename A, typename B>
+ struct VisitorName< Visitors::BedSpecific::OvrUniqueFract<A,B> > {
+ static std::string Name()
+ { return "bases-uniq-f"; }
+ };
+
+ template <typename B, typename C>
+ struct VisitorName< Visitors::Extreme< Visitors::BedHelpers::PrintAllScorePrecision,B,Ordering::CompValueThenAddressGreater<C,C> > > {
+ static std::string Name()
+ { return "max-element"; }
+ };
+
+ template <typename B, typename C>
+ struct VisitorName< Visitors::Extreme< Visitors::BedHelpers::PrintAllScorePrecision,B,Ordering::CompValueThenAddressLesser<C, C> > > {
+ static std::string Name()
+ { return "min-element"; }
+ };
+
+ template <template<class X> class A, class B>
+ struct VisitorName< Visitors::BedSpecific::EchoMapBed<A<Visitors::BedHelpers::Print>,B> > {
+ static std::string Name()
+ { return "echo-map"; }
+ };
+
+ template <template<class X> class A, class B>
+ struct VisitorName< Visitors::BedSpecific::EchoMapBed<A<Visitors::BedHelpers::PrintID>,B> > {
+ static std::string Name()
+ { return "echo-map-id"; }
+ };
+
+ template <class B>
+ struct VisitorName< Visitors::BedSpecific::EchoMapBed<Visitors::BedHelpers::PrintUniqueRangeIDs, B> > {
+ static std::string Name()
+ { return "echo-map-id-uniq"; }
+ };
+
+ template <template<class X> class A, class B>
+ struct VisitorName< Visitors::BedSpecific::EchoMapBed<A<Visitors::BedHelpers::PrintLength>,B> > {
+ static std::string Name()
+ { return "echo-map-size"; }
+ };
+
+ template <class A, class B>
+ struct VisitorName< Visitors::BedSpecific::EchoMapIntersectLength<A, B> > {
+ static std::string Name()
+ { return "echo-overlap-size"; }
+ };
+
+ template <class B>
+ struct VisitorName< Visitors::BedSpecific::EchoMapBed< Visitors::BedHelpers::PrintGenomicRange<Visitors::BedHelpers::PrintBED3>, B> > {
+ static std::string Name()
+ { return "echo-map-range"; }
+ };
+
+ template <template<class X> class A, class B>
+ struct VisitorName< Visitors::BedSpecific::EchoMapBed< A<Visitors::BedHelpers::PrintScorePrecision>, B> > {
+ static std::string Name()
+ { return "echo-map-score"; }
+ };
+
+ } // namespace Helpers
+
+} // Visitors
+
+#endif // _NAMED_VISITORS_HPP
diff --git a/interfaces/general-headers/algorithm/visitors/helpers/ProcessBedVisitorRow.hpp b/interfaces/general-headers/algorithm/visitors/helpers/ProcessBedVisitorRow.hpp
new file mode 100644
index 0000000..d092c99
--- /dev/null
+++ b/interfaces/general-headers/algorithm/visitors/helpers/ProcessBedVisitorRow.hpp
@@ -0,0 +1,466 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Dec. 7, 2009
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef _VISITOR_BED_POST_PROCESSING_
+#define _VISITOR_BED_POST_PROCESSING_
+
+#include <set>
+#include <string>
+#include <type_traits>
+
+#include "algorithm/visitors/helpers/ProcessVisitorRow.hpp"
+#include "data/bed/BedCompare.hpp"
+#include "data/measurement/NaN.hpp"
+#include "utility/Formats.hpp"
+#include "utility/PrintTypes.hpp"
+
+namespace Visitors {
+
+ namespace BedHelpers {
+
+ //=========
+ // Print()
+ //=========
+ struct Print {
+ template <typename T>
+ void operator()(T* t) const {
+ PrintTypes::Print(*t);
+ }
+
+ template <typename T>
+ void operator()(const T& t) const {
+ PrintTypes::Print(t);
+ }
+
+ void operator()(const Signal::NaN& s) const {
+ PrintTypes::Print(s.nan_);
+ }
+ };
+
+ //===========
+ // Println()
+ //===========
+ struct Println {
+ template <typename T>
+ void operator()(T* t) const {
+ PrintTypes::Println(*t);
+ }
+
+ template <typename T>
+ void operator()(const T& t) const {
+ PrintTypes::Println(t);
+ }
+
+ void operator()(const Signal::NaN& s) const {
+ PrintTypes::Println(s.nan_);
+ }
+ };
+
+ //=============
+ // PrintBED3()
+ //=============
+ struct PrintBED3 {
+ template <typename T>
+ void operator()(T* t) const { // could use dis/enable_if for built-ins
+ // Can't use t->print() since only want first 3 columns
+ PrintTypes::Print(t->chrom());
+ PrintTypes::Print('\t');
+ PrintTypes::Print(t->start());
+ PrintTypes::Print('\t');
+ PrintTypes::Print(t->end());
+ }
+
+ template <typename T>
+ void operator()(const T& t) const {
+ operator()(&t);
+ }
+
+ void operator()(const Signal::NaN&) const {
+ static char const* noMatch = "No-Match";
+ PrintTypes::Print(noMatch);
+ }
+ };
+
+ //===============
+ // PrintBED3ln()
+ //===============
+ struct PrintBED3ln {
+ template <typename T>
+ void operator()(T* t) const { // could use dis/enable_if for built-ins
+ // Can't use t->println() since only want first 3 columns
+ PrintTypes::Print(t->chrom());
+ PrintTypes::Print('\t');
+ PrintTypes::Print(t->start());
+ PrintTypes::Print('\t');
+ PrintTypes::Print(t->end());
+ PrintTypes::Print('\n');
+ }
+
+ template <typename T>
+ void operator()(const T& t) const {
+ operator()(&t);
+ }
+
+ void operator()(const Signal::NaN&) const {
+ static char const* noMatch = "No-Match";
+ PrintTypes::Print(noMatch);
+ }
+ };
+
+ //==============
+ // PrintScore()
+ //==============
+ struct PrintScore {
+ template <typename T>
+ void operator()(T* t) const { // could use dis/enable_if for built-ins
+ PrintTypes::Print(t->measurement());
+ }
+
+ template <typename T>
+ void operator()(const T& t) const {
+ PrintTypes::Print(t);
+ }
+
+ void operator()(const Signal::NaN& s) const {
+ PrintTypes::Print(s.nan_);
+ }
+ };
+
+ //=======================
+ // PrintScorePrecision()
+ //=======================
+ struct PrintScorePrecision {
+ PrintScorePrecision(int precision, bool inScientific)
+ : precision_(precision), scientific_(inScientific)
+ { /* */ }
+
+ template <typename T>
+ void operator()(T* t) const { // could use dis/enable_if for built-ins
+ static char const* format = Formats::Format(t->measurement(), precision_, scientific_);
+ std::printf(format, t->measurement());
+ }
+
+ template <typename T>
+ void operator()(const T& t) const {
+ static char const* format = Formats::Format(t, precision_, scientific_);
+ std::printf(format, t);
+ }
+
+ void operator()(const Signal::NaN& s) const {
+ PrintTypes::Print(s.nan_);
+ }
+
+ protected:
+ int precision_;
+ bool scientific_;
+ };
+
+ //==========================
+ // PrintAllScorePrecision()
+ //==========================
+ struct PrintAllScorePrecision {
+ PrintAllScorePrecision(int precision, bool inScientific)
+ : precision_(precision), scientific_(inScientific)
+ { /* */ }
+
+ template <typename T>
+ void operator()(T* t) const { // could use dis/enable_if for built-ins
+ static char const* format = Formats::Format(t->measurement(), precision_, scientific_);
+ PrintTypes::Print(t->chrom());
+ PrintTypes::Print('\t');
+ PrintTypes::Print(t->start());
+ PrintTypes::Print('\t');
+ PrintTypes::Print(t->end());
+ PrintTypes::Print('\t');
+ PrintTypes::Print(t->id());
+ PrintTypes::Print('\t');
+ std::printf(format, t->measurement());
+ printRest(t);
+ }
+
+ template <typename T>
+ void operator()(const T& t) const {
+ operator()(&t);
+ }
+
+ void operator()(const Signal::NaN& s) const {
+ throw(std::string("Unable to process a 'NAN' with PrintAllScorePrecision."));
+ }
+
+ protected:
+ template <typename T>
+ typename std::enable_if<T::UseRest, void>::type printRest(T* t) const {
+ PrintTypes::Print(t->rest()); // already includes '\t' out front
+ }
+
+ template <typename T>
+ typename std::enable_if<!T::UseRest, void>::type printRest(T* t) const { /* */ }
+
+ protected:
+ int precision_;
+ bool scientific_;
+ };
+
+ //================
+ // PrintlnScore()
+ //================
+ struct PrintlnScore {
+ template <typename T>
+ void operator()(T* t) const { // could use dis/enable_if for built-ins
+ PrintTypes::Println(t->measurement());
+ }
+
+ template <typename T>
+ void operator()(const T& t) const {
+ PrintTypes::Println(t);
+ }
+
+ void operator()(const Signal::NaN& s) const {
+ PrintTypes::Println(s.nan_);
+ }
+ };
+
+ //=========================
+ // PrintScorePrecisionln()
+ //=========================
+ struct PrintScorePrecisionln {
+ PrintScorePrecisionln(int precision, bool inScientific)
+ : precision_(precision), scientific_(inScientific)
+ { /* */ }
+
+ template <typename T>
+ void operator()(T* t) const { // could use dis/enable_if for built-ins
+ static std::string f = (std::string(Formats::Format(t->measurement(), precision_, scientific_)) + "\n");
+ static char const* format = f.c_str();
+ std::printf(format, t->measurement());
+ }
+
+ template <typename T>
+ void operator()(const T& t) const {
+ static std::string f = (std::string(Formats::Format(t, precision_, scientific_)) + "\n");
+ static char const* format = f.c_str();
+ std::printf(format, t);
+ }
+
+ void operator()(const Signal::NaN& s) const {
+ PrintTypes::Println(s.nan_);
+ }
+
+ protected:
+ int precision_;
+ bool scientific_;
+ };
+
+ //===========
+ // PrintID()
+ //===========
+ struct PrintID {
+ typedef std::string Type;
+
+ template <typename T>
+ void operator()(T* t) const {
+ PrintTypes::Print(t->id());
+ }
+
+ void operator()(const Signal::NaN&) const {
+ static char const* noID = "No-ID";
+ PrintTypes::Print(noID);
+ }
+ };
+
+ //=============
+ // PrintlnID()
+ //=============
+ struct PrintlnID {
+ template <typename T>
+ void operator()(T* t) const {
+ PrintTypes::Println(t->id());
+ }
+
+ void operator()(const Signal::NaN&) const {
+ static char const* noID = "No-ID";
+ PrintTypes::Println(noID);
+ }
+ };
+
+ //===============
+ // PrintLength()
+ //===============
+ struct PrintLength {
+ typedef std::string Type;
+
+ template <typename T>
+ void operator()(T* t) const {
+ PrintTypes::Print(t->length());
+ }
+ };
+
+ //=================
+ // PrintlnLength()
+ //=================
+ struct PrintlnLength {
+ typedef std::string Type;
+
+ template <typename T>
+ void operator()(T* t) const {
+ PrintTypes::Println(t->length());
+ }
+ };
+
+ //=================
+ // PrintSpanName()
+ //=================
+ struct PrintSpanName {
+ template <typename T>
+ void operator()(T* t) const {
+ PrintTypes::Print(t->chrom());
+ PrintTypes::Print(':');
+ PrintTypes::Print(t->start());
+ PrintTypes::Print('-');
+ PrintTypes::Print(t->end());
+ }
+ };
+
+ //==============
+ // PrintRowID()
+ //==============
+ struct PrintRowID {
+ template <typename T>
+ void operator()(T* t) const {
+ static char const* id = "id-";
+ static unsigned long rowID = 0;
+ PrintTypes::Print(id);
+ PrintTypes::Print(++rowID);
+ }
+ };
+
+ //=======================
+ // PrintUniqueRangeIDs()
+ // : sorting and uniquing -> will not be in genomic order
+ //=======================
+ struct PrintUniqueRangeIDs : private Visitors::Helpers::PrintDelim {
+ typedef Visitors::Helpers::PrintDelim Base;
+
+ explicit PrintUniqueRangeIDs(const std::string& delim = ";")
+ : Base(delim)
+ { /* */ }
+
+ template <typename Iter>
+ void operator()(Iter beg, Iter end) const {
+ typedef std::set<std::string> SortType;
+ if ( beg == end )
+ return;
+ SortType srt;
+ while ( beg != end ) {
+ srt.insert((*beg)->id());
+ ++beg;
+ } // while
+
+ typename SortType::iterator i = srt.begin();
+ PrintTypes::Print(i->c_str());
+ while ( ++i != srt.end() ) {
+ Base::operator()();
+ PrintTypes::Print(i->c_str());
+ } // while
+ }
+ };
+
+ //=========================
+ // PrintSortedRangeDelim()
+ //=========================
+ template <typename PrintType>
+ struct PrintSortedRangeDelim : private Visitors::Helpers::PrintDelim {
+ typedef Visitors::Helpers::PrintDelim Base;
+ typedef PrintType PType;
+
+ explicit PrintSortedRangeDelim(const PrintType& p = PrintType(),
+ const std::string& delim = ";")
+ : Base(delim), pt_(p)
+ { /* */ }
+
+ template <typename Iter>
+ void operator()(Iter beg, Iter end) const {
+ // It is possible that beg->end is not in an order of the
+ // original input file (sorted by sort-bed), due to issue of
+ // BED types (see BedBaseVisitor.hpp). Put things back here.
+ typedef std::set<
+ typename Iter::value_type,
+ Bed::GenomicAddressCompare<
+ typename std::remove_pointer<typename Iter::value_type>::type,
+ typename std::remove_pointer<typename Iter::value_type>::type
+ >
+ > SortType; // will be consistent with sort-bed
+ if ( beg == end )
+ return;
+ SortType srt(beg, end);
+
+ typename SortType::iterator i = srt.begin();
+ pt_.operator()(*i);
+ while ( ++i != srt.end() ) {
+ Base::operator()();
+ pt_.operator()(*i);
+ } // while
+ }
+
+ private:
+ PrintType pt_;
+ };
+
+ //=====================
+ // PrintGenomicRange()
+ //=====================
+ template <typename PrintType>
+ struct PrintGenomicRange {
+
+ explicit PrintGenomicRange(const PrintType& p = PrintType())
+ : pt_(p)
+ { /* */ }
+
+ template <typename Iter>
+ void operator()(Iter beg, Iter end) const {
+ // It is often possible/likely that beg->end is not in an order
+ // of the original input file (sorted by sort-bed), due to
+ // issues of BED types (see BedBaseVisitor.hpp).
+ if ( beg == end )
+ return;
+
+ typename std::remove_const<typename std::remove_pointer<typename Iter::value_type>::type>::type val = **beg;
+ while ( ++beg != end ) {
+ if ( val.start() > (*beg)->start() )
+ val.start((*beg)->start());
+ if ( val.end() < (*beg)->end() )
+ val.end((*beg)->end());
+ } // while
+
+ pt_.operator()(val);
+ }
+
+ private:
+ PrintType pt_;
+ };
+
+ } // namespace BedHelpers
+
+} // namespace Visitors
+
+#endif // _VISITOR_BED_POST_PROCESSING_
diff --git a/interfaces/general-headers/algorithm/visitors/helpers/ProcessVisitorRow.hpp b/interfaces/general-headers/algorithm/visitors/helpers/ProcessVisitorRow.hpp
new file mode 100644
index 0000000..b4fcbfc
--- /dev/null
+++ b/interfaces/general-headers/algorithm/visitors/helpers/ProcessVisitorRow.hpp
@@ -0,0 +1,176 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Dec. 7, 2009
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef _VISITOR_POST_PROCESSING_
+#define _VISITOR_POST_PROCESSING_
+
+#include <iostream>
+#include <ostream>
+#include <string>
+
+#include "data/measurement/NaN.hpp"
+#include "utility/PrintTypes.hpp"
+
+namespace Visitors {
+
+ namespace Helpers {
+
+ //=============
+ // DoNothing()
+ //=============
+ struct DoNothing {
+ void operator()(...) const { /* */ }
+ };
+
+
+ //======
+ // Keep
+ //======
+ template <typename ValueType>
+ struct Keep {
+ Keep() : isNan_(false), value_(0)
+ { }
+
+ template <typename T>
+ void operator()(T* t) {
+ value_ = static_cast<ValueType>(*t);
+ isNan_ = false;
+ }
+
+ template <typename T>
+ void operator()(const T& t) {
+ value_ = static_cast<ValueType>(t);
+ isNan_ = false;
+ }
+
+ void operator()(const Signal::NaN&) {
+ isNan_ = true;
+ }
+
+ bool isNan_;
+ ValueType value_;
+ };
+
+ //=========
+ // Print()
+ //=========
+ struct Print {
+ template <typename T>
+ void operator()(T* t) const {
+ PrintTypes::Print(*t);
+ }
+
+ template <typename T>
+ void operator()(const T& t) const {
+ PrintTypes::Print(t);
+ }
+ };
+
+ //===========
+ // Println()
+ //===========
+ struct Println {
+ template <typename T>
+ void operator()(T* t) const {
+ PrintTypes::Println(*t);
+ }
+
+ template <typename T>
+ void operator()(const T& t) const {
+ PrintTypes::Println(t);
+ }
+ };
+
+ //============
+ // PrintDelim
+ //============
+ struct PrintDelim {
+ explicit PrintDelim(const std::string& delim = "|")
+ : delim_(delim), isChar_(false) {
+ bool isaTab = (delim == "\t" || delim == "\\t" || delim == "'\t'");
+ bool isaNewline = (delim == "\n" || delim == "\\n" || delim == "'\n'");
+ if ( isaTab ) {
+ delim_ = "";
+ delim_ += '\t';
+ isChar_ = true;
+ }
+ else if ( isaNewline ) {
+ delim_ = "";
+ delim_ += '\n';
+ isChar_ = true;
+ } else if ( 1 == delim.size() ) {
+ delim_ = "";
+ delim_ += delim[0];
+ isChar_ = true;
+ }
+ }
+
+ explicit PrintDelim(char t) : delim_(""), isChar_(true) {
+ delim_ += t;
+ }
+
+ void operator()() const {
+ if ( isChar_ )
+ PrintTypes::Print(delim_[0]);
+ else
+ PrintTypes::Print(delim_.c_str());
+ }
+
+ private:
+ std::string delim_;
+ bool isChar_;
+ };
+
+ //==================
+ // PrintRangeDelim()
+ //===================
+ template <typename PrintType>
+ struct PrintRangeDelim : private PrintDelim {
+ typedef PrintDelim Base;
+ typedef PrintType PType;
+
+ explicit PrintRangeDelim(const PrintType& p = PrintType(),
+ const std::string& delim = ";")
+ : Base(delim), pt_(p)
+ { /* */ }
+
+ template <typename Iter>
+ void operator()(Iter beg, Iter end) const {
+ if ( beg == end )
+ return;
+ pt_.operator()(*beg);
+ while ( ++beg != end ) {
+ Base::operator()();
+ pt_.operator()(*beg);
+ } // while
+ }
+
+ private:
+ PrintType pt_;
+ };
+
+ } // namespace Helpers
+
+} // namespace Visitors
+
+#endif // _VISITOR_POST_PROCESSING_
diff --git a/interfaces/general-headers/algorithm/visitors/numerical/AverageVisitor.hpp b/interfaces/general-headers/algorithm/visitors/numerical/AverageVisitor.hpp
new file mode 100644
index 0000000..6380d3b
--- /dev/null
+++ b/interfaces/general-headers/algorithm/visitors/numerical/AverageVisitor.hpp
@@ -0,0 +1,80 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Thu Aug 23 17:42:22 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef CLASS_WINDOW_AVERAGE_VISITOR_H
+#define CLASS_WINDOW_AVERAGE_VISITOR_H
+
+#include "data/measurement/NaN.hpp"
+
+namespace Visitors {
+
+ template <
+ typename Process,
+ typename BaseVisitor
+ >
+ struct Average : BaseVisitor {
+
+ typedef BaseVisitor BaseClass;
+ typedef Process ProcessType;
+ typedef typename BaseClass::RefType RefType;
+ typedef typename BaseClass::MapType MapType;
+
+ explicit Average(const ProcessType& pt = ProcessType())
+ : pt_(pt), sum_(0), counter_(0)
+ { /* */ }
+
+ inline void Add(MapType* bt) {
+ sum_ += *bt;
+ ++counter_;
+ }
+
+ inline void Delete(MapType* bt) {
+ sum_ -= *bt;
+ --counter_;
+ }
+
+ inline void DoneReference() {
+ static const Signal::NaN nan = Signal::NaN();
+ if ( counter_ > 0 )
+ pt_.operator()(sum_/counter_);
+ else
+ pt_.operator()(nan);
+ }
+
+ inline void End() {
+ sum_ = 0;
+ counter_ = 0;
+ }
+
+ virtual ~Average()
+ { /* */ }
+
+ protected:
+ ProcessType pt_;
+ double sum_;
+ int counter_;
+ };
+
+} // namespace Visitors
+
+#endif // CLASS_WINDOW_AVERAGE_VISITOR_H
diff --git a/interfaces/general-headers/algorithm/visitors/numerical/CoeffVariationVisitor.hpp b/interfaces/general-headers/algorithm/visitors/numerical/CoeffVariationVisitor.hpp
new file mode 100644
index 0000000..bebc298
--- /dev/null
+++ b/interfaces/general-headers/algorithm/visitors/numerical/CoeffVariationVisitor.hpp
@@ -0,0 +1,87 @@
+/*
+ Author: Shane Neph, Scott Kuehn
+ Date: Tue Sep 7 22:52:08 PDT 2010
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef _COEFF_VARIATION_HPP
+#define _COEFF_VARIATION_HPP
+
+#include <cmath>
+
+#include "data/measurement/NaN.hpp"
+
+namespace Visitors {
+
+ template <
+ typename Process,
+ typename BaseVisitor
+ >
+ struct CoeffVariation : BaseVisitor {
+
+ typedef BaseVisitor BaseClass;
+ typedef Process ProcessType;
+ typedef typename BaseClass::RefType RefType;
+ typedef typename BaseClass::MapType MapType;
+
+ explicit CoeffVariation(const ProcessType& pt = ProcessType())
+ : pt_(pt), sum_(0), squareSum_(0), count_(0)
+ { /* */ }
+
+ inline void Add(MapType* bt) {
+ sum_ += *bt;
+ squareSum_ += (*bt * *bt);
+ count_++;
+ }
+
+ inline void Delete(MapType* bt) {
+ sum_ -= *bt;
+ squareSum_ -= (*bt * *bt);
+ count_--;
+ }
+
+ inline void DoneReference() {
+ static const Signal::NaN nan = Signal::NaN();
+ if ( count_ <= 1 )
+ pt_.operator()(nan);
+ else {
+ double numer = (count_ * squareSum_) - (sum_ * sum_);
+ double denom = (count_ * (count_ - 1));
+ double stdev = std::sqrt(numer / denom);
+ double mean = (sum_ / count_);
+ if ( mean == 0 )
+ pt_.operator()(nan);
+ else
+ pt_.operator()(stdev/mean);
+ }
+ }
+
+ virtual ~CoeffVariation() { /* */ }
+
+ protected:
+ ProcessType pt_;
+ double sum_;
+ double squareSum_;
+ double count_;
+ };
+
+} // namespace Visitors
+
+#endif // _COEFF_VARIATION_HPP
diff --git a/interfaces/general-headers/algorithm/visitors/numerical/CountVisitor.hpp b/interfaces/general-headers/algorithm/visitors/numerical/CountVisitor.hpp
new file mode 100644
index 0000000..7a649d9
--- /dev/null
+++ b/interfaces/general-headers/algorithm/visitors/numerical/CountVisitor.hpp
@@ -0,0 +1,68 @@
+/*
+ Author: Scott Kuehn, Shane Neph
+ Date: Wed Sep 5 09:23:00 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef COUNT_VISITOR_HPP
+#define COUNT_VISITOR_HPP
+
+namespace Visitors {
+
+ // Count the occurrence of overlaps
+ template <
+ typename Process,
+ typename BaseVisitor
+ >
+ struct Count : BaseVisitor {
+
+ typedef BaseVisitor BaseClass;
+ typedef Process ProcessType;
+ typedef typename BaseClass::RefType RefType;
+ typedef typename BaseClass::MapType MapType;
+
+ explicit Count(const ProcessType& pt = ProcessType())
+ : pt_(pt), count_(0)
+ { /* */ }
+
+ inline void Add(MapType*)
+ { ++count_; }
+
+ inline void Delete(MapType*)
+ { --count_; }
+
+ inline void DoneReference() {
+ pt_.operator()(count_);
+ }
+
+ inline void End() {
+ count_ = 0;
+ }
+
+ virtual ~Count() { }
+
+ protected:
+ ProcessType pt_;
+ int count_;
+ };
+
+} // namespace Visitors
+
+#endif // COUNT_VISITOR_HPP
diff --git a/interfaces/general-headers/algorithm/visitors/numerical/ExtremeVisitor.hpp b/interfaces/general-headers/algorithm/visitors/numerical/ExtremeVisitor.hpp
new file mode 100644
index 0000000..d9c9de1
--- /dev/null
+++ b/interfaces/general-headers/algorithm/visitors/numerical/ExtremeVisitor.hpp
@@ -0,0 +1,86 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Thu Aug 23 17:42:22 PDT 2007
+*/
+
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef CLASS_WINDOW_EXTREME_VISITOR_H
+#define CLASS_WINDOW_EXTREME_VISITOR_H
+
+#include <iostream>
+#include <set>
+#include <string>
+
+#include "data/measurement/NaN.hpp"
+#include "utility/OrderCompare.hpp"
+
+namespace Visitors {
+
+ /*
+ CompType requires value + address comparisons; we must use a std::set<>
+ not a std::multiset<>. Use a version of the templated
+ CompValueThenAddress<> or a similar idea.
+ */
+ template <
+ typename Process,
+ typename BaseVisitor,
+ typename CompType = Ordering::CompValueThenAddressLesser<
+ typename BaseVisitor::mapping_type,
+ typename BaseVisitor::mapping_type
+ >
+ >
+ struct Extreme : BaseVisitor {
+
+ typedef BaseVisitor BaseClass;
+ typedef Process ProcessType;
+ typedef typename BaseVisitor::RefType RefType;
+ typedef typename BaseVisitor::MapType MapType;
+
+ explicit Extreme(const ProcessType& pt = ProcessType()) : pt_(pt) { /* */ }
+
+ inline void Add(MapType* bt) {
+ m_.insert(bt);
+ }
+
+ inline void Delete(MapType* bt) {
+ m_.erase(bt);
+ }
+
+ inline void DoneReference() {
+ static const Signal::NaN nan = Signal::NaN();
+ if ( !m_.empty() ) {
+ pt_.operator()(*m_.begin());
+ }
+ else
+ pt_.operator()(nan);
+ }
+
+ virtual ~Extreme() { /* */ }
+
+ protected:
+ ProcessType pt_;
+ std::set<MapType*, CompType> m_;
+ };
+
+} // namespace Visitors
+
+
+#endif // CLASS_WINDOW_EXTREME_VISITOR_H
diff --git a/interfaces/general-headers/algorithm/visitors/numerical/IndicatorVisitor.hpp b/interfaces/general-headers/algorithm/visitors/numerical/IndicatorVisitor.hpp
new file mode 100644
index 0000000..c68eae1
--- /dev/null
+++ b/interfaces/general-headers/algorithm/visitors/numerical/IndicatorVisitor.hpp
@@ -0,0 +1,60 @@
+/*
+ Author: Shane Neph, Scott Kuehn
+ Date: Fri Jun 15 15:38:10 PDT 2012
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef INDICATOR_VISITOR_HPP
+#define INDICATOR_VISITOR_HPP
+
+#include "algorithm/visitors/helpers/ProcessVisitorRow.hpp"
+#include "algorithm/visitors/numerical/CountVisitor.hpp"
+
+namespace Visitors {
+
+ // Indicate the occurrence of overlaps
+ template <
+ typename Process,
+ typename BaseVisitor
+ >
+ struct Indicator : Count<Visitors::Helpers::DoNothing, BaseVisitor> {
+
+ typedef Count<Visitors::Helpers::DoNothing, BaseVisitor> BaseClass;
+ typedef Process ProcessType;
+ typedef typename BaseClass::RefType RefType;
+ typedef typename BaseClass::MapType MapType;
+
+ explicit Indicator(const ProcessType& = ProcessType())
+ : BaseClass(Visitors::Helpers::DoNothing())
+ { /* */ }
+
+ inline void DoneReference() {
+ pt_.operator()(BaseClass::count_ > 0 ? 1 : 0);
+ }
+
+ virtual ~Indicator() { }
+
+ protected:
+ ProcessType pt_;
+ };
+
+} // namespace Visitors
+
+#endif // INDICATOR_VISITOR_HPP
diff --git a/interfaces/general-headers/algorithm/visitors/numerical/MedianAbsoluteDeviationVisitor.hpp b/interfaces/general-headers/algorithm/visitors/numerical/MedianAbsoluteDeviationVisitor.hpp
new file mode 100644
index 0000000..21b02ba
--- /dev/null
+++ b/interfaces/general-headers/algorithm/visitors/numerical/MedianAbsoluteDeviationVisitor.hpp
@@ -0,0 +1,122 @@
+/*
+ Author: Shane Neph, Sean Thomas
+ Date: Wed Aug 18 23:28:17 PDT 2010
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef _MAD_VISITOR_HPP
+#define _MAD_VISITOR_HPP
+
+#include <algorithm>
+#include <cmath>
+#include <functional>
+#include <set>
+#include <vector>
+
+#include "algorithm/visitors/numerical/RollingKthAverageVisitor.hpp"
+#include "data/measurement/NaN.hpp"
+#include "data/measurement/SelectMeasureType.hpp"
+#include "utility/Exception.hpp"
+
+namespace Visitors {
+
+ namespace details {
+
+ template <typename T>
+ struct abs_diff : std::binary_function<T, T, T> {
+ T operator()(const T& t1, const T& t2) const {
+ T diff = t1 - t2;
+ if ( diff < 0 )
+ return(-diff);
+ return(diff);
+ }
+ };
+
+ } // details
+
+ template <
+ typename Process,
+ typename BaseVisitor,
+ typename ExceptionType = Ext::ArgumentError
+ >
+ struct MedianAbsoluteDeviation : RollingKthAverage<
+ Helpers::Keep<typename Signal::SelectMeasure<typename BaseVisitor::MapType>::MeasureType>,
+ BaseVisitor, ExceptionType> {
+
+ typedef typename Signal::SelectMeasure<typename BaseVisitor::MapType>::MeasureType MT;
+ typedef RollingKthAverage<Helpers::Keep<MT>, BaseVisitor, ExceptionType> BaseClass;
+ typedef Process ProcessType;
+ typedef typename BaseClass::RefType RefType;
+ typedef typename BaseClass::MapType MapType;
+
+ // Using default multiplier == 1 // see wikipedia
+ explicit MedianAbsoluteDeviation(const ProcessType& pt = ProcessType(), double mult = 1)
+ : BaseClass(0.5, Helpers::Keep<MT>()), pt_(pt), mult_(mult)
+ { /* */ }
+
+ inline void DoneReference() {
+ static const Signal::NaN nan = Signal::NaN();
+ if ( BaseClass::scoresBuf_.size() <= 1 ) {
+ pt_.operator()(nan);
+ return;
+ }
+
+ BaseClass::DoneReference();
+ MT median = BaseClass::pt_.value_;
+ if ( BaseClass::pt_.isNan_ ) {
+ pt_.operator()(nan);
+ return;
+ }
+
+ std::vector<MT> vec;
+ typename std::vector<MT>::iterator n = vec.begin();
+ typedef typename BaseClass::ScoreTypeContainer::iterator IterType;
+ for ( IterType i = BaseClass::scoresBuf_.begin(); i != BaseClass::scoresBuf_.end(); ++i )
+ vec.push_back(static_cast<MT>(**i));
+
+ std::transform(vec.begin(), vec.end(), vec.begin(), std::bind2nd(details::abs_diff<MT>(), median));
+ std::size_t sz = vec.size();
+ MT mad = 0;
+ if ( sz % 2 == 0 ) {
+ n = vec.begin() + static_cast<std::size_t>(sz / 2.0 - 1);
+ std::nth_element(vec.begin(), n, vec.end());
+ mad = static_cast<MT>(*n);
+ n = vec.begin() + static_cast<std::size_t>(sz / 2.0);
+ std::nth_element(vec.begin(), n, vec.end());
+ mad += static_cast<MT>(*n);
+ mad /= 2.0;
+ } else {
+ n = vec.begin() + static_cast<std::size_t>(std::floor(sz / 2.0));
+ std::nth_element(vec.begin(), n, vec.end());
+ mad = *n;
+ }
+ pt_.operator()(mad * mult_);
+ }
+
+ virtual ~MedianAbsoluteDeviation() { /* */ }
+
+ protected:
+ ProcessType pt_;
+ const double mult_;
+ };
+
+} // namespace Visitors
+
+#endif // _MAD_VISITOR_HPP
diff --git a/interfaces/general-headers/algorithm/visitors/numerical/MedianVisitor.hpp b/interfaces/general-headers/algorithm/visitors/numerical/MedianVisitor.hpp
new file mode 100644
index 0000000..441169a
--- /dev/null
+++ b/interfaces/general-headers/algorithm/visitors/numerical/MedianVisitor.hpp
@@ -0,0 +1,65 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Mon Aug 9 18:59:15 PDT 2010
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef ROLLING_MEDIAN_VISITOR_HPP
+#define ROLLING_MEDIAN_VISITOR_HPP
+
+#include <cmath>
+#include <cstdlib>
+#include <set>
+#include <string>
+
+#include "algorithm/visitors/numerical/RollingKthAverageVisitor.hpp"
+#include "utility/Exception.hpp"
+
+namespace Visitors {
+
+ template <
+ typename Process,
+ typename BaseVisitor,
+ typename ExceptionType = Ext::ArgumentError
+ >
+ struct Median : RollingKthAverage<Process, BaseVisitor, ExceptionType> {
+
+ typedef RollingKthAverage<Process, BaseVisitor, ExceptionType> BaseClass;
+ typedef Process ProcessType;
+ typedef typename BaseClass::RefType RefType;
+ typedef typename BaseClass::MapType MapType;
+ typedef MapType* PtrType;
+
+ //==============
+ // Construction
+ //==============
+ explicit Median(const ProcessType& pt = ProcessType()) :
+ BaseClass(0.5, pt) { /* */ }
+
+ //===========
+ // Cleanup()
+ //===========
+ virtual ~Median()
+ { /* */ }
+ };
+
+} // namespace Visitors
+
+#endif // ROLLING_MEDIAN_VISITOR_HPP
diff --git a/interfaces/general-headers/algorithm/visitors/numerical/RollingKthAverageVisitor.hpp b/interfaces/general-headers/algorithm/visitors/numerical/RollingKthAverageVisitor.hpp
new file mode 100644
index 0000000..03e74b4
--- /dev/null
+++ b/interfaces/general-headers/algorithm/visitors/numerical/RollingKthAverageVisitor.hpp
@@ -0,0 +1,111 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Mon Aug 20 14:22:38 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef ROLLING_KTH_VISITOR_AVERAGE_HPP
+#define ROLLING_KTH_VISITOR_AVERAGE_HPP
+
+#include <cmath>
+#include <cstdlib>
+#include <set>
+#include <string>
+
+#include "algorithm/visitors/helpers/ProcessVisitorRow.hpp"
+#include "algorithm/visitors/numerical/RollingKthVisitor.hpp"
+#include "data/measurement/NaN.hpp"
+#include "data/measurement/SelectMeasureType.hpp"
+
+namespace Visitors {
+
+ template <
+ typename Process,
+ typename BaseVisitor,
+ typename ExceptionType = Ext::ArgumentError
+ >
+ struct RollingKthAverage : RollingKth<Visitors::Helpers::DoNothing, BaseVisitor, ExceptionType> {
+
+ typedef RollingKth<Visitors::Helpers::DoNothing, BaseVisitor, ExceptionType> BaseClass;
+ typedef Process ProcessType;
+ typedef typename BaseClass::RefType RefType;
+ typedef typename BaseClass::MapType MapType;
+ typedef MapType* PtrType;
+
+ //==============
+ // Construction
+ //==============
+ explicit RollingKthAverage(double kth = 0.8, const ProcessType& pt = ProcessType())
+ : BaseClass(kth, Visitors::Helpers::DoNothing()), pt_(pt) { /* */ }
+
+ //====================================
+ // Repositioning and Reporting Phases
+ //====================================
+ inline void DoneReference() {
+ BaseClass::DoneReference();
+
+ // The calculations below are based upon suggestions from wikipedia.
+ // They are different from the base class' implementation
+ typedef typename Signal::SelectMeasure<MapType>::MeasureType MT;
+ std::size_t size = BaseClass::scoresBuf_.size();
+ std::size_t kthPosUp = static_cast<std::size_t>(std::ceil(static_cast<double>(BaseClass::kthValue_ * size)));
+ std::size_t kthPosDown = static_cast<std::size_t>(std::floor(static_cast<double>(BaseClass::kthValue_ * size)));
+ if ( kthPosUp > 0 ) // make zero-based
+ --kthPosUp;
+ if ( kthPosDown > 0 ) // make zero-based
+ --kthPosDown;
+
+ if ( size > 1 ) {
+ if ( kthPosUp == kthPosDown ) { // a true integer; take average of two adjacent integers
+ double one = **BaseClass::currentMarker_;
+ typename BaseClass::ScoreTypeContainer::iterator next = BaseClass::currentMarker_;
+ double two = **++next;
+ pt_.operator()((one + two)/2.0);
+ } else if ( BaseClass::currentAtPos_ == kthPosUp ) {
+ pt_.operator()(static_cast<MT>(**BaseClass::currentMarker_));
+ } else { // BaseClass::currentAtPos_ == kthPosDown; round up to kthPosUp per wikipedia
+ typename BaseClass::ScoreTypeContainer::iterator next = BaseClass::currentMarker_;
+ pt_.operator()(static_cast<MT>(**++next));
+ }
+ } else if ( 1 == size ) {
+ pt_.operator()(static_cast<MT>(**BaseClass::currentMarker_));
+ } else {
+ static const Signal::NaN nan = Signal::NaN();
+ pt_.operator()(nan);
+ }
+ }
+
+ //===========
+ // Cleanup()
+ //===========
+ virtual ~RollingKthAverage()
+ { /* */ }
+
+ protected:
+ typedef Ordering::CompValueThenAddressLesser<MapType, MapType> Comp;
+ typedef std::set<PtrType, Comp> ScoreTypeContainer;
+
+ protected:
+ ProcessType pt_;
+ };
+
+} // namespace Visitors
+
+#endif // ROLLING_KTH_VISITOR_AVERAGE_HPP
diff --git a/interfaces/general-headers/algorithm/visitors/numerical/RollingKthVisitor.hpp b/interfaces/general-headers/algorithm/visitors/numerical/RollingKthVisitor.hpp
new file mode 100644
index 0000000..0f8c695
--- /dev/null
+++ b/interfaces/general-headers/algorithm/visitors/numerical/RollingKthVisitor.hpp
@@ -0,0 +1,154 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Mon Aug 20 14:22:38 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef ROLLING_KTH_VISITOR_HPP
+#define ROLLING_KTH_VISITOR_HPP
+
+#include <cmath>
+#include <cstdlib>
+#include <set>
+#include <string>
+
+#include "data/measurement/SelectMeasureType.hpp"
+#include "data/measurement/NaN.hpp"
+#include "utility/Assertion.hpp"
+#include "utility/Exception.hpp"
+#include "utility/OrderCompare.hpp"
+
+namespace Visitors {
+
+ template <
+ typename Process,
+ typename BaseVisitor,
+ typename ExceptionType = Ext::ArgumentError
+ >
+ struct RollingKth : BaseVisitor {
+
+ typedef BaseVisitor BaseClass;
+ typedef Process ProcessType;
+ typedef typename BaseClass::RefType RefType;
+ typedef typename BaseClass::MapType MapType;
+ typedef MapType* PtrType;
+
+ //==============
+ // Construction
+ //==============
+ explicit RollingKth(double kth = 0.8, const ProcessType& pt = ProcessType())
+ : kthValue_(kth), currentAtPos_(0), pt_(pt) {
+ currentMarker_ = scoresBuf_.end();
+ Ext::Assert<ExceptionType>(kth >= 0 && kth <= 1, "Expect 0 <= kth <= 1");
+ }
+
+ //======================================
+ // Windowing Phase : Add() and Delete()
+ //======================================
+ inline void Add(PtrType ptr) {
+ static Comp comp;
+ scoresBuf_.insert(ptr);
+ if ( currentMarker_ == scoresBuf_.end() ) {
+ currentMarker_ = scoresBuf_.begin();
+ currentAtPos_ = 0;
+ }
+ else if ( comp(ptr, *currentMarker_) ) // ptr < currentMarker_
+ ++currentAtPos_;
+ }
+
+ inline void Delete(PtrType toRemove) {
+ // keep in mind that you cannot be here if there is <= 1 element
+ // in the scoresBuf_ containers.
+ static Comp comp;
+ if ( comp(toRemove, *currentMarker_) ) // toRemove < currentMarker_
+ --currentAtPos_;
+ else if ( toRemove == *currentMarker_ ) { // removing currentMarker_
+ if ( currentMarker_ != scoresBuf_.begin() ) {
+ --currentMarker_;
+ --currentAtPos_;
+ }
+ else {
+ ++currentMarker_;
+ // currentAtPos_ remains the same
+ }
+ }
+ scoresBuf_.erase(toRemove);
+ }
+
+ //====================================
+ // Repositioning and Reporting Phases
+ //====================================
+ inline void DoneReference() {
+ // guaranteed: 0 < kthValue <= 1
+ typedef typename Signal::SelectMeasure<MapType>::MeasureType MT;
+ std::size_t size = scoresBuf_.size();
+ std::size_t kthPos = static_cast<std::size_t>(iround(kthValue_ * size));
+ if ( kthPos > 0 ) // make zero based
+ --kthPos;
+
+ while ( kthPos > currentAtPos_ ) { // need to increment currentMarker_
+ ++currentMarker_;
+ ++currentAtPos_;
+ } // while incrementing
+
+ while ( kthPos < currentAtPos_ ) { // need to decrement currentMarker_
+ currentMarker_--;
+ --currentAtPos_;
+ } // while decrementing
+
+ if ( size )
+ pt_.operator()(static_cast<MT>(**currentMarker_));
+ else {
+ static const Signal::NaN nan = Signal::NaN();
+ pt_.operator()(nan);
+ }
+ }
+
+ //===========
+ // Cleanup()
+ //===========
+ virtual ~RollingKth()
+ { /* */ }
+
+ protected:
+ typedef Ordering::CompValueThenAddressLesser<MapType, MapType> Comp;
+ typedef std::set<PtrType, Comp> ScoreTypeContainer;
+
+ protected:
+ const double kthValue_;
+ std::size_t currentAtPos_;
+ ProcessType pt_;
+ ScoreTypeContainer scoresBuf_;
+ typename ScoreTypeContainer::iterator currentMarker_;
+
+ protected:
+ inline double iround(double d) {
+ double d1 = std::ceil(d);
+ return( (d >= 0) ?
+ ((d1-d > 0.5) ? std::floor(d) : d1)
+ :
+ ((d1-d >= 0.5) ? std::floor(d) : d1)
+ );
+ }
+ };
+
+} // namespace Visitors
+
+#endif // ROLLING_KTH_VISITOR_HPP
diff --git a/interfaces/general-headers/algorithm/visitors/numerical/StdevVisitor.hpp b/interfaces/general-headers/algorithm/visitors/numerical/StdevVisitor.hpp
new file mode 100644
index 0000000..9cda217
--- /dev/null
+++ b/interfaces/general-headers/algorithm/visitors/numerical/StdevVisitor.hpp
@@ -0,0 +1,83 @@
+/*
+ Author: Scott Kuehn, Shane Neph
+ Date: Wed Oct 3 09:25:51 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef STDEVVISITOR_HPP
+#define STDEVVISITOR_HPP
+
+#include <cmath>
+
+#include "data/measurement/NaN.hpp"
+
+namespace Visitors {
+
+ template <
+ typename Process,
+ typename BaseVisitor
+ >
+ struct StdDev : BaseVisitor {
+
+ typedef BaseVisitor BaseClass;
+ typedef Process ProcessType;
+ typedef typename BaseClass::RefType RefType;
+ typedef typename BaseClass::MapType MapType;
+
+ explicit StdDev(const ProcessType& pt = ProcessType())
+ : pt_(pt), sum_(0), squareSum_(0), count_(0)
+ { /* */ }
+
+ inline void Add(MapType* bt) {
+ sum_ += *bt;
+ squareSum_ += (*bt * *bt);
+ count_++;
+ }
+
+ inline void Delete(MapType* bt) {
+ sum_ -= *bt;
+ squareSum_ -= (*bt * *bt);
+ count_--;
+ }
+
+ inline void DoneReference() {
+ static const Signal::NaN nan = Signal::NaN();
+ if ( count_ <= 1 )
+ pt_.operator()(nan);
+ else {
+ double numer = (count_ * squareSum_) - (sum_ * sum_);
+ double denom = (count_ * (count_ - 1));
+ double val = std::sqrt(numer / denom);
+ pt_.operator()(val);
+ }
+ }
+
+ virtual ~StdDev() { /* */ }
+
+ protected:
+ ProcessType pt_;
+ double sum_;
+ double squareSum_;
+ double count_;
+ };
+
+} // namespace Visitors
+
+#endif // STDEVVISITOR_HPP
diff --git a/interfaces/general-headers/algorithm/visitors/numerical/SumVisitor.hpp b/interfaces/general-headers/algorithm/visitors/numerical/SumVisitor.hpp
new file mode 100644
index 0000000..c0d6d95
--- /dev/null
+++ b/interfaces/general-headers/algorithm/visitors/numerical/SumVisitor.hpp
@@ -0,0 +1,72 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Mon Aug 27 10:17:36 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef CLASS_WINDOW_SUM_VISITOR_H
+#define CLASS_WINDOW_SUM_VISITOR_H
+
+#include "data/measurement/SelectMeasureType.hpp"
+#include "data/measurement/NaN.hpp"
+
+namespace Visitors {
+
+ template <
+ typename Process,
+ typename BaseVisitor
+ >
+ struct Sum : public BaseVisitor {
+
+ typedef BaseVisitor BaseClass;
+ typedef Process ProcessType;
+ typedef typename BaseClass::RefType RefType;
+ typedef typename BaseClass::MapType MapType;
+
+ explicit Sum(const ProcessType& pt = ProcessType())
+ : pt_(pt), sum_(0), counter_(0)
+ { /* */ }
+
+ inline void Add(MapType* bt)
+ { sum_ += *bt; ++counter_; }
+
+ inline void Delete(MapType* bt)
+ { sum_ -= *bt; --counter_; }
+
+ inline void DoneReference() {
+ static const Signal::NaN nan = Signal::NaN();
+ if ( 0 < counter_ )
+ pt_.operator()(sum_);
+ else
+ pt_.operator()(nan);
+ }
+
+ virtual ~Sum()
+ { /* */ }
+
+ protected:
+ ProcessType pt_;
+ typename Signal::SelectMeasure<MapType>::MeasureType sum_;
+ int counter_;
+ };
+
+} // namespace Visitors
+
+#endif // CLASS_WINDOW_SUM_VISITOR_H
diff --git a/interfaces/general-headers/algorithm/visitors/numerical/TrimmedMeanVisitor.hpp b/interfaces/general-headers/algorithm/visitors/numerical/TrimmedMeanVisitor.hpp
new file mode 100644
index 0000000..83a0e45
--- /dev/null
+++ b/interfaces/general-headers/algorithm/visitors/numerical/TrimmedMeanVisitor.hpp
@@ -0,0 +1,224 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Mon Aug 20 14:22:38 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef TMEANS_VISITOR_HPP
+#define TMEANS_VISITOR_HPP
+
+#include <cmath>
+#include <cstdlib>
+#include <limits>
+#include <set>
+#include <string>
+
+#include "data/measurement/NaN.hpp"
+#include "utility/Assertion.hpp"
+#include "utility/Exception.hpp"
+#include "utility/OrderCompare.hpp"
+
+namespace Visitors {
+
+ template <
+ typename Process,
+ typename BaseVisitor,
+ typename ExceptionType = Ext::ArgumentError
+ >
+ struct TrimmedMean : BaseVisitor {
+
+ typedef BaseVisitor BaseClass;
+ typedef Process ProcessType;
+ typedef typename BaseClass::RefType RefType;
+ typedef typename BaseClass::MapType MapType;
+ typedef MapType* PtrType;
+ typedef Ordering::CompValueThenAddressLesser<MapType, MapType> Comp;
+ typedef std::set<PtrType, Comp> ScoreTypeContainer;
+
+
+ //==============
+ // Construction
+ //==============
+ explicit TrimmedMean(double lowerKth=0.2, double upperKth = 0.8, const ProcessType& pt = ProcessType())
+ : lowerKth_(lowerKth), upperKth_(upperKth), lowerSum_(0), upperSum_(0), currentAtPosLower_(0),
+ currentAtPosUpper_(0), doKth_(false), symmetric_(false), pt_(pt) {
+ currentMarkerLower_ = scoresBuf_.end(), currentMarkerUpper_ = scoresBuf_.end();
+ Ext::Assert<ExceptionType>(lowerKth_ >= 0 && lowerKth_ <= 1, "Expect 0 <= lowerKth <= 1");
+ Ext::Assert<ExceptionType>(upperKth_ >= 0 && upperKth_ <= 1, "Expect 0 <= upperKth <= 1");
+ const double epsilon = std::numeric_limits<double>::epsilon();
+ if ( std::abs(1.0-lowerKth-upperKth) <= epsilon )
+ doKth_ = true;
+
+ if ( std::abs(lowerKth_ - upperKth_) <= epsilon ) // symmetric: trim same # elements from both ends
+ symmetric_ = true;
+ Ext::Assert<ExceptionType>(lowerKth + upperKth <= 1+epsilon, "Expect lowerKth + upperKth <= 1");
+ }
+
+ //======================================
+ // Windowing Phase : Add() and Delete()
+ //======================================
+ inline void Add(PtrType ptr) {
+ scoresBuf_.insert(ptr);
+ if ( lowerKth_ > 0 && !doKth_ )
+ add(ptr, currentMarkerLower_, currentAtPosLower_, lowerSum_);
+ add(ptr, currentMarkerUpper_, currentAtPosUpper_, upperSum_);
+ }
+
+ inline void Delete(PtrType toRemove) {
+ // keep in mind that you cannot be here if there is <= 1 element
+ // in the scoresBuf_ containers.
+ if ( lowerKth_ > 0 && !doKth_ )
+ remove(toRemove, currentMarkerLower_, currentAtPosLower_, lowerSum_);
+ remove(toRemove, currentMarkerUpper_, currentAtPosUpper_, upperSum_);
+ scoresBuf_.erase(toRemove);
+ }
+
+ //====================================
+ // Repositioning and Reporting Phases
+ //====================================
+ inline void DoneReference() {
+ // currentMarkerLower_ marks the last element in the subsequence to be ignored
+ // (not one passed that, but on that)
+ // currentMarkerUpper_ marks the last element to be included in the output
+ // (not one passed that, but on that)
+ // output mean of sequence (..] formed by currentMarkerLower_ to currentMarkerUpper_
+ //
+ // if doKth_ is true, then we are just reporting the element pointed to by currentMarkerUpper_
+ // following its update. This is really a kth usage. Bob T. found certain math packages
+ // work this way, where, for example, tmean is called with 0.3 and 0.7. The lower and upper
+ // markers end up pointing to the same element. That element is not part of the sequence of
+ // interest for the lower marker, but is part of the sequence of interest for the upper marker.
+ // So, another way to get the kth element.
+
+ // guaranteed: 0 <= kth-value <= 1
+ if ( scoresBuf_.empty() ) {
+ static const Signal::NaN nan = Signal::NaN();
+ pt_.operator()(nan);
+ return;
+ }
+
+ std::size_t size = scoresBuf_.size();
+ std::size_t kthPosLow = static_cast<std::size_t>(iround(lowerKth_ * size));
+ std::size_t kthPosHigh = static_cast<std::size_t>(iround(upperKth_ * size));
+ kthPosHigh = size - kthPosHigh;
+ if ( symmetric_ ) {
+ kthPosLow = std::max(kthPosLow, size - kthPosHigh);
+ kthPosHigh = size - kthPosLow;
+ }
+ bool doLow = kthPosLow > 0;
+
+ if ( doLow )
+ --kthPosLow; // make zero-based
+ if ( kthPosHigh > 0 )
+ --kthPosHigh; // make zero-based
+
+ if ( !doKth_ && doLow )
+ doneRef(currentMarkerLower_, currentAtPosLower_, lowerSum_, kthPosLow);
+ doneRef(currentMarkerUpper_, currentAtPosUpper_, upperSum_, kthPosHigh);
+
+ // Spit results
+ if ( doKth_ || currentAtPosUpper_ == currentAtPosLower_ )
+ pt_.operator()(*currentMarkerUpper_); // single element related to kth - Bob T. thinks this is best
+ else if ( doLow )
+ pt_.operator()((upperSum_ - lowerSum_)/(currentAtPosUpper_ - currentAtPosLower_));
+ else
+ pt_.operator()(upperSum_ / (currentAtPosUpper_ + 1));
+ }
+
+ //===========
+ // Cleanup()
+ //===========
+ virtual ~TrimmedMean()
+ { /* */ }
+
+
+ protected:
+ inline void add(PtrType ptr, typename ScoreTypeContainer::iterator& marker, std::size_t& pos, double& sum) {
+ static Comp comp;
+ if ( marker == scoresBuf_.end() ) {
+ marker = scoresBuf_.begin();
+ pos = 0;
+ sum = *ptr;
+ } else if ( comp(ptr, *marker) ) { // ptr < marker
+ ++pos;
+ sum += *ptr;
+ }
+ }
+
+ inline void remove(PtrType ptr, typename ScoreTypeContainer::iterator& marker, std::size_t& pos, double& sum) {
+ // keep in mind that you cannot be here if there is <= 1 element
+ // in the scoresBuf_ containers.
+ static Comp comp;
+ if ( comp(ptr, *marker) ) { // toRemove < marker
+ --pos;
+ sum -= *ptr;
+ }
+ else if ( ptr == *marker ) { // removing marker
+ sum -= *ptr;
+ if ( marker != scoresBuf_.begin() ) {
+ --marker;
+ --pos;
+ } else {
+ if ( ++marker != scoresBuf_.end() )
+ sum += **marker;
+ // pos remains the same
+ }
+ }
+ }
+
+ inline void doneRef(typename ScoreTypeContainer::iterator& marker, std::size_t& pos, double& sum, std::size_t newPos) {
+
+ // Increment markers as needed
+ while ( newPos > pos ) {
+ sum += **++marker;
+ ++pos;
+ } // while
+
+ // Decrement markers as needed
+ while ( newPos < pos ) {
+ sum -= **marker--;
+ --pos;
+ } // while
+ }
+
+ protected:
+ const double lowerKth_;
+ const double upperKth_;
+ double lowerSum_, upperSum_;
+ std::size_t currentAtPosLower_, currentAtPosUpper_;
+ bool doKth_, symmetric_;
+ ProcessType pt_;
+ ScoreTypeContainer scoresBuf_;
+ typename ScoreTypeContainer::iterator currentMarkerLower_, currentMarkerUpper_;
+
+ private:
+ inline double iround(double d) {
+ double d1 = std::ceil(d);
+ return( (d >= 0) ?
+ ((d1-d > 0.5) ? std::floor(d) : d1)
+ :
+ ((d1-d >= 0.5) ? std::floor(d) : d1)
+ );
+ }
+ };
+
+} // namespace Visitors
+
+#endif // TMEANS_VISITOR_HPP
diff --git a/interfaces/general-headers/algorithm/visitors/numerical/VarianceVisitor.hpp b/interfaces/general-headers/algorithm/visitors/numerical/VarianceVisitor.hpp
new file mode 100644
index 0000000..52a9fca
--- /dev/null
+++ b/interfaces/general-headers/algorithm/visitors/numerical/VarianceVisitor.hpp
@@ -0,0 +1,80 @@
+/*
+ Author: Scott Kuehn, Shane Neph
+ Date: Thu Sep 27 16:47:55 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef VARIANCEVISITOR_HPP
+#define VARIANCEVISITOR_HPP
+
+#include "data/measurement/NaN.hpp"
+
+namespace Visitors {
+
+ template <
+ typename Process,
+ typename BaseVisitor
+ >
+ struct Variance : BaseVisitor {
+
+ typedef BaseVisitor BaseClass;
+ typedef Process ProcessType;
+ typedef typename BaseClass::RefType RefType;
+ typedef typename BaseClass::MapType MapType;
+
+ explicit Variance(const ProcessType& pt = ProcessType())
+ : pt_(pt), sum_(0), squareSum_(0), count_(0)
+ { /* */ }
+
+ inline void Add(MapType* bt) {
+ sum_ += *bt;
+ squareSum_ += (*bt * *bt);
+ count_++;
+ }
+
+ inline void Delete(MapType* bt) {
+ sum_ -= *bt;
+ squareSum_ -= (*bt * *bt);
+ count_--;
+ }
+
+ inline void DoneReference() {
+ static const Signal::NaN nan = Signal::NaN();
+ if ( count_ <= 1 )
+ pt_.operator()(nan);
+ else {
+ double numer = (count_ * squareSum_) - (sum_ * sum_);
+ double denom = (count_ * (count_ - 1));
+ pt_.operator()(numer / denom);
+ }
+ }
+
+ virtual ~Variance() { /* */ }
+
+ protected:
+ ProcessType pt_;
+ double sum_;
+ double squareSum_;
+ double count_;
+ };
+
+} // namespace Visitors
+
+#endif // VARIANCEVISITOR_HPP
diff --git a/interfaces/general-headers/algorithm/visitors/other/EchoVisitor.hpp b/interfaces/general-headers/algorithm/visitors/other/EchoVisitor.hpp
new file mode 100644
index 0000000..d44319c
--- /dev/null
+++ b/interfaces/general-headers/algorithm/visitors/other/EchoVisitor.hpp
@@ -0,0 +1,69 @@
+/*
+ FILE: EchoVisitor.hpp
+ AUTHOR: Scott Kuehn, Shane Neph
+ CREATE DATE: Sat Nov 3 07:19:47 PDT 2007
+ PROJECT: utility
+ ID: $Id$
+*/
+
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef _ECHO_MAP_VISITOR_HPP
+#define _ECHO_MAP_VISITOR_HPP
+
+
+
+namespace Visitors {
+
+ template <
+ typename Process,
+ typename BaseVisitor
+ >
+ struct Echo : BaseVisitor {
+ typedef BaseVisitor BaseClass;
+ typedef Process ProcessType;
+ typedef typename BaseVisitor::RefType RefType;
+ typedef typename BaseVisitor::MapType MapType;
+
+ explicit Echo(const ProcessType& pt = ProcessType())
+ : pt_(pt), ref_(0)
+ { /* */ }
+
+ inline void SetReference(RefType* t) {
+ ref_ = t;
+ }
+
+ inline void Add(MapType*) { /* */ }
+ inline void Delete(MapType*) { /* */ }
+
+ inline void DoneReference() {
+ pt_.operator()(ref_);
+ }
+
+ virtual ~Echo() { }
+
+ protected:
+ ProcessType pt_;
+ RefType* ref_;
+ };
+
+} // namespace Visitors
+
+#endif // _ECHO_MAP_VISITOR_HPP
diff --git a/interfaces/general-headers/algorithm/visitors/other/MultiVisitor.hpp b/interfaces/general-headers/algorithm/visitors/other/MultiVisitor.hpp
new file mode 100644
index 0000000..ed35378
--- /dev/null
+++ b/interfaces/general-headers/algorithm/visitors/other/MultiVisitor.hpp
@@ -0,0 +1,132 @@
+/*
+ FILE: MultiVisitor.hpp
+ AUTHOR: Scott Kuehn, Shane Neph
+ CREATE DATE: Thu Sep 20 15:00:33 PDT 2007
+ PROJECT: utility
+ ID: $Id$
+*/
+
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+
+#ifndef MULTIVISITOR_HPP
+#define MULTIVISITOR_HPP
+
+#include <algorithm>
+#include <functional>
+#include <vector>
+
+
+namespace Visitors {
+
+ template
+ <
+ typename ProcessFields, // belongs to MultiVisitor only; not contained visitors
+ typename ProcessRows, // belongs to MultiVisitor only; not contained visitors
+ typename BaseVisitor
+ >
+ struct MultiVisitor : BaseVisitor {
+ typedef BaseVisitor BaseClass;
+ typedef ProcessFields ProcessFieldType;
+ typedef ProcessRows ProcessRowType;
+ typedef typename BaseClass::RefType RefType;
+ typedef typename BaseClass::MapType MapType;
+ typedef std::vector<BaseClass*> GroupType;
+
+ explicit MultiVisitor(GroupType& visitors,
+ const ProcessFieldType& pFields = ProcessFieldType(),
+ const ProcessRowType& pRows = ProcessRowType(),
+ bool processAll = true)
+ : BaseVisitor(), t_(visitors), pFields_(pFields), pRows_(pRows),
+ pAll_(processAll), cnt_(0)
+ { /* */ }
+
+ template <typename BaseDistType>
+ explicit MultiVisitor(GroupType& visitors,
+ const BaseDistType& dist,
+ const ProcessFieldType& pFields = ProcessFieldType(),
+ const ProcessRowType& pRows = ProcessRowType(),
+ bool processAll = true)
+ : BaseVisitor(dist), t_(visitors), pFields_(pFields), pRows_(pRows),
+ pAll_(processAll), cnt_(0)
+ { /* */ }
+
+ void Add(MapType const* u) {
+ void (BaseClass::*memberFuncPtr)(MapType const*) = &BaseClass::Add;
+ std::for_each(t_.begin(), t_.end(), std::bind2nd(std::mem_fun(memberFuncPtr), u));
+ ++cnt_;
+ }
+
+ void Delete(MapType const* u) {
+ void (BaseClass::*memberFuncPtr)(MapType const*) = &BaseClass::Delete;
+ std::for_each(t_.begin(), t_.end(), std::bind2nd(std::mem_fun(memberFuncPtr), u));
+ --cnt_;
+ }
+
+ void DoneReference() {
+ if ( !pAll_ && cnt_ == 0 )
+ return;
+
+ typename GroupType::const_iterator i = t_.begin();
+ if ( i != t_.end() )
+ (*i)->DoneReference();
+ else
+ return;
+
+ for ( ++i; i != t_.end(); ++i ) {
+ pFields_.operator()();
+ (*i)->DoneReference();
+ } // for
+ pRows_.operator()();
+ }
+
+ void SetReference(RefType const* t) {
+ void (BaseClass::*memberFuncPtr)(RefType const*) = &BaseClass::SetReference;
+ std::for_each(t_.begin(), t_.end(), std::bind2nd(std::mem_fun(memberFuncPtr), t));
+ }
+
+ /* not used by BED visitors to date. Pain if it is with nested elements. */
+ /*
+ void Purge() {
+ std::for_each(t_.begin(), t_.end(), std::mem_fun(&BaseClass::Purge));
+ }
+ */
+
+ void End() {
+ std::for_each(t_.begin(), t_.end(), std::mem_fun(&BaseClass::End));
+ }
+
+ virtual ~MultiVisitor() {
+ for ( cGtI gi = t_.begin(); gi != t_.end(); ++gi )
+ delete *gi;
+ }
+
+ protected:
+ typedef typename GroupType::const_iterator cGtI;
+ GroupType& t_;
+ ProcessFields pFields_;
+ ProcessRows pRows_;
+ const bool pAll_;
+ long cnt_;
+ };
+
+} // namespace Visitors
+
+#endif // MULTIVISITOR_HPP
diff --git a/interfaces/general-headers/data/bed/AllocateIterator_BED_starch.hpp b/interfaces/general-headers/data/bed/AllocateIterator_BED_starch.hpp
new file mode 100644
index 0000000..59deedd
--- /dev/null
+++ b/interfaces/general-headers/data/bed/AllocateIterator_BED_starch.hpp
@@ -0,0 +1,247 @@
+/*
+ Author: Shane Neph & Alex Reynolds
+ Date: Sun Jul 22 15:49:45 PDT 2012
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef SPECIAL_STARCH_ALLOCATE_NEW_ITERATOR_CHR_SPECIFIC_HPP
+#define SPECIAL_STARCH_ALLOCATE_NEW_ITERATOR_CHR_SPECIFIC_HPP
+
+#include <algorithm>
+#include <cstddef>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <iterator>
+
+#include <sys/stat.h>
+
+#include "algorithm/bed/FindBedRange.hpp"
+#include "algorithm/visitors/helpers/ProcessVisitorRow.hpp"
+#include "data/bed/Bed.hpp"
+#include "data/starch/starchApi.hpp"
+#include "utility/FPWrap.hpp"
+
+namespace Bed {
+
+ template <class BedType>
+ class allocate_iterator_starch_bed;
+
+ template <class BedType>
+ class allocate_iterator_starch_bed<BedType*> {
+
+ public:
+ typedef std::forward_iterator_tag iterator_category;
+ typedef BedType* value_type;
+ typedef std::ptrdiff_t difference_type;
+ typedef BedType** pointer;
+ typedef BedType*& reference;
+
+ allocate_iterator_starch_bed() : fp_(NULL), _M_ok(false), _M_value(0), is_starch_(false), all_(false), archive_(NULL) { chr_[0] = '\0'; }
+
+ template <typename ErrorType>
+ allocate_iterator_starch_bed(Ext::FPWrap<ErrorType>& fp, const std::string& chr = "all") /* this ASSUMES fp is open and meaningful */
+ : fp_(fp), _M_ok(fp_ && !std::feof(fp_)), _M_value(0),
+ is_starch_(_M_ok && (fp_ != stdin) && starch::Starch::isStarch(fp_)),
+ all_(0 == std::strcmp(chr.c_str(), "all")), archive_(NULL) {
+
+ chr_[0] = '\0';
+ std::size_t sz = std::min(chr.size(), static_cast<std::size_t>(Bed::MAXCHROMSIZE));
+ std::strncpy(chr_, chr.c_str(), sz);
+ chr_[sz] = '\0';
+
+ if ( !_M_ok ) {
+ if ( fp_ )
+ fp_ = NULL;
+ return;
+ }
+
+ bool is_namedpipe = false;
+ if ( fp.Name() != "-" ) {
+ struct stat st;
+ if ( stat(fp.Name().c_str(), &st) == -1 )
+ throw(ErrorType("Error: stat() failed on: " + fp.Name()));
+ is_namedpipe = (S_ISFIFO(st.st_mode) != 0);
+ }
+
+ if ( (fp_ == stdin || is_namedpipe) && !all_ ) { // BED, chrom-specific, using stdin
+ // stream through until we find what we want
+ while ( (_M_ok = (fp_ && !std::feof(fp_))) ) {
+ _M_value = new BedType(fp_);
+ if ( 0 == std::strcmp(_M_value->chrom(), chr_) ) {
+ _M_ok = (fp_ && !std::feof(fp_));
+ break;
+ }
+ delete _M_value;
+ } // while
+ if ( !_M_ok && fp_ )
+ fp_ = NULL;
+ return;
+ }
+
+ if ( is_starch_ ) { // starch archive can deal with all or specific chromosomes
+ const bool perLineUsage = true;
+ archive_ = new starch::Starch(fp_, chr_, perLineUsage);
+ _M_ok = archive_->getArchiveRecordIter();
+ if ( !_M_ok ) {
+ fp_ = NULL;
+ delete archive_;
+ } else {
+ _M_value = get_starch();
+ _M_ok = (static_cast<bool>(_M_value) &&
+ (archive_->getArchiveRecordIter() != NULL) &&
+ !archive_->isEOF());
+ }
+ } else if ( !all_ ) { // BED, chromosome-specific
+ // position fp_ to start of correct chromosome
+ std::fseek(fp_, 0, SEEK_END); // apparently dangerous on some platforms in binary mode -> padded nulls;
+ const Bed::ByteOffset at_end = std::ftell(fp_); // I'll assume msft is the problem until I know better
+ std::rewind(fp_);
+
+ Bed::extract_details::TargetBedType* bt = new Bed::extract_details::TargetBedType(fp_);
+ if ( 0 == std::strcmp(bt->chrom(), chr_) ) {
+ delete bt;
+ std::rewind(fp_);
+ _M_value = new BedType(fp_);
+ _M_ok = (_M_ok && fp_ && !std::feof(fp_));
+ if ( !_M_ok && fp_ )
+ fp_ = NULL;
+ } else {
+ delete bt;
+ std::rewind(fp_);
+ const bool done = false;
+ std::vector<Bed::extract_details::TargetBedType*> v;
+ while ( !done ) {
+ bt = new Bed::extract_details::TargetBedType(fp_);
+ bt->start(std::numeric_limits<Bed::CoordType>::max()-1);
+ bt->end(std::numeric_limits<Bed::CoordType>::max());
+ v.push_back(bt);
+ Visitors::Helpers::DoNothing nada;
+ std::pair<bool, Bed::ByteOffset> lbound;
+ lbound = find_bed_range(fp_, v.begin(), v.end(), nada); // routine deletes bt for us
+ v.clear(); // bt already deleted
+ if ( lbound.first && lbound.second != at_end ) {
+ std::fseek(fp_, lbound.second, SEEK_SET);
+ ByteOffset b = std::ftell(fp_);
+ Bed::extract_details::QueryBedType q(fp_);
+ std::fseek(fp_, b, SEEK_SET);
+ if ( 0 == std::strcmp(q.chrom(), chr_) ) {
+ _M_value = new BedType(fp_);
+ _M_ok = (_M_ok && fp_ && !std::feof(fp_));
+ if ( !_M_ok && fp_ )
+ fp_ = NULL;
+ break;
+ }
+ }
+ else {
+ _M_value = static_cast<BedType*>(0);
+ _M_ok = false;
+ break;
+ }
+ } // while
+ }
+ } else { // BED, process everything
+ _M_value = new BedType(fp_);
+ _M_ok = (_M_ok && fp_ && !std::feof(fp_));
+ if ( !_M_ok && fp_ )
+ fp_ = NULL;
+ }
+ }
+
+ reference operator*() { return _M_value; }
+ pointer operator->() { return &(operator*()); }
+
+ allocate_iterator_starch_bed& operator++() {
+ if ( _M_ok ) {
+ if ( !is_starch_ ) {
+ _M_value = new BedType(fp_);
+ _M_ok = !std::feof(fp_) && (all_ || 0 == std::strcmp(_M_value->chrom(), chr_));
+ // very small leak in event that !all_ and _M_value->chrom() is not chr_
+ // too expensive to check
+ } else {
+ _M_value = get_starch();
+ _M_ok = (static_cast<bool>(_M_value) &&
+ (archive_->getArchiveRecordIter() != NULL) &&
+ !archive_->isEOF());
+ }
+ }
+ return *this;
+ }
+
+ allocate_iterator_starch_bed operator++(int) {
+ allocate_iterator_starch_bed __tmp = *this;
+ if ( _M_ok ) {
+ if ( !is_starch_ ) {
+ _M_value = new BedType(fp_);
+ _M_ok = !std::feof(fp_) && (all_ || 0 == std::strcmp(_M_value->chrom(), chr_));
+ // very small leak in event that !all_ and _M_value->chrom() is not chr_
+ // too expensive to check
+ } else {
+ _M_value = get_starch();
+ _M_ok = (static_cast<bool>(_M_value) &&
+ (archive_->getArchiveRecordIter() != NULL) &&
+ !archive_->isEOF());
+ }
+ }
+ return __tmp;
+ }
+
+ bool _M_equal(const allocate_iterator_starch_bed& __x) const {
+ return (
+ (_M_ok == __x._M_ok) &&
+ (!_M_ok || fp_ == __x.fp_)
+ );
+ }
+
+ private:
+ inline BedType* get_starch() {
+ static std::string line;
+ if ( archive_ == NULL || !archive_->extractBEDLine(line) )
+ return(0);
+ return(new BedType(line.c_str()));
+ }
+
+ private:
+ FILE* fp_;
+ bool _M_ok;
+ char chr_[Bed::MAXCHROMSIZE+1];
+ BedType* _M_value;
+ const bool is_starch_;
+ const bool all_;
+ starch::Starch* archive_;
+ };
+
+ template <class BedType>
+ inline bool
+ operator==(const allocate_iterator_starch_bed<BedType>& __x,
+ const allocate_iterator_starch_bed<BedType>& __y) {
+ return __x._M_equal(__y);
+ }
+
+ template <class BedType>
+ inline bool
+ operator!=(const allocate_iterator_starch_bed<BedType>& __x,
+ const allocate_iterator_starch_bed<BedType>& __y) {
+ return !__x._M_equal(__y);
+ }
+
+} // namespace Bed
+
+#endif // SPECIAL_STARCH_ALLOCATE_NEW_ITERATOR_CHR_SPECIFIC_HPP
diff --git a/interfaces/general-headers/data/bed/Bed.hpp b/interfaces/general-headers/data/bed/Bed.hpp
new file mode 100644
index 0000000..8e2ecb6
--- /dev/null
+++ b/interfaces/general-headers/data/bed/Bed.hpp
@@ -0,0 +1,1085 @@
+/*
+ Author: Scott Kuehn, Shane Neph
+ Date: Fri Jul 27 11:49:03 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef BED_HPP
+#define BED_HPP
+
+#include <cstddef>
+#include <cstdio>
+#include <cstring>
+#include <cstdlib>
+#include <limits>
+#include <string>
+#include <type_traits>
+
+#include "suite/BEDOPS.Constants.hpp"
+#include "utility/Formats.hpp"
+
+/*
+ sjn
+ This set of classes is designed to be flexible and efficient. I use non-virtual public inheritence, which
+ most everyone will tell you is a horrible thing to do. I disagree. Power over safety is the bread and
+ butter of the class of C languages. If you try using derived classes through pointer to base class, then
+ you are using these classes incorrectly. You can allocate dynamically, of course, but the pointer type
+ must be to the class of interest. Not every problem should be solved through virtual tools, which carry
+ some real overhead. Why throw out power offered by the language by sticking to simple rules of thumb?
+ Instead, use all tools wisely.
+ There is no automated way (that I know of) to prevent improper base pointer to derived class. Using these
+ in that way leads to memory leaks (and is the reason for that rule of thumb).
+*/
+
+namespace Bed {
+
+ // For Bed6<> items, but much easier to use if directly in Bed namespace
+ enum Strand { PLUS = '+', MINUS = '-' };
+
+ const CoordType MAXCHROMSIZE = TOKEN_CHR_MAX_LENGTH;
+ const CoordType MAXIDSIZE = TOKEN_ID_MAX_LENGTH;
+ const CoordType MAXRESTSIZE = TOKEN_REST_MAX_LENGTH;
+
+
+ /*****************************************/
+ /* ChromInfo Classes */
+ /*****************************************/
+
+ // ChromInfo non-specialized declaration
+ template <bool IsNonStatic>
+ struct ChromInfo {
+
+ ChromInfo() : chrom_(new char[1]) { chrom_[0] = '\0'; }
+ ChromInfo(const ChromInfo& c)
+ : chrom_(new char[(c.chrom_ != NULL) ? (std::strlen(c.chrom_) + 1) : 1])
+ { *chrom_ = '\0'; if ( c.chrom_ != NULL ) std::strcpy(chrom_, c.chrom_); }
+ explicit ChromInfo(char const* c)
+ : chrom_(new char[(c != NULL) ? (std::strlen(c)+1) : 1])
+ { *chrom_ = '\0'; if ( c != NULL ) std::strcpy(chrom_, c); }
+
+ // Properties
+ char const* chrom() const { return chrom_; }
+ void chrom(char const* chrom) {
+ if ( chrom_ )
+ delete [] chrom_;
+ if ( chrom != NULL ) {
+ chrom_ = new char[std::strlen(chrom) + 1];
+ std::strcpy(chrom_, chrom);
+ } else {
+ chrom_ = new char[1];
+ *chrom_ = '\0';
+ }
+ }
+
+ // Operators
+ ChromInfo& operator=(const ChromInfo& c) {
+ if ( chrom_ )
+ delete [] chrom_;
+ chrom_ = new char[(c.chrom_ != NULL) ? (std::strlen(c.chrom_) + 1) : 1];
+ *chrom_ = '\0'; if ( c.chrom_ != NULL ) std::strcpy(chrom_, c.chrom_);
+ return *this;
+ }
+
+ ~ChromInfo() {
+ if ( chrom_ )
+ delete [] chrom_;
+ chrom_ = NULL;
+ }
+
+ protected:
+ char* chrom_;
+ };
+
+
+ // ChromInfo specialization : uses static chromosome info
+ template <>
+ struct ChromInfo<false> {
+
+ ChromInfo() { chrom_[0] = '\0'; }
+ explicit ChromInfo(char const* chr) { std::strcpy(chrom_, chr); }
+ /* Desire default-shallow copy-construction & copy-assignment */
+
+ // Properties
+ char const* chrom() const { return chrom_; }
+ void chrom(char const* chrom) { std::strcpy(chrom_, chrom); }
+
+ protected:
+ static char chrom_[MAXCHROMSIZE+1];
+ };
+
+ char ChromInfo<false>::chrom_[MAXCHROMSIZE+1];
+
+
+ /*****************************************/
+ /* BasicCoords Classes */
+ /*****************************************/
+
+ // Forward declaration
+ template <bool IsNonStaticChrom = true, bool HasRest = false>
+ struct BasicCoords;
+
+
+ // BasicCoords specialization 1: vanilla (default) information
+ template <bool IsNonStaticChrom>
+ struct BasicCoords<IsNonStaticChrom, false> : public ChromInfo<IsNonStaticChrom> {
+
+ BasicCoords() : BaseClass(), start_(1), end_(0) { /* invalid coords by default */ }
+ BasicCoords(char const* chrom, CoordType start, CoordType end)
+ : BaseClass(chrom), start_(start), end_(end) {}
+ BasicCoords(const BasicCoords& c)
+ : BaseClass(c.chrom_), start_(c.start_), end_(c.end_) {}
+ explicit BasicCoords(FILE* inF) : BaseClass()
+ { this->readline(inF); }
+ explicit BasicCoords(const std::string& inS) : BaseClass()
+ { this->readline(inS); }
+
+ // Properties
+ CoordType length() const { return end_ - start_; }
+ CoordType median() const { return start_ + ((end_ - start_) / 2); }
+ inline CoordType distance(const BasicCoords& a) const {
+ if ( 0 == std::strcmp(chrom_, a.chrom_) )
+ return start_ - a.start_;
+ return std::numeric_limits<CoordType>::max();
+ }
+ inline CoordType sepDistance(const BasicCoords& a) const {
+ if( 0 == std::strcmp(chrom_, a.chrom_) )
+ return end_ - a.start_;
+ return std::numeric_limits<CoordType>::max();
+ }
+ void start(CoordType start) { start_ = start; }
+ CoordType start() const { return start_; }
+ void end(CoordType end) { end_ = end; }
+ CoordType end() const { return end_; }
+
+ // Comparison utilities
+ inline CoordType overlap(const BasicCoords& a) const {
+ if ( 0 != std::strcmp(chrom_, a.chrom_) )
+ return 0;
+ if ( start_ >= a.start_ ) {
+ if ( a.end_ > start_ ) {
+ if ( a.end_ > end_ )
+ return end_ - start_;
+ return a.end_ - start_;
+ }
+ else
+ return 0;
+ } else {
+ if ( end_ > a.start_ ) {
+ if ( a.end_ < end_ )
+ return a.end_ - a.start_;
+ return end_ - a.start_;
+ }
+ else
+ return 0;
+ }
+ }
+ BasicCoords& intersection(const BasicCoords& a) {
+ if ( overlap(a) ) {
+ start_ = std::max(start_, a.start_);
+ end_ = std::min(end_, a.end_);
+ }
+ else
+ start_ = end_ = 0;
+ return *this;
+ }
+ BasicCoords& eunion(const BasicCoords& a) {
+ if ( overlap(a) ) {
+ start_ = std::min(start_, a.start_);
+ end_ = std::max(end_, a.end_);
+ }
+ else
+ start_ = end_ = 0;
+ return *this;
+ }
+ static bool lengthCompare(const BasicCoords& a, const BasicCoords& b)
+ { return a.length() < b.length(); }
+
+ // Operators
+ BasicCoords& operator=(const BasicCoords& c) {
+ BaseClass::operator=(c);
+ start_ = c.start_;
+ end_ = c.end_;
+ return *this;
+ }
+
+ // IO
+ inline void print() const {
+ static const std::string lclStatic = outFormatter();
+ static char const* format = lclStatic.c_str();
+ std::printf(format, chrom_, start_, end_);
+ }
+ inline void println() const {
+ static const std::string heapFormat = (outFormatter() + "\n");
+ static char const* format = heapFormat.c_str();
+ std::printf(format, chrom_, start_, end_);
+ }
+ inline int readline(const std::string& inputLine) {
+ static char chrBuf[MAXCHROMSIZE + 1];
+ chrBuf[0] = '\0';
+ static const std::string lclStatic = inFormatter();
+ static char const* format = lclStatic.c_str();
+ int numScan = std::sscanf(inputLine.c_str(),
+ format, chrBuf,
+ &start_, &end_);
+ this->chrom(chrBuf);
+ return numScan;
+ }
+ inline int readline(FILE* inputFile) {
+ static char chrBuf[MAXCHROMSIZE + 1];
+ chrBuf[0] = '\0';
+ static std::string lclstatic = inFormatter();
+ static char const* format = lclstatic.c_str();
+ int numScan = std::fscanf(inputFile,
+ format, chrBuf,
+ &start_, &end_);
+ std::fgetc(inputFile); // chomp newline
+ this->chrom(chrBuf);
+ return numScan;
+ }
+
+ static const int NumFields = 3;
+ static const bool UseRest = false;
+
+ protected:
+ typedef ChromInfo<IsNonStaticChrom> BaseClass;
+ using BaseClass::chrom_;
+ CoordType start_;
+ CoordType end_;
+
+ static std::string outFormatter() {
+ return(std::string("%s\t%" PRIu64 "\t%" PRIu64));
+ }
+
+ static std::string inFormatter() {
+ return(std::string("%s\t%" SCNu64 "\t%" SCNu64 "%*[^\n]s\n"));
+ }
+ };
+
+
+ // Non-Specialization: Extend partial specialization with "rest-size" information
+ template <bool IsNonStaticChrom, bool HasRest>
+ struct BasicCoords
+ : public BasicCoords<IsNonStaticChrom, false> {
+
+ BasicCoords() : BaseClass(), rest_(new char[1]) { *rest_ = '\0'; }
+ BasicCoords(char const* chrom, CoordType start, CoordType end, char const* rest = NULL)
+ : BaseClass(chrom, start, end), rest_(new char[(rest != NULL) ? (std::strlen(rest)+1) : 1]) {
+ *rest_ = '\0';
+ if ( rest && std::strcmp(rest, "") != 0 ) {
+ if ( rest[0] != '\t' )
+ rest_[0] = '\t';
+ std::strcat(rest_, rest);
+ }
+ }
+ BasicCoords(const BasicCoords& c)
+ : BaseClass(c), rest_(new char[(c.rest_ != NULL) ? (std::strlen(c.rest_) + 1) : 1])
+ { *rest_ = '\0'; if ( c.rest_ != NULL ) std::strcpy(rest_, c.rest_); }
+ explicit BasicCoords(FILE* inF) : BaseClass(), rest_(0)
+ { this->readline(inF); }
+ explicit BasicCoords(const std::string& inS) : BaseClass(), rest_(0)
+ { this->readline(inS); }
+
+ // Properties
+ char const* rest() const { return rest_; }
+
+ // Operators
+ BasicCoords& operator=(const BasicCoords& c) {
+ BaseClass::operator=(c);
+ if ( rest_ )
+ delete [] rest_;
+ rest_ = new char[(c.rest_ != NULL) ? (std::strlen(c.rest_) + 1) : 1];
+ *rest_ = '\0';
+ if ( c.rest_ != NULL )
+ std::strcpy(rest_, c.rest_);
+ return *this;
+ }
+
+ // IO
+ inline void print() const {
+ static const std::string lclStatic = outFormatter();
+ static char const* format = lclStatic.c_str();
+ std::printf(format, chrom_, start_, end_, rest_);
+ }
+ inline void println() const {
+ static const std::string heapFormat = (outFormatter() + "\n");
+ static char const* format = heapFormat.c_str();
+ std::printf(format, chrom_, start_, end_, rest_);
+ }
+ inline int readline(const std::string& inputLine) {
+ static char chrBuf[MAXCHROMSIZE + 1];
+ chrBuf[0] = '\0';
+ static char restBuf[MAXRESTSIZE + 1];
+ restBuf[0] = '\0';
+ static const std::string lclStatic = inFormatter();
+ static char const* format = lclStatic.c_str();
+ int numScan = std::sscanf(inputLine.c_str(),
+ format, chrBuf, &start_,
+ &end_, restBuf);
+ this->chrom(chrBuf);
+ if ( rest_ )
+ delete [] rest_;
+ rest_ = new char[std::strlen(restBuf) + 1];
+ std::strcpy(rest_, restBuf);
+ return numScan;
+ }
+ inline int readline(FILE* inputFile) {
+ static char chrBuf[MAXCHROMSIZE + 1];
+ chrBuf[0] = '\0';
+ static char restBuf[MAXRESTSIZE + 1];
+ restBuf[0] = '\0';
+ static const std::string lclStatic = inFormatter();
+ static char const* format = lclStatic.c_str();
+ int numScan = std::fscanf(inputFile, format,
+ chrBuf, &start_,
+ &end_, restBuf);
+ std::fgetc(inputFile); // chomp newline
+ this->chrom(chrBuf);
+ if ( rest_ )
+ delete [] rest_;
+ rest_ = new char[std::strlen(restBuf) + 1];
+ std::strcpy(rest_, restBuf);
+ return numScan;
+ }
+
+ ~BasicCoords() {
+ if ( rest_ )
+ delete [] rest_;
+ rest_ = NULL;
+ }
+
+ static const bool UseRest = true;
+
+ protected:
+ typedef BasicCoords<IsNonStaticChrom, false> BaseClass;
+ using BaseClass::chrom_;
+ using BaseClass::start_;
+ using BaseClass::end_;
+ char* rest_;
+
+ static std::string outFormatter() {
+ return(std::string("%s\t%" PRIu64 "\t%" PRIu64 "%s"));
+ }
+
+ static std::string inFormatter() {
+ return(std::string("%s\t%" SCNu64 "\t%" SCNu64 "%[^\n]s\n"));
+ }
+ };
+
+
+ /*****************************************/
+ /* Bed4 Classes */
+ /*****************************************/
+
+ // Forward declaration, forcing specialization
+ template <typename BedType, bool HasRest = false>
+ struct Bed4;
+
+ // Bed4 specialization 1: vanilla (default) information
+ template <bool IsNonStaticChrom, bool B3HasRest>
+ struct Bed4<BasicCoords<IsNonStaticChrom, B3HasRest>, false>
+ : public BasicCoords<IsNonStaticChrom, false> {
+
+ Bed4() : BaseClass(), id_(new char[1]) { *id_ = '\0'; }
+ Bed4(char const* chrom, CoordType start, CoordType end, char const* id)
+ : BaseClass(chrom, start, end), id_(new char[(id != NULL) ? (std::strlen(id)+1) : 1])
+ { *id_ = '\0'; if ( id != NULL ) std::strcpy(id_, id); }
+ Bed4(const Bed4& c)
+ : BaseClass(c), id_(new char[(c.id_ != NULL) ? (std::strlen(c.id_) + 1) : 1])
+ { *id_ = '\0'; if ( c.id_ != NULL ) std::strcpy(id_, c.id_); }
+ explicit Bed4(FILE* inF) : BaseClass(), id_(0)
+ { this->readline(inF); }
+ explicit Bed4(const std::string& inS) : BaseClass(), id_(0)
+ { this->readline(inS); }
+
+ // IO
+ inline int readline(const std::string& inputLine) {
+ static char chrBuf[MAXCHROMSIZE + 1];
+ chrBuf[0] = '\0';
+ static char idBuf[MAXIDSIZE + 1];
+ idBuf[0] = '\0';
+
+ static const std::string lclStatic = inFormatter();
+ static char const* format = lclStatic.c_str();
+ int numScanned = std::sscanf(inputLine.c_str(), format,
+ chrBuf,
+ &start_,
+ &end_,
+ idBuf);
+ this->chrom(chrBuf);
+ this->id(idBuf);
+ return numScanned;
+ }
+ inline int readline(FILE* inputFile) {
+ static char chrBuf[MAXCHROMSIZE + 1];
+ chrBuf[0] = '\0';
+ static char idBuf[MAXIDSIZE + 1];
+ idBuf[0] = '\0';
+
+ static const std::string lclStatic = inFormatter();
+ static char const* format = lclStatic.c_str();
+ int numScanned = std::fscanf(inputFile, format,
+ chrBuf,
+ &start_,
+ &end_,
+ idBuf);
+ std::fgetc(inputFile); // read and discard newline
+ this->chrom(chrBuf);
+ this->id(idBuf);
+ return numScanned;
+ }
+ inline void print() const {
+ static const std::string lclStatic = outFormatter();
+ static char const* format = lclStatic.c_str();
+ std::printf(format, chrom_, start_, end_, id_);
+ }
+ inline void println() const {
+ static const std::string heapFormat = (outFormatter() + "\n");
+ static char const* format = heapFormat.c_str();
+ printf(format, chrom_, start_, end_, id_);
+ }
+
+ // Properties
+ void id(char const* id) {
+ if ( id_ )
+ delete [] id_;
+ id_ = new char[(id != NULL) ? (std::strlen(id) + 1) : 1];
+ *id_ = '\0'; if ( id != NULL ) std::strcpy(id_, id);
+ }
+ char const* id() const { return id_; }
+
+ // Operators
+ Bed4& operator=(const Bed4& c) {
+ BaseClass::operator=(c);
+ if ( id_ )
+ delete [] id_;
+ id_ = new char[(c.id_ != NULL) ? (std::strlen(c.id_) + 1) : 1];
+ *id_ = '\0'; if ( c.id_ != NULL ) std::strcpy(id_, c.id_);
+ return *this;
+ }
+
+ ~Bed4() {
+ if ( id_ )
+ delete [] id_;
+ id_ = NULL;
+ }
+
+ static const int NumFields = 4;
+ static const bool UseRest = false;
+
+ protected:
+ typedef BasicCoords<IsNonStaticChrom, false> BaseClass;
+ using BaseClass::chrom_;
+ using BaseClass::start_;
+ using BaseClass::end_;
+
+ char* id_;
+
+ static std::string outFormatter() {
+ return(BaseClass::outFormatter() + "\t%s");
+ }
+
+ static std::string inFormatter() {
+ return(outFormatter() + "%*[^\n]s\n");
+ }
+ };
+
+ // Specialization 2: Extend specialization 1 with "rest-size" information
+ template <typename BedType, bool HasRest>
+ struct Bed4
+ : public Bed4<BedType, false> {
+
+ Bed4() : BaseClass(), rest_(new char[1]) { *rest_ = '\0'; }
+ Bed4(const Bed4& c)
+ : BaseClass(c), rest_(new char[(c.rest_ != NULL) ? (std::strlen(c.rest_)+1) : 1])
+ { *rest_ = '\0'; if ( c.rest_ != NULL ) std::strcpy(rest_, c.rest_); }
+ Bed4(char const* chrom, CoordType start, CoordType end, char const* id, char const* rest = NULL)
+ : BaseClass(chrom, start, end, id), rest_(new char[(rest != NULL) ? (std::strlen(rest)+1) : 1]) {
+ *rest_ = '\0';
+ if ( rest && std::strcmp(rest, "") != 0 ) {
+ if ( rest[0] != '\t' )
+ rest_[0] = '\t';
+ std::strcat(rest_, rest);
+ }
+ }
+ explicit Bed4(FILE* inF) : BaseClass(), rest_(0)
+ { this->readline(inF); }
+ explicit Bed4(const std::string& inS) : BaseClass(), rest_(0)
+ { this->readline(inS); }
+
+ // Properties
+ char const* rest() const { return rest_; }
+
+ // IO
+ inline void print() const {
+ static const std::string lclStatic = outFormatter();
+ static char const* format = lclStatic.c_str();
+ std::printf(format, chrom_, start_, end_, id_, rest_);
+ }
+ inline void println() const {
+ static const std::string heapFormat = (outFormatter() + "\n");
+ static char const* format = heapFormat.c_str();
+ std::printf(format, chrom_, start_, end_, id_, rest_);
+ }
+ inline int readline(const std::string& inputLine) {
+ static char chrBuf[MAXCHROMSIZE + 1];
+ chrBuf[0] = '\0';
+ static char idBuf[MAXIDSIZE + 1];
+ idBuf[0] = '\0';
+ static char restBuf[MAXRESTSIZE + 1];
+ restBuf[0] = '\0';
+ static const std::string lclStatic = inFormatter();
+ static char const* format = lclStatic.c_str();
+ int numScanned = std::sscanf(inputLine.c_str(),
+ format, chrBuf,
+ &start_, &end_, idBuf,
+ restBuf);
+ this->chrom(chrBuf);
+ this->id(idBuf);
+ if ( rest_ )
+ delete [] rest_;
+ rest_ = new char[std::strlen(restBuf) + 1];
+ std::strcpy(rest_, restBuf);
+ return numScanned;
+ }
+ inline int readline(FILE* inputFile) {
+ static char chrBuf[MAXCHROMSIZE + 1];
+ chrBuf[0] = '\0';
+ static char idBuf[MAXIDSIZE + 1];
+ idBuf[0] = '\0';
+ static char restBuf[MAXRESTSIZE + 1];
+ restBuf[0] = '\0';
+
+ static const std::string lclStatic = inFormatter();
+ static char const* format = lclStatic.c_str();
+ int numScanned = std::fscanf(inputFile,
+ format, chrBuf,
+ &start_, &end_, idBuf,
+ restBuf);
+
+ std::fgetc(inputFile); // Read and discard trailing newline
+ this->chrom(chrBuf);
+ this->id(idBuf);
+ if ( rest_ )
+ delete [] rest_;
+ rest_ = new char[std::strlen(restBuf) + 1];
+ std::strcpy(rest_, restBuf);
+ return numScanned;
+ }
+
+ // Operators
+ Bed4& operator=(const Bed4& c) {
+ BaseClass::operator=(c);
+ if ( rest_ )
+ delete [] rest_;
+ rest_ = new char[(c.rest_ != NULL) ? (std::strlen(c.rest_) + 1) : 1];
+ *rest_ = '\0'; if ( c.rest_ != NULL ) std::strcpy(rest_, c.rest_);
+ return *this;
+ }
+
+ ~Bed4() {
+ if ( rest_ )
+ delete [] rest_;
+ rest_ = NULL;
+ }
+
+ static const bool UseRest = true;
+
+ protected:
+ typedef Bed4<BedType, false> BaseClass;
+ using BaseClass::chrom_;
+ using BaseClass::start_;
+ using BaseClass::end_;
+ using BaseClass::id_;
+
+ char* rest_;
+ static std::string outFormatter() {
+ return(BaseClass::outFormatter() + "%s");
+ }
+
+ static std::string inFormatter() {
+ return(BaseClass::outFormatter() + "%[^\n]s\n");
+ }
+ };
+
+
+ /*****************************************/
+ /* Bed5 Classes */
+ /*****************************************/
+
+ // Forward declaration, forcing specialization
+ template <typename Bed4Type, typename MeasureType, bool HasRest = false>
+ struct Bed5;
+
+ // Bed5 specialization 1: vanilla (default) information
+ template <typename U, bool Bed4HasRest, typename MeasureType>
+ struct Bed5<Bed4<U, Bed4HasRest>, MeasureType, false>
+ : public Bed4<U, false> {
+
+ Bed5() : BaseClass() {}
+ Bed5(const Bed5& c) : BaseClass(c), measurement_(0) {}
+ Bed5(char const* chrom, CoordType start, CoordType end, char const* id, MeasureType measurement)
+ : BaseClass(chrom, start, end, id), measurement_(measurement) {}
+ explicit Bed5(const std::string& inS) : BaseClass(), measurement_(0)
+ { this->readline(inS); }
+ explicit Bed5(FILE* inF) : BaseClass(), measurement_(0)
+ { this->readline(inF); }
+
+ // Parameters
+ typedef MeasureType MeasurementType;
+ static const int NumFields = 5;
+ static const bool UseRest = false;
+
+ // Properties
+ inline MeasurementType measurement() const { return measurement_; }
+
+ // IO
+ inline int readline(const std::string& inputLine) {
+ static char chrBuf[MAXCHROMSIZE + 1];
+ chrBuf[0] = '\0';
+ static char idBuf[MAXIDSIZE + 1];
+ idBuf[0] = '\0';
+ static const std::string lclStatic = inFormatter();
+ static char const* format = lclStatic.c_str();
+ int numScanned = std::sscanf(inputLine.c_str(),
+ format, chrBuf,
+ &start_, &end_, idBuf,
+ &measurement_);
+ this->chrom(chrBuf);
+ this->id(idBuf);
+ return numScanned;
+ }
+ inline int readline(FILE* inputFile) {
+ static char chrBuf[MAXCHROMSIZE + 1];
+ chrBuf[0] = '\0';
+ static char idBuf[MAXIDSIZE + 1];
+ idBuf[0] = '\0';
+ static const std::string lclStatic = inFormatter();
+ static char const* format = lclStatic.c_str();
+ int numScanned = std::fscanf(inputFile,
+ format, chrBuf,
+ &start_, &end_, idBuf,
+ &measurement_);
+
+ std::fgetc(inputFile); // Read and discard trailing newline
+ this->chrom(chrBuf);
+ this->id(idBuf);
+ return numScanned;
+ }
+ inline void print() const {
+ static const std::string lclStatic = outFormatter();
+ static char const* format = lclStatic.c_str();
+ std::printf(format, chrom_, start_, end_, id_, measurement_);
+ }
+ inline void println() const {
+ static const std::string heapFormat = outFormatter() + "\n";
+ static char const* format = heapFormat.c_str();
+ std::printf(format, chrom_, start_, end_, id_, measurement_);
+ }
+
+ // Operators
+ Bed5& operator=(const Bed5& c) {
+ BaseClass::operator=(c);
+ this->measurement_ = c.measurement_;
+ return *this;
+ }
+ inline operator MeasurementType() const { return measurement_; }
+
+ protected:
+ typedef Bed4<U, false> BaseClass;
+ using BaseClass::chrom_;
+ using BaseClass::start_;
+ using BaseClass::end_;
+ using BaseClass::id_;
+ MeasureType measurement_;
+
+ static std::string outFormatter() {
+ typedef typename std::remove_cv<MeasureType>::type MType;
+ return(BaseClass::outFormatter() + "\t" + Formats::Format(MType()));
+ }
+
+ static std::string inFormatter() {
+ return(outFormatter() + "%*[^\n]s\n");
+ }
+ };
+
+
+ // Specialization 2: Extend specialization 1 with "rest-size" information
+ template <typename Bed4Type, typename MeasureType, bool HasRest>
+ struct Bed5
+ : public Bed5<Bed4Type, MeasureType, false> { /* Bed4Type is forced to be Bed4<> specialization above */
+
+ Bed5() : BaseClass(), rest_(new char[1]) { *rest_ = '\0'; }
+ Bed5(const Bed5& c)
+ : BaseClass(c), rest_(new char[(c.rest_ != NULL) ? (std::strlen(c.rest_+1)) : 1])
+ { *rest_ = '\0'; if ( c.rest_ != NULL ) std::strcpy(rest_, c.rest_); }
+ Bed5(char const* chrom, CoordType start, CoordType end,
+ char const* id, MeasureType measurement, char const* rest = NULL)
+ : BaseClass(chrom, start, end, id, measurement),
+ rest_(new char[(rest != NULL) ? (std::strlen(rest)+1) : 1]) {
+ *rest_ = '\0';
+ if ( rest && 0 != std::strcmp(rest, "") ) {
+ if ( rest[0] != '\t' )
+ rest_[0] = '\t';
+ std::strcat(rest_, rest);
+ }
+ }
+ explicit Bed5(FILE* inF) : BaseClass(), rest_(0)
+ { this->readline(inF); }
+ explicit Bed5(const std::string& inS) : BaseClass(), rest_(0)
+ { this->readline(inS); }
+
+ // Properties
+ char const* rest() const { return rest_; }
+
+ // IO
+ inline void print() const {
+ static const std::string lclStatic = outFormatter();
+ static char const* format = lclStatic.c_str();
+ std::printf(format, chrom_, start_, end_, id_, measurement_, rest_);
+ }
+ inline void println() const {
+ static const std::string heapFormat = outFormatter() + "\n";
+ static char const* format = heapFormat.c_str();
+ std::printf(format, chrom_, start_, end_, id_, measurement_, rest_);
+ }
+ inline int readline(const std::string& inputLine) {
+ static char chrBuf[MAXCHROMSIZE + 1];
+ chrBuf[0] = '\0';
+ static char idBuf[MAXIDSIZE + 1];
+ idBuf[0] = '\0';
+ static char restBuf[MAXRESTSIZE + 1];
+ restBuf[0] = '\0';
+ static const std::string lclStatic = inFormatter();
+ static char const* format = lclStatic.c_str();
+ int numScanned = std::sscanf(inputLine.c_str(),
+ format, chrBuf,
+ &start_, &end_, idBuf,
+ &measurement_, restBuf);
+
+ this->chrom(chrBuf);
+ this->id(idBuf);
+ if ( rest_ )
+ delete [] rest_;
+ rest_ = new char[std::strlen(restBuf) + 1];
+ std::strcpy(rest_, restBuf);
+ return numScanned;
+ }
+ inline int readline(FILE* inputFile) {
+ static char chrBuf[MAXCHROMSIZE + 1];
+ chrBuf[0] = '\0';
+ static char idBuf[MAXIDSIZE + 1];
+ idBuf[0] = '\0';
+ static char restBuf[MAXRESTSIZE + 1];
+ restBuf[0] = '\0';
+
+ static const std::string lclStatic = inFormatter();
+ static char const* format = lclStatic.c_str();
+ int numScanned = std::fscanf(inputFile,
+ format, chrBuf,
+ &start_, &end_, idBuf,
+ &measurement_, restBuf);
+
+ std::fgetc(inputFile); // Read and discard trailing newline
+ this->chrom(chrBuf);
+ this->id(idBuf);
+ if ( rest_ )
+ delete [] rest_;
+ rest_ = new char[std::strlen(restBuf) + 1];
+ std::strcpy(rest_, restBuf);
+ return numScanned;
+ }
+
+ // Operators
+ Bed5& operator=(const Bed5& c) {
+ BaseClass::operator=(c);
+ if ( rest_ )
+ delete [] rest_;
+ rest_ = new char[(c.rest_ != NULL) ? (std::strlen(c.rest_) + 1) : 1];
+ *rest_ = '\0'; if ( c.rest_ != NULL ) std::strcpy(rest_, c.rest_);
+ return *this;
+ }
+
+ ~Bed5() {
+ if ( rest_ )
+ delete [] rest_;
+ rest_ = NULL;
+ }
+
+ // Parameters
+ static const bool UseRest = true;
+
+ protected:
+ typedef Bed5<Bed4Type, MeasureType, false> BaseClass;
+ using BaseClass::chrom_;
+ using BaseClass::start_;
+ using BaseClass::end_;
+ using BaseClass::id_;
+ using BaseClass::measurement_;
+
+ char* rest_;
+
+ static std::string outFormatter() {
+ return(BaseClass::outFormatter() + "%s");
+ }
+
+ static std::string inFormatter() {
+ return(BaseClass::outFormatter() + "%[^\n]s\n");
+ }
+ };
+
+
+ /*****************************************/
+ /* Bed6 Classes */
+ /*****************************************/
+
+ // Forward declaration, forcing specialization
+ template <typename Bed5Type, bool HasRest = false>
+ struct Bed6;
+
+ // Bed6 specialization 1: vanilla (default) information
+ template <typename U, typename MeasureType, bool Bed5HasRest>
+ struct Bed6<Bed5<U, MeasureType, Bed5HasRest>, false>
+ : public Bed5<U, MeasureType, false> {
+
+ Bed6() : BaseClass(), strand_(Bed::PLUS) {}
+ Bed6(const Bed6& c) : BaseClass(c), strand_(c.strand_) {}
+ Bed6(char const* chrom, CoordType start, CoordType end,
+ char const* id, MeasureType measurement, Strand strand)
+ : BaseClass(chrom, start, end, id, measurement), strand_(strand) {}
+ explicit Bed6(FILE* inF) : BaseClass(), strand_(Bed::PLUS) { this->readline(inF); }
+ explicit Bed6(const std::string& inS) : BaseClass(), strand_(Bed::PLUS)
+ { this->readline(inS); }
+
+ // Properties
+ CoordType distance(const Bed6& a) {
+ if ( strand_ != a.strand_ )
+ return std::numeric_limits< CoordType >::max();
+ return U::distance(a);
+ }
+ CoordType sepDistance(const Bed6& a) {
+ if ( strand_ != a.strand_ )
+ return std::numeric_limits<CoordType>::max();
+ return U::sepDistance(a);
+ }
+ void strand(Strand strand) { strand_ = strand; }
+ Strand strand() const { return strand_; }
+
+ // IO
+ inline int readline(const std::string& inputLine) {
+ static char chrBuf[MAXCHROMSIZE + 1];
+ chrBuf[0] = '\0';
+ static char idBuf[MAXIDSIZE + 1];
+ idBuf[0] = '\0';
+
+ static const std::string lclStatic = inFormatter();
+ static char const* format = lclStatic.c_str();
+ int numScanned = std::sscanf(inputLine.c_str(), format,
+ chrBuf,
+ &start_,
+ &end_,
+ idBuf);
+ this->chrom(chrBuf);
+ this->id(idBuf);
+ return numScanned;
+ }
+ inline int readline(FILE* inputFile) {
+ static char chrBuf[MAXCHROMSIZE + 1];
+ chrBuf[0] = '\0';
+ static char idBuf[MAXIDSIZE + 1];
+ idBuf[0] = '\0';
+
+ static const std::string lclStatic = inFormatter();
+ static char const* format = lclStatic.c_str();
+ int numScanned = std::fscanf(inputFile, format,
+ chrBuf,
+ &start_,
+ &end_,
+ idBuf);
+ std::fgetc(inputFile); // read and discard newline
+ this->chrom(chrBuf);
+ this->id(idBuf);
+ return numScanned;
+ }
+ inline void print() const {
+ static const std::string lclStatic = outFormatter();
+ static char const* format = lclStatic.c_str();
+ std::printf(format, chrom_, start_, end_, id_, measurement_, strand_);
+ }
+ inline void println() const {
+ static const std::string heapFormat = (outFormatter() + "\n");
+ static char const* format = heapFormat.c_str();
+ std::printf(format, chrom_, start_, end_, id_, measurement_, strand_);
+ }
+
+ // Operators
+ Bed6& operator=(const Bed6& c) {
+ BaseClass::operator=(c);
+ this->strand_ = c.strand_;
+ return *this;
+ }
+
+ static const int NumFields = 6;
+ static const bool UseRest = false;
+
+ protected:
+ typedef Bed5<U, MeasureType, false> BaseClass;
+ using BaseClass::chrom_;
+ using BaseClass::start_;
+ using BaseClass::end_;
+ using BaseClass::id_;
+ using BaseClass::measurement_;
+
+ Strand strand_;
+
+ static std::string outFormatter() {
+ return(BaseClass::outFormatter() + "\t%c");
+ }
+
+ static std::string inFormatter() {
+ return(outFormatter() + "%*[^\n]s\n");
+ }
+ };
+
+ // Specialization 2: Extend specialization 1 with "rest-size" information
+ template <typename U, bool HasRest>
+ struct Bed6
+ : public Bed6<U, false> { /* U is forced to be Bed5<> by single specialization above */
+
+ Bed6() : BaseClass(), rest_(new char[1]) { *rest_ = '\0'; }
+ Bed6(const Bed6& c) : BaseClass(c), rest_(new char[(c.rest_ != NULL) ? (std::strlen(c.rest_)+1) : 1])
+ { *rest_ = '\0'; if ( c.rest_ != NULL ) std::strcpy(rest_, c.rest_); }
+ Bed6(char const* chrom, CoordType start, CoordType end,
+ char const* id, typename U::MeasurementType measurement,
+ Strand strand, char const* rest = NULL)
+ : BaseClass(chrom, start, end, id, measurement, strand),
+ rest_(new char[(rest != NULL) ? (std::strlen(rest)+1) : 1]) {
+ *rest_ = '\0';
+ if ( rest && std::strcmp(rest, "") != 0 ) {
+ if ( rest[0] != '\t' )
+ rest_[0] = '\t';
+ std::strcat(rest_, rest);
+ }
+ }
+ explicit Bed6(FILE* inF) : BaseClass(), rest_(0)
+ { this->readline(inF); }
+ explicit Bed6(const std::string& inS) : BaseClass(), rest_(0)
+ { this->readline(inS); }
+
+ // Properties
+ char const* rest() const { return rest_; }
+
+ // IO
+ inline int readline(const std::string& inputLine) {
+ static char chrBuf[MAXCHROMSIZE + 1];
+ chrBuf[0] = '\0';
+ static char idBuf[MAXIDSIZE + 1];
+ idBuf[0] = '\0';
+ static char restBuf[MAXRESTSIZE + 1];
+ restBuf[0] = '\0';
+ static const std::string lclStatic = inFormatter();
+ static char const* format = lclStatic.c_str();
+ int numScanned = std::sscanf(inputLine.c_str(),
+ format, chrBuf,
+ &start_, &end_, idBuf,
+ &measurement_, &strand_, restBuf);
+ this->chrom(chrBuf);
+ this->id(idBuf);
+ if ( rest_ )
+ delete [] rest_;
+ rest_ = new char[std::strlen(restBuf) + 1];
+ std::strcpy(rest_, restBuf);
+ return numScanned;
+ }
+ inline int readline(FILE* inputFile) {
+ static char chrBuf[MAXCHROMSIZE + 1];
+ chrBuf[0] = '\0';
+ static char idBuf[MAXIDSIZE + 1];
+ idBuf[0] = '\0';
+ static char restBuf[MAXRESTSIZE + 1];
+ restBuf[0] = '\0';
+
+ static const std::string lclStatic = inFormatter();
+ static char const* format = lclStatic.c_str();
+ int numScanned = std::fscanf(inputFile,
+ format, chrBuf,
+ &start_, &end_, idBuf,
+ &measurement_, &strand_, restBuf);
+ std::fgetc(inputFile); // Read and discard trailing newline
+ this->chrom(chrBuf);
+ this->id(idBuf);
+ if ( rest_ )
+ delete [] rest_;
+ rest_ = new char[std::strlen(restBuf) + 1];
+ std::strcpy(rest_, restBuf);
+ return numScanned;
+ }
+ inline void print() const {
+ static const std::string lclStatic = outFormatter();
+ static char const* format = lclStatic.c_str();
+ std::printf(format, chrom_, start_, end_, id_, measurement_, strand_, rest_);
+ }
+ inline void println() const {
+ static const std::string heapFormat = outFormatter() + "\n";
+ static char const* format = heapFormat.c_str();
+ std::printf(format, chrom_, start_, end_, id_, measurement_, strand_, rest_);
+ }
+
+ // Operators
+ Bed6& operator=(const Bed6& c) {
+ BaseClass::operator=(c);
+ if ( rest_ )
+ delete [] rest_;
+ rest_ = new char[(c.rest_ != NULL) ? (std::strlen(c.rest_) + 1) : 1];
+ *rest_ = '\0';
+ if ( c.rest_ != NULL ) std::strcpy(rest_, c.rest_);
+ return *this;
+ }
+
+ ~Bed6() {
+ if ( rest_ )
+ delete [] rest_;
+ rest_ = NULL;
+ }
+
+ static const bool UseRest = true;
+
+ protected:
+ typedef Bed6<U, false> BaseClass;
+ using BaseClass::chrom_;
+ using BaseClass::start_;
+ using BaseClass::end_;
+ using BaseClass::id_;
+ using BaseClass::measurement_;
+ using BaseClass::strand_;
+
+ char* rest_;
+
+ static std::string outFormatter() {
+ return(BaseClass::outFormatter() + "%s");
+ }
+
+ static std::string inFormatter() {
+ return(BaseClass::outFormatter() + "%[^\n]s\n");
+ }
+ };
+
+} // namespace Bed
+
+#endif // BED_HPP
diff --git a/interfaces/general-headers/data/bed/BedCheckIterator.hpp b/interfaces/general-headers/data/bed/BedCheckIterator.hpp
new file mode 100644
index 0000000..88e6dab
--- /dev/null
+++ b/interfaces/general-headers/data/bed/BedCheckIterator.hpp
@@ -0,0 +1,661 @@
+/*
+// Author: Shane Neph
+// Date: Sun Mar 18 15:28:01 PDT 2012
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef SPECIAL_BED_ITERATOR_HEADERS_STARCH_CHR_SPECIFIC_HPP
+#define SPECIAL_BED_ITERATOR_HEADERS_STARCH_CHR_SPECIFIC_HPP
+
+#include <cctype>
+#include <cstddef>
+#include <cstdlib>
+#include <istream>
+#include <iterator>
+#include <limits>
+#include <sstream>
+#include <string>
+#include <vector>
+
+#include <sys/stat.h>
+
+#include "algorithm/bed/FindBedRange.hpp"
+#include "algorithm/visitors/helpers/ProcessVisitorRow.hpp"
+#include "data/bed/Bed.hpp"
+#include "data/starch/starchApi.hpp"
+#include "suite/BEDOPS.Constants.hpp"
+#include "utility/ByLine.hpp"
+#include "utility/Exception.hpp"
+
+namespace Bed {
+
+ template <class BedType>
+ class bed_check_iterator;
+
+ template <class BedType>
+ class bed_check_iterator<BedType*> {
+
+ public:
+ typedef Ext::UserError Exception;
+ typedef std::forward_iterator_tag iterator_category;
+ typedef BedType* value_type;
+ typedef std::ptrdiff_t difference_type;
+ typedef BedType** pointer;
+ typedef BedType*& reference;
+
+ static const int nFields_ = BedType::NumFields;
+ static const bool hasRest_ = BedType::UseRest;
+
+ bed_check_iterator() : fp_(std::cin), _M_ok(false), _M_value(0), fn_(""), cnt_(0),
+ lastChr_(""), lastStart_(1), lastEnd_(0), nestCheck_(false),
+ maxEnd_(0), chr_(""), isStarch_(false), all_(true), archive_(0)
+ { /* */ }
+
+ bed_check_iterator(std::istream& is, const std::string& filename, const std::string& chr = "all", bool nestCheck = false)
+ : fp_(is), _M_ok(fp_), _M_value(0), fn_(filename), cnt_(0), lastChr_(""), lastStart_(1),
+ lastEnd_(0), nestCheck_(nestCheck), maxEnd_(0), chr_(chr),
+ isStarch_(false), all_(chr_ == "all"),
+ archive_(0) {
+
+ if ( !_M_ok )
+ return;
+
+ bool is_namedpipe = false;
+ if ( fn_ != "-" && fn_ != "stdin" ) {
+ struct stat st;
+ if ( stat(filename.c_str(), &st) == -1 )
+ throw(Exception("stat() failed on: " + fn_));
+ is_namedpipe = (S_ISFIFO(st.st_mode) != 0);
+ }
+
+ isStarch_ = (fp_ && !is_namedpipe && (&is != &std::cin) && starch::Starch::isStarch(fn_));
+
+ // compare pointers directly, to allow compilation with Clang/LLVM against C++11 standard
+ if ( (&fp_ == &std::cin || is_namedpipe) && !all_ ) { // only BED through stdin; chromosome-specific
+ // cannot 'jump' to chr_ -> stream through, line by line until we find it or eof
+ Ext::ByLine bl;
+ while ( (_M_ok = (fp_ && fp_ >> bl)) ) {
+ ++cnt_;
+ while ( !check(bl) ) {
+ if ( fp_ >> bl )
+ ++cnt_;
+ else { /* only headers found */
+ _M_ok = false;
+ _M_value = static_cast<BedType*>(0);
+ return;
+ }
+ } // while
+ if ( _M_value->chrom() == chr_ )
+ return;
+ delete _M_value;
+ _M_value = static_cast<BedType*>(0);
+ } // while
+ _M_value = static_cast<BedType*>(0);
+ return;
+ }
+ if ( isStarch_ ) {
+ const bool perLineUsage = true;
+ const bool noHeaders = false;
+ archive_ = new starch::Starch(fn_, noHeaders, perLineUsage, chr_);
+ _M_ok = archive_->getArchiveRecordIter();
+ if ( !_M_ok ) {
+ delete archive_;
+ archive_ = NULL;
+ } else {
+ std::string line;
+ _M_ok = get_starch(line); // let starchApi deal with headers
+ if ( _M_ok ) {
+ ++cnt_;
+ check(line);
+ }
+ _M_ok = (_M_ok && static_cast<bool>(_M_value) &&
+ static_cast<bool>(archive_->getArchiveRecordIter()) &&
+ !archive_->isEOF());
+ }
+ } else if ( !all_ ) { // BED, chromosome-specific
+ // position fp_ to start of correct chromosome
+ FILE* tmpf = std::fopen(fn_.c_str(), "r");
+ if ( tmpf == NULL )
+ throw(Exception("Internal problem opening file: " + fn_));
+ std::fseek(tmpf, 0, SEEK_END); // apparently dangerous on some platforms in binary mode -> padded nulls;
+ const Bed::ByteOffset at_end = std::ftell(tmpf); // I'll assume msft is the problem until I know better
+ std::rewind(tmpf);
+
+ Bed::extract_details::TargetBedType* bt = new Bed::extract_details::TargetBedType(tmpf);
+ if ( bt->chrom() == chr_ ) { // first entry is correct chromosome
+ delete bt;
+ std::rewind(tmpf);
+ fp_.seekg(0, std::ios::beg);
+
+ Ext::ByLine bl;
+ if ( !(_M_ok && fp_ >> bl) )
+ _M_ok = false;
+ else {
+ ++cnt_;
+ while ( !check(bl) ) {
+ if ( fp_ >> bl )
+ ++cnt_;
+ else { /* only headers found */
+ _M_ok = false;
+ break;
+ }
+ } // while
+ }
+ _M_ok = (_M_ok && fp_ && !fp_.eof());
+ } else { // search for correct chromosome
+ delete bt;
+ std::rewind(tmpf);
+ const bool done = false;
+ std::vector<Bed::extract_details::TargetBedType*> v;
+ while ( !done ) {
+ bt = new Bed::extract_details::TargetBedType(tmpf);
+ bt->start(std::numeric_limits<Bed::CoordType>::max()-1);
+ bt->end(std::numeric_limits<Bed::CoordType>::max());
+ v.push_back(bt);
+ Visitors::Helpers::DoNothing nada;
+ std::pair<bool, Bed::ByteOffset> lbound;
+ lbound = find_bed_range(tmpf, v.begin(), v.end(), nada); // routine deletes bt for us
+ v.clear(); // bt already deleted
+ if ( lbound.first && lbound.second != at_end ) {
+ std::fseek(tmpf, lbound.second, SEEK_SET);
+ ByteOffset b = std::ftell(tmpf);
+ Bed::extract_details::QueryBedType q(tmpf);
+ std::fseek(tmpf, b, SEEK_SET);
+ if ( q.chrom() == chr_ ) {
+
+ fp_.seekg(b, std::ios::beg);
+ Ext::ByLine bl;
+ if ( !(_M_ok && fp_ >> bl) )
+ _M_ok = false;
+ else {
+ ++cnt_;
+ while ( !check(bl) ) {
+ if ( fp_ >> bl )
+ ++cnt_;
+ else { /* only headers found */
+ _M_value = static_cast<BedType*>(0);
+ _M_ok = false;
+ break;
+ }
+ } // while
+ }
+ _M_ok = (_M_ok && fp_ && !fp_.eof());
+ break;
+ }
+ }
+ else {
+ _M_value = static_cast<BedType*>(0);
+ _M_ok = false;
+ break;
+ }
+ } // while
+ }
+ std::fclose(tmpf);
+ } else { // BED, process everything
+ Ext::ByLine bl;
+ if ( !(_M_ok && fp_ >> bl) )
+ _M_ok = false;
+ else {
+ ++cnt_;
+ while ( !check(bl) ) {
+ if ( fp_ >> bl )
+ ++cnt_;
+ else { /* only headers found */
+ _M_ok = false;
+ break;
+ }
+ } // while
+ }
+ }
+ }
+
+ reference operator*() { return _M_value; }
+ pointer operator->() { return &(operator*()); }
+
+ bed_check_iterator& operator++() {
+ static Ext::ByLine bl;
+ if ( _M_ok ) {
+ if ( !isStarch_ ) { // bed
+ if ( (_M_ok = (fp_ && fp_ >> bl)) ) {
+ ++cnt_;
+ if ( !check(bl) ) {
+ std::stringstream s;
+ s << cnt_;
+ throw(Exception("in " + fn_ + "\nHeader found but should be at top of file.\nSee row: " + s.str()));
+ } else if ( !all_ && (_M_value->chrom() != chr_) ) {
+ delete _M_value;
+ _M_value = static_cast<BedType*>(0);
+ _M_ok = false;
+ }
+ }
+ } else { // starch
+ _M_ok = get_starch(bl);
+ if ( _M_ok ) {
+ ++cnt_;
+ check(bl);
+ }
+ _M_ok = (_M_ok && static_cast<bool>(_M_value) &&
+ static_cast<bool>(archive_->getArchiveRecordIter()) &&
+ !archive_->isEOF());
+ }
+ }
+ return *this;
+ }
+
+ bed_check_iterator operator++(int) {
+ bed_check_iterator __tmp = *this;
+ static Ext::ByLine bl;
+ if ( _M_ok ) {
+ if ( !isStarch_ ) { // bed
+ if ( (_M_ok = (fp_ && fp_ >> bl)) ) {
+ ++cnt_;
+ if ( !check(bl) ) {
+ std::stringstream s;
+ s << cnt_;
+ throw(Exception("in " + fn_ + "\nHeader found but should be at top of file.\nSee row: " + s.str()));
+ } else if ( !all_ && (_M_value->chrom() != chr_ ) ) {
+ delete _M_value;
+ _M_value = static_cast<BedType*>(0);
+ _M_ok = false;
+ }
+ }
+ } else { // starch
+ _M_ok = get_starch(bl);
+ if ( _M_ok ) {
+ ++cnt_;
+ check(bl);
+ }
+ _M_ok = (_M_ok && static_cast<bool>(_M_value) &&
+ static_cast<bool>(archive_->getArchiveRecordIter()) &&
+ !archive_->isEOF());
+ }
+ }
+ return __tmp;
+ }
+
+ void clean() {
+ if ( archive_ )
+ delete archive_;
+ }
+
+ bool _M_equal(const bed_check_iterator& __x) const
+ { return ( (_M_ok == __x._M_ok) && (!_M_ok || &fp_ == &__x.fp_) ); }
+
+ bool operator=(const bed_check_iterator& b);
+
+ protected:
+ std::string lowerstr(const std::string& s) {
+ std::string t(s);
+ for ( std::size_t i = 0; i < t.size(); ++i )
+ t[i] = static_cast<char>(std::tolower(t[i]));
+ return(t);
+ }
+
+ bool isUCSCheader(const std::string& bl) {
+ std::string tmp = lowerstr(bl);
+ return(tmp == "browser" || tmp == "track");
+ }
+
+ bool get_starch(std::string& line) {
+ if ( archive_ == NULL || !archive_->extractBEDLine(line) )
+ return(false);
+ return(!line.empty());
+ }
+
+ bool check(const std::string& bl) {
+ static std::string msg = "";
+ static int cmp = 0;
+
+ msg.clear();
+ if ( bl.empty() )
+ msg = "Empty line found.";
+ else if ( isUCSCheader(bl) )
+ return(false);
+
+ // Check chromosome
+ std::string::size_type marker = 0, sz = bl.size();
+ while ( msg.empty() && marker < sz ) {
+ if ( bl[marker] == ' ' ) {
+ if ( isUCSCheader(bl.substr(0, marker)) )
+ return(false);
+ msg = "First column should not have spaces. Consider 'chr1' vs. 'chr1 '. These are different names.\nsort-bed can correct this for you.";
+ }
+ else if ( 0 == marker && bl[marker] == '@' ) {
+ return(false); // SAM format header supported by starch
+ }
+ else if ( 0 == marker && bl[marker] == '#' ) {
+ return(false); // VCF format header supported by starch
+ }
+ else if ( bl[marker] == '\t' ) {
+ if ( 0 == marker )
+ msg = "First column name should not start with a tab.";
+ else {
+ if ( isUCSCheader(bl.substr(0, marker)) )
+ return(false);
+ break;
+ }
+ }
+ ++marker;
+ } // while
+
+ if ( msg.empty() ) {
+ if ( sz <= marker )
+ msg = "No tabs found in BED row.";
+ else if ( marker > Bed::MAXCHROMSIZE ) { // marker is 0-based; but points to tab after chromosome name
+ msg = "Chromosome name does not fit in MAXCHROMSIZE chars.\nIncrease TOKEN_CHR_MAX_LENGTH in BEDOPS.Constants.hpp and recompile BEDOPS.";
+ std::stringstream a, b;
+ a << Bed::MAXCHROMSIZE;
+ b << bl.substr(0, marker).size();
+ msg += "\nMAXCHROMSIZE = " + a.str();
+ msg += "; Size given = " + b.str();
+ }
+ else
+ ++marker; // increment passed tab
+ }
+
+
+ // Check start coordinate
+ static std::string::size_type pos = marker;
+ pos = marker;
+ while ( msg.empty() && marker < sz ) {
+ if ( !std::isdigit(bl[marker]) ) {
+ if ( bl[marker] == '\t' && pos != marker )
+ break;
+ else if ( bl[marker] == '\t' )
+ msg += "Two or more consecutive tabs. No start coordinate.";
+ else if ( bl[marker] == '-' && marker == pos )
+ msg += "Start coordinate cannot be < 0: ";
+ else if ( bl[marker] == ' ' )
+ msg += "Start coordinate may not contain a space: ";
+ else {
+ msg = "Start coordinate contains non-numeric character: ";
+ msg += bl[marker];
+ }
+ }
+ ++marker;
+ } // while
+
+ if ( msg.empty() ) {
+ if ( sz <= marker )
+ msg = "No tabs after start coordinate.";
+ else {
+ if ( marker-pos > MAX_DEC_INTEGERS )
+ msg = "Sanity check failure - start coordinate has too many digits as defined by MAX_DEC_INTEGERS in BEDOPS.Constants.hpp";
+ else if ( std::atof(bl.substr(pos, marker-pos).c_str()) > double(MAX_COORD_VALUE) )
+ msg = "Sanity check failure - start coordinate is more than allowed by MAX_COORD_VALUE in BEDOPS.Constants.hpp";
+ else if ( std::atof(bl.substr(pos, marker-pos).c_str()) > std::numeric_limits<Bed::CoordType>::max() )
+ msg = "Start coordinate exceeds limits of a Bed::CoordType on your system.";
+ else
+ ++marker; // increment passed tab
+ }
+ }
+
+
+ // Check end coordinate
+ pos = marker;
+ while ( msg.empty() && marker < sz ) {
+ if ( !std::isdigit(bl[marker]) ) {
+ if ( bl[marker] == '\t' && pos != marker )
+ break;
+ else if ( bl[marker] == '\t' )
+ msg += "Two or more consecutive tabs. No end coordinate.";
+ else if ( bl[marker] == '-' && marker == pos )
+ msg += "End coordinate cannot be < 0: ";
+ else if ( bl[marker] == ' ' )
+ msg += "End coordinate may not contain a space: ";
+ else {
+ msg = "End coordinate contains non-numeric character: ";
+ msg += bl[marker];
+ }
+ }
+ ++marker;
+ } // while
+
+ if ( msg.empty() ) {
+ if ( sz <= marker && nFields_ > 3 ) {
+ std::stringstream con; con << nFields_;
+ msg = "Only 3 columns given. Require at least " + con.str();
+ }
+ else {
+ if ( marker-pos > MAX_DEC_INTEGERS )
+ msg = "Sanity check failure - start coordinate has too many digits as defined by MAX_DEC_INTEGERS in BEDOPS.Constants.hpp";
+ else if ( std::atof(bl.substr(pos, marker-pos).c_str()) > double(MAX_COORD_VALUE) )
+ msg = "Sanity check failure - start coordinate is more than allowed by MAX_COORD_VALUE in BEDOPS.Constants.hpp";
+ else if ( std::atof(bl.substr(pos, marker-pos).c_str()) > std::numeric_limits<Bed::CoordType>::max() )
+ msg = "End coordinate exceeds limits of an Bed::CoordType on your system.";
+ else
+ ++marker; // increment passed tab
+ }
+ }
+
+
+ if ( nFields_ > 3 ) { // check ID field
+ pos = marker;
+ while ( msg.empty() && marker < sz ) {
+ if ( bl[marker] == '\t' && pos != marker )
+ break;
+ else if ( bl[marker] == '\t' )
+ msg += "Two or more consecutive tabs. No ID field.";
+ else if ( bl[marker] == ' ' )
+ msg += "ID field may not contain a space.";
+
+ ++marker;
+ } // while
+
+ if ( msg.empty() ) {
+ if ( sz <= marker && nFields_ > 4 ) {
+ std::stringstream con; con << nFields_;
+ msg = "Only 4 columns given. Require at least " + con.str();
+ }
+ else if ( pos == marker )
+ msg = "Fourth (id) column is empty.";
+ else if ( marker-pos > Bed::MAXIDSIZE ) { // marker points at the tab after ID field, and it's 0-based
+ msg = "ID field does not fit in MAXCHROMSIZE chars.\nIncrease TOKEN_ID_MAX_LENGTH in BEDOPS.Constants.hpp and recompile BEDOPS.";
+ std::stringstream a, b;
+ a << Bed::MAXIDSIZE;
+ b << bl.substr(pos, marker-pos).size();
+ msg += "\nMAXIDSIZE = " + a.str();
+ msg += "; Size given = " + b.str();
+ }
+ else
+ ++marker; // increment passed tab
+ }
+
+
+ if ( nFields_ > 4 ) { // check measurement column
+ pos = marker;
+ static int decimalCount = 0;
+ static int expCount = 0;
+ static std::size_t expPos = 0;
+ static int minusCount = 0;
+ static std::size_t minusPos = 0;
+ decimalCount = 0;
+ expCount = 0;
+ expPos = 0;
+ minusCount = 0;
+ minusPos = 0;
+ while ( msg.empty() && marker < sz ) {
+ if ( !std::isdigit(bl[marker]) ) {
+ if ( bl[marker] == '\t' && pos != marker )
+ break;
+ else if ( bl[marker] == '\t' )
+ msg = "Two or more consecutive tabs. No measurement given.";
+ else if ( bl[marker] == '.' ) {
+ if ( ++decimalCount > 1 )
+ msg = "More than one decimal point in measurement field.";
+ else if ( expCount > 0 )
+ msg = "Bad decimal point - part of exponent.";
+ }
+ else if ( bl[marker] == 'e' || bl[marker] == 'E' ) {
+ if ( ++expCount > 1 )
+ msg = "Measurement value contains non-numeric character (multiple 'E' or 'e' characters detected).";
+ expPos = marker;
+ }
+ else if ( bl[marker] == ' ' )
+ msg = "Measurement value may not contain a space.";
+ else if ( bl[marker] == '-' ) {
+ if ( marker != pos && expCount < 1 )
+ msg = "Measurement value has '-' in wrong place.";
+ if ( msg.empty() && marker != pos ) {
+ if ( ++minusCount > 1 )
+ msg = "Measurement value has multiple '-' characters.";
+ else if ( expPos + 1 != marker )
+ msg = "Measurement value has bad '-' in the exponent.";
+ minusPos = marker;
+ }
+ }
+ else {
+ msg = "Measurement value contains non-numeric character: ";
+ msg += bl[marker];
+ }
+ }
+ ++marker;
+ } // while
+
+ if ( msg.empty() ) {
+ if ( sz <= marker && nFields_ > 5 ) {
+ std::stringstream con; con << nFields_;
+ msg += "Only 5 columns given. Require at least " + con.str();
+ }
+ else if ( pos == marker )
+ msg = "Fifth (measure) column is empty.";
+ else if ( minusPos > 0 && minusPos + 1 == marker )
+ msg = "Measurement value ends with a '-'.";
+ else
+ ++marker; // increment passed tab
+ }
+
+
+ if ( nFields_ > 5 ) { // check strand column
+ pos = marker;
+ while ( msg.empty() && marker < sz ) {
+ if ( bl[marker] != '+' && bl[marker] != '-' ) {
+ if ( bl[marker] == '\t' && pos != marker )
+ break;
+ else if ( bl[marker] == '\t' )
+ msg += "Two or more consecutive tabs. No strand information given.";
+ else {
+ msg = "Strand (6th) column must be '+' or '-' (with no spaces). Received: ";
+ msg += bl[marker];
+ msg += "\nsort-bed can correct this for you.";
+ }
+ } else if ( marker != pos ) {
+ msg += "Two or more consecutive '+' or '-'s detected.";
+ }
+ ++marker;
+ } // while
+ }
+
+ if ( msg.empty() ) {
+ if ( pos == marker )
+ msg = "Sixth (strand) column is empty.";
+ else
+ ++marker; // increment passed tab.
+ }
+ }
+ }
+
+ if ( msg.empty() && hasRest_ && marker < sz && sz - marker > Bed::MAXRESTSIZE ) {
+ msg = "The 'rest' of the input row (everything beyond the first ";
+ std::stringstream a, b, c;
+ a << Bed::MAXRESTSIZE;
+ b << bl.substr(marker).size();
+ c << nFields_;
+ msg += c.str();
+ msg += " fields) cannot fit into MAXRESTSIZE chars.\nIncrease TOKEN_REST_MAX_LENGTH in BEDOPS.Constants.hpp and recompile BEDOPS.";
+ msg += "\nMAXRESTSIZE = " + a.str();
+ msg += "; Size given = " + b.str();
+ }
+
+ if ( !msg.empty() ) {
+ std::stringstream s;
+ s << cnt_;
+ throw(Exception("in " + fn_ + "\n" + msg + "\nSee row: " + s.str()));
+ }
+
+ _M_value = new BedType(bl);
+ if ( msg.empty() && !lastChr_.empty() ) {
+ cmp = std::strcmp(_M_value->chrom(), lastChr_.c_str());
+ if ( cmp < 0 )
+ msg = "Bed file not properly sorted by first column.";
+ else if ( cmp == 0 ) {
+ if ( _M_value->start() < lastStart_ )
+ msg = "Bed file not properly sorted by start coordinates.";
+ else if ( _M_value->start() == lastStart_ && _M_value->end() < lastEnd_ )
+ msg = "Bed file not properly sorted by end coordinates when start coordinates are identical.";
+
+ if ( msg.empty() && nestCheck_ ) { // _M_value->start() > lastStart_
+ if ( _M_value->end() < maxEnd_ )
+ msg = "Fully nested component found.";
+ }
+ }
+ }
+
+ if ( msg.empty() && _M_value->end() <= _M_value->start() )
+ msg = "End coordinates must be greater than start coordinates.";
+
+ if ( !msg.empty() ) {
+ std::stringstream s;
+ s << cnt_;
+ throw(Exception("in " + fn_ + "\n" + msg + "\nSee row: " + s.str()));
+ }
+
+ lastChr_ = _M_value->chrom();
+ lastStart_ = _M_value->start();
+ lastEnd_ = _M_value->end();
+ maxEnd_ = lastEnd_;
+ return(true);
+ }
+
+
+ private:
+ std::istream& fp_;
+ bool _M_ok;
+ BedType* _M_value;
+ std::string fn_;
+ Bed::CoordType cnt_;
+ std::string lastChr_;
+ Bed::CoordType lastStart_, lastEnd_;
+ bool allowHeaders_;
+ bool nestCheck_;
+ Bed::CoordType maxEnd_;
+ std::string chr_;
+ bool isStarch_;
+ const bool all_;
+ starch::Starch* archive_;
+ };
+
+ template <class BedType>
+ inline bool
+ operator==(const bed_check_iterator<BedType>& __x,
+ const bed_check_iterator<BedType>& __y) {
+ return __x._M_equal(__y);
+ }
+
+ template <class BedType>
+ inline bool
+ operator!=(const bed_check_iterator<BedType>& __x,
+ const bed_check_iterator<BedType>& __y) {
+ return !__x._M_equal(__y);
+ }
+
+} // namespace Bed
+
+#endif // SPECIAL_BED_ITERATOR_HEADERS_STARCH_CHR_SPECIFIC_HPP
diff --git a/interfaces/general-headers/data/bed/BedCompare.hpp b/interfaces/general-headers/data/bed/BedCompare.hpp
new file mode 100644
index 0000000..045bf78
--- /dev/null
+++ b/interfaces/general-headers/data/bed/BedCompare.hpp
@@ -0,0 +1,168 @@
+/*
+ Author : Shane Neph & Scott Kuehn
+ Date : Fri Aug 24 18:12:08 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef BED_DATA_COMPARE_H
+#define BED_DATA_COMPARE_H
+
+#include <cstring>
+#include <functional>
+
+namespace Bed {
+
+ // Expect predicate function objects to be defined here
+
+ template <typename BedType1, typename BedType2 = BedType1>
+ struct GenomicCompare
+ : public std::binary_function<BedType1 const*, BedType2 const*, bool> {
+
+ inline bool operator()(BedType1 const* ptr1, BedType2 const* ptr2) const {
+ static int v = 0;
+ if ( (v = std::strcmp(ptr1->chrom(), ptr2->chrom())) != 0 )
+ return v < 0;
+ if ( ptr1->start() != ptr2->start() )
+ return ptr1->start() < ptr2->start();
+ return ptr1->end() < ptr2->end();
+ }
+ };
+
+ template <typename BedType1, typename BedType2 = BedType1>
+ struct GenomicAddressCompare
+ : public std::binary_function<BedType1 const*, BedType2 const*, bool> {
+
+ bool operator()(BedType1 const* ptr1, BedType2 const* ptr2) const {
+ static int v = 0;
+ if ( (v = std::strcmp(ptr1->chrom(), ptr2->chrom())) != 0 )
+ return v < 0;
+ if ( ptr1->start() != ptr2->start() )
+ return ptr1->start() < ptr2->start();
+ else if ( ptr1->end() != ptr2->end() )
+ return ptr1->end() < ptr2->end();
+ return ptr1 < ptr2;
+ }
+ };
+
+ template <typename BedType1, typename BedType2 = BedType1>
+ struct InvertGenomicAddressCompare
+ : private GenomicAddressCompare<BedType1, BedType2> {
+ typedef GenomicAddressCompare<BedType1, BedType2> Base;
+ bool operator()(BedType1 const* ptr1, BedType2 const* ptr2) const {
+ return !Base::operator()(ptr1, ptr2);
+ }
+ };
+
+ template <typename BedType1, typename BedType2 = BedType1>
+ struct CoordCompare // ignoring chrom here
+ : public std::binary_function<BedType1 const*, BedType2 const*, bool> {
+
+ bool operator()(BedType1 const* one, BedType2 const* two) const {
+ if ( one->start() != two->start() )
+ return one->start() < two->start();
+ return one->end() < two->end();
+ }
+ };
+
+ template <typename BedType1, typename BedType2 = BedType1>
+ struct CoordAddressCompare // not caring about chrom here
+ : public std::binary_function<BedType1 const*, BedType2 const*, bool> {
+
+ bool operator()(BedType1 const* one, BedType2 const* two) const {
+ if ( one->start() != two->start() )
+ return one->start() < two->start();
+ if ( one->end() != two->end() )
+ return one->end() < two->end();
+ return one < two;
+ }
+ };
+
+ template <typename BedType1, typename BedType2 = BedType1>
+ struct RevCoordAddressCompare // not caring about chrom here
+ : public std::binary_function<BedType1 const*, BedType2 const*, bool> {
+
+ bool operator()(BedType1 const* one, BedType2 const* two) const {
+ if ( one->end() != two->end() )
+ return one->end() < two->end();
+ if ( one->start() != two->start() )
+ return one->start() < two->start();
+ return one < two;
+ }
+ };
+
+ template <typename BedType1, typename BedType2 = BedType1>
+ struct EndCoordAddressCompareLesser
+ : public std::binary_function<BedType1 const*, BedType2 const*, bool> {
+
+ bool operator()(BedType1 const* one, BedType2 const* two) const {
+ if ( one->end() != two->end() )
+ return one->end() < two->end();
+ return one < two;
+ }
+ };
+
+ template <typename BedType1, typename BedType2 = BedType1>
+ struct EndCoordAddressCompareGreater
+ : public std::binary_function<BedType1 const*, BedType2 const*, bool> {
+
+ bool operator()(BedType1 const* one, BedType2 const* two) const {
+ if ( one->end() != two->end() )
+ return one->end() > two->end();
+ return one > two;
+ }
+ };
+
+ template <typename BedType1, typename BedType2 = BedType1>
+ struct StartCoordAddressCompareLesser
+ : public std::binary_function<BedType1 const*, BedType2 const*, bool> {
+
+ bool operator()(BedType1 const* one, BedType2 const* two) const {
+ if ( one->start() != two->start() )
+ return one->start() < two->start();
+ return one < two;
+ }
+ };
+
+ template <typename BedType1, typename BedType2 = BedType1>
+ struct StartCoordAddressCompareGreater
+ : public std::binary_function<BedType1 const*, BedType2 const*, bool> {
+
+ bool operator()(BedType1 const* one, BedType2 const* two) const {
+ if ( one->start() != two->start() )
+ return one->start() > two->start();
+ return one > two;
+ }
+ };
+
+ template <typename BedType1, typename BedType2 = BedType1>
+ struct ScoreCompare
+ : public std::binary_function<BedType1 const*, BedType2 const*, bool> {
+
+ bool operator()(BedType1 const* one, BedType2 const* two) const {
+ return one->measurement() < two->measurement();
+ }
+ };
+
+
+} // namespace Bed
+
+
+
+#endif // BED_DATA_COMPARE_H
diff --git a/interfaces/general-headers/data/bed/BedDistances.hpp b/interfaces/general-headers/data/bed/BedDistances.hpp
new file mode 100644
index 0000000..f017f8d
--- /dev/null
+++ b/interfaces/general-headers/data/bed/BedDistances.hpp
@@ -0,0 +1,321 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Tue Aug 14 15:50:16 PDT 2007
+*/
+
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef BED_DISTANCE_FUNCTIONS_H
+#define BED_DISTANCE_FUNCTIONS_H
+
+#include <algorithm>
+#include <cstddef>
+#include <cstdlib>
+#include <cstring>
+#include <limits>
+
+#include "suite/BEDOPS.Constants.hpp"
+
+namespace Bed {
+
+ //============
+ // RangedDist
+ //============
+ struct RangedDist {
+ enum { PercentBased = false, Symmetric = true, BP = !PercentBased, Identical = false, Ranged = true };
+
+ explicit RangedDist(CoordType maxDist = 0)
+ : maxDist_(maxDist) { /* */ }
+
+ template <typename T1, typename T2>
+ inline int Map2Ref(T1 const* t1, T2 const* t2) const
+ { return(this->operator()(t1, t2)); }
+
+ template <typename T2, typename T1>
+ inline int Ref2Map(T2 const* t2, T1 const* t1) const
+ { return(this->operator()(t2, t1)); }
+
+ /* report 0 if within maxDist_; -1 if 'a' "<" 'b'; 1 otherwise */
+ template <typename BedType1, typename BedType2>
+ inline int operator()(BedType1 const* a, BedType2 const* b) const {
+ static int v = 0;
+ if ( (v = std::strcmp(a->chrom(), b->chrom())) != 0 )
+ return((v > 0) ? 1 : -1);
+ else if ( a->start() < b->end() )
+ return((a->end() + maxDist_ > b->start()) ? 0 : -1);
+ return((b->end() + maxDist_ > a->start()) ? 0 : 1);
+ }
+
+ CoordType maxDist_;
+ };
+
+ //=================
+ // AsymmRangedDist
+ //=================
+ /* this does not work well with sweep() because of asymmetry - use bedops --range L:R
+ functionality to achieve what you need.
+ struct AsymmRangedDist { };
+ */
+
+ //=============
+ // Overlapping
+ //=============
+ struct Overlapping {
+ enum { PercentBased = false, Symmetric = true, BP = !PercentBased, Identical = false, Ranged = false };
+
+ explicit Overlapping(CoordType ovrRequired = 0)
+ : ovrRequired_(ovrRequired) { /* */ }
+
+ template <typename T1, typename T2>
+ inline int Ref2Map(T1 const* t1, T2 const* t2) const
+ { return(this->operator()(t1, t2)); }
+
+ template <typename T2, typename T1>
+ inline int Map2Ref(T2 const* t2, T1 const* t1) const
+ { return(this->operator()(t2, t1)); }
+
+ /* report 0 if overlapping "ovrRequired";
+ -1 if a "<" b, and +1 otherwise */
+ template <typename BedType1, typename BedType2>
+ inline int operator()(BedType1 const* a, BedType2 const* b) const {
+ static int v = 0;
+ if ( (v = std::strcmp(a->chrom(), b->chrom())) != 0 )
+ return ((v > 0) ? 1 : -1);
+ CoordType mn = std::max(a->start(), b->start());
+ CoordType mx = std::min(a->end(), b->end());
+ if ( mx > mn ) { // some overlap
+ if ( mx-mn >= ovrRequired_ )
+ return(0);
+ if ( a->start() != b->start() )
+ return((a->start() < b->start()) ? -1 : 1);
+ if ( a->end() != b->end() )
+ return((a->end() < b->end()) ? -1 : 1);
+ CoordType aidx = static_cast<CoordType>(a - static_cast<BedType1 const*>(0));
+ CoordType bidx = static_cast<CoordType>(b - static_cast<BedType2 const*>(0));
+ return((aidx < bidx) ? -1 : 1); // a==b but still overlap < ovrRequired
+ }
+ return((a->start() < b->start()) ? -1 : 1); // no overlap
+ }
+
+ CoordType ovrRequired_;
+ };
+
+ //========================
+ // PercentOverlapMapping : look at % overlap relative to mapType's size
+ //========================
+ struct PercentOverlapMapping {
+ enum { PercentBased = true, Symmetric = false, BP = !PercentBased, Identical = false, Ranged = false };
+
+ explicit PercentOverlapMapping(double perc = 1.0)
+ : perc_(perc) {
+
+ while ( perc_ > 1 ) // ie; assume 40 was suppose to be 0.4 = 40%
+ perc_ /= 10.0;
+
+ perc_ -= std::numeric_limits<double>::epsilon(); // deal with small diffs
+
+ if ( perc_ <= 0.0 )
+ perc_ = std::numeric_limits<double>::epsilon();
+ }
+
+ // report 0 if mapType overlaps refType by perc_ or more (relative to
+ // mapType's length).
+ // report -1 if refType "<" mapType, otherwise report 1
+ template <typename T1, typename T2>
+ inline int Ref2Map(T1 const* refType, T2 const* mapType) const {
+
+ static int v = 0;
+ static double sz = 0, totalLength = 0;
+ static int direction = 0;
+
+ // check if no overlap first
+ if ( (v = std::strcmp(refType->chrom(), mapType->chrom())) != 0 )
+ return((v > 0) ? 1 : -1);
+ else if ( refType->end() < mapType->start() )
+ return(-1);
+ else if ( mapType->end() < refType->start() )
+ return(1);
+
+ // overlap exists
+ if ( perc_ <= std::numeric_limits<double>::epsilon() )
+ return(0);
+
+ totalLength = mapType->end() - mapType->start();
+ if ( refType->start() <= mapType->start() ) {
+ if ( refType->end() >= mapType->end() )
+ sz = mapType->end() - mapType->start();
+ else
+ sz = refType->end() - mapType->start();
+ direction = -1;
+ }
+ else { // refType->start() > mapType->start()
+ if ( refType->end() >= mapType->end() )
+ sz = mapType->end() - refType->start();
+ else
+ sz = refType->end() - refType->start();
+ direction = 1;
+ }
+
+ if ( sz / totalLength >= perc_ )
+ return(0);
+ return(direction);
+ }
+
+ // report 0 if mapType overlaps refType by perc_ or more (relative to mapType's length)
+ // else, report -1 if mapType "<" refType or 1 otherwise
+ template <typename T2, typename T1>
+ inline int Map2Ref(T2 const* mapType, T1 const* refType) const {
+ return(-Ref2Map(refType, mapType));
+ }
+
+ private:
+ double perc_;
+ };
+
+ //==========================
+ // PercentOverlapReference: looking at % overlap relative to refType's size
+ // (think bedops -e)
+ //==========================
+ struct PercentOverlapReference : public PercentOverlapMapping {
+ enum { PercentBased = true, Symmetric = false, BP = !PercentBased, Identical = false, Ranged = false };
+
+ explicit PercentOverlapReference(double perc = 1.0)
+ : BaseClass(perc) { }
+
+ // report 0 if refType overlaps mapType by perc or more (relative to refType's length)
+ // else, report -1 if refType "<" mapType or 1 otherwise
+ template <typename T1, typename T2>
+ inline int Ref2Map(T1 const* refType, T2 const* mapType) const {
+ return(-BaseClass::Ref2Map(mapType, refType));
+ }
+
+ // report 0 if refType overlaps mapType by perc or more (relative to refType's length)
+ // else, report -1 if mapType "<" refType or 1 othersise
+ template <typename T1, typename T2>
+ inline int Map2Ref(T1 const* mapType, T2 const* refType) const {
+ return(-Ref2Map(refType, mapType));
+ }
+
+ protected:
+ typedef PercentOverlapMapping BaseClass;
+ };
+
+ //==========================
+ // PercentOverlapEither: looking at % overlap relative to refType's OR mapType's size
+ //==========================
+ struct PercentOverlapEither : public PercentOverlapMapping {
+ enum { PercentBased = true, Symmetric = false, BP = !PercentBased, Identical = false, Ranged = false };
+
+ explicit PercentOverlapEither(double perc = 1.0)
+ : BaseClass(perc) { }
+
+ // report 0 if refType overlaps mapType by perc or more (relative to refType's length)
+ // OR mapType overlaps refType by perc or more (relative to mapType's length)
+ // else, report -1 if refType "<" mapType or 1 otherwise
+ template <typename T1, typename T2>
+ inline int Ref2Map(T1 const* refType, T2 const* mapType) const {
+ int val1 = BaseClass::Ref2Map(refType, mapType);
+ if ( 0 == val1 )
+ return(val1);
+ int val2 = -1 * BaseClass::Ref2Map(mapType, refType);
+ if ( 0 == val2 )
+ return(val2);
+ return(val1);
+ }
+
+ // report 0 if refType overlaps mapType by perc or more (relative to refType's length)
+ // OR mapType overlaps refType by perc or more (relative to mapType's length)
+ // else, report -1 if mapType "<" refType or 1 othersise
+ template <typename T1, typename T2>
+ inline int Map2Ref(T1 const* mapType, T2 const* refType) const {
+ return(-Ref2Map(refType, mapType));
+ }
+
+ protected:
+ typedef PercentOverlapMapping BaseClass;
+ };
+
+ //==========================
+ // PercentOverlapBoth: looking at % overlap relative to refType's AND mapType's size
+ //==========================
+ struct PercentOverlapBoth : public PercentOverlapMapping {
+ enum { PercentBased = true, Symmetric = true, BP = !PercentBased, Identical = false, Ranged = false };
+
+ explicit PercentOverlapBoth(double perc = 1.0)
+ : BaseClass(perc) { }
+
+ // report 0 if refType overlaps mapType by perc or more (relative to refType's length)
+ // AND mapType overlaps refType by perc or more (relative to mapType's length)
+ // else, report -1 if refType "<" mapType or 1 otherwise
+ template <typename T1, typename T2>
+ inline int Ref2Map(T1 const* refType, T2 const* mapType) const {
+ int val1 = BaseClass::Ref2Map(refType, mapType);
+ if ( 0 != val1 )
+ return(val1);
+ int val2 = -BaseClass::Ref2Map(mapType, refType);
+ if ( 0 != val2 )
+ return(val2);
+ return(0);
+ }
+
+ // report 0 if refType overlaps mapType by perc or more (relative to refType's length)
+ // AND mapType overlaps refType by perc or more (relative to mapType's length)
+ // else, report -1 if mapType "<" refType or 1 othersise
+ template <typename T1, typename T2>
+ inline int Map2Ref(T1 const* mapType, T2 const* refType) const {
+ return(-Ref2Map(refType, mapType));
+ }
+
+ protected:
+ typedef PercentOverlapMapping BaseClass;
+ };
+
+ //==============================
+ // Exact: what the name implies
+ //==============================
+ struct Exact {
+ enum { PercentBased = false, Symmetric = true, BP = !PercentBased, Identical = true, Ranged = false };
+
+ Exact() {}
+
+ // report 0 if exact.
+ // else, report -1 if refType "<" mapType or 1 otherwise
+ template <typename T1, typename T2>
+ inline int Ref2Map(T1 const* refType, T2 const* mapType) const {
+ int v = 0;
+ if ( (v = std::strcmp(refType->chrom(), mapType->chrom())) != 0 )
+ return v < 0 ? -1 : 1;
+ else if ( refType->start() != mapType->start() )
+ return refType->start() < mapType->start() ? -1 : 1;
+ else if ( refType->end() != mapType->end() )
+ return refType->end() < mapType->end() ? -1 : 1;
+ return 0;
+ }
+
+ // invert Ref2Map's result with args switched
+ template <typename T1, typename T2>
+ inline int Map2Ref(T1 const* mapType, T2 const* refType) const {
+ return -Ref2Map(refType, mapType);
+ }
+ };
+
+} // namespace Bed
+
+#endif // BED_DISTANCE_FUNCTIONS_H
diff --git a/interfaces/general-headers/data/bed/BedTypes.hpp b/interfaces/general-headers/data/bed/BedTypes.hpp
new file mode 100644
index 0000000..dbda930
--- /dev/null
+++ b/interfaces/general-headers/data/bed/BedTypes.hpp
@@ -0,0 +1,77 @@
+/*
+ Author: Scott Kuehn, Shane Neph
+ Date: Tue Aug 14 14:44:45 PDT 2007
+*/
+
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef BEDTYPES_HPP
+#define BEDTYPES_HPP
+
+#include "data/bed/Bed.hpp"
+
+namespace Bed {
+
+ /***********************************************/
+ /* Typedef helper for user applications */
+ /***********************************************/
+ template <bool UseNonStaticChrom, bool UseRest, typename MType = double>
+ struct BedTypes {
+ typedef MType MeasureType;
+ typedef BasicCoords<UseNonStaticChrom, UseRest> Bed3Type;
+ typedef Bed4< Bed3Type, UseRest > Bed4Type;
+ typedef Bed5< Bed4Type, MeasureType, UseRest > Bed5Type;
+ typedef Bed6< Bed5Type, UseRest > Bed6Type;
+ };
+
+ enum { Rest = true, NoRest = false, OneChrom = false, AllChrom = true };
+
+
+ /***********************************************/
+ /* Common typedefs */
+ /***********************************************/
+ typedef BedTypes<AllChrom, Rest, double> BTAllRest;
+ typedef BedTypes<AllChrom, NoRest, double> BTAllNoRest;
+ typedef BedTypes<OneChrom, Rest, double> BTOneRest;
+ typedef BedTypes<OneChrom, NoRest, double> BTOneNoRest;
+
+ typedef BTAllRest::Bed3Type B3Rest;
+ typedef BTAllNoRest::Bed3Type B3NoRest;
+ typedef BTOneRest::Bed3Type B3OneChromRest;
+ typedef BTOneNoRest::Bed3Type B3OneChromNoRest;
+
+ typedef BTAllRest::Bed4Type B4Rest;
+ typedef BTAllNoRest::Bed4Type B4NoRest;
+ typedef BTOneRest::Bed4Type B4OneChromRest;
+ typedef BTOneNoRest::Bed4Type B4OneChromNoRest;
+
+ typedef BTAllRest::Bed5Type B5Rest;
+ typedef BTAllNoRest::Bed5Type B5NoRest;
+ typedef BTOneRest::Bed5Type B5OneChromRest;
+ typedef BTOneNoRest::Bed5Type B5OneChromNoRest;
+
+ typedef BTAllRest::Bed6Type B6Rest;
+ typedef BTAllNoRest::Bed6Type B6NoRest;
+ typedef BTOneRest::Bed6Type B6OneChromRest;
+ typedef BTOneNoRest::Bed6Type B6OneChromNoRest;
+
+} // namespace Bed
+
+#endif // BEDTYPES_HPP
diff --git a/interfaces/general-headers/data/measurement/AssayMeasurement.hpp b/interfaces/general-headers/data/measurement/AssayMeasurement.hpp
new file mode 100644
index 0000000..72c9196
--- /dev/null
+++ b/interfaces/general-headers/data/measurement/AssayMeasurement.hpp
@@ -0,0 +1,150 @@
+/*
+ Author: Scott Kuehn, Shane Neph
+ Date: Fri Jul 27 11:49:03 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#include <limits>
+#include <type_traits>
+
+#include "utility/Formats.hpp"
+
+#ifndef ASSAY_MEASUREMENT_HPP
+#define ASSAY_MEASUREMENT_HPP
+
+namespace Signal {
+ namespace Details {
+
+ // The main idea: AssayMeasurement inherits from AssayMeasurementImpl<T, T>. When T happens
+ // to be a built-in type, then the specialization <T,T> matches best over the general
+ // <T,U> AssayMeasurementImpl. When T is not a built-in type, the specialization is
+ // invalidated from entering the overload set and the general case is inherited from.
+
+ template <typename T, typename U>
+ struct AssayMeasurementImpl; // Forward Decl
+
+ template <typename T>
+ struct AssayMeasurementImpl<T, typename std::enable_if<std::is_arithmetic<T>::value, T>::type> {
+ typedef T value_type;
+
+ explicit AssayMeasurementImpl(T m = 0) : measurement_(m) { }
+ AssayMeasurementImpl(const AssayMeasurementImpl& a) : measurement_(a.measurement_) { /* */ }
+ bool isNaN() const
+ { return NL::has_quiet_NaN && measurement_ == NL::quiet_NaN(); }
+ T measurement() const { return measurement_; }
+ void measurement(T m) { measurement_ = m; }
+ operator T() const { return measurement_; }
+ AssayMeasurementImpl& operator=(T t) { measurement_ = t; return *this; }
+ AssayMeasurementImpl& operator=(const AssayMeasurementImpl& a)
+ { measurement_ = a.measurement_; return *this; }
+
+ static inline char const* formatter()
+ { return Formats::Format(typename std::remove_cv<T>::type()); }
+
+ protected:
+ T measurement_;
+ typedef std::numeric_limits<T> NL;
+ };
+
+
+ // General implementation simply inherits a specialization from above
+ // Requires T::MEASURETYPE to be defined. This is useful for building
+ // algorithms -> as long as T::MEASURETYPE is (eventually) defined to
+ // be a built in numeric type, then we will (eventually) inherit from
+ // a specialization from above, allowing an algorithm to be written in
+ // terms of fundamental types via conversion functions.
+ template <typename T, typename U>
+ struct AssayMeasurementImpl
+ : public AssayMeasurementImpl<typename T::MEASURETYPE, typename T::MEASURETYPE> {
+ typedef typename T::MEASURETYPE MEASURETYPE; // in case T is a spec of this class
+ typedef AssayMeasurementImpl<MEASURETYPE, MEASURETYPE> BaseClass;
+
+ AssayMeasurementImpl() : BaseClass() { /* */ }
+ AssayMeasurementImpl(typename BaseClass::value_type t) : BaseClass(t) { /* */ }
+ AssayMeasurementImpl(const AssayMeasurementImpl& m) : BaseClass(m) { /* */ }
+ };
+
+ } // namespace Signal::Details
+
+
+
+ //==================
+ // AssayMeasurement
+ //==================
+ template <typename T>
+ struct AssayMeasurement : public Details::AssayMeasurementImpl<T, T> {
+ // Internal typedefs
+ typedef Details::AssayMeasurementImpl<T, T> BaseClass;
+ typedef typename BaseClass::value_type value_type;
+
+ // Construction
+ AssayMeasurement() : BaseClass() { /* */ }
+ explicit AssayMeasurement(value_type t) : BaseClass(t) { /* */ }
+ AssayMeasurement(const AssayMeasurement& a) : BaseClass(a) { /* */ }
+
+ // Copy-assignment
+ AssayMeasurement& operator=(const AssayMeasurement& a)
+ { BaseClass::measurement_ = a.measurement_; return *this; }
+ AssayMeasurement& operator=(value_type t)
+ { BaseClass::measurement_ = t; return *this; }
+
+ // non-friend operators
+ AssayMeasurement& operator-=(const AssayMeasurement& a)
+ { BaseClass::measurement_ -= a.measurement_; return *this; }
+ AssayMeasurement& operator+=(const AssayMeasurement& a)
+ { BaseClass::measurement_ += a.measurement_; return *this; }
+ AssayMeasurement& operator*=(const AssayMeasurement& a)
+ { BaseClass::measurement_ *= a.measurement_; return *this; }
+ AssayMeasurement& operator/=(const AssayMeasurement& a)
+ { BaseClass::measurement_ /= a.measurement_; return *this; }
+ AssayMeasurement& operator++()
+ { ++BaseClass::measurement_; return *this; }
+ AssayMeasurement operator++(int)
+ { AssayMeasurement cpy(*this); ++(*this); return cpy; }
+ AssayMeasurement& operator--()
+ { --BaseClass::measurement_; return *this; }
+ AssayMeasurement operator--(int)
+ { AssayMeasurement cpy(*this); --(*this); return cpy; }
+
+ // friend operator functions
+ friend bool operator<(const AssayMeasurement& a, const AssayMeasurement& b)
+ { return(a.measurement_ < b.measurement_); }
+ friend bool operator<=(const AssayMeasurement& a, const AssayMeasurement& b)
+ { return(a.measurement_ <= b.measurement_); }
+ friend bool operator>(const AssayMeasurement& a, const AssayMeasurement& b)
+ { return(a.measurement_ > b.measurement_); }
+ friend bool operator>=(const AssayMeasurement& a, const AssayMeasurement& b)
+ { return(a.measurement_ >= b.measurement_); }
+ friend bool operator==(const AssayMeasurement& a, const AssayMeasurement& b)
+ { return(a.measurement_ == b.measurement_); }
+ friend bool operator!=(const AssayMeasurement& a, const AssayMeasurement& b)
+ { return(a.measurement_ != b.measurement_); }
+ friend AssayMeasurement operator-(const AssayMeasurement& a, const AssayMeasurement& b)
+ { AssayMeasurement toRtn(a.measurement_ - b.measurement_); return toRtn; }
+ friend AssayMeasurement operator+(const AssayMeasurement& a, const AssayMeasurement& b)
+ { AssayMeasurement toRtn(a.measurement_ + b.measurement_); return toRtn; }
+ friend AssayMeasurement operator*(const AssayMeasurement& a, const AssayMeasurement& b)
+ { AssayMeasurement toRtn(a.measurement_ * b.measurement_); return toRtn; }
+ friend AssayMeasurement operator/(const AssayMeasurement& a, const AssayMeasurement& b)
+ { AssayMeasurement toRtn(a.measurement_ / b.measurement_); return toRtn; }
+ };
+} // namespace Signal
+
+#endif // ASSAY_MEASUREMENT_HPP
diff --git a/interfaces/general-headers/data/measurement/NaN.hpp b/interfaces/general-headers/data/measurement/NaN.hpp
new file mode 100644
index 0000000..12f7ac6
--- /dev/null
+++ b/interfaces/general-headers/data/measurement/NaN.hpp
@@ -0,0 +1,43 @@
+/*
+ Author: Scott Kuehn, Shane Neph
+ Date: Mon Sep 10 11:33:57 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef NAN_HPP
+#define NAN_HPP
+
+#include <ostream>
+
+namespace Signal {
+
+ struct NaN {
+ typedef char const* Type;
+ friend std::ostream& operator<<(std::ostream& os, const NaN&) {
+ os << nan_;
+ return(os);
+ }
+
+ static Type nan_;
+ };
+
+} // namespace Signal
+
+#endif // NAN_HPP
diff --git a/interfaces/general-headers/data/measurement/SelectMeasureType.hpp b/interfaces/general-headers/data/measurement/SelectMeasureType.hpp
new file mode 100644
index 0000000..30d2703
--- /dev/null
+++ b/interfaces/general-headers/data/measurement/SelectMeasureType.hpp
@@ -0,0 +1,67 @@
+/*
+ Author: Shane Neph, Scott Kuehn
+ Date: Dec.2013
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef _MEASURE_SELECTOR_HPP
+#define _MEASURE_SELECTOR_HPP
+
+#include <type_traits>
+
+namespace Signal {
+ namespace Details {
+ // The main idea: SelectMeasure inherits from SelectMeasureImpl<T, T>. When T happens
+ // to be a built-in type, then the specialization <T,T> matches best over the general
+ // <UserDefined,U> SelectMeasureImpl. When T is not a built-in type, the specialization is
+ // invalidated from entering the overload set and the general case is inherited from.
+
+ template <typename T, typename U>
+ struct SelectMeasureImpl; // Forward Decl
+
+ // built-ins
+ template <typename BuiltIn>
+ struct SelectMeasureImpl<BuiltIn, typename std::enable_if<std::is_arithmetic<BuiltIn>::value, BuiltIn>::type> {
+ typedef BuiltIn MeasureType;
+ };
+
+ // user-defined : requires MeasurementType typedef
+ // as used by SelectMeasure: UserDefined==U always, and is not a built-in
+ template <typename UserDefined, typename U>
+ struct SelectMeasureImpl {
+ typedef typename UserDefined::MeasurementType MeasureType;
+ };
+ } // namespace Details
+
+ // General implementation simply inherits a specialization from above
+ // Requires T::MeasurementType to be defined. This is useful for building
+ // algorithms -> as long as T::MeasurementType is (eventually) defined to
+ // be a built in numeric type, then we will (eventually) inherit from
+ // a specialization from above, allowing an algorithm to be written in
+ // terms of fundamental types via conversion functions.
+ template <typename T>
+ struct SelectMeasure : public Details::SelectMeasureImpl<T, T> {
+ // Internal typedefs
+ typedef Details::SelectMeasureImpl<T, T> BaseClass;
+ typedef typename BaseClass::MeasureType MeasureType;
+ };
+} // namespace Signal
+
+#endif // _MEASURE_SELECTOR_HPP
diff --git a/interfaces/general-headers/data/starch/starchApi.hpp b/interfaces/general-headers/data/starch/starchApi.hpp
new file mode 100644
index 0000000..881922f
--- /dev/null
+++ b/interfaces/general-headers/data/starch/starchApi.hpp
@@ -0,0 +1,1991 @@
+//=========
+// Author: Alex Reynolds & Shane Neph
+// Project: starch
+// File: starchApi.hpp
+//=========
+
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef STARCH_API_H
+#define STARCH_API_H
+
+#ifdef __cplusplus
+#include <cinttypes>
+#include <cstdint>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#else
+#include <inttypes.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#endif
+
+#include <sys/stat.h>
+#include <bzlib.h>
+#include <zlib.h>
+
+#include "starchMetadataHelpers.h"
+#include "starchFileHelpers.h"
+#include "starchHelpers.h"
+#include "unstarchHelpers.h"
+#include "data/starch/starchConstants.h"
+
+namespace starch
+{
+ class Starch
+ {
+ public:
+ Starch();
+ explicit Starch(FILE *, const std::string& _chr = "all", bool _perLineUsage = true);
+ explicit Starch(const std::string&);
+ Starch(FILE *, const std::string&, const std::string&, bool);
+ Starch(const std::string&, const bool);
+ Starch(const std::string&, const bool, const bool, const std::string&);
+ Starch(const std::string&, const bool, const bool, Metadata *, CompressionType, ArchiveVersion *, uint64_t, unsigned int);
+ virtual ~Starch();
+ Starch(const Starch& cpArchive);
+ Starch& operator=(const Starch& cpArchive);
+
+ int listJSONMetadata(FILE *out, FILE *err);
+ bool extractBEDLine(std::string& line);
+ int extractAllData(const std::string& chr, FILE *out);
+
+ static bool fnExists(const std::string& _inFn)
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::fnExists(std::string) ---\n");
+#endif
+ struct stat _buf;
+ return (stat(_inFn.c_str(), &_buf) == 0);
+ }
+
+ static bool fpIsOpen(FILE *_inFp)
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::fpIsOpen(FILE *) ---\n");
+#endif
+ if (std::fseek(_inFp, 0, SEEK_SET) != 0)
+ return false;
+
+ if (std::ftell(_inFp) != 0L)
+ return false;
+
+ return true;
+ }
+
+ static bool hasStarchRevision2Header(FILE *_inFp)
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::hasStarchRevision2Header(FILE *) ---\n");
+#endif
+ int _testByte;
+ size_t _testIdx;
+
+ for (_testIdx = 0; _testIdx < sizeof(starchRevision2HeaderBytes); _testIdx++) {
+ _testByte = std::fgetc(_inFp);
+ if (_testByte != starchRevision2HeaderBytes[_testIdx]) {
+ std::fseek(_inFp, 0, SEEK_SET);
+ return false;
+ }
+ }
+
+ if (std::fseek(_inFp, 0, SEEK_SET) != 0)
+ return false;
+
+ return true;
+ }
+
+ static bool hasStarchRevision2Header(std::string& _inFn)
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::hasStarchRevision2Header(std::string) ---\n");
+#endif
+ FILE *_testFp = NULL;
+
+ _testFp = std::fopen(_inFn.c_str(), "r");
+ if (!_testFp)
+ return false;
+
+ if (!hasStarchRevision2Header(_testFp)) {
+ std::fclose(_testFp);
+ return false;
+ }
+
+ if (std::fclose(_testFp) != 0)
+ return false;
+
+ return true;
+ }
+
+ static bool hasStarchRevision1Header(FILE *_inFp)
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::hasStarchRevision1Header(FILE *) ---\n");
+#endif
+ int _testByte;
+ size_t _testIdx;
+ char _testMagicBuf[STARCH_TEST_BYTE_COUNT] = {0};
+ uint64_t _mdOffset = 0;
+ uint64_t _mdOffsetIdx = 0;
+ int _testElemSize = sizeof(char);
+ int _testElemCount = STARCH_TEST_BYTE_COUNT;
+ char *_testMagicPrecursor = NULL;
+ char *_mdBuf = NULL;
+ json_t *_mdJSON = NULL;
+ json_error_t _mdJSONError;
+ json_t *_mdJSONArchive = NULL;
+ const char *_mdJSONObjKey = NULL;
+ json_t *_mdJSONObjValue = NULL;
+ json_t *_mdJSONArchVersion = NULL;
+ const char *_mdJSONArchVerObjKey = NULL;
+ json_t *_mdJSONArchVerObjValue = NULL;
+ ArchiveVersion *_archVersion = NULL;
+ json_t *_mdJSONStreams = NULL;
+ char *_archStreamChr = NULL;
+ char *_archStreamFn = NULL;
+ size_t _mdJSONStreamIdx;
+ json_t *_mdJSONStream = NULL;
+ json_t *_mdJSONStreamChr = NULL;
+ json_t *_mdJSONStreamFn = NULL;
+ json_t *_mdJSONStreamSize = NULL;
+ json_t *_mdJSONStreamLineCount = NULL;
+ json_t *_mdJSONStreamNonUniqueBaseCount = NULL;
+ json_t *_mdJSONStreamUniqueBaseCount = NULL;
+ json_t *_mdJSONStreamDuplicateElementExists = NULL;
+ json_t *_mdJSONStreamNestedElementExists = NULL;
+ uint64_t _archStreamSize = 0;
+ Bed::LineCountType _archStreamLineCount = 0;
+ Bed::BaseCountType _archStreamNonUniqueBaseCount = 0;
+ Bed::BaseCountType _archStreamUniqueBaseCount = 0;
+ Boolean _archStreamDuplicateElementExists = STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE;
+ Boolean _archStreamNestedElementExists = STARCH_DEFAULT_NESTED_ELEMENT_FLAG_VALUE;
+ Metadata *_testMd = NULL;
+ Metadata *_firstMd = NULL;
+ unsigned int _recIdx = 0U;
+ size_t _nReadBytes = 0U;
+
+ for (_testIdx = 0; _testIdx < sizeof(starchRevision1HeaderBytes); _testIdx++) {
+ _testByte = std::fgetc(_inFp);
+ if (_testByte != starchRevision1HeaderBytes[_testIdx]) {
+ std::fseek(_inFp, 0, SEEK_SET);
+ return false;
+ }
+ }
+
+ /*
+ while we know that the file starts with the byte(s)
+ that one will find in a v1 Starch archive, this could
+ be a false positive, so we try to read the file until
+ we reach the end of the metadata stored in the header.
+ */
+
+ _testMagicPrecursor = static_cast<char *>( std::malloc(static_cast<size_t>( mdTerminatorBytesLength )) );
+ if (!_testMagicPrecursor) {
+ std::fseek(_inFp, 0, SEEK_SET);
+ return false;
+ }
+ do {
+ if ((std::memcmp(_testMagicBuf, bzip2MagicBytes, sizeof(bzip2MagicBytes) - 1) == 0) ||
+ (std::memcmp(_testMagicBuf, gzipMagicBytes, sizeof(gzipMagicBytes) - 1) == 0))
+ {
+ STARCH_fseeko(_inFp, static_cast<off_t>( _mdOffset - mdTerminatorBytesLength ), SEEK_SET);
+ _nReadBytes = std::fread(_testMagicPrecursor, mdTerminatorBytesLength, mdTerminatorBytesLength, _inFp);
+ if (_nReadBytes != static_cast<size_t>( mdTerminatorBytesLength * mdTerminatorBytesLength )) {
+#ifdef __cplusplus
+ /* why can't c++ standardize on a format specifier for a simple std::size_t ? */
+ std::fprintf(stderr, "ERROR: Bytes read ( %" PRIu64 " ) not equal to terminator byte length!\n", static_cast<uint64_t>( _nReadBytes ));
+#else
+ std::fprintf(stderr, "ERROR: Bytes read (%zu) not equal to terminator byte length!\n", _nReadBytes);
+#endif
+ std::exit(EXIT_FAILURE);
+ }
+ if ((std::memcmp(_testMagicPrecursor, dynamicMdTerminatorBytes, sizeof(dynamicMdTerminatorBytes)) == 0) ||
+ (std::memcmp(_testMagicPrecursor, legacyMdTerminatorBytes, sizeof(legacyMdTerminatorBytes)) == 0) ||
+ (std::memcmp(_testMagicPrecursor, otherLegacyMdTerminatorBytes, sizeof(otherLegacyMdTerminatorBytes)) == 0) )
+ break;
+ }
+ _mdOffset += static_cast<uint64_t>( _testElemSize * _testElemCount );
+ STARCH_fseeko(_inFp, static_cast<off_t>( _mdOffset - STARCH_TEST_BYTE_POSITION_RESET ), SEEK_SET);
+ _mdOffset -= STARCH_TEST_BYTE_POSITION_RESET;
+ } while (std::fread(_testMagicBuf, static_cast<size_t>( _testElemSize ), static_cast<size_t>( _testElemCount ), _inFp));
+ free(_testMagicPrecursor);
+ _testMagicPrecursor = NULL;
+ if (std::fseek(_inFp, 0, SEEK_SET) != 0)
+ return false;
+ _mdBuf = static_cast<char *>( std::malloc(static_cast<size_t>( _mdOffset ) + 1) );
+ if (!_mdBuf) {
+ std::fseek(_inFp, 0, SEEK_SET);
+ return false;
+ }
+ do {
+ *(_mdBuf + _mdOffsetIdx++) = static_cast<char>( std::fgetc(_inFp) );
+ } while (_mdOffsetIdx < _mdOffset);
+
+ _mdJSON = json_loads(reinterpret_cast<const char *>( _mdBuf ), JSON_DISABLE_EOF_CHECK, &_mdJSONError);
+ free(_mdBuf);
+ _mdBuf = NULL;
+ _mdJSONArchive = json_object_get(_mdJSON, STARCH_METADATA_STREAM_ARCHIVE_KEY);
+ _archVersion = static_cast<ArchiveVersion *>( std::malloc(sizeof(ArchiveVersion)) );
+ if (!_archVersion) {
+ std::fseek(_inFp, 0, SEEK_SET);
+ return false;
+ }
+ if (_mdJSONArchive) {
+ json_object_foreach(_mdJSONArchive, _mdJSONObjKey, _mdJSONObjValue) {
+ if (std::strcmp(_mdJSONObjKey, STARCH_METADATA_STREAM_ARCHIVE_VERSION_KEY) == 0) {
+ _mdJSONArchVersion = json_object_get(_mdJSONArchive, STARCH_METADATA_STREAM_ARCHIVE_VERSION_KEY);
+ if (!_mdJSONArchVersion) {
+ std::fseek(_inFp, 0, SEEK_SET);
+ return false;
+ }
+ json_object_foreach(_mdJSONArchVersion, _mdJSONArchVerObjKey, _mdJSONArchVerObjValue) {
+ if (strcmp(_mdJSONArchVerObjKey, STARCH_METADATA_STREAM_ARCHIVE_VERSION_MAJOR_KEY) == 0)
+ _archVersion->major = static_cast<int>( json_integer_value(_mdJSONArchVerObjValue) );
+ if (strcmp(_mdJSONArchVerObjKey, STARCH_METADATA_STREAM_ARCHIVE_VERSION_MINOR_KEY) == 0)
+ _archVersion->minor = static_cast<int>( json_integer_value(_mdJSONArchVerObjValue) );
+ if (strcmp(_mdJSONArchVerObjKey, STARCH_METADATA_STREAM_ARCHIVE_VERSION_REVISION_KEY) == 0)
+ _archVersion->revision = static_cast<int>( json_integer_value(_mdJSONArchVerObjValue) );
+ }
+ }
+ }
+ }
+ else {
+ /*
+ JSON object is old and does not contain an
+ 'archive' object. so we instead create a
+ dummy archive object with defaults.
+ */
+ _archVersion->major = 1;
+ _archVersion->minor = 0;
+ _archVersion->revision = 0;
+ }
+
+ _archStreamChr = static_cast<char *>( std::malloc(STARCH_STREAM_METADATA_MAX_LENGTH + 1) );
+ _archStreamFn = static_cast<char *>( std::malloc(STARCH_STREAM_METADATA_MAX_LENGTH + 1) );
+ if (!_archStreamChr || !_archStreamFn) {
+ std::fseek(_inFp, 0, SEEK_SET);
+ return false;
+ }
+
+ if (((_archVersion->major == STARCH_MAJOR_VERSION ) &&
+ (_archVersion->minor <= STARCH_MINOR_VERSION) &&
+ (_archVersion->revision <= STARCH_REVISION_VERSION)) ||
+ (_archVersion->major < STARCH_MAJOR_VERSION))
+ {
+ _mdJSONStreams = json_object_get(_mdJSON, STARCH_METADATA_STREAM_LIST_KEY);
+ if (!_mdJSONStreams) {
+ std::fprintf(stderr, "ERROR: Could not retrieve JSON streams list\n");
+ std::fseek(_inFp, 0, SEEK_SET);
+ return false;
+ }
+ for (_mdJSONStreamIdx = 0; _mdJSONStreamIdx < json_array_size(_mdJSONStreams); _mdJSONStreamIdx++) {
+ _mdJSONStream = json_array_get(_mdJSONStreams, _mdJSONStreamIdx);
+ if (!_mdJSONStream) {
+ std::fprintf(stderr, "ERROR: Could not retrieve JSON stream object\n");
+ std::fseek(_inFp, 0, SEEK_SET);
+ return false;
+ }
+ _mdJSONStreamChr = json_object_get(_mdJSONStream, STARCH_METADATA_STREAM_CHROMOSOME_KEY);
+ if (!_mdJSONStreamChr) {
+ std::fprintf(stderr, "ERROR: Could not retrieve JSON stream's chromosome attribute\n");
+ std::fseek(_inFp, 0, SEEK_SET);
+ return false;
+ }
+ std::strncpy(_archStreamChr, json_string_value(_mdJSONStreamChr), strlen(json_string_value(_mdJSONStreamChr)) + 1);
+ _mdJSONStreamFn = json_object_get(_mdJSONStream, STARCH_METADATA_STREAM_FILENAME_KEY);
+ if (!_mdJSONStreamFn) {
+ std::fprintf(stderr, "ERROR: Could not retrieve JSON stream's filename attribute\n");
+ std::fseek(_inFp, 0, SEEK_SET);
+ return false;
+ }
+ std::strncpy(_archStreamFn, json_string_value(_mdJSONStreamFn), strlen(json_string_value(_mdJSONStreamFn)) + 1);
+ _mdJSONStreamSize = json_object_get(_mdJSONStream, STARCH_METADATA_STREAM_SIZE_KEY);
+ if (!_mdJSONStreamSize) {
+ std::fprintf(stderr, "ERROR: Could not retrieve JSON stream's size attribute\n");
+ std::fseek(_inFp, 0, SEEK_SET);
+ return false;
+ }
+#ifdef __CYGWIN__
+ _archStreamSize = static_cast<unsigned long long>(std::strtoul(json_string_value(_mdJSONStreamSize), NULL, STARCH_RADIX));
+#else
+ _archStreamSize = std::strtoull(json_string_value(_mdJSONStreamSize), NULL, STARCH_RADIX);
+#endif
+ _mdJSONStreamLineCount = json_object_get(_mdJSONStream, STARCH_METADATA_STREAM_LINECOUNT_KEY);
+ if (!_mdJSONStreamLineCount) {
+ if ((_archVersion->major >= 2) || ((_archVersion->major == 1) && (_archVersion->minor >= 3))) {
+ std::fprintf(stderr, "ERROR: Could not retrieve JSON stream's line count attribute\n");
+ std::fseek(_inFp, 0, SEEK_SET);
+ return false;
+ }
+ _mdJSONStreamLineCount = json_integer(STARCH_DEFAULT_LINE_COUNT);
+ _archStreamLineCount = static_cast<Bed::LineCountType>( json_integer_value(_mdJSONStreamLineCount) );
+ json_decref(_mdJSONStreamLineCount);
+ }
+ else
+ _archStreamLineCount = static_cast<Bed::LineCountType>( json_integer_value(_mdJSONStreamLineCount) );
+
+ _mdJSONStreamNonUniqueBaseCount = json_object_get(_mdJSONStream, STARCH_METADATA_STREAM_TOTALNONUNIQUEBASES_KEY);
+ if (!_mdJSONStreamNonUniqueBaseCount) {
+ if ((_archVersion->major >= 2) || ((_archVersion->major == 1) && (_archVersion->minor >= 4))) {
+ std::fprintf(stderr, "ERROR: Could not retrieve JSON stream's non-unique base count attribute\n");
+ std::fseek(_inFp, 0, SEEK_SET);
+ return false;
+ }
+ _mdJSONStreamNonUniqueBaseCount = json_integer(STARCH_DEFAULT_NON_UNIQUE_BASE_COUNT);
+ _archStreamNonUniqueBaseCount = static_cast<Bed::BaseCountType>( json_integer_value(_mdJSONStreamNonUniqueBaseCount) );
+ json_decref(_mdJSONStreamNonUniqueBaseCount);
+ }
+ else
+ _archStreamNonUniqueBaseCount = static_cast<Bed::BaseCountType>( json_integer_value(_mdJSONStreamNonUniqueBaseCount) );
+
+ _mdJSONStreamUniqueBaseCount = json_object_get(_mdJSONStream, STARCH_METADATA_STREAM_TOTALUNIQUEBASES_KEY);
+ if (!_mdJSONStreamUniqueBaseCount) {
+ if ((_archVersion->major >= 2) || ((_archVersion->major == 1) && (_archVersion->minor >= 4))) {
+ std::fprintf(stderr, "ERROR: Could not retrieve unique base count attribute\n");
+ std::fseek(_inFp, 0, SEEK_SET);
+ return false;
+ }
+ _mdJSONStreamUniqueBaseCount = json_integer(STARCH_DEFAULT_UNIQUE_BASE_COUNT);
+ _archStreamUniqueBaseCount = static_cast<Bed::BaseCountType>( json_integer_value(_mdJSONStreamUniqueBaseCount) );
+ json_decref(_mdJSONStreamUniqueBaseCount);
+ }
+ else
+ _archStreamUniqueBaseCount = static_cast<Bed::BaseCountType>( json_integer_value(_mdJSONStreamUniqueBaseCount) );
+
+ _mdJSONStreamDuplicateElementExists = json_object_get(_mdJSONStream, STARCH_METADATA_STREAM_DUPLICATEELEMENTEXISTS_KEY);
+ if (!_mdJSONStreamDuplicateElementExists) {
+ if ((_archVersion->major >= 3) || ((_archVersion->major == 2) && (_archVersion->minor >= 0))) {
+ fprintf(stderr, "ERROR: Could not retrieve stream duplicate-element-exists flag object with compliant version\n");
+ std::fseek(_inFp, 0, SEEK_SET);
+ return false;
+ }
+ _mdJSONStreamDuplicateElementExists = json_boolean(STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE);
+ _archStreamDuplicateElementExists = static_cast<Boolean>( json_is_true(_mdJSONStreamDuplicateElementExists) );
+ json_decref(_mdJSONStreamDuplicateElementExists);
+ }
+ else
+ _archStreamDuplicateElementExists = static_cast<Boolean>( json_is_true(_mdJSONStreamDuplicateElementExists) );
+
+ _mdJSONStreamNestedElementExists = json_object_get(_mdJSONStream, STARCH_METADATA_STREAM_NESTEDELEMENTEXISTS_KEY);
+ if (!_mdJSONStreamNestedElementExists) {
+ if ((_archVersion->major >= 3) || ((_archVersion->major == 2) && (_archVersion->minor >= 0))) {
+ fprintf(stderr, "ERROR: Could not retrieve stream nested-element-exists flag object with compliant version\n");
+ std::fseek(_inFp, 0, SEEK_SET);
+ return false;
+ }
+ _mdJSONStreamNestedElementExists = json_boolean(STARCH_DEFAULT_NESTED_ELEMENT_FLAG_VALUE);
+ _archStreamNestedElementExists = static_cast<Boolean>( json_is_true(_mdJSONStreamNestedElementExists) );
+ json_decref(_mdJSONStreamNestedElementExists);
+ }
+ else
+ _archStreamNestedElementExists = static_cast<Boolean>( json_is_true(_mdJSONStreamNestedElementExists) );
+
+ if (_recIdx == 0) {
+ _testMd = STARCH_createMetadata(_archStreamChr,
+ _archStreamFn,
+ _archStreamSize,
+ _archStreamLineCount,
+ _archStreamNonUniqueBaseCount,
+ _archStreamUniqueBaseCount,
+ _archStreamDuplicateElementExists,
+ _archStreamNestedElementExists);
+ _firstMd = _testMd;
+ }
+ else
+ _testMd = STARCH_addMetadata(_testMd,
+ _archStreamChr,
+ _archStreamFn,
+ _archStreamSize,
+ _archStreamLineCount,
+ _archStreamNonUniqueBaseCount,
+ _archStreamUniqueBaseCount,
+ _archStreamDuplicateElementExists,
+ _archStreamNestedElementExists);
+ _recIdx++;
+ _mdJSONStreamChr = NULL;
+ _mdJSONStreamFn = NULL;
+ _mdJSONStreamSize = NULL;
+ _mdJSONStreamLineCount = NULL;
+ _mdJSONStreamNonUniqueBaseCount = NULL;
+ _mdJSONStreamUniqueBaseCount = NULL;
+ _mdJSONStreamDuplicateElementExists = NULL;
+ _mdJSONStreamNestedElementExists = NULL;
+ _mdJSONStream = NULL;
+ }
+ }
+ else {
+ std::fprintf(stderr, "ERROR: Archive version information not within acceptable range\n");
+ std::fseek(_inFp, 0, SEEK_SET);
+ return false;
+ }
+ free(_archVersion), _archVersion = NULL;
+ free(_archStreamChr), _archStreamChr = NULL;
+ free(_archStreamFn), _archStreamFn = NULL;
+ json_decref(_mdJSON);
+
+ _testMd = _firstMd;
+
+ if (_testMd)
+ STARCH_freeMetadata(&_testMd);
+ else {
+ std::fseek(_inFp, 0, SEEK_SET);
+ return false;
+ }
+
+ if (std::fseek(_inFp, 0, SEEK_SET) != 0)
+ return false;
+
+ return true;
+ }
+
+ static bool hasStarchRevision1Header(std::string& _inFn)
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::hasStarchRevision1Header(std::string) ---\n");
+#endif
+ FILE *_testFp = NULL;
+
+ _testFp = std::fopen(_inFn.c_str(), "r");
+ if (!_testFp)
+ return false;
+
+ if (!hasStarchRevision1Header(_testFp)) {
+ std::fclose(_testFp);
+ return false;
+ }
+
+ if (std::fclose(_testFp) != 0)
+ return false;
+
+ return true;
+ }
+
+ static bool hasStarchRevision1LegacyHeader(FILE *_inFp)
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::hasStarchRevision1LegacyHeader(FILE *) ---\n");
+#endif
+ Metadata *_testMd = NULL;
+ Metadata *_firstMd = NULL;
+ size_t _testIdx, _bufIdx, _tokBufIdx, _tokCount, _recTokBufIdx;
+ int _buf[STARCH_LEGACY_METADATA_SIZE] = {0};
+ char _tokBuf[STARCH_LEGACY_METADATA_SIZE];
+ char _recTokBuf[STARCH_LEGACY_METADATA_SIZE];
+ int _recIdx = 0;
+ char *_token = NULL;
+ char *_tokenCheck = NULL;
+ char *_recChromosome = NULL;
+ char *_recFilename = NULL;
+ uint64_t _recFileSize = 0;
+ Bed::LineCountType _recLineCountValue = 0;
+ Bed::BaseCountType _recNonUniqueBaseCountValue = 0;
+ Bed::BaseCountType _recUniqueBaseCountValue = 0;
+ Boolean _recDuplicateElementExists = STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE;
+ Boolean _recNestedElementExists = STARCH_DEFAULT_NESTED_ELEMENT_FLAG_VALUE;
+
+ /* read first 8 kilobytes into buffer */
+
+ for (_testIdx = 0; _testIdx < STARCH_LEGACY_METADATA_SIZE; _testIdx++) {
+ _buf[_testIdx] = fgetc(_inFp);
+ if (_buf[_testIdx] == EOF)
+ return false;
+ }
+
+ /* parse buffer into Metadata records, if possible */
+
+ for (_bufIdx = 0, _tokBufIdx = 0; _bufIdx < STARCH_LEGACY_METADATA_SIZE; _bufIdx++, _tokBufIdx++) {
+ if (_buf[_bufIdx] == '\n') {
+ /* parse line into record, if possible */
+ if (_tokBufIdx > 0)
+ _recIdx++;
+ _tokBuf[_tokBufIdx] = '\0';
+ _token = std::strtok(_tokBuf, "\t");
+ for (_tokCount = 0; _token != NULL; _tokCount++) {
+ switch (_tokCount) {
+ case 0: {
+ _tokenCheck = STARCH_strnstr(const_cast<const char *>( _token ), STARCH_LEGACY_EXTENSION_BZ2, strlen(_token));
+ if (!_tokenCheck) {
+ _tokenCheck = STARCH_strnstr(const_cast<const char *>( _token ), STARCH_LEGACY_EXTENSION_GZIP, strlen(_token));
+ if (!_tokenCheck)
+ return false;
+ }
+
+ std::strncpy(_recTokBuf, _token, strlen(_token) + 1);
+ for (_recTokBufIdx = 0; _recTokBufIdx < strlen(_recTokBuf); _recTokBufIdx++) {
+ if (_recTokBuf[_recTokBufIdx] == '.') {
+ _recTokBuf[_recTokBufIdx] = '\0';
+ break;
+ }
+ }
+ _recChromosome = static_cast<char *>( std::malloc(std::strlen(_recTokBuf) + 1) );
+ if (!_recChromosome)
+ return false;
+ std::strncpy(_recChromosome, _recTokBuf, std::strlen(_recTokBuf) + 1);
+
+ _recFilename = static_cast<char *>( std::malloc(std::strlen(_token) + 1) );
+ if (!_recFilename)
+ return false;
+ std::strncpy(_recFilename, _token, strlen(_token) + 1);
+
+ break;
+ }
+ case 1: {
+#ifdef __CYGWIN__
+ _recFileSize = static_cast<unsigned long long>(std::strtoul(_token, NULL, STARCH_RADIX));
+#else
+ _recFileSize = std::strtoull(_token, NULL, STARCH_RADIX);
+#endif
+ break;
+ }
+ }
+ _token = std::strtok(NULL, "\t");
+ }
+
+ if (_tokBufIdx != 0) {
+ if (_recIdx == 1) {
+ _testMd = STARCH_createMetadata(_recChromosome,
+ _recFilename,
+ _recFileSize,
+ _recLineCountValue,
+ _recNonUniqueBaseCountValue,
+ _recUniqueBaseCountValue,
+ _recDuplicateElementExists,
+ _recNestedElementExists);
+ _firstMd = _testMd;
+ }
+ else
+ _testMd = STARCH_addMetadata(_testMd,
+ _recChromosome,
+ _recFilename,
+ _recFileSize,
+ _recLineCountValue,
+ _recNonUniqueBaseCountValue,
+ _recUniqueBaseCountValue,
+ _recDuplicateElementExists,
+ _recNestedElementExists);
+ }
+ else
+ break;
+
+ _tokBufIdx = static_cast<size_t>( -1 );
+ }
+ else
+ _tokBuf[_tokBufIdx] = static_cast<char>( _buf[_bufIdx] );
+ }
+
+ /* if _testMd is not NULL, then we have valid legacy metadata record(s) */
+
+ if (std::fseek(_inFp, 0, SEEK_SET) != 0)
+ return false;
+
+ _testMd = _firstMd;
+
+ if (_testMd) {
+ STARCH_freeMetadata(&_testMd);
+ return true;
+ }
+
+ return false;
+ }
+
+ static bool hasStarchRevision1LegacyHeader(std::string& _inFn)
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::hasStarchRevision1LegacyHeader(std::string) ---\n");
+#endif
+ FILE *_testFp = NULL;
+
+ _testFp = std::fopen(_inFn.c_str(), "r");
+ if (!_testFp)
+ return false;
+
+ if (!hasStarchRevision1LegacyHeader(_testFp)) {
+ std::fclose(_testFp);
+ return false;
+ }
+
+ if (std::fclose(_testFp) != 0)
+ return false;
+
+ return true;
+ }
+
+ static bool isStarch(FILE *_inFp)
+ {
+ /*
+ This tests if the file pointer contains a Starch archive
+ by testing if the file contains Starch-flavored markers.
+
+ Whether this test passes or fails, the FILE* will be kept
+ open (if already open) when calling isStarch() directly
+ on a FILE*.
+
+ NOTE: The FILE* position will be reset to the first byte
+ upon conclusion of this test, pass or fail.
+ */
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::isStarch(FILE *) ---\n");
+#endif
+ bool _rtn = false;
+ if (!fpIsOpen(_inFp))
+ _rtn = false;
+ else if (hasStarchRevision2Header(_inFp)) {
+ return true;
+ }
+ else if (hasStarchRevision1Header(_inFp)) {
+ return true;
+ }
+ else if (hasStarchRevision1LegacyHeader(_inFp)) {
+ return true;
+ }
+
+ std::rewind(_inFp);
+ return _rtn;
+ }
+
+ static bool isStarch(std::string& _inFn)
+ {
+ /*
+ This tests if the file at the provided path contains a
+ Starch archive. If the file contains valid Starch-flavored
+ markers, this function returns true. Otherwise, false.
+
+ NOTE: The file is closed at the conclusion of this test,
+ pass or fail.
+ */
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::isStarch(std::string) ---\n");
+#endif
+ if (!fnExists(_inFn)) return false;
+ else if (hasStarchRevision2Header(_inFn)) {
+ return true;
+ }
+ else if (hasStarchRevision1Header(_inFn)) {
+ return true;
+ }
+ else if (hasStarchRevision1LegacyHeader(_inFn)) {
+ return true;
+ }
+
+ return false;
+ }
+
+ std::string getInFn() { return inFn; }
+ const char * getInFnCStr() { return inFn.c_str(); }
+ Boolean getArchiveHeaderFlag() { return archHeaderFlag; }
+ Boolean * getArchiveHeaderFlagPtr() { return &archHeaderFlag; }
+ Boolean getArchiveShowNewlineFlag() { return archShowNewlineFlag; }
+ Boolean * getArchiveShowNewlineFlagPtr() { return &archShowNewlineFlag; }
+ Metadata * getArchiveMdIter() { return archMdIter; }
+ Metadata * getArchiveRecordIter() { return archMdIter; }
+ unsigned int getArchiveVersionMajor() { if (!archMd) { readJSONMetadata(false, false); } if (!archVersion) { throw(std::string("ERROR: Could not retrieve version data")); } return static_cast<unsigned int>( archVersion->major ); }
+ unsigned int getArchiveVersionMinor() { if (!archMd) { readJSONMetadata(false, false); } if (!archVersion) { throw(std::string("ERROR: Could not retrieve version data")); } return static_cast<unsigned int>( archVersion->minor ); }
+ unsigned int getArchiveVersionRevision() { if (!archMd) { readJSONMetadata(false, false); } if (!archVersion) { throw(std::string("ERROR: Could not retrieve version data")); } return static_cast<unsigned int>( archVersion->revision ); }
+ char * getArchiveCreationTimestamp() { return archCreationTimestamp; }
+ char * getArchiveNote() { return archNote; }
+ inline const char * getCurrentChromosome() { if ((!currentChromosome) && (archMdIter)) { setCurrentChromosome(archMdIter->chromosome); } return currentChromosome; }
+ inline Bed::SignedCoordType getCurrentStart() { return currentStart; }
+ inline Bed::SignedCoordType getCurrentStop() { return currentStop; }
+ inline const char * getCurrentRemainder() { return currentRemainder; }
+ Bed::LineCountType getCurrentChromosomeLineCount() { return (archMdIter) ? archMdIter->lineCount : 0; }
+ Bed::BaseCountType getCurrentChromosomeNonUniqueBaseCount() { return (archMdIter) ? archMdIter->totalNonUniqueBases : 0; }
+ Bed::BaseCountType getCurrentChromosomeUniqueBaseCount() { return (archMdIter) ? archMdIter->totalUniqueBases : 0; }
+ bool getCurrentChromosomeHasDuplicateElement() { return (archMdIter) ? (archMdIter->duplicateElementExists == kStarchTrue ? true : false ) : (STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE == kStarchTrue ? true : false ); }
+ bool getCurrentChromosomeHasNestedElement() { return (archMdIter) ? (archMdIter->nestedElementExists == kStarchTrue ? true : false ) : (STARCH_DEFAULT_NESTED_ELEMENT_FLAG_VALUE == kStarchTrue ? true : false ); }
+ bool getAllChromosomesHaveDuplicateElement() { Metadata *_archMdIter; for (_archMdIter = archMd; _archMdIter != NULL; _archMdIter = _archMdIter->next) { if (UNSTARCH_duplicateElementExistsForChromosome(archMd, _archMdIter->chromosome) == kStarchTrue) return true; } return false; }
+ bool getAllChromosomesHaveNestedElement() { Metadata *_archMdIter; for (_archMdIter = archMd; _archMdIter != NULL; _archMdIter = _archMdIter->next) { if (UNSTARCH_nestedElementExistsForChromosome(archMd, _archMdIter->chromosome) == kStarchTrue) return true; } return false; }
+ inline bool isEOF() { return (!getCurrentChromosome()); }
+
+ // ------------
+
+ private:
+ Metadata *archMd;
+ ArchiveVersion *archVersion;
+ CompressionType archType;
+ char *archCreationTimestamp;
+ char *archNote;
+ uint64_t archMdOffset;
+ uint64_t archStreamOffset;
+ Boolean archHeaderFlag;
+ Boolean archShowNewlineFlag;
+ json_t *archMdJSON;
+ Metadata *archMdIter;
+ bool firstPass;
+ FILE *inFp;
+ std::string inFn;
+ std::string selectedChromosome;
+ uint64_t cumulativeSize;
+ BZFILE *bzFp;
+ unsigned char *bzOutput;
+ z_stream zStream;
+ char *zOutput;
+ char *zRemainderBuf;
+ char *zInBuf;
+ char *zOutBuf;
+ char *zLineBuf;
+ int zError;
+ int zBufIdx;
+ int zOutBufIdx;
+ int zHave;
+ int zBufOffset;
+ bool needToInflateZChunk;
+ bool needToReadZChunk;
+ bool postBreakdownZValuesIdentical;
+ bool allowHeadersFlag;
+ bool perLineUsageFlag;
+ char *currentChromosome;
+ Bed::SignedCoordType currentStart;
+ Bed::SignedCoordType currentStop;
+ char *currentRemainder;
+ Bed::SignedCoordType t_start;
+ Bed::SignedCoordType t_pLength;
+ Bed::SignedCoordType t_lastEnd;
+ char t_firstInputToken[UNSTARCH_FIRST_TOKEN_MAX_LENGTH];
+ char t_secondInputToken[UNSTARCH_SECOND_TOKEN_MAX_LENGTH];
+ char *_currChr;
+ size_t _currChrLen;
+ Bed::SignedCoordType _currStart;
+ Bed::SignedCoordType _currStop;
+ char *_currRemainder;
+ size_t _currRemainderLen;
+
+ int initializeMembers();
+ int setupBzip2Works();
+ int breakdownBzip2Works();
+ int setupGzipWorks();
+ int breakdownGzipWorks();
+ int setupTransformationParameters();
+ int seekCurrentInFpPosition();
+ int zReadChunk();
+ int zReadLine();
+ int extractLine(std::string& line);
+ int setupPerLineAccess();
+ int readJSONMetadata(bool suppressErrorMsgs, bool preserveJSONRef);
+
+ Metadata * getArchiveMd() { return archMd; }
+ Metadata ** getArchiveMdPtr() { return &archMd; }
+ ArchiveVersion * getArchiveVersion() { return archVersion; }
+ ArchiveVersion ** getArchiveVersionPtr() { return &archVersion; }
+ CompressionType getArchiveType() { return archType; }
+ CompressionType * getArchiveTypePtr() { return &archType; }
+ char ** getArchiveCreationTimestampPtr() { return &archCreationTimestamp; }
+ char ** getArchiveNotePtr() { return &archNote; }
+ uint64_t getArchiveMdOffset() { return archMdOffset; }
+ uint64_t * getArchiveMdOffsetPtr() { return &archMdOffset; }
+ uint64_t getArchiveStreamOffset() { return archStreamOffset; }
+ uint64_t * getArchiveStreamOffsetPtr() { return &archStreamOffset; }
+ json_t * getArchiveMdJSON() { return archMdJSON; }
+ json_t ** getArchiveMdJSONPtr() { return &archMdJSON; }
+ FILE * getInFp() { return inFp; }
+ FILE ** getInFpPtr() { return &inFp; }
+ BZFILE * getBzFp() { return bzFp; }
+ BZFILE ** getBzFpPtr() { return &bzFp; }
+ unsigned char * getBzOutput() { return bzOutput; }
+ unsigned char ** getBzOutputPtr() { return &bzOutput; }
+ z_stream getZStream() { return zStream; }
+ z_stream * getZStreamPtr() { return &zStream; }
+ char * getZOutput() { return zOutput; }
+ char ** getZOutputPtr() { return &zOutput; }
+ char * getZRemainderBuf() { return zRemainderBuf; }
+ char ** getZRemainderBufPtr() { return &zRemainderBuf; }
+ char * getZInBuf() { return zInBuf; }
+ char ** getZInBufPtr() { return &zInBuf; }
+ char * getZOutBuf() { return zOutBuf; }
+ char ** getZOutBufPtr() { return &zOutBuf; }
+ char * getZLineBuf() { return zLineBuf; }
+ char ** getZLineBufPtr() { return &zLineBuf; }
+ int getZError() { return zError; }
+ int getZBufIdx() { return zBufIdx; }
+ int getZOutBufIdx() { return zOutBufIdx; }
+ int getZHave() { return zHave; }
+ int getZBufOffset() { return zBufOffset; }
+ bool getAllowHeadersFlag() { return allowHeadersFlag; }
+ bool getPerLineUsageFlag() { return perLineUsageFlag; }
+ uint64_t getCumulativeSize() { return cumulativeSize; }
+ void setInFn(const std::string& _inFn) { inFn = _inFn; }
+ void setArchiveHeaderFlag(unsigned int _aHf) { archHeaderFlag = static_cast<Boolean>( _aHf ); }
+ void setArchiveShowNewlineFlag(unsigned int _aSNf) { archShowNewlineFlag = static_cast<Boolean>( _aSNf ); }
+ void setArchiveMd(Metadata *_aMd) { archMd = _aMd; }
+ void setArchiveVersion(ArchiveVersion *_av) { archVersion = _av; }
+ void setArchiveType(CompressionType _type) { archType = _type; }
+ void setArchiveCreationTimestamp(const char *_cTime) { archCreationTimestamp = const_cast<char *>( _cTime ); }
+ void setArchiveNote(const char *_note) { archNote = const_cast<char *>( _note ); }
+ void setArchiveMdOffset(uint64_t _aMdOffset) { archMdOffset = _aMdOffset; }
+ void setArchiveStreamOffset(uint64_t _aStreamOffset) { archStreamOffset = _aStreamOffset; }
+ void setArchiveMdIter(Metadata *_aMdIter) { archMdIter = _aMdIter; }
+ void setArchiveMdJSON(json_t *_aMdJSON) { archMdJSON = _aMdJSON; }
+ void incrementCumulativeSize(uint64_t _inc) { cumulativeSize += _inc; }
+ void setBzOutput(unsigned char * _bzOutput) { bzOutput = _bzOutput; }
+ void setZOutput(char * _zOutput) { zOutput = _zOutput; }
+ void setZInBuf(char * _zInBuf) { zInBuf = _zInBuf; }
+ void setZOutBuf(char * _zOutBuf) { zOutBuf = _zOutBuf; }
+ void setZLineBuf(char * _zLineBuf) { zLineBuf = _zLineBuf; }
+ void setZError(int _zError) { zError = _zError; }
+ void setZBufIdx(int _zBufIdx) { zBufIdx = _zBufIdx; }
+ void setZOutBufIdx(int _zOutBufIdx) { zOutBufIdx = _zOutBufIdx; }
+ void setZHave(int _zHave) { zHave = _zHave; }
+ void setZBufOffset(int _zBufOffset) { zBufOffset = _zBufOffset; }
+ void setAllowHeadersFlag(bool _allowHeadersFlag) { allowHeadersFlag = _allowHeadersFlag; }
+ void setPerLineUsageFlag(bool _perLineUsageFlag) { perLineUsageFlag = _perLineUsageFlag; }
+ void iterateArchiveMdIter() {
+ if (!archMdIter)
+ return;
+ archMdIter = archMdIter->next;
+ if (archMdIter)
+ setCurrentChromosome(archMdIter->chromosome);
+ else
+ free(currentChromosome), currentChromosome = NULL;
+ }
+ void setCurrentChromosome(char *_cC) {
+ if (currentChromosome) {
+ free(currentChromosome);
+ currentChromosome = NULL;
+ }
+ currentChromosome = static_cast<char *>( malloc (strlen(_cC) + 1) );
+ if (currentChromosome) {
+ strncpy(currentChromosome, _cC, strlen(_cC) + 1);
+ }
+ }
+ void setCurrentStart(Bed::SignedCoordType _cS) { currentStart = _cS; }
+ void setCurrentStop(Bed::SignedCoordType _cS) { currentStop = _cS; }
+ void setCurrentRemainder(char * _remainder) { currentRemainder = _remainder; }
+ void setSelectedChromosome(const std::string& _selChr) { selectedChromosome = _selChr; }
+ };
+
+ Starch::Starch()
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::Starch() ---\n");
+#endif
+ initializeMembers();
+
+ if (perLineUsageFlag)
+ setupPerLineAccess();
+ }
+
+ Starch::Starch(FILE *_inFP,
+ const std::string& _chr,
+ bool _perLineUsage)
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::Starch(FILE *, std::string, bool) ---\n");
+#endif
+ initializeMembers();
+
+ inFn = "unknown";
+ inFp = _inFP;
+ selectedChromosome = _chr;
+ perLineUsageFlag = _perLineUsage;
+ if (perLineUsageFlag)
+ setupPerLineAccess();
+ }
+
+ Starch::Starch(FILE *_inFp,
+ const std::string& _inFn,
+ const std::string& _chr,
+ bool _perLineUsage)
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::Starch(FILE *, std::string, std::string, bool) ---\n");
+#endif
+ initializeMembers();
+
+ inFn = _inFn;
+ inFp = _inFp;
+ selectedChromosome = _chr;
+ perLineUsageFlag = _perLineUsage;
+
+ if (perLineUsageFlag)
+ setupPerLineAccess();
+ }
+
+ Starch::Starch(const std::string& _inFn)
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::Starch(std::string) ---\n");
+#endif
+ initializeMembers();
+
+ inFn = _inFn;
+
+ if (perLineUsageFlag)
+ setupPerLineAccess();
+ }
+
+ Starch::Starch(const std::string &_inFn,
+ const bool _allowHeadersFlag)
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::Starch(std::string, bool) ---\n");
+#endif
+ initializeMembers();
+
+ inFn = _inFn;
+ allowHeadersFlag = _allowHeadersFlag;
+
+ if (perLineUsageFlag)
+ setupPerLineAccess();
+ }
+
+ Starch::Starch(const std::string &_inFn,
+ const bool _allowHeadersFlag,
+ const bool _perLineUsageFlag,
+ const std::string &_selectedChromosome)
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::Starch(std::string, bool, bool, std::string) ---\n");
+#endif
+ initializeMembers();
+
+ inFn = _inFn;
+ allowHeadersFlag = _allowHeadersFlag;
+ perLineUsageFlag = _perLineUsageFlag;
+ selectedChromosome = _selectedChromosome;
+
+ if (perLineUsageFlag)
+ setupPerLineAccess();
+ }
+
+ Starch::Starch(const std::string& _inFn,
+ const bool _allowHeadersFlag,
+ const bool _perLineUsageFlag,
+ Metadata * _md,
+ CompressionType _type,
+ ArchiveVersion * _av,
+ uint64_t _mdOffset,
+ unsigned int _hf)
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::Starch(std::string, bool, bool, Metadata *, CompressionType, ArchiveVersion *, uint64_t, unsigned int) ---\n");
+#endif
+ initializeMembers();
+
+ inFn = _inFn;
+ allowHeadersFlag = _allowHeadersFlag;
+ perLineUsageFlag = _perLineUsageFlag;
+ archMd = _md;
+ archType = _type;
+ archVersion = _av;
+ archMdOffset = _mdOffset;
+ archHeaderFlag = static_cast<Boolean>( _hf );
+
+ if (!inFn.empty()) {
+ inFp = std::fopen(inFn.c_str(), "rbR");
+ if (!inFp) {
+ throw("ERROR: could not open handle to " + inFn);
+ exit (EXIT_FAILURE);
+ }
+ }
+
+ if (perLineUsageFlag)
+ setupPerLineAccess();
+ }
+
+ Starch::~Starch()
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::~Starch() ---\n");
+#endif
+ if (archMd != NULL)
+ STARCH_freeMetadata(&archMd), archMd = NULL;
+ if (archVersion != NULL)
+ delete archVersion, archVersion = NULL;
+ if (inFp != NULL)
+ std::fclose(inFp), inFp = NULL;
+ if (bzOutput != NULL)
+ free(bzOutput), bzOutput = NULL;
+ }
+
+ Starch::Starch(const Starch& cpArchive)
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::Starch(Starch &) ---\n");
+#endif
+ if (cpArchive.inFn.empty()) { inFn.assign(cpArchive.inFn); } else { inFn = std::string(); }
+ if (cpArchive.archMd != NULL) { archMd = STARCH_copyMetadata(const_cast<const Metadata *>( cpArchive.archMd )); } else { archMd = NULL; }
+ if (cpArchive.archVersion != NULL) {
+ if (!archVersion)
+ archVersion = new ArchiveVersion;
+ if (!archVersion)
+ throw(std::string("ERROR: could not allocate space for archive version struct"));
+ archVersion->major = cpArchive.archVersion->major;
+ archVersion->minor = cpArchive.archVersion->minor;
+ archVersion->revision = cpArchive.archVersion->revision;
+ }
+ archType = cpArchive.archType;
+ archMdOffset = cpArchive.archMdOffset;
+ archHeaderFlag = cpArchive.archHeaderFlag;
+ archShowNewlineFlag = cpArchive.archShowNewlineFlag;
+
+ if (!inFn.empty()) {
+ inFp = std::fopen(inFn.c_str(), "rbR");
+ if (!inFp)
+ throw("ERROR: could not open handle to " + inFn);
+ }
+ }
+
+ Starch&
+ Starch::operator=(const Starch& cpArchive)
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::operator=(Starch &) ---\n");
+#endif
+ if (this == &cpArchive)
+ return *this;
+
+ if (archMd != NULL) STARCH_freeMetadata(&archMd);
+ if (archVersion != NULL) free(archVersion);
+
+ if (cpArchive.inFn.empty()) { inFn.assign(cpArchive.inFn); } else { inFn = std::string(); }
+ if (cpArchive.archMd != NULL) { archMd = STARCH_copyMetadata(const_cast<const Metadata *>( cpArchive.archMd )); } else { archMd = NULL; }
+ if (cpArchive.archVersion != NULL) {
+ archVersion = new ArchiveVersion;
+ if (!archVersion)
+ throw(std::string("ERROR: could not allocate space for archive version struct"));
+ archVersion->major = cpArchive.archVersion->major;
+ archVersion->minor = cpArchive.archVersion->minor;
+ archVersion->revision = cpArchive.archVersion->revision;
+ }
+ archType = cpArchive.archType;
+ archMdOffset = cpArchive.archMdOffset;
+ archHeaderFlag = cpArchive.archHeaderFlag;
+ archShowNewlineFlag = cpArchive.archShowNewlineFlag;
+
+ if (!inFn.empty()) {
+ inFp = std::fopen(inFn.c_str(), "rbR");
+ if (!inFp)
+ throw("ERROR: could not open handle to " + inFn);
+ }
+
+ return *this;
+ }
+
+ int
+ Starch::initializeMembers()
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::initializeMembers() ---\n");
+#endif
+ firstPass = true;
+ selectedChromosome = "";
+ archMd = NULL;
+ archVersion = NULL;
+ archType = STARCH_DEFAULT_COMPRESSION_TYPE;
+ archCreationTimestamp = NULL;
+ archNote = NULL;
+ archMdOffset = 0;
+ archStreamOffset = 0;
+ archHeaderFlag = kStarchFalse;
+ archShowNewlineFlag = kStarchTrue;
+ archMdIter = NULL;
+ inFp = NULL;
+ inFn = "";
+ cumulativeSize = 0;
+ bzFp = NULL;
+ bzOutput = NULL;
+ zOutput = NULL;
+ zRemainderBuf = NULL;
+ zInBuf = NULL;
+ zOutBuf = NULL;
+ zLineBuf = NULL;
+ zError = Z_OK;
+ zBufIdx = 0;
+ zOutBufIdx = 0;
+ zHave = 0;
+ zBufOffset = 0;
+ allowHeadersFlag = false;
+ perLineUsageFlag = false;
+ currentChromosome = NULL;
+ currentStart = -2LL;
+ currentStop = 0;
+ currentRemainder = NULL;
+ t_start = 0;
+ t_pLength = 0;
+ t_lastEnd = 0;
+ t_firstInputToken[0] = '\0';
+ t_secondInputToken[0] = '\0';
+ archMdJSON = NULL;
+ _currChr = NULL;
+ _currChrLen = 0;
+ _currStart = 0;
+ _currStop = 0;
+ _currRemainder = NULL;
+ _currRemainderLen = 0;
+
+ archVersion = new ArchiveVersion;
+ if (!archVersion)
+ throw(std::string("ERROR: could not allocate space for archive version struct"));
+ archVersion->major = -1;
+ archVersion->minor = -1;
+ archVersion->revision = -1;
+
+ return EXIT_SUCCESS;
+ }
+
+ int
+ Starch::readJSONMetadata(bool _suppressErrorMsgs, bool _preserveJSONRef)
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::readJSONMetadata(bool, bool) ---\n");
+#endif
+ const Boolean suppressErrorMsgs = (_suppressErrorMsgs) ? kStarchTrue : kStarchFalse;
+ const Boolean preserveJSONRef = (_preserveJSONRef) ? kStarchTrue : kStarchFalse;
+ const int result = STARCH_readJSONMetadata(getArchiveMdJSONPtr(),
+ getInFpPtr(),
+ getInFn().c_str(),
+ getArchiveMdPtr(),
+ getArchiveTypePtr(),
+ getArchiveVersionPtr(),
+ getArchiveCreationTimestampPtr(),
+ getArchiveNotePtr(),
+ getArchiveMdOffsetPtr(),
+ getArchiveHeaderFlagPtr(),
+ suppressErrorMsgs,
+ preserveJSONRef);
+
+ switch (archVersion->major) {
+ case 1: {
+ archStreamOffset = archMdOffset;
+ break;
+ }
+ case 2: {
+ cumulativeSize = 0ULL;
+ archStreamOffset = STARCH2_MD_HEADER_BYTE_LENGTH;
+ break;
+ }
+ default:
+ throw(std::string("ERROR: Could not determine stream offset from unknown major version"));
+ }
+
+ return result;
+ }
+
+ int
+ Starch::listJSONMetadata(FILE *out,
+ FILE *err)
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::listJSONMetadata(FILE *, FILE *) ---\n");
+#endif
+ if (!archMd)
+ readJSONMetadata(false, false);
+
+ return STARCH_listJSONMetadata(out,
+ err,
+ const_cast<const Metadata *>( getArchiveMd() ),
+ static_cast<const CompressionType>( getArchiveType() ),
+ const_cast<const ArchiveVersion *>( getArchiveVersion() ),
+ const_cast<const char *>( getArchiveCreationTimestamp() ),
+ const_cast<const char *>( getArchiveNote() ),
+ static_cast<const Boolean>( getArchiveHeaderFlag() ),
+ static_cast<const Boolean>( getArchiveShowNewlineFlag() ));
+ }
+
+ int
+ Starch::setupBzip2Works()
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::setupBzip2Works() ---\n");
+#endif
+ int bzError;
+ size_t bzOutputLength = UNSTARCH_COMPRESSED_BUFFER_MAX_LENGTH;
+
+ if (!bzFp)
+ {
+ // opening bzip2 handle...
+ // http://www.bzip.org/1.0.5/bzip2-manual-1.0.5.html#bzcompress-init
+ bzFp = BZ2_bzReadOpen( &bzError, getInFp(), 0, 0, NULL, 0 );
+ if (bzError != BZ_OK) {
+ BZ2_bzReadClose( &bzError, bzFp );
+ throw(std::string("ERROR: bzip2 data stream could not be opened"));
+ }
+
+ // setting up initial bz output buffer...
+ if (!bzOutput)
+ bzOutput = static_cast<unsigned char *>( std::malloc(bzOutputLength) );
+ if (!bzOutput)
+ throw(std::string("ERROR: bzip2 output buffer could not be allocated"));
+
+ // seting up transformation parameters...
+ if (setupTransformationParameters() != EXIT_SUCCESS)
+ throw(std::string("ERROR: could not initialize transformation parameters"));
+
+ // fseek to correct offset...
+ //if (seekCurrentInFpPosition() != EXIT_SUCCESS)
+ // throw(std::string("ERROR: could not jump to offset"));
+ }
+ else
+ throw(std::string("ERROR: bzip2 data stream is already open"));
+
+ return EXIT_SUCCESS;
+ }
+
+ int
+ Starch::breakdownBzip2Works()
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::breakdownBzip2Works() ---\n");
+#endif
+ int bzError = BZ_STREAM_END;
+
+ if (bzOutput)
+ free(bzOutput), bzOutput = NULL;
+
+ if (bzFp)
+ BZ2_bzReadClose( &bzError, bzFp ), bzFp = NULL;
+
+ switch (bzError) {
+ case (BZ_SEQUENCE_ERROR): {
+ throw(std::string("ERROR: bzFp was opened with BZ2_bzOpenWrite"));
+ }
+ default:
+ break;
+ }
+
+ return EXIT_SUCCESS;
+ }
+
+ int
+ Starch::setupGzipWorks()
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::setupGzipWorks() ---\n");
+#endif
+
+ zStream.zalloc = Z_NULL;
+ zStream.zfree = Z_NULL;
+ zStream.opaque = Z_NULL;
+ zStream.avail_in = 0;
+ zStream.avail_out = 0;
+ zStream.next_in = Z_NULL;
+
+ zError = inflateInit2(&zStream, (15+32)); /* cf. http://www.zlib.net/manual.html */
+ switch (zError) {
+ case Z_MEM_ERROR: {
+ throw(std::string("ERROR: ran out of memory to initialize z-stream"));
+ }
+ case Z_VERSION_ERROR: {
+ throw(std::string("ERROR: zlib library version incompatible with z-stream"));
+ }
+ case Z_STREAM_ERROR: {
+ throw(std::string("ERROR: invalid parameters for setting up z-stream"));
+ }
+ default:
+ break;
+ }
+
+ zRemainderBuf = static_cast<char *>( std::malloc(STARCH_Z_CHUNK * STARCH_Z_CHUNK_MULTIPLIER) );
+ if (!zRemainderBuf)
+ throw(std::string("ERROR: ran out of memory to allocate to z-remainder-buffer"));
+ zRemainderBuf[0] = '\0';
+
+ //zInBuf = static_cast<char *>( std::malloc(STARCH_Z_CHUNK * STARCH_Z_CHUNK_MULTIPLIER) );
+ zInBuf = static_cast<char *>( std::malloc(STARCH_Z_CHUNK) );
+ if (!zInBuf)
+ throw(std::string("ERROR: ran out of memory to allocate to z-in-buffer"));
+ zInBuf[0] = '\0';
+
+ zOutBuf = static_cast<char *>( std::malloc(STARCH_Z_CHUNK * STARCH_Z_CHUNK_MULTIPLIER) );
+ if (!zOutBuf)
+ throw(std::string("ERROR: ran out of memory to allocate to z-in-buffer"));
+ zOutBuf[0] = '\0';
+
+ zLineBuf = static_cast<char *>( std::malloc(STARCH_Z_CHUNK * STARCH_Z_CHUNK_MULTIPLIER) );
+ if (!zLineBuf)
+ throw(std::string("ERROR: ran out of memory to allocate to z-in-buffer"));
+ zLineBuf[0] = '\0';
+
+ needToReadZChunk = true;
+ needToInflateZChunk = true;
+ postBreakdownZValuesIdentical = false;
+
+ // setting up transformation parameters...
+ if (setupTransformationParameters() != EXIT_SUCCESS)
+ throw(std::string("ERROR: could not initialize transformation parameters"));
+ return EXIT_SUCCESS;
+ }
+
+ int
+ Starch::breakdownGzipWorks()
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::breakdownGzipWorks() ---\n");
+#endif
+ zError = inflateEnd(&zStream);
+ switch (zError) {
+ case Z_STREAM_ERROR: {
+ throw(std::string("ERROR: z-stream state inconsistent"));
+ }
+ case Z_DATA_ERROR: {
+ throw(std::string("ERROR: z-stream freed prematurely"));
+ }
+ default:
+ break;
+ }
+
+ if (zRemainderBuf)
+ free(zRemainderBuf), zRemainderBuf = NULL;
+ if (zInBuf)
+ free(zInBuf), zInBuf = NULL;
+ if (zOutBuf)
+ free(zOutBuf), zOutBuf = NULL;
+ if (zLineBuf)
+ free(zLineBuf), zLineBuf = NULL;
+
+ return EXIT_SUCCESS;
+ }
+
+ int
+ Starch::setupTransformationParameters()
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::setupTransformationParameters() ---\n");
+ std::fprintf(stderr, "\tarchVersion->major -> %d\n", archVersion->major);
+#endif
+ t_start = 0;
+ t_pLength = 0;
+ t_lastEnd = 0;
+ t_firstInputToken[0] = '\0';
+ t_secondInputToken[0] = '\0';
+
+ /*
+ We check the archive version and set the stream offset parameters
+ to initialize transformation
+ */
+
+ //cumulativeSize = 0ULL;
+ switch (archVersion->major) {
+ case 1: {
+ archStreamOffset = archMdOffset;
+ break;
+ }
+ case 2: {
+ archStreamOffset = STARCH2_MD_HEADER_BYTE_LENGTH;
+ break;
+ }
+ default:
+ throw(std::string("ERROR: Could not determine stream offset from unknown major version"));
+ }
+#ifdef DEBUG
+ std::fprintf(stderr, "\tarchStreamOffset -> %" PRIu64 "\n", archStreamOffset);
+#endif
+
+ return EXIT_SUCCESS;
+ }
+
+ int
+ Starch::seekCurrentInFpPosition()
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::seekCurrentInFpPosition() ---\n");
+ std::fprintf(stderr, "\tcumulative size -> %" PRId64 "\n", cumulativeSize);
+ std::fprintf(stderr, "\tarchive stream offset -> %" PRId64 "\n", archStreamOffset);
+ std::fprintf(stderr, "\toffsetting to %" PRIu64 "\n", (cumulativeSize + archStreamOffset));
+#endif
+ if (archMdIter) {
+ if (STARCH_fseeko( getInFp(), static_cast<off_t>( cumulativeSize + archStreamOffset ), SEEK_SET ) != 0)
+ throw(std::string("ERROR: could not seek data in archive"));
+ incrementCumulativeSize( archMdIter->size );
+ }
+
+ return EXIT_SUCCESS;
+ }
+
+ bool
+ Starch::extractBEDLine(std::string& line)
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::extractBEDLine(std::string &) ---\n");
+#endif
+
+ line.clear();
+ while (!isEOF()) {
+#ifdef DEBUG
+ std::fprintf(stderr, "--> not isEOF()\n");
+ std::fprintf(stderr,
+ "selectChr [ %s ] - currChr [ %s ] fPass [ %d ] t_ [ %s | %s] _curr [ %s | %" PRId64 " | %" PRId64 " ] line [ %s ]\n",
+ selectedChromosome.c_str(),
+ getCurrentChromosome(),
+ (int) firstPass,
+ t_firstInputToken,
+ t_secondInputToken,
+ _currChr,
+ _currStart,
+ _currStop,
+ line.c_str());
+#endif
+
+ if ((std::strcmp(selectedChromosome.c_str(), "all") != 0) && (std::strcmp(selectedChromosome.c_str(), getCurrentChromosome()) != 0)) {
+#ifdef DEBUG
+ std::fprintf(stderr, "--> iterating chromosome record pointer\n");
+#endif
+ iterateArchiveMdIter();
+ seekCurrentInFpPosition();
+ }
+ else {
+ if (firstPass) {
+#ifdef DEBUG
+ std::fprintf(stderr, "--> firstPass is true or line is empty, calling extractLine() again\n");
+#endif
+ extractLine(line);
+ firstPass = false;
+ }
+
+ if ((t_firstInputToken[0] == 'p') && (archMdIter)) {
+#ifdef DEBUG
+ std::fprintf(stderr, "--> prefix is 'p'\n");
+#endif
+ extractLine(line);
+ }
+ else if (!line.empty()) {
+#ifdef DEBUG
+ std::fprintf(stderr, "--> line is not empty, therefore break [ %s ]\n", line.c_str());
+#endif
+ firstPass = true;
+ break;
+ }
+ else if (!firstPass && line.empty()) {
+ break;
+ }
+ }
+ }
+
+#ifdef DEBUG
+ std::fprintf(stderr, "--> at end of extractBEDLine, line is [ %s ]\n", line.c_str());
+#endif
+
+ return !isEOF();
+ }
+
+ int
+ Starch::extractLine(std::string& line)
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::extractLine(std::string &) ---\n");
+#endif
+
+ static char out[STARCH_BUFFER_MAX_LENGTH];
+ static const char tab = '\t';
+ int res = 0;
+
+ if ((std::strcmp(selectedChromosome.c_str(), "all") == 0) || (std::strcmp(selectedChromosome.c_str(), getCurrentChromosome()) == 0)) {
+#ifdef DEBUG
+ std::fprintf(stderr, "getCurrentChromosome [ %s ]\n", getCurrentChromosome());
+#endif
+ switch (archType) {
+ case kBzip2: {
+ // extract untransformed line from archive
+ UNSTARCH_bzReadLine(bzFp, &bzOutput);
+ if (bzOutput) {
+#ifdef DEBUG
+ std::fprintf(stderr, "--> bzOutput [ %s ]\n", bzOutput);
+#endif
+ // we deliberately choose to disable support for headers
+ // in reverse transformation used by C++ client apps
+ allowHeadersFlag = false;
+
+ // transform data back to BED
+ if (allowHeadersFlag) {
+ (archHeaderFlag == kStarchFalse) ?
+ UNSTARCH_sReverseTransformHeaderlessInput( getCurrentChromosome(),
+ const_cast<const unsigned char *>( bzOutput ),
+ tab,
+ &t_start,
+ &t_pLength,
+ &t_lastEnd,
+ t_firstInputToken,
+ t_secondInputToken,
+ &_currChr,
+ &_currChrLen,
+ &_currStart,
+ &_currStop,
+ &_currRemainder,
+ &_currRemainderLen)
+ :
+ UNSTARCH_sReverseTransformInput( getCurrentChromosome(),
+ const_cast<const unsigned char *>( bzOutput ),
+ tab,
+ &t_start,
+ &t_pLength,
+ &t_lastEnd,
+ t_firstInputToken,
+ t_secondInputToken,
+ &_currChr,
+ &_currChrLen,
+ &_currStart,
+ &_currStop,
+ &_currRemainder,
+ &_currRemainderLen);
+ }
+ else {
+ do {
+ res = UNSTARCH_sReverseTransformIgnoringHeaderedInput( getCurrentChromosome(),
+ const_cast<const unsigned char *>( bzOutput ),
+ tab,
+ &t_start,
+ &t_pLength,
+ &t_lastEnd,
+ t_firstInputToken,
+ t_secondInputToken,
+ &_currChr,
+ &_currChrLen,
+ &_currStart,
+ &_currStop,
+ &_currRemainder,
+ &_currRemainderLen);
+#ifdef DEBUG
+ std::fprintf(stderr,"t_ [ %s | %s] _curr [ %s | %" PRId64 " | %" PRId64 " ]\n", t_firstInputToken, t_secondInputToken, _currChr, _currStart, _currStop);
+#endif
+ if (res != 0)
+ break;
+ } while (res != 0);
+ }
+
+ // if the first character of the first untransformed token is 'p', then
+ // we have not yet extracted a BED line, and so we call extractLine()
+ // once again to get BED output
+
+#ifdef DEBUG
+ std::fprintf(stderr, "\t TOKENS --> t_firstInputToken: %s \t t_secondInputToken: %s\n", t_firstInputToken, t_secondInputToken);
+#endif
+
+ if (t_firstInputToken[0] == 'p')
+ extractLine(line);
+
+ t_firstInputToken[0] = '\0';
+ t_secondInputToken[0] = '\0';
+ }
+ else {
+ // we break down bzip2-workings, then go to the next
+ // metadata record. if it is not NULL, then we seek the
+ // next byte offset and set up a new bzip2 reader. if the
+ // metadata is NULL, then we are positioned at EOF and
+ // we break.
+
+ breakdownBzip2Works();
+ if (std::strcmp(selectedChromosome.c_str(), getCurrentChromosome()) == 0) {
+ archMdIter = NULL;
+ if (currentChromosome) free(currentChromosome), currentChromosome = NULL;
+ if (_currChr) free(_currChr), _currChr = NULL;
+ if (_currRemainder) free(_currRemainder), _currRemainder = NULL;
+ line.clear();
+ return EXIT_SUCCESS;
+ }
+ iterateArchiveMdIter();
+ if (!archMdIter) {
+ archMdIter = NULL;
+ if (currentChromosome) free(currentChromosome), currentChromosome = NULL;
+ if (currentRemainder) free(currentRemainder), currentRemainder = NULL;
+ if (_currChr) free(_currChr), _currChr = NULL;
+ line.clear();
+ return EXIT_SUCCESS;
+ }
+ seekCurrentInFpPosition();
+ setupBzip2Works();
+
+ // we call extractLine() once more, in order to get the next
+ // BED element (we're not interested in untransformed data, but
+ // in a fully-transformed line of BED output)
+
+ extractLine(line);
+ }
+ break;
+ }
+
+ case kGzip: {
+ // extract untransformed line from archive
+ zReadLine();
+#ifdef DEBUG
+ std::fprintf(stderr, "--> (post-read-line) zError [%d]\n", zError);
+#endif
+ //if (zError != Z_STREAM_END) {
+ //if (zHave > 0) {
+ if (zHave >= zOutBufIdx && !postBreakdownZValuesIdentical) {
+#ifdef DEBUG
+ std::fprintf(stderr, "--> PRE - zOutBufIdx [ %d ] zHave [ %d ] postBreakdownZValuesIdentical [ %d ]\n", zOutBufIdx, zHave, postBreakdownZValuesIdentical);
+#endif
+
+ // we deliberately choose to disable support for headers
+ // in reverse transformation used by C++ client apps
+ allowHeadersFlag = false;
+
+ // transform data back to BED, sending it to outbound FILE*
+ if (allowHeadersFlag) {
+ (archHeaderFlag == kStarchFalse) ?
+ UNSTARCH_sReverseTransformHeaderlessInput( getCurrentChromosome(),
+ const_cast<const unsigned char *>( reinterpret_cast<unsigned char *>( zLineBuf ) ),
+ tab,
+ &t_start,
+ &t_pLength,
+ &t_lastEnd,
+ t_firstInputToken,
+ t_secondInputToken,
+ &_currChr,
+ &_currChrLen,
+ &_currStart,
+ &_currStop,
+ &_currRemainder,
+ &_currRemainderLen)
+ :
+ UNSTARCH_sReverseTransformInput( getCurrentChromosome(),
+ const_cast<const unsigned char *>( reinterpret_cast<unsigned char *>( zLineBuf ) ),
+ tab,
+ &t_start,
+ &t_pLength,
+ &t_lastEnd,
+ t_firstInputToken,
+ t_secondInputToken,
+ &_currChr,
+ &_currChrLen,
+ &_currStart,
+ &_currStop,
+ &_currRemainder,
+ &_currRemainderLen);
+ }
+ else {
+ do {
+ res = UNSTARCH_sReverseTransformIgnoringHeaderedInput( getCurrentChromosome(),
+ const_cast<const unsigned char *>( reinterpret_cast<unsigned char *>( zLineBuf ) ),
+ tab,
+ &t_start,
+ &t_pLength,
+ &t_lastEnd,
+ t_firstInputToken,
+ t_secondInputToken,
+ &_currChr,
+ &_currChrLen,
+ &_currStart,
+ &_currStop,
+ &_currRemainder,
+ &_currRemainderLen);
+#ifdef DEBUG
+ std::fprintf(stderr,"zLineBuf [ %s ] t_ [ %s | %s] _curr [ %s | %" PRId64 " | %" PRId64 " ]\n", zLineBuf, t_firstInputToken, t_secondInputToken, _currChr, _currStart, _currStop);
+#endif
+ if (res != 0)
+ break;
+ } while (res != 0);
+ }
+#ifdef DEBUG
+ std::fprintf(stderr, "--> POST - zOutBufIdx [ %d ] zHave [ %d ] postBreakdownZValuesIdentical [ %d ]\n", zOutBufIdx, zHave, postBreakdownZValuesIdentical);
+#endif
+
+ // if the first character of the first untransformed token is 'p', then
+ // we have not yet extracted a BED line, and so we call extractLine()
+ // once again to get actual BED output
+
+ if (t_firstInputToken[0] == 'p')
+ extractLine(line);
+
+ t_firstInputToken[0] = '\0';
+ t_secondInputToken[0] = '\0';
+ }
+ else {
+ // we break down gzip-workings, then go to the next
+ // metadata record. if it is not NULL, then we seek the
+ // next byte offset and set up a new gzip reader. if the
+ // metadata is NULL, then we are positioned at EOF and
+ // we break.
+
+ postBreakdownZValuesIdentical = false;
+ zOutBufIdx = 0;
+
+ breakdownGzipWorks();
+ if (std::strcmp(selectedChromosome.c_str(), getCurrentChromosome()) == 0) {
+#ifdef DEBUG_VERBOSE
+ std::fprintf(stderr, "--> current chromosome does not match\n");
+#endif
+ archMdIter = NULL;
+ if (currentChromosome) free(currentChromosome), currentChromosome = NULL;
+ if (_currChr) free(_currChr), _currChr = NULL;
+ if (_currRemainder) free(_currRemainder), _currRemainder = NULL;
+ line.clear();
+ return EXIT_SUCCESS;
+ }
+ iterateArchiveMdIter();
+ if (!archMdIter) {
+#ifdef DEBUG_VERBOSE
+ std::fprintf(stderr, "--> current chromosome is NULL\n");
+#endif
+ archMdIter = NULL;
+ if (currentChromosome) free(currentChromosome), currentChromosome = NULL;
+ if (currentRemainder) free(currentRemainder), currentRemainder = NULL;
+ if (_currChr) free(_currChr), _currChr = NULL;
+ line.clear();
+#ifdef DEBUG_VERBOSE
+ std::fprintf(stderr, "--> returning...\n");
+#endif
+ return EXIT_SUCCESS;
+ }
+ seekCurrentInFpPosition();
+ setupGzipWorks();
+
+ // we call extractLine() once more, in order to get the next
+ // BED element (we're not interested in untransformed data, but
+ // in a fully-transformed line of BED output)
+#ifdef DEBUG_VERBOSE
+ std::fprintf(stderr, "--> calling extractLine() one more time...\n");
+#endif
+ extractLine(line);
+ }
+ break;
+ }
+ case kUndefined: {
+ throw(std::string("ERROR: backend compression type is undefined"));
+ }
+ }
+ }
+
+ if ((_currChr && archType == kGzip && !postBreakdownZValuesIdentical) || (_currChr && archType == kBzip2)) {
+#ifdef DEBUG
+ std::fprintf(stderr, "--> (post-breakdown) zOutBufIdx [ %d ] zHave [ %d ]\n", zOutBufIdx, zHave);
+#endif
+ setCurrentStart(_currStart);
+ setCurrentStop(_currStop);
+ setCurrentRemainder(_currRemainder);
+ if (_currRemainder)
+ std::sprintf(out, "%s\t%" PRId64 "\t%" PRId64 "\t%s", _currChr, _currStart, _currStop, _currRemainder);
+ else
+ std::sprintf(out, "%s\t%" PRId64 "\t%" PRId64, _currChr, _currStart, _currStop);
+ line = out;
+
+ if (archType == kGzip)
+ postBreakdownZValuesIdentical = (zOutBufIdx == zHave);
+ }
+
+ return EXIT_SUCCESS;
+ }
+
+ int
+ Starch::zReadChunk()
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::zReadChunk() ---\n");
+#endif
+
+#ifdef DEBUG
+ std::fprintf(stderr, "--> (pre-read-chunk) currently at byte [%013ld]\n", std::ftell(inFp));
+#endif
+
+ //zStream.avail_in = static_cast<uInt>( std::fread(zInBuf, 1, STARCH_Z_CHUNK * STARCH_Z_CHUNK_MULTIPLIER, inFp) );
+ zStream.avail_in = static_cast<uInt>( std::fread(zInBuf, 1, STARCH_Z_CHUNK, inFp) );
+ zStream.next_in = reinterpret_cast<Byte *>( zInBuf );
+ needToReadZChunk = false;
+ needToInflateZChunk = true;
+ postBreakdownZValuesIdentical = false;
+
+#ifdef DEBUG
+ std::fprintf(stderr, "--> (post-read-chunk) currently at byte [%013ld]\n", std::ftell(inFp));
+#endif
+
+ return EXIT_SUCCESS;
+ }
+
+ int
+ Starch::zReadLine()
+ {
+ // goal: read through zOutBuf until we hit a newline, then return with
+ // a filled line buffer containing transformed BED data
+ //
+ // -- we initialize zBufIdx and zOutBufIdx in zReadChunk()
+ //
+ // ---- we don't (re)initialize them here, as we use them to
+ // maintain positional state between calls to zReadLine()
+ //
+ // ---- if zOutBufIdx is zero, then we need to read in a
+ // z-chunk, in order to "prime the pump" and fill
+ // the buffers up with the first batch of data
+
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::zReadLine() -- zStream.avail_out [%d] ---\n", zStream.avail_out);
+#endif
+
+ if (needToReadZChunk) {
+#ifdef DEBUG
+ std::fprintf(stderr, "--> needToReadZChunk\n");
+#endif
+ zReadChunk();
+ }
+
+ if (needToInflateZChunk) {
+#ifdef DEBUG
+ std::fprintf(stderr, "--> needToInflateZChunk\n");
+#endif
+ zStream.avail_out = STARCH_Z_CHUNK * STARCH_Z_CHUNK_MULTIPLIER;
+ zStream.next_out = reinterpret_cast<Byte *>( zOutBuf );
+ zError = inflate(&zStream, Z_NO_FLUSH);
+#ifdef DEBUG
+ std::fprintf(stderr, "--> post-needToInflateZChunk zError [ %d ]\n", zError);
+#endif
+ switch (zError) {
+#ifdef DEBUG
+ case Z_STREAM_END: {
+ std::fprintf(stderr, "--> NEED NEW CHROMOSOME ONCE CHUNK IS FINISHED\n");
+ break;
+ }
+#endif
+ case Z_NEED_DICT: {
+ throw(std::string("ERROR: z-stream needs dictionary"));
+ }
+ case Z_DATA_ERROR: {
+ throw(std::string("ERROR: z-stream suffered data error"));
+ }
+ case Z_MEM_ERROR: {
+ throw(std::string("ERROR: z-stream suffered memory error"));
+ }
+ default:
+ break;
+ }
+ zHave = (STARCH_Z_CHUNK * STARCH_Z_CHUNK_MULTIPLIER) - static_cast<int>( zStream.avail_out );
+ zOutBuf[zHave] = '\0';
+ /* copy remainder buffer onto line buffer, if not NULL */
+ if (zRemainderBuf) {
+ strncpy(reinterpret_cast<char *>( zLineBuf ), reinterpret_cast<const char *>( zRemainderBuf ), strlen(reinterpret_cast<const char *>( zRemainderBuf )));
+ zBufOffset = strlen(reinterpret_cast<const char *>( zRemainderBuf ));
+ }
+ else {
+ zBufOffset = 0;
+ }
+#ifdef DEBUG
+ std::fprintf(stderr, "--> zOutBuf [ %s ]\n", zOutBuf);
+#endif
+ needToInflateZChunk = false;
+ }
+
+ /* read through zOutBuf for newlines */
+ for (; zOutBufIdx < zHave; zBufIdx++) {
+ if (zOutBuf[zOutBufIdx++] == '\n') {
+ zLineBuf[zBufIdx] = '\0';
+ zBufIdx = 0;
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--> full line [ %s ]\n", zLineBuf);
+#endif
+ return EXIT_SUCCESS;
+ }
+ else
+ zLineBuf[zBufIdx] = zOutBuf[zOutBufIdx - 1];
+ }
+
+ if (strlen(reinterpret_cast<const char *>( zLineBuf )) > 0) {
+ if (strlen(reinterpret_cast<const char *>( zLineBuf )) > strlen(reinterpret_cast<const char *>( zRemainderBuf ))) {
+ /* to minimize the chance of doing another (expensive) malloc, we double the length of zRemainderBuf */
+ free(zRemainderBuf);
+ zRemainderBuf = static_cast<char *>( std::malloc(std::strlen(zLineBuf) * 2) ); // resize remainder buffer, if necessary
+ }
+
+ /* it is necessary to copy only that part of zLineBuf up to zBufIdx characters */
+ /* (zBufIdx characters were read into zLineBuf before no newline was found and */
+ /* we end up in this conditional) as well as terminate the remainder buffer */
+ /* zRemainderBuf, so that any cruft from a previous iteration is ignored in the */
+ /* next iteration of parsing the chromosome's z-stream */
+
+ strncpy(reinterpret_cast<char *>( zRemainderBuf ), reinterpret_cast<const char *>( zLineBuf ), zBufIdx);
+ zRemainderBuf[zBufIdx] = '\0';
+
+ /* we should only at most have to do this every STARCH_Z_CHUNK chars, and once */
+ /* at the tail end of a chromosome's worth of a z-stream */
+ }
+
+ if (zOutBufIdx == zHave) {
+ if (zHave == 0)
+ return EXIT_SUCCESS;
+ else {
+ //zOutBufIdx = 0;
+ needToReadZChunk = true;
+ }
+ }
+
+ return EXIT_SUCCESS;
+ }
+
+ int
+ Starch::extractAllData(const std::string& chr, FILE *out)
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::extractAllData(std::string &, FILE *) ---\n");
+#endif
+ if (!archMd)
+ readJSONMetadata(false, false);
+
+ switch(archType) {
+ case kBzip2: {
+ if (UNSTARCH_extractDataWithBzip2(getInFpPtr(),
+ out,
+ chr.c_str(),
+ const_cast<const Metadata *>( getArchiveMd() ),
+ getArchiveMdOffset(),
+ static_cast<const Boolean>( getArchiveHeaderFlag() )) != 0 ) {
+ throw(std::string("ERROR: backend extraction failed"));
+ }
+ break;
+ }
+ case kGzip: {
+ if (UNSTARCH_extractDataWithGzip(getInFpPtr(),
+ out,
+ chr.c_str(),
+ const_cast<const Metadata *>( getArchiveMd() ),
+ getArchiveMdOffset(),
+ static_cast<const Boolean>( getArchiveHeaderFlag() )) != 0 ) {
+ throw(std::string("ERROR: backend extraction failed"));
+ }
+ break;
+ }
+ case kUndefined: {
+ throw(std::string("ERROR: backend compression type is undefined"));
+ }
+ }
+ return EXIT_SUCCESS;
+ }
+
+ int
+ Starch::setupPerLineAccess()
+ {
+#ifdef DEBUG
+ std::fprintf(stderr, "\n--- Starch::setupPerLineAccess() ---\n");
+#endif
+
+ if (!archMd) // read in Metadata object from JSON header
+ readJSONMetadata(false, false);
+
+ setArchiveMdIter(archMd); // set Metadata iterator position to first Metadata record
+ seekCurrentInFpPosition(); // set inFp to correct position
+
+ // set up backend decompression works
+ switch (archType) {
+ case kBzip2: {
+ setupBzip2Works();
+ break;
+ }
+ case kGzip: {
+ setupGzipWorks();
+ break;
+ }
+ case kUndefined: {
+ throw(std::string("ERROR: backend compression type is undefined"));
+ }
+ }
+
+ return EXIT_SUCCESS;
+ }
+}
+
+#endif
diff --git a/interfaces/general-headers/data/starch/starchBase64Coding.h b/interfaces/general-headers/data/starch/starchBase64Coding.h
new file mode 100644
index 0000000..325c0fb
--- /dev/null
+++ b/interfaces/general-headers/data/starch/starchBase64Coding.h
@@ -0,0 +1,50 @@
+//=========
+// Author: Alex Reynolds & Shane Neph
+// Project: starch
+// File: starchBase64Coding.h
+//=========
+
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef STARCH_BASE64CODING_H
+#define STARCH_BASE64CODING_H
+
+#include "data/starch/starchHelpers.h"
+
+#ifdef __cplusplus
+namespace starch {
+#endif
+
+extern const char kStarchBase64EncodingTable[64];
+extern const short kStarchBase64DecodingTable[256];
+
+void STARCH_encodeBase64(char **output,
+ const size_t outputLength,
+ const unsigned char *inputBytes,
+ const size_t inputLength);
+
+void STARCH_decodeBase64(char *input,
+ unsigned char **output,
+ size_t *outputLength);
+#ifdef __cplusplus
+} // namespace starch
+#endif
+
+#endif
diff --git a/interfaces/general-headers/data/starch/starchConstants.h b/interfaces/general-headers/data/starch/starchConstants.h
new file mode 100644
index 0000000..1aa1ade
--- /dev/null
+++ b/interfaces/general-headers/data/starch/starchConstants.h
@@ -0,0 +1,66 @@
+//=========
+// Author: Alex Reynolds & Shane Neph
+// Project: starch
+// File: starchConstants.h
+//=========
+
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef STARCH_CONSTANTS_H
+#define STARCH_CONSTANTS_H
+
+#ifdef __cplusplus
+namespace starch {
+#endif
+
+typedef int Boolean;
+
+/*
+ Detail custom track headers
+ -----------------------------------------------------------------
+ cf. http://genome.ucsc.edu/goldenPath/help/customTrack.html
+ http://genome.ucsc.edu/FAQ/FAQformat.html#format1
+
+ These keywords are reserved "chromosome" names -- you *cannot* name
+ chromosomes in your BED file with any of these keywords as prefixes.
+
+ If you do so, then the line will not be transformed per Shane's algorithm
+ and no compression gain is accomplished (beyond the use of raw bzip2 or
+ gzip). Further still, no file offsets get determined and so there is
+ no way to search by chromosome...
+*/
+
+extern const char * kStarchBedHeaderTrack;
+extern const char * kStarchBedHeaderBrowser;
+extern const char * kStarchBedHeaderSAM;
+extern const char * kStarchBedHeaderVCF;
+extern const char * kStarchBedGenericComment;
+
+extern const unsigned int kStarchFinalizeTransformTrue;
+extern const unsigned int kStarchFinalizeTransformFalse;
+extern const Boolean kStarchTrue;
+extern const Boolean kStarchFalse;
+extern const char * kStarchNullChromosome;
+
+#ifdef __cplusplus
+} // namespace starch
+#endif
+
+#endif
diff --git a/interfaces/general-headers/data/starch/starchFileHelpers.h b/interfaces/general-headers/data/starch/starchFileHelpers.h
new file mode 100644
index 0000000..7efca37
--- /dev/null
+++ b/interfaces/general-headers/data/starch/starchFileHelpers.h
@@ -0,0 +1,83 @@
+//=========
+// Author: Alex Reynolds & Shane Neph
+// Project: starch
+// File: starchFileHelpers.h
+//=========
+
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef STARCHFILEHELPERS_H
+#define STARCHFILEHELPERS_H
+
+#define STARCH_FATAL_ERROR -1
+
+/*
+ On Darwin, file I/O is 64-bit by default (OS X 10.5 at least) so we use standard
+ types and calls
+
+ Via Terry Lambert <tlambert at apple.com>:
+
+ ``off_t is 64 bit by default in Mac OS X, so it's not necessary to use special
+ calls to obtain large file support. You will still need to use fseeko()
+ instead of fseek(), unless you compile your code 64 bit (fseek() takes a long
+ instead of an off_t because the standard requires it).''
+*/
+
+#ifdef __APPLE__
+#define fopen64 fopen
+#define off64_t off_t
+#define fseeko64 fseeko
+#endif
+
+/*
+ In Cygwin, there is no support for fseeko(). We can use fseek() on a 64-bit
+ distribution of Cygwin, because a signed long int has sufficient bits to store
+ an offset for a file greater than 2 GB. For 32-bit distributions of Cygwin, we
+ do not yet have support for this arrangement.
+*/
+
+#ifdef __CYGWIN__
+#define fseeko fseek
+#endif
+
+#ifdef __CYGWIN32__
+#error 32-bit Cygwin compilation is unsupported due to lack of fseeko() support
+#endif
+
+#ifdef __cplusplus
+namespace starch {
+#endif
+
+FILE* STARCH_fopen(const char *filename,
+ const char *type);
+
+int STARCH_fseeko(FILE *stream,
+ off_t offset,
+ int whence);
+
+int STARCH_gzip_deflate(FILE *source,
+ FILE *dest,
+ int level);
+
+#ifdef __cplusplus
+} // namespace starch
+#endif
+
+#endif
diff --git a/interfaces/general-headers/data/starch/starchHelpers.h b/interfaces/general-headers/data/starch/starchHelpers.h
new file mode 100644
index 0000000..b0b73b1
--- /dev/null
+++ b/interfaces/general-headers/data/starch/starchHelpers.h
@@ -0,0 +1,144 @@
+//=========
+// Author: Alex Reynolds & Shane Neph
+// Project: starch
+// File: starchHelpers.h
+//=========
+
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef STARCH_HELPERS_H
+#define STARCH_HELPERS_H
+
+#ifdef __cplusplus
+#include <cinttypes>
+#include <cstdint>
+#include <clocale>
+#else
+#include <inttypes.h>
+#include <stdint.h>
+#include <locale.h>
+#endif
+
+#include "data/starch/starchMetadataHelpers.h"
+
+#ifdef __cplusplus
+namespace starch {
+#endif
+
+#define STARCH_BUFFER_MAX_LENGTH 1024*1024
+#define STARCH_Z_CHUNK STARCH_BUFFER_MAX_LENGTH
+#define STARCH_Z_CHUNK_MULTIPLIER 8
+#define STARCH_Z_BUFFER_MAX_LENGTH STARCH_BUFFER_MAX_LENGTH
+#define STARCH_Z_IN_BUFFER_MAX_LENGTH 1024
+#define STARCH_Z_COMPRESSION_LEVEL 1
+#define STARCH_Z_WINDOW_BITS 31
+#define STARCH_Z_MEMORY_LEVEL 9
+#define STARCH_BZ_BUFFER_MAX_LENGTH STARCH_BUFFER_MAX_LENGTH
+#define STARCH_BZ_COMPRESSION_LEVEL 9
+#define STARCH_BZ_VERBOSITY 0
+#define STARCH_BZ_SMALL 0
+#define STARCH_BZ_WORKFACTOR 0
+#define STARCH_BZ_ABANDON 0
+#define STARCH_RADIX 10
+
+#define STARCH_NONFATAL_ERROR -2
+#define STARCH_FATAL_ERROR -1
+#define STARCH_HELP_ERROR 2
+#define STARCH_VERSION_ERROR 3
+
+char * STARCH_strdup(const char *str);
+
+int STARCH_compressFileWithGzip(const char *inFn,
+ char **outFn,
+ off_t *outFnSize);
+
+int STARCH_compressFileWithBzip2(const char *inFn,
+ char **outFn,
+ off_t *outFnSize);
+
+int STARCH_createTransformTokens(const char *s,
+ const char delim,
+ char **chr,
+ int64_t *start,
+ int64_t *stop,
+ char **remainder,
+ BedLineType *lineType);
+
+int STARCH_createTransformTokensForHeaderlessInput(const char *s,
+ const char delim,
+ char **chr,
+ int64_t *start,
+ int64_t *stop,
+ char **remainder);
+
+int STARCH_transformInput(Metadata **md,
+ const FILE *fp,
+ const CompressionType type,
+ const char *tag,
+ const char *note);
+
+int STARCH_transformHeaderlessInput(Metadata **md,
+ const FILE *fp,
+ const CompressionType type,
+ const char *tag,
+ const Boolean finalizeFlag,
+ const char *note);
+
+Boolean STARCH_fileExists(const char *fn);
+
+char * STARCH_strndup(const char *s,
+ size_t n);
+
+void STARCH_printUsage(int t);
+
+void STARCH_printRevision();
+
+int STARCH2_transformInput(unsigned char **header,
+ Metadata **md,
+ const FILE *inFp,
+ const CompressionType compressionType,
+ const char *tag,
+ const char *note,
+ const Boolean headerFlag);
+
+int STARCH2_transformHeaderedBEDInput(const FILE *inFp,
+ Metadata **md,
+ const CompressionType compressionType,
+ const char *tag,
+ const char *note);
+
+int STARCH2_transformHeaderlessBEDInput(const FILE *inFp,
+ Metadata **md,
+ const CompressionType compressionType,
+ const char *tag,
+ const char *note);
+
+int STARCH2_writeStarchHeaderToOutputFp(const unsigned char *header,
+ const FILE *fp);
+
+int STARCH2_initializeStarchHeader(unsigned char **header);
+
+void STARCH2_printStarchHeader(const unsigned char *header);
+
+#ifdef __cplusplus
+} // namespace starch
+#endif
+
+#endif
diff --git a/interfaces/general-headers/data/starch/starchMetadataHelpers.h b/interfaces/general-headers/data/starch/starchMetadataHelpers.h
new file mode 100644
index 0000000..fbe2595
--- /dev/null
+++ b/interfaces/general-headers/data/starch/starchMetadataHelpers.h
@@ -0,0 +1,306 @@
+//=========
+// Author: Alex Reynolds & Shane Neph
+// Project: starch
+// File: starchMetadataHelpers.h
+//=========
+
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef STARCHMETADATAHELPERS_H
+#define STARCHMETADATAHELPERS_H
+
+#ifdef __cplusplus
+#include <cinttypes>
+#else
+#include <inttypes.h>
+#endif
+
+#include "data/starch/starchConstants.h"
+#include "suite/BEDOPS.Constants.hpp"
+
+#include "jansson.h"
+
+/* current "stable" binary version: 2.4.2 */
+/* current "dev" binary version: 2.5.0 */
+
+/* current "stable" archive version: 2.0.0 */
+/* current "dev" archive version: 2.1.0 */
+
+#ifdef __cplusplus
+ namespace starch {
+ using namespace Bed;
+#endif
+
+#define STARCH_MAJOR_VERSION 2
+#define STARCH_MINOR_VERSION 1
+#define STARCH_REVISION_VERSION 0
+
+#define STARCH_DEFAULT_COMPRESSION_TYPE kBzip2
+
+#define STARCH_EXIT_FAILURE 0
+#define STARCH_EXIT_SUCCESS 1
+
+#define STARCH_LEGACY_METADATA_SIZE 8192
+#define STARCH_LEGACY_EXTENSION_BZ2 ".bz2"
+#define STARCH_LEGACY_EXTENSION_GZIP ".gz"
+#define STARCH_FATAL_ERROR -1
+#define STARCH_RADIX 10
+#define STARCH_TEST_BYTE_COUNT 4
+#define STARCH_TEST_BYTE_POSITION_RESET 3
+#define STARCH_TAG_MAX_LENGTH 2048
+#define STARCH_STREAM_METADATA_FILENAME_MAX_LENGTH 1024
+#define STARCH_STREAM_METADATA_MAX_LENGTH 1048576
+#define STARCH_DEFAULT_LINE_COUNT 0
+#define STARCH_DEFAULT_NON_UNIQUE_BASE_COUNT 0
+#define STARCH_DEFAULT_UNIQUE_BASE_COUNT 0
+#ifdef __cplusplus
+#define STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE static_cast<Boolean>(kStarchFalse)
+#define STARCH_DEFAULT_NESTED_ELEMENT_FLAG_VALUE static_cast<Boolean>(kStarchFalse)
+#else
+#define STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE (Boolean)kStarchFalse
+#define STARCH_DEFAULT_NESTED_ELEMENT_FLAG_VALUE (Boolean)kStarchFalse
+#endif
+#define STARCH_CREATION_TIMESTAMP_LENGTH 80
+#define STARCH_ARCHIVE_VERSION_STRING_LENGTH 80
+
+#define STARCH_METADATA_STREAM_HEADER_BED_TYPE_KEY "customUCSCHeaders"
+#define STARCH_METADATA_STREAM_COMPRESSION_FORMAT_KEY "compressionFormat"
+#define STARCH_METADATA_STREAM_LIST_KEY "streams"
+#define STARCH_METADATA_STREAM_CHROMOSOME_KEY "chromosome"
+#define STARCH_METADATA_STREAM_FILENAME_KEY "filename"
+#define STARCH_METADATA_STREAM_SIZE_KEY "size"
+#define STARCH_METADATA_STREAM_LINECOUNT_KEY "uncompressedLineCount"
+#define STARCH_METADATA_STREAM_TOTALNONUNIQUEBASES_KEY "nonUniqueBaseCount"
+#define STARCH_METADATA_STREAM_TOTALUNIQUEBASES_KEY "uniqueBaseCount"
+#define STARCH_METADATA_STREAM_DUPLICATEELEMENTEXISTS_KEY "duplicateElementExists"
+#define STARCH_METADATA_STREAM_NESTEDELEMENTEXISTS_KEY "nestedElementExists"
+#define STARCH_METADATA_STREAM_ARCHIVE_KEY "archive"
+#define STARCH_METADATA_STREAM_ARCHIVE_TYPE_KEY "type"
+#define STARCH_METADATA_STREAM_ARCHIVE_NOTE_KEY "note"
+#define STARCH_METADATA_STREAM_ARCHIVE_CREATION_TIMESTAMP_KEY "creationTimestamp"
+#define STARCH_METADATA_STREAM_ARCHIVE_VERSION_KEY "version"
+#define STARCH_METADATA_STREAM_ARCHIVE_VERSION_MAJOR_KEY "major"
+#define STARCH_METADATA_STREAM_ARCHIVE_VERSION_MINOR_KEY "minor"
+#define STARCH_METADATA_STREAM_ARCHIVE_VERSION_REVISION_KEY "revision"
+#define STARCH_METADATA_STREAM_ARCHIVE_TYPE_VALUE "starch"
+#define STARCH_METADATA_STREAM_ARCHIVE_VERSION_MAJOR_VALUE STARCH_MAJOR_VERSION
+#define STARCH_METADATA_STREAM_ARCHIVE_VERSION_MINOR_VALUE STARCH_MINOR_VERSION
+#define STARCH_METADATA_STREAM_ARCHIVE_VERSION_REVISION_VALUE STARCH_REVISION_VERSION
+
+#define STARCH2_MD_HEADER_BYTE_LENGTH 4
+#define STARCH2_MD_FOOTER_LENGTH 128
+#define STARCH2_MD_FOOTER_CUMULATIVE_RECORD_SIZE_LENGTH 20
+#define STARCH2_MD_FOOTER_SHA1_LENGTH 20
+#define STARCH2_MD_FOOTER_BASE64_ENCODED_SHA1_LENGTH 29
+#define STARCH2_MD_FOOTER_REMAINDER_LENGTH STARCH2_MD_FOOTER_LENGTH - STARCH2_MD_FOOTER_CUMULATIVE_RECORD_SIZE_LENGTH - STARCH2_MD_FOOTER_BASE64_ENCODED_SHA1_LENGTH + 1
+#define STARCH2_MD_FOOTER_REMAINDER_UNUSED_CHAR 32
+
+/*
+ Starch rev. 1
+ -------------------------------------------------
+ We use the following values to test for delimiters between starch metadata
+ and the leading magic bytes of the first bzip2 or gzip chromosome stream. Once
+ we find magic bytes, we look backwards to see if we really have a boundary
+ between MD and compressed streams.
+
+ -- dynamicMdTerminatorBytes[] delimits the dynamically-sized metadata, and
+ as this is how metadata will be sized from now on, this is the way to go
+
+ -- legacyMdTerminatorBytes[] and otherLegacyMdTerminatorBytes[] cover
+ very early versions of starch archives and should not be needed going
+ forward, except for backwards-compatibility
+*/
+
+static const int testElemSize = sizeof(char);
+static const int testElemCount = STARCH_TEST_BYTE_COUNT;
+static const unsigned char bzip2MagicBytes[] = { 0x42, 0x5a, 0x68, 0x39, 0x00 };
+static const unsigned char gzipMagicBytes[] = { 0x1f, 0x8b, 0x08, 0x00 };
+static const unsigned char dynamicMdTerminatorBytes[] = { 0x7d };
+static const unsigned char legacyMdTerminatorBytes[] = { 0x00 };
+static const unsigned char otherLegacyMdTerminatorBytes[] = { 0x0A };
+static const unsigned char starchRevision1HeaderBytes[] = { 0x7b };
+static const int mdTerminatorBytesLength = 1;
+
+/*
+ Starch rev. 2+
+ -------------------------------------------------
+ We use the following bytes to identity the archive as a Starch v2+ file.
+*/
+
+static const unsigned char starchRevision2HeaderBytes[] = { 0xca, 0x5c, 0xad, 0xe5 }; /* ca5cade5 */
+
+/*
+ Structs and enumerations
+ -------------------------------------------------
+*/
+
+typedef struct metadata {
+ char *chromosome;
+ char *filename;
+ uint64_t size;
+ LineCountType lineCount;
+ BaseCountType totalNonUniqueBases;
+ BaseCountType totalUniqueBases;
+ Boolean duplicateElementExists;
+ Boolean nestedElementExists;
+ struct metadata *next;
+} Metadata;
+
+typedef enum {
+ kBzip2 = 0,
+ kGzip,
+ kUndefined
+} CompressionType;
+
+typedef struct archiveVersion {
+ int major;
+ int minor;
+ int revision;
+} ArchiveVersion;
+
+typedef enum {
+ kBedLineCoordinates = 0,
+ kBedLineHeaderTrack,
+ kBedLineHeaderBrowser,
+ kBedLineHeaderSAM,
+ kBedLineHeaderVCF,
+ kBedLineGenericComment,
+ kBedLineTypeUndefined
+} BedLineType;
+
+typedef
+unsigned int HeaderFlag;
+
+/*
+ On Darwin, file I/O is 64-bit by default (OS X 10.5 at least) so we use standard
+ types and calls
+*/
+
+#ifdef __APPLE__
+#define off64_t off_t
+#define fopen64 fopen
+#endif
+
+Metadata * STARCH_createMetadata(char const *chr,
+ char const *fn,
+ uint64_t size,
+ LineCountType lineCount,
+ BaseCountType totalNonUniqueBases,
+ BaseCountType totalUniqueBases,
+ Boolean duplicateElementExists,
+ Boolean nestedElementExists);
+
+Metadata * STARCH_addMetadata(Metadata *md,
+ char *chr,
+ char *fn,
+ uint64_t size,
+ LineCountType lineCount,
+ BaseCountType totalNonUniqueBases,
+ BaseCountType totalUniqueBases,
+ Boolean duplicateElementExists,
+ Boolean nestedElementExists);
+
+Metadata * STARCH_copyMetadata(const Metadata *md);
+
+int STARCH_updateMetadataForChromosome(Metadata **md,
+ char *chr,
+ char *fn,
+ uint64_t size,
+ LineCountType lineCount,
+ BaseCountType totalNonUniqueBases,
+ BaseCountType totalUniqueBases,
+ Boolean duplicateElementExists,
+ Boolean nestedElementExists);
+
+int STARCH_listMetadata(const Metadata *md,
+ const char *chr);
+
+void STARCH_freeMetadata(Metadata **md);
+
+int STARCH_deleteCompressedFiles(const Metadata *md);
+
+int STARCH_writeJSONMetadata(const Metadata *md,
+ char **buf,
+ CompressionType *type,
+ const Boolean headerFlag,
+ const char *note);
+
+char * STARCH_generateJSONMetadata(const Metadata *md,
+ const CompressionType type,
+ const ArchiveVersion *av,
+ const char *cTime,
+ const char *note,
+ const Boolean headerFlag);
+
+int STARCH_readJSONMetadata(json_t **metadataJSON,
+ FILE **fp,
+ const char *fn,
+ Metadata **rec,
+ CompressionType *type,
+ ArchiveVersion **version,
+ char **cTime,
+ char **note,
+ uint64_t *mdOffset,
+ Boolean *headerFlag,
+ const Boolean suppressErrorMsgs,
+ const Boolean preserveJSONRef);
+
+int STARCH_listJSONMetadata(FILE *out,
+ FILE *err,
+ const Metadata *md,
+ const CompressionType type,
+ const ArchiveVersion *av,
+ const char *cTime,
+ const char *note,
+ const Boolean headerFlag,
+ const Boolean showNewlineFlag);
+
+int STARCH_listAllChromosomes(const Metadata *md);
+
+int STARCH_listChromosome(const Metadata *md,
+ const char *chr);
+
+int STARCH_mergeMetadataWithCompressedFiles(const Metadata *md,
+ char *mdHeader);
+
+void STARCH_buildProcessIDTag(char **tag);
+
+int STARCH_readLegacyMetadata(const char *buf,
+ Metadata **rec,
+ CompressionType *type,
+ ArchiveVersion **version,
+ uint64_t *mdOffset,
+ Boolean *headerFlag,
+ const Boolean suppressErrorMsgs);
+
+char * STARCH_strnstr(const char *haystack,
+ const char *needle,
+ size_t haystackLen);
+
+ArchiveVersion * STARCH_copyArchiveVersion(const ArchiveVersion *oav);
+
+int STARCH_chromosomeInMetadataRecords(const Metadata *md,
+ const char *chr);
+
+#ifdef __cplusplus
+} // namespace starch
+#endif
+
+#endif
diff --git a/interfaces/general-headers/data/starch/starchSha1Digest.h b/interfaces/general-headers/data/starch/starchSha1Digest.h
new file mode 100644
index 0000000..10aeb06
--- /dev/null
+++ b/interfaces/general-headers/data/starch/starchSha1Digest.h
@@ -0,0 +1,149 @@
+//=========
+// Author: Alex Reynolds & Shane Neph
+// Project: starch
+// File: starchSha1Digest.h
+//=========
+
+/* Declarations of functions and data types used for SHA1 sum
+ library functions.
+ Copyright (C) 2000, 2001, 2003, 2005, 2006, 2008, 2010
+ Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the
+ Free Software Foundation; either version 3, or (at your option) any
+ later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef SHA1_H
+# define SHA1_H 1
+
+#ifdef __cplusplus
+#include <cstdio>
+#include <climits>
+#else
+#include <stdio.h>
+#include <limits.h>
+#endif
+
+/* The following contortions are an attempt to use the C preprocessor
+ to determine an unsigned integral type that is 32 bits wide. An
+ alternative approach is to use autoconf's AC_CHECK_SIZEOF macro, but
+ doing that would require that the configure script compile and *run*
+ the resulting executable. Locally running cross-compiled executables
+ is usually not possible. */
+
+#ifdef _LIBC
+# include <sys/types.h>
+typedef u_int32_t sha1_uint32;
+typedef uintptr_t sha1_uintptr;
+#else
+# define INT_MAX_32_BITS 2147483647
+
+/* If UINT_MAX isn't defined, assume it's a 32-bit type.
+ This should be valid for all systems GNU cares about because
+ that doesn't include 16-bit systems, and only modern systems
+ (that certainly have <limits.h>) have 64+-bit integral types. */
+
+# ifndef INT_MAX
+# define INT_MAX INT_MAX_32_BITS
+# endif
+
+# if INT_MAX == INT_MAX_32_BITS
+ typedef unsigned int sha1_uint32;
+# else
+# if SHRT_MAX == INT_MAX_32_BITS
+ typedef unsigned short sha1_uint32;
+# else
+# if LONG_MAX == INT_MAX_32_BITS
+ typedef unsigned long sha1_uint32;
+# else
+ /* The following line is intended to evoke an error.
+ Using #error is not portable enough. */
+ "Cannot determine unsigned 32-bit data type."
+# endif
+# endif
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Structure to save state of computation between the single steps. */
+struct sha1_ctx
+{
+ sha1_uint32 A;
+ sha1_uint32 B;
+ sha1_uint32 C;
+ sha1_uint32 D;
+ sha1_uint32 E;
+
+ sha1_uint32 total[2];
+ sha1_uint32 buflen;
+ sha1_uint32 buffer[32];
+};
+
+
+/* Initialize structure containing state of computation. */
+extern void sha1_init_ctx (struct sha1_ctx *ctx);
+
+/* Starting with the result of former calls of this function (or the
+ initialization function update the context for the next LEN bytes
+ starting at BUFFER.
+ It is necessary that LEN is a multiple of 64!!! */
+extern void sha1_process_block (const void *buffer, size_t len,
+ struct sha1_ctx *ctx);
+
+/* Starting with the result of former calls of this function (or the
+ initialization function update the context for the next LEN bytes
+ starting at BUFFER.
+ It is NOT required that LEN is a multiple of 64. */
+extern void sha1_process_bytes (const void *buffer, size_t len,
+ struct sha1_ctx *ctx);
+
+/* Process the remaining bytes in the buffer and put result from CTX
+ in first 20 bytes following RESBUF. The result is always in little
+ endian byte order, so that a byte-wise output yields to the wanted
+ ASCII representation of the message digest.
+
+ IMPORTANT: On some systems it is required that RESBUF be correctly
+ aligned for a 32 bits value. */
+extern void *sha1_finish_ctx (struct sha1_ctx *ctx, void *resbuf);
+
+
+/* Put result from CTX in first 20 bytes following RESBUF. The result is
+ always in little endian byte order, so that a byte-wise output yields
+ to the wanted ASCII representation of the message digest.
+
+ IMPORTANT: On some systems it is required that RESBUF is correctly
+ aligned for a 32 bits value. */
+extern void *sha1_read_ctx (const struct sha1_ctx *ctx, void *resbuf);
+
+
+/* Compute SHA1 message digest for bytes read from STREAM. The
+ resulting message digest number will be written into the 20 bytes
+ beginning at RESBLOCK. */
+extern int sha1_stream (FILE *stream, void *resblock);
+
+/* Compute SHA1 message digest for LEN bytes beginning at BUFFER. The
+ result is always in little endian byte order, so that a byte-wise
+ output yields to the wanted ASCII representation of the message
+ digest. */
+extern void *sha1_buffer (const char *buffer, size_t len, void *resblock);
+
+extern void STARCH_SHA1_All(const unsigned char *input, size_t inputLength, unsigned char output[20]);
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif
diff --git a/interfaces/general-headers/data/starch/unstarchHelpers.h b/interfaces/general-headers/data/starch/unstarchHelpers.h
new file mode 100644
index 0000000..97222d2
--- /dev/null
+++ b/interfaces/general-headers/data/starch/unstarchHelpers.h
@@ -0,0 +1,258 @@
+//=========
+// Author: Alex Reynolds & Shane Neph
+// Project: starch
+// File: unstarchHelpers.h
+//=========
+
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef UNSTARCH_HELPERS_H
+#define UNSTARCH_HELPERS_H
+
+#include <bzlib.h>
+
+#include "data/starch/starchMetadataHelpers.h"
+#include "suite/BEDOPS.Constants.hpp"
+
+#ifdef __cplusplus
+ namespace starch {
+ using namespace Bed;
+#endif
+
+#define UNSTARCH_COMPRESSED_BUFFER_MAX_LENGTH 8192
+#define UNSTARCH_UNCOMPRESSED_BUFFER_MAX_LENGTH 2097152
+#define UNSTARCH_BUFFER_MAX_LENGTH INT_TOKEN_REST_MAX_LENGTH + 1
+#define UNSTARCH_EXTENSION_BZ2 "bz2"
+#define UNSTARCH_EXTENSION_GZ "gz"
+#define UNSTARCH_RADIX 10
+#define UNSTARCH_FIRST_TOKEN_MAX_LENGTH INT_TOKEN_CHR_MAX_LENGTH + INT_TOKEN_ID_MAX_LENGTH + 1
+#define UNSTARCH_SECOND_TOKEN_MAX_LENGTH INT_TOKEN_REST_MAX_LENGTH + 1
+
+#define UNSTARCH_FATAL_ERROR -1
+#define UNSTARCH_HELP_ERROR 10
+#define UNSTARCH_VERSION_ERROR 11
+#define UNSTARCH_ARCHIVE_VERSION_ERROR 12
+#define UNSTARCH_ELEMENT_COUNT_CHR_ERROR 13
+#define UNSTARCH_ELEMENT_COUNT_ALL_ERROR 14
+#define UNSTARCH_LIST_CHROMOSOMES_ERROR 15
+#define UNSTARCH_BASES_COUNT_CHR_ERROR 16
+#define UNSTARCH_BASES_COUNT_ALL_ERROR 17
+#define UNSTARCH_BASES_UNIQUE_COUNT_CHR_ERROR 18
+#define UNSTARCH_BASES_UNIQUE_COUNT_ALL_ERROR 19
+#define UNSTARCH_ARCHIVE_CREATION_TIMESTAMP_ERROR 20
+#define UNSTARCH_ARCHIVE_NOTE_ERROR 21
+#define UNSTARCH_ARCHIVE_COMPRESSION_TYPE_ERROR 22
+#define UNSTARCH_METADATA_SHA1_SIGNATURE_ERROR 23
+#define UNSTARCH_ELEMENT_DUPLICATE_CHR_INT_ERROR 24
+#define UNSTARCH_ELEMENT_DUPLICATE_ALL_INT_ERROR 25
+#define UNSTARCH_ELEMENT_DUPLICATE_CHR_STR_ERROR 26
+#define UNSTARCH_ELEMENT_DUPLICATE_ALL_STR_ERROR 27
+#define UNSTARCH_ELEMENT_NESTED_CHR_INT_ERROR 28
+#define UNSTARCH_ELEMENT_NESTED_ALL_INT_ERROR 29
+#define UNSTARCH_ELEMENT_NESTED_CHR_STR_ERROR 30
+#define UNSTARCH_ELEMENT_NESTED_ALL_STR_ERROR 31
+#define UNSTARCH_IS_STARCH_ARCHIVE_ERROR 32
+
+int UNSTARCH_reverseTransformInput(const char *chr,
+ const unsigned char *str,
+ char delim,
+ SignedCoordType *start,
+ SignedCoordType *pLength,
+ SignedCoordType *lastEnd,
+ char elemTok1[],
+ char elemTok2[],
+ FILE *outFp);
+
+int UNSTARCH_sReverseTransformInput(const char *chr,
+ const unsigned char *str,
+ char delim,
+ SignedCoordType *start,
+ SignedCoordType *pLength,
+ SignedCoordType *lastEnd,
+ char *elemTok1,
+ char *elemTok2,
+ char **currentChr,
+ size_t *currentChrLen,
+ SignedCoordType *currentStart,
+ SignedCoordType *currentStop,
+ char **currentRemainder,
+ size_t *currentRemainderLen);
+
+int UNSTARCH_reverseTransformIgnoringHeaderedInput(const char *chr,
+ const unsigned char *str,
+ char delim,
+ SignedCoordType *start,
+ SignedCoordType *pLength,
+ SignedCoordType *lastEnd,
+ char elemTok1[],
+ char elemTok2[],
+ FILE *outFp);
+
+int UNSTARCH_sReverseTransformIgnoringHeaderedInput(const char *chr,
+ const unsigned char *str,
+ char delim,
+ SignedCoordType *start,
+ SignedCoordType *pLength,
+ SignedCoordType *lastEnd,
+ char *elemTok1,
+ char *elemTok2,
+ char **currentChr,
+ size_t *currentChrLen,
+ SignedCoordType *currentStart,
+ SignedCoordType *currentLong,
+ char **currentRemainder,
+ size_t *currentRemainderLen);
+
+int UNSTARCH_reverseTransformHeaderlessInput(const char *chr,
+ const unsigned char *str,
+ char delim,
+ SignedCoordType *start,
+ SignedCoordType *pLength,
+ SignedCoordType *lastEnd,
+ char elemTok1[],
+ char elemTok2[],
+ FILE *outFp);
+
+int UNSTARCH_extractRawLine(const char *chr,
+ const unsigned char *str,
+ char delim,
+ SignedCoordType *start,
+ SignedCoordType *pLength,
+ SignedCoordType *lastEnd,
+ char *elemTok1,
+ char *elemTok2,
+ char **currentChr,
+ size_t *currentChrLen,
+ SignedCoordType *currentStart,
+ SignedCoordType *currentLong,
+ char **currentRemainder,
+ size_t *currentRemainderLen);
+
+int UNSTARCH_sReverseTransformHeaderlessInput(const char *chr,
+ const unsigned char *str,
+ char delim,
+ SignedCoordType *start,
+ SignedCoordType *pLength,
+ SignedCoordType *lastEnd,
+ char *elemTok1,
+ char *elemTok2,
+ char **currentChr,
+ size_t *currentChrLen,
+ SignedCoordType *currentStart,
+ SignedCoordType *currentLong,
+ char **currentRemainder,
+ size_t *currentRemainderLen);
+
+int UNSTARCH_createInverseTransformTokens(const unsigned char *s,
+ char delim,
+ char elemTok1[],
+ char elemTok2[]);
+
+int UNSTARCH_extractDataWithBzip2(FILE **inFp,
+ FILE *outFp,
+ const char *whichChr,
+ const Metadata *md,
+ const uint64_t mdOffset,
+ const Boolean headerFlag);
+
+int UNSTARCH_extractDataWithGzip(FILE **inFp,
+ FILE *outFp,
+ const char *whichChr,
+ const Metadata *md,
+ const uint64_t mdOffset,
+ const Boolean headerFlag);
+
+char * UNSTARCH_strnstr(const char *haystack,
+ const char *needle,
+ size_t haystackLen);
+
+char * UNSTARCH_strndup(const char *s,
+ size_t n);
+
+void UNSTARCH_bzReadLine(BZFILE *input,
+ unsigned char **output);
+
+LineCountType UNSTARCH_lineCountForChromosome(const Metadata *md,
+ const char *chr);
+
+void UNSTARCH_printLineCountForChromosome(const Metadata *md,
+ const char *chr);
+
+void UNSTARCH_printLineCountForAllChromosomes(const Metadata *md);
+
+BaseCountType UNSTARCH_nonUniqueBaseCountForChromosome(const Metadata *md,
+ const char *chr);
+
+void UNSTARCH_printNonUniqueBaseCountForChromosome(const Metadata *md,
+ const char *chr);
+
+void UNSTARCH_printNonUniqueBaseCountForAllChromosomes(const Metadata *md);
+
+BaseCountType UNSTARCH_uniqueBaseCountForChromosome(const Metadata *md,
+ const char *chr);
+
+void UNSTARCH_printUniqueBaseCountForChromosome(const Metadata *md,
+ const char *chr);
+
+void UNSTARCH_printUniqueBaseCountForAllChromosomes(const Metadata *md);
+
+Boolean UNSTARCH_duplicateElementExistsForChromosome(const Metadata *md,
+ const char *chr);
+
+void UNSTARCH_printDuplicateElementExistsStringForChromosome(const Metadata *md,
+ const char *chr);
+
+void UNSTARCH_printDuplicateElementExistsStringsForAllChromosomes(const Metadata *md);
+
+void UNSTARCH_printDuplicateElementExistsIntegerForChromosome(const Metadata *md,
+ const char *chr);
+
+void UNSTARCH_printDuplicateElementExistsIntegersForAllChromosomes(const Metadata *md);
+
+Boolean UNSTARCH_nestedElementExistsForChromosome(const Metadata *md,
+ const char *chr);
+
+void UNSTARCH_printNestedElementExistsStringForChromosome(const Metadata *md,
+ const char *chr);
+
+void UNSTARCH_printNestedElementExistsStringsForAllChromosomes(const Metadata *md);
+
+void UNSTARCH_printNestedElementExistsIntegerForChromosome(const Metadata *md,
+ const char *chr);
+
+void UNSTARCH_printNestedElementExistsIntegersForAllChromosomes(const Metadata *md);
+
+const char * UNSTARCH_booleanToString(const Boolean val);
+
+int UNSTARCH_reverseTransformCoordinates(const LineCountType lineIdx,
+ SignedCoordType *lastPosition,
+ SignedCoordType *lcDiff,
+ SignedCoordType *currStart,
+ SignedCoordType *currStop,
+ char **currRemainder,
+ unsigned char *lineBuf,
+ int64_t *nLineBuf,
+ int64_t *nLineBufPos);
+
+#ifdef __cplusplus
+} // namespace starch
+#endif
+
+#endif
diff --git a/interfaces/general-headers/suite/BEDOPS.Constants.hpp b/interfaces/general-headers/suite/BEDOPS.Constants.hpp
new file mode 100644
index 0000000..c3fcb84
--- /dev/null
+++ b/interfaces/general-headers/suite/BEDOPS.Constants.hpp
@@ -0,0 +1,91 @@
+/*
+ FILE: BEDOPS.Constants.hpp
+ AUTHOR: Shane Neph & Alex Reynolds
+ CREATE DATE: Thu Sep 13 13:19:15 PDT 2012
+*/
+
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef CONSTANTS_BEDOPS_H
+#define CONSTANTS_BEDOPS_H
+
+
+// Don't use these directly; they just synchronize C and C++'s uses below
+// - just want to utilize C++'s type system explicitly
+#define INT_TOKEN_CHR_MAX_LENGTH 127
+#define INT_TOKEN_ID_MAX_LENGTH 16383
+#define INT_TOKEN_REST_MAX_LENGTH 8*131072
+#define INT_MAX_DEC_INTEGERS 12
+#define INT_MAX_COORD_VALUE 999999999999 /* MAX_DEC_INTEGERS decimal integers; we assume >= 64-bit systems */
+#define INT_TOKENS_MAX_LENGTH (TOKEN_CHR_MAX_LENGTH + TOKEN_ID_MAX_LENGTH + TOKEN_REST_MAX_LENGTH + 2*MAX_DEC_INTEGERS)
+#define INT_TOKENS_HEADER_MAX_LENGTH TOKENS_MAX_LENGTH
+#define INT_TOKEN_CHR_FIELD_INDEX 0
+#define INT_TOKEN_START_FIELD_INDEX 1
+#define INT_TOKEN_STOP_FIELD_INDEX 2
+
+
+#ifdef __cplusplus
+
+#include <cinttypes>
+namespace Bed {
+ // Use these typedef's in applications
+ typedef uint64_t CoordType;
+ typedef int64_t SignedCoordType;
+ typedef CoordType LineCountType;
+ typedef CoordType BaseCountType;
+
+ static_assert(sizeof(SignedCoordType) >= sizeof(INT_MAX_COORD_VALUE), "INT_MAX_COORD_VALUE is too big!"); // expected-warning {{static_assert declarations are incompatible with C++98}}
+
+ const unsigned long TOKEN_CHR_MAX_LENGTH = INT_TOKEN_CHR_MAX_LENGTH;
+ const unsigned long TOKEN_ID_MAX_LENGTH = INT_TOKEN_ID_MAX_LENGTH;
+ const unsigned long TOKEN_REST_MAX_LENGTH = INT_TOKEN_REST_MAX_LENGTH;
+ const unsigned long MAX_DEC_INTEGERS = INT_MAX_DEC_INTEGERS;
+ const SignedCoordType MAX_COORD_VALUE = INT_MAX_COORD_VALUE;
+ const unsigned long TOKENS_MAX_LENGTH = INT_TOKENS_MAX_LENGTH;
+ const unsigned long TOKENS_HEADER_MAX_LENGTH = INT_TOKENS_HEADER_MAX_LENGTH;
+ const unsigned long TOKEN_CHR_FIELD_INDEX = INT_TOKEN_CHR_FIELD_INDEX;
+ const unsigned long TOKEN_START_FIELD_INDEX = INT_TOKEN_START_FIELD_INDEX;
+ const unsigned long TOKEN_STOP_FIELD_INDEX = INT_TOKEN_STOP_FIELD_INDEX;
+} // namespace Bed
+
+#else
+
+#include <inttypes.h>
+
+ // Use these typedef's in applications
+ typedef uint64_t CoordType;
+ typedef int64_t SignedCoordType;
+ typedef CoordType LineCountType;
+ typedef CoordType BaseCountType;
+
+#define TOKEN_CHR_MAX_LENGTH INT_TOKEN_CHR_MAX_LENGTH
+#define TOKEN_ID_MAX_LENGTH INT_TOKEN_ID_MAX_LENGTH
+#define TOKEN_REST_MAX_LENGTH INT_TOKEN_REST_MAX_LENGTH
+#define MAX_DEC_INTEGERS INT_MAX_DEC_INTEGERS
+#define MAX_COORD_VALUE INT_MAX_COORD_VALUE
+#define TOKENS_MAX_LENGTH INT_TOKENS_MAX_LENGTH
+#define TOKENS_HEADER_MAX_LENGTH INT_TOKENS_HEADER_MAX_LENGTH
+#define TOKEN_CHR_FIELD_INDEX INT_TOKEN_CHR_FIELD_INDEX
+#define TOKEN_START_FIELD_INDEX INT_TOKEN_START_FIELD_INDEX
+#define TOKEN_STOP_FIELD_INDEX INT_TOKEN_STOP_FIELD_INDEX
+
+#endif
+
+#endif // CONSTANTS_BEDOPS_H
diff --git a/interfaces/general-headers/suite/BEDOPS.Version.hpp b/interfaces/general-headers/suite/BEDOPS.Version.hpp
new file mode 100644
index 0000000..183f16c
--- /dev/null
+++ b/interfaces/general-headers/suite/BEDOPS.Version.hpp
@@ -0,0 +1,48 @@
+/*
+ FILE: BEDOPS.Version.hpp
+ AUTHOR: Shane Neph & Alex Reynolds
+ CREATE DATE: Thu Jun 2 13:21:05 PDT 2011
+ PROJECT: BEDOPS suite
+ ID: $Id:$
+*/
+
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+// Macro Guard
+#ifndef REVISION_HISTORY_BEDOPS_H
+#define REVISION_HISTORY_BEDOPS_H
+
+#ifdef __cplusplus
+namespace BEDOPS {
+#endif
+
+ static const char* revision() {
+ return("2.4.20");
+ }
+
+ static const char* citation() {
+ return("http://bioinformatics.oxfordjournals.org/content/28/14/1919.abstract");
+ }
+
+#ifdef __cplusplus
+} // namespace BEDOPS
+#endif
+
+#endif // REVISION_HISTORY_BEDOPS_H
diff --git a/interfaces/general-headers/utility/AllocateIterator.hpp b/interfaces/general-headers/utility/AllocateIterator.hpp
new file mode 100644
index 0000000..27a257f
--- /dev/null
+++ b/interfaces/general-headers/utility/AllocateIterator.hpp
@@ -0,0 +1,101 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Tue Aug 28 09:36:24 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef SPECIAL_ALLOCATE_NEW_ITERATOR_HPP
+#define SPECIAL_ALLOCATE_NEW_ITERATOR_HPP
+
+#include <iterator>
+#include <cstddef>
+#include <cstdio>
+
+namespace Ext {
+
+ template <class _Tp>
+ class allocate_iterator;
+
+ template <class _Tp>
+ class allocate_iterator<_Tp*> {
+
+ public:
+ typedef std::forward_iterator_tag iterator_category;
+ typedef _Tp* value_type;
+ typedef std::ptrdiff_t difference_type;
+ typedef _Tp** pointer;
+ typedef _Tp*& reference;
+
+ allocate_iterator() : _M_ok(false), fp_(NULL), _M_value(0) {}
+ allocate_iterator(FILE* fp) /* this ASSUMES fp is open and meaningful */
+ : _M_ok(fp && !std::feof(fp)), fp_(fp), _M_value(_M_ok ? new _Tp(fp) : 0)
+ {
+ _M_ok = (_M_ok && fp && !std::feof(fp));
+ if ( !_M_ok && fp_ )
+ fp_ = NULL;
+ }
+
+ reference operator*() { return _M_value; }
+ pointer operator->() { return &(operator*()); }
+
+ allocate_iterator& operator++() {
+ if ( _M_ok ) {
+ _M_value = (new _Tp(fp_));
+ _M_ok = !std::feof(fp_);
+ }
+ return *this;
+ }
+
+ allocate_iterator operator++(int) {
+ allocate_iterator __tmp = *this;
+ if ( _M_ok ) {
+ _M_value = (new _Tp(fp_));
+ _M_ok = !std::feof(fp_);
+ }
+ return __tmp;
+ }
+
+ bool _M_equal(const allocate_iterator& __x) const
+ { return ( (_M_ok == __x._M_ok) && (!_M_ok || fp_ == __x.fp_) ); }
+
+
+ private:
+ bool _M_ok;
+ FILE* fp_;
+ _Tp* _M_value;
+ };
+
+ template <class _Tp>
+ inline bool
+ operator==(const allocate_iterator<_Tp>& __x,
+ const allocate_iterator<_Tp>& __y) {
+ return __x._M_equal(__y);
+ }
+
+ template <class _Tp>
+ inline bool
+ operator!=(const allocate_iterator<_Tp>& __x,
+ const allocate_iterator<_Tp>& __y) {
+ return !__x._M_equal(__y);
+ }
+
+} // namespace Ext
+
+#endif // SPECIAL_ALLOCATE_NEW_ITERATOR_HPP
diff --git a/interfaces/general-headers/utility/Assertion.hpp b/interfaces/general-headers/utility/Assertion.hpp
new file mode 100755
index 0000000..979ed05
--- /dev/null
+++ b/interfaces/general-headers/utility/Assertion.hpp
@@ -0,0 +1,54 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Tue Aug 7 09:12:26 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef ASSERTIONMECHANISM_H
+#define ASSERTIONMECHANISM_H
+
+#include <string>
+
+namespace Ext {
+
+ //==============================================================================
+ // Assert<ExcType>(bool, error)
+ // A simple runtime assertion mechanism. When assertion fails, throw ExcType.
+ //==============================================================================
+ template <typename ExcType>
+ struct Assert {
+ /* NOTE: not default constructable */
+
+ // Constructor
+ Assert(bool b, const std::string& msg) {
+ if ( b ) return;
+ ExcType e(msg);
+ throw(e);
+ }
+
+ // Constructor overload
+ Assert(bool b, const std::string& msg1, const std::string& msg2) {
+ Assert<ExcType>(b, msg1 + "\n" + msg2); // Call overload
+ }
+ };
+
+} // namespace Ext
+
+#endif // ASSERTIONMECHANISM_H
diff --git a/interfaces/general-headers/utility/ByLine.hpp b/interfaces/general-headers/utility/ByLine.hpp
new file mode 100755
index 0000000..ec0b65f
--- /dev/null
+++ b/interfaces/general-headers/utility/ByLine.hpp
@@ -0,0 +1,46 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Sun Aug 19 19:31:30 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef BYLINE_H
+#define BYLINE_H
+
+#include <istream>
+#include <string>
+
+//==============================================================================
+// ByLine structure:
+// Simple extension of the std::string class to allow reading input by lines
+// rather than by whitespace by default.
+//==============================================================================
+
+namespace Ext {
+ struct ByLine : public std::string {
+ friend std::istream& operator>>(std::istream& is, ByLine& b) {
+ std::getline(is, b);
+ return(is);
+ }
+ };
+} // namespace Ext
+
+#endif // BYLINE_H
+
diff --git a/interfaces/general-headers/utility/Exception.hpp b/interfaces/general-headers/utility/Exception.hpp
new file mode 100755
index 0000000..020ae16
--- /dev/null
+++ b/interfaces/general-headers/utility/Exception.hpp
@@ -0,0 +1,89 @@
+/*
+ Author: Shane Neph, Scott Kuehn
+ Date: Fri Aug 10 15:01:39 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef EXCEPTIONTEMPLATE_H
+#define EXCEPTIONTEMPLATE_H
+
+#include <exception>
+#include <string>
+
+namespace Ext {
+
+ template <typename ExceptionType, int ErrorID>
+ struct Exception
+ : public ExceptionType
+ {
+ enum { Value = ErrorID };
+ explicit Exception(const std::string& msg) : msg_(msg) { /* */ }
+ Exception(const std::string& msg1, const std::string& msg2) : msg_(msg1 + "\n" + msg2) { /* */ }
+ Exception(const Exception& e) : msg_(e.msg_) { /* */ }
+ virtual ~Exception() noexcept { /* */ }
+ virtual const char* what() const noexcept { return msg_.c_str(); }
+ protected:
+ Exception() { }
+ std::string msg_;
+ };
+
+ // Set of common application errors
+ enum MajorErrors
+ {
+ FileErrorNum,
+ UserErrorNum,
+ DataErrorNum,
+ ProgramErrorNum
+ };
+ enum FileErrorNums
+ {
+ InvalidFileErrorNum,
+ MissingFileErrorNum
+ };
+ enum UserErrorNums
+ {
+ InvalidOperationErrorNum
+ };
+ enum DataErrorNums { };
+ enum ProgramErrorNums
+ {
+ ParameterErrorNum,
+ LogicErrorNum,
+ ArgumentErrorNum
+ };
+
+ typedef Exception<std::exception, FileErrorNum> FileError;
+ typedef Exception<FileError, InvalidFileErrorNum> InvalidFile;
+ typedef Exception<FileError, MissingFileErrorNum> MissingFile;
+
+ typedef Exception<std::exception, UserErrorNum> UserError;
+ typedef Exception<UserError, InvalidOperationErrorNum> InvalidOperationError;
+
+ typedef Exception<std::exception, DataErrorNum> DataError;
+
+ typedef Exception<std::exception, ProgramErrorNum> ProgramError;
+ typedef Exception<ProgramError, ParameterErrorNum> ParameterError;
+ typedef Exception<ProgramError, LogicErrorNum> LogicError;
+ typedef Exception<ProgramError, ArgumentErrorNum> ArgumentError;
+
+} // namespace Ext
+
+#endif // EXCEPTIONTEMPLATE_H
+
diff --git a/interfaces/general-headers/utility/FPWrap.hpp b/interfaces/general-headers/utility/FPWrap.hpp
new file mode 100644
index 0000000..b431110
--- /dev/null
+++ b/interfaces/general-headers/utility/FPWrap.hpp
@@ -0,0 +1,74 @@
+/*
+ Author : Shane Neph & Scott Kuehn
+ Date : Sat Aug 25 01:22:03 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef FP_WRAPPER_HPP
+#define FP_WRAPPER_HPP
+
+#include <cstddef>
+#include <cstdio>
+#include <string>
+
+#include "utility/Assertion.hpp"
+
+namespace Ext {
+
+ template <typename IOError>
+ struct FPWrap {
+ FPWrap() : fp_(NULL)
+ { /* */ }
+
+ explicit FPWrap(const std::string& file, const std::string& mode = "r")
+ : fp_( (file == "-") ? stdin : std::fopen(file.c_str(), mode.c_str()) ), name_(file) {
+ Assert<IOError>(fp_ && fp_ != NULL, "Unable to find file: " + file);
+ }
+
+ inline operator FILE*()
+ { return fp_; }
+
+ inline void Open(const std::string& file, const std::string& mode = "r") {
+ if ( fp_ && fp_ != NULL )
+ Close(); // file already open -> close it
+ if ( file == "-" )
+ fp_ = stdin;
+ else
+ fp_ = std::fopen(file.c_str(), mode.c_str());
+ Assert<IOError>(fp_ && fp_ != NULL, "Unable to find file: " + file);
+ }
+
+ inline void Close()
+ { if ( fp_ && fp_ != NULL ) std::fclose(fp_); fp_ = NULL; }
+
+ inline const std::string& Name() const { return name_; }
+
+ ~FPWrap()
+ { if ( fp_ && fp_ != NULL ) std::fclose(fp_); }
+
+ private:
+ FILE* fp_;
+ std::string name_;
+ };
+
+} // namespace Ext
+
+
+#endif // FP_WRAPPER_HPP
diff --git a/interfaces/general-headers/utility/Factory.hpp b/interfaces/general-headers/utility/Factory.hpp
new file mode 100644
index 0000000..3fa0a33
--- /dev/null
+++ b/interfaces/general-headers/utility/Factory.hpp
@@ -0,0 +1,57 @@
+/*
+ Author: Scott Kuehn, Shane Neph
+ Date: Tue Aug 28 15:31:19 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#include <map>
+#include <string>
+
+namespace Ext {
+ template <
+ typename ObjType,
+ typename IdentifierType,
+ typename ObjCreator
+ >
+ struct Factory {
+
+ ObjType* create(const IdentifierType& id) {
+ typename CallbackRegistry::const_iterator cbi = registry_.find(id);
+ return (cbi != registry_.end()) ? cbi->second : 0;
+ }
+
+ bool registration(const IdentifierType& id, ObjCreator createFunc) {
+ return registry_.insert(std::make_pair(id, createFunc)).second;
+ }
+
+ bool cancelation(const IdentifierType& id) {
+ return registry_.erase(id) == 1;
+ }
+
+ bool isRegistered(const IdentifierType& id) {
+ return registry_.count(id) == 1;
+ }
+
+ protected:
+ typedef std::map< IdentifierType, ObjCreator > CallbackRegistry;
+ CallbackRegistry registry_;
+ };
+
+} // namespace Ext
diff --git a/interfaces/general-headers/utility/Formats.hpp b/interfaces/general-headers/utility/Formats.hpp
new file mode 100644
index 0000000..3149d06
--- /dev/null
+++ b/interfaces/general-headers/utility/Formats.hpp
@@ -0,0 +1,80 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Sun Aug 19 11:39:47 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef SIMPLE_C_FORMATS_H
+#define SIMPLE_C_FORMATS_H
+
+#include <cinttypes>
+#include <cstdio>
+#include <type_traits>
+
+namespace Formats {
+ constexpr const char* Format(const char*) { return "%s"; }
+ constexpr const char* Format(char) { return "%c"; }
+ constexpr const char* Format(double) { return "%lf"; }
+ constexpr const char* Format(float) { return "%f"; }
+ constexpr const char* Format(int) { return "%d"; }
+ constexpr const char* Format(unsigned int) { return "%u"; }
+ constexpr const char* Format(long int) { return "%ld"; }
+ constexpr const char* Format(long long int) { return "%lld"; } /* msft doesn't conform to this standard */
+ constexpr const char* Format(short) { return "%hd"; }
+ constexpr const char* Format(unsigned short) { return "%hu"; }
+ inline const char* Format(double, int precision, bool scientific) {
+ static char prec[20];
+ if ( scientific )
+ std::sprintf(prec, "%%.%de", precision);
+ else
+ std::sprintf(prec, "%%.%dlf", precision);
+ return(prec);
+ }
+
+ namespace Details {
+ template <typename T, typename U>
+ struct check {
+ typedef typename std::remove_reference<typename std::remove_cv<T>::type>::type type;
+
+ static const auto value = std::is_same<type, U>::value;
+ static const auto not_uint64_t = !std::is_same<type, uint64_t>::value;
+ };
+ } // Details
+
+ // Overloaded functions for uint64_t and potential underlying types
+ template <typename T>
+ constexpr typename std::enable_if<Details::check<T, uint64_t>::value, char const*>::type
+ Format(T) { return "%" PRIu64; }
+
+ template <typename T>
+ constexpr typename std::enable_if<Details::check<T, unsigned long long int>::value &&
+ Details::check<T, unsigned long long int>::not_uint64_t, char const*>::type
+ Format(T) { return "%llu"; } /* msft doesn't conform to this standard */
+
+ template <typename T>
+ constexpr typename std::enable_if<Details::check<T, unsigned long int>::value &&
+ Details::check<T, unsigned long int>::not_uint64_t &&
+ !Details::check<T, unsigned int>::value,
+ char const*>::type
+ Format(T) { return "%lu"; }
+
+} // namespace Formats
+
+#endif // SIMPLE_C_FORMATS_H
diff --git a/interfaces/general-headers/utility/IteratorPair.hpp b/interfaces/general-headers/utility/IteratorPair.hpp
new file mode 100644
index 0000000..4102a8e
--- /dev/null
+++ b/interfaces/general-headers/utility/IteratorPair.hpp
@@ -0,0 +1,164 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Tue Aug 28 09:36:24 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef PAIRED_ITERATOR_WRAP_HPP
+#define PAIRED_ITERATOR_WRAP_HPP
+
+#include <cstddef>
+#include <iterator>
+#include <utility>
+
+namespace Ext {
+
+ namespace details {
+ template <class Iter>
+ struct number_iter; // undefined, including input/output_iterator_tag
+
+ template <>
+ struct number_iter<std::forward_iterator_tag> {
+ enum { value = 2 };
+ };
+
+ template <>
+ struct number_iter<std::bidirectional_iterator_tag> {
+ enum { value = 3 };
+ };
+
+ template <>
+ struct number_iter<std::random_access_iterator_tag> {
+ enum { value = 4 };
+ };
+
+ template <int I>
+ struct get_category; // undefined
+
+ template <>
+ struct get_category< number_iter<std::forward_iterator_tag>::value > {
+ typedef std::forward_iterator_tag iterator_category;
+ };
+
+ template <>
+ struct get_category< number_iter<std::bidirectional_iterator_tag>::value > {
+ typedef std::bidirectional_iterator_tag iterator_category;
+ };
+
+ template <>
+ struct get_category< number_iter<std::random_access_iterator_tag>::value > {
+ typedef std::random_access_iterator_tag iterator_category;
+ };
+
+ template <typename IterCat1, typename IterCat2>
+ struct lesser_category {
+ enum { value = (number_iter<IterCat1>::value <= number_iter<IterCat2>::value) ?
+ number_iter<IterCat1>::value :
+ number_iter<IterCat2>::value };
+ typedef typename get_category<value>::iterator_category iterator_category;
+ };
+
+ template <typename IterCat1, typename IterCat2>
+ struct greater_category {
+ enum { value = (number_iter<IterCat1>::value >= number_iter<IterCat2>::value) ?
+ number_iter<IterCat1>::value :
+ number_iter<IterCat2>::value };
+ typedef typename get_category<value>::iterator_category iterator_category;
+ };
+
+ } // details
+
+
+
+
+ //=================
+ // paired_iterator
+ //=================
+ template <typename IterType1, typename IterType2>
+ struct paired_iterator {
+
+ typedef typename details::lesser_category<typename IterType1::iterator_category,
+ typename IterType2::iterator_category>::iterator_category iterator_category;
+ typedef std::pair<IterType1, IterType2> value_type;
+ typedef std::ptrdiff_t difference_type;
+ typedef value_type* pointer;
+ typedef value_type& reference;
+
+
+
+ paired_iterator(IterType1 iter1, IterType2 iter2)
+ : piter_(iter1, iter2)
+ { /* */ }
+
+ paired_iterator(const std::pair<IterType1, IterType2>& p)
+ : piter_(p.first, p.second)
+ { /* */ }
+
+ paired_iterator()
+ : piter_()
+ { /* */ }
+
+ reference operator*() { return piter_; }
+ pointer operator->() { return &(operator*()); }
+
+ paired_iterator& operator++() {
+ ++piter_.first, ++piter_.second;
+ return(*this);
+ }
+
+ paired_iterator operator++(int) {
+ paired_iterator p = *this;
+ ++piter_.first, ++piter_.second;
+ return(p);
+ }
+
+ IterType1 iter1() const {
+ return(piter_.first);
+ }
+
+ IterType2 iter2() const {
+ return(piter_.second);
+ }
+
+ IterType1 iter1() {
+ return(piter_.first);
+ }
+
+ IterType2 iter2() {
+ return(piter_.second);
+ }
+
+ template <typename I1, typename I2>
+ friend bool operator==(const paired_iterator<I1, I2>& a, const paired_iterator<I1, I2>& b) {
+ return(a.piter_.first == b.piter_.first && a.piter_.second == b.piter_.second);
+ }
+
+ template <typename I1, typename I2>
+ friend bool operator!=(const paired_iterator<I1, I2>& a, const paired_iterator<I1, I2>& b) {
+ return(!(a == b));
+ }
+
+ private:
+ std::pair<IterType1, IterType2> piter_;
+ };
+
+} // namespace Ext
+
+#endif // PAIRED_ITERATOR_WRAP_HPP
diff --git a/interfaces/general-headers/utility/OrderCompare.hpp b/interfaces/general-headers/utility/OrderCompare.hpp
new file mode 100644
index 0000000..798cf77
--- /dev/null
+++ b/interfaces/general-headers/utility/OrderCompare.hpp
@@ -0,0 +1,52 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Sun Aug 19 19:01:10 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef ORDERING_COMPARISONS_H
+#define ORDERING_COMPARISONS_H
+
+namespace Ordering {
+
+ // function objects for comparing values, then addresses
+ template <typename T1, typename T2=T1>
+ struct CompValueThenAddressLesser
+ : public std::binary_function<T1 const*, T2 const*, bool> {
+ inline bool operator()(T1 const* t1, T2 const* t2) const {
+ if ( *t1 != *t2 )
+ return(*t1 < *t2);
+ return(t1 < t2);
+ }
+ };
+
+ template <typename T1, typename T2=T1>
+ struct CompValueThenAddressGreater
+ : public std::binary_function<T1 const*, T2 const*, bool> {
+ inline bool operator()(T1 const* t1, T2 const* t2) const {
+ if ( *t1 != *t2 )
+ return(*t1 > *t2);
+ return(t1 > t2);
+ }
+ };
+
+} // namespace Ordering
+
+#endif // ORDERING_COMPARISONS_H
diff --git a/interfaces/general-headers/utility/PrintTypes.hpp b/interfaces/general-headers/utility/PrintTypes.hpp
new file mode 100644
index 0000000..e469d57
--- /dev/null
+++ b/interfaces/general-headers/utility/PrintTypes.hpp
@@ -0,0 +1,116 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Wed Sep 5 11:16:29 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef SIMPLE_PRINT_FORMATS_H
+#define SIMPLE_PRINT_FORMATS_H
+
+#include <cstdio>
+#include <string>
+#include <type_traits>
+
+#include "utility/Formats.hpp"
+
+namespace PrintTypes {
+
+ namespace Details {
+ template <typename T>
+ struct check {
+ static const bool value =
+ std::is_arithmetic<T>::value ||
+ std::is_same<typename std::remove_cv<T>::type, char*>::value ||
+ std::is_same<typename std::remove_cv<T>::type, char const*>::value;
+ };
+ }
+
+ template <typename T>
+ extern typename std::enable_if<Details::check<T>::value>::type
+ Print(T t) {
+ static std::string f = Formats::Format(t);
+ static char const* format = f.c_str();
+ std::printf(format, t);
+ }
+
+ template <typename T>
+ extern typename std::enable_if<Details::check<T>::value>::type
+ Println(T t) {
+ static std::string end = Formats::Format(t) + std::string("\n");
+ static char const* format = end.c_str();
+ std::printf(format, t);
+ }
+
+ template <typename T>
+ extern typename std::enable_if<std::is_arithmetic<T>::value>::type
+ Print(T t, int precision, bool scientific) {
+ std::string f = Formats::Format(t, precision, scientific);
+ char const* format = f.c_str();
+ std::printf(format, t);
+ }
+
+ template <typename T>
+ extern typename std::enable_if<std::is_arithmetic<T>::value>::type
+ Println(T t, int precision, bool scientific) {
+ std::string end = Formats::Format(t, precision, scientific) + std::string("\n");
+ char const* format = end.c_str();
+ std::printf(format, t);
+ }
+
+ template <typename T>
+ extern typename std::enable_if<Details::check<T>::value>::type
+ Print(FILE* out, T t) {
+ static std::string f = Formats::Format(t);
+ static char const* format = f.c_str();
+ std::fprintf(out, format, t);
+ }
+
+ template <typename T>
+ extern typename std::enable_if<Details::check<T>::value>::type
+ Println(FILE* out, T t) {
+ static std::string end = Formats::Format(t) + std::string("\n");
+ static char const* format = end.c_str();
+ std::fprintf(out, format, t);
+ }
+
+
+ template <typename T>
+ extern typename std::enable_if<!Details::check<T>::value>::type
+ Print(const T& t)
+ { t.print(); }
+
+ template <typename T>
+ extern typename std::enable_if<!Details::check<T>::value>::type
+ Println(const T& t)
+ { t.println(); }
+
+ template <typename T>
+ extern typename std::enable_if<!Details::check<T>::value>::type
+ Print(FILE* out, const T& t)
+ { t.print(out); }
+
+ template <typename T>
+ extern typename std::enable_if<!Details::check<T>::value>::type
+ Println(FILE* out, const T& t)
+ { t.println(out); }
+
+} // namespace PrintTypes
+
+#endif // SIMPLE_PRINT_FORMATS_H
diff --git a/interfaces/general-headers/utility/SingletonType.hpp b/interfaces/general-headers/utility/SingletonType.hpp
new file mode 100755
index 0000000..c7ff3c5
--- /dev/null
+++ b/interfaces/general-headers/utility/SingletonType.hpp
@@ -0,0 +1,37 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Fri Aug 10 15:04:51 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef SINGLETONTYPE_H
+#define SINGLETONTYPE_H
+
+namespace Ext {
+ template <typename T>
+ struct SingletonType {
+ static T* Instance() {
+ static T t;
+ return(&t);
+ }
+ };
+} // namespace Ext
+
+#endif // SINGLETONTYPE_H
diff --git a/interfaces/general-headers/utility/Typify.hpp b/interfaces/general-headers/utility/Typify.hpp
new file mode 100755
index 0000000..3a3ac24
--- /dev/null
+++ b/interfaces/general-headers/utility/Typify.hpp
@@ -0,0 +1,61 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Thu Nov 29 15:28:17 PST 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifndef TYPIFY_CONSTRUCTIONS_H
+#define TYPIFY_CONSTRUCTIONS_H
+
+namespace Ext {
+
+ //============
+ // Int2Type<> : typify an integer
+ // o good for overloading & specializations purposes
+ //============
+ template <int Val>
+ struct Int2Type {
+ enum { val = Val };
+ };
+
+ //=============
+ // Type2Type<> : typify a type
+ // o lightweight -> good for function overloading purposes
+ // o does not require template T to be constructible
+ //=============
+ template <typename T>
+ struct Type2Type {
+ typedef T OriginalType;
+ };
+
+
+ //===========
+ // IdType<,> : differentiate multiple type T's by an ID
+ // : this class requires T to be a user-defined type
+ //===========
+ template <typename T, int ID>
+ struct IDType : public T {
+ typedef T Type;
+ enum { value = ID };
+ };
+
+} // namespace Ext
+
+#endif // TYPIFY_CONSTRUCTIONS_H
diff --git a/interfaces/src/algorithm/sweep/WindowSweepImpl.cpp b/interfaces/src/algorithm/sweep/WindowSweepImpl.cpp
new file mode 100644
index 0000000..27f80ee
--- /dev/null
+++ b/interfaces/src/algorithm/sweep/WindowSweepImpl.cpp
@@ -0,0 +1,258 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Sat Aug 11 09:35:42 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#include <cstdlib>
+#include <deque>
+
+#include "data/bed/BedCheckIterator.hpp"
+#include "data/bed/AllocateIterator_BED_starch.hpp"
+#include "utility/AllocateIterator.hpp"
+
+namespace WindowSweep {
+
+ // See WindowSweep.hpp for detailed assumptions of sweep()
+
+ namespace Details {
+
+ // get() function overloads allow sweep() to be written only twice.
+ // New iterator ideas receive just another get(). For example,
+ // the speedy allocate_iterator<T> requires something special below.
+ template <typename IteratorType>
+ inline typename IteratorType::value_type* get(IteratorType& i)
+ { return(new typename IteratorType::value_type(*i)); }
+
+
+ template <typename T>
+ inline typename Ext::allocate_iterator<T*>::value_type
+ get(Ext::allocate_iterator<T*>& i)
+ { return(*i); } /* no copy via operator new here */
+
+ template <typename T>
+ inline typename Bed::allocate_iterator_starch_bed<T*>::value_type
+ get(Bed::allocate_iterator_starch_bed<T*>& i)
+ { return(*i); } /* no copy via operator new here */
+
+
+ template <typename T>
+ inline typename Bed::bed_check_iterator<T*>::value_type
+ get(Bed::bed_check_iterator<T*>& i)
+ { return(*i); } /* no copy via operator new here */
+
+ } // namespace Details
+
+ //===================
+ // sweep Overload1 :
+ //===================
+ template <
+ class InputIterator,
+ class RangeComp,
+ class EventVisitor
+ >
+ void sweep(InputIterator start, InputIterator end,
+ RangeComp inRange, EventVisitor& visitor) {
+
+ // Local typedefs
+ typedef typename EventVisitor::RefType Type;
+ typedef Type* TypePtr;
+ typedef std::deque<TypePtr> WindowType;
+
+ // Local variables
+ // const bool cleanHere = !visitor.ManagesOwnMemory(); no longer useful with multivisitor
+ const TypePtr zero = static_cast<TypePtr>(0);
+ TypePtr bPtr = zero;
+ std::size_t index = 0;
+ WindowType win;
+ TypePtr cache = zero;
+ bool first = true;
+ bool reset = true;
+
+ // Loop through inputs
+ while ( start != end || cache || !win.empty() ) {
+
+ if ( !reset ) { // Check items falling out of range 'to the left'
+ visitor.OnStart(win[index]);
+ while ( !win.empty() && inRange.Map2Ref(win[0], win[index]) < 0 ) {
+ visitor.OnDelete(win[0]);
+ delete win[0];
+ win.pop_front(), --index;
+ } // while
+ } else { // last item in windowed buffer, reset buffer
+ if ( start == end && !cache ) { // stopping condition
+ visitor.OnEnd();
+ while ( !win.empty() ) { // deletions belonging to NO ref
+ delete win[0];
+ win.pop_front();
+ } // while
+ break;
+ }
+ // we cannot call another vistor action until we add something
+ // to the new window and declare it as our new reference,
+ // which will occur when we look to add elements to the
+ // (soon to be empty) window. Since we are here, more input
+ // exists and we are guaranteed to enter the proper inclusion
+ // code and call visitor.OnStart() before anything else.
+ // 'win' stores items that need visitor.OnDelete() calls, but
+ // logically belong to the next, currently undeclared,
+ // reference. So, we must wait a bit.
+ }
+
+ // Check for items to be included in current windowed range
+ while ( cache || start != end ) {
+ if ( cache ) {
+ bPtr = cache;
+ cache = zero;
+ }
+ else {
+ bPtr = Details::get(start); // don't do get(start++); in case allocate_iterator
+ ++start;
+ }
+
+ if ( win.empty() || reset || inRange.Ref2Map(win[index], bPtr) == 0 ) {
+ if ( reset ) { // we are populating a new window
+ reset = false;
+ index = 0;
+ visitor.OnStart(bPtr); // establish the new reference
+ if ( !first )
+ visitor.OnPurge(); // starting a new window; notify visitor
+ first = false;
+
+ while ( !win.empty() ) { // deletions on behalf of new ref
+ visitor.OnDelete(win[0]);
+ delete win[0];
+ win.pop_front();
+ } // while
+ }
+ win.push_back(bPtr);
+ visitor.OnAdd(bPtr); // must follow 'reset' check
+ }
+ else { // read one passed current windowed range
+ cache = bPtr;
+ break;
+ }
+ } // while
+
+ visitor.OnDone(); // done processing current item
+
+ reset = (++index >= win.size());
+ } // while !done
+
+ if ( cache )
+ delete cache; // never given to visitor
+
+ } // sweep() overload1
+
+
+ //===================
+ // sweep Overload2 :
+ //===================
+ template <
+ class InputIterator1,
+ class InputIterator2,
+ class RangeComp,
+ class EventVisitor
+ >
+ void sweep(InputIterator1 refStart, InputIterator1 refEnd,
+ InputIterator2 mapFromStart, InputIterator2 mapFromEnd,
+ RangeComp inRange, EventVisitor& visitor, bool sweepMapAll) {
+
+ // Local typedefs
+ typedef typename EventVisitor::RefType RefType;
+ typedef typename EventVisitor::MapType MapType;
+ typedef MapType* MapTypePtr;
+ typedef std::deque<MapTypePtr> WindowType;
+ typedef RefType* RefTypePtr;
+
+ // Local variables
+ // const bool cleanHere = !visitor.ManagesOwnMemory(); no longer useful with multivisitor
+ const MapTypePtr zero = static_cast<MapTypePtr>(0);
+ RefTypePtr rPtr;
+ MapTypePtr mPtr = zero, cache = zero;
+ WindowType win;
+ double value = 0;
+ bool willPurge = false;
+
+ // Loop through inputs
+ while ( refStart != refEnd ) {
+
+ rPtr = Details::get(refStart); // don't do get(refStart++); in case allocate_iterator
+ ++refStart;
+ visitor.OnStart(rPtr);
+
+ // See if we will be starting a new window
+ willPurge = !win.empty() && (inRange.Map2Ref(win[win.size()-1], rPtr) < 0);
+ if ( willPurge ) // notify visitor before deleting elements
+ visitor.OnPurge();
+
+ // Pop off items falling out of range 'to the left'
+ while ( !win.empty() && inRange.Map2Ref(win[0], rPtr) < 0 ) {
+ visitor.OnDelete(win[0]);
+ delete win[0];
+ win.pop_front();
+ } // while
+
+ // Check for items to be included in current windowed range
+ while ( cache || mapFromStart != mapFromEnd ) {
+ if ( cache ) {
+ mPtr = cache;
+ cache = zero;
+ }
+ else {
+ mPtr = Details::get(mapFromStart); // don't do get(mapFromStart++); in case allocate_iterator
+ ++mapFromStart;
+ }
+
+ if ( (value = inRange.Ref2Map(rPtr, mPtr)) == 0 ) { // within range
+ win.push_back(mPtr);
+ visitor.OnAdd(mPtr);
+ }
+ else if ( value < 0 ) { // read one passed current windowed range
+ cache = mPtr;
+ break;
+ }
+ else
+ delete mPtr;
+ } // while
+ visitor.OnDone(); // done processing current ref item
+ delete rPtr;
+ } // while more ref data
+
+ visitor.OnEnd();
+ while ( !win.empty() ) { // deletions belonging to NO ref
+ delete win[0];
+ win.pop_front();
+ } // while
+
+ if ( cache ) // never given to visitor
+ delete cache;
+
+ if ( sweepMapAll ) { // read and clean remainder of map file
+ while ( mapFromStart != mapFromEnd ) {
+ mPtr = Details::get(mapFromStart); // don't do get(mapFromStart); in case allocate_iterator
+ ++mapFromStart;
+ delete mPtr; // never given to visitor
+ } // while
+ }
+
+ } // sweep() overload2
+
+} // namespace WindowSweep
diff --git a/interfaces/src/algorithm/sweep/WindowSweepImpl.specialize.cpp b/interfaces/src/algorithm/sweep/WindowSweepImpl.specialize.cpp
new file mode 100644
index 0000000..3f3d9d4
--- /dev/null
+++ b/interfaces/src/algorithm/sweep/WindowSweepImpl.specialize.cpp
@@ -0,0 +1,140 @@
+/*
+ Author: Shane Neph & Scott Kuehn
+ Date: Sat Aug 11 09:35:42 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#include <cstdlib>
+#include <deque>
+#include <type_traits>
+
+#include "data/bed/BedCheckIterator.hpp"
+#include "data/bed/BedDistances.hpp"
+#include "data/bed/AllocateIterator_BED_starch.hpp"
+#include "utility/AllocateIterator.hpp"
+
+namespace WindowSweep {
+
+ // See WindowSweep.hpp for detailed assumptions of sweep()
+
+ //===================
+ // sweep Overload1 :
+ //===================
+ template <
+ class InputIterator,
+ class EventVisitor
+ >
+ void sweep(InputIterator start, InputIterator end,
+ Bed::Overlapping inRange, EventVisitor& visitor) {
+
+ // Local typedefs
+ typedef typename EventVisitor::RefType Type;
+ typedef Type* TypePtr;
+ typedef std::deque<TypePtr> WindowType;
+
+ // Local variables
+ // const bool cleanHere = !visitor.ManagesOwnMemory(); no longer useful with multivisitor
+ const TypePtr zero = static_cast<TypePtr>(0);
+ TypePtr bPtr = zero;
+ std::size_t index = 0;
+ WindowType win;
+ TypePtr cache = zero;
+ bool first = true;
+ bool reset = true;
+
+ // Loop through inputs
+ while ( start != end || cache || !win.empty() ) {
+
+ if ( !reset ) { // Check items falling out of range 'to the left'
+ visitor.OnStart(win[index]);
+ while ( !win.empty() && inRange.Map2Ref(win[0], win[index]) < 0 ) {
+ if ( win[0]->length() >= inRange.ovrRequired_ )
+ visitor.OnDelete(win[0]);
+ delete win[0];
+ win.pop_front(), --index;
+ } // while
+ } else { // last item in windowed buffer, reset buffer
+ if ( start == end && !cache ) { // stopping condition
+ visitor.OnEnd();
+ while ( !win.empty() ) { // deletions belonging to NO ref
+ delete win[0];
+ win.pop_front();
+ } // while
+ break;
+ }
+ // we cannot call another vistor action until we add something
+ // to the new window and declare it as our new reference,
+ // which will occur when we look to add elements to the
+ // (soon to be empty) window. Since we are here, more input
+ // exists and we are guaranteed to enter the proper inclusion
+ // code and call visitor.OnStart() before anything else.
+ // 'win' stores items that need visitor.OnDelete() calls, but
+ // logically belong to the next, currently undeclared,
+ // reference. So, we must wait a bit.
+ }
+
+ // Check for items to be included in current windowed range
+ while ( cache || start != end ) {
+ if ( cache ) {
+ bPtr = cache;
+ cache = zero;
+ }
+ else {
+ bPtr = Details::get(start); // don't do get(start++); in case allocate_iterator
+ ++start;
+ }
+
+ if ( win.empty() || reset || inRange.Ref2Map(win[index], bPtr) == 0 ) {
+ if ( reset ) { // we are populating a new window
+ reset = false;
+ index = 0;
+ visitor.OnStart(bPtr); // establish the new reference
+ if ( !first )
+ visitor.OnPurge(); // starting a new window; notify visitor
+ first = false;
+
+ while ( !win.empty() ) { // deletions on behalf of new ref
+ if ( win[0]->length() >= inRange.ovrRequired_ )
+ visitor.OnDelete(win[0]);
+ delete win[0];
+ win.pop_front();
+ } // while
+ }
+ win.push_back(bPtr);
+ if ( bPtr->length() >= inRange.ovrRequired_ )
+ visitor.OnAdd(bPtr); // must follow 'reset' check
+ }
+ else { // read one passed current windowed range
+ cache = bPtr;
+ break;
+ }
+ } // while
+
+ visitor.OnDone(); // done processing current item
+
+ reset = (++index >= win.size());
+ } // while !done
+
+ if ( cache )
+ delete cache; // never given to visitor
+
+ } // sweep() overload1
+
+} // namespace WindowSweep
diff --git a/interfaces/src/data/measurement/NaN.cpp b/interfaces/src/data/measurement/NaN.cpp
new file mode 100644
index 0000000..45dcf2a
--- /dev/null
+++ b/interfaces/src/data/measurement/NaN.cpp
@@ -0,0 +1,28 @@
+/*
+ Author: Scott Kuehn, Shane Neph
+ Date: Mon Sep 10 15:17:47 PDT 2007
+*/
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#include "data/measurement/NaN.hpp"
+
+namespace Signal {
+ NaN::Type NaN::nan_ = "NAN";
+} // namespace Signal
diff --git a/interfaces/src/data/starch/starchBase64Coding.c b/interfaces/src/data/starch/starchBase64Coding.c
new file mode 100644
index 0000000..19b4aec
--- /dev/null
+++ b/interfaces/src/data/starch/starchBase64Coding.c
@@ -0,0 +1,252 @@
+//=========
+// Author: Alex Reynolds & Shane Neph
+// Project: starch
+// File: starchBase64Coding.c
+//=========
+
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifdef __cplusplus
+#include <cstdlib>
+#include <cstdio>
+#include <cstring>
+#else
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#endif
+
+#include "data/starch/starchBase64Coding.h"
+
+#ifdef __cplusplus
+namespace starch {
+#endif
+
+const char kStarchBase64EncodingTable[64] = {
+ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
+ 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f',
+ 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
+ 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/'
+};
+
+const short kStarchBase64DecodingTable[256] = {
+ -2, -2, -2, -2, -2, -2, -2, -2, -2, -1, -1, -2, -1, -1, -2, -2,
+ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
+ -1, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, 62, -2, -2, -2, 63,
+ 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -2, -2, -2, -2, -2, -2,
+ -2, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -2, -2, -2, -2, -2,
+ -2, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -2, -2, -2, -2, -2,
+ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
+ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
+ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
+ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
+ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
+ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
+ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
+ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2
+};
+
+void
+STARCH_encodeBase64(char **output, const size_t outputLength, const unsigned char *inputBytes, const size_t inputLength)
+{
+#ifdef __cplusplus
+ unsigned char *inputPointer = const_cast<unsigned char *>( inputBytes );
+#else
+ unsigned char *inputPointer = (unsigned char *) inputBytes;
+#endif
+ char *objPointer = NULL;
+ char *strResult = NULL;
+ size_t bytesLength = inputLength;
+ /* size_t resultLength = (((bytesLength + 2) / 3) * 4) + 1; */
+
+ if (inputLength == 0)
+ return;
+
+#ifdef DEBUG
+ fwrite(inputPointer, sizeof(unsigned char), inputLength, stderr);
+#endif
+
+ // Setup the String-based Result placeholder and pointer within that placeholder
+#ifdef __cplusplus
+ strResult = static_cast<char *>( calloc(outputLength, sizeof(char)) );
+#else
+ strResult = calloc(outputLength, sizeof(char));
+#endif
+ if (!strResult) {
+ fprintf(stderr, "ERROR: Could not allocate space for base64-encoded string\n");
+ return;
+ }
+ objPointer = strResult;
+
+ // Iterate through everything
+ while (bytesLength > 2) { // keep going until we have less than 24 bits
+ *objPointer++ = kStarchBase64EncodingTable[inputPointer[0] >> 2];
+ *objPointer++ = kStarchBase64EncodingTable[((inputPointer[0] & 0x03) << 4) + (inputPointer[1] >> 4)];
+ *objPointer++ = kStarchBase64EncodingTable[((inputPointer[1] & 0x0f) << 2) + (inputPointer[2] >> 6)];
+ *objPointer++ = kStarchBase64EncodingTable[inputPointer[2] & 0x3f];
+
+ // we just handled 3 octets (24 bits) of data
+ inputPointer += 3;
+ bytesLength -= 3;
+ }
+
+ // now deal with the tail end of things
+ if (bytesLength != 0) {
+ *objPointer++ = kStarchBase64EncodingTable[inputPointer[0] >> 2];
+ if (bytesLength > 1) {
+ *objPointer++ = kStarchBase64EncodingTable[((inputPointer[0] & 0x03) << 4) + (inputPointer[1] >> 4)];
+ *objPointer++ = kStarchBase64EncodingTable[(inputPointer[1] & 0x0f) << 2];
+ *objPointer++ = '=';
+ } else {
+ *objPointer++ = kStarchBase64EncodingTable[(inputPointer[0] & 0x03) << 4];
+ *objPointer++ = '=';
+ *objPointer++ = '=';
+ }
+ }
+
+ // Terminate the string-based result
+ *objPointer = '\0';
+
+#ifdef DEBUG
+ fprintf(stderr, "\n");
+ fprintf(stderr, "%s\n", strResult);
+#endif
+
+ *output = STARCH_strdup(strResult);
+
+ return;
+}
+
+void
+STARCH_decodeBase64(char *input, unsigned char **output, size_t *outputLength)
+{
+ const char *objPointer = input;
+ size_t intLength = strlen(objPointer);
+ int intCurrent;
+ int i = 0, j = 0, k;
+#ifdef __cplusplus
+ unsigned char *objResult = static_cast<unsigned char *>( calloc(intLength, sizeof(unsigned char)) );
+#else
+ unsigned char *objResult = calloc(intLength, sizeof(unsigned char));
+#endif
+
+ // Run through the whole string, converting as we go
+ while ( ((intCurrent = *objPointer++) != '\0') && (intLength-- > 0) ) {
+ if (intCurrent == '=') {
+ if (*objPointer != '=' && ((i % 4) == 1)) {// || (intLength > 0)) {
+ // the padding character is invalid at this point -- so this entire string is invalid
+ free(objResult);
+ return;
+ }
+ continue;
+ }
+
+ intCurrent = kStarchBase64DecodingTable[intCurrent];
+ if (intCurrent == -1) {
+ // we're at a whitespace -- simply skip over
+ continue;
+ } else if (intCurrent == -2) {
+ // we're at an invalid character
+ free(objResult);
+ return;
+ }
+
+#ifdef __cplusplus
+ switch (i % 4) {
+ case 0: {
+ objResult[j] = static_cast<unsigned char>( intCurrent << 2 );
+ break;
+ }
+ case 1: {
+ objResult[j++] |= intCurrent >> 4;
+ objResult[j] = static_cast<unsigned char>( (intCurrent & 0x0f) << 4 );
+ break;
+ }
+ case 2: {
+ objResult[j++] |= intCurrent >>2;
+ objResult[j] = static_cast<unsigned char>( (intCurrent & 0x03) << 6 );
+ break;
+ }
+ case 3: {
+ objResult[j++] |= intCurrent;
+ break;
+ }
+ }
+#else
+ switch (i % 4) {
+ case 0: {
+ objResult[j] = (unsigned char) (intCurrent << 2);
+ break;
+ }
+ case 1: {
+ objResult[j++] |= intCurrent >> 4;
+ objResult[j] = (unsigned char) ((intCurrent & 0x0f) << 4);
+ break;
+ }
+ case 2: {
+ objResult[j++] |= intCurrent >>2;
+ objResult[j] = (unsigned char) ((intCurrent & 0x03) << 6);
+ break;
+ }
+ case 3: {
+ objResult[j++] |= intCurrent;
+ break;
+ }
+ }
+#endif
+ i++;
+ }
+
+ // mop things up if we ended on a boundary
+ k = j;
+ if (intCurrent == '=') {
+ switch (i % 4) {
+ case 1: {
+ // Invalid state
+ free(objResult);
+ return;
+ }
+ case 2: {
+ k++;
+ objResult[k] = 0;
+ break;
+ }
+ case 3: {
+ objResult[k] = 0;
+ break;
+ }
+ }
+ }
+
+ // Cleanup and setup the return bytes
+#ifdef __cplusplus
+ *outputLength = static_cast<size_t>( j );
+#else
+ *outputLength = (size_t) j;
+#endif
+ memcpy(*output, objResult, *outputLength);
+ free(objResult);
+}
+
+#ifdef __cplusplus
+} // namespace starch
+#endif
diff --git a/interfaces/src/data/starch/starchConstants.c b/interfaces/src/data/starch/starchConstants.c
new file mode 100644
index 0000000..4c4477e
--- /dev/null
+++ b/interfaces/src/data/starch/starchConstants.c
@@ -0,0 +1,45 @@
+//=========
+// Author: Alex Reynolds & Shane Neph
+// Project: starch
+// File: starchConstants.c
+//=========
+
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#include "data/starch/starchConstants.h"
+
+#ifdef __cplusplus
+namespace starch {
+#endif
+
+const char * kStarchBedHeaderTrack = "track";
+const char * kStarchBedHeaderBrowser = "browser";
+const char * kStarchBedHeaderSAM = "@";
+const char * kStarchBedHeaderVCF = "##";
+const char * kStarchBedGenericComment = "#";
+const unsigned int kStarchFinalizeTransformTrue = 1;
+const unsigned int kStarchFinalizeTransformFalse = 0;
+const Boolean kStarchTrue = 1;
+const Boolean kStarchFalse = 0;
+const char * kStarchNullChromosome = "null";
+
+#ifdef __cplusplus
+} // namespace starch
+#endif
diff --git a/interfaces/src/data/starch/starchFileHelpers.c b/interfaces/src/data/starch/starchFileHelpers.c
new file mode 100644
index 0000000..88dc1cb
--- /dev/null
+++ b/interfaces/src/data/starch/starchFileHelpers.c
@@ -0,0 +1,226 @@
+//=========
+// Author: Alex Reynolds & Shane Neph
+// Project: starch
+// File: starchFileHelpers.c
+//=========
+
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifdef __cplusplus
+#include <cassert>
+#include <cstdlib>
+#else
+#include <assert.h>
+#include <stdlib.h>
+#endif
+#include <stdio.h>
+#include <sys/types.h>
+#include <errno.h>
+#include <zlib.h>
+
+#include "data/starch/starchFileHelpers.h"
+#include "data/starch/starchHelpers.h"
+
+#ifdef __cplusplus
+namespace starch {
+#endif
+
+int
+STARCH_fseeko(FILE *stream, off_t offset, int whence)
+{
+#ifdef DEBUG
+ /*
+ fprintf(stderr, "\n--- STARCH_fseeko() ---\n");
+ fprintf(stderr, "\toffset: %" PRId64 "\twhence: %d\n\n", (int64_t) offset, whence);
+ */
+#endif
+ int retValue = fseeko(stream, offset, whence);
+
+ if (retValue != 0) {
+ switch (retValue) {
+ case EAGAIN:
+ fprintf(stderr, "ERROR: EAGAIN - The O_NONBLOCK flag is set for the file descriptor underlying stream, and the process would be delayed in the write operation.\n");
+ break;
+ case EBADF:
+ fprintf(stderr, "ERROR: EBADF - The file descriptor underlying stream is not valid.\n");
+ break;
+ case EFBIG:
+ fprintf(stderr, "ERROR: EFBIG - The file is a regular file and an attempt was made to write at or beyond the offset maximum associated with the corresponding stream.\n");
+ break;
+ case EINTR:
+ fprintf(stderr, "ERROR: EINTR - A signal interrupted the call.\n");
+ break;
+ case EINVAL:
+ fprintf(stderr, "ERROR: EINVAL - The whence argument to fseeko() is invalid.\n");
+ break;
+ case ENOSPC:
+ fprintf(stderr, "ERROR: ENOSPC - There was no free space remaining on the device containing the file.\n");
+ break;
+ case EOVERFLOW:
+ fprintf(stderr, "ERROR: EOVERFLOW - The resulting file offset would be a value which cannot be represented correctly in an object of the requested type.\n");
+ break;
+ case EPIPE:
+ fprintf(stderr, "ERROR: EPIPE - An attempt is made to write to a pipe or FIFO that is not open for reading by any process. A SIGPIPE signal is also sent to the process.\n");
+ break;
+ default:
+ fprintf(stderr, "ERROR: UNKNOWN - Unknown error with fseeko() attempt (%d).\n", retValue);
+ }
+ }
+
+ return retValue;
+}
+
+FILE *
+STARCH_fopen(const char *filename, const char *type)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH_fopen() ---\n");
+ fprintf(stderr, "\tfilename: %s\ttype: %s\n\n", filename, type);
+#endif
+ FILE *fnPtr = NULL;
+
+ fnPtr = fopen(filename, type);
+
+ if ((fnPtr == NULL) && (errno != 0)) {
+ switch (errno) {
+ case EACCES:
+ fprintf(stderr, "ERROR: EACCES - Search permission is denied on a component of the path prefix, or the file exists and the permissions specified by mode are denied, or the file does not exist and write permission is denied for the parent directory of the file to be created\n");
+ break;
+ case EINTR:
+ fprintf(stderr, "ERROR: EINTR - A signal was caught during the execution of fopen()\n");
+ break;
+ case EISDIR:
+ fprintf(stderr, "ERROR: EISDIR - The named file is a directory and mode requires write access\n");
+ break;
+ case ELOOP:
+ fprintf(stderr, "ERROR: ELOOP - Too many symbolic links were encountered in resolving pathname\n");
+ break;
+ case EMFILE:
+ fprintf(stderr, "ERROR: EMFILE - There are {OPEN_MAX} file descriptors currently open in the calling process\n");
+ break;
+ case ENAMETOOLONG:
+ fprintf(stderr, "ERROR: ENAMETOOLONG - The length of the filename exceeds PATH_MAX or a pathname component is longer than NAME_MAX\n");
+ break;
+ case ENFILE:
+ fprintf(stderr, "ERROR: ENFILE - The maximum allowable number of files is currently open in the system\n");
+ break;
+ case ENOENT:
+ fprintf(stderr, "ERROR: ENOENT - A component of the filename does not name an existing file or filename is an empty string\n");
+ break;
+ case ENOSPC:
+ fprintf(stderr, "ERROR: ENOSPC - The directory or file system that would contain the new file cannot be expanded, the file does not exist, and it was to be created\n");
+ break;
+ case ENOTDIR:
+ fprintf(stderr, "ERROR: ENOTDIR - A component of the path prefix is not a directory\n");
+ break;
+ case ENXIO:
+ fprintf(stderr, "ERROR: ENXIO - The named file is a character special or block special file, and the device associated with this special file does not exist\n");
+ break;
+ case EOVERFLOW:
+ fprintf(stderr, "ERROR: EOVERFLOW - The current value of the file position cannot be represented correctly in an object of type fpos_t\n");
+ break;
+ case EROFS:
+ fprintf(stderr, "ERROR: EROFS - The named file resides on a read-only file system and the mode requires write access\n");
+ break;
+ case ENOMEM:
+ fprintf(stderr, "ERROR: ENOMEM - Insufficient storage space is available\n");
+ break;
+ case ETXTBSY:
+ fprintf(stderr, "ERROR: ETXTBSY - The file is a pure procedure (shared text) file that is being executed and mode requires write access\n");
+ break;
+ default:
+#ifdef __cplusplus
+ fprintf(stderr, "ERROR: UNKNOWN - Run into unknown file access error (%d)\n", static_cast<int>( errno ));
+#else
+ fprintf(stderr, "ERROR: UNKNOWN - Run into unknown file access error (%d)\n", (int) errno);
+#endif
+ }
+ return NULL;
+ }
+
+ return fnPtr;
+}
+
+int
+STARCH_gzip_deflate(FILE *source, FILE *dest, int level)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH_gzip_deflate() ---\n");
+#endif
+ int ret, flush;
+ unsigned have;
+ z_stream strm;
+ unsigned char in[STARCH_Z_CHUNK + 1];
+ unsigned char out[STARCH_Z_CHUNK + 1];
+
+ /* allocate deflate state */
+ strm.zalloc = Z_NULL;
+ strm.zfree = Z_NULL;
+ strm.opaque = Z_NULL;
+
+ /* deflateInit2 allows creation of archive with gzip header, i.e. a gzip file */
+ /* cf. http://www.zlib.net/manual.html */
+#ifdef __cplusplus
+ ret = deflateInit2cpp(&strm, level, Z_DEFLATED, (15+16), 8, Z_DEFAULT_STRATEGY);
+#else
+ ret = deflateInit2(&strm, level, Z_DEFLATED, (15+16), 8, Z_DEFAULT_STRATEGY);
+#endif
+ if (ret != Z_OK)
+ return ret;
+
+ /* compress until end of file */
+ do {
+#ifdef __cplusplus
+ strm.avail_in = static_cast<unsigned int>( fread(in, 1, STARCH_Z_CHUNK, source) );
+#else
+ strm.avail_in = (unsigned int) fread(in, 1, STARCH_Z_CHUNK, source);
+#endif
+
+ if (ferror(source)) {
+ (void) deflateEnd(&strm);
+ return Z_ERRNO;
+ }
+ flush = feof(source) ? Z_FINISH : Z_NO_FLUSH;
+ strm.next_in = in;
+
+ do {
+ strm.avail_out = STARCH_Z_CHUNK;
+ strm.next_out = out;
+ ret = deflate(&strm, flush);
+ assert(ret != Z_STREAM_ERROR);
+ have = STARCH_Z_CHUNK - strm.avail_out;
+ if (fwrite(out, 1, have, dest) != have || ferror(dest)) {
+ (void) deflateEnd(&strm);
+ return Z_ERRNO;
+ }
+ } while (strm.avail_out == 0);
+ assert(strm.avail_in == 0);
+
+ } while (flush != Z_FINISH);
+ assert(ret == Z_STREAM_END);
+
+ /* clean up and return */
+ (void) deflateEnd(&strm);
+ return Z_OK;
+}
+
+#ifdef __cplusplus
+} // namespace starch
+#endif
diff --git a/interfaces/src/data/starch/starchHelpers.c b/interfaces/src/data/starch/starchHelpers.c
new file mode 100644
index 0000000..478f5c5
--- /dev/null
+++ b/interfaces/src/data/starch/starchHelpers.c
@@ -0,0 +1,3768 @@
+//=========
+// Author: Alex Reynolds & Shane Neph
+// Project: starch
+// File: starchHelpers.c
+//=========
+
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifdef __cplusplus
+#include <cassert>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#else
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <assert.h>
+#endif
+
+#include <unistd.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <bzlib.h>
+#include <zlib.h>
+
+#include "data/starch/starchSha1Digest.h"
+#include "data/starch/starchBase64Coding.h"
+#include "data/starch/starchHelpers.h"
+#include "data/starch/starchConstants.h"
+#include "data/starch/starchFileHelpers.h"
+#include "suite/BEDOPS.Constants.hpp"
+
+#ifdef __cplusplus
+namespace starch {
+ using namespace Bed;
+#endif
+
+char *
+STARCH_strdup(const char *str)
+{
+ /* Cygwin does not include support for strdup() so we include our own implementation here */
+ char *dup = NULL;
+ if (str) {
+#ifdef __cplusplus
+ dup = static_cast<char *>( malloc(strlen(str) + 1) ); /* sizeof(char) = 1, of course */
+#else
+ dup = malloc(strlen(str) + 1); /* sizeof(char) = 1, of course */
+#endif
+ if (!dup) {
+ fprintf(stderr, "ERROR: Out of memory\n");
+ exit(EXIT_FAILURE);
+ }
+ strcpy(dup, str);
+ }
+ return dup;
+}
+
+int
+STARCH_compressFileWithGzip(const char *inFn, char **outFn, off_t *outFnSize)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH_compressFileWithGzip() ---\n");
+#endif
+ FILE *inFnPtr = NULL;
+ FILE *outFnPtr = NULL;
+ struct stat outSt;
+
+ /* create output file handle */
+#ifdef __cplusplus
+ *outFn = static_cast<char *>( malloc((strlen(inFn) + 4) * sizeof(**outFn)) ); /* 4 <- ".gz\0" */
+#else
+ *outFn = malloc((strlen(inFn) + 4) * sizeof(**outFn)); /* 4 <- ".gz\0" */
+#endif
+ if (! *outFn) {
+ fprintf(stderr, "ERROR: Out of memory\n");
+ return STARCH_FATAL_ERROR;
+ }
+ sprintf(*outFn, "%s.gz", inFn);
+ outFnPtr = STARCH_fopen(*outFn, "wb");
+ if (!outFnPtr) {
+ fprintf(stderr, "ERROR: Could not open a gzip output file handle to %s\n", *outFn);
+ return STARCH_FATAL_ERROR;
+ }
+
+ /* open input for compression */
+ inFnPtr = STARCH_fopen(inFn, "r");
+ if (!inFnPtr) {
+ fprintf(stderr, "ERROR: Could not open a gzip input file handle to %s\n", inFn);
+ return STARCH_FATAL_ERROR;
+ }
+
+ /* compress file */
+ /* cf. http://www.zlib.net/manual.html for level information */
+ STARCH_gzip_deflate(inFnPtr, outFnPtr, STARCH_Z_COMPRESSION_LEVEL);
+
+ /* close file pointers */
+ fclose(inFnPtr);
+ fclose(outFnPtr);
+
+ /* get gzip file size */
+#ifdef __cplusplus
+ if (stat(reinterpret_cast<const char *>( *outFn ), &outSt) != 0) {
+#else
+ if (stat((const char *)*outFn, &outSt) != 0) {
+#endif
+ fprintf(stderr, "ERROR: Could not get gzip file attributes\n");
+ return STARCH_FATAL_ERROR;
+ }
+ *outFnSize = outSt.st_size;
+
+ return 0;
+}
+
+int
+STARCH_compressFileWithBzip2(const char *inFn, char **outFn, off_t *outFnSize)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH_compressFileWithBzip2() ---\n");
+#endif
+ FILE *inFnPtr = NULL;
+ FILE *outFnPtr = NULL;
+ BZFILE *bzFp = NULL;
+ int nBzBuf = STARCH_BZ_BUFFER_MAX_LENGTH;
+ char bzBuf[STARCH_BZ_BUFFER_MAX_LENGTH];
+ int bzError;
+ int c;
+ unsigned int idx = 0U;
+ struct stat outSt;
+
+ /* create output file handle */
+#ifdef __cplusplus
+ *outFn = static_cast<char *>( malloc((strlen(inFn) + 5) * sizeof(**outFn)) ); /* 5 <- ".bz2\0" */
+#else
+ *outFn = malloc((strlen(inFn) + 5) * sizeof(**outFn)); /* 5 <- ".bz2\0" */
+#endif
+ if (! *outFn) {
+ fprintf(stderr, "ERROR: Out of memory\n");
+ return STARCH_FATAL_ERROR;
+ }
+ sprintf(*outFn, "%s.bz2", inFn);
+ outFnPtr = STARCH_fopen(*outFn, "wb");
+ if (!outFnPtr) {
+ fprintf(stderr, "ERROR: Could not open a bzip2 output file handle to %s\n", *outFn);
+ return STARCH_FATAL_ERROR;
+ }
+
+ /* open input for compression */
+ inFnPtr = STARCH_fopen(inFn, "r");
+ if (!inFnPtr) {
+ fprintf(stderr, "ERROR: Could not open a bzip2 input file handle to %s\n", inFn);
+ return STARCH_FATAL_ERROR;
+ }
+ bzFp = BZ2_bzWriteOpen( &bzError, outFnPtr, STARCH_BZ_COMPRESSION_LEVEL, 0, 0 );
+ if (bzError != BZ_OK) {
+ BZ2_bzWriteClose ( &bzError, bzFp, 0, NULL, NULL );
+ fprintf(stderr, "ERROR: Could not open bzip2 file handle\n");
+ return STARCH_FATAL_ERROR;
+ }
+
+ /* compress to bz stream */
+ while ((c = fgetc(inFnPtr)) != EOF) {
+#ifdef __cplusplus
+ bzBuf[idx++] = static_cast<char>( c );
+#else
+ bzBuf[idx++] = (char) c;
+#endif
+ if (idx == STARCH_BZ_BUFFER_MAX_LENGTH) {
+ BZ2_bzWrite( &bzError, bzFp, bzBuf, nBzBuf );
+ if (bzError == BZ_IO_ERROR) {
+ BZ2_bzWriteClose ( &bzError, bzFp, 0, NULL, NULL );
+ fprintf(stderr, "ERROR: Could not write to bzip2 file handle\n");
+ return STARCH_FATAL_ERROR;
+ }
+ idx = 0;
+ }
+ }
+ /* write out remainder of bzip2 buffer to output */
+ bzBuf[idx] = '\0';
+#ifdef __cplusplus
+ BZ2_bzWrite(&bzError, bzFp, bzBuf, static_cast<int>( idx ));
+#else
+ BZ2_bzWrite(&bzError, bzFp, bzBuf, (int) idx);
+#endif
+ if (bzError == BZ_IO_ERROR) {
+ BZ2_bzWriteClose ( &bzError, bzFp, 0, NULL, NULL );
+ fprintf(stderr, "ERROR: Could not write to bzip2 file handle\n");
+ return STARCH_FATAL_ERROR;
+ }
+
+ /* close bzip2 stream */
+ BZ2_bzWriteClose( &bzError, bzFp, 0, NULL, NULL );
+ if (bzError == BZ_IO_ERROR) {
+ fprintf(stderr, "ERROR: Could not close bzip2 file handle\n");
+ return STARCH_FATAL_ERROR;
+ }
+
+ /* close input */
+ fclose(inFnPtr);
+
+ /* close output */
+ fclose(outFnPtr);
+
+ /* get bzip2 file size */
+#ifdef __cplusplus
+ if (stat(reinterpret_cast<const char *>( *outFn ), &outSt) != 0) {
+#else
+ if (stat((const char *)*outFn, &outSt) != 0) {
+#endif
+ fprintf(stderr, "ERROR: Could not get bzip2 file attributes\n");
+ return STARCH_FATAL_ERROR;
+ }
+ *outFnSize = outSt.st_size;
+
+ return 0;
+}
+
+int
+STARCH_createTransformTokens(const char *s, const char delim, char **chr, int64_t *start, int64_t *stop, char **remainder, BedLineType *lineType)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH_createTransformTokens() ---\n");
+#endif
+ unsigned int charCnt, sCnt;
+ int elemCnt;
+ char buffer[STARCH_BUFFER_MAX_LENGTH];
+ unsigned int idIdx = 0U;
+ unsigned int restIdx = 0U;
+
+ charCnt = 0U;
+ sCnt = 0U;
+ elemCnt = -1;
+
+ do {
+ buffer[charCnt++] = s[sCnt];
+ if ((s[sCnt] == delim) || (s[sCnt] == '\0')) {
+ if (elemCnt < 3) {
+ buffer[(charCnt - 1)] = '\0';
+ charCnt = 0;
+ elemCnt++;
+ }
+#ifdef DEBUG
+ fprintf(stderr, "\t--- s [%s] buffer [%s], charCnt [%u], strlen(buffer) [%zu], sCnt [%u], strlen(s) [%zu]\n", s, buffer, charCnt, strlen(buffer), sCnt, strlen(s));
+#endif
+ switch (elemCnt) {
+ case 0: {
+ /* we do field validation tests after we determine what kind of BED line this is */
+
+ /* determine what type of BED input line we're working with on the basis of the chr value */
+#ifdef __cplusplus
+ if (strncmp(reinterpret_cast<const char *>( buffer ), kStarchBedHeaderTrack, strlen(kStarchBedHeaderTrack)) == 0) {
+#else
+ if (strncmp((const char *) buffer, kStarchBedHeaderTrack, strlen(kStarchBedHeaderTrack)) == 0) {
+#endif
+ *lineType = kBedLineHeaderTrack;
+ elemCnt = 3;
+ }
+#ifdef __cplusplus
+ else if (strncmp(reinterpret_cast<const char *>( buffer ), kStarchBedHeaderBrowser, strlen(kStarchBedHeaderBrowser)) == 0) {
+#else
+ else if (strncmp((const char *) buffer, kStarchBedHeaderBrowser, strlen(kStarchBedHeaderBrowser)) == 0) {
+#endif
+ *lineType = kBedLineHeaderBrowser;
+ elemCnt = 3;
+ }
+#ifdef __cplusplus
+ else if (strncmp(reinterpret_cast<const char *>( buffer ), kStarchBedHeaderSAM, strlen(kStarchBedHeaderSAM)) == 0) {
+#else
+ else if (strncmp((const char *) buffer, kStarchBedHeaderSAM, strlen(kStarchBedHeaderSAM)) == 0) {
+#endif
+ *lineType = kBedLineHeaderSAM;
+ elemCnt = 3;
+ }
+#ifdef __cplusplus
+ else if (strncmp(reinterpret_cast<const char *>( buffer ), kStarchBedHeaderVCF, strlen(kStarchBedHeaderVCF)) == 0) {
+#else
+ else if (strncmp((const char *) buffer, kStarchBedHeaderVCF, strlen(kStarchBedHeaderVCF)) == 0) {
+#endif
+ *lineType = kBedLineHeaderVCF;
+ elemCnt = 3;
+ }
+#ifdef __cplusplus
+ else if (strncmp(reinterpret_cast<const char *>( buffer ), kStarchBedGenericComment, strlen(kStarchBedGenericComment)) == 0) {
+#else
+ else if (strncmp((const char *) buffer, kStarchBedGenericComment, strlen(kStarchBedGenericComment)) == 0) {
+#endif
+ *lineType = kBedLineGenericComment;
+ elemCnt = 3;
+ }
+ else {
+ *lineType = kBedLineCoordinates;
+ }
+
+ /* if line type is of kBedLineCoordinates type, then we test chromosome length */
+ if (*lineType == kBedLineCoordinates) {
+#ifdef DEBUG
+ fprintf(stderr, "\t--- copying chromosome field ---\n");
+#endif
+ if (strlen(buffer) > TOKEN_CHR_MAX_LENGTH) {
+ fprintf(stderr, "ERROR: Chromosome field length is too long (must be no longer than %ld characters)\n", TOKEN_CHR_MAX_LENGTH);
+ return STARCH_FATAL_ERROR;
+ }
+ /* copy element to chromosome variable, if memory is available */
+#ifdef __cplusplus
+ *chr = static_cast<char *>( malloc((strlen(buffer) + 1) * sizeof(**chr)) );
+#else
+ *chr = malloc((strlen(buffer) + 1) * sizeof(**chr));
+#endif
+ if (! *chr) {
+ fprintf(stderr, "ERROR: Ran out of memory while creating transform tokens\n");
+ return STARCH_FATAL_ERROR;
+ }
+#ifdef __cplusplus
+ strncpy(*chr, reinterpret_cast<const char *>( buffer ), strlen(buffer) + 1);
+#else
+ strncpy(*chr, (const char *)buffer, strlen(buffer) + 1);
+#endif
+ }
+ /* otherwise, we limit the length of a comment line to TOKENS_HEADER_MAX_LENGTH */
+ else {
+#ifdef DEBUG
+ fprintf(stderr, "\t--- copying whole line ---\n");
+#endif
+ if (strlen(s) > TOKENS_HEADER_MAX_LENGTH) {
+ fprintf(stderr, "ERROR: Comment line length is too long (must be no longer than %ld characters)\n", TOKEN_CHR_MAX_LENGTH);
+ return STARCH_FATAL_ERROR;
+ }
+ /* copy whole line to chromosome variable, if memory is available */
+#ifdef __cplusplus
+ *chr = static_cast<char *>( malloc((strlen(s) + 1) * sizeof(**chr)) );
+#else
+ *chr = malloc((strlen(s) + 1) * sizeof(**chr));
+#endif
+ if (! *chr) {
+ fprintf(stderr, "ERROR: Ran out of memory while creating transform tokens\n");
+ return STARCH_FATAL_ERROR;
+ }
+ strncpy(*chr, s, strlen(s) + 1);
+ }
+#ifdef DEBUG
+ fprintf(stderr, "\t--- resulting chr [%s]\n", *chr);
+#endif
+ break;
+ }
+ case 1: {
+ /* test if element string is longer than allowed bounds */
+ if (strlen(buffer) > MAX_DEC_INTEGERS) {
+ fprintf(stderr, "ERROR: Start coordinate field length is too long ([%s] must be no greater than %ld characters)\n", buffer, MAX_DEC_INTEGERS);
+ return STARCH_FATAL_ERROR;
+ }
+ /* convert element string to start coordinate */
+#ifdef __cplusplus
+ *start = static_cast<int64_t>( strtoull(reinterpret_cast<const char *>( buffer ), NULL, STARCH_RADIX) );
+#else
+ *start = (int64_t) strtoull((const char *)buffer, NULL, STARCH_RADIX);
+#endif
+ /* test if start coordinate is larger than allowed bounds */
+#ifdef __cplusplus
+ if (*start > static_cast<int64_t>( MAX_COORD_VALUE )) {
+ fprintf(stderr, "ERROR: Start coordinate field value (%" PRId64 ") is too great (must be less than %" PRId64 ")\n", *start, static_cast<int64_t>( MAX_COORD_VALUE ));
+#else
+ if (*start > (int64_t) MAX_COORD_VALUE) {
+ fprintf(stderr, "ERROR: Start coordinate field value (%" PRId64 ") is too great (must be less than %" PRId64 ")\n", *start, (int64_t) MAX_COORD_VALUE);
+#endif
+ return STARCH_FATAL_ERROR;
+ }
+#ifdef DEBUG
+ fprintf(stderr, "\t--- resulting start [%" PRId64 "]\n", *start);
+#endif
+ break;
+ }
+ case 2: {
+ /* test if element string is longer than allowed bounds */
+ if (strlen(buffer) > MAX_DEC_INTEGERS) {
+ fprintf(stderr, "ERROR: Stop coordinate field length is too long (must be no greater than %ld characters)\n", MAX_DEC_INTEGERS);
+ return STARCH_FATAL_ERROR;
+ }
+ /* convert element string to stop coordinate */
+#ifdef __cplusplus
+ *stop = static_cast<int64_t>( strtoull(reinterpret_cast<const char *>( buffer ), NULL, STARCH_RADIX) );
+#else
+ *stop = (int64_t) strtoull((const char *)buffer, NULL, STARCH_RADIX);
+#endif
+ /* test if stop coordinate is larger than allowed bounds */
+#ifdef __cplusplus
+ if (*stop > static_cast<int64_t>( MAX_COORD_VALUE )) {
+ fprintf(stderr, "ERROR: Stop coordinate field value (%" PRId64 ") is too great (must be less than %" PRId64 ")\n", *stop, static_cast<int64_t>( MAX_COORD_VALUE ));
+#else
+ if (*stop > (int64_t) MAX_COORD_VALUE) {
+ fprintf(stderr, "ERROR: Stop coordinate field value (%" PRId64 ") is too great (must be less than %" PRId64 ")\n", *stop, (int64_t) MAX_COORD_VALUE);
+#endif
+ return STARCH_FATAL_ERROR;
+ }
+#ifdef DEBUG
+ fprintf(stderr, "\t--- resulting stop [%" PRId64 "]\n", *stop);
+#endif
+ break;
+ }
+ /* just keep filling the buffer until we reach s[sCnt]'s null -- we do tests later */
+ case 3:
+ break;
+ }
+ }
+ } while (s[sCnt++] != '\0');
+
+ if (elemCnt > 3) {
+ buffer[(charCnt - 1)] = '\0';
+ /* test id field length */
+ while ((buffer[idIdx] != delim) && (idIdx++ < TOKEN_ID_MAX_LENGTH)) {}
+ if (idIdx == TOKEN_ID_MAX_LENGTH) {
+ fprintf(stderr, "ERROR: Id field is too long (must be less than %ld characters long)\n", TOKEN_ID_MAX_LENGTH);
+ return STARCH_FATAL_ERROR;
+ }
+ /* test remnant of buffer, if there is more to look at */
+ if (charCnt > idIdx) {
+ while ((buffer[idIdx++] != '\0') && (restIdx++ < TOKEN_REST_MAX_LENGTH)) {}
+ if (restIdx == TOKEN_REST_MAX_LENGTH) {
+ fprintf(stderr, "ERROR: Remainder of BED input after id field is too long (must be less than %ld characters long)\n", TOKEN_REST_MAX_LENGTH);
+ return STARCH_FATAL_ERROR;
+ }
+ }
+#ifdef __cplusplus
+ *remainder = static_cast<char *>( malloc((strlen(buffer) + 1) * sizeof(**remainder)) );
+#else
+ *remainder = malloc((strlen(buffer) + 1) * sizeof(**remainder));
+#endif
+ if (! *remainder) {
+ fprintf(stderr, "ERROR: Ran out of memory handling token remainder\n");
+ return STARCH_FATAL_ERROR;
+ }
+#ifdef __cplusplus
+ strncpy(*remainder, reinterpret_cast<const char *>( buffer ), strlen(buffer) + 1);
+#else
+ strncpy(*remainder, (const char *)buffer, strlen(buffer) + 1);
+#endif
+#ifdef DEBUG
+ fprintf(stderr, "\t--- resulting remainder [%s]\n", *remainder);
+#endif
+ }
+
+ return 0;
+}
+
+int
+STARCH_createTransformTokensForHeaderlessInput(const char *s, const char delim, char **chr, int64_t *start, int64_t *stop, char **remainder)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH_createTransformTokensForHeaderlessInput() ---\n");
+#endif
+ unsigned int charCnt, sCnt, elemCnt;
+ char buffer[STARCH_BUFFER_MAX_LENGTH];
+ char *chrCopy = NULL;
+ char *remainderCopy = NULL;
+ unsigned int idIdx = 0U;
+ unsigned int restIdx = 0U;
+
+ charCnt = 0U;
+ sCnt = 0U;
+ elemCnt = 0U;
+
+ do {
+ buffer[charCnt++] = s[sCnt];
+ if ((s[sCnt] == delim) || (s[sCnt] == '\0')) {
+ if (elemCnt < 3) {
+ buffer[(charCnt - 1)] = '\0';
+ charCnt = 0;
+ }
+ switch (elemCnt) {
+ case 0: {
+#ifdef DEBUG
+ fprintf(stderr, "\tcase 0\n");
+#endif
+ /* test if element string is longer than allowed bounds */
+ if (strlen(buffer) > TOKEN_CHR_MAX_LENGTH) {
+ fprintf(stderr, "ERROR: Chromosome field length is too long (must be no longer than %ld characters)\n", TOKEN_CHR_MAX_LENGTH);
+ return STARCH_FATAL_ERROR;
+ }
+ /* copy element to chromosome variable, if memory is available */
+ if (! *chr)
+#ifdef __cplusplus
+ *chr = static_cast<char *>( malloc((strlen(buffer) + 1) * sizeof(**chr)) );
+#else
+ *chr = malloc((strlen(buffer) + 1) * sizeof(**chr));
+#endif
+ else if (strlen(buffer) > strlen(*chr)) {
+#ifdef __cplusplus
+ chrCopy = static_cast<char *>( realloc(*chr, strlen(buffer) * 2) );
+#else
+ chrCopy = realloc(*chr, strlen(buffer) * 2);
+#endif
+ if (!chrCopy) {
+ fprintf(stderr, "ERROR: Ran out of memory while extending chr token\n");
+ return STARCH_FATAL_ERROR;
+ }
+ *chr = chrCopy;
+ }
+ if (! *chr) {
+ fprintf(stderr, "ERROR: Ran out of memory while creating transform tokens\n");
+ return STARCH_FATAL_ERROR;
+ }
+#ifdef __cplusplus
+ strncpy(*chr, reinterpret_cast<const char *>( buffer ), strlen(buffer) + 1);
+#else
+ strncpy(*chr, (const char *)buffer, strlen(buffer) + 1);
+#endif
+ break;
+ }
+ case 1: {
+#ifdef DEBUG
+ fprintf(stderr, "\tcase 1\n");
+#endif
+ /* test if element string is longer than allowed bounds */
+ if (strlen(buffer) > MAX_DEC_INTEGERS) {
+ fprintf(stderr, "ERROR: Start coordinate field length is too long ([%s] must be no greater than %ld characters)\n", buffer, MAX_DEC_INTEGERS);
+ return STARCH_FATAL_ERROR;
+ }
+ /* convert element string to start coordinate */
+#ifdef __cplusplus
+ *start = static_cast<int64_t>( strtoll(reinterpret_cast<const char *>( buffer ), NULL, STARCH_RADIX) );
+#else
+ *start = (int64_t) strtoll((const char *)buffer, NULL, STARCH_RADIX);
+#endif
+ /* test if start coordinate is larger than allowed bounds */
+#ifdef __cplusplus
+ if (*start > static_cast<int64_t>( MAX_COORD_VALUE )) {
+ fprintf(stderr, "ERROR: Start coordinate field value (%" PRId64 ") is too great (must be less than %" PRId64 ")\n", *start, static_cast<int64_t>( MAX_COORD_VALUE ));
+#else
+ if (*start > (int64_t) MAX_COORD_VALUE) {
+ fprintf(stderr, "ERROR: Start coordinate field value (%" PRId64 ") is too great (must be less than %" PRId64 ")\n", *start, (int64_t) MAX_COORD_VALUE);
+#endif
+ return STARCH_FATAL_ERROR;
+ }
+ break;
+ }
+ case 2: {
+#ifdef DEBUG
+ fprintf(stderr, "\tcase 2\n");
+#endif
+ /* test if element string is longer than allowed bounds */
+ if (strlen(buffer) > MAX_DEC_INTEGERS) {
+ fprintf(stderr, "ERROR: Stop coordinate field length is too long (must be no greater than %ld characters)\n", MAX_DEC_INTEGERS);
+ return STARCH_FATAL_ERROR;
+ }
+ /* convert element string to stop coordinate */
+#ifdef __cplusplus
+ *stop = static_cast<int64_t>( strtoll(reinterpret_cast<const char *>( buffer ), NULL, STARCH_RADIX) );
+#else
+ *stop = (int64_t) strtoll((const char *)buffer, NULL, STARCH_RADIX);
+#endif
+ /* test if stop coordinate is larger than allowed bounds */
+#ifdef __cplusplus
+ if (*stop > static_cast<int64_t>( MAX_COORD_VALUE )) {
+ fprintf(stderr, "ERROR: Stop coordinate field value (%" PRId64 ") is too great (must be less than %" PRId64 ")\n", *stop, static_cast<int64_t>( MAX_COORD_VALUE ));
+ return STARCH_FATAL_ERROR;
+ }
+#else
+ if (*stop > (int64_t) MAX_COORD_VALUE) {
+ fprintf(stderr, "ERROR: Stop coordinate field value (%" PRId64 ") is too great (must be less than %" PRId64 ")\n", *stop, (int64_t) MAX_COORD_VALUE);
+ return STARCH_FATAL_ERROR;
+ }
+#endif
+ break;
+ }
+ /* just keep filling the buffer until we reach s[sCnt]'s null -- we do tests later */
+ case 3: {
+#ifdef DEBUG
+ fprintf(stderr, "\tcase 3\n");
+#endif
+ break;
+ }
+ }
+ elemCnt++;
+ }
+ } while (s[sCnt++] != '\0');
+
+ /* apply tests on id and score-strand-... ("rest") element strings */
+ if (elemCnt > 3) {
+ buffer[(charCnt - 1)] = '\0';
+ /* test id field length */
+ while ((buffer[idIdx] != delim) && (idIdx++ < TOKEN_ID_MAX_LENGTH)) {}
+ if (idIdx == TOKEN_ID_MAX_LENGTH) {
+ fprintf(stderr, "ERROR: Id field is too long (must be less than %ld characters long)\n", TOKEN_ID_MAX_LENGTH);
+ return STARCH_FATAL_ERROR;
+ }
+ /* test remnant ("rest") of buffer, if there is more to look at */
+ if (charCnt > idIdx) {
+ while ((buffer[idIdx++] != '\0') && (restIdx++ < TOKEN_REST_MAX_LENGTH)) {}
+ if (restIdx == TOKEN_REST_MAX_LENGTH) {
+ fprintf(stderr, "ERROR: Remainder of BED input after id field is too long (must be less than %ld characters long)\n", TOKEN_REST_MAX_LENGTH);
+ return STARCH_FATAL_ERROR;
+ }
+ }
+ /* resize remainder, if needed */
+ if (! *remainder)
+#ifdef __cplusplus
+ *remainder = static_cast<char *>( malloc((strlen(buffer) + 1) * sizeof(**remainder)) );
+#else
+ *remainder = malloc((strlen(buffer) + 1) * sizeof(**remainder));
+#endif
+ else if (strlen(buffer) > strlen(*remainder)) {
+#ifdef DEBUG
+ fprintf(stderr, "\tresizing remainder...\n");
+#endif
+#ifdef __cplusplus
+ remainderCopy = static_cast<char *>( realloc(*remainder, strlen(buffer) * 2) );
+#else
+ remainderCopy = realloc(*remainder, strlen(buffer) * 2);
+#endif
+ if (!remainderCopy) {
+ fprintf(stderr, "ERROR: Ran out of memory extending remainder token\n");
+ return STARCH_FATAL_ERROR;
+ }
+ *remainder = remainderCopy;
+ }
+ if (! *remainder) {
+ fprintf(stderr, "ERROR: Ran out of memory handling remainder token\n");
+ return STARCH_FATAL_ERROR;
+ }
+#ifdef __cplusplus
+ strncpy(*remainder, reinterpret_cast<const char *>( buffer ), strlen(buffer) + 1);
+#else
+ strncpy(*remainder, (const char *)buffer, strlen(buffer) + 1);
+#endif
+ }
+ else if (elemCnt < 2) {
+ fprintf(stderr, "ERROR: BED data is missing chromosome and/or coordinate data\n");
+ return STARCH_FATAL_ERROR;
+ }
+
+#ifdef DEBUG
+ fprintf(stderr, "\t (post create-transform-tokens: chr -> %s\n\tstart -> %" PRId64 "\n\tstop -> %" PRId64 "\n\tremainder -> %s\n", *chr, *start, *stop, *remainder);
+#endif
+
+ return 0;
+}
+
+int
+STARCH_transformInput(Metadata **md, const FILE *fp, const CompressionType type, const char *tag, const char *note)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH_transformInput() ---\n");
+#endif
+ int c;
+ int cIdx = 0;
+ int recIdx = 0;
+ char buffer[STARCH_BUFFER_MAX_LENGTH];
+ char *outFn = NULL;
+ FILE *outFnPtr = NULL;
+#ifdef __cplusplus
+ FILE *streamPtr = const_cast<FILE *>( fp );
+#else
+ FILE *streamPtr = (FILE *) fp;
+#endif
+ char *outCompressedFn = NULL;
+ char *remainder = NULL;
+ char *prevChromosome = NULL;
+ char *chromosome = NULL;
+ Metadata *firstRecord = NULL;
+ int64_t start = 0;
+ int64_t stop = 0;
+ int64_t previousStop = 0;
+ int64_t lastPosition = 0;
+ int64_t lcDiff = 0;
+ int64_t coordDiff = 0;
+ uint64_t outFnSize = 0;
+ Boolean withinChr = kStarchFalse;
+ unsigned long lineIdx = 0UL;
+ off_t outCompressedFnSize = 0;
+ char *legacyMdBuf = NULL;
+ char *dynamicMdBuf = NULL;
+ BedLineType lineType = kBedLineTypeUndefined;
+ char nonCoordLineBuf[STARCH_BUFFER_MAX_LENGTH] = {0};
+ Boolean nonCoordLineBufNeedsPrinting = kStarchFalse;
+ BaseCountType totalNonUniqueBases = 0;
+ BaseCountType totalUniqueBases = 0;
+ Boolean duplicateElementExistsFlag = STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE;
+ Boolean nestedElementExistsFlag = STARCH_DEFAULT_NESTED_ELEMENT_FLAG_VALUE;
+
+ if (!streamPtr)
+ streamPtr = stdin;
+
+ while ((c = fgetc(streamPtr)) != EOF) {
+#ifdef __cplusplus
+ buffer[cIdx] = static_cast<char>( c );
+#else
+ buffer[cIdx] = (char) c;
+#endif
+ if (c == '\n') {
+ lineIdx++;
+ buffer[cIdx] = '\0';
+ if (STARCH_createTransformTokens(buffer, '\t', &chromosome, &start, &stop, &remainder, &lineType) == 0) {
+ /*
+ Either previous chromosome is NULL, or current chromosome does
+ not equal previous chromosome, but the line must be of the
+ type 'kBedLineCoordinates' (cf. 'starchMetadataHelpers.h')
+ */
+
+ if ( (lineType == kBedLineCoordinates) && ((!prevChromosome) || (strcmp(chromosome, prevChromosome) != 0)) ) {
+ /* close old output file pointer */
+ if (outFnPtr != NULL) {
+ fclose(outFnPtr);
+ outFnPtr = NULL;
+
+ if (type == kBzip2) {
+ /* bzip-compress the previous file */
+#ifdef __cplusplus
+ if (STARCH_compressFileWithBzip2(reinterpret_cast<const char *>( outFn ), &outCompressedFn, static_cast<off_t *>( &outCompressedFnSize ) ) != 0) {
+ fprintf(stderr, "ERROR: Could not bzip2 compress per-chromosome output file %s\n", outFn);
+ return STARCH_FATAL_ERROR;
+ }
+#else
+ if (STARCH_compressFileWithBzip2((const char *)outFn, &outCompressedFn, (off_t *) &outCompressedFnSize ) != 0) {
+ fprintf(stderr, "ERROR: Could not bzip2 compress per-chromosome output file %s\n", outFn);
+ return STARCH_FATAL_ERROR;
+ }
+#endif
+ }
+ else if (type == kGzip) {
+ /* gzip-compress file */
+#ifdef __cplusplus
+ if (STARCH_compressFileWithGzip(reinterpret_cast<const char*>( outFn ), &outCompressedFn, static_cast<off_t *>( &outCompressedFnSize ) ) != 0) {
+ fprintf(stderr, "ERROR: Could not gzip compress per-chromosome output file %s\n", outFn);
+ return STARCH_FATAL_ERROR;
+ }
+#else
+ if (STARCH_compressFileWithGzip((const char*) outFn, &outCompressedFn, (off_t *) &outCompressedFnSize ) != 0) {
+ fprintf(stderr, "ERROR: Could not gzip compress per-chromosome output file %s\n", outFn);
+ return STARCH_FATAL_ERROR;
+ }
+#endif
+ }
+ else {
+ fprintf(stderr, "ERROR: Unknown compression regime\n");
+ return STARCH_FATAL_ERROR;
+ }
+ /* delete uncompressed file */
+ if (remove(outFn) != 0) {
+ fprintf(stderr, "ERROR: Could not delete per-chromosome output file %s\n", outFn);
+ return STARCH_FATAL_ERROR;
+ }
+
+ /* update metadata with compressed file attributes */
+ if (STARCH_updateMetadataForChromosome(md,
+ prevChromosome,
+ outCompressedFn,
+#ifdef __cplusplus
+ static_cast<uint64_t>( outCompressedFnSize ),
+#else
+ (uint64_t) outCompressedFnSize,
+#endif
+ lineIdx,
+ totalNonUniqueBases,
+ totalUniqueBases,
+ duplicateElementExistsFlag,
+ nestedElementExistsFlag) != STARCH_EXIT_SUCCESS) {
+ fprintf(stderr, "ERROR: Could not update metadata%s\n", outFn);
+ return STARCH_FATAL_ERROR;
+ }
+
+ /* cleanup */
+ free(outCompressedFn); outCompressedFn = NULL;
+ }
+
+ /* test if current chromosome is already a Metadata record */
+#ifdef __cplusplus
+ if (STARCH_chromosomeInMetadataRecords(reinterpret_cast<const Metadata *>( *md ), chromosome) == STARCH_EXIT_SUCCESS) {
+ fprintf(stderr, "ERROR: Found same chromosome in earlier portion of file. Possible interleaving issue? Be sure to first sort input with sort-bed or remove --do-not-sort option from conversion script.\n");
+ return STARCH_FATAL_ERROR;
+ }
+#else
+ if (STARCH_chromosomeInMetadataRecords((const Metadata *)*md, chromosome) == STARCH_EXIT_SUCCESS) {
+ fprintf(stderr, "ERROR: Found same chromosome in earlier portion of file. Possible interleaving issue? Be sure to first sort input with sort-bed or remove --do-not-sort option from conversion script.\n");
+ return STARCH_FATAL_ERROR;
+ }
+#endif
+
+ /* open new output file pointer */
+ if (!outFnPtr) {
+#ifdef __cplusplus
+ outFn = static_cast<char *>( malloc(strlen(chromosome) + strlen(tag) + 2) );
+#else
+ outFn = malloc(strlen(chromosome) + strlen(tag) + 2);
+#endif
+ sprintf(outFn, "%s.%s", chromosome, tag);
+ outFnPtr = STARCH_fopen(outFn, "a");
+ if (!outFnPtr) {
+ fprintf(stderr, "ERROR: Could not open an intermediate output file handle to %s\n", outFn);
+ return STARCH_FATAL_ERROR;
+ }
+ }
+ else {
+ fprintf(stderr, "ERROR: Could not open per-chromosome output file\n");
+ return STARCH_FATAL_ERROR;
+ }
+
+ /* add chromosome to metadata */
+ if (recIdx == 0) {
+ *md = STARCH_createMetadata(chromosome,
+ outFn,
+ outFnSize,
+ lineIdx,
+ totalNonUniqueBases,
+ totalUniqueBases,
+ duplicateElementExistsFlag,
+ nestedElementExistsFlag);
+ firstRecord = *md;
+ }
+ else {
+ *md = STARCH_addMetadata(*md,
+ chromosome,
+ outFn,
+ outFnSize,
+ lineIdx,
+ totalNonUniqueBases,
+ totalUniqueBases,
+ duplicateElementExistsFlag,
+ nestedElementExistsFlag);
+ }
+
+ /* make previous chromosome the current chromosome */
+ if (prevChromosome != NULL) {
+ free(prevChromosome);
+ prevChromosome = NULL;
+ }
+#ifdef __cplusplus
+ prevChromosome = static_cast<char *>( malloc(strlen(chromosome) + 1) );
+ strncpy(prevChromosome, reinterpret_cast<const char *>( chromosome ), strlen(chromosome) + 1);
+#else
+ prevChromosome = malloc(strlen(chromosome) + 1);
+ strncpy(prevChromosome, (const char *)chromosome, strlen(chromosome) + 1);
+#endif
+
+ /* reset flag, lastPosition and lcDiff, increment record index */
+ withinChr = kStarchFalse;
+ lastPosition = 0;
+ previousStop = 0;
+ lcDiff = 0;
+ lineIdx = 0UL;
+ totalNonUniqueBases = 0UL;
+ totalUniqueBases = 0UL;
+ duplicateElementExistsFlag = STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE;
+ nestedElementExistsFlag = STARCH_DEFAULT_NESTED_ELEMENT_FLAG_VALUE;
+ recIdx++;
+ }
+ else if (lineType == kBedLineCoordinates) {
+ withinChr = kStarchFalse;
+ }
+
+ /* transform data, depending on line type */
+
+ if (lineType != kBedLineCoordinates) {
+ /*
+ It is possible for custom track header data to collect on two or
+ more consecutive lines. So we concatenate with any previously collected
+ header data, which will then be sent to the output file pointer
+ at some point in the future as one big chunk...
+
+ Note that we do not expect that contiguous custom track header information
+ will be larger than STARCH_BUFFER_MAX_LENGTH bytes. This might well prove
+ to be a dangerous assumption, but probably not, as 1 MB is a lot of custom
+ track data in one contiguous block. This situation seems fairly unlikely.
+ */
+#ifdef __cplusplus
+ strncat(nonCoordLineBuf, reinterpret_cast<const char *>( chromosome ), strlen(chromosome) + 1);
+#else
+ strncat(nonCoordLineBuf, (const char *)chromosome, strlen(chromosome) + 1);
+#endif
+ nonCoordLineBuf[strlen(nonCoordLineBuf)] = '\n';
+ nonCoordLineBufNeedsPrinting = kStarchTrue;
+ }
+ else {
+ if (nonCoordLineBufNeedsPrinting == kStarchTrue) {
+ /*
+ if there's custom track data that needs printin', we do so now
+ and reset the buffer and print flag
+ */
+ fprintf(outFnPtr, "%s", nonCoordLineBuf);
+ memset(nonCoordLineBuf, 0, strlen(nonCoordLineBuf));
+ nonCoordLineBufNeedsPrinting = kStarchFalse;
+ }
+ if (stop > start)
+ coordDiff = stop - start;
+ else {
+ fprintf(stderr, "ERROR: Bed data is corrupt at line %lu (stop: %" PRId64 ", start: %" PRId64 ")\n", lineIdx, stop, start);
+ return STARCH_FATAL_ERROR;
+ }
+ if (coordDiff != lcDiff) {
+ lcDiff = coordDiff;
+ fprintf( outFnPtr, "p%" PRId64 "\n", coordDiff );
+ }
+ if (lastPosition != 0) {
+ if (remainder)
+ fprintf( outFnPtr, "%" PRId64 "\t%s\n", (start - lastPosition), remainder );
+ else
+ fprintf( outFnPtr, "%" PRId64 "\n", (start - lastPosition) );
+ }
+ else {
+ if (remainder)
+ fprintf( outFnPtr, "%" PRId64 "\t%s\n", start, remainder );
+ else
+ fprintf( outFnPtr, "%" PRId64 "\n", start );
+ }
+#ifdef __cplusplus
+ totalNonUniqueBases += static_cast<BaseCountType>( stop - start );
+ if (previousStop <= start)
+ totalUniqueBases += static_cast<BaseCountType>( stop - start );
+ else if (previousStop < stop)
+ totalUniqueBases += static_cast<BaseCountType>( stop - previousStop );
+#else
+ totalNonUniqueBases += (BaseCountType) (stop - start);
+ if (previousStop <= start)
+ totalUniqueBases += (BaseCountType) (stop - start);
+ else if (previousStop < stop)
+ totalUniqueBases += (BaseCountType) (stop - previousStop);
+#endif
+ lastPosition = stop;
+ previousStop = (stop > previousStop) ? stop : previousStop;
+ }
+
+ /* cleanup unused data */
+ if (withinChr == kStarchTrue) {
+ free(chromosome); chromosome = NULL;
+ }
+ if (remainder) {
+ free(remainder); remainder = NULL;
+ }
+ cIdx = 0;
+ }
+ else {
+ fprintf(stderr, "ERROR: Bed data could not be transformed\n");
+ return STARCH_FATAL_ERROR;
+ }
+ }
+ else
+ cIdx++;
+ }
+
+ /* compress the remaining file */
+ if (outFnPtr != NULL) {
+ fclose(outFnPtr); outFnPtr = NULL;
+ if (type == kBzip2) {
+#ifdef __cplusplus
+ if (STARCH_compressFileWithBzip2(reinterpret_cast<const char *>( outFn ), &outCompressedFn, static_cast<off_t *>( &outCompressedFnSize ) ) != 0) {
+#else
+ if (STARCH_compressFileWithBzip2((const char *)outFn, &outCompressedFn, (off_t *) &outCompressedFnSize ) != 0) {
+#endif
+ fprintf(stderr, "ERROR: Could not bzip2 compress per-chromosome output file %s\n", outFn);
+ return STARCH_FATAL_ERROR;
+ }
+ }
+ else if (type == kGzip) {
+ /* gzip-compress file */
+#ifdef __cplusplus
+ if (STARCH_compressFileWithGzip(reinterpret_cast<const char*>( outFn ), &outCompressedFn, static_cast<off_t *>( &outCompressedFnSize ) ) != 0) {
+#else
+ if (STARCH_compressFileWithGzip((const char*)outFn, &outCompressedFn, (off_t *) &outCompressedFnSize ) != 0) {
+#endif
+ fprintf(stderr, "ERROR: Could not gzip compress per-chromosome output file %s\n", outFn);
+ return STARCH_FATAL_ERROR;
+ }
+ }
+ else {
+ fprintf(stderr, "ERROR: Unknown compression regime\n");
+ return STARCH_FATAL_ERROR;
+ }
+ /* delete uncompressed file */
+ if (remove(outFn) != 0) {
+ fprintf(stderr, "ERROR: Could not delete per-chromosome output file %s -- is the input's first column sorted lexicographically?\n", outFn);
+ return STARCH_FATAL_ERROR;
+ }
+ /* update metadata with compressed file attributes */
+ lineIdx++;
+ STARCH_updateMetadataForChromosome(md,
+ prevChromosome,
+ outCompressedFn,
+#ifdef __cplusplus
+ static_cast<uint64_t>( outCompressedFnSize ),
+#else
+ (uint64_t) outCompressedFnSize,
+#endif
+ lineIdx,
+ totalNonUniqueBases,
+ totalUniqueBases,
+ duplicateElementExistsFlag,
+ nestedElementExistsFlag);
+ free(outCompressedFn); outCompressedFn = NULL;
+ }
+
+ /* reposition metadata pointer to first record */
+ *md = firstRecord;
+
+ /* write metadata header to buffer */
+ /* and concatenate metadata header with compressed files */
+ if ((STARCH_MAJOR_VERSION == 1) && (STARCH_MINOR_VERSION == 0) && (STARCH_REVISION_VERSION == 0)) {
+#ifdef __cplusplus
+ legacyMdBuf = static_cast<char *>( malloc(STARCH_LEGACY_METADATA_SIZE + 1) );
+#else
+ legacyMdBuf = malloc(STARCH_LEGACY_METADATA_SIZE + 1);
+#endif
+ if (legacyMdBuf != NULL) {
+#ifdef __cplusplus
+ if (STARCH_writeJSONMetadata(reinterpret_cast<const Metadata *>( *md ), &legacyMdBuf, const_cast<CompressionType *>( &type ), kStarchFalse, reinterpret_cast<const char *>( note )) != STARCH_EXIT_SUCCESS) {
+#else
+ if (STARCH_writeJSONMetadata((const Metadata *)*md, &legacyMdBuf, (CompressionType *) &type, kStarchFalse, (const char *) note) != STARCH_EXIT_SUCCESS) {
+#endif
+ fprintf(stderr, "ERROR: Could not write metadata to buffer\n");
+ return STARCH_FATAL_ERROR;
+ }
+#ifdef __cplusplus
+ if (STARCH_mergeMetadataWithCompressedFiles(reinterpret_cast<const Metadata *>( *md ), legacyMdBuf) != STARCH_EXIT_SUCCESS) {
+#else
+ if (STARCH_mergeMetadataWithCompressedFiles((const Metadata *)*md, legacyMdBuf) != STARCH_EXIT_SUCCESS) {
+#endif
+ fprintf(stderr, "ERROR: Could not merge metadata with compressed streams\n");
+ return STARCH_FATAL_ERROR;
+ }
+ free(legacyMdBuf);
+ legacyMdBuf = NULL;
+ }
+ else
+ return STARCH_FATAL_ERROR;
+ }
+ else {
+ /* this is the custom header version of the parser, so we set headerFlag to TRUE */
+#ifdef __cplusplus
+ if (STARCH_writeJSONMetadata(reinterpret_cast<const Metadata *>( *md ), &dynamicMdBuf, const_cast<CompressionType *>( &type ), kStarchTrue, reinterpret_cast<const char *>( note )) != STARCH_EXIT_SUCCESS) {
+#else
+ if (STARCH_writeJSONMetadata((const Metadata *)*md, &dynamicMdBuf, (CompressionType *) &type, kStarchTrue, (const char *) note) != STARCH_EXIT_SUCCESS) {
+#endif
+ fprintf(stderr, "ERROR: Could not write metadata to buffer\n");
+ return STARCH_FATAL_ERROR;
+ }
+#ifdef __cplusplus
+ if (STARCH_mergeMetadataWithCompressedFiles(reinterpret_cast<const Metadata *>( *md ), dynamicMdBuf) != STARCH_EXIT_SUCCESS) {
+#else
+ if (STARCH_mergeMetadataWithCompressedFiles((const Metadata *)*md, dynamicMdBuf) != STARCH_EXIT_SUCCESS) {
+#endif
+ fprintf(stderr, "ERROR: Could not merge metadata with compressed streams\n");
+ return STARCH_FATAL_ERROR;
+ }
+ if (dynamicMdBuf != NULL) {
+ free(dynamicMdBuf);
+ dynamicMdBuf = NULL;
+ }
+ else
+ return STARCH_FATAL_ERROR;
+ }
+
+ /* remove compressed files */
+#ifdef __cplusplus
+ if (STARCH_deleteCompressedFiles(reinterpret_cast<const Metadata *>( *md )) != STARCH_EXIT_SUCCESS) {
+#else
+ if (STARCH_deleteCompressedFiles((const Metadata *)*md) != STARCH_EXIT_SUCCESS) {
+#endif
+ fprintf(stderr, "ERROR: Could not delete compressed streams\n");
+ return STARCH_FATAL_ERROR;
+ }
+
+ /* cleanup */
+ free(prevChromosome);
+
+ return 0;
+}
+
+int
+STARCH_transformHeaderlessInput(Metadata **md, const FILE *fp, const CompressionType type, const char *tag, const Boolean finalizeFlag, const char *note)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH_transformHeaderlessInput() ---\n");
+#endif
+ int c;
+ int cIdx = 0;
+ int recIdx = 0;
+ char buffer[STARCH_BUFFER_MAX_LENGTH];
+ char *outFn = NULL;
+ FILE *outFnPtr = NULL;
+#ifdef __cplusplus
+ FILE *streamPtr = const_cast<FILE *>( fp );
+#else
+ FILE *streamPtr = (FILE *) fp;
+#endif
+ char *outCompressedFn = NULL;
+ char *remainder = NULL;
+ char *prevChromosome = NULL;
+ char *chromosome = NULL;
+ Metadata *firstRecord = NULL;
+ int64_t start = 0;
+ int64_t stop = 0;
+ int64_t previousStop = 0;
+ int64_t lastPosition = 0;
+ int64_t lcDiff = 0;
+ int64_t coordDiff = 0;
+ uint64_t outFnSize = 0;
+ Boolean withinChr = kStarchFalse;
+ unsigned long lineIdx = 0UL;
+ off_t outCompressedFnSize = 0;
+ char *legacyMdBuf = NULL;
+ char *dynamicMdBuf = NULL;
+ BaseCountType totalNonUniqueBases = 0;
+ BaseCountType totalUniqueBases = 0;
+ Boolean duplicateElementExistsFlag = STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE;
+ Boolean nestedElementExistsFlag = STARCH_DEFAULT_NESTED_ELEMENT_FLAG_VALUE;
+
+ if (!streamPtr)
+ streamPtr = stdin;
+
+ while ((c = fgetc(streamPtr)) != EOF) {
+#ifdef __cplusplus
+ buffer[cIdx] = static_cast<char>( c );
+#else
+ buffer[cIdx] = (char) c;
+#endif
+ if (c == '\n') {
+ lineIdx++;
+ buffer[cIdx] = '\0';
+ if (STARCH_createTransformTokensForHeaderlessInput(buffer, '\t', &chromosome, &start, &stop, &remainder) == 0)
+ {
+ /*
+ Either previous chromosome is NULL, or current chromosome does
+ not equal previous chromosome
+ */
+
+ if ( (!prevChromosome) || (strcmp(chromosome, prevChromosome) != 0) )
+ {
+ /* close old output file pointer */
+ if (outFnPtr != NULL) {
+ fclose(outFnPtr);
+ outFnPtr = NULL;
+
+ if (type == kBzip2) {
+ /* bzip-compress the previous file */
+#ifdef __cplusplus
+ if (STARCH_compressFileWithBzip2(reinterpret_cast<const char *>( outFn ), &outCompressedFn, static_cast<off_t *>( &outCompressedFnSize ) ) != 0) {
+#else
+ if (STARCH_compressFileWithBzip2((const char *)outFn, &outCompressedFn, (off_t *) &outCompressedFnSize ) != 0) {
+#endif
+ fprintf(stderr, "ERROR: Could not bzip2 compress per-chromosome output file %s\n", outFn);
+ return STARCH_FATAL_ERROR;
+ }
+ }
+ else if (type == kGzip) {
+ /* gzip-compress file */
+#ifdef __cplusplus
+ if (STARCH_compressFileWithGzip(reinterpret_cast<const char*>( outFn ), &outCompressedFn, static_cast<off_t *>( &outCompressedFnSize ) ) != 0) {
+#else
+ if (STARCH_compressFileWithGzip((const char*) outFn, &outCompressedFn, (off_t *) &outCompressedFnSize ) != 0) {
+#endif
+ fprintf(stderr, "ERROR: Could not gzip compress per-chromosome output file %s\n", outFn);
+ return STARCH_FATAL_ERROR;
+ }
+ }
+ else {
+ fprintf(stderr, "ERROR: Unknown compression regime\n");
+ return STARCH_FATAL_ERROR;
+ }
+ /* delete uncompressed file */
+ if (remove(outFn) != 0) {
+ fprintf(stderr, "ERROR: Could not delete per-chromosome output file %s\n", outFn);
+ return STARCH_FATAL_ERROR;
+ }
+
+ /* update metadata with compressed file attributes */
+ if (STARCH_updateMetadataForChromosome(md,
+ prevChromosome,
+ outCompressedFn,
+#ifdef __cplusplus
+ static_cast<uint64_t>( outCompressedFnSize ),
+#else
+ (uint64_t) outCompressedFnSize,
+#endif
+ lineIdx,
+ totalNonUniqueBases,
+ totalUniqueBases,
+ duplicateElementExistsFlag,
+ nestedElementExistsFlag) != STARCH_EXIT_SUCCESS) {
+ fprintf(stderr, "ERROR: Could not update metadata%s\n", outFn);
+ return STARCH_FATAL_ERROR;
+ }
+
+ /* cleanup */
+ free(outCompressedFn); outCompressedFn = NULL;
+ }
+
+ /* test if current chromosome is already a Metadata record */
+#ifdef __cplusplus
+ if (STARCH_chromosomeInMetadataRecords(reinterpret_cast<const Metadata *>( *md ), chromosome) == STARCH_EXIT_SUCCESS) {
+#else
+ if (STARCH_chromosomeInMetadataRecords((const Metadata *)*md, chromosome) == STARCH_EXIT_SUCCESS) {
+#endif
+ fprintf(stderr, "ERROR: Found same chromosome in earlier portion of file. Possible interleaving issue? Be sure to first sort input with sort-bed or remove --do-not-sort option from conversion script.\n");
+ return STARCH_FATAL_ERROR;
+ }
+
+ /* open new output file pointer */
+ if (!outFnPtr) {
+#ifdef __cplusplus
+ outFn = static_cast<char *>( malloc(strlen(chromosome) + strlen(tag) + 2) );
+#else
+ outFn = malloc(strlen(chromosome) + strlen(tag) + 2);
+#endif
+ sprintf(outFn, "%s.%s", chromosome, tag);
+ outFnPtr = STARCH_fopen(outFn, "a");
+ if (!outFnPtr) {
+ fprintf(stderr, "ERROR: Could not open an intermediate output file handle to %s\n", outFn);
+ return STARCH_FATAL_ERROR;
+ }
+ }
+ else {
+ fprintf(stderr, "ERROR: Could not open per-chromosome output file\n");
+ return STARCH_FATAL_ERROR;
+ }
+
+ /* add chromosome to metadata */
+ if (! *md) {
+ *md = STARCH_createMetadata(chromosome,
+ outFn,
+ outFnSize,
+ lineIdx,
+ totalNonUniqueBases,
+ totalUniqueBases,
+ duplicateElementExistsFlag,
+ nestedElementExistsFlag);
+ firstRecord = *md;
+ }
+ else {
+ *md = STARCH_addMetadata(*md,
+ chromosome,
+ outFn,
+ outFnSize,
+ lineIdx,
+ totalNonUniqueBases,
+ totalUniqueBases,
+ duplicateElementExistsFlag,
+ nestedElementExistsFlag);
+ }
+
+ /* make previous chromosome the current chromosome */
+ if (prevChromosome != NULL) {
+ free(prevChromosome);
+ prevChromosome = NULL;
+ }
+#ifdef __cplusplus
+ prevChromosome = static_cast<char *>( malloc(strlen(chromosome) + 1) );
+ strncpy(prevChromosome, reinterpret_cast<const char *>( chromosome ), strlen(chromosome) + 1);
+#else
+ prevChromosome = malloc(strlen(chromosome) + 1);
+ strncpy(prevChromosome, (const char *)chromosome, strlen(chromosome) + 1);
+#endif
+
+ /* reset flag, lastPosition and lcDiff, increment record index */
+ withinChr = kStarchFalse;
+ lastPosition = 0;
+ previousStop = 0;
+ lcDiff = 0;
+ lineIdx = 0UL;
+ totalNonUniqueBases = 0UL;
+ totalUniqueBases = 0UL;
+ duplicateElementExistsFlag = STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE;
+ nestedElementExistsFlag = STARCH_DEFAULT_NESTED_ELEMENT_FLAG_VALUE;
+ recIdx++;
+ }
+ else
+ withinChr = kStarchTrue;
+
+ /* transform data */
+ if (stop > start)
+ coordDiff = stop - start;
+ else {
+ fprintf(stderr, "ERROR: BED data is corrupt at line %lu (stop: %" PRId64 ", start: %" PRId64 ")\n", lineIdx, stop, start);
+ return STARCH_FATAL_ERROR;
+ }
+ if (coordDiff != lcDiff) {
+ lcDiff = coordDiff;
+#ifdef DEBUG
+ fprintf(stderr, "\tp%" PRId64 "\n", coordDiff);
+#endif
+ fprintf(outFnPtr, "p%" PRId64 "\n", coordDiff );
+ }
+ if (lastPosition != 0) {
+ if (remainder) {
+#ifdef DEBUG
+ fprintf(stderr, "\t%" PRId64 "\t%s\n", (start - lastPosition), remainder);
+#endif
+ fprintf(outFnPtr, "%" PRId64 "\t%s\n", (start - lastPosition), remainder );
+ }
+ else {
+#ifdef DEBUG
+ fprintf(stderr, "\t%" PRId64 "\n", (start - lastPosition));
+#endif
+ fprintf(outFnPtr, "%" PRId64 "\n", (start - lastPosition) );
+ }
+ }
+ else {
+ if (remainder) {
+#ifdef DEBUG
+ fprintf(stderr, "\t%" PRId64 "\t%s\n", start, remainder );
+#endif
+ fprintf(outFnPtr, "%" PRId64 "\t%s\n", start, remainder );
+ }
+ else {
+#ifdef DEBUG
+ fprintf(stderr, "\t%" PRId64 "\n", start );
+#endif
+ fprintf(outFnPtr, "%" PRId64 "\n", start );
+ }
+ }
+#ifdef __cplusplus
+ totalNonUniqueBases += static_cast<BaseCountType>( stop - start );
+ if (previousStop <= start)
+ totalUniqueBases += static_cast<BaseCountType>( stop - start );
+ else if (previousStop < stop)
+ totalUniqueBases += static_cast<BaseCountType>( stop - previousStop );
+#else
+ totalNonUniqueBases += (BaseCountType) (stop - start);
+ if (previousStop <= start)
+ totalUniqueBases += (BaseCountType) (stop - start);
+ else if (previousStop < stop)
+ totalUniqueBases += (BaseCountType) (stop - previousStop);
+#endif
+ lastPosition = stop;
+ previousStop = (stop > previousStop) ? stop : previousStop;
+
+ /* cleanup unused data */
+ if (withinChr == kStarchTrue)
+ free(chromosome), chromosome = NULL;
+ if (remainder)
+ free(remainder), remainder = NULL;
+ cIdx = 0;
+ }
+ else {
+ fprintf(stderr, "ERROR: BED data could not be transformed\n");
+ return STARCH_FATAL_ERROR;
+ }
+ }
+ else
+ cIdx++;
+ }
+
+ /* compress the remaining file */
+ if (outFnPtr != NULL) {
+ fclose(outFnPtr);
+ outFnPtr = NULL;
+
+ if (type == kBzip2) {
+#ifdef __cplusplus
+ if (STARCH_compressFileWithBzip2(reinterpret_cast<const char *>( outFn ),
+ &outCompressedFn,
+ static_cast<off_t *>( &outCompressedFnSize )) != 0) {
+ fprintf(stderr, "ERROR: Could not bzip2 compress per-chromosome output file %s\n", outFn);
+ return STARCH_FATAL_ERROR;
+ }
+#else
+ if (STARCH_compressFileWithBzip2((const char *)outFn,
+ &outCompressedFn,
+ (off_t *) &outCompressedFnSize) != 0) {
+ fprintf(stderr, "ERROR: Could not bzip2 compress per-chromosome output file %s\n", outFn);
+ return STARCH_FATAL_ERROR;
+ }
+#endif
+ }
+ else if (type == kGzip) {
+ /* gzip-compress file */
+#ifdef __cplusplus
+ if (STARCH_compressFileWithGzip(reinterpret_cast<const char*>( outFn ),
+ &outCompressedFn,
+ static_cast<off_t *>( &outCompressedFnSize )) != 0) {
+ fprintf(stderr, "ERROR: Could not gzip compress per-chromosome output file %s\n", outFn);
+ return STARCH_FATAL_ERROR;
+ }
+#else
+ if (STARCH_compressFileWithGzip((const char*)outFn,
+ &outCompressedFn,
+ (off_t *) &outCompressedFnSize) != 0) {
+ fprintf(stderr, "ERROR: Could not gzip compress per-chromosome output file %s\n", outFn);
+ return STARCH_FATAL_ERROR;
+ }
+#endif
+ }
+ else {
+ fprintf(stderr, "ERROR: Unknown compression regime\n");
+ return STARCH_FATAL_ERROR;
+ }
+
+ /* delete uncompressed, transformed file */
+ if (remove(outFn) != 0) {
+ fprintf(stderr, "ERROR: Could not delete per-chromosome output file %s -- is the input's first column sorted lexicographically?\n", outFn);
+ return STARCH_FATAL_ERROR;
+ }
+
+ /* update metadata with compressed file attributes */
+ lineIdx++;
+ STARCH_updateMetadataForChromosome(md,
+ prevChromosome,
+ outCompressedFn,
+#ifdef __cplusplus
+ static_cast<uint64_t>( outCompressedFnSize ),
+#else
+ (uint64_t) outCompressedFnSize,
+#endif
+ lineIdx,
+ totalNonUniqueBases,
+ totalUniqueBases,
+ duplicateElementExistsFlag,
+ nestedElementExistsFlag);
+
+ free(outCompressedFn); outCompressedFn = NULL;
+ free(outFn); outFn = NULL;
+ }
+
+ /*
+ We return early if we don't need to bundle up the starch archive
+ at this stage. We do this for the starchcat utility, for example,
+ because we're probably in the middle of transforming multiple
+ streams...
+ */
+
+ if (finalizeFlag == kStarchFalse)
+ return 0;
+
+ /*
+ Otherwise, we wrap things up. In the future, this will go into its
+ own function for clarity...
+ */
+
+ /* reposition metadata pointer to first record */
+ *md = firstRecord;
+
+ /* write metadata header to buffer */
+ /* concatenate metadata header with compressed files */
+ if ((STARCH_MAJOR_VERSION == 1) && (STARCH_MINOR_VERSION == 0) && (STARCH_REVISION_VERSION == 0)) {
+#ifdef __cplusplus
+ legacyMdBuf = static_cast<char *>( malloc(STARCH_LEGACY_METADATA_SIZE + 1) );
+#else
+ legacyMdBuf = malloc(STARCH_LEGACY_METADATA_SIZE + 1);
+#endif
+ if (legacyMdBuf != NULL) {
+ /* headerless input was not supported in this version, so it is set to FALSE */
+#ifdef __cplusplus
+ if (STARCH_writeJSONMetadata(reinterpret_cast<const Metadata *>( *md ),
+ &legacyMdBuf,
+ const_cast<CompressionType *>( &type ),
+ kStarchFalse,
+ reinterpret_cast<const char *>( note )) != STARCH_EXIT_SUCCESS) {
+#else
+ if (STARCH_writeJSONMetadata((const Metadata *) *md,
+ &legacyMdBuf,
+ (CompressionType *) &type,
+ kStarchFalse,
+ (const char *) note) != STARCH_EXIT_SUCCESS) {
+#endif
+ fprintf(stderr, "ERROR: Could not write metadata to buffer\n");
+ return STARCH_FATAL_ERROR;
+ }
+#ifdef __cplusplus
+ if (STARCH_mergeMetadataWithCompressedFiles(reinterpret_cast<const Metadata *>( *md ), legacyMdBuf) != STARCH_EXIT_SUCCESS) {
+#else
+ if (STARCH_mergeMetadataWithCompressedFiles((const Metadata *) *md, legacyMdBuf) != STARCH_EXIT_SUCCESS) {
+#endif
+ fprintf(stderr, "ERROR: Could not merge metadata with compressed streams\n");
+ return STARCH_FATAL_ERROR;
+ }
+ free(legacyMdBuf);
+ legacyMdBuf = NULL;
+ }
+ else
+ return STARCH_FATAL_ERROR;
+ }
+ else {
+ /* headerless input means headerFlag is FALSE */
+#ifdef __cplusplus
+ if (STARCH_writeJSONMetadata(reinterpret_cast<const Metadata *>( *md ),
+ &dynamicMdBuf,
+ const_cast<CompressionType *>( &type ),
+ kStarchFalse,
+ reinterpret_cast<const char *>( note )) != STARCH_EXIT_SUCCESS) {
+#else
+ if (STARCH_writeJSONMetadata((const Metadata *) *md,
+ &dynamicMdBuf,
+ (CompressionType *) &type,
+ kStarchFalse,
+ (const char *) note) != STARCH_EXIT_SUCCESS) {
+#endif
+ fprintf(stderr, "ERROR: Could not write metadata to buffer\n");
+ return STARCH_FATAL_ERROR;
+ }
+#ifdef __cplusplus
+ if (STARCH_mergeMetadataWithCompressedFiles(reinterpret_cast<const Metadata *>( *md ), dynamicMdBuf) != STARCH_EXIT_SUCCESS) {
+#else
+ if (STARCH_mergeMetadataWithCompressedFiles((const Metadata *) *md, dynamicMdBuf) != STARCH_EXIT_SUCCESS) {
+#endif
+ fprintf(stderr, "ERROR: Could not merge metadata with compressed streams\n");
+ return STARCH_FATAL_ERROR;
+ }
+
+ if (dynamicMdBuf != NULL) {
+ free(dynamicMdBuf);
+ dynamicMdBuf = NULL;
+ }
+ else
+ return STARCH_FATAL_ERROR;
+ }
+
+ /* remove compressed files */
+#ifdef __cplusplus
+ if (STARCH_deleteCompressedFiles(reinterpret_cast<const Metadata *>( *md )) != STARCH_EXIT_SUCCESS) {
+#else
+ if (STARCH_deleteCompressedFiles((const Metadata *)*md) != STARCH_EXIT_SUCCESS) {
+#endif
+ fprintf(stderr, "ERROR: Could not delete compressed streams\n");
+ return STARCH_FATAL_ERROR;
+ }
+
+ /* cleanup */
+ free(prevChromosome);
+
+ return 0;
+}
+
+Boolean
+STARCH_fileExists(const char *fn)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH_fileExists() ---\n");
+#endif
+ struct stat buf;
+ int i = stat (fn, &buf);
+
+ /*
+ Regarding 64-bit support
+ cf. http://www.gnu.org/s/libc/manual/html_node/Reading-Attributes.html
+
+ When the sources are compiled with _FILE_OFFSET_BITS == 64 this function is
+ available under the name stat and so transparently replaces the interface for
+ small files on 32-bit machines.
+ */
+
+ if (i == 0)
+ return kStarchTrue;
+
+ return kStarchFalse;
+}
+
+char *
+STARCH_strndup(const char *s, size_t n)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH_strndup() ---\n");
+#endif
+ char *result;
+ size_t len = strlen(s);
+
+ if (n < len)
+ len = n;
+
+#ifdef __cplusplus
+ result = static_cast<char *>( malloc(len + 1) );
+#else
+ result = malloc(len + 1);
+#endif
+
+ if (!result)
+ return NULL;
+
+ result[len] = '\0';
+#ifdef __cplusplus
+ return static_cast<char *>( memcpy (result, s, len) );
+#else
+ return (char *) memcpy (result, s, len);
+#endif
+}
+
+int
+STARCH2_transformInput(unsigned char **header, Metadata **md, const FILE *inFp, const CompressionType compressionType, const char *tag, const char *note, const Boolean headerFlag)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH2_transformInput() ---\n");
+#endif
+ /*
+ Overview of Starch rev. 2
+ ------------------------------------------------
+
+ We reserve a 4-byte header at the front of the file. The header contains
+ the following data:
+
+ * magic number - the magic number '[ca][5c][ad][e5]' identifies this
+ as a Starch rev. 2-formatted file
+
+ (4 bytes, constant)
+
+ At the end of the file, we write 128 bytes:
+
+ * offset - a zero-padded 16-digit value marks the byte
+ into the file at which the archive's metadata
+ starts (including the 4-byte header)
+
+ (16 bytes, calculated)
+
+ * hash - a SHA-1 hash of the metadata string, to validate
+ archive integrity
+
+ (20 bytes, calculated)
+
+ * reserved - we keep 92 bytes of space free, in case we need it
+ for future purposes
+
+ (92 bytes, zeros)
+
+ Before these 128 bytes, the compressed, per-chromosome streams start, and
+ we then wrap up by writing the metadata at the end of the file, followed by
+ the footer.
+ */
+
+ if (STARCH2_initializeStarchHeader(header) != STARCH_EXIT_SUCCESS) {
+ fprintf(stderr, "ERROR: Could not initialize archive header.\n");
+ return STARCH_EXIT_FAILURE;
+ }
+
+ if (STARCH2_writeStarchHeaderToOutputFp(*header, stdout) != STARCH_EXIT_SUCCESS) {
+ fprintf(stderr, "ERROR: Could not write archive header to output file pointer.\n");
+ return STARCH_EXIT_FAILURE;
+ }
+
+ if (headerFlag == kStarchFalse) {
+ if (STARCH2_transformHeaderlessBEDInput(inFp, md, compressionType, tag, note) != STARCH_EXIT_SUCCESS) {
+ fprintf(stderr, "ERROR: Could not write transformed/compressed data to output file pointer.\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ }
+ else {
+ if (STARCH2_transformHeaderedBEDInput(inFp, md, compressionType, tag, note) != STARCH_EXIT_SUCCESS) {
+ fprintf(stderr, "ERROR: Could not write transformed/compressed data to output file pointer.\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ }
+
+ /*
+ 1. Read through inFp
+ 2. Transform a chromosome's worth of data ("record")
+ 3. Write record to outFp
+ 4. Add record description to metadata (md)
+ 5. Repeat 1-4 until EOF of BED input
+ 6. Calculate JSON string from metadata (md)
+ 7. Write JSON to outFp
+ 8. Take SHA-1 hash of JSON string
+ 9. Write 'offset' and 'hash' values to archive header section of outFp
+ 10. Close outFp
+ */
+
+#ifdef DEBUG
+ fprintf(stderr, "\ttag: %s\n\tnote: %s\n", tag, note);
+ STARCH2_printStarchHeader(*header);
+#endif
+
+ return STARCH_EXIT_SUCCESS;
+}
+
+int
+STARCH2_transformHeaderedBEDInput(const FILE *inFp, Metadata **md, const CompressionType compressionType, const char *tag, const char *note)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH2_transformHeaderedBEDInput() ---\n");
+#endif
+ int c;
+ int cIdx = 0;
+ char untransformedBuffer[STARCH_BUFFER_MAX_LENGTH];
+ char intermediateBuffer[STARCH_BUFFER_MAX_LENGTH];
+ char transformedBuffer[STARCH_BUFFER_MAX_LENGTH];
+ unsigned long lineIdx = 0UL;
+ int64_t start = 0;
+ int64_t stop = 0;
+ int64_t pStart = -1;
+ int64_t pStop = -1;
+ int64_t previousStop = 0;
+ int64_t lastPosition = 0;
+ int64_t lcDiff = 0;
+ int64_t coordDiff = 0;
+ char *prevChromosome = NULL;
+ char *chromosome = NULL;
+ char *remainder = NULL;
+ Boolean withinChr = kStarchFalse;
+ unsigned long totalNonUniqueBases = 0UL;
+ unsigned long totalUniqueBases = 0UL;
+ Boolean duplicateElementExistsFlag = STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE;
+ Boolean nestedElementExistsFlag = STARCH_DEFAULT_NESTED_ELEMENT_FLAG_VALUE;
+ size_t intermediateBufferLength = 0U;
+ size_t currentTransformedBufferLength = 0U;
+ size_t recIdx = 0U;
+ size_t currentRecSize = 0U;
+ size_t cumulativeRecSize = 0U;
+ char *compressedFn = NULL;
+ Metadata *firstRecord = NULL;
+ char *json = NULL;
+ CompressionType type = compressionType;
+ unsigned char sha1Digest[STARCH2_MD_FOOTER_SHA1_LENGTH];
+ char *base64EncodedSha1Digest = NULL;
+ int zError = -1;
+ char zBuffer[STARCH_Z_BUFFER_MAX_LENGTH] = {0};
+ z_stream zStream;
+ size_t zHave;
+ int bzError = BZ_OK;
+ unsigned int bzBytesConsumed = 0U;
+ unsigned int bzBytesWritten = 0U;
+ FILE *outFp = stdout;
+ BZFILE *bzFp = NULL;
+ char footerCumulativeRecordSizeBuffer[STARCH2_MD_FOOTER_CUMULATIVE_RECORD_SIZE_LENGTH + 1] = {0};
+ char footerRemainderBuffer[STARCH2_MD_FOOTER_REMAINDER_LENGTH] = {0};
+ char footerBuffer[STARCH2_MD_FOOTER_LENGTH] = {0};
+ BedLineType lineType = kBedLineTypeUndefined;
+ char nonCoordLineBuf[STARCH_BUFFER_MAX_LENGTH] = {0};
+ Boolean nonCoordLineBufNeedsPrinting = kStarchFalse;
+ char const *nullChr = "null";
+ char const *nullCompressedFn = "null";
+
+ /* increment total file size by header bytes */
+#ifdef DEBUG
+ fprintf(stderr, "\tincrementing file size by sizeof(header)\n");
+#endif
+ cumulativeRecSize += STARCH2_MD_HEADER_BYTE_LENGTH;
+
+#ifdef __cplusplus
+ compressedFn = static_cast<char *>( malloc(STARCH_STREAM_METADATA_FILENAME_MAX_LENGTH) );
+#else
+ compressedFn = malloc(STARCH_STREAM_METADATA_FILENAME_MAX_LENGTH);
+#endif
+ if (!compressedFn) {
+ fprintf(stderr, "ERROR: Could not allocate space to compressed filename stub\n");
+ return STARCH_EXIT_FAILURE;
+ }
+
+ /* set up compression streams */
+ if (compressionType == kBzip2) {
+#ifdef DEBUG
+ fprintf(stderr, "\tsetting up bzip2 stream...\n");
+#endif
+ bzFp = BZ2_bzWriteOpen(&bzError, outFp, STARCH_BZ_COMPRESSION_LEVEL, STARCH_BZ_VERBOSITY, STARCH_BZ_WORKFACTOR);
+ if (!bzFp) {
+ fprintf(stderr, "ERROR: Could not instantiate BZFILE pointer\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ else if (bzError != BZ_OK) {
+ switch (bzError) {
+ case BZ_CONFIG_ERROR: {
+ fprintf(stderr, "ERROR: Bzip2 library has been miscompiled\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case BZ_PARAM_ERROR: {
+ fprintf(stderr, "ERROR: Stream is null, or block size, verbosity and work factor parameters are invalid\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case BZ_IO_ERROR: {
+ fprintf(stderr, "ERROR: The value of ferror(outFp) is nonzero -- check outFp\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case BZ_MEM_ERROR: {
+ fprintf(stderr, "ERROR: Not enough memory is available\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ default: {
+ fprintf(stderr, "ERROR: Unknown error with BZ2_bzWriteOpen() (err: %d)\n", bzError);
+ return STARCH_EXIT_FAILURE;
+ }
+ }
+ }
+ }
+ else if (compressionType == kGzip) {
+#ifdef DEBUG
+ fprintf(stderr, "\tsetting up gzip stream...\n");
+#endif
+ zStream.zalloc = Z_NULL;
+ zStream.zfree = Z_NULL;
+ zStream.opaque = Z_NULL;
+ /* cf. http://www.zlib.net/manual.html for level information */
+ /* zError = deflateInit2(&zStream, STARCH_Z_COMPRESSION_LEVEL, Z_DEFLATED, STARCH_Z_WINDOW_BITS, STARCH_Z_MEMORY_LEVEL, Z_DEFAULT_STRATEGY); */
+ zError = deflateInit(&zStream, STARCH_Z_COMPRESSION_LEVEL);
+ switch(zError) {
+ case Z_MEM_ERROR: {
+ fprintf(stderr, "ERROR: Not enough memory is available\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case Z_STREAM_ERROR: {
+ fprintf(stderr, "ERROR: Gzip initialization parameter is invalid (e.g., invalid method)\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case Z_VERSION_ERROR: {
+ fprintf(stderr, "ERROR: the zlib library version is incompatible with the version assumed by the caller (ZLIB_VERSION)\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case Z_OK:
+ default:
+ break;
+ }
+ }
+
+ /* fill up a "transformation" buffer with data and then compress it */
+#ifdef __cplusplus
+ while ((c = fgetc(const_cast<FILE *>( inFp ))) != EOF) {
+ untransformedBuffer[cIdx] = static_cast<char>( c );
+#else
+ while ((c = fgetc((FILE *)inFp)) != EOF) {
+ untransformedBuffer[cIdx] = (char) c;
+#endif
+ if (c == '\n') {
+ lineIdx++;
+ untransformedBuffer[cIdx] = '\0';
+
+ if (STARCH_createTransformTokens(untransformedBuffer, '\t', &chromosome, &start, &stop, &remainder, &lineType) == 0)
+ {
+ if ( (lineType == kBedLineCoordinates) && ((!prevChromosome) || (strcmp(chromosome, prevChromosome) != 0)) )
+ {
+ if (prevChromosome)
+ {
+#ifdef __cplusplus
+ if (STARCH_chromosomeInMetadataRecords(reinterpret_cast<const Metadata *>( firstRecord ), chromosome) == STARCH_EXIT_SUCCESS) {
+#else
+ if (STARCH_chromosomeInMetadataRecords((const Metadata *)firstRecord, chromosome) == STARCH_EXIT_SUCCESS) {
+#endif
+ fprintf(stderr, "ERROR: Found same chromosome in earlier portion of file. Possible interleaving issue? Be sure to first sort input with sort-bed or remove --do-not-sort option from conversion script.\n");
+ return STARCH_FATAL_ERROR;
+ }
+ sprintf(compressedFn, "%s.%s", prevChromosome, tag);
+#ifdef DEBUG
+ fprintf(stderr, "\t(final-between-chromosome) transformedBuffer:\n%s\n\t\tintermediateBuffer:\n%s\n", transformedBuffer, intermediateBuffer);
+#endif
+ if (compressionType == kBzip2) {
+#ifdef DEBUG
+ fprintf(stderr, "\t(final-between-chromosome) finalizing current chromosome: %s\n", prevChromosome);
+#endif
+ /* write transformed buffer to output stream */
+#ifdef __cplusplus
+ BZ2_bzWrite(&bzError, bzFp, transformedBuffer, static_cast<int>( currentTransformedBufferLength ));
+#else
+ BZ2_bzWrite(&bzError, bzFp, transformedBuffer, (int) currentTransformedBufferLength);
+#endif
+ if (bzError != BZ_OK) {
+ switch (bzError) {
+ case BZ_PARAM_ERROR: {
+ fprintf(stderr, "ERROR: Stream is NULL, transformedBuffer is NULL, or currentTransformedBufferLength is negative\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case BZ_SEQUENCE_ERROR: {
+ fprintf(stderr, "ERROR: Bzip2 streams are out of sequence\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case BZ_IO_ERROR: {
+ fprintf(stderr, "ERROR: There is an error writing the compressed data to the bz stream\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ default: {
+ fprintf(stderr, "ERROR: Unknown error with BZ2_bzWrite() (err: %d)\n", bzError);
+ return STARCH_EXIT_FAILURE;
+ }
+ }
+ }
+
+ /* close bzip2 stream and collect/reset stats */
+ BZ2_bzWriteClose(&bzError, bzFp, STARCH_BZ_ABANDON, &bzBytesConsumed, &bzBytesWritten);
+ if (bzError != BZ_OK) {
+ switch (bzError) {
+ case BZ_SEQUENCE_ERROR: {
+ fprintf(stderr, "ERROR: Bzip2 streams are out of sequence\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case BZ_IO_ERROR: {
+ fprintf(stderr, "ERROR: There is an error writing the compressed data to the bz stream\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ default: {
+ fprintf(stderr, "ERROR: Unknown error with BZ2_bzWrite() (err: %d)\n", bzError);
+ return STARCH_EXIT_FAILURE;
+ }
+ }
+ }
+ cumulativeRecSize += bzBytesWritten;
+ currentRecSize += bzBytesWritten;
+ bzBytesWritten = 0U;
+ bzFp = NULL;
+
+ if (STARCH_updateMetadataForChromosome(md,
+ prevChromosome,
+ compressedFn,
+ currentRecSize,
+ lineIdx,
+ totalNonUniqueBases,
+ totalUniqueBases,
+ duplicateElementExistsFlag,
+ nestedElementExistsFlag) != STARCH_EXIT_SUCCESS) {
+ fprintf(stderr, "ERROR: Could not update metadata %s\n", compressedFn);
+ return STARCH_FATAL_ERROR;
+ }
+
+ /* start again, anew */
+#ifdef DEBUG
+ fprintf(stderr, "\t(final-between-chromosome) resetting bzip2 stream...\n");
+#endif
+ bzFp = BZ2_bzWriteOpen(&bzError, outFp, STARCH_BZ_COMPRESSION_LEVEL, STARCH_BZ_VERBOSITY, STARCH_BZ_WORKFACTOR);
+ if (!bzFp) {
+ fprintf(stderr, "ERROR: Could not instantiate BZFILE pointer\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ else if (bzError != BZ_OK) {
+ switch (bzError) {
+ case BZ_CONFIG_ERROR: {
+ fprintf(stderr, "ERROR: Bzip2 library has been miscompiled\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case BZ_PARAM_ERROR: {
+ fprintf(stderr, "ERROR: Stream is null, or block size, verbosity and work factor parameters are invalid\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case BZ_IO_ERROR: {
+ fprintf(stderr, "ERROR: The value of ferror(outFp) is nonzero -- check outFp\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case BZ_MEM_ERROR: {
+ fprintf(stderr, "ERROR: Not enough memory is available\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ default: {
+ fprintf(stderr, "ERROR: Unknown error with BZ2_bzWriteOpen() (err: %d)\n", bzError);
+ return STARCH_EXIT_FAILURE;
+ }
+ }
+ }
+ }
+
+ else if (compressionType == kGzip)
+ {
+#ifdef DEBUG
+ fprintf(stderr, "\t(final-between-chromosome) current chromosome: %s\n", prevChromosome);
+ fprintf(stderr, "\t(final-between-chromosome) transformedBuffer:\n%s\n", transformedBuffer);
+#endif
+#ifdef __cplusplus
+ zStream.next_in = reinterpret_cast<unsigned char *>( transformedBuffer );
+ zStream.avail_in = static_cast<unsigned int>( currentTransformedBufferLength );
+#else
+ zStream.next_in = (unsigned char *) transformedBuffer;
+ zStream.avail_in = (unsigned int) currentTransformedBufferLength;
+#endif
+ do {
+ zStream.avail_out = STARCH_Z_BUFFER_MAX_LENGTH;
+#ifdef __cplusplus
+ zStream.next_out = reinterpret_cast<unsigned char *>( zBuffer );
+#else
+ zStream.next_out = (unsigned char *) zBuffer;
+#endif
+ zError = deflate (&zStream, Z_FINISH);
+ switch (zError) {
+ case Z_MEM_ERROR: {
+ fprintf(stderr, "ERROR: Not enough memory to compress data\n");
+ return STARCH_FATAL_ERROR;
+ }
+ case Z_BUF_ERROR:
+ default:
+ break;
+ }
+ zHave = STARCH_Z_BUFFER_MAX_LENGTH - zStream.avail_out;
+ cumulativeRecSize += zHave;
+ currentRecSize += zHave;
+#ifdef DEBUG
+ fprintf(stderr, "\t(final-between-chromosome) writing: %zu bytes\tcurrent record size: %zu\n", cumulativeRecSize, currentRecSize);
+#endif
+ fwrite(zBuffer, 1, zHave, stdout);
+ fflush(stdout);
+ } while (zStream.avail_out == 0);
+ assert(zStream.avail_in == 0);
+
+#ifdef DEBUG
+ fprintf(stderr, "\t(final-between-chromosome) attempting to close z-stream...\n");
+#endif
+ zError = deflateEnd(&zStream);
+ switch (zError) {
+ case Z_STREAM_ERROR: {
+ fprintf(stderr, "ERROR: z-stream state is inconsistent\n");
+ break;
+ }
+ case Z_DATA_ERROR: {
+ fprintf(stderr, "ERROR: stream was freed prematurely\n");
+ break;
+ }
+ case Z_OK:
+ default:
+ break;
+ }
+#ifdef DEBUG
+ fprintf(stderr, "\t(final-between-chromosome) closed z-stream...\n");
+ fprintf(stderr, "\t(final-between-chromosome) updating metadata...\n");
+#endif
+ if (STARCH_updateMetadataForChromosome(md,
+ prevChromosome,
+ compressedFn,
+ currentRecSize,
+ lineIdx,
+ totalNonUniqueBases,
+ totalUniqueBases,
+ duplicateElementExistsFlag,
+ nestedElementExistsFlag) != STARCH_EXIT_SUCCESS) {
+ fprintf(stderr, "ERROR: Could not update metadata %s\n", compressedFn);
+ return STARCH_FATAL_ERROR;
+ }
+
+ /* begin anew with a fresh compression z-stream */
+#ifdef DEBUG
+ fprintf(stderr, "\t(final-between-chromosome) creating fresh z-stream\n");
+#endif
+ zStream.zalloc = Z_NULL;
+ zStream.zfree = Z_NULL;
+ zStream.opaque = Z_NULL;
+#ifdef DEBUG
+ fprintf(stderr, "\t(final-between-chromosome) initializing z-stream\n");
+#endif
+ /* zError = deflateInit2(&zStream, STARCH_Z_COMPRESSION_LEVEL, Z_DEFLATED, STARCH_Z_WINDOW_BITS, STARCH_Z_MEMORY_LEVEL, Z_DEFAULT_STRATEGY); */
+ zError = deflateInit(&zStream, STARCH_Z_COMPRESSION_LEVEL);
+ switch (zError) {
+ case Z_MEM_ERROR: {
+ fprintf(stderr, "ERROR: Not enough memory is available\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case Z_STREAM_ERROR: {
+ fprintf(stderr, "ERROR: Gzip initialization parameter is invalid (e.g., invalid method)\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case Z_VERSION_ERROR: {
+ fprintf(stderr, "ERROR: the zlib library version is incompatible with the version assumed by the caller (ZLIB_VERSION)\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case Z_OK:
+ default:
+ break;
+ }
+#ifdef DEBUG
+ fprintf(stderr, "\t(final-between-chromosome) initialized z-stream\n");
+#endif
+ }
+ }
+
+ /* create placeholder records at current chromosome */
+ sprintf(compressedFn, "%s.%s", chromosome, tag);
+#ifdef DEBUG
+ fprintf(stderr, "\t(final-between-chromosome) creating placeholder md record at chromosome: %s (compressedFn: %s)\n", chromosome, compressedFn);
+#endif
+ if (recIdx == 0) {
+ *md = NULL;
+ *md = STARCH_createMetadata(chromosome,
+ compressedFn,
+ 0,
+ 0UL,
+ 0UL,
+ 0UL,
+ STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE,
+ STARCH_DEFAULT_NESTED_ELEMENT_FLAG_VALUE);
+ if (!*md) {
+ fprintf(stderr, "ERROR: Not enough memory is available\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ firstRecord = *md;
+ }
+ else {
+ *md = STARCH_addMetadata(*md,
+ chromosome,
+ compressedFn,
+ 0,
+ 0UL,
+ 0UL,
+ 0UL,
+ STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE,
+ STARCH_DEFAULT_NESTED_ELEMENT_FLAG_VALUE);
+ }
+
+ /* make previous chromosome the current chromosome */
+ if (prevChromosome != NULL) {
+ free(prevChromosome);
+ prevChromosome = NULL;
+ }
+#ifdef __cplusplus
+ prevChromosome = static_cast<char *>( malloc(strlen(chromosome) + 1) );
+#else
+ prevChromosome = malloc(strlen(chromosome) + 1);
+#endif
+ if (!prevChromosome) {
+ fprintf(stderr, "ERROR: Could not allocate space for previous chromosome marker.");
+ return STARCH_FATAL_ERROR;
+ }
+#ifdef __cplusplus
+ strncpy(prevChromosome, reinterpret_cast<const char *>( chromosome ), strlen(chromosome) + 1);
+#else
+ strncpy(prevChromosome, (const char *) chromosome, strlen(chromosome) + 1);
+#endif
+
+ /* reset flag, lastPosition and lcDiff, increment record index */
+#ifdef DEBUG
+ fprintf(stderr, "\t(final-between-chromosome) resetting per-chromosome stream transformation parameters...\n");
+#endif
+ withinChr = kStarchFalse;
+ lastPosition = 0;
+ pStart = -1;
+ pStop = -1;
+ previousStop = 0;
+ lcDiff = 0;
+ lineIdx = 0UL;
+ totalNonUniqueBases = 0UL;
+ totalUniqueBases = 0UL;
+ duplicateElementExistsFlag = STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE;
+ nestedElementExistsFlag = STARCH_DEFAULT_NESTED_ELEMENT_FLAG_VALUE;
+ recIdx++;
+ currentRecSize = 0UL;
+ transformedBuffer[currentTransformedBufferLength] = '\0';
+ currentTransformedBufferLength = 0U;
+ }
+ else if (lineType == kBedLineCoordinates)
+ withinChr = kStarchTrue;
+
+ if (lineType != kBedLineCoordinates) {
+#ifdef __cplusplus
+ strncat(nonCoordLineBuf, reinterpret_cast<const char *>( chromosome ), strlen(chromosome) + 1);
+#else
+ strncat(nonCoordLineBuf, (const char *)chromosome, strlen(chromosome) + 1);
+#endif
+ nonCoordLineBuf[strlen(nonCoordLineBuf)] = '\n';
+ nonCoordLineBufNeedsPrinting = kStarchTrue;
+ }
+ else {
+ if (nonCoordLineBufNeedsPrinting == kStarchTrue) {
+ sprintf(intermediateBuffer + strlen(intermediateBuffer), "%s", nonCoordLineBuf);
+ memset(nonCoordLineBuf, 0, strlen(nonCoordLineBuf));
+ nonCoordLineBufNeedsPrinting = kStarchFalse;
+ }
+
+ /* test for out-of-order element */
+ if (pStart > start) {
+ fprintf(stderr, "ERROR: BED data is not properly sorted by start coordinates at line %lu [ pStart: %" PRId64 " | start: %" PRId64 " ]\n", lineIdx, pStart, start);
+ exit (EXIT_FAILURE);
+ }
+ else if ((pStart == start) && (pStop > stop)) {
+ fprintf(stderr, "ERROR: BED data is not properly sorted by end coordinates (when start coordinates are equal) at line %lu\n", lineIdx);
+ exit (EXIT_FAILURE);
+ }
+
+ if (stop > start)
+ coordDiff = stop - start;
+ else {
+ fprintf(stderr, "ERROR: BED data is corrupt at line %lu (stop: %" PRId64 ", start: %" PRId64 ")\n", lineIdx, stop, start);
+ return STARCH_FATAL_ERROR;
+ }
+ if (coordDiff != lcDiff) {
+ lcDiff = coordDiff;
+ sprintf(intermediateBuffer + strlen(intermediateBuffer), "p%" PRId64 "\n", coordDiff);
+ }
+ if (lastPosition != 0) {
+ if (remainder)
+ sprintf(intermediateBuffer + strlen(intermediateBuffer), "%" PRId64 "\t%s\n", (start - lastPosition), remainder);
+ else
+ sprintf(intermediateBuffer + strlen(intermediateBuffer), "%" PRId64 "\n", (start - lastPosition));
+ }
+ else {
+ if (remainder)
+ sprintf(intermediateBuffer + strlen(intermediateBuffer), "%" PRId64 "\t%s\n", start, remainder);
+ else
+ sprintf(intermediateBuffer + strlen(intermediateBuffer), "%" PRId64 "\n", start);
+ }
+ intermediateBufferLength = strlen(intermediateBuffer);
+
+ if ((currentTransformedBufferLength + intermediateBufferLength) < STARCH_BUFFER_MAX_LENGTH) {
+ /* append intermediateBuffer to transformedBuffer */
+#ifdef DEBUG
+ fprintf(stderr, "\t(intermediate) appending intermediateBuffer to transformedBuffer (old currentTransformedBufferLength: %lu)\n%s\n", currentTransformedBufferLength, intermediateBuffer);
+#endif
+ memcpy(transformedBuffer + currentTransformedBufferLength, intermediateBuffer, intermediateBufferLength);
+ currentTransformedBufferLength += intermediateBufferLength;
+ transformedBuffer[currentTransformedBufferLength] = '\0';
+ memset(intermediateBuffer, 0, intermediateBufferLength + 1);
+ }
+ else {
+ /* compress transformedBuffer[] and send to stdout */
+#ifdef DEBUG
+ fprintf(stderr, "\t(intermediate) to be compressed -- transformedBuffer:\n%s\n", transformedBuffer);
+#endif
+ if (compressionType == kBzip2) {
+#ifdef DEBUG
+ fprintf(stderr, "\t(intermediate) current chromosome: %s\n", prevChromosome);
+#endif
+#ifdef __cplusplus
+ BZ2_bzWrite(&bzError, bzFp, transformedBuffer, static_cast<int>( currentTransformedBufferLength ));
+#else
+ BZ2_bzWrite(&bzError, bzFp, transformedBuffer, (int) currentTransformedBufferLength);
+#endif
+ if (bzError != BZ_OK) {
+ switch (bzError) {
+ case BZ_PARAM_ERROR: {
+ fprintf(stderr, "ERROR: Stream is NULL, transformedBuffer is NULL, or currentTransformedBufferLength is negative\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case BZ_SEQUENCE_ERROR: {
+ fprintf(stderr, "ERROR: Bzip2 streams are out of sequence\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case BZ_IO_ERROR: {
+ fprintf(stderr, "ERROR: There is an error writing the compressed data to the bz stream\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ default: {
+ fprintf(stderr, "ERROR: Unknown error with BZ2_bzWrite() (err: %d)\n", bzError);
+ return STARCH_EXIT_FAILURE;
+ }
+ }
+ }
+ }
+ else if (compressionType == kGzip) {
+#ifdef DEBUG
+ fprintf(stderr, "\t(intermediate) current chromosome: %s\n", prevChromosome);
+#endif
+#ifdef __cplusplus
+ zStream.next_in = reinterpret_cast<unsigned char *>( transformedBuffer );
+ zStream.avail_in = static_cast<unsigned int>( currentTransformedBufferLength );
+#else
+ zStream.next_in = (unsigned char *) transformedBuffer;
+ zStream.avail_in = (unsigned int) currentTransformedBufferLength;
+#endif
+ do {
+ zStream.avail_out = STARCH_Z_BUFFER_MAX_LENGTH;
+#ifdef __cplusplus
+ zStream.next_out = reinterpret_cast<unsigned char *>( zBuffer );
+#else
+ zStream.next_out = (unsigned char *) zBuffer;
+#endif
+ zError = deflate (&zStream, Z_NO_FLUSH);
+ switch (zError) {
+ case Z_MEM_ERROR: {
+ fprintf(stderr, "ERROR: Not enough memory to compress data\n");
+ return STARCH_FATAL_ERROR;
+ }
+ case Z_BUF_ERROR:
+ default:
+ break;
+ }
+ zHave = STARCH_Z_BUFFER_MAX_LENGTH - zStream.avail_out;
+ cumulativeRecSize += zHave;
+ currentRecSize += zHave;
+#ifdef DEBUG
+ fprintf(stderr, "\t(intermediate) written: %zu bytes\tcurrent record size: %zu\n", cumulativeRecSize, currentRecSize);
+#endif
+ fwrite(zBuffer, 1, zHave, stdout);
+ fflush(stdout);
+ } while (zStream.avail_out == 0);
+
+#ifdef __cplusplus
+ zStream.next_in = reinterpret_cast<unsigned char *>( intermediateBuffer );
+ zStream.avail_in = static_cast<unsigned int>( strlen(intermediateBuffer) );
+#else
+ zStream.next_in = (unsigned char *) intermediateBuffer;
+ zStream.avail_in = (unsigned int) strlen(intermediateBuffer);
+#endif
+ do {
+ zStream.avail_out = STARCH_Z_BUFFER_MAX_LENGTH;
+#ifdef __cplusplus
+ zStream.next_out = reinterpret_cast<unsigned char *>( zBuffer );
+#else
+ zStream.next_out = (unsigned char *) zBuffer;
+#endif
+ zError = deflate (&zStream, Z_NO_FLUSH);
+ switch (zError) {
+ case Z_MEM_ERROR: {
+ fprintf(stderr, "ERROR: Not enough memory to compress data\n");
+ return STARCH_FATAL_ERROR;
+ }
+ case Z_BUF_ERROR:
+ default:
+ break;
+ }
+ zHave = STARCH_Z_BUFFER_MAX_LENGTH - zStream.avail_out;
+ cumulativeRecSize += zHave;
+ currentRecSize += zHave;
+#ifdef DEBUG
+ fprintf(stderr, "\t(intermediate) written: %zu bytes\tcurrent record size: %zu\n", cumulativeRecSize, currentRecSize);
+#endif
+ fwrite(zBuffer, 1, zHave, stdout);
+ fflush(stdout);
+ } while (zStream.avail_out == 0);
+ }
+
+ memcpy(transformedBuffer, intermediateBuffer, strlen(intermediateBuffer) + 1);
+ currentTransformedBufferLength = strlen(intermediateBuffer);
+ memset(intermediateBuffer, 0, strlen(intermediateBuffer) + 1);
+ intermediateBufferLength = 0;
+#ifdef DEBUG
+ fprintf(stderr, "\t(intermediate) end-of-loop: transformedBuffer:\n%s\n\t\tintermediateBuffer:\n%s\n", transformedBuffer, intermediateBuffer);
+#endif
+ }
+
+ lastPosition = stop;
+#ifdef __cplusplus
+ totalNonUniqueBases += static_cast<BaseCountType>( stop - start );
+ if (previousStop <= start)
+ totalUniqueBases += static_cast<BaseCountType>( stop - start );
+ else if (previousStop < stop)
+ totalUniqueBases += static_cast<BaseCountType>( stop - previousStop );
+#else
+ totalNonUniqueBases += (BaseCountType) (stop - start);
+ if (previousStop <= start)
+ totalUniqueBases += (BaseCountType) (stop - start);
+ else if (previousStop < stop)
+ totalUniqueBases += (BaseCountType) (stop - previousStop);
+#endif
+ previousStop = (stop > previousStop) ? stop : previousStop;
+
+#ifdef DEBUG
+ fprintf(stderr, "\t(intermediate) start: %" PRId64 "\tpStart: %" PRId64 "\tstop: %" PRId64 "\tpStop: %" PRId64 "\n", start, pStart, stop, pStop);
+#ifdef __cplusplus
+ fprintf(stderr, "\t(intermediate) duplicateElementExistsFlag: %d\tnestedElementExistsFlag: %d\n", static_cast<int>( duplicateElementExistsFlag ), static_cast<int>( nestedElementExistsFlag ));
+#else
+ fprintf(stderr, "\t(intermediate) duplicateElementExistsFlag: %d\tnestedElementExistsFlag: %d\n", (int) duplicateElementExistsFlag, (int) nestedElementExistsFlag);
+#endif
+#endif
+
+ /* test for duplicate element */
+ if ((pStart == start) && (pStop == stop))
+ duplicateElementExistsFlag = kStarchTrue;
+
+ /* test for nested element */
+ if ((pStart < start) && (pStop > stop))
+ nestedElementExistsFlag = kStarchTrue;
+
+ /* set pElement values */
+ pStart = start;
+ pStop = stop;
+ }
+
+ if (withinChr == kStarchTrue)
+ free(chromosome), chromosome = NULL;
+ if (remainder)
+ free(remainder), remainder = NULL;
+ cIdx = 0;
+ }
+ else {
+ fprintf(stderr, "ERROR: BED data could not be transformed.\n");
+ return STARCH_FATAL_ERROR;
+ }
+ }
+ else
+ cIdx++;
+ }
+
+ /* if we don't have a trailing newline in BED input, then we have reached EOF before we can process a line, so we try that now */
+
+ if (cIdx > 0) {
+ untransformedBuffer[cIdx] = '\0';
+ if (STARCH_createTransformTokensForHeaderlessInput(untransformedBuffer, '\t', &chromosome, &start, &stop, &remainder) == 0) {
+#ifdef DEBUG
+ fprintf(stderr, "\t(just-before-last-pass) untransformedBuffer:\n%s\n", untransformedBuffer);
+#endif
+
+ /* test for out-of-order element */
+ if (pStart > start) {
+ fprintf(stderr, "ERROR: BED data is not properly sorted by start coordinates at line %lu [ pStart: %" PRId64 " | start: %" PRId64 " ]\n", lineIdx, pStart, start);
+ exit (EXIT_FAILURE);
+ }
+ else if ((pStart == start) && (pStop > stop)) {
+ fprintf(stderr, "ERROR: BED data is not properly sorted by end coordinates (when start coordinates are equal) at line %lu\n", lineIdx);
+ exit (EXIT_FAILURE);
+ }
+
+ /* transform */
+ if (stop > start)
+ coordDiff = stop - start;
+ else {
+ fprintf(stderr, "ERROR: BED data is corrupt at line %lu (stop: %" PRId64 ", start: %" PRId64 ")\n", lineIdx, stop, start);
+ return STARCH_FATAL_ERROR;
+ }
+ if (coordDiff != lcDiff) {
+ lcDiff = coordDiff;
+ sprintf(intermediateBuffer + strlen(intermediateBuffer), "p%" PRId64 "\n", coordDiff);
+ }
+ if (lastPosition != 0) {
+ if (remainder)
+ sprintf(intermediateBuffer + strlen(intermediateBuffer), "%" PRId64 "\t%s\n", (start - lastPosition), remainder);
+ else
+ sprintf(intermediateBuffer + strlen(intermediateBuffer), "%" PRId64 "\n", (start - lastPosition));
+ }
+ else {
+ if (remainder)
+ sprintf(intermediateBuffer + strlen(intermediateBuffer), "%" PRId64 "\t%s\n", start, remainder);
+ else
+ sprintf(intermediateBuffer + strlen(intermediateBuffer), "%" PRId64 "\n", start);
+ }
+ intermediateBufferLength = strlen(intermediateBuffer);
+
+ /* append intermediateBuffer to transformedBuffer */
+
+ memcpy(transformedBuffer + currentTransformedBufferLength, intermediateBuffer, intermediateBufferLength);
+ currentTransformedBufferLength += intermediateBufferLength;
+ transformedBuffer[currentTransformedBufferLength] = '\0';
+ memset(intermediateBuffer, 0, intermediateBufferLength + 1);
+
+ lastPosition = stop;
+#ifdef __cplusplus
+ totalNonUniqueBases += static_cast<BaseCountType>( stop - start );
+ if (previousStop <= start)
+ totalUniqueBases += static_cast<BaseCountType>( stop - start );
+ else if (previousStop < stop)
+ totalUniqueBases += static_cast<BaseCountType>( stop - previousStop );
+#else
+ totalNonUniqueBases += (BaseCountType) (stop - start);
+ if (previousStop <= start)
+ totalUniqueBases += (BaseCountType) (stop - start);
+ else if (previousStop < stop)
+ totalUniqueBases += (BaseCountType) (stop - previousStop);
+#endif
+ previousStop = (stop > previousStop) ? stop : previousStop;
+
+#ifdef DEBUG
+ fprintf(stderr, "\t(just-before-last-pass) start: %" PRId64 "\tpStart: %" PRId64 "\tstop: %" PRId64 "\tpStop: %" PRId64 "\n", start, pStart, stop, pStop);
+#ifdef __cplusplus
+ fprintf(stderr, "\t(just-before-last-pass) duplicateElementExistsFlag: %d\tnestedElementExistsFlag: %d\n", static_cast<int>( duplicateElementExistsFlag ), static_cast<int>( nestedElementExistsFlag ));
+#else
+ fprintf(stderr, "\t(just-before-last-pass) duplicateElementExistsFlag: %d\tnestedElementExistsFlag: %d\n", (int) duplicateElementExistsFlag, (int) nestedElementExistsFlag);
+#endif
+#endif
+ /* test for duplicate element */
+ if ((pStart == start) && (pStop == stop))
+ duplicateElementExistsFlag = kStarchTrue;
+
+ /* test for nested element */
+ if ((pStart < start) && (pStop > stop))
+ nestedElementExistsFlag = kStarchTrue;
+ }
+ else {
+ fprintf(stderr, "ERROR: BED data is corrupt at line %lu\n", lineIdx);
+ return STARCH_FATAL_ERROR;
+ }
+ }
+
+ lineIdx++;
+ sprintf(compressedFn, "%s.%s", prevChromosome, tag);
+
+#ifdef DEBUG
+ fprintf(stderr, "\t(last-pass) transformedBuffer:\n%s\n\t\tintermediateBuffer:\n%s\n", transformedBuffer, intermediateBuffer);
+ /*fprintf(stderr, "\t(last-pass) to be compressed - transformedBuffer:\n%s\n", transformedBuffer);*/
+#endif
+ /* last-pass, bzip2 */
+ if (compressionType == kBzip2) {
+#ifdef DEBUG
+ fprintf(stderr, "\t(last-pass) current chromosome: %s\n", prevChromosome);
+#endif
+ if (currentTransformedBufferLength > 0)
+ {
+#ifdef __cplusplus
+ BZ2_bzWrite(&bzError, bzFp, transformedBuffer, static_cast<int>( currentTransformedBufferLength ));
+#else
+ BZ2_bzWrite(&bzError, bzFp, transformedBuffer, (int) currentTransformedBufferLength);
+#endif
+ if (bzError != BZ_OK) {
+ switch (bzError) {
+ case BZ_PARAM_ERROR: {
+ fprintf(stderr, "ERROR: Stream is NULL, transformedBuffer is NULL, or currentTransformedBufferLength is negative\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case BZ_SEQUENCE_ERROR: {
+ fprintf(stderr, "ERROR: Bzip2 streams are out of sequence\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case BZ_IO_ERROR: {
+ fprintf(stderr, "ERROR: There is an error writing the compressed data to the bz stream\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ default: {
+ fprintf(stderr, "ERROR: Unknown error with BZ2_bzWrite() (err: %d)\n", bzError);
+ return STARCH_EXIT_FAILURE;
+ }
+ }
+ }
+ }
+#ifdef DEBUG
+ fprintf(stderr, "\t(last-pass) attempting to close bzip2-stream...\n");
+#endif
+ BZ2_bzWriteClose(&bzError, bzFp, STARCH_BZ_ABANDON, &bzBytesConsumed, &bzBytesWritten);
+ if (bzError != BZ_OK) {
+ switch (bzError) {
+ case BZ_PARAM_ERROR: {
+ fprintf(stderr, "ERROR: Stream is NULL, transformedBuffer is NULL, or currentTransformedBufferLength is negative\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case BZ_SEQUENCE_ERROR: {
+ fprintf(stderr, "ERROR: Bzip2 streams are out of sequence\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case BZ_IO_ERROR: {
+ fprintf(stderr, "ERROR: There is an error writing the compressed data to the bz stream\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ default: {
+ fprintf(stderr, "ERROR: Unknown error with BZ2_bzWrite() (err: %d)\n", bzError);
+ return STARCH_EXIT_FAILURE;
+ }
+ }
+ }
+ cumulativeRecSize += bzBytesWritten;
+ currentRecSize += bzBytesWritten;
+
+#ifdef DEBUG
+ fprintf(stderr, "\t(last-pass) closed bzip2-stream...\n");
+#endif
+ }
+
+ /* last-pass, gzip */
+ else if (compressionType == kGzip) {
+#ifdef DEBUG
+ /*fprintf(stderr, "\t(last-pass) to be compressed - transformedBuffer:\n%s\n", transformedBuffer);*/
+#endif
+ if (currentTransformedBufferLength > 0)
+ {
+#ifdef DEBUG
+ fprintf(stderr, "\t(last-pass) current chromosome: %s\n", prevChromosome);
+#endif
+#ifdef __cplusplus
+ zStream.next_in = reinterpret_cast<unsigned char *>( transformedBuffer );
+ zStream.avail_in = static_cast<unsigned int>( currentTransformedBufferLength );
+#else
+ zStream.next_in = (unsigned char *) transformedBuffer;
+ zStream.avail_in = (unsigned int) currentTransformedBufferLength;
+#endif
+ do {
+ zStream.avail_out = STARCH_Z_BUFFER_MAX_LENGTH;
+#ifdef __cplusplus
+ zStream.next_out = reinterpret_cast<unsigned char *>( zBuffer );
+#else
+ zStream.next_out = (unsigned char *) zBuffer;
+#endif
+ zError = deflate(&zStream, Z_FINISH);
+ switch (zError) {
+ case Z_MEM_ERROR: {
+ fprintf(stderr, "ERROR: Not enough memory to compress data\n");
+ return STARCH_FATAL_ERROR;
+ }
+ case Z_BUF_ERROR:
+ default:
+ break;
+ }
+ zHave = STARCH_Z_BUFFER_MAX_LENGTH - zStream.avail_out;
+ cumulativeRecSize += zHave;
+ currentRecSize += zHave;
+#ifdef DEBUG
+ fprintf(stderr, "\t(last-pass) written: %zu bytes\tcurrent record size: %zu\n", cumulativeRecSize, currentRecSize);
+#endif
+ fwrite(zBuffer, 1, zHave, stdout);
+ fflush(stdout);
+ } while (zStream.avail_out == 0);
+#ifdef DEBUG
+ fprintf(stderr, "\t(last-pass) attempting to close z-stream...\n");
+#endif
+ deflateEnd(&zStream);
+#ifdef DEBUG
+ fprintf(stderr, "\t(last-pass) closed z-stream...\n");
+#endif
+ }
+ }
+
+#ifdef DEBUG
+ fprintf(stderr, "\t(last-pass) updating last md record...\n");
+#endif
+ if (STARCH_updateMetadataForChromosome(md,
+ prevChromosome,
+ compressedFn,
+ currentRecSize,
+ lineIdx,
+ totalNonUniqueBases,
+ totalUniqueBases,
+ duplicateElementExistsFlag,
+ nestedElementExistsFlag) != STARCH_EXIT_SUCCESS) {
+ /*
+ If the stream or input file contains no BED records, then the Metadata pointer md will
+ be NULL, as will the char pointer prevChromosome. So we put in a stub metadata record.
+ */
+ lineIdx = 0;
+ *md = NULL;
+ *md = STARCH_createMetadata(nullChr, nullCompressedFn, currentRecSize, lineIdx, 0UL, 0UL, STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE, STARCH_DEFAULT_NESTED_ELEMENT_FLAG_VALUE);
+ if (!*md) {
+ fprintf(stderr, "ERROR: Not enough memory is available\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ firstRecord = *md;
+ }
+
+ /* reset metadata pointer */
+ *md = firstRecord;
+
+ /* write metadata */
+#ifdef DEBUG
+ fprintf(stderr, "\twriting md to output stream (as JSON)...\n");
+#endif
+ /* this is the custom header version of the parser, so we set headerFlag to TRUE */
+ STARCH_writeJSONMetadata(*md, &json, &type, kStarchTrue, note);
+ fwrite(json, 1, strlen(json), stdout);
+ fflush(stdout);
+
+ /* write metadata signature */
+#ifdef DEBUG
+ fprintf(stderr, "\twriting md signature...\n");
+#endif
+#ifdef __cplusplus
+ STARCH_SHA1_All(reinterpret_cast<const unsigned char *>( json ), strlen(json), sha1Digest);
+#else
+ STARCH_SHA1_All((const unsigned char *)json, strlen(json), sha1Digest);
+#endif
+
+ /* encode signature in base64 encoding */
+#ifdef DEBUG
+ fprintf(stderr, "\tencoding md signature...\n");
+#endif
+#ifdef __cplusplus
+ STARCH_encodeBase64(&base64EncodedSha1Digest, static_cast<size_t>( STARCH2_MD_FOOTER_BASE64_ENCODED_SHA1_LENGTH ), reinterpret_cast<const unsigned char *>( sha1Digest ), static_cast<size_t>( STARCH2_MD_FOOTER_SHA1_LENGTH ));
+#else
+ STARCH_encodeBase64(&base64EncodedSha1Digest, (const size_t) STARCH2_MD_FOOTER_BASE64_ENCODED_SHA1_LENGTH, (const unsigned char *) sha1Digest, (const size_t) STARCH2_MD_FOOTER_SHA1_LENGTH);
+#endif
+
+ /* build footer */
+#ifdef DEBUG
+#ifdef __cplusplus
+ fprintf(stderr, "\tWARNING:\nmdLength: %llu\nmd - [%s]\nsha1 - [%s]\n", static_cast<unsigned long long>( strlen(json) ), json, sha1Digest);
+#else
+ fprintf(stderr, "\tWARNING:\nmdLength: %llu\nmd - [%s]\nsha1 - [%s]\n", (unsigned long long) strlen(json), json, sha1Digest);
+#endif
+ fprintf(stderr, "\twriting offset and signature to output stream...\n");
+#endif
+#ifdef __cplusplus
+ sprintf(footerCumulativeRecordSizeBuffer, "%020llu", static_cast<unsigned long long>( cumulativeRecSize )); /* we cast this size_t to an unsigned long long in order to allow warning-free compilation with an ISO C++ compiler like g++ */
+#else
+ sprintf(footerCumulativeRecordSizeBuffer, "%020llu", (unsigned long long) cumulativeRecSize); /* we cast this size_t to an unsigned long long in order to allow warning-free compilation with an ISO C++ compiler like g++ */
+#endif
+#ifdef DEBUG
+ fprintf(stderr, "\tfooterCumulativeRecordSizeBuffer: %s\n", footerCumulativeRecordSizeBuffer);
+#endif
+ memcpy(footerBuffer, footerCumulativeRecordSizeBuffer, strlen(footerCumulativeRecordSizeBuffer));
+ memcpy(footerBuffer + STARCH2_MD_FOOTER_CUMULATIVE_RECORD_SIZE_LENGTH, base64EncodedSha1Digest, STARCH2_MD_FOOTER_BASE64_ENCODED_SHA1_LENGTH - 1); /* strip trailing null */
+#ifdef __cplusplus
+ memset(footerRemainderBuffer, STARCH2_MD_FOOTER_REMAINDER_UNUSED_CHAR, static_cast<size_t>( STARCH2_MD_FOOTER_REMAINDER_LENGTH ));
+#else
+ memset(footerRemainderBuffer, STARCH2_MD_FOOTER_REMAINDER_UNUSED_CHAR, (size_t) STARCH2_MD_FOOTER_REMAINDER_LENGTH);
+#endif
+#ifdef DEBUG
+ fprintf(stderr, "\tfooterRemainderBuffer: [%s]\n", footerRemainderBuffer);
+#endif
+ memcpy(footerBuffer + STARCH2_MD_FOOTER_CUMULATIVE_RECORD_SIZE_LENGTH + STARCH2_MD_FOOTER_BASE64_ENCODED_SHA1_LENGTH - 1, footerRemainderBuffer, STARCH2_MD_FOOTER_REMAINDER_LENGTH); /* don't forget to offset pointer index by -1 for base64-sha1's null */
+ footerBuffer[STARCH2_MD_FOOTER_CUMULATIVE_RECORD_SIZE_LENGTH + STARCH2_MD_FOOTER_BASE64_ENCODED_SHA1_LENGTH - 1 + STARCH2_MD_FOOTER_REMAINDER_LENGTH - 1] = '\0';
+ footerBuffer[STARCH2_MD_FOOTER_CUMULATIVE_RECORD_SIZE_LENGTH + STARCH2_MD_FOOTER_BASE64_ENCODED_SHA1_LENGTH - 1 + STARCH2_MD_FOOTER_REMAINDER_LENGTH - 2] = '\n';
+ fprintf(stdout, "%s", footerBuffer);
+ fflush(stdout);
+
+ if (json)
+ free(json), json = NULL;
+ if (compressedFn)
+ free(compressedFn), compressedFn = NULL;
+ if (prevChromosome)
+ free(prevChromosome), prevChromosome = NULL;
+ if (base64EncodedSha1Digest)
+ free(base64EncodedSha1Digest), base64EncodedSha1Digest = NULL;
+
+ return STARCH_EXIT_SUCCESS;
+}
+
+int
+STARCH2_transformHeaderlessBEDInput(const FILE *inFp, Metadata **md, const CompressionType compressionType, const char *tag, const char *note)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH2_transformHeaderlessBEDInput() ---\n");
+#endif
+ int c;
+ int cIdx = 0;
+ char untransformedBuffer[STARCH_BUFFER_MAX_LENGTH + 1] = {0};
+ char intermediateBuffer[STARCH_BUFFER_MAX_LENGTH + 1] = {0};
+ char transformedBuffer[STARCH_BUFFER_MAX_LENGTH + 1] = {0};
+ unsigned long lineIdx = 0UL;
+ int64_t start = 0;
+ int64_t stop = 0;
+ int64_t pStart = -1;
+ int64_t pStop = -1;
+ int64_t previousStop = 0;
+ int64_t lastPosition = 0;
+ int64_t lcDiff = 0;
+ int64_t coordDiff = 0;
+ char *prevChromosome = NULL;
+ char *chromosome = NULL;
+ char *remainder = NULL;
+ Boolean withinChr = kStarchFalse;
+ unsigned long totalNonUniqueBases = 0UL;
+ unsigned long totalUniqueBases = 0UL;
+ Boolean duplicateElementExistsFlag = STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE;
+ Boolean nestedElementExistsFlag = STARCH_DEFAULT_NESTED_ELEMENT_FLAG_VALUE;
+ size_t intermediateBufferLength = 0U;
+ size_t currentTransformedBufferLength = 0U;
+ size_t recIdx = 0U;
+ size_t currentRecSize = 0U;
+ size_t cumulativeRecSize = 0U;
+ char *compressedFn = NULL;
+ Metadata *firstRecord = NULL;
+ char *json = NULL;
+ char *jsonCopy = NULL;
+ CompressionType type = compressionType;
+ unsigned char sha1Digest[STARCH2_MD_FOOTER_SHA1_LENGTH];
+ char *base64EncodedSha1Digest = NULL;
+ int zError = -1;
+ char zBuffer[STARCH_Z_BUFFER_MAX_LENGTH] = {0};
+ z_stream zStream;
+ size_t zHave;
+ int bzError = BZ_OK;
+ unsigned int bzBytesConsumed = 0U;
+ unsigned int bzBytesWritten = 0U;
+ FILE *outFp = stdout;
+ BZFILE *bzFp = NULL;
+ char footerCumulativeRecordSizeBuffer[STARCH2_MD_FOOTER_CUMULATIVE_RECORD_SIZE_LENGTH + 1] = {0};
+ char footerRemainderBuffer[STARCH2_MD_FOOTER_REMAINDER_LENGTH] = {0};
+ char footerBuffer[STARCH2_MD_FOOTER_LENGTH] = {0};
+ char const *nullChr = "null";
+ char const *nullCompressedFn = "null";
+
+ /* increment total file size by header bytes */
+#ifdef DEBUG
+ fprintf(stderr, "\tincrementing file size by sizeof(header)\n");
+#endif
+ cumulativeRecSize += STARCH2_MD_HEADER_BYTE_LENGTH;
+
+#ifdef __cplusplus
+ compressedFn = static_cast<char *>( malloc(STARCH_STREAM_METADATA_FILENAME_MAX_LENGTH) );
+#else
+ compressedFn = malloc(STARCH_STREAM_METADATA_FILENAME_MAX_LENGTH);
+#endif
+ if (!compressedFn) {
+ fprintf(stderr, "ERROR: Could not allocate space to compressed filename stub\n");
+ return STARCH_EXIT_FAILURE;
+ }
+
+ /* set up compression streams */
+ if (compressionType == kBzip2) {
+#ifdef DEBUG
+ fprintf(stderr, "\tsetting up bzip2 stream...\n");
+#endif
+ bzFp = BZ2_bzWriteOpen(&bzError, outFp, STARCH_BZ_COMPRESSION_LEVEL, STARCH_BZ_VERBOSITY, STARCH_BZ_WORKFACTOR);
+ if (!bzFp) {
+ fprintf(stderr, "ERROR: Could not instantiate BZFILE pointer\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ else if (bzError != BZ_OK) {
+ switch (bzError) {
+ case BZ_CONFIG_ERROR: {
+ fprintf(stderr, "ERROR: Bzip2 library has been miscompiled\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case BZ_PARAM_ERROR: {
+ fprintf(stderr, "ERROR: Stream is null, or block size, verbosity and work factor parameters are invalid\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case BZ_IO_ERROR: {
+ fprintf(stderr, "ERROR: The value of ferror(outFp) is nonzero -- check outFp\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case BZ_MEM_ERROR: {
+ fprintf(stderr, "ERROR: Not enough memory is available\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ default: {
+ fprintf(stderr, "ERROR: Unknown error with BZ2_bzWriteOpen() (err: %d)\n", bzError);
+ return STARCH_EXIT_FAILURE;
+ }
+ }
+ }
+ }
+ else if (compressionType == kGzip) {
+#ifdef DEBUG
+ fprintf(stderr, "\tsetting up gzip stream...\n");
+#endif
+ zStream.zalloc = Z_NULL;
+ zStream.zfree = Z_NULL;
+ zStream.opaque = Z_NULL;
+ /* cf. http://www.zlib.net/manual.html for level information */
+ /* zError = deflateInit2(&zStream, STARCH_Z_COMPRESSION_LEVEL, Z_DEFLATED, STARCH_Z_WINDOW_BITS, STARCH_Z_MEMORY_LEVEL, Z_DEFAULT_STRATEGY); */
+ zError = deflateInit(&zStream, STARCH_Z_COMPRESSION_LEVEL);
+ switch(zError) {
+ case Z_MEM_ERROR: {
+ fprintf(stderr, "ERROR: Not enough memory is available\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case Z_STREAM_ERROR: {
+ fprintf(stderr, "ERROR: Gzip initialization parameter is invalid (e.g., invalid method)\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case Z_VERSION_ERROR: {
+ fprintf(stderr, "ERROR: the zlib library version is incompatible with the version assumed by the caller (ZLIB_VERSION)\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case Z_OK:
+ default:
+ break;
+ }
+ }
+
+ /* fill up a "transformation" buffer with data and then compress it */
+#ifdef __cplusplus
+ while ((c = fgetc(const_cast<FILE *>( inFp ))) != EOF) {
+ untransformedBuffer[cIdx] = static_cast<char>( c );
+#else
+ while ((c = fgetc((FILE *)inFp)) != EOF) {
+ untransformedBuffer[cIdx] = (char) c;
+#endif
+ if (c == '\n') {
+ lineIdx++;
+ untransformedBuffer[cIdx] = '\0';
+
+ if (STARCH_createTransformTokensForHeaderlessInput(untransformedBuffer, '\t', &chromosome, &start, &stop, &remainder) == 0)
+ {
+ if ( (!prevChromosome) || (strcmp(chromosome, prevChromosome) != 0) ) {
+ if (prevChromosome) {
+#ifdef __cplusplus
+ if (STARCH_chromosomeInMetadataRecords(reinterpret_cast<const Metadata *>( firstRecord ), chromosome) == STARCH_EXIT_SUCCESS) {
+#else
+ if (STARCH_chromosomeInMetadataRecords((const Metadata *)firstRecord, chromosome) == STARCH_EXIT_SUCCESS) {
+#endif
+ fprintf(stderr, "ERROR: Found same chromosome in earlier portion of file. Possible interleaving issue? Be sure to first sort input with sort-bed or remove --do-not-sort option from conversion script.\n");
+ return STARCH_FATAL_ERROR;
+ }
+ sprintf(compressedFn, "%s.%s", prevChromosome, tag);
+#ifdef DEBUG
+ fprintf(stderr, "\t(final-between-chromosome) transformedBuffer:\n%s\n", transformedBuffer);
+#endif
+ if (compressionType == kBzip2) {
+#ifdef DEBUG
+ fprintf(stderr, "\t(final-between-chromosome) finalizing current chromosome: %s\n", prevChromosome);
+#endif
+ /* write transformed buffer to output stream */
+#ifdef __cplusplus
+ BZ2_bzWrite(&bzError, bzFp, transformedBuffer, static_cast<int>( currentTransformedBufferLength ));
+#else
+ BZ2_bzWrite(&bzError, bzFp, transformedBuffer, (int) currentTransformedBufferLength);
+#endif
+ if (bzError != BZ_OK) {
+ switch (bzError) {
+ case BZ_PARAM_ERROR: {
+ fprintf(stderr, "ERROR: Stream is NULL, transformedBuffer is NULL, or currentTransformedBufferLength is negative\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case BZ_SEQUENCE_ERROR: {
+ fprintf(stderr, "ERROR: Bzip2 streams are out of sequence\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case BZ_IO_ERROR: {
+ fprintf(stderr, "ERROR: There is an error writing the compressed data to the bz stream\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ default: {
+ fprintf(stderr, "ERROR: Unknown error with BZ2_bzWrite() (err: %d)\n", bzError);
+ return STARCH_EXIT_FAILURE;
+ }
+ }
+ }
+
+ /* close bzip2 stream and collect/reset stats */
+ BZ2_bzWriteClose(&bzError, bzFp, STARCH_BZ_ABANDON, &bzBytesConsumed, &bzBytesWritten);
+ if (bzError != BZ_OK) {
+ switch (bzError) {
+ case BZ_SEQUENCE_ERROR: {
+ fprintf(stderr, "ERROR: Bzip2 streams are out of sequence\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case BZ_IO_ERROR: {
+ fprintf(stderr, "ERROR: There is an error writing the compressed data to the bz stream\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ default: {
+ fprintf(stderr, "ERROR: Unknown error with BZ2_bzWrite() (err: %d)\n", bzError);
+ return STARCH_EXIT_FAILURE;
+ }
+ }
+ }
+ cumulativeRecSize += bzBytesWritten;
+ currentRecSize += bzBytesWritten;
+ bzBytesWritten = 0U;
+ bzFp = NULL;
+
+ if (STARCH_updateMetadataForChromosome(md,
+ prevChromosome,
+ compressedFn,
+ currentRecSize,
+ lineIdx,
+ totalNonUniqueBases,
+ totalUniqueBases,
+ duplicateElementExistsFlag,
+ nestedElementExistsFlag) != STARCH_EXIT_SUCCESS) {
+ fprintf(stderr, "ERROR: Could not update metadata %s\n", compressedFn);
+ return STARCH_FATAL_ERROR;
+ }
+
+ /* start again, anew, with a fresh bzip2 BZFILE pointer */
+#ifdef DEBUG
+ fprintf(stderr, "\t(final-between-chromosome) resetting bzip2 stream...\n");
+#endif
+ bzFp = BZ2_bzWriteOpen(&bzError, outFp, STARCH_BZ_COMPRESSION_LEVEL, STARCH_BZ_VERBOSITY, STARCH_BZ_WORKFACTOR);
+ if (!bzFp) {
+ fprintf(stderr, "ERROR: Could not instantiate BZFILE pointer\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ else if (bzError != BZ_OK) {
+ switch (bzError) {
+ case BZ_CONFIG_ERROR: {
+ fprintf(stderr, "ERROR: Bzip2 library has been miscompiled\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case BZ_PARAM_ERROR: {
+ fprintf(stderr, "ERROR: Stream is null, or block size, verbosity and work factor parameters are invalid\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case BZ_IO_ERROR: {
+ fprintf(stderr, "ERROR: The value of ferror(outFp) is nonzero -- check outFp\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case BZ_MEM_ERROR: {
+ fprintf(stderr, "ERROR: Not enough memory is available\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ default: {
+ fprintf(stderr, "ERROR: Unknown error with BZ2_bzWriteOpen() (err: %d)\n", bzError);
+ return STARCH_EXIT_FAILURE;
+ }
+ }
+ }
+ }
+
+ else if (compressionType == kGzip)
+ {
+#ifdef DEBUG
+ fprintf(stderr, "\t(final-between-chromosome) current chromosome: %s\n", prevChromosome);
+ fprintf(stderr, "\t(final-between-chromosome) transformedBuffer:\n%s\n", transformedBuffer);
+#endif
+#ifdef __cplusplus
+ zStream.next_in = reinterpret_cast<unsigned char *>( transformedBuffer );
+ zStream.avail_in = static_cast<unsigned int>( currentTransformedBufferLength );
+#else
+ zStream.next_in = (unsigned char *) transformedBuffer;
+ zStream.avail_in = (unsigned int) currentTransformedBufferLength;
+#endif
+ do {
+ zStream.avail_out = STARCH_Z_BUFFER_MAX_LENGTH;
+#ifdef __cplusplus
+ zStream.next_out = reinterpret_cast<unsigned char *>( zBuffer );
+#else
+ zStream.next_out = (unsigned char *) zBuffer;
+#endif
+ zError = deflate (&zStream, Z_FINISH);
+ switch (zError) {
+ case Z_MEM_ERROR: {
+ fprintf(stderr, "ERROR: Not enough memory to compress data\n");
+ return STARCH_FATAL_ERROR;
+ }
+ case Z_BUF_ERROR:
+ default:
+ break;
+ }
+ zHave = STARCH_Z_BUFFER_MAX_LENGTH - zStream.avail_out;
+ cumulativeRecSize += zHave;
+ currentRecSize += zHave;
+#ifdef DEBUG
+ fprintf(stderr, "\t(final-between-chromosome) writing: %zu bytes\tcurrent record size: %zu\n", cumulativeRecSize, currentRecSize);
+#endif
+ fwrite(zBuffer, 1, zHave, stdout);
+ fflush(stdout);
+ } while (zStream.avail_out == 0);
+ assert(zStream.avail_in == 0);
+
+#ifdef DEBUG
+ fprintf(stderr, "\t(final-between-chromosome) attempting to close z-stream...\n");
+#endif
+ zError = deflateEnd(&zStream);
+ switch (zError) {
+ case Z_STREAM_ERROR: {
+ fprintf(stderr, "ERROR: z-stream state is inconsistent\n");
+ break;
+ }
+ case Z_DATA_ERROR: {
+ fprintf(stderr, "ERROR: stream was freed prematurely\n");
+ break;
+ }
+ case Z_OK:
+ default:
+ break;
+ }
+#ifdef DEBUG
+ fprintf(stderr, "\t(final-between-chromosome) closed z-stream...\n");
+ fprintf(stderr, "\t(final-between-chromosome) updating metadata...\n");
+#endif
+ if (STARCH_updateMetadataForChromosome(md,
+ prevChromosome,
+ compressedFn,
+ currentRecSize,
+ lineIdx,
+ totalNonUniqueBases,
+ totalUniqueBases,
+ duplicateElementExistsFlag,
+ nestedElementExistsFlag) != STARCH_EXIT_SUCCESS) {
+ fprintf(stderr, "ERROR: Could not update metadata %s\n", compressedFn);
+ return STARCH_FATAL_ERROR;
+ }
+
+ /* begin anew with a fresh compression z-stream */
+#ifdef DEBUG
+ fprintf(stderr, "\t(final-between-chromosome) creating fresh z-stream\n");
+#endif
+ zStream.zalloc = Z_NULL;
+ zStream.zfree = Z_NULL;
+ zStream.opaque = Z_NULL;
+#ifdef DEBUG
+ fprintf(stderr, "\t(final-between-chromosome) initializing z-stream\n");
+#endif
+ /* zError = deflateInit2(&zStream, STARCH_Z_COMPRESSION_LEVEL, Z_DEFLATED, STARCH_Z_WINDOW_BITS, STARCH_Z_MEMORY_LEVEL, Z_DEFAULT_STRATEGY); */
+ zError = deflateInit(&zStream, STARCH_Z_COMPRESSION_LEVEL);
+ switch (zError) {
+ case Z_MEM_ERROR: {
+ fprintf(stderr, "ERROR: Not enough memory is available\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case Z_STREAM_ERROR: {
+ fprintf(stderr, "ERROR: Gzip initialization parameter is invalid (e.g., invalid method)\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case Z_VERSION_ERROR: {
+ fprintf(stderr, "ERROR: the zlib library version is incompatible with the version assumed by the caller (ZLIB_VERSION)\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case Z_OK:
+ default:
+ break;
+ }
+#ifdef DEBUG
+ fprintf(stderr, "\t(final-between-chromosome) initialized z-stream\n");
+#endif
+ }
+ }
+
+ /* create placeholder records at current chromosome */
+ sprintf(compressedFn, "%s.%s", chromosome, tag);
+#ifdef DEBUG
+ fprintf(stderr, "\t(final-between-chromosome) creating placeholder md record at chromosome: %s (compressedFn: %s)\n", chromosome, compressedFn);
+#endif
+ if (recIdx == 0) {
+ *md = NULL;
+ *md = STARCH_createMetadata(chromosome,
+ compressedFn,
+ 0,
+ 0UL,
+ 0UL,
+ 0UL,
+ STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE,
+ STARCH_DEFAULT_NESTED_ELEMENT_FLAG_VALUE);
+ if (!*md) {
+ fprintf(stderr, "ERROR: Not enough memory is available\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ firstRecord = *md;
+ }
+ else {
+ *md = STARCH_addMetadata(*md,
+ chromosome,
+ compressedFn,
+ 0,
+ 0UL,
+ 0UL,
+ 0UL,
+ STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE,
+ STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE);
+ }
+
+ /* make previous chromosome the current chromosome */
+ if (prevChromosome != NULL) {
+ free(prevChromosome);
+ prevChromosome = NULL;
+ }
+#ifdef __cplusplus
+ prevChromosome = static_cast<char *>( malloc(strlen(chromosome) + 1) );
+#else
+ prevChromosome = malloc(strlen(chromosome) + 1);
+#endif
+ if (!prevChromosome) {
+ fprintf(stderr, "ERROR: Could not allocate space for previous chromosome marker.");
+ return STARCH_FATAL_ERROR;
+ }
+#ifdef __cplusplus
+ strncpy(prevChromosome, reinterpret_cast<const char *>( chromosome ), strlen(chromosome) + 1);
+#else
+ strncpy(prevChromosome, (const char *) chromosome, strlen(chromosome) + 1);
+#endif
+
+ /* reset flag, lastPosition and lcDiff, increment record index */
+#ifdef DEBUG
+ fprintf(stderr, "\t(final-between-chromosome) resetting per-chromosome stream transformation parameters...\n");
+#endif
+ withinChr = kStarchFalse;
+ lastPosition = 0;
+ pStart = -1;
+ pStop = -1;
+ previousStop = 0;
+ lcDiff = 0;
+ lineIdx = 0UL;
+ totalNonUniqueBases = 0UL;
+ totalUniqueBases = 0UL;
+ duplicateElementExistsFlag = STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE;
+ nestedElementExistsFlag = STARCH_DEFAULT_NESTED_ELEMENT_FLAG_VALUE;
+ recIdx++;
+ currentRecSize = 0UL;
+ transformedBuffer[currentTransformedBufferLength] = '\0';
+ currentTransformedBufferLength = 0U;
+ }
+ else
+ withinChr = kStarchTrue;
+
+ /* transform */
+ if (stop > start)
+ coordDiff = stop - start;
+ else {
+ fprintf(stderr, "ERROR: BED data is corrupt at line %lu (stop: %" PRId64 ", start: %" PRId64 ")\n", lineIdx, stop, start);
+ return STARCH_FATAL_ERROR;
+ }
+ if (coordDiff != lcDiff) {
+ lcDiff = coordDiff;
+#ifdef DEBUG
+ fprintf(stderr, "\t(intermediate) A -- \np%" PRId64 "\n", coordDiff);
+#endif
+ sprintf(intermediateBuffer + strlen(intermediateBuffer), "p%" PRId64 "\n", coordDiff);
+ }
+ if (lastPosition != 0) {
+ if (remainder) {
+#ifdef DEBUG
+ fprintf(stderr, "\t(intermediate) B --\n%" PRId64 "\t%s\n", (start - lastPosition), remainder);
+#endif
+ sprintf(intermediateBuffer + strlen(intermediateBuffer), "%" PRId64 "\t%s\n", (start - lastPosition), remainder);
+ }
+ else {
+#ifdef DEBUG
+ fprintf(stderr, "\t(intermediate) C --\n%" PRId64 "\n", (start - lastPosition));
+#endif
+ sprintf(intermediateBuffer + strlen(intermediateBuffer), "%" PRId64 "\n", (start - lastPosition));
+ }
+ }
+ else {
+ if (remainder) {
+#ifdef DEBUG
+ fprintf(stderr, "\t(intermediate) D --\n%" PRId64 "\t%s\n", start, remainder);
+#endif
+ sprintf(intermediateBuffer + strlen(intermediateBuffer), "%" PRId64 "\t%s\n", start, remainder);
+ }
+ else {
+#ifdef DEBUG
+ fprintf(stderr, "\t(intermediate) E --\n%" PRId64 "\n", start);
+#endif
+ sprintf(intermediateBuffer + strlen(intermediateBuffer), "%" PRId64 "\n", start);
+ }
+ }
+
+ intermediateBufferLength = strlen(intermediateBuffer);
+#ifdef DEBUG
+ fprintf(stderr, "\t(intermediate) state of intermediateBuffer before test:\n%s\n", intermediateBuffer);
+#endif
+
+ if ((currentTransformedBufferLength + intermediateBufferLength) < STARCH_BUFFER_MAX_LENGTH) {
+ /* append intermediateBuffer to transformedBuffer */
+#ifdef DEBUG
+ fprintf(stderr, "\t(intermediate) appending intermediateBuffer to transformedBuffer\n");
+#endif
+ memcpy(transformedBuffer + currentTransformedBufferLength, intermediateBuffer, intermediateBufferLength);
+ currentTransformedBufferLength += intermediateBufferLength;
+ transformedBuffer[currentTransformedBufferLength] = '\0';
+ memset(intermediateBuffer, 0, intermediateBufferLength + 1);
+ }
+ else {
+ /* compress transformedBuffer[] and send to stdout */
+#ifdef DEBUG
+ fprintf(stderr, "\t(intermediate) to be compressed -- transformedBuffer:\n%s\n", transformedBuffer);
+#endif
+ if (compressionType == kBzip2) {
+#ifdef DEBUG
+ fprintf(stderr, "\t(intermediate) current chromosome: %s\n", prevChromosome);
+#endif
+#ifdef __cplusplus
+ BZ2_bzWrite(&bzError, bzFp, transformedBuffer, static_cast<int>( currentTransformedBufferLength ));
+#else
+ BZ2_bzWrite(&bzError, bzFp, transformedBuffer, (int) currentTransformedBufferLength);
+#endif
+ if (bzError != BZ_OK) {
+ switch (bzError) {
+ case BZ_PARAM_ERROR: {
+ fprintf(stderr, "ERROR: Stream is NULL, transformedBuffer is NULL, or currentTransformedBufferLength is negative\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case BZ_SEQUENCE_ERROR: {
+ fprintf(stderr, "ERROR: Bzip2 streams are out of sequence\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case BZ_IO_ERROR: {
+ fprintf(stderr, "ERROR: There is an error writing the compressed data to the bz stream\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ default: {
+ fprintf(stderr, "ERROR: Unknown error with BZ2_bzWrite() (err: %d)\n", bzError);
+ return STARCH_EXIT_FAILURE;
+ }
+ }
+ }
+ }
+ else if (compressionType == kGzip) {
+#ifdef DEBUG
+ fprintf(stderr, "\t(intermediate) current chromosome: %s\n", prevChromosome);
+#endif
+#ifdef __cplusplus
+ zStream.next_in = reinterpret_cast<unsigned char *>( transformedBuffer );
+ zStream.avail_in = static_cast<unsigned int>( currentTransformedBufferLength );
+#else
+ zStream.next_in = (unsigned char *) transformedBuffer;
+ zStream.avail_in = (unsigned int) currentTransformedBufferLength;
+#endif
+ do {
+ zStream.avail_out = STARCH_Z_BUFFER_MAX_LENGTH;
+#ifdef __cplusplus
+ zStream.next_out = reinterpret_cast<unsigned char *>( zBuffer );
+#else
+ zStream.next_out = (unsigned char *) zBuffer;
+#endif
+ zError = deflate (&zStream, Z_NO_FLUSH);
+ switch (zError) {
+ case Z_MEM_ERROR: {
+ fprintf(stderr, "ERROR: Not enough memory to compress data\n");
+ return STARCH_FATAL_ERROR;
+ }
+ case Z_BUF_ERROR:
+ default:
+ break;
+ }
+ zHave = STARCH_Z_BUFFER_MAX_LENGTH - zStream.avail_out;
+ cumulativeRecSize += zHave;
+ currentRecSize += zHave;
+#ifdef DEBUG
+ fprintf(stderr, "\t(intermediate) written: %zu bytes\tcurrent record size: %zu\n", cumulativeRecSize, currentRecSize);
+#endif
+ fwrite(zBuffer, 1, zHave, stdout);
+ fflush(stdout);
+ } while (zStream.avail_out == 0);
+ }
+
+ memcpy(transformedBuffer, intermediateBuffer, strlen(intermediateBuffer) + 1);
+ currentTransformedBufferLength = strlen(intermediateBuffer);
+ memset(intermediateBuffer, 0, strlen(intermediateBuffer) + 1);
+ intermediateBufferLength = 0;
+#ifdef DEBUG
+ fprintf(stderr, "\t(intermediate) end-of-loop: transformedBuffer:\n%s\n\t\tintermediateBuffer:\n%s\n", transformedBuffer, intermediateBuffer);
+#endif
+ }
+
+ /* test for out-of-order element */
+ if (pStart > start) {
+ fprintf(stderr, "ERROR: BED data is not properly sorted by start coordinates at line %lu [ pStart: %" PRId64 " | start: %" PRId64 " ]\n", lineIdx, pStart, start);
+ exit (EXIT_FAILURE);
+ }
+ else if ((pStart == start) && (pStop > stop)) {
+ fprintf(stderr, "ERROR: BED data is not properly sorted by end coordinates (when start coordinates are equal) at line %lu\n", lineIdx);
+ exit (EXIT_FAILURE);
+ }
+
+ lastPosition = stop;
+#ifdef __cplusplus
+ totalNonUniqueBases += static_cast<BaseCountType>( stop - start );
+#else
+ totalNonUniqueBases += (BaseCountType) (stop - start);
+#endif
+ if (previousStop <= start) {
+#ifdef __cplusplus
+ totalUniqueBases += static_cast<BaseCountType>( stop - start );
+#else
+ totalUniqueBases += (BaseCountType) (stop - start);
+#endif
+ }
+ else if (previousStop < stop) {
+#ifdef __cplusplus
+ totalUniqueBases += static_cast<BaseCountType>( stop - previousStop );
+#else
+ totalUniqueBases += (BaseCountType) (stop - previousStop);
+#endif
+ }
+ previousStop = (stop > previousStop) ? stop : previousStop;
+
+#ifdef DEBUG
+ fprintf(stderr, "\t(intermediate) start: %" PRId64 "\tpStart: %" PRId64 "\tstop: %" PRId64 "\tpStop: %" PRId64 "\n", start, pStart, stop, pStop);
+#ifdef __cplusplus
+ fprintf(stderr, "\t(intermediate) duplicateElementExistsFlag: %d\tnestedElementExistsFlag: %d\n", static_cast<int>( duplicateElementExistsFlag ), static_cast<int>( nestedElementExistsFlag ));
+#else
+ fprintf(stderr, "\t(intermediate) duplicateElementExistsFlag: %d\tnestedElementExistsFlag: %d\n", (int) duplicateElementExistsFlag, (int) nestedElementExistsFlag);
+#endif
+#endif
+
+ /* test for duplicate element */
+ if ((pStart == start) && (pStop == stop))
+ duplicateElementExistsFlag = kStarchTrue;
+
+ /* test for nested element */
+ if ((pStart < start) && (pStop > stop))
+ nestedElementExistsFlag = kStarchTrue;
+
+ /* set pElement values */
+ pStart = start;
+ pStop = stop;
+
+ if (withinChr == kStarchTrue)
+ free(chromosome), chromosome = NULL;
+ if (remainder)
+ free(remainder), remainder = NULL;
+ cIdx = 0;
+ }
+ else {
+ fprintf(stderr, "ERROR: BED data could not be transformed.\n");
+ return STARCH_FATAL_ERROR;
+ }
+ }
+ else
+ cIdx++;
+ }
+
+ /* if we don't have a trailing newline in BED input, then we have reached EOF before we can process a line, so we try that now */
+
+ if (cIdx > 0) {
+ untransformedBuffer[cIdx] = '\0';
+ if (STARCH_createTransformTokensForHeaderlessInput(untransformedBuffer, '\t', &chromosome, &start, &stop, &remainder) == 0) {
+#ifdef DEBUG
+ fprintf(stderr, "\t(just-before-last-pass) untransformedBuffer:\n%s\n", untransformedBuffer);
+#endif
+ /* test for out-of-order element */
+ if (pStart > start) {
+ fprintf(stderr, "ERROR: BED data is not properly sorted by start coordinates at line %lu [ pStart: %" PRId64 " | start: %" PRId64 " ]\n", lineIdx, pStart, start);
+ exit (EXIT_FAILURE);
+ }
+ else if ((pStart == start) && (pStop > stop)) {
+ fprintf(stderr, "ERROR: BED data is not properly sorted by end coordinates (when start coordinates are equal) at line %lu\n", lineIdx);
+ exit (EXIT_FAILURE);
+ }
+
+ /* transform */
+ if (stop > start)
+ coordDiff = stop - start;
+ else {
+ fprintf(stderr, "ERROR: BED data is corrupt at line %lu (stop: %" PRId64 ", start: %" PRId64 ")\n", lineIdx, stop, start);
+ return STARCH_FATAL_ERROR;
+ }
+ if (coordDiff != lcDiff) {
+ lcDiff = coordDiff;
+#ifdef DEBUG
+ fprintf(stderr, "\t(intermediate) A -- \np%" PRId64 "\n", coordDiff);
+#endif
+ sprintf(intermediateBuffer + strlen(intermediateBuffer), "p%" PRId64 "\n", coordDiff);
+ }
+ if (lastPosition != 0) {
+ if (remainder) {
+#ifdef DEBUG
+ fprintf(stderr, "\t(intermediate) B --\n%" PRId64 "\t%s\n", (start - lastPosition), remainder);
+#endif
+ sprintf(intermediateBuffer + strlen(intermediateBuffer), "%" PRId64 "\t%s\n", (start - lastPosition), remainder);
+ }
+ else {
+#ifdef DEBUG
+ fprintf(stderr, "\t(intermediate) C --\n%" PRId64 "\n", (start - lastPosition));
+#endif
+ sprintf(intermediateBuffer + strlen(intermediateBuffer), "%" PRId64 "\n", (start - lastPosition));
+ }
+ }
+ else {
+ if (remainder) {
+#ifdef DEBUG
+ fprintf(stderr, "\t(intermediate) D --\n%" PRId64 "\t%s\n", start, remainder);
+#endif
+ sprintf(intermediateBuffer + strlen(intermediateBuffer), "%" PRId64 "\t%s\n", start, remainder);
+ }
+ else {
+#ifdef DEBUG
+ fprintf(stderr, "\t(intermediate) E --\n%" PRId64 "\n", start);
+#endif
+ sprintf(intermediateBuffer + strlen(intermediateBuffer), "%" PRId64 "\n", start);
+ }
+ }
+ intermediateBufferLength = strlen(intermediateBuffer);
+#ifdef DEBUG
+ fprintf(stderr, "\t(intermediate) state of intermediateBuffer before test:\n%s\n", intermediateBuffer);
+#endif
+
+ /* append intermediateBuffer to transformedBuffer */
+#ifdef DEBUG
+ fprintf(stderr, "\t(intermediate) appending intermediateBuffer to transformedBuffer\n");
+#endif
+ memcpy(transformedBuffer + currentTransformedBufferLength, intermediateBuffer, intermediateBufferLength);
+ currentTransformedBufferLength += intermediateBufferLength;
+ transformedBuffer[currentTransformedBufferLength] = '\0';
+ memset(intermediateBuffer, 0, intermediateBufferLength + 1);
+
+ lastPosition = stop;
+#ifdef __cplusplus
+ totalNonUniqueBases += static_cast<BaseCountType>( stop - start );
+#else
+ totalNonUniqueBases += (BaseCountType) (stop - start);
+#endif
+ if (previousStop <= start) {
+#ifdef __cplusplus
+ totalUniqueBases += static_cast<BaseCountType>( stop - start );
+#else
+ totalUniqueBases += (BaseCountType) (stop - start);
+#endif
+ }
+ else if (previousStop < stop) {
+#ifdef __cplusplus
+ totalUniqueBases += static_cast<BaseCountType>( stop - previousStop );
+#else
+ totalUniqueBases += (BaseCountType) (stop - previousStop);
+#endif
+ }
+ previousStop = (stop > previousStop) ? stop : previousStop;
+
+#ifdef DEBUG
+ fprintf(stderr, "\t(intermediate) start: %" PRId64 "\tpStart: %" PRId64 "\tstop: %" PRId64 "\tpStop: %" PRId64 "\n", start, pStart, stop, pStop);
+#ifdef __cplusplus
+ fprintf(stderr, "\t(intermediate) duplicateElementExistsFlag: %d\tnestedElementExistsFlag: %d\n", static_cast<int>( duplicateElementExistsFlag ), static_cast<int>( nestedElementExistsFlag ));
+#else
+ fprintf(stderr, "\t(intermediate) duplicateElementExistsFlag: %d\tnestedElementExistsFlag: %d\n", (int) duplicateElementExistsFlag, (int) nestedElementExistsFlag);
+#endif
+#endif
+
+ /* test for duplicate element */
+ if ((pStart == start) && (pStop == stop))
+ duplicateElementExistsFlag = kStarchTrue;
+
+ /* test for nested element */
+ if ((pStart < start) && (pStop > stop))
+ nestedElementExistsFlag = kStarchTrue;
+ }
+ else {
+ fprintf(stderr, "ERROR: BED data is corrupt at line %lu\n", lineIdx);
+ return STARCH_FATAL_ERROR;
+ }
+ }
+
+ lineIdx++;
+ sprintf(compressedFn, "%s.%s", prevChromosome, tag);
+
+#ifdef DEBUG
+ fprintf(stderr, "\t(last-pass) transformedBuffer:\n%s\n\t\tintermediateBuffer:\n%s\n", transformedBuffer, intermediateBuffer);
+#endif
+ /* last-pass, bzip2 */
+ if (compressionType == kBzip2) {
+#ifdef DEBUG
+ fprintf(stderr, "\t(last-pass) current chromosome: %s\n", prevChromosome);
+#endif
+ if (currentTransformedBufferLength > 0)
+ {
+#ifdef __cplusplus
+ BZ2_bzWrite(&bzError, bzFp, transformedBuffer, static_cast<int>( currentTransformedBufferLength ));
+#else
+ BZ2_bzWrite(&bzError, bzFp, transformedBuffer, (int) currentTransformedBufferLength);
+#endif
+ if (bzError != BZ_OK) {
+ switch (bzError) {
+ case BZ_PARAM_ERROR: {
+ fprintf(stderr, "ERROR: Stream is NULL, transformedBuffer is NULL, or currentTransformedBufferLength is negative\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case BZ_SEQUENCE_ERROR: {
+ fprintf(stderr, "ERROR: Bzip2 streams are out of sequence\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case BZ_IO_ERROR: {
+ fprintf(stderr, "ERROR: There is an error writing the compressed data to the bz stream\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ default: {
+ fprintf(stderr, "ERROR: Unknown error with BZ2_bzWrite() (err: %d)\n", bzError);
+ return STARCH_EXIT_FAILURE;
+ }
+ }
+ }
+ }
+
+#ifdef DEBUG
+ fprintf(stderr, "\t(last-pass) attempting to close bzip2 stream...\n");
+#endif
+ BZ2_bzWriteClose(&bzError, bzFp, STARCH_BZ_ABANDON, &bzBytesConsumed, &bzBytesWritten);
+ if (bzError != BZ_OK) {
+ switch (bzError) {
+ case BZ_PARAM_ERROR: {
+ fprintf(stderr, "ERROR: Stream is NULL, transformedBuffer is NULL, or currentTransformedBufferLength is negative\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case BZ_SEQUENCE_ERROR: {
+ fprintf(stderr, "ERROR: Bzip2 streams are out of sequence\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case BZ_IO_ERROR: {
+ fprintf(stderr, "ERROR: There is an error writing the compressed data to the bz stream\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ default: {
+ fprintf(stderr, "ERROR: Unknown error with BZ2_bzWrite() (err: %d)\n", bzError);
+ return STARCH_EXIT_FAILURE;
+ }
+ }
+ }
+ cumulativeRecSize += bzBytesWritten;
+ currentRecSize += bzBytesWritten;
+
+#ifdef DEBUG
+ fprintf(stderr, "\t(last-pass) closed bzip2 stream...\n");
+#endif
+ }
+
+ /* last-pass, gzip */
+ else if (compressionType == kGzip) {
+#ifdef DEBUG
+ /*fprintf(stderr, "\t(last-pass) to be compressed - transformedBuffer:\n%s\n", transformedBuffer);*/
+#endif
+ if (currentTransformedBufferLength > 0)
+ {
+#ifdef DEBUG
+ fprintf(stderr, "\t(last-pass) current chromosome: %s\n", prevChromosome);
+#endif
+#ifdef __cplusplus
+ zStream.next_in = reinterpret_cast<unsigned char *>( transformedBuffer );
+ zStream.avail_in = static_cast<unsigned int>( currentTransformedBufferLength );
+#else
+ zStream.next_in = (unsigned char *) transformedBuffer;
+ zStream.avail_in = (unsigned int) currentTransformedBufferLength;
+#endif
+ do {
+ zStream.avail_out = STARCH_Z_BUFFER_MAX_LENGTH;
+#ifdef __cplusplus
+ zStream.next_out = reinterpret_cast<unsigned char *>( zBuffer );
+#else
+ zStream.next_out = (unsigned char *) zBuffer;
+#endif
+ zError = deflate(&zStream, Z_FINISH);
+ switch (zError) {
+ case Z_MEM_ERROR: {
+ fprintf(stderr, "ERROR: Not enough memory to compress data\n");
+ return STARCH_FATAL_ERROR;
+ }
+ case Z_BUF_ERROR:
+ default:
+ break;
+ }
+ zHave = STARCH_Z_BUFFER_MAX_LENGTH - zStream.avail_out;
+ cumulativeRecSize += zHave;
+ currentRecSize += zHave;
+#ifdef DEBUG
+ fprintf(stderr, "\t(last-pass) written: %zu bytes\tcurrent record size: %zu\n", cumulativeRecSize, currentRecSize);
+#endif
+ fwrite(zBuffer, 1, zHave, stdout);
+ fflush(stdout);
+ } while (zStream.avail_out == 0);
+#ifdef DEBUG
+ fprintf(stderr, "\t(last-pass) attempting to close z-stream...\n");
+#endif
+ deflateEnd(&zStream);
+#ifdef DEBUG
+ fprintf(stderr, "\t(last-pass) closed z-stream...\n");
+#endif
+ }
+ }
+
+#ifdef DEBUG
+ fprintf(stderr, "\t(last-pass) updating last md record...\n");
+#ifdef __cplusplus
+ fprintf(stderr, "\t(last-pass) flag state: duplicateElementExistsFlag: %d\tnestedElementExistsFlag: %d\n", static_cast<int>( duplicateElementExistsFlag ), static_cast<int>( nestedElementExistsFlag ));
+#else
+ fprintf(stderr, "\t(last-pass) flag state: duplicateElementExistsFlag: %d\tnestedElementExistsFlag: %d\n", (int) duplicateElementExistsFlag, (int) nestedElementExistsFlag);
+#endif
+#endif
+ if (STARCH_updateMetadataForChromosome(md,
+ prevChromosome,
+ compressedFn,
+ currentRecSize,
+ lineIdx,
+ totalNonUniqueBases,
+ totalUniqueBases,
+ duplicateElementExistsFlag,
+ nestedElementExistsFlag) != STARCH_EXIT_SUCCESS) {
+ /*
+ If the stream or input file contains no BED records, then the Metadata pointer md will
+ be NULL, as will the char pointer prevChromosome. So we put in a stub metadata record.
+ */
+ lineIdx = 0;
+ *md = NULL;
+ *md = STARCH_createMetadata(nullChr,
+ nullCompressedFn,
+ currentRecSize,
+ lineIdx,
+ 0UL,
+ 0UL,
+ STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE,
+ STARCH_DEFAULT_NESTED_ELEMENT_FLAG_VALUE);
+ if (!*md) {
+ fprintf(stderr, "ERROR: Not enough memory is available\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ firstRecord = *md;
+ }
+
+ /* reset metadata pointer */
+ *md = firstRecord;
+
+ /* write metadata */
+#ifdef DEBUG
+ fprintf(stderr, "\twriting md to output stream (as JSON)...\n");
+#endif
+ STARCH_writeJSONMetadata(*md, &json, &type, 0, note);
+ fwrite(json, 1, strlen(json), stdout);
+ fflush(stdout);
+
+ /* write metadata signature */
+#ifdef DEBUG
+ fprintf(stderr, "\twriting md signature...\n");
+#endif
+ jsonCopy = STARCH_strdup(json);
+#ifdef __cplusplus
+ STARCH_SHA1_All(reinterpret_cast<const unsigned char *>( jsonCopy ), strlen(jsonCopy), sha1Digest);
+#else
+ STARCH_SHA1_All((const unsigned char *)jsonCopy, strlen(jsonCopy), sha1Digest);
+#endif
+ free(jsonCopy);
+
+ /* encode signature in base64 encoding */
+#ifdef DEBUG
+ fprintf(stderr, "\tencoding md signature...\n");
+#endif
+
+#ifdef __cplusplus
+ STARCH_encodeBase64(&base64EncodedSha1Digest, static_cast<size_t>( STARCH2_MD_FOOTER_BASE64_ENCODED_SHA1_LENGTH ), reinterpret_cast<const unsigned char *>( sha1Digest ), static_cast<size_t>( STARCH2_MD_FOOTER_SHA1_LENGTH ) );
+#else
+ STARCH_encodeBase64(&base64EncodedSha1Digest, (const size_t) STARCH2_MD_FOOTER_BASE64_ENCODED_SHA1_LENGTH, (const unsigned char *) sha1Digest, (const size_t) STARCH2_MD_FOOTER_SHA1_LENGTH);
+#endif
+
+ /* build footer */
+#ifdef DEBUG
+#ifdef __cplusplus
+ fprintf(stderr, "\tWARNING:\nmdLength: %llu\nmd - [%s]\nsha1 - [%s]\n", static_cast<unsigned long long>( strlen(json) ), json, sha1Digest);
+#else
+ fprintf(stderr, "\tWARNING:\nmdLength: %llu\nmd - [%s]\nsha1 - [%s]\n", (unsigned long long) strlen(json), json, sha1Digest);
+#endif
+ fprintf(stderr, "\twriting offset and signature to output stream...\n");
+#endif
+#ifdef __cplusplus
+ sprintf(footerCumulativeRecordSizeBuffer, "%020llu", static_cast<unsigned long long>( cumulativeRecSize )); /* size_t cast to unsigned long long to avoid compilation warnings from ISO C++ compiler */
+#else
+ sprintf(footerCumulativeRecordSizeBuffer, "%020llu", (unsigned long long) cumulativeRecSize); /* size_t cast to unsigned long long to avoid compilation warnings from ISO C++ compiler */
+#endif
+#ifdef DEBUG
+ fprintf(stderr, "\tfooterCumulativeRecordSizeBuffer: %s\n", footerCumulativeRecordSizeBuffer);
+#endif
+ memcpy(footerBuffer, footerCumulativeRecordSizeBuffer, strlen(footerCumulativeRecordSizeBuffer));
+ memcpy(footerBuffer + STARCH2_MD_FOOTER_CUMULATIVE_RECORD_SIZE_LENGTH, base64EncodedSha1Digest, STARCH2_MD_FOOTER_BASE64_ENCODED_SHA1_LENGTH - 1); /* strip trailing null */
+#ifdef __cplusplus
+ memset(footerRemainderBuffer, STARCH2_MD_FOOTER_REMAINDER_UNUSED_CHAR, static_cast<size_t>( STARCH2_MD_FOOTER_REMAINDER_LENGTH ));
+#else
+ memset(footerRemainderBuffer, STARCH2_MD_FOOTER_REMAINDER_UNUSED_CHAR, (size_t) STARCH2_MD_FOOTER_REMAINDER_LENGTH);
+#endif
+#ifdef DEBUG
+ fprintf(stderr, "\tfooterRemainderBuffer: [%s]\n", footerRemainderBuffer);
+#endif
+ memcpy(footerBuffer + STARCH2_MD_FOOTER_CUMULATIVE_RECORD_SIZE_LENGTH + STARCH2_MD_FOOTER_BASE64_ENCODED_SHA1_LENGTH - 1, footerRemainderBuffer, STARCH2_MD_FOOTER_REMAINDER_LENGTH); /* don't forget to offset pointer index by -1 for base64-sha1's null */
+ footerBuffer[STARCH2_MD_FOOTER_CUMULATIVE_RECORD_SIZE_LENGTH + STARCH2_MD_FOOTER_BASE64_ENCODED_SHA1_LENGTH - 1 + STARCH2_MD_FOOTER_REMAINDER_LENGTH - 1] = '\0';
+ footerBuffer[STARCH2_MD_FOOTER_CUMULATIVE_RECORD_SIZE_LENGTH + STARCH2_MD_FOOTER_BASE64_ENCODED_SHA1_LENGTH - 1 + STARCH2_MD_FOOTER_REMAINDER_LENGTH - 2] = '\n';
+ fprintf(stdout, "%s", footerBuffer);
+ fflush(stdout);
+
+ if (json)
+ free(json), json = NULL;
+ if (compressedFn)
+ free(compressedFn), compressedFn = NULL;
+ if (prevChromosome)
+ free(prevChromosome), prevChromosome = NULL;
+ if (base64EncodedSha1Digest)
+ free(base64EncodedSha1Digest), base64EncodedSha1Digest = NULL;
+
+ return STARCH_EXIT_SUCCESS;
+}
+
+int
+STARCH2_writeStarchHeaderToOutputFp(const unsigned char *header, const FILE *outFp)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH2_writeStarchHeaderToOutputFp() ---\n");
+ fprintf(stderr, "\theader: %s\n", header);
+#endif
+
+ if (!outFp) {
+ fprintf(stderr, "ERROR: No output file pointer available to write starch header.\n");
+ return STARCH_EXIT_FAILURE;
+ }
+
+#ifdef __cplusplus
+ if (fwrite(header, STARCH2_MD_HEADER_BYTE_LENGTH, 1, const_cast<FILE *>( outFp )) != 1) {
+#else
+ if (fwrite(header, STARCH2_MD_HEADER_BYTE_LENGTH, 1, (FILE *)outFp) != 1) {
+#endif
+ fprintf(stderr, "ERROR: Could not write all of starch header items to output file pointer.\n");
+ return STARCH_EXIT_FAILURE;
+ }
+
+ return STARCH_EXIT_SUCCESS;
+}
+
+int
+STARCH2_initializeStarchHeader(unsigned char **header)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH2_initializeStarchHeader() ---\n");
+#endif
+ int idx;
+
+#ifdef __cplusplus
+ *header = static_cast<unsigned char *>( malloc (STARCH2_MD_HEADER_BYTE_LENGTH) );
+#else
+ *header = malloc (STARCH2_MD_HEADER_BYTE_LENGTH);
+#endif
+ if (!*header) {
+ fprintf(stderr, "ERROR: Could not allocate space for header.\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ memset(*header, 0, STARCH2_MD_HEADER_BYTE_LENGTH);
+
+ for (idx = 0; idx < STARCH2_MD_HEADER_BYTE_LENGTH; idx++) {
+ if (idx < 4)
+ (*header)[idx] = starchRevision2HeaderBytes[idx];
+ }
+
+ return STARCH_EXIT_SUCCESS;
+}
+
+void
+STARCH2_printStarchHeader(const unsigned char *header)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH2_printStarchHeader() ---\n");
+#endif
+ int idx;
+
+ fprintf(stderr, "ERROR: Archive header:\n\t");
+ for (idx = 0; idx < STARCH2_MD_HEADER_BYTE_LENGTH; idx++) {
+ fprintf(stderr, "%02x", header[idx]);
+ if ( ((idx + 1) % 4 == 0) && (idx != STARCH2_MD_HEADER_BYTE_LENGTH - 1) )
+ fprintf(stderr, " ");
+ }
+ fprintf(stderr, "\n");
+}
+
+#ifdef __cplusplus
+} // namespace starch
+#endif
diff --git a/interfaces/src/data/starch/starchMetadataHelpers.c b/interfaces/src/data/starch/starchMetadataHelpers.c
new file mode 100644
index 0000000..aa5617a
--- /dev/null
+++ b/interfaces/src/data/starch/starchMetadataHelpers.c
@@ -0,0 +1,1777 @@
+//=========
+// Author: Alex Reynolds & Shane Neph
+// Project: starch
+// File: starchMetadataHelpers.c
+//=========
+
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifdef __cplusplus
+#include <cinttypes>
+#include <cstdint>
+#include <cstdlib>
+#include <cstring>
+#include <climits> /* CHAR_BIT */
+#include <ctime>
+#else
+#include <inttypes.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/utsname.h>
+#include <limits.h> /* CHAR_BIT */
+#include <time.h>
+#endif
+
+#include <unistd.h>
+#include <sys/utsname.h>
+
+#include "data/starch/starchBase64Coding.h"
+#include "data/starch/starchSha1Digest.h"
+#include "data/starch/starchMetadataHelpers.h"
+#include "data/starch/starchFileHelpers.h"
+#include "data/starch/starchHelpers.h"
+
+#ifdef __cplusplus
+namespace starch {
+ using namespace Bed;
+#endif
+
+Metadata *
+STARCH_createMetadata(char const *chr, char const *fn, uint64_t size, LineCountType lineCount, BaseCountType totalNonUniqueBases, BaseCountType totalUniqueBases, Boolean duplicateElementExists, Boolean nestedElementExists)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH_createMetadata() ---\n");
+#endif
+ Metadata *newMetadata = NULL;
+ size_t fnLength = 0;
+ size_t chrLength = 0;
+
+ if (chr)
+ chrLength = strlen(chr);
+ if (fn)
+ fnLength = strlen(fn);
+
+#ifdef __cplusplus
+ newMetadata = static_cast<Metadata *>( malloc(sizeof(Metadata)) );
+#else
+ newMetadata = malloc(sizeof(Metadata));
+#endif
+
+ if ((newMetadata != NULL) && (chr != NULL) && (fn != NULL)) {
+ newMetadata->chromosome = NULL;
+
+#ifdef __cplusplus
+ newMetadata->chromosome = static_cast<char *>( malloc(chrLength + 1) );
+#else
+ newMetadata->chromosome = malloc(chrLength + 1);
+#endif
+
+ if (!newMetadata->chromosome) {
+ fprintf(stderr, "ERROR: Cannot instantiate new chromosome for metadata record\n");
+ exit(EXIT_FAILURE);
+ }
+ strncpy(newMetadata->chromosome, chr, chrLength + 1);
+ newMetadata->filename = NULL;
+
+#ifdef __cplusplus
+ newMetadata->filename = static_cast<char *>( malloc(fnLength + 1) );
+#else
+ newMetadata->filename = malloc(fnLength + 1);
+#endif
+
+ if (!newMetadata->filename) {
+ fprintf(stderr, "ERROR: Cannot instantiate new filename for metadata record\n");
+ exit(EXIT_FAILURE);
+ }
+ strncpy(newMetadata->filename, fn, fnLength + 1);
+ newMetadata->size = size;
+ newMetadata->lineCount = lineCount;
+ newMetadata->totalNonUniqueBases = totalNonUniqueBases;
+ newMetadata->totalUniqueBases = totalUniqueBases;
+ newMetadata->duplicateElementExists = duplicateElementExists;
+ newMetadata->nestedElementExists = nestedElementExists;
+ newMetadata->next = NULL;
+ }
+ else {
+ fprintf(stderr, "ERROR: Could not allocate memory for metadata!\n");
+ exit (EXIT_FAILURE);
+ }
+
+ return newMetadata;
+}
+
+Metadata *
+STARCH_addMetadata(Metadata *md, char *chr, char *fn, uint64_t size, LineCountType lineCount, BaseCountType totalNonUniqueBases, BaseCountType totalUniqueBases, Boolean duplicateElementExists, Boolean nestedElementExists)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH_addMetadata() ---\n");
+#endif
+ Metadata *newMd = STARCH_createMetadata(chr,
+ fn,
+ size,
+ lineCount,
+ totalNonUniqueBases,
+ totalUniqueBases,
+ duplicateElementExists,
+ nestedElementExists);
+
+ if ((newMd != NULL) && (md->next == NULL))
+ md->next = newMd;
+ else {
+ fprintf(stderr, "ERROR: Could not allocate memory for metadata!\n");
+ exit (EXIT_FAILURE);
+ }
+
+ return newMd;
+}
+
+Metadata *
+STARCH_copyMetadata(const Metadata *md)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH_copyMetadata() ---\n");
+#endif
+ Metadata *copy = NULL;
+ Metadata *firstRec = NULL;
+ const Metadata *iter = NULL;
+
+ /* copy first record */
+ copy = STARCH_createMetadata(md->chromosome,
+ md->filename,
+ md->size,
+ md->lineCount,
+ md->totalNonUniqueBases,
+ md->totalUniqueBases,
+ md->duplicateElementExists,
+ md->nestedElementExists);
+ firstRec = copy;
+ md = md->next;
+
+ /* copy remainder */
+ for (iter = md; iter != NULL; iter = iter->next) {
+ copy = STARCH_addMetadata(copy,
+ iter->chromosome,
+ iter->filename,
+ iter->size,
+ iter->lineCount,
+ iter->totalNonUniqueBases,
+ iter->totalUniqueBases,
+ iter->duplicateElementExists,
+ iter->nestedElementExists);
+ }
+
+ if (!firstRec) {
+ fprintf(stderr, "ERROR: Could not allocate memory for copy of metadata!\n");
+ exit (EXIT_FAILURE);
+ }
+
+ return firstRec;
+}
+
+int
+STARCH_updateMetadataForChromosome(Metadata **md, char *chr, char *fn, uint64_t size, LineCountType lineCount, BaseCountType totalNonUniqueBases, BaseCountType totalUniqueBases, Boolean duplicateElementExists, Boolean nestedElementExists)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH_updateMetadataForChromosome() ---\n");
+#ifdef __cplusplus
+ fprintf(stderr, "\tduplicateElementExists: %d\n\tnestedElementExists: %d\n", static_cast<int>( duplicateElementExists ), static_cast<int>( nestedElementExists ));
+#else
+ fprintf(stderr, "\tduplicateElementExists: %d\n\tnestedElementExists: %d\n", (int) duplicateElementExists, (int) nestedElementExists);
+#endif
+#endif
+ Metadata *iter;
+
+ /*
+ It is possible for a NULL Metadata record to occur with empty set input
+ from file or stream, so we return early.
+ */
+
+ if (! *md)
+ return STARCH_NONFATAL_ERROR;
+
+ for (iter = *md; iter != NULL; iter = iter->next) {
+#ifdef __cplusplus
+ if (strcmp(reinterpret_cast<const char *>( iter->chromosome ), chr) == 0) {
+#else
+ if (strcmp((const char *)iter->chromosome, chr) == 0) {
+#endif
+#ifdef DEBUG
+ fprintf(stderr, "\tupdating record for chr: %s\n", iter->chromosome);
+#endif
+ free(iter->filename);
+ iter->filename = NULL;
+#ifdef __cplusplus
+ iter->filename = static_cast<char *>( malloc(strlen(fn) + 1) );
+#else
+ iter->filename = malloc(strlen(fn) + 1);
+#endif
+ strncpy(iter->filename, fn, strlen(fn) + 1);
+ if (!iter->filename) {
+ fprintf(stderr, "ERROR: Ran out of memory for updating metadata with filename\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ iter->size = size;
+ iter->lineCount = lineCount;
+ iter->totalNonUniqueBases = totalNonUniqueBases;
+ iter->totalUniqueBases = totalUniqueBases;
+ iter->duplicateElementExists = duplicateElementExists;
+ iter->nestedElementExists = nestedElementExists;
+ break;
+ }
+ }
+
+ return STARCH_EXIT_SUCCESS;
+}
+
+int
+STARCH_listMetadata(const Metadata *md, const char *chr)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH_listMetadata() ---\n");
+#endif
+ const Metadata *iter;
+ Boolean chrFound = kStarchFalse;
+ const char *t = "true";
+ const char *f = "false";
+
+ if (!md) {
+ fprintf(stderr, "ERROR: Could not list metadata (metadata structure is empty)\n");
+ return STARCH_EXIT_FAILURE;
+ }
+
+ if (strcmp("all", chr) == 0)
+ chrFound = kStarchTrue;
+ else {
+ for (iter = md; iter != NULL; iter = iter->next) {
+#ifdef __cplusplus
+ if (strcmp(reinterpret_cast<const char *>( iter->chromosome ), chr) == 0) {
+#else
+ if (strcmp((const char *)iter->chromosome, chr) == 0) {
+#endif
+ chrFound = kStarchTrue;
+ break;
+ }
+ }
+ }
+
+ if (chrFound == kStarchTrue) {
+ fprintf(stdout, "%-25s| %-65s\t| %-15s\t| %-20s\t| %-20s\t| %-20s\t| %-25s\t| %-25s\n", "chr", "filename", "compressedSize", "uncompressedLineCount", "totalNonUniqueBases", "totalUniqueBases", "duplicateElementExists", "nestedElementExists");
+ for (iter = md; iter != NULL; iter = iter->next) {
+#ifdef __cplusplus
+ if ( (strcmp(reinterpret_cast<const char *>( iter->chromosome ), chr) == 0) || (strcmp("all", chr) == 0) )
+#else
+ if ( (strcmp((const char *)iter->chromosome, chr) == 0) || (strcmp("all", chr) == 0) )
+#endif
+ fprintf(stdout, "%-25s| %-65s\t| %-15" PRIu64 "\t| %-20" PRIu64 "\t| %-20" PRIu64 "\t| %-20" PRIu64 "\t| %-25s\t| %-25s\n", iter->chromosome, iter->filename, iter->size, iter->lineCount, iter->totalNonUniqueBases, iter->totalUniqueBases, (iter->duplicateElementExists == kStarchTrue ? t : f), (iter->nestedElementExists == kStarchTrue ? t : f));
+ }
+ }
+
+ return STARCH_EXIT_SUCCESS;
+}
+
+int
+STARCH_listAllChromosomes(const Metadata *md)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH_listAllChromosomes() ---\n");
+#endif
+ const Metadata *iter;
+
+ if (!md) {
+ fprintf(stderr, "ERROR: Could not list chromosomes (metadata structure is empty)\n");
+ return STARCH_EXIT_FAILURE;
+ }
+
+ for (iter = md; iter != NULL; iter = iter->next)
+ if (strcmp(kStarchNullChromosome, iter->chromosome) != 0)
+ fprintf(stdout, "%s\n", iter->chromosome);
+
+ return STARCH_EXIT_SUCCESS;
+}
+
+int
+STARCH_listChromosome(const Metadata *md, const char *chr)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH_listChromosome() ---\n");
+#endif
+ const Metadata *iter;
+
+ if (!md) {
+ fprintf(stderr, "ERROR: Could not list chromosome (metadata structure is empty)\n");
+ return STARCH_EXIT_FAILURE;
+ }
+
+ for (iter = md; iter != NULL; iter = iter->next) {
+ if (strcmp(iter->chromosome, chr) == 0) {
+ if (strcmp(kStarchNullChromosome, iter->chromosome) != 0)
+ fprintf(stdout, "%s\n", iter->chromosome);
+ break;
+ }
+ }
+
+ return STARCH_EXIT_SUCCESS;
+}
+
+void
+STARCH_freeMetadata(Metadata **md)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH_freeMetadata() ---\n");
+#endif
+ Metadata *iter;
+ Metadata *prev = NULL;
+
+ if (! *md)
+ return;
+
+ for (iter = *md; iter != NULL; iter = iter->next) {
+ if (iter->chromosome != NULL)
+ free(iter->chromosome);
+ if (iter->filename != NULL)
+ free(iter->filename);
+ if (prev != NULL)
+ free(prev);
+
+ prev = iter;
+ }
+
+ if (prev != NULL) {
+ free(prev);
+ prev = NULL;
+ }
+}
+
+int
+STARCH_deleteCompressedFiles(const Metadata *md)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH_deleteCompressedFiles() ---\n");
+#endif
+ const Metadata *iter;
+
+ if (!md) {
+ fprintf(stderr, "ERROR: Could not delete per-chromosome compressed files (metadata structure is empty)\n");
+ return STARCH_EXIT_FAILURE;
+ }
+
+ for (iter = md; iter != NULL; iter = iter->next) {
+ if (remove(iter->filename) != 0) {
+ fprintf(stderr, "ERROR: Could not delete per-chromosome compressed file %s. Is your BED input not sorted lexographically? Does it contain custom UCSC headers (see --header)?\n", iter->filename);
+ return STARCH_EXIT_FAILURE;
+ }
+ }
+
+ return STARCH_EXIT_SUCCESS;
+}
+
+char *
+STARCH_generateJSONMetadata(const Metadata *md, const CompressionType type, const ArchiveVersion *av, const char *cTime, const char *note, const Boolean headerFlag)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH_generateJSONMetadata() ---\n");
+#endif
+ const Metadata *iter = NULL;
+ json_t *metadataJSON = NULL;
+#ifdef __cplusplus
+ json_t *compressionFormat = json_integer(static_cast<json_int_t>(type));
+#else
+ json_t *compressionFormat = json_integer((json_int_t)type);
+#endif
+ json_t *streams = json_array();
+ json_t *stream = NULL;
+ json_t *streamChromosome = NULL;
+ json_t *streamFilename = NULL;
+ json_t *streamSize = NULL;
+ json_t *streamLineCount = NULL;
+ json_t *streamTotalNonUniqueBases = NULL;
+ json_t *streamTotalUniqueBases = NULL;
+ json_t *streamCustomHeaderFlag = NULL;
+ json_t *streamDuplicateElementExistsFlag = NULL;
+ json_t *streamNestedElementExistsFlag = NULL;
+ json_t *streamArchive = NULL;
+ json_t *streamArchiveType = NULL;
+ json_t *streamArchiveNote = NULL;
+ json_t *streamArchiveCreationTimestamp = NULL;
+ json_t *streamArchiveVersion = NULL;
+ json_t *streamArchiveVersionMajor = NULL;
+ json_t *streamArchiveVersionMinor = NULL;
+ json_t *streamArchiveVersionRevision = NULL;
+ char *recordFilenameCopy = NULL;
+ char *recordChromosome = NULL;
+ char *recordToken = NULL;
+ char *recordSize = NULL;
+ char *creationTimestamp = NULL;
+ char *jsonString = NULL;
+ size_t creationTimestampLength = STARCH_CREATION_TIMESTAMP_LENGTH;
+ uint64_t filenameSize = 0;
+ LineCountType filenameLineCount = 0;
+ BaseCountType totalNonUniqueBases = 0;
+ BaseCountType totalUniqueBases = 0;
+ time_t creationTime;
+ struct tm *creationTimeInformation = NULL;
+
+ if (!md)
+ return NULL;
+
+ /* cf. http://www.digip.org/jansson/doc/2.3/apiref.html */
+
+ metadataJSON = json_object();
+ if (!metadataJSON) {
+ fprintf(stderr, "ERROR: Could not instantiate metadata root object\n");
+ return NULL;
+ }
+
+ streamArchive = json_object();
+ if (!streamArchive) {
+ fprintf(stderr, "ERROR: Could not instantiate stream archive object\n");
+ return NULL;
+ }
+
+ streamArchiveType = json_string(STARCH_METADATA_STREAM_ARCHIVE_TYPE_VALUE);
+ if (!streamArchiveType) {
+ fprintf(stderr, "ERROR: Could not instantiate stream archive type object\n");
+ return NULL;
+ }
+ json_object_set_new(streamArchive, STARCH_METADATA_STREAM_ARCHIVE_TYPE_KEY, streamArchiveType);
+
+ streamCustomHeaderFlag = json_boolean(headerFlag == kStarchTrue); /* returns json_true() if true, else json_false() */
+ if (!streamCustomHeaderFlag) {
+ fprintf(stderr, "ERROR: Could not instantiate stream header flag object\n");
+ return NULL;
+ }
+ json_object_set_new(streamArchive, STARCH_METADATA_STREAM_HEADER_BED_TYPE_KEY, streamCustomHeaderFlag);
+
+ streamArchiveVersion = json_object();
+ if (!av) {
+ /* starch - create defaults */
+ streamArchiveVersionMajor = json_integer(STARCH_METADATA_STREAM_ARCHIVE_VERSION_MAJOR_VALUE);
+ streamArchiveVersionMinor = json_integer(STARCH_METADATA_STREAM_ARCHIVE_VERSION_MINOR_VALUE);
+ streamArchiveVersionRevision = json_integer(STARCH_METADATA_STREAM_ARCHIVE_VERSION_REVISION_VALUE);
+ }
+ else {
+ /* unstarch - read from archive */
+ streamArchiveVersionMajor = json_integer(av->major);
+ streamArchiveVersionMinor = json_integer(av->minor);
+ streamArchiveVersionRevision = json_integer(av->revision);
+ }
+ if ((!streamArchiveVersionMajor) || (!streamArchiveVersionMinor) || (!streamArchiveVersionRevision)) {
+ fprintf(stderr, "ERROR: Could not instantiate stream archive version objects\n");
+ return NULL;
+ }
+
+ /* 1.5+ archive */
+ if ((json_integer_value(streamArchiveVersionMajor) > 1) || ((json_integer_value(streamArchiveVersionMajor) == 1) && (json_integer_value(streamArchiveVersionMinor) >= 5)))
+ {
+ /* creation timestamp */
+ if (!cTime) {
+ /* starch - create timestamp */
+ time(&creationTime);
+ creationTimeInformation = localtime(&creationTime);
+#ifdef __cplusplus
+ creationTimestamp = static_cast<char *>( malloc(creationTimestampLength) );
+#else
+ creationTimestamp = malloc(creationTimestampLength);
+#endif
+ if (!creationTimestamp) {
+ fprintf(stderr, "ERROR: Could not instantiate stream archive creation timestamp string\n");
+ return NULL;
+ }
+ strftime(creationTimestamp, creationTimestampLength, "%Y-%m-%dT%H:%M:%S%z", creationTimeInformation);
+ streamArchiveCreationTimestamp = json_string(creationTimestamp);
+ free(creationTimestamp);
+ creationTimestamp = NULL;
+ if (!streamArchiveCreationTimestamp) {
+ fprintf(stderr, "ERROR: Could not instantiate stream archive creation timestamp JSON object\n");
+ return NULL;
+ }
+ }
+ else {
+ /* unstarch - read from archive */
+ streamArchiveCreationTimestamp = json_string(cTime);
+ }
+ json_object_set_new(streamArchive, STARCH_METADATA_STREAM_ARCHIVE_CREATION_TIMESTAMP_KEY, streamArchiveCreationTimestamp);
+
+ /* note */
+ if (note) {
+ streamArchiveNote = json_string(note);
+ if (!streamArchiveNote) {
+ fprintf(stderr, "ERROR: Could not instantiate stream archive note object\n");
+ return NULL;
+ }
+ json_object_set_new(streamArchive, STARCH_METADATA_STREAM_ARCHIVE_NOTE_KEY, streamArchiveNote);
+ }
+ }
+
+ json_object_set_new(streamArchiveVersion, STARCH_METADATA_STREAM_ARCHIVE_VERSION_MAJOR_KEY, streamArchiveVersionMajor);
+ json_object_set_new(streamArchiveVersion, STARCH_METADATA_STREAM_ARCHIVE_VERSION_MINOR_KEY, streamArchiveVersionMinor);
+ json_object_set_new(streamArchiveVersion, STARCH_METADATA_STREAM_ARCHIVE_VERSION_REVISION_KEY, streamArchiveVersionRevision);
+ json_object_set_new(streamArchive, STARCH_METADATA_STREAM_ARCHIVE_VERSION_KEY, streamArchiveVersion);
+ json_object_set_new(streamArchive, STARCH_METADATA_STREAM_COMPRESSION_FORMAT_KEY, compressionFormat);
+ json_object_set_new(metadataJSON, STARCH_METADATA_STREAM_ARCHIVE_KEY, streamArchive);
+
+ for (iter = md; iter != NULL; iter = iter->next) {
+ stream = json_object();
+
+ recordFilenameCopy = STARCH_strndup(iter->filename, strlen(iter->filename) + 1);
+ recordToken = strtok(recordFilenameCopy, ".");
+ recordChromosome = STARCH_strndup(recordToken, strlen(recordToken) + 1);
+ streamChromosome = json_string(recordChromosome);
+ json_object_set_new(stream, STARCH_METADATA_STREAM_CHROMOSOME_KEY, streamChromosome);
+ free(recordFilenameCopy);
+ free(recordChromosome);
+
+ streamFilename = json_string(iter->filename);
+ json_object_set_new(stream, STARCH_METADATA_STREAM_FILENAME_KEY, streamFilename);
+
+ filenameSize = iter->size;
+#ifdef __cplusplus
+ recordSize = static_cast<char *>( malloc((CHAR_BIT * sizeof (filenameSize) + 2) / 3 + 1) );
+#else
+ recordSize = malloc((CHAR_BIT * sizeof (filenameSize) + 2) / 3 + 1);
+#endif
+ if (!recordSize)
+ filenameSize = 0LLU;
+ sprintf(recordSize, "%" PRIu64, filenameSize);
+ streamSize = json_string(recordSize); /* we use json_string() to avoid int overflow, as Jansson (JSON library) has no uint64_t type */
+ json_object_set_new(stream, STARCH_METADATA_STREAM_SIZE_KEY, streamSize);
+ free(recordSize);
+
+ /* 1.3+ archive */
+ if ((json_integer_value(streamArchiveVersionMajor) > 1) || ((json_integer_value(streamArchiveVersionMajor) == 1) && (json_integer_value(streamArchiveVersionMinor) >= 3))) {
+ filenameLineCount = iter->lineCount;
+#ifdef __cplusplus
+ streamLineCount = json_integer(static_cast<json_int_t>(filenameLineCount));
+#else
+ streamLineCount = json_integer((json_int_t)filenameLineCount);
+#endif
+ json_object_set_new(stream, STARCH_METADATA_STREAM_LINECOUNT_KEY, streamLineCount);
+ }
+
+ /* 1.4+ archive */
+ if ((json_integer_value(streamArchiveVersionMajor) > 1) || ((json_integer_value(streamArchiveVersionMajor) == 1) && (json_integer_value(streamArchiveVersionMinor) >= 4))) {
+ totalNonUniqueBases = iter->totalNonUniqueBases;
+#ifdef __cplusplus
+ streamTotalNonUniqueBases = json_integer(static_cast<json_int_t>(totalNonUniqueBases));
+#else
+ streamTotalNonUniqueBases = json_integer((json_int_t)totalNonUniqueBases);
+#endif
+ json_object_set_new(stream, STARCH_METADATA_STREAM_TOTALNONUNIQUEBASES_KEY, streamTotalNonUniqueBases);
+ totalUniqueBases = iter->totalUniqueBases;
+#ifdef __cplusplus
+ streamTotalUniqueBases = json_integer(static_cast<json_int_t>(totalUniqueBases));
+#else
+ streamTotalUniqueBases = json_integer((json_int_t)totalUniqueBases);
+#endif
+ json_object_set_new(stream, STARCH_METADATA_STREAM_TOTALUNIQUEBASES_KEY, streamTotalUniqueBases);
+ }
+
+ /* 2.1+ archive */
+ if ((json_integer_value(streamArchiveVersionMajor) > 2) || ((json_integer_value(streamArchiveVersionMajor) == 2) && (json_integer_value(streamArchiveVersionMinor) >= 1))) {
+#ifdef DEBUG
+#ifdef __cplusplus
+ fprintf(stderr, "\titer->duplicateElementExists: %d\n", static_cast<int>( iter->duplicateElementExists ));
+ fprintf(stderr, "\titer->nestedElementExists: %d\n", static_cast<int>( iter->nestedElementExists ));
+#else
+ fprintf(stderr, "\titer->duplicateElementExists: %d\n", (int) iter->duplicateElementExists);
+ fprintf(stderr, "\titer->nestedElementExists: %d\n", (int) iter->nestedElementExists);
+#endif
+#endif
+ streamDuplicateElementExistsFlag = json_boolean(iter->duplicateElementExists == kStarchTrue);
+ if (!streamDuplicateElementExistsFlag) {
+ fprintf(stderr, "ERROR: Could not instantiate stream duplicate-element-exists flag object\n");
+ return NULL;
+ }
+ json_object_set_new(stream, STARCH_METADATA_STREAM_DUPLICATEELEMENTEXISTS_KEY, streamDuplicateElementExistsFlag);
+
+ streamNestedElementExistsFlag = json_boolean(iter->nestedElementExists == kStarchTrue);
+ if (!streamNestedElementExistsFlag) {
+ fprintf(stderr, "ERROR: Could not instantiate stream duplicate-element-exists flag object\n");
+ return NULL;
+ }
+ json_object_set_new(stream, STARCH_METADATA_STREAM_NESTEDELEMENTEXISTS_KEY, streamNestedElementExistsFlag);
+ }
+
+ json_array_append_new(streams, stream);
+ }
+
+ json_object_set_new(metadataJSON, STARCH_METADATA_STREAM_LIST_KEY, streams);
+
+#ifdef __cplusplus
+ jsonString = static_cast<char *>( json_dumps(metadataJSON, JSON_INDENT(2)|JSON_PRESERVE_ORDER) );
+#else
+ jsonString = (char *) json_dumps(metadataJSON, JSON_INDENT(2)|JSON_PRESERVE_ORDER);
+#endif
+
+ /* cleanup */
+ json_decref(metadataJSON);
+
+ return jsonString;
+}
+
+int
+STARCH_listJSONMetadata(FILE *out, FILE *err, const Metadata *md, const CompressionType type, const ArchiveVersion *av, const char *cTime, const char *note, const Boolean headerFlag, const Boolean showNewlineFlag)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH_listJSONMetadata() ---\n");
+#endif
+ char *jsonString = NULL;
+
+ if (!out)
+ out = stdout;
+ if (!err)
+ err = stderr;
+
+ jsonString = STARCH_generateJSONMetadata(md, type, av, cTime, note, headerFlag);
+
+ if (!jsonString) {
+ fprintf(err, "ERROR: Could not list metadata (metadata structure is empty)\n");
+ return STARCH_EXIT_FAILURE;
+ }
+
+ if (showNewlineFlag == kStarchTrue)
+ fprintf(out, "%s\n", jsonString);
+ else
+ fprintf(out, "%s", jsonString);
+ free(jsonString);
+
+ return STARCH_EXIT_SUCCESS;
+}
+
+int
+STARCH_writeJSONMetadata(const Metadata *md, char **buf, CompressionType *type, const Boolean headerFlag, const char *note)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH_writeJSONMetadata() ---\n");
+#endif
+ char *jsonString = NULL;
+ size_t jsonLength;
+
+ /* archive version and creation timestamp are NULL, in order to write default values */
+ jsonString = STARCH_generateJSONMetadata(md, *type, NULL, NULL, note, headerFlag);
+
+ if (!jsonString) {
+ fprintf(stderr, "ERROR: Could not write JSON-formatted metadata to buffer (JSON string is empty)\n");
+ return STARCH_EXIT_FAILURE;
+ }
+
+ jsonLength = strlen(jsonString) + 1;
+
+ /* dynamic buffer */
+ if (! *buf)
+#ifdef __cplusplus
+ *buf = static_cast<char *>( malloc(jsonLength + 2) );
+#else
+ *buf = malloc(jsonLength + 2);
+#endif
+
+ if (*buf != NULL) {
+ memcpy(*buf, jsonString, jsonLength);
+ free(jsonString);
+ jsonString = NULL;
+ }
+ else {
+ fprintf(stderr, "ERROR: Could not allocate space for JSON-formatted metadata buffer\n");
+ return STARCH_EXIT_FAILURE;
+ }
+
+ if ((STARCH_MAJOR_VERSION == 1) && (STARCH_MINOR_VERSION == 0) && (STARCH_REVISION_VERSION == 0)) {
+ /* pad out the metadata in legacy version */
+ memset(*buf + jsonLength, '\n', STARCH_LEGACY_METADATA_SIZE - jsonLength - 1);
+ *(*buf + STARCH_LEGACY_METADATA_SIZE - 1) = '\0';
+ }
+ else {
+ *(*buf + jsonLength) = '\n';
+ *(*buf + jsonLength + 1) = '\0';
+ }
+
+ return STARCH_EXIT_SUCCESS;
+}
+
+int
+STARCH_readJSONMetadata(json_t **metadataJSON, FILE **fp, const char *fn, Metadata **rec, CompressionType *type, ArchiveVersion **version, char **cTime, char **note, uint64_t *mdOffset, Boolean *headerFlag, const Boolean suppressErrorMsgs, const Boolean preserveJSONRef)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH_readJSONMetadata() ---\n");
+#endif
+ int charCnt = 0;
+ char *dynamicBuffer = NULL;
+ char *dynamicBufferCopy = NULL;
+ char legacyBuffer[STARCH_LEGACY_METADATA_SIZE];
+ char testMagicBuffer[STARCH_TEST_BYTE_COUNT] = {0};
+ char footerBuffer[STARCH2_MD_FOOTER_LENGTH + 1] = {0};
+ char currC = '\0';
+ char prevC = '\0';
+ uint64_t testMagicOffset = 0;
+ uint64_t mdOffsetIndex = 0;
+ Metadata *firstRec = NULL;
+ json_t *streamArchive;
+ json_t *streamArchiveVersion = NULL;
+ json_t *streamArchiveCreationTimestamp = NULL;
+ json_t *streamArchiveNote = NULL;
+ json_t *streams = NULL;
+ json_t *stream = NULL;
+ json_t *streamChromosome = NULL;
+ json_t *streamFilename = NULL;
+ json_t *streamSize = NULL;
+ json_t *streamLineCount = NULL;
+ json_t *streamTotalNonUniqueBases = NULL;
+ json_t *streamTotalUniqueBases = NULL;
+ json_t *streamDuplicateElementExistsFlag = NULL;
+ json_t *streamNestedElementExistsFlag = NULL;
+ json_t *streamsCompressionType = NULL;
+ size_t streamIdx;
+ char *streamChr = NULL;
+ char *streamFn = NULL;
+ char *streamCTime = NULL;
+ char *streamNote = NULL;
+ uint64_t streamSizeValue = 0;
+ char *testMagicPrecursor = NULL;
+ json_error_t jsonParseError;
+ const char *jsonObjKey = NULL;
+ json_t *jsonObjValue = NULL;
+ const char *jsonObjAvKey = NULL;
+ json_t *jsonObjAvValue = NULL;
+ LineCountType streamLineCountValue = STARCH_DEFAULT_LINE_COUNT;
+ BaseCountType streamTotalNonUniqueBasesValue = STARCH_DEFAULT_NON_UNIQUE_BASE_COUNT;
+ BaseCountType streamTotalUniqueBasesValue = STARCH_DEFAULT_UNIQUE_BASE_COUNT;
+ Boolean streamDuplicateElementExistsValue = STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE;
+ Boolean streamNestedElementExistsValue = STARCH_DEFAULT_NESTED_ELEMENT_FLAG_VALUE;
+ json_t *mdJSON = NULL;
+ size_t mdHashIndex;
+ char offsetBuffer[STARCH2_MD_FOOTER_CUMULATIVE_RECORD_SIZE_LENGTH + 1] = {0};
+ unsigned char mdHashBuffer[STARCH2_MD_FOOTER_BASE64_ENCODED_SHA1_LENGTH] = {0};
+ char *testMdHashBuffer = NULL;
+ unsigned char testMdHashSha1Buffer[STARCH2_MD_FOOTER_SHA1_LENGTH];
+ off_t fSize;
+ off_t currentMdOffset;
+ size_t mdLength;
+ Boolean starchRevision2Flag = kStarchFalse;
+ unsigned char starchRevision2HeaderTestBytes[sizeof(starchRevision2HeaderBytes)] = {0};
+ size_t nReadBytes;
+
+ if (! *version) {
+#ifdef __cplusplus
+ *version = static_cast<ArchiveVersion *>( malloc (sizeof(ArchiveVersion)) );
+#else
+ *version = malloc (sizeof(ArchiveVersion));
+#endif
+ if (! *version) {
+ if (suppressErrorMsgs == kStarchFalse)
+ fprintf(stderr, "ERROR: Could not allocate memory for archive version data\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ }
+
+ if (! *fp)
+ *fp = STARCH_fopen(fn, "rbR");
+
+ if (! *fp) {
+ if (suppressErrorMsgs == kStarchFalse)
+ fprintf(stderr, "ERROR: Archive file %s could not be opened\n", fn);
+ return STARCH_EXIT_FAILURE;
+ }
+
+ /* read first four bytes to test if starch v2 file */
+#ifdef DEBUG
+ fprintf(stderr, "\treading first four bytes to test if starch v2 file...\n");
+#endif
+ nReadBytes = fread(starchRevision2HeaderTestBytes, sizeof(unsigned char), sizeof(starchRevision2HeaderBytes), *fp);
+ if (nReadBytes != (sizeof(unsigned char) * sizeof(starchRevision2HeaderBytes))) {
+ fprintf(stderr, "ERROR: Total amount of bytes read not equal to Starch magic byte header length!\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ if (memcmp(starchRevision2HeaderTestBytes, starchRevision2HeaderBytes, sizeof(starchRevision2HeaderBytes)) == 0)
+ starchRevision2Flag = kStarchTrue;
+#ifdef DEBUG
+ if (starchRevision2Flag == kStarchTrue)
+ fprintf(stderr, "\t\tstarchRevision2Flag == kStarchTrue\n");
+ else
+ fprintf(stderr, "\t\tstarchRevision2Flag == kStarchFalse\n");
+#endif
+
+ STARCH_fseeko(*fp, 0, SEEK_SET);
+
+ if ((STARCH_MAJOR_VERSION == 1) && (STARCH_MINOR_VERSION == 0) && (STARCH_REVISION_VERSION == 0)) {
+ do {
+#ifdef __cplusplus
+ currC = static_cast<char>( fgetc(*fp) );
+#else
+ currC = (char) fgetc(*fp);
+#endif
+ if ((prevC == currC) && (currC == '\n'))
+ break;
+ else {
+ legacyBuffer[charCnt++] = currC;
+ prevC = currC;
+ }
+ } while (currC != EOF);
+ legacyBuffer[charCnt - 1] = '\0';
+
+ /* turn buffer into JSON entity */
+ *metadataJSON = json_loads(legacyBuffer, JSON_DISABLE_EOF_CHECK, &jsonParseError);
+ if (!*metadataJSON) {
+ if (suppressErrorMsgs == kStarchFalse)
+ fprintf(stderr, "ERROR: Could not turn buffer into (legacy) JSON entity\n");
+ return STARCH_EXIT_FAILURE;
+ }
+
+ /* set metadata offset */
+ *mdOffset = STARCH_LEGACY_METADATA_SIZE;
+ }
+
+ else if ((starchRevision2Flag == kStarchFalse) || ((STARCH_MAJOR_VERSION == 1) && (STARCH_MINOR_VERSION > 0) && (STARCH_REVISION_VERSION == 0))) {
+ /* Set aside pre-magic-byte terminator check for extra insurance */
+#ifdef __cplusplus
+ testMagicPrecursor = static_cast<char *>( malloc (static_cast<size_t>( mdTerminatorBytesLength )) );
+#else
+ testMagicPrecursor = malloc ((size_t) mdTerminatorBytesLength);
+#endif
+ if (!testMagicPrecursor) {
+ if (suppressErrorMsgs == kStarchFalse)
+ fprintf(stderr, "ERROR: Could not allocate space for test magic byte precursor\n");
+ return STARCH_EXIT_FAILURE;
+ }
+
+ /* look through the archive for bzip2 and gzip magic numbers */
+ do {
+ if ((memcmp(testMagicBuffer, bzip2MagicBytes, sizeof(bzip2MagicBytes) - 1) == 0) || (memcmp(testMagicBuffer, gzipMagicBytes, sizeof(gzipMagicBytes) - 1) == 0)) {
+
+ /* if the byte prior to the magic bytes is a metadata terminator byte, there is */
+ /* greater certainty that these bytes split the metadata and compressed streams */
+ /* this helps avoid issues where the metadata, for some reason, contains the */
+ /* same magic bytes, e.g. an unfortunate choice of chromosome name, or we add */
+ /* some metadata key down the road, and the user adds a value that contains our */
+ /* special, magic bytes */
+
+#ifdef __cplusplus
+ STARCH_fseeko(*fp, static_cast<off_t>(testMagicOffset - mdTerminatorBytesLength), SEEK_SET);
+#else
+ STARCH_fseeko(*fp, (off_t)(testMagicOffset - mdTerminatorBytesLength), SEEK_SET);
+#endif
+ nReadBytes = fread(testMagicPrecursor, mdTerminatorBytesLength, mdTerminatorBytesLength, *fp);
+ if (nReadBytes != (mdTerminatorBytesLength * mdTerminatorBytesLength)) {
+ fprintf(stderr, "ERROR: Total amount of bytes read not equal to terminator bytes!\n");
+ return STARCH_EXIT_FAILURE;
+ }
+
+ /* if we have a match, then we break at the 'real' offset; otherwise, the file */
+ /* pointer is back to where it started, so we can keep on walking */
+
+ if ( (memcmp(testMagicPrecursor, dynamicMdTerminatorBytes, sizeof(dynamicMdTerminatorBytes)) == 0) ||
+ (memcmp(testMagicPrecursor, legacyMdTerminatorBytes, sizeof(legacyMdTerminatorBytes)) == 0) ||
+ (memcmp(testMagicPrecursor, otherLegacyMdTerminatorBytes, sizeof(otherLegacyMdTerminatorBytes)) == 0) )
+ break;
+ }
+ testMagicOffset += testElemSize * testElemCount;
+#ifdef __cplusplus
+ STARCH_fseeko(*fp, static_cast<off_t>(testMagicOffset - STARCH_TEST_BYTE_POSITION_RESET), SEEK_SET);
+#else
+ STARCH_fseeko(*fp, (off_t)(testMagicOffset - STARCH_TEST_BYTE_POSITION_RESET), SEEK_SET);
+#endif
+ testMagicOffset -= STARCH_TEST_BYTE_POSITION_RESET;
+ } while (fread(testMagicBuffer, testElemSize, testElemCount, *fp));
+
+ /* release pre-magic-byte terminator check */
+ free(testMagicPrecursor);
+ testMagicPrecursor = NULL;
+
+ /* set metadata offset */
+ *mdOffset = testMagicOffset;
+
+ /* rewind file pointer to start of file */
+#ifdef __cplusplus
+ STARCH_fseeko(*fp, static_cast<off_t>(0), SEEK_SET);
+#else
+ STARCH_fseeko(*fp, (off_t)0, SEEK_SET);
+#endif
+
+ /* read metadata into malloc'ed buffer */
+#ifdef __cplusplus
+ dynamicBuffer = static_cast<char *>( malloc(static_cast<size_t>( testMagicOffset ) + 1) );
+#else
+ dynamicBuffer = malloc((size_t) testMagicOffset + 1);
+#endif
+ if (!dynamicBuffer) {
+ if (suppressErrorMsgs == kStarchFalse)
+ fprintf(stderr, "ERROR: Could not allocate space for dynamic buffer.\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ do {
+#ifdef __cplusplus
+ *(dynamicBuffer + mdOffsetIndex) = static_cast<char>( fgetc(*fp) );
+#else
+ *(dynamicBuffer + mdOffsetIndex) = (char) fgetc(*fp);
+#endif
+ mdOffsetIndex++;
+ } while (mdOffsetIndex < testMagicOffset);
+ *(dynamicBuffer + mdOffsetIndex) = '\0';
+
+ /* turn buffer into JSON entity, or retrieve legacy data */
+#ifdef __cplusplus
+ *metadataJSON = json_loads(reinterpret_cast<const char *>( dynamicBuffer ), JSON_DISABLE_EOF_CHECK, &jsonParseError);
+#else
+ *metadataJSON = json_loads((const char *)dynamicBuffer, JSON_DISABLE_EOF_CHECK, &jsonParseError);
+#endif
+ if (!*metadataJSON) {
+#ifdef __cplusplus
+ if (STARCH_readLegacyMetadata(reinterpret_cast<const char *>( dynamicBuffer ), &*rec, &*type, &*version, &*mdOffset, &*headerFlag, suppressErrorMsgs) != STARCH_EXIT_SUCCESS) {
+#else
+ if (STARCH_readLegacyMetadata((const char *)dynamicBuffer, &*rec, &*type, &*version, &*mdOffset, &*headerFlag, suppressErrorMsgs) != STARCH_EXIT_SUCCESS) {
+#endif
+ if (suppressErrorMsgs == kStarchFalse)
+ fprintf(stderr, "ERROR: Could not turn dynamic buffer into JSON entity (%s)\n", jsonParseError.text);
+ return STARCH_EXIT_FAILURE;
+ }
+ return STARCH_EXIT_SUCCESS;
+ }
+
+ /* release buffer */
+ if (dynamicBuffer)
+ free(dynamicBuffer);
+ }
+ else if ((STARCH_MAJOR_VERSION == 2) && (STARCH_MINOR_VERSION >= 0) && (STARCH_REVISION_VERSION >= 0)) {
+#ifdef DEBUG
+ fprintf(stderr, "\treading footer bytes...\n");
+#endif
+ /* read STARCH_FOOTER_BYTE_LENGTH bytes from end of file to get md offset */
+ /* seek to md offset, read in x - STARCH_FOOTER_BYTE_LENGTH bytes and import JSON */
+#ifdef __cplusplus
+ STARCH_fseeko(*fp, static_cast<off_t>( -STARCH2_MD_FOOTER_LENGTH + 1 ), SEEK_END);
+#else
+ STARCH_fseeko(*fp, (off_t) -STARCH2_MD_FOOTER_LENGTH + 1, SEEK_END);
+#endif
+ /* the STARCH_fseeko call takes away a byte, if it works correctly, which we account for here */
+ nReadBytes = fread(footerBuffer, 1, STARCH2_MD_FOOTER_LENGTH - 1, *fp);
+ if (nReadBytes != (STARCH2_MD_FOOTER_LENGTH - 1)) {
+#ifdef __cplusplus
+ fprintf(stderr, "ERROR: Total amount of bytes read (%" PRIu64 ") not equal to Starch v2 footer length!\n", static_cast<uint64_t>( nReadBytes ));
+#else
+ fprintf(stderr, "ERROR: Total amount of bytes read (%" PRIu64 ") not equal to Starch v2 footer length!\n", (uint64_t) nReadBytes);
+#endif
+ return STARCH_EXIT_FAILURE;
+ }
+#ifdef DEBUG
+ fprintf(stderr, "\tfooterBuffer: %s\n", footerBuffer);
+#endif
+ for (mdOffsetIndex = 0; mdOffsetIndex < STARCH2_MD_FOOTER_CUMULATIVE_RECORD_SIZE_LENGTH; mdOffsetIndex++) {
+ offsetBuffer[mdOffsetIndex] = footerBuffer[mdOffsetIndex];
+ }
+ offsetBuffer[mdOffsetIndex] = '\0';
+#ifdef __cplusplus
+ currentMdOffset = static_cast<off_t>( strtoull(reinterpret_cast<const char *>( offsetBuffer ), NULL, STARCH_RADIX) );
+ *mdOffset = static_cast<uint64_t>( currentMdOffset );
+#else
+ currentMdOffset = (off_t) strtoull((const char *)offsetBuffer, NULL, STARCH_RADIX);
+ *mdOffset = (uint64_t) currentMdOffset;
+#endif
+
+#ifdef DEBUG
+ fprintf(stderr, "\toffsetBuffer: %s\n", offsetBuffer);
+#ifdef __cplusplus
+ fprintf(stderr, "\tcurrentMdOffset: %" PRIu64 "\n", static_cast<uint64_t>( currentMdOffset ));
+#else
+ fprintf(stderr, "\tcurrentMdOffset: %" PRIu64 "\n", (uint64_t) currentMdOffset);
+#endif
+#endif
+ for (mdHashIndex = 0; mdHashIndex < STARCH2_MD_FOOTER_BASE64_ENCODED_SHA1_LENGTH - 1; mdHashIndex++) {
+#ifdef __cplusplus
+ mdHashBuffer[mdHashIndex] = static_cast<unsigned char>( footerBuffer[(mdHashIndex + STARCH2_MD_FOOTER_CUMULATIVE_RECORD_SIZE_LENGTH)] );
+#else
+ mdHashBuffer[mdHashIndex] = (unsigned char) footerBuffer[(mdHashIndex + STARCH2_MD_FOOTER_CUMULATIVE_RECORD_SIZE_LENGTH)];
+#endif
+ }
+
+#ifdef __cplusplus
+ STARCH_fseeko(*fp, static_cast<off_t>(0), SEEK_END);
+#else
+ STARCH_fseeko(*fp, (off_t) 0, SEEK_END);
+#endif
+
+ fSize = ftell(*fp);
+#ifdef DEBUG
+ fprintf(stderr, "\tfSize: %" PRId64 "\n", fSize);
+ fprintf(stderr, "\tmdHashBuffer: %s\n", mdHashBuffer);
+#endif
+ if (fSize <= (currentMdOffset - STARCH2_MD_FOOTER_LENGTH + 1)) {
+#ifdef __cplusplus
+ fprintf(stderr, "ERROR: File size (%" PRIu64 ") is smaller than metadata offset value (%" PRIu64 "). Is the archive possibly corrupt?\n", static_cast<uint64_t>( fSize ), static_cast<uint64_t>( currentMdOffset ));
+#else
+ fprintf(stderr, "ERROR: File size (%" PRIu64 ") is smaller than metadata offset value (%" PRIu64 "). Is the archive possibly corrupt?\n", (uint64_t) fSize, (uint64_t) currentMdOffset);
+#endif
+ return STARCH_EXIT_FAILURE;
+ }
+#ifdef __cplusplus
+ mdLength = static_cast<size_t>(fSize - currentMdOffset - STARCH2_MD_FOOTER_LENGTH + 1);
+#else
+ mdLength = (size_t)(fSize - currentMdOffset - STARCH2_MD_FOOTER_LENGTH + 1);
+#endif
+
+#ifdef DEBUG
+ fprintf(stderr, "\tmdLength: %zu\n", mdLength);
+#endif
+
+#ifdef __cplusplus
+ dynamicBuffer = static_cast<char *>( malloc(mdLength + 1) );
+#else
+ dynamicBuffer = malloc(mdLength + 1);
+#endif
+ if (!dynamicBuffer) {
+ fprintf(stderr, "ERROR: Could not allocate space for dynamic buffer (v2).\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ /* we must cast (size_t) mdLength to a signed int so that we avoid possibility of subtle overflow error that creates a non-usable offset value */
+#ifdef __cplusplus
+ STARCH_fseeko(*fp, static_cast<off_t>(-(static_cast<int64_t>(mdLength) + STARCH2_MD_FOOTER_LENGTH) + 1), SEEK_END);
+#else
+ STARCH_fseeko(*fp, (off_t)(-((int64_t) mdLength + STARCH2_MD_FOOTER_LENGTH) + 1), SEEK_END);
+#endif
+ nReadBytes = fread(dynamicBuffer, 1, mdLength, *fp);
+ if (nReadBytes != mdLength) {
+ fprintf(stderr, "ERROR: Total amount of bytes read not equal to Starch v2 metadata length!\n");
+ fprintf(stderr, " Observed file read, in bytes: %zu | Expected metadata length, in bytes: %zu\n", nReadBytes, mdLength);
+ return STARCH_EXIT_FAILURE;
+ }
+ *(dynamicBuffer + mdLength) = '\0';
+#ifdef DEBUG
+ fprintf(stderr, "\tdynamicBuffer:\n%s\n", dynamicBuffer);
+#endif
+
+ /* validate metadata string against hash */
+ dynamicBufferCopy = STARCH_strdup(dynamicBuffer);
+#ifdef __cplusplus
+ STARCH_SHA1_All(reinterpret_cast<const unsigned char *>(dynamicBufferCopy), strlen(dynamicBufferCopy), testMdHashSha1Buffer);
+#else
+ STARCH_SHA1_All((const unsigned char *)dynamicBufferCopy, strlen(dynamicBufferCopy), testMdHashSha1Buffer);
+#endif
+ free(dynamicBufferCopy);
+
+#ifdef __cplusplus
+ STARCH_encodeBase64(&testMdHashBuffer, static_cast<size_t>(STARCH2_MD_FOOTER_BASE64_ENCODED_SHA1_LENGTH), reinterpret_cast<const unsigned char *>(testMdHashSha1Buffer), static_cast<size_t>(STARCH2_MD_FOOTER_SHA1_LENGTH));
+#else
+ STARCH_encodeBase64(&testMdHashBuffer, (const size_t) STARCH2_MD_FOOTER_BASE64_ENCODED_SHA1_LENGTH, (const unsigned char *) testMdHashSha1Buffer, (const size_t) STARCH2_MD_FOOTER_SHA1_LENGTH);
+#endif
+
+#ifdef DEBUG
+ fprintf(stderr, "\tmdHashBuffer: [%s]\n", mdHashBuffer);
+ fprintf(stderr, "\ttestMdHashBuffer: [%s]\n", testMdHashBuffer);
+ fprintf(stderr, "\tdynamicBuffer: [%s]\n", dynamicBuffer);
+#endif
+
+ if (memcmp(mdHashBuffer, testMdHashBuffer, STARCH2_MD_FOOTER_BASE64_ENCODED_SHA1_LENGTH) != 0) {
+ fprintf(stderr, "ERROR: Could not validate SHA1 hash of metadata record. Is the archive possibly corrupt?\n");
+ return STARCH_EXIT_FAILURE;
+ }
+
+ /* turn metadata string into JSON entity, or quit */
+#ifdef __cplusplus
+ *metadataJSON = json_loads(reinterpret_cast<const char *>(dynamicBuffer), JSON_DISABLE_EOF_CHECK, &jsonParseError);
+#else
+ *metadataJSON = json_loads((const char *)dynamicBuffer, JSON_DISABLE_EOF_CHECK, &jsonParseError);
+#endif
+ if (!*metadataJSON) {
+ fprintf(stderr, "ERROR: Could not turn dynamic buffer into JSON entity\n");
+ return STARCH_EXIT_FAILURE;
+ }
+
+ /* release buffer */
+ if (dynamicBuffer)
+ free(dynamicBuffer);
+ if (testMdHashBuffer)
+ free(testMdHashBuffer);
+ }
+
+ mdJSON = *metadataJSON;
+
+ /* parse JSON entity for 'archive' key */
+ streamArchive = json_object_get(mdJSON, STARCH_METADATA_STREAM_ARCHIVE_KEY);
+ if (streamArchive) {
+ json_object_foreach(streamArchive, jsonObjKey, jsonObjValue)
+ {
+ /* compression format */
+ if ( strcmp(jsonObjKey, STARCH_METADATA_STREAM_COMPRESSION_FORMAT_KEY) == 0 ) {
+#ifdef __cplusplus
+ *type = static_cast<CompressionType>( json_integer_value(jsonObjValue) );
+#else
+ *type = (CompressionType) json_integer_value(jsonObjValue);
+#endif
+ }
+
+ /* header flag */
+ else if ( strcmp(jsonObjKey, STARCH_METADATA_STREAM_HEADER_BED_TYPE_KEY) == 0 ) {
+ switch (json_typeof(jsonObjValue)) {
+ case (JSON_TRUE): {
+ *headerFlag = kStarchTrue;
+ break;
+ }
+ case (JSON_FALSE): {
+ *headerFlag = kStarchFalse;
+ break;
+ }
+ case (JSON_OBJECT): {
+ if (suppressErrorMsgs == kStarchFalse)
+ fprintf(stderr, "ERROR: Could not extract header flag value (JSON_OBJECT)\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case (JSON_ARRAY): {
+ if (suppressErrorMsgs == kStarchFalse)
+ fprintf(stderr, "ERROR: Could not extract header flag value (JSON_ARRAY)\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case (JSON_STRING): {
+ if (suppressErrorMsgs == kStarchFalse)
+ fprintf(stderr, "ERROR: Could not extract header flag value (JSON_STRING)\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case (JSON_INTEGER): {
+ if (suppressErrorMsgs == kStarchFalse)
+ fprintf(stderr, "ERROR: Could not extract header flag value (JSON_INTEGER)\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case (JSON_REAL): {
+ if (suppressErrorMsgs == kStarchFalse)
+ fprintf(stderr, "ERROR: Could not extract header flag value (JSON_REAL)\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ case (JSON_NULL): {
+ if (suppressErrorMsgs == kStarchFalse)
+ fprintf(stderr, "ERROR: Could not extract header flag value (JSON_NULL)\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ }
+ }
+
+ /* creation timestamp */
+ else if ( strcmp(jsonObjKey, STARCH_METADATA_STREAM_ARCHIVE_CREATION_TIMESTAMP_KEY) == 0 ) {
+ streamArchiveCreationTimestamp = json_object_get(streamArchive, STARCH_METADATA_STREAM_ARCHIVE_CREATION_TIMESTAMP_KEY);
+#ifdef __cplusplus
+ streamCTime = const_cast<char *>( json_string_value(streamArchiveCreationTimestamp) );
+ *cTime = static_cast<char *>( malloc(strlen(streamCTime) + 1) );
+#else
+ streamCTime = (char *) json_string_value(streamArchiveCreationTimestamp);
+ *cTime = malloc(strlen(streamCTime) + 1);
+#endif
+ if (! *cTime) {
+ fprintf(stderr, "ERROR: Could not allocate space for creation timestamp\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ strncpy(*cTime, streamCTime, strlen(streamCTime) + 1);
+ }
+
+ /* note */
+ else if ( strcmp(jsonObjKey, STARCH_METADATA_STREAM_ARCHIVE_NOTE_KEY) == 0 ) {
+ streamArchiveNote = json_object_get(streamArchive, STARCH_METADATA_STREAM_ARCHIVE_NOTE_KEY);
+#ifdef __cplusplus
+ streamNote = const_cast<char *>( json_string_value(streamArchiveNote) );
+ *note = static_cast<char *>( malloc(strlen(streamNote) + 1) );
+#else
+ streamNote = (char *) json_string_value(streamArchiveNote);
+ *note = malloc(strlen(streamNote) + 1);
+#endif
+ if (! *note) {
+ fprintf(stderr, "ERROR: Could not allocate space for note\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ strncpy(*note, streamNote, strlen(streamNote) + 1);
+ }
+
+ /* archive version */
+ else if ( strcmp(jsonObjKey, STARCH_METADATA_STREAM_ARCHIVE_VERSION_KEY) == 0 ) {
+ streamArchiveVersion = json_object_get(streamArchive, STARCH_METADATA_STREAM_ARCHIVE_VERSION_KEY);
+ json_object_foreach(streamArchiveVersion, jsonObjAvKey, jsonObjAvValue)
+ {
+#ifdef __cplusplus
+ if ( strcmp(jsonObjAvKey, STARCH_METADATA_STREAM_ARCHIVE_VERSION_MAJOR_KEY) == 0)
+ (*version)->major = static_cast<int>( json_integer_value(jsonObjAvValue) );
+ else if ( strcmp(jsonObjAvKey, STARCH_METADATA_STREAM_ARCHIVE_VERSION_MINOR_KEY) == 0)
+ (*version)->minor = static_cast<int>( json_integer_value(jsonObjAvValue) );
+ else if ( strcmp(jsonObjAvKey, STARCH_METADATA_STREAM_ARCHIVE_VERSION_REVISION_KEY) == 0)
+ (*version)->revision = static_cast<int>( json_integer_value(jsonObjAvValue) );
+#else
+ if ( strcmp(jsonObjAvKey, STARCH_METADATA_STREAM_ARCHIVE_VERSION_MAJOR_KEY) == 0)
+ (*version)->major = (int) json_integer_value(jsonObjAvValue);
+ else if ( strcmp(jsonObjAvKey, STARCH_METADATA_STREAM_ARCHIVE_VERSION_MINOR_KEY) == 0)
+ (*version)->minor = (int) json_integer_value(jsonObjAvValue);
+ else if ( strcmp(jsonObjAvKey, STARCH_METADATA_STREAM_ARCHIVE_VERSION_REVISION_KEY) == 0)
+ (*version)->revision = (int) json_integer_value(jsonObjAvValue);
+#endif
+ }
+ }
+ }
+ }
+ else {
+ /*
+ Metadata is missing 'archive' object key, which means we have a very old
+ starch archive. Hopefully, we won't run into too many of these files, but
+ in case we do, we set some reasonable defaults.
+ */
+
+ streamsCompressionType = json_object_get(mdJSON, STARCH_METADATA_STREAM_COMPRESSION_FORMAT_KEY);
+#ifdef __cplusplus
+ *type = static_cast<CompressionType>( json_integer_value(streamsCompressionType) );
+#else
+ *type = (CompressionType) json_integer_value(streamsCompressionType);
+#endif
+ *headerFlag = kStarchFalse;
+ (*version)->major = 1;
+ (*version)->minor = 0;
+ (*version)->revision = 0;
+#ifdef __cplusplus
+ *cTime = static_cast<char *>( malloc(1) );
+#else
+ *cTime = malloc(1);
+#endif
+ (*cTime)[0] = 0;
+ }
+
+ /* parse JSON entity into streams */
+ if ( ( (*version)->major < STARCH_MAJOR_VERSION ) ||
+ ( ((*version)->major == STARCH_MAJOR_VERSION ) && ((*version)->minor <= STARCH_MINOR_VERSION) && ((*version)->revision <= STARCH_REVISION_VERSION)) ) {
+
+ streams = json_object_get(mdJSON, STARCH_METADATA_STREAM_LIST_KEY);
+ if (!streams) {
+ if (suppressErrorMsgs == kStarchFalse)
+ fprintf(stderr, "ERROR: Could not extract streams from JSON entity.\n");
+ return STARCH_FATAL_ERROR;
+ }
+#ifdef __cplusplus
+ streamChr = static_cast<char *>( malloc( STARCH_STREAM_METADATA_MAX_LENGTH + 1 ) );
+#else
+ streamChr = malloc( STARCH_STREAM_METADATA_MAX_LENGTH + 1 );
+#endif
+ if (!streamChr) {
+ if (suppressErrorMsgs == kStarchFalse)
+ fprintf(stderr, "ERROR: Could not instantiate memory for stream chromosome string.\n");
+ return STARCH_FATAL_ERROR;
+ }
+
+#ifdef __cplusplus
+ streamFn = static_cast<char *>( malloc( STARCH_STREAM_METADATA_MAX_LENGTH + 1 ) );
+#else
+ streamFn = malloc( STARCH_STREAM_METADATA_MAX_LENGTH + 1 );
+#endif
+ if (!streamFn) {
+ if (suppressErrorMsgs == kStarchFalse)
+ fprintf(stderr, "ERROR: Could not instantiate memory for stream filename string.\n");
+ return STARCH_FATAL_ERROR;
+ }
+
+ for (streamIdx = 0; streamIdx < json_array_size(streams); streamIdx++) {
+ stream = json_array_get(streams, streamIdx);
+ if (!stream) {
+ if (suppressErrorMsgs == kStarchFalse)
+ fprintf(stderr, "ERROR: Could not retrieve stream object\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ streamChromosome = json_object_get(stream, STARCH_METADATA_STREAM_CHROMOSOME_KEY);
+ if (!streamChromosome) {
+ if (suppressErrorMsgs == kStarchFalse)
+ fprintf(stderr, "ERROR: Could not retrieve stream chromosome object\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ streamFilename = json_object_get(stream, STARCH_METADATA_STREAM_FILENAME_KEY);
+ if (!streamFilename) {
+ if (suppressErrorMsgs == kStarchFalse)
+ fprintf(stderr, "ERROR: Could not retrieve stream filename object\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ streamSize = json_object_get(stream, STARCH_METADATA_STREAM_SIZE_KEY);
+ if (!streamSize) {
+ if (suppressErrorMsgs == kStarchFalse)
+ fprintf(stderr, "ERROR: Could not retrieve stream size object\n");
+ return STARCH_EXIT_FAILURE;
+ }
+#ifdef __cplusplus
+ streamSizeValue = static_cast<uint64_t>( strtoull(json_string_value(streamSize), NULL, STARCH_RADIX) );
+#else
+ streamSizeValue = (uint64_t) strtoull(json_string_value(streamSize), NULL, STARCH_RADIX);
+#endif
+
+ streamLineCount = json_object_get(stream, STARCH_METADATA_STREAM_LINECOUNT_KEY);
+ if (!streamLineCount) {
+ if (((*version)->major >= 1) && ((*version)->minor >= 3)) {
+ if (suppressErrorMsgs == kStarchFalse)
+ fprintf(stderr, "ERROR: Could not retrieve stream line count object with compliant version\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ else {
+ streamLineCount = json_integer(STARCH_DEFAULT_LINE_COUNT);
+#ifdef __cplusplus
+ streamLineCountValue = static_cast<LineCountType>( json_integer_value(streamLineCount) );
+#else
+ streamLineCountValue = (LineCountType) json_integer_value(streamLineCount);
+#endif
+ json_decref(streamLineCount);
+ }
+ }
+ else {
+#ifdef __cplusplus
+ streamLineCountValue = static_cast<unsigned long>( json_integer_value(streamLineCount) );
+#else
+ streamLineCountValue = (unsigned long) json_integer_value(streamLineCount);
+#endif
+ }
+
+ streamTotalNonUniqueBases = json_object_get(stream, STARCH_METADATA_STREAM_TOTALNONUNIQUEBASES_KEY);
+ if (!streamTotalNonUniqueBases) {
+ if (((*version)->major >= 1) && ((*version)->minor >= 4)) {
+ if (suppressErrorMsgs == kStarchFalse)
+ fprintf(stderr, "ERROR: Could not retrieve stream non-unique base count object with compliant version\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ else {
+ streamTotalNonUniqueBases = json_integer(STARCH_DEFAULT_NON_UNIQUE_BASE_COUNT);
+#ifdef __cplusplus
+ streamTotalNonUniqueBasesValue = static_cast<BaseCountType>( json_integer_value(streamTotalNonUniqueBases) );
+#else
+ streamTotalNonUniqueBasesValue = (BaseCountType) json_integer_value(streamTotalNonUniqueBases);
+#endif
+ json_decref(streamTotalNonUniqueBases);
+ }
+ }
+ else {
+#ifdef __cplusplus
+ streamTotalNonUniqueBasesValue = static_cast<unsigned long>( json_integer_value(streamTotalNonUniqueBases) );
+#else
+ streamTotalNonUniqueBasesValue = (unsigned long) json_integer_value(streamTotalNonUniqueBases);
+#endif
+ }
+
+ streamTotalUniqueBases = json_object_get(stream, STARCH_METADATA_STREAM_TOTALUNIQUEBASES_KEY);
+ if (!streamTotalUniqueBases) {
+ if (((*version)->major >= 1) && ((*version)->minor >= 4)) {
+ if (suppressErrorMsgs == kStarchFalse)
+ fprintf(stderr, "ERROR: Could not retrieve stream unique base count object with compliant version\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ else {
+ streamTotalUniqueBases = json_integer(STARCH_DEFAULT_UNIQUE_BASE_COUNT);
+#ifdef __cplusplus
+ streamTotalUniqueBasesValue = static_cast<BaseCountType>( json_integer_value(streamTotalUniqueBases) );
+#else
+ streamTotalUniqueBasesValue = (BaseCountType) json_integer_value(streamTotalUniqueBases);
+#endif
+ json_decref(streamTotalUniqueBases);
+ }
+ }
+ else {
+#ifdef __cplusplus
+ streamTotalUniqueBasesValue = static_cast<BaseCountType>( json_integer_value(streamTotalUniqueBases) );
+#else
+ streamTotalUniqueBasesValue = (BaseCountType) json_integer_value(streamTotalUniqueBases);
+#endif
+ }
+
+ streamDuplicateElementExistsFlag = json_object_get(stream, STARCH_METADATA_STREAM_DUPLICATEELEMENTEXISTS_KEY);
+ if (!streamDuplicateElementExistsFlag) {
+ if (((*version)->major > 2) || (((*version)->major == 2) && ((*version)->minor >= 1))) {
+ if (suppressErrorMsgs == kStarchFalse)
+ fprintf(stderr, "ERROR: Could not retrieve stream duplicate-element-exists flag object with compliant version (%d.%d.%d)\n", (*version)->major, (*version)->minor, (*version)->revision);
+ return STARCH_EXIT_FAILURE;
+ }
+ else {
+ streamDuplicateElementExistsFlag = json_boolean(STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE);
+#ifdef __cplusplus
+ streamDuplicateElementExistsValue = static_cast<Boolean>( json_is_true(streamDuplicateElementExistsFlag) );
+#else
+ streamDuplicateElementExistsValue = (Boolean) json_is_true(streamDuplicateElementExistsFlag);
+#endif
+ json_decref(streamDuplicateElementExistsFlag);
+ }
+ }
+ else {
+#ifdef __cplusplus
+ streamDuplicateElementExistsValue = static_cast<Boolean>( json_is_true(streamDuplicateElementExistsFlag) );
+#else
+ streamDuplicateElementExistsValue = (Boolean) json_is_true(streamDuplicateElementExistsFlag);
+#endif
+ }
+
+ streamNestedElementExistsFlag = json_object_get(stream, STARCH_METADATA_STREAM_NESTEDELEMENTEXISTS_KEY);
+ if (!streamNestedElementExistsFlag) {
+ if (((*version)->major > 2) || (((*version)->major == 2) && ((*version)->minor >= 1))) {
+ if (suppressErrorMsgs == kStarchFalse)
+ fprintf(stderr, "ERROR: Could not retrieve stream duplicate-element-exists flag object with compliant version\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ else {
+ streamNestedElementExistsFlag = json_boolean(STARCH_DEFAULT_NESTED_ELEMENT_FLAG_VALUE);
+#ifdef __cplusplus
+ streamNestedElementExistsValue = static_cast<Boolean>( json_is_true(streamNestedElementExistsFlag) );
+#else
+ streamNestedElementExistsValue = (Boolean) json_is_true(streamNestedElementExistsFlag);
+#endif
+ json_decref(streamNestedElementExistsFlag);
+ }
+ }
+ else {
+#ifdef __cplusplus
+ streamNestedElementExistsValue = static_cast<Boolean>( json_is_true(streamNestedElementExistsFlag) );
+#else
+ streamNestedElementExistsValue = (Boolean) json_is_true(streamNestedElementExistsFlag);
+#endif
+ }
+
+ strncpy(streamChr, json_string_value(streamChromosome), strlen(json_string_value(streamChromosome)) + 1);
+ strncpy(streamFn, json_string_value(streamFilename), strlen(json_string_value(streamFilename)) + 1);
+
+ if (streamIdx == 0) {
+ *rec = STARCH_createMetadata(streamChr, streamFn, streamSizeValue, streamLineCountValue, streamTotalNonUniqueBasesValue, streamTotalUniqueBasesValue, streamDuplicateElementExistsValue, streamNestedElementExistsValue);
+ firstRec = *rec;
+ }
+ else
+ *rec = STARCH_addMetadata(*rec, streamChr, streamFn, streamSizeValue, streamLineCountValue, streamTotalNonUniqueBasesValue, streamTotalUniqueBasesValue, streamDuplicateElementExistsValue, streamNestedElementExistsValue);
+ }
+
+ /* reset Metadata record pointer to first record */
+ if (!firstRec) {
+ if (suppressErrorMsgs == kStarchFalse)
+ fprintf(stderr, "ERROR: Could not set initial metadata record pointer\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ *rec = firstRec;
+
+ /* cleanup */
+ if (streamChr)
+ free(streamChr);
+ if (streamFn)
+ free(streamFn);
+ if ((mdJSON != NULL) && (preserveJSONRef == kStarchFalse)) {
+ json_decref(mdJSON);
+ mdJSON = NULL;
+ }
+ }
+ else {
+ /* version error */
+ if (suppressErrorMsgs == kStarchFalse)
+ fprintf(stderr, "ERROR: Cannot process newer archive (v%d.%d.%d) with older version of tools (v%d.%d.%d). Please update your toolkit.\n", (*version)->major, (*version)->minor, (*version)->revision, STARCH_MAJOR_VERSION, STARCH_MINOR_VERSION, STARCH_REVISION_VERSION);
+ return STARCH_EXIT_FAILURE;
+ }
+
+ return STARCH_EXIT_SUCCESS;
+}
+
+int
+STARCH_mergeMetadataWithCompressedFiles(const Metadata *md, char *mdHeader)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH_mergeMetadataWithCompressedFiles() ---\n");
+#endif
+ const Metadata *iter = NULL;
+ FILE *outPtr = NULL;
+ FILE *chrFnPtr = NULL;
+ int c;
+
+ if ((outPtr = freopen(NULL, "wb", stdout)) != NULL) {
+ fwrite(mdHeader, strlen(mdHeader), 1, outPtr);
+ for (iter = md; iter != NULL; iter = iter->next) {
+ chrFnPtr = fopen(iter->filename, "rb");
+ if (!chrFnPtr) {
+ fprintf(stderr, "ERROR: Could not open per-chromosome data file %s\n", iter->filename);
+ return STARCH_EXIT_FAILURE;
+ }
+ while ((c = fgetc(chrFnPtr)) != EOF) {
+ if (fputc(c, outPtr) == EOF) {
+ fprintf(stderr, "ERROR: Could not write to standard output stream\n");
+ }
+ }
+ fclose(chrFnPtr);
+ }
+ fclose(outPtr);
+ }
+ else {
+ fprintf(stderr, "ERROR: Could not open standard output stream\n");
+ return STARCH_EXIT_FAILURE;
+ }
+
+ return STARCH_EXIT_SUCCESS;
+}
+
+void
+STARCH_buildProcessIDTag(char **tag)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH_buildProcessIDTag() ---\n");
+#endif
+ pid_t pid;
+ struct utsname uts;
+ char _tag[STARCH_TAG_MAX_LENGTH];
+
+ pid = getpid();
+ uname( &uts );
+ sprintf(_tag, "pid%d.%s", pid, uts.nodename);
+ *tag = STARCH_strndup(_tag, strlen(_tag) + 1);
+}
+
+ArchiveVersion *
+STARCH_copyArchiveVersion(const ArchiveVersion *oav)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH_copyArchiveVersion() ---\n");
+#endif
+ ArchiveVersion *av = NULL;
+#ifdef __cplusplus
+ av = static_cast<ArchiveVersion *>( malloc (sizeof(ArchiveVersion)) );
+#else
+ av = malloc (sizeof(ArchiveVersion));
+#endif
+ if (av) {
+ av->major = oav->major;
+ av->minor = oav->minor;
+ av->revision = oav->revision;
+ }
+ return av;
+}
+
+int
+STARCH_readLegacyMetadata(const char *buf, Metadata **rec, CompressionType *type, ArchiveVersion **version, uint64_t *mdOffset, Boolean *headerFlag, const Boolean suppressErrorMsgs)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH_readLegacyMetadata() ---\n");
+#endif
+ /*
+ The legacy format predates the "official" (Google) release of starch
+ and does not use any JSON. So we have to do things a little differently.
+
+ Here's the structure of the 8192-byte header:
+
+ --------------------------------------------------------------
+ compressedFilename-1 \t byteOffset-1 \n
+ compressedFilename-2 \t byteOffset-2 \n
+ ...
+ compressedFilename-N \t byteOffset-N \n
+ \n
+ \n
+ ...
+ \n
+ --------------------------------------------------------------
+
+ We essentially walk through the char* 'buf' one character at a time,
+ tokenizing on tabs. We obtain the extension of the filename (either .bz2
+ or .gz) to read the file's compression type. We then read the byte
+ offset. We leave out post-v1.2 features (line count, etc.).
+ */
+
+ char *token = NULL;
+ char *tokenCheck = NULL;
+ char *recChromosome = NULL;
+ char *recFilename = NULL;
+ unsigned long recFileSize = 0UL;
+ LineCountType recLineCountValue = STARCH_DEFAULT_LINE_COUNT;
+ BaseCountType recNonUniqueBaseCountValue = STARCH_DEFAULT_NON_UNIQUE_BASE_COUNT;
+ BaseCountType recUniqueBaseCountValue = STARCH_DEFAULT_UNIQUE_BASE_COUNT;
+ Boolean recDuplicateElementExistsFlagValue = STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE;
+ Boolean recNestedElementExistsFlagValue = STARCH_DEFAULT_NESTED_ELEMENT_FLAG_VALUE;
+ char tokBuf[STARCH_LEGACY_METADATA_SIZE];
+ char recTokBuf[STARCH_LEGACY_METADATA_SIZE];
+ size_t bufIdx, tokBufIdx, recTokBufIdx;
+ int tokenCount;
+ int recIdx = 0;
+ Metadata *firstRec = NULL;
+
+ for (bufIdx = 0, tokBufIdx = 0; bufIdx < STARCH_LEGACY_METADATA_SIZE; bufIdx++, tokBufIdx++) {
+ if (buf[bufIdx] == '\n') {
+ if (tokBufIdx > 0)
+ recIdx++;
+ tokBuf[tokBufIdx] = '\0';
+ token = strtok(tokBuf, "\t");
+ for (tokenCount = 0; token != NULL; tokenCount++) {
+ switch (tokenCount) {
+ case 0: {
+#ifdef __cplusplus
+ tokenCheck = STARCH_strnstr(reinterpret_cast<const char *>(token), STARCH_LEGACY_EXTENSION_BZ2, strlen(token));
+#else
+ tokenCheck = STARCH_strnstr((const char *)token, STARCH_LEGACY_EXTENSION_BZ2, strlen(token));
+#endif
+ if (!tokenCheck) {
+#ifdef __cplusplus
+ tokenCheck = STARCH_strnstr(reinterpret_cast<const char *>(token), STARCH_LEGACY_EXTENSION_GZIP, strlen(token));
+#else
+ tokenCheck = STARCH_strnstr((const char *)token, STARCH_LEGACY_EXTENSION_GZIP, strlen(token));
+#endif
+ if (!tokenCheck) {
+ if (suppressErrorMsgs == kStarchFalse)
+ fprintf(stderr, "ERROR: Archive metadata is invalid -- check format (are you trying to open a newer archive with an older binary?)\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ else {
+#ifdef __cplusplus
+ *type = static_cast<CompressionType>( kGzip ); /* archive is gzip */
+#else
+ *type = (CompressionType) kGzip; /* archive is gzip */
+#endif
+ }
+ }
+ else {
+#ifdef __cplusplus
+ *type = static_cast<CompressionType>( kBzip2 ); /* archive is bzip2 */
+#else
+ *type = (CompressionType) kBzip2; /* archive is bzip2 */
+#endif
+ }
+
+ /* read chromosome name */
+ strncpy(recTokBuf, token, strlen(token) + 1);
+ for (recTokBufIdx = 0; recTokBufIdx < strlen(recTokBuf); recTokBufIdx++) {
+ if (recTokBuf[recTokBufIdx] == '.') {
+ recTokBuf[recTokBufIdx] = '\0';
+ break;
+ }
+ }
+#ifdef __cplusplus
+ recChromosome = static_cast<char *>( malloc(strlen(recTokBuf) + 1) );
+#else
+ recChromosome = malloc(strlen(recTokBuf) + 1);
+#endif
+ if (!recChromosome) {
+ fprintf(stderr, "ERROR: Could not allocate space for chromosome\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ strncpy(recChromosome, recTokBuf, strlen(recTokBuf) + 1);
+
+ /* read filename */
+#ifdef __cplusplus
+ recFilename = static_cast<char *>( malloc(strlen(token) + 1) );
+#else
+ recFilename = malloc(strlen(token) + 1);
+#endif
+ if (!recFilename) {
+ fprintf(stderr, "ERROR: Could not allocate space for filename\n");
+ return STARCH_EXIT_FAILURE;
+ }
+ strncpy(recFilename, token, strlen(token) + 1);
+
+ break;
+ }
+ case 1: {
+ /* read file size */
+ recFileSize = strtoul(token, NULL, STARCH_RADIX);
+ break;
+ }
+ }
+ token = strtok(NULL, "\t");
+ }
+
+ /* if tokBufIdx is zero, then we are at the end of the metadata content */
+ if (tokBufIdx != 0) {
+ /* put record into metadata */
+ if (recIdx == 1) {
+ *rec = STARCH_createMetadata(recChromosome, recFilename, recFileSize, recLineCountValue, recNonUniqueBaseCountValue, recUniqueBaseCountValue, recDuplicateElementExistsFlagValue, recNestedElementExistsFlagValue);
+ firstRec = *rec;
+ }
+ else
+ *rec = STARCH_addMetadata(*rec, recChromosome, recFilename, recFileSize, recLineCountValue, recNonUniqueBaseCountValue, recUniqueBaseCountValue, recDuplicateElementExistsFlagValue, recNestedElementExistsFlagValue);
+
+ /* cleanup */
+ if (recFilename)
+ free(recFilename), recFilename = NULL;
+ if (recChromosome)
+ free(recChromosome), recChromosome = NULL;
+ }
+ else
+ break;
+
+#ifdef __cplusplus
+ tokBufIdx = static_cast<size_t>(-1);
+#else
+ tokBufIdx = (size_t) -1;
+#endif
+ }
+ else
+ tokBuf[tokBufIdx] = buf[bufIdx];
+ }
+
+ /* set archive version */
+ (*version)->major = 1;
+ (*version)->minor = 0;
+ (*version)->revision = 0;
+
+ /* set metadata offset */
+ *mdOffset = STARCH_LEGACY_METADATA_SIZE;
+
+ /* set header flag */
+ *headerFlag = kStarchFalse;
+
+ /* reset metadata pointer to first record */
+ *rec = firstRec;
+
+ return STARCH_EXIT_SUCCESS;
+}
+
+char *
+STARCH_strnstr(const char *haystack, const char *needle, size_t haystackLen)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH_strnstr() ---\n");
+#endif
+ char *p;
+ size_t pLen;
+ size_t len = strlen(needle);
+
+ /* everything matches empty string */
+ if (*needle == '\0') {
+#ifdef __cplusplus
+ return const_cast<char *>( haystack );
+#else
+ return (char *) haystack;
+#endif
+ }
+
+ pLen = haystackLen;
+#ifdef __cplusplus
+ for (p = const_cast<char *>( haystack ); p != NULL; p = static_cast<char *>( memchr(p + 1, *needle, pLen-1) )) {
+ pLen = haystackLen - static_cast<size_t>( p - haystack );
+#else
+ for (p = (char *) haystack; p != NULL; p = (char *) memchr(p + 1, *needle, pLen-1)) {
+ pLen = haystackLen - (size_t) (p - haystack);
+#endif
+ if (pLen < len)
+ return NULL;
+ if (strncmp(p, needle, len) == 0)
+ return p;
+ }
+
+ return NULL;
+}
+
+int
+STARCH_chromosomeInMetadataRecords(const Metadata *md, const char *chr) {
+#ifdef DEBUG
+ fprintf(stderr, "\n--- STARCH_chromosomeInMetadataRecords() ---\n");
+#endif
+ const Metadata *iter;
+
+ if (!md) {
+ fprintf(stderr, "ERROR: Could not list chromosomes (metadata structure is empty)\n");
+ return STARCH_EXIT_FAILURE;
+ }
+
+ for (iter = md; iter != NULL; iter = iter->next)
+ if (strcmp(chr, iter->chromosome) == 0)
+ return STARCH_EXIT_SUCCESS;
+
+ return STARCH_EXIT_FAILURE;
+}
+
+#ifdef __cplusplus
+} // namespace starch
+#endif
diff --git a/interfaces/src/data/starch/starchSha1Digest.c b/interfaces/src/data/starch/starchSha1Digest.c
new file mode 100644
index 0000000..52c5f2a
--- /dev/null
+++ b/interfaces/src/data/starch/starchSha1Digest.c
@@ -0,0 +1,506 @@
+//=========
+// Author: Alex Reynolds & Shane Neph
+// Project: starch
+// File: starchSha1Digest.c
+//=========
+
+/* sha1.c - Functions to compute SHA1 message digest of files or
+ memory blocks according to the NIST specification FIPS-180-1.
+
+ Copyright (C) 2000, 2001, 2003, 2004, 2005, 2006, 2008 Free Software
+ Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the
+ Free Software Foundation; either version 2, or (at your option) any
+ later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+/* Written by Scott G. Miller
+ Credits:
+ Robert Klep <robert at ilse.nl> -- Expansion function fix
+*/
+
+#ifdef __cplusplus
+#include <cstddef>
+#include <cstring>
+#else
+#include <stddef.h>
+#include <string.h>
+#endif
+
+#include "data/starch/starchSha1Digest.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct offset_test { char c; sha1_uint32 x; };
+
+#ifdef WORDS_BIGENDIAN
+# define SWAP(n) (n)
+#else
+# define SWAP(n) \
+ (((n) << 24) | (((n) & 0xff00) << 8) | (((n) >> 8) & 0xff00) | ((n) >> 24))
+#endif
+
+#define BLOCKSIZE 4096
+#if BLOCKSIZE % 64 != 0
+# error "invalid BLOCKSIZE"
+#endif
+
+/* This array contains the bytes used to pad the buffer to the next
+ 64-byte boundary. (RFC 1321, 3.1: Step 1) */
+static const unsigned char fillbuf[64] = { 0x80, 0 /* , 0, 0, ... */ };
+
+
+/* Take a pointer to a 160 bit block of data (five 32 bit ints) and
+ initialize it to the start constants of the SHA1 algorithm. This
+ must be called before using hash in the call to sha1_hash. */
+void
+sha1_init_ctx (struct sha1_ctx *ctx)
+{
+ ctx->A = 0x67452301;
+ ctx->B = 0xefcdab89;
+ ctx->C = 0x98badcfe;
+ ctx->D = 0x10325476;
+ ctx->E = 0xc3d2e1f0;
+
+ ctx->total[0] = ctx->total[1] = 0;
+ ctx->buflen = 0;
+}
+
+/* Put result from CTX in first 20 bytes following RESBUF. The result
+ must be in little endian byte order.
+
+ IMPORTANT: On some systems it is required that RESBUF is correctly
+ aligned for a 32-bit value. */
+void *
+sha1_read_ctx (const struct sha1_ctx *ctx, void *resbuf)
+{
+#ifdef __cplusplus
+ (reinterpret_cast<sha1_uint32 *>( resbuf ))[0] = SWAP (ctx->A);
+ (reinterpret_cast<sha1_uint32 *>( resbuf ))[1] = SWAP (ctx->B);
+ (reinterpret_cast<sha1_uint32 *>( resbuf ))[2] = SWAP (ctx->C);
+ (reinterpret_cast<sha1_uint32 *>( resbuf ))[3] = SWAP (ctx->D);
+ (reinterpret_cast<sha1_uint32 *>( resbuf ))[4] = SWAP (ctx->E);
+#else
+ ((sha1_uint32 *) resbuf)[0] = SWAP (ctx->A);
+ ((sha1_uint32 *) resbuf)[1] = SWAP (ctx->B);
+ ((sha1_uint32 *) resbuf)[2] = SWAP (ctx->C);
+ ((sha1_uint32 *) resbuf)[3] = SWAP (ctx->D);
+ ((sha1_uint32 *) resbuf)[4] = SWAP (ctx->E);
+#endif
+
+ return resbuf;
+}
+
+/* Process the remaining bytes in the internal buffer and the usual
+ prolog according to the standard and write the result to RESBUF.
+
+ IMPORTANT: On some systems it is required that RESBUF is correctly
+ aligned for a 32-bit value. */
+void *
+sha1_finish_ctx (struct sha1_ctx *ctx, void *resbuf)
+{
+ /* Take yet unprocessed bytes into account. */
+ sha1_uint32 bytes = ctx->buflen;
+ size_t size = (bytes < 56) ? 64 / 4 : 64 * 2 / 4;
+
+ /* Now count remaining bytes. */
+ ctx->total[0] += bytes;
+ if (ctx->total[0] < bytes)
+ ++ctx->total[1];
+
+ /* Put the 64-bit file length in *bits* at the end of the buffer. */
+ ctx->buffer[size - 2] = SWAP ((ctx->total[1] << 3) | (ctx->total[0] >> 29));
+ ctx->buffer[size - 1] = SWAP (ctx->total[0] << 3);
+
+#ifdef __cplusplus
+ memcpy (&(reinterpret_cast<char *>( ctx->buffer ))[bytes], fillbuf, (size - 2) * 4 - bytes);
+#else
+ memcpy (&((char *) ctx->buffer)[bytes], fillbuf, (size - 2) * 4 - bytes);
+#endif
+
+ /* Process last bytes. */
+ sha1_process_block (ctx->buffer, size * 4, ctx);
+
+ return sha1_read_ctx (ctx, resbuf);
+}
+
+/* Compute SHA1 message digest for bytes read from STREAM. The
+ resulting message digest number will be written into the 16 bytes
+ beginning at RESBLOCK. */
+int
+sha1_stream (FILE *stream, void *resblock)
+{
+ struct sha1_ctx ctx;
+ char buffer[BLOCKSIZE + 72];
+ size_t sum;
+
+ /* Initialize the computation context. */
+ sha1_init_ctx (&ctx);
+
+ /* Iterate over full file contents. */
+ while (1)
+ {
+ /* We read the file in blocks of BLOCKSIZE bytes. One call of the
+ computation function processes the whole buffer so that with the
+ next round of the loop another block can be read. */
+ size_t n;
+ sum = 0;
+
+ /* Read block. Take care for partial reads. */
+ while (1)
+ {
+ n = fread (buffer + sum, 1, BLOCKSIZE - sum, stream);
+
+ sum += n;
+
+ if (sum == BLOCKSIZE)
+ break;
+
+ if (n == 0)
+ {
+ /* Check for the error flag IFF N == 0, so that we don't
+ exit the loop after a partial read due to e.g., EAGAIN
+ or EWOULDBLOCK. */
+ if (ferror (stream))
+ return 1;
+ goto process_partial_block;
+ }
+
+ /* We've read at least one byte, so ignore errors. But always
+ check for EOF, since feof may be true even though N > 0.
+ Otherwise, we could end up calling fread after EOF. */
+ if (feof (stream))
+ goto process_partial_block;
+ }
+
+ /* Process buffer with BLOCKSIZE bytes. Note that
+ BLOCKSIZE % 64 == 0
+ */
+ sha1_process_block (buffer, BLOCKSIZE, &ctx);
+ }
+
+ process_partial_block:;
+
+ /* Process any remaining bytes. */
+ if (sum > 0)
+ sha1_process_bytes (buffer, sum, &ctx);
+
+ /* Construct result in desired memory. */
+ sha1_finish_ctx (&ctx, resblock);
+ return 0;
+}
+
+/* Compute SHA1 message digest for LEN bytes beginning at BUFFER. The
+ result is always in little endian byte order, so that a byte-wise
+ output yields to the wanted ASCII representation of the message
+ digest. */
+void *
+sha1_buffer (const char *buffer, size_t len, void *resblock)
+{
+ struct sha1_ctx ctx;
+
+ /* Initialize the computation context. */
+ sha1_init_ctx (&ctx);
+
+ /* Process whole buffer but last len % 64 bytes. */
+ sha1_process_bytes (buffer, len, &ctx);
+
+ /* Put result in desired memory area. */
+ return sha1_finish_ctx (&ctx, resblock);
+}
+
+void
+sha1_process_bytes (const void *buffer, size_t len, struct sha1_ctx *ctx)
+{
+ /* When we already have some bits in our internal buffer concatenate
+ both inputs first. */
+ if (ctx->buflen != 0)
+ {
+ size_t left_over = ctx->buflen;
+ size_t add = 128 - left_over > len ? len : 128 - left_over;
+
+#ifdef __cplusplus
+ memcpy (&(reinterpret_cast<char *>( ctx->buffer ))[left_over], buffer, add);
+#else
+ memcpy (&((char *) ctx->buffer)[left_over], buffer, add);
+#endif
+ ctx->buflen += add;
+
+ if (ctx->buflen > 64)
+ {
+#ifdef __cplusplus
+ sha1_process_block (ctx->buffer, static_cast<size_t> (ctx->buflen & static_cast<sha1_uint32>( ~63 )), ctx);
+#else
+ sha1_process_block (ctx->buffer, (size_t) (ctx->buflen & (sha1_uint32) ~63), ctx);
+#endif
+
+ ctx->buflen &= 63;
+ /* The regions in the following copy operation cannot overlap. */
+#ifdef __cplusplus
+ memcpy (ctx->buffer,
+ &(reinterpret_cast<char *>( ctx->buffer ))[(left_over + add) & static_cast<sha1_uint32>( ~63 )],
+ ctx->buflen);
+#else
+ memcpy (ctx->buffer,
+ &((char *) ctx->buffer)[(left_over + add) & (sha1_uint32) ~63],
+ ctx->buflen);
+#endif
+ }
+
+#ifdef __cplusplus
+ buffer = reinterpret_cast<const char *>( buffer ) + add;
+#else
+ buffer = (const char *) buffer + add;
+#endif
+ len -= add;
+ }
+
+ /* Process available complete blocks. */
+ if (len >= 64)
+ {
+
+#ifndef __GLIBC__
+#define _STRING_ARCH_unaligned 0
+#endif
+
+#if !_STRING_ARCH_unaligned
+# define alignof(type) offsetof (offset_test, x)
+#ifdef __cplusplus
+# define UNALIGNED_P(p) ((reinterpret_cast<size_t>( const_cast<void *>( p ) )) % alignof (sha1_uint32) != 0)
+#else
+# define UNALIGNED_P(p) (((size_t) p) % alignof (sha1_uint32) != 0)
+#endif
+ if (UNALIGNED_P (buffer))
+ while (len > 64)
+ {
+ sha1_process_block (memcpy (ctx->buffer, buffer, 64), 64, ctx);
+#ifdef __cplusplus
+ buffer = reinterpret_cast<const char *>( buffer ) + 64;
+#else
+ buffer = (const char *) buffer + 64;
+#endif
+ len -= 64;
+ }
+ else
+#endif
+ {
+#ifdef __cplusplus
+ sha1_process_block (buffer, len & static_cast<sha1_uint32>( ~63 ), ctx);
+ buffer = reinterpret_cast<const char *>( buffer ) + (len & static_cast<sha1_uint32>( ~63 ));
+#else
+ sha1_process_block (buffer, len & (sha1_uint32) ~63, ctx);
+ buffer = (const char *) buffer + (len & (sha1_uint32) ~63);
+#endif
+ len &= 63;
+ }
+ }
+
+ /* Move remaining bytes in internal buffer. */
+ if (len > 0)
+ {
+ size_t left_over = ctx->buflen;
+
+#ifdef __cplusplus
+ memcpy (&(reinterpret_cast<char *>( ctx->buffer ))[left_over], buffer, len);
+#else
+ memcpy (&((char *) ctx->buffer)[left_over], buffer, len);
+#endif
+ left_over += len;
+ if (left_over >= 64)
+ {
+ sha1_process_block (ctx->buffer, 64, ctx);
+ left_over -= 64;
+ memcpy (ctx->buffer, &ctx->buffer[16], left_over);
+ }
+#ifdef __cplusplus
+ ctx->buflen = static_cast<sha1_uint32>( left_over );
+#else
+ ctx->buflen = (sha1_uint32) left_over;
+#endif
+ }
+}
+
+/* --- Code below is the primary difference between md5.c and sha1.c --- */
+
+/* SHA1 round constants */
+#define K1 0x5a827999
+#define K2 0x6ed9eba1
+#define K3 0x8f1bbcdc
+#define K4 0xca62c1d6
+
+/* Round functions. Note that F2 is the same as F4. */
+#define F1(B,C,D) ( D ^ ( B & ( C ^ D ) ) )
+#define F2(B,C,D) (B ^ C ^ D)
+#define F3(B,C,D) ( ( B & C ) | ( D & ( B | C ) ) )
+#define F4(B,C,D) (B ^ C ^ D)
+
+/* Process LEN bytes of BUFFER, accumulating context into CTX.
+ It is assumed that LEN % 64 == 0.
+ Most of this code comes from GnuPG's cipher/sha1.c. */
+
+void
+sha1_process_block (const void *buffer, size_t len, struct sha1_ctx *ctx)
+{
+#ifdef __cplusplus
+ const sha1_uint32 *words = reinterpret_cast<const sha1_uint32 *>( buffer );
+#else
+ const sha1_uint32 *words = (const sha1_uint32 *) buffer;
+#endif
+ size_t nwords = len / sizeof (sha1_uint32);
+ const sha1_uint32 *endp = words + nwords;
+ sha1_uint32 x[16];
+ sha1_uint32 a = ctx->A;
+ sha1_uint32 b = ctx->B;
+ sha1_uint32 c = ctx->C;
+ sha1_uint32 d = ctx->D;
+ sha1_uint32 e = ctx->E;
+
+ /* First increment the byte count. RFC 1321 specifies the possible
+ length of the file up to 2^64 bits. Here we only compute the
+ number of bytes. Do a double word increment. */
+ ctx->total[0] += len;
+ if (ctx->total[0] < len)
+ ++ctx->total[1];
+
+#ifdef __cplusplus
+#define rol(x, n) (((x) << (n)) | (static_cast<sha1_uint32>( x ) >> (32 - (n))))
+#else
+#define rol(x, n) (((x) << (n)) | ((sha1_uint32) (x) >> (32 - (n))))
+#endif
+
+#define M(I) ( tm = x[I&0x0f] ^ x[(I-14)&0x0f] \
+ ^ x[(I-8)&0x0f] ^ x[(I-3)&0x0f] \
+ , (x[I&0x0f] = rol(tm, 1)) )
+
+#define R(A,B,C,D,E,F,K,M) do { E += rol( A, 5 ) \
+ + F( B, C, D ) \
+ + K \
+ + M; \
+ B = rol( B, 30 ); \
+ } while(0)
+
+ while (words < endp)
+ {
+ sha1_uint32 tm;
+ int t;
+ for (t = 0; t < 16; t++)
+ {
+ x[t] = SWAP (*words);
+ words++;
+ }
+
+ R( a, b, c, d, e, F1, K1, x[ 0] );
+ R( e, a, b, c, d, F1, K1, x[ 1] );
+ R( d, e, a, b, c, F1, K1, x[ 2] );
+ R( c, d, e, a, b, F1, K1, x[ 3] );
+ R( b, c, d, e, a, F1, K1, x[ 4] );
+ R( a, b, c, d, e, F1, K1, x[ 5] );
+ R( e, a, b, c, d, F1, K1, x[ 6] );
+ R( d, e, a, b, c, F1, K1, x[ 7] );
+ R( c, d, e, a, b, F1, K1, x[ 8] );
+ R( b, c, d, e, a, F1, K1, x[ 9] );
+ R( a, b, c, d, e, F1, K1, x[10] );
+ R( e, a, b, c, d, F1, K1, x[11] );
+ R( d, e, a, b, c, F1, K1, x[12] );
+ R( c, d, e, a, b, F1, K1, x[13] );
+ R( b, c, d, e, a, F1, K1, x[14] );
+ R( a, b, c, d, e, F1, K1, x[15] );
+ R( e, a, b, c, d, F1, K1, M(16) );
+ R( d, e, a, b, c, F1, K1, M(17) );
+ R( c, d, e, a, b, F1, K1, M(18) );
+ R( b, c, d, e, a, F1, K1, M(19) );
+ R( a, b, c, d, e, F2, K2, M(20) );
+ R( e, a, b, c, d, F2, K2, M(21) );
+ R( d, e, a, b, c, F2, K2, M(22) );
+ R( c, d, e, a, b, F2, K2, M(23) );
+ R( b, c, d, e, a, F2, K2, M(24) );
+ R( a, b, c, d, e, F2, K2, M(25) );
+ R( e, a, b, c, d, F2, K2, M(26) );
+ R( d, e, a, b, c, F2, K2, M(27) );
+ R( c, d, e, a, b, F2, K2, M(28) );
+ R( b, c, d, e, a, F2, K2, M(29) );
+ R( a, b, c, d, e, F2, K2, M(30) );
+ R( e, a, b, c, d, F2, K2, M(31) );
+ R( d, e, a, b, c, F2, K2, M(32) );
+ R( c, d, e, a, b, F2, K2, M(33) );
+ R( b, c, d, e, a, F2, K2, M(34) );
+ R( a, b, c, d, e, F2, K2, M(35) );
+ R( e, a, b, c, d, F2, K2, M(36) );
+ R( d, e, a, b, c, F2, K2, M(37) );
+ R( c, d, e, a, b, F2, K2, M(38) );
+ R( b, c, d, e, a, F2, K2, M(39) );
+ R( a, b, c, d, e, F3, K3, M(40) );
+ R( e, a, b, c, d, F3, K3, M(41) );
+ R( d, e, a, b, c, F3, K3, M(42) );
+ R( c, d, e, a, b, F3, K3, M(43) );
+ R( b, c, d, e, a, F3, K3, M(44) );
+ R( a, b, c, d, e, F3, K3, M(45) );
+ R( e, a, b, c, d, F3, K3, M(46) );
+ R( d, e, a, b, c, F3, K3, M(47) );
+ R( c, d, e, a, b, F3, K3, M(48) );
+ R( b, c, d, e, a, F3, K3, M(49) );
+ R( a, b, c, d, e, F3, K3, M(50) );
+ R( e, a, b, c, d, F3, K3, M(51) );
+ R( d, e, a, b, c, F3, K3, M(52) );
+ R( c, d, e, a, b, F3, K3, M(53) );
+ R( b, c, d, e, a, F3, K3, M(54) );
+ R( a, b, c, d, e, F3, K3, M(55) );
+ R( e, a, b, c, d, F3, K3, M(56) );
+ R( d, e, a, b, c, F3, K3, M(57) );
+ R( c, d, e, a, b, F3, K3, M(58) );
+ R( b, c, d, e, a, F3, K3, M(59) );
+ R( a, b, c, d, e, F4, K4, M(60) );
+ R( e, a, b, c, d, F4, K4, M(61) );
+ R( d, e, a, b, c, F4, K4, M(62) );
+ R( c, d, e, a, b, F4, K4, M(63) );
+ R( b, c, d, e, a, F4, K4, M(64) );
+ R( a, b, c, d, e, F4, K4, M(65) );
+ R( e, a, b, c, d, F4, K4, M(66) );
+ R( d, e, a, b, c, F4, K4, M(67) );
+ R( c, d, e, a, b, F4, K4, M(68) );
+ R( b, c, d, e, a, F4, K4, M(69) );
+ R( a, b, c, d, e, F4, K4, M(70) );
+ R( e, a, b, c, d, F4, K4, M(71) );
+ R( d, e, a, b, c, F4, K4, M(72) );
+ R( c, d, e, a, b, F4, K4, M(73) );
+ R( b, c, d, e, a, F4, K4, M(74) );
+ R( a, b, c, d, e, F4, K4, M(75) );
+ R( e, a, b, c, d, F4, K4, M(76) );
+ R( d, e, a, b, c, F4, K4, M(77) );
+ R( c, d, e, a, b, F4, K4, M(78) );
+ R( b, c, d, e, a, F4, K4, M(79) );
+
+ a = ctx->A += a;
+ b = ctx->B += b;
+ c = ctx->C += c;
+ d = ctx->D += d;
+ e = ctx->E += e;
+ }
+}
+
+/* We want to digest in one go, so we run everything at once */
+void
+STARCH_SHA1_All(const unsigned char *input, size_t inputLength, unsigned char *output)
+{
+#ifdef __cplusplus
+ sha1_buffer(reinterpret_cast<const char *>( const_cast<unsigned char *>( input ) ), inputLength, output);
+#else
+ sha1_buffer((const char *)input, inputLength, output);
+#endif
+}
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/interfaces/src/data/starch/unstarchHelpers.c b/interfaces/src/data/starch/unstarchHelpers.c
new file mode 100644
index 0000000..81cf40d
--- /dev/null
+++ b/interfaces/src/data/starch/unstarchHelpers.c
@@ -0,0 +1,2086 @@
+//=========
+// Author: Alex Reynolds & Shane Neph
+// Project: starch
+// File: unstarchHelpers.c
+//=========
+
+//
+// BEDOPS
+// Copyright (C) 2011-2016 Shane Neph, Scott Kuehn and Alex Reynolds
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+
+#ifdef __cplusplus
+#include <cinttypes>
+#include <cstdint>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <clocale>
+#else
+#include <inttypes.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <locale.h>
+#endif
+
+#include <zlib.h>
+
+#include "data/starch/starchFileHelpers.h"
+#include "data/starch/starchHelpers.h"
+#include "data/starch/unstarchHelpers.h"
+#include "data/starch/starchConstants.h"
+#include "suite/BEDOPS.Constants.hpp"
+
+#ifdef __cplusplus
+namespace starch {
+#endif
+
+int
+UNSTARCH_extractDataWithGzip(FILE **inFp, FILE *outFp, const char *whichChr, const Metadata *md, const uint64_t mdOffset, const Boolean headerFlag)
+{
+#ifdef DEBUG_VERBOSE
+ fprintf(stderr, "\n--- UNSTARCH_extractDataWithGzip() ---\n");
+#endif
+ const Metadata *iter;
+ char *chromosome;
+ uint64_t size;
+ uint64_t cumulativeSize = 0;
+ SignedCoordType start, pLength, lastEnd;
+ char const *all = "all";
+ char firstInputToken[UNSTARCH_FIRST_TOKEN_MAX_LENGTH];
+ char secondInputToken[UNSTARCH_SECOND_TOKEN_MAX_LENGTH];
+ unsigned char zInBuf[STARCH_Z_CHUNK];
+ unsigned char zOutBuf[STARCH_Z_CHUNK];
+ unsigned char zLineBuf[STARCH_Z_CHUNK];
+#ifdef __cplusplus
+ unsigned char *zRemainderBuf = static_cast<unsigned char *>( malloc(1) );
+#else
+ unsigned char *zRemainderBuf = malloc(1);
+#endif
+ z_stream zStream;
+ unsigned int zHave, zOutBufIdx;
+ size_t zBufIdx, zBufOffset;
+ int zError;
+ Boolean chrFound = kStarchFalse;
+
+ if (!outFp)
+ outFp = stdout;
+
+ firstInputToken[0] = '\0';
+ secondInputToken[0] = '\0';
+
+ for (iter = md; iter != NULL; iter = iter->next) {
+ chromosome = iter->chromosome;
+ size = iter->size;
+ start = 0;
+ pLength = 0;
+ lastEnd = 0;
+
+#ifdef __cplusplus
+ if (STARCH_fseeko(*inFp, static_cast<off_t>( cumulativeSize + mdOffset ), SEEK_SET) != 0) {
+#else
+ if (STARCH_fseeko(*inFp, (off_t)(cumulativeSize + mdOffset), SEEK_SET) != 0) {
+#endif
+ fprintf(stderr, "ERROR: Could not seek data in archive at chromosome (%s) and offset (%" PRIu64 ")\n", chromosome, cumulativeSize + mdOffset);
+ return UNSTARCH_FATAL_ERROR;
+ }
+ cumulativeSize += size;
+
+ if ((strcmp(whichChr, all) == 0) || (strcmp(whichChr, chromosome) == 0)) {
+
+ /* we have found at least one chromosome */
+ chrFound = kStarchTrue;
+
+ /* initialized and open gzip stream */
+ zStream.zalloc = Z_NULL;
+ zStream.zfree = Z_NULL;
+ zStream.opaque = Z_NULL;
+ zStream.avail_in = 0;
+ zStream.next_in = Z_NULL;
+
+ zError = inflateInit2(&zStream, (15+32)); /* cf. http://www.zlib.net/manual.html */
+ if (zError != Z_OK) {
+ fprintf(stderr, "ERROR: Could not initialize z-stream\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+
+ *zRemainderBuf = '\0';
+
+ /* while stream is open, read line from stream, and reverse transform */
+ do {
+#ifdef DEBUG_VERBOSE
+ fprintf(stderr, "--> (pre-read-chunk) currently at byte [%013ld]\n", ftell(*inFp));
+#endif
+#ifdef __cplusplus
+ zStream.avail_in = static_cast<unsigned int>( fread(zInBuf, 1, STARCH_Z_CHUNK, *inFp) );
+#else
+ zStream.avail_in = (unsigned int) fread(zInBuf, 1, STARCH_Z_CHUNK, *inFp);
+#endif
+#ifdef DEBUG_VERBOSE
+ fprintf(stderr, "--> (post-read-chunk) currently at byte [%013ld]\n", ftell(*inFp));
+#endif
+ if (zStream.avail_in == 0)
+ break;
+ zStream.next_in = zInBuf;
+ do {
+ zStream.avail_out = STARCH_Z_CHUNK;
+ zStream.next_out = zOutBuf;
+#ifdef DEBUG_VERBOSE
+ fprintf(stderr, "--> (pre-loop) zStream.avail_out [%013d]\n", zStream.avail_out);
+#endif
+ zError = inflate(&zStream, Z_NO_FLUSH);
+#ifdef DEBUG_VERBOSE
+ fprintf(stderr, "--> (post-loop) zStream.avail_out [%013d]\n", zStream.avail_out);
+ //cnt++;
+#endif
+ switch (zError) {
+ case Z_NEED_DICT: { fprintf(stderr, "ERROR: Z-stream needs dictionary\n"); return UNSTARCH_FATAL_ERROR; }
+ case Z_DATA_ERROR: { fprintf(stderr, "ERROR: Z-stream suffered data error\n"); return UNSTARCH_FATAL_ERROR; }
+ case Z_MEM_ERROR: { fprintf(stderr, "ERROR: Z-stream suffered memory error\n"); return UNSTARCH_FATAL_ERROR; }
+ };
+ zHave = STARCH_Z_CHUNK - zStream.avail_out;
+ zOutBuf[zHave] = '\0';
+
+ /* copy remainder buffer onto line buffer, if not NULL */
+ if (zRemainderBuf) {
+#ifdef __cplusplus
+ strncpy(reinterpret_cast<char *>( zLineBuf ), reinterpret_cast<const char *>( zRemainderBuf ), strlen(reinterpret_cast<const char *>( zRemainderBuf )));
+ zBufOffset = strlen(reinterpret_cast<const char *>( zRemainderBuf ));
+#else
+ strncpy((char *) zLineBuf, (const char *) zRemainderBuf, strlen((const char *) zRemainderBuf));
+ zBufOffset = strlen((const char *) zRemainderBuf);
+#endif
+ }
+ else
+ zBufOffset = 0;
+
+#ifdef DEBUG_VERBOSE
+ fprintf(stderr, "zHave [%d]\n", zHave);
+ fprintf(stderr, "zBufIdx [%zu]\n", zBufOffset);
+ fprintf(stderr, "zOutBufIdx [%d]\n", zOutBufIdx);
+#endif
+
+ /* read through zOutBuf for newlines */
+ for (zBufIdx = zBufOffset, zOutBufIdx = 0; zOutBufIdx < zHave; zBufIdx++, zOutBufIdx++) {
+ zLineBuf[zBufIdx] = zOutBuf[zOutBufIdx];
+ if (zLineBuf[zBufIdx] == '\n') {
+ zLineBuf[zBufIdx] = '\0';
+#ifdef __cplusplus
+ zBufIdx = static_cast<size_t>( -1 );
+#else
+ zBufIdx = (size_t) -1;
+#endif
+ (!headerFlag) ? \
+ UNSTARCH_reverseTransformHeaderlessInput(chromosome, zLineBuf, '\t', &start, &pLength, &lastEnd, firstInputToken, secondInputToken, outFp) : \
+ UNSTARCH_reverseTransformInput(chromosome, zLineBuf, '\t', &start, &pLength, &lastEnd, firstInputToken, secondInputToken, outFp);
+ firstInputToken[0] = '\0';
+ secondInputToken[0] = '\0';
+ }
+ }
+
+ /* copy some of line buffer onto the remainder buffer, if there are remnants from the z-stream */
+#ifdef __cplusplus
+ if (strlen(reinterpret_cast<const char *>( zLineBuf )) > 0) {
+#else
+ if (strlen((const char *) zLineBuf) > 0) {
+#endif
+
+#ifdef __cplusplus
+ if (strlen(reinterpret_cast<const char *>( zLineBuf )) > strlen(reinterpret_cast<const char *>( zRemainderBuf ))) {
+#else
+ if (strlen((const char *) zLineBuf) > strlen((const char *) zRemainderBuf)) {
+#endif
+ /* to minimize the chance of doing another (expensive) malloc, we double the length of zRemainderBuf */
+ free(zRemainderBuf);
+#ifdef __cplusplus
+ zRemainderBuf = static_cast<unsigned char *>( malloc(strlen(reinterpret_cast<const char *>( zLineBuf )) * 2) );
+#else
+ zRemainderBuf = malloc(strlen((const char *) zLineBuf) * 2);
+#endif
+ }
+
+ /* it is necessary to copy only that part of zLineBuf up to zBufIdx characters */
+ /* (zBufIdx characters were read into zLineBuf before no newline was found and */
+ /* we end up in this conditional) as well as terminate the remainder buffer */
+ /* zRemainderBuf, so that any cruft from a previous iteration is ignored in the */
+ /* next iteration of parsing the chromosome's z-stream */
+
+#ifdef __cplusplus
+ strncpy(reinterpret_cast<char *>( zRemainderBuf ), reinterpret_cast<const char *>( zLineBuf ), zBufIdx);
+#else
+ strncpy((char *) zRemainderBuf, (const char *) zLineBuf, zBufIdx);
+#endif
+ zRemainderBuf[zBufIdx] = '\0';
+
+ /* we should only at most have to do this every STARCH_Z_CHUNK chars, and once */
+ /* at the tail end of a chromosome's worth of a z-stream */
+ }
+ } while (zStream.avail_out == 0);
+
+ } while (zError != Z_STREAM_END);
+
+ /* close gzip stream */
+ zError = inflateEnd(&zStream);
+ if (zError != Z_OK) {
+ fprintf(stderr, "ERROR: Could not close z-stream (%d)\n", zError);
+ return UNSTARCH_FATAL_ERROR;
+ }
+
+ /* if we only want one specific chromosome, then we're done looping through chromosomes */
+ if (strcmp(whichChr, chromosome) == 0)
+ break;
+ }
+ }
+
+ if (zRemainderBuf)
+ free(zRemainderBuf);
+
+ if (!chrFound) {
+ fprintf(stderr, "ERROR: Could not find specified chromosome\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+
+ return 0;
+}
+
+int
+UNSTARCH_extractDataWithBzip2(FILE **inFp, FILE *outFp, const char *whichChr, const Metadata *md, const uint64_t mdOffset, const Boolean headerFlag)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_extractDataWithBzip2() ---\n");
+#endif
+ const Metadata *iter;
+ char *chromosome;
+ uint64_t size;
+ uint64_t cumulativeSize = 0;
+ SignedCoordType start, pLength, lastEnd;
+ char const *all = "all";
+ char firstInputToken[UNSTARCH_FIRST_TOKEN_MAX_LENGTH];
+ char secondInputToken[UNSTARCH_SECOND_TOKEN_MAX_LENGTH];
+ BZFILE *bzFp;
+ int bzError;
+ unsigned char *bzOutput;
+ size_t bzOutputLength = UNSTARCH_COMPRESSED_BUFFER_MAX_LENGTH;
+ /* unsigned char chrFound = UNSTARCH_FALSE; */
+
+ if (!outFp)
+ outFp = stdout;
+
+ firstInputToken[0] = '\0';
+ secondInputToken[0] = '\0';
+
+ for (iter = md; iter != NULL; iter = iter->next) {
+
+ chromosome = iter->chromosome;
+ size = iter->size;
+ start = 0;
+ pLength = 0;
+ lastEnd = 0;
+
+#ifdef __cplusplus
+ if (STARCH_fseeko(*inFp, static_cast<off_t>( cumulativeSize + mdOffset ), SEEK_SET) != 0) {
+#else
+ if (STARCH_fseeko(*inFp, (off_t) (cumulativeSize + mdOffset), SEEK_SET) != 0) {
+#endif
+ fprintf(stderr, "ERROR: Could not seek data in archve\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ cumulativeSize += size;
+
+ if ((strcmp(whichChr, all) == 0) || (strcmp(whichChr, chromosome) == 0)) {
+
+ /* chrFound = UNSTARCH_TRUE; */
+
+ bzFp = BZ2_bzReadOpen( &bzError, *inFp, 0, 0, NULL, 0 ); /* http://www.bzip.org/1.0.5/bzip2-manual-1.0.5.html#bzcompress-init */
+ if (bzError != BZ_OK) {
+ BZ2_bzReadClose( &bzError, bzFp );
+ fprintf(stderr, "ERROR: Bzip2 data stream could not be opened\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+
+#ifdef __cplusplus
+ bzOutput = static_cast<unsigned char *>( malloc(bzOutputLength) );
+#else
+ bzOutput = malloc(bzOutputLength);
+#endif
+
+ do {
+ UNSTARCH_bzReadLine(bzFp, &bzOutput);
+ if (bzOutput) {
+ (!headerFlag) ? \
+ UNSTARCH_reverseTransformHeaderlessInput(chromosome, bzOutput, '\t', &start, &pLength, &lastEnd, firstInputToken, secondInputToken, outFp): \
+ UNSTARCH_reverseTransformInput(chromosome, bzOutput, '\t', &start, &pLength, &lastEnd, firstInputToken, secondInputToken, outFp);
+ firstInputToken[0] = '\0';
+ secondInputToken[0] = '\0';
+ }
+ } while (bzOutput != NULL);
+ free(bzOutput);
+
+ BZ2_bzReadClose(&bzError, bzFp);
+
+ if (strcmp(whichChr, chromosome) == 0)
+ break;
+ }
+ }
+
+ /*
+ If no chromosome is found, we do nothing...
+
+ if (!chrFound) {
+ fprintf(stderr, "ERROR: Could not find specified chromosome\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ */
+
+ return 0;
+}
+
+void
+UNSTARCH_bzReadLine(BZFILE *input, unsigned char **output)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_bzReadLine() ---\n");
+#endif
+ size_t offset = 0;
+ size_t len = UNSTARCH_COMPRESSED_BUFFER_MAX_LENGTH;
+ int bzError;
+ unsigned char *outputCopy = NULL;
+ Boolean runFlag = kStarchFalse;
+
+ if ((!input) || (!*output)) {
+#ifdef DEBUG
+ if (!input)
+ fprintf(stderr, "\tinput is NULL\n");
+ if (!*output)
+ fprintf(stderr, "\toutput is NULL\n");
+#endif
+ return;
+ }
+
+ while (BZ2_bzRead(&bzError, input, *output + offset, 1) == 1) {
+ runFlag = kStarchTrue;
+ if (offset + 1 == len) {
+ len += UNSTARCH_COMPRESSED_BUFFER_MAX_LENGTH;
+#ifdef __cplusplus
+ outputCopy = static_cast<unsigned char *>( realloc(*output, len) );
+#else
+ outputCopy = realloc(*output, len);
+#endif
+ if (! outputCopy) {
+ fprintf(stderr, "ERROR: Could not reallocate space for compressed buffer.\n");
+ exit(-1);
+ }
+ *output = outputCopy;
+ }
+ if (*(*output + offset) == '\n')
+ break;
+ offset++;
+ }
+
+ if (*(*output + offset) == '\n') {
+#ifdef DEBUG
+ fprintf(stderr, "\tterminating *output\n");
+#endif
+ *(*output + offset) = '\0';
+ }
+ else if ((bzError != BZ_STREAM_END) || (runFlag == kStarchFalse)) {
+#ifdef DEBUG
+ if (bzError != BZ_STREAM_END)
+ fprintf(stderr, "\tbzError: %d\n", bzError);
+ if (runFlag == kStarchFalse)
+ fprintf(stderr, "\trunFlag is false\n");
+#endif
+ free(*output);
+ *output = NULL;
+ }
+}
+
+int
+UNSTARCH_reverseTransformInput(const char *chr, const unsigned char *str, char delim, SignedCoordType *start, SignedCoordType *pLength, SignedCoordType *lastEnd, char *elemTok1, char *elemTok2, FILE *outFp)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_reverseTransformInput() ---\n");
+#endif
+ char *pTest = NULL;
+ char *pTestChars;
+ const char *pTestParam = "p";
+
+ /* if *str begins with a reserved header name, then we
+ shortcut and print the line without transformation */
+
+#ifdef __cplusplus
+ if (strncmp(reinterpret_cast<const char *>(const_cast<unsigned char *>(str)), kStarchBedHeaderTrack, strlen(kStarchBedHeaderTrack)) == 0)
+ fprintf(outFp, "%s\n", str);
+ else if (strncmp(reinterpret_cast<const char *>(const_cast<unsigned char *>(str)), kStarchBedHeaderBrowser, strlen(kStarchBedHeaderBrowser)) == 0)
+ fprintf(outFp, "%s\n", str);
+ else if (strncmp(reinterpret_cast<const char *>(const_cast<unsigned char *>(str)), kStarchBedHeaderSAM, strlen(kStarchBedHeaderSAM)) == 0)
+ fprintf(outFp, "%s\n", str);
+ else if (strncmp(reinterpret_cast<const char *>(const_cast<unsigned char *>(str)), kStarchBedHeaderVCF, strlen(kStarchBedHeaderVCF)) == 0)
+ fprintf(outFp, "%s\n", str);
+ else if (strncmp(reinterpret_cast<const char *>(const_cast<unsigned char *>(str)), kStarchBedGenericComment, strlen(kStarchBedGenericComment)) == 0)
+ fprintf(outFp, "%s\n", str);
+#else
+ if (strncmp((const char *) str, kStarchBedHeaderTrack, strlen(kStarchBedHeaderTrack)) == 0)
+ fprintf(outFp, "%s\n", str);
+ else if (strncmp((const char *) str, kStarchBedHeaderBrowser, strlen(kStarchBedHeaderBrowser)) == 0)
+ fprintf(outFp, "%s\n", str);
+ else if (strncmp((const char *) str, kStarchBedHeaderSAM, strlen(kStarchBedHeaderSAM)) == 0)
+ fprintf(outFp, "%s\n", str);
+ else if (strncmp((const char *) str, kStarchBedHeaderVCF, strlen(kStarchBedHeaderVCF)) == 0)
+ fprintf(outFp, "%s\n", str);
+ else if (strncmp((const char *) str, kStarchBedGenericComment, strlen(kStarchBedGenericComment)) == 0)
+ fprintf(outFp, "%s\n", str);
+#endif
+
+ /* otherwise, we transform *str back into printable tokens */
+
+ else if (UNSTARCH_createInverseTransformTokens(str, delim, elemTok1, elemTok2) == 0) {
+
+ if (elemTok2[0] != '\0') {
+ if (*lastEnd > 0) {
+#ifdef __cplusplus
+ *start = *lastEnd + static_cast<SignedCoordType>( strtoull(elemTok1, NULL, UNSTARCH_RADIX) );
+ *lastEnd = *start + *pLength;
+ fprintf(outFp, "%s\t%" PRId64 "\t%" PRId64 "\t%s\n", chr, static_cast<SignedCoordType>( *start ), static_cast<SignedCoordType>( *lastEnd ), elemTok2);
+#else
+ *start = *lastEnd + (SignedCoordType) strtoull(elemTok1, NULL, UNSTARCH_RADIX);
+ *lastEnd = *start + *pLength;
+ fprintf(outFp, "%s\t%" PRId64 "\t%" PRId64 "\t%s\n", chr, (SignedCoordType) *start, (SignedCoordType) *lastEnd, elemTok2);
+#endif
+ }
+ else {
+#ifdef __cplusplus
+ *lastEnd = static_cast<SignedCoordType>( strtoull(elemTok1, NULL, UNSTARCH_RADIX) ) + *pLength;
+ fprintf(outFp, "%s\t%" PRId64 "\t%" PRId64 "\t%s\n", chr, static_cast<SignedCoordType>( strtoull(elemTok1, NULL, UNSTARCH_RADIX) ), static_cast<SignedCoordType>( *lastEnd ), elemTok2);
+#else
+ *lastEnd = (SignedCoordType) strtoull(elemTok1, NULL, UNSTARCH_RADIX) + *pLength;
+ fprintf(outFp, "%s\t%" PRId64 "\t%" PRId64 "\t%s\n", chr, (SignedCoordType) strtoull(elemTok1, NULL, UNSTARCH_RADIX), (SignedCoordType) *lastEnd, elemTok2);
+#endif
+ }
+ }
+ else {
+ pTest = NULL;
+#ifdef __cplusplus
+ pTest = UNSTARCH_strnstr(reinterpret_cast<const char *>( elemTok1 ), pTestParam, 1);
+#else
+ pTest = UNSTARCH_strnstr((const char *)elemTok1, pTestParam, 1);
+#endif
+ if (pTest) {
+ pTestChars = NULL;
+#ifdef __cplusplus
+ pTestChars = static_cast<char *>( malloc(strlen(elemTok1)) );
+#else
+ pTestChars = malloc(strlen(elemTok1));
+#endif
+ strncpy(pTestChars, elemTok1 + 1, strlen(elemTok1));
+ if (!pTestChars)
+ return UNSTARCH_FATAL_ERROR;
+#ifdef __cplusplus
+ *pLength = static_cast<SignedCoordType>( strtoull(pTestChars, NULL, UNSTARCH_RADIX) );
+#else
+ *pLength = (SignedCoordType) strtoull(pTestChars, NULL, UNSTARCH_RADIX);
+#endif
+ free(pTestChars);
+ pTestChars = NULL;
+ }
+ else {
+#ifdef __cplusplus
+ *start = *lastEnd + static_cast<SignedCoordType>( strtoull(elemTok1, NULL, UNSTARCH_RADIX) );
+#else
+ *start = *lastEnd + (SignedCoordType) strtoull(elemTok1, NULL, UNSTARCH_RADIX);
+#endif
+ *lastEnd = *start + *pLength;
+ fprintf(outFp, "%s\t%" PRId64 "\t%" PRId64 "\n", chr, *start, *lastEnd);
+ }
+ }
+ }
+ else {
+ fprintf(stderr, "ERROR: Compressed data stream could not be transformed\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+
+ return 0;
+}
+
+int
+UNSTARCH_sReverseTransformInput(const char *chr, const unsigned char *str, char delim, SignedCoordType *start, SignedCoordType *pLength, SignedCoordType *lastEnd, char *elemTok1, char *elemTok2, char **currentChr, size_t *currentChrLen, SignedCoordType *currentStart, SignedCoordType *currentStop, char **currentRemainder, size_t *currentRemainderLen)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_sReverseTransformInput() ---\n");
+#endif
+ char *pTest = NULL;
+ char *pTestChars;
+ const char *pTestParam = "p";
+ char *currentChrCopy = NULL;
+ char *currentRemainderCopy = NULL;
+
+ /* if *str begins with a reserved header name, then we shortcut and print the line without transformation */
+
+ /*
+ TO-DO:
+ -- out[] needs to be copied to currentChr or similar
+ */
+
+ char out[1024];
+
+#ifdef __cplusplus
+ if (strncmp(reinterpret_cast<const char *>(const_cast<unsigned char *>(str)), kStarchBedHeaderTrack, strlen(kStarchBedHeaderTrack)) == 0)
+ sprintf(out, "%s\n", str);
+ else if (strncmp(reinterpret_cast<const char *>(const_cast<unsigned char *>(str)), kStarchBedHeaderBrowser, strlen(kStarchBedHeaderBrowser)) == 0)
+ sprintf(out, "%s\n", str);
+ else if (strncmp(reinterpret_cast<const char *>(const_cast<unsigned char *>(str)), kStarchBedHeaderSAM, strlen(kStarchBedHeaderSAM)) == 0)
+ sprintf(out, "%s\n", str);
+ else if (strncmp(reinterpret_cast<const char *>(const_cast<unsigned char *>(str)), kStarchBedHeaderVCF, strlen(kStarchBedHeaderVCF)) == 0)
+ sprintf(out, "%s\n", str);
+ else if (strncmp(reinterpret_cast<const char *>(const_cast<unsigned char *>(str)), kStarchBedGenericComment, strlen(kStarchBedGenericComment)) == 0)
+ sprintf(out, "%s\n", str);
+#else
+ if (strncmp((const char *) str, kStarchBedHeaderTrack, strlen(kStarchBedHeaderTrack)) == 0)
+ sprintf(out, "%s\n", str);
+ else if (strncmp((const char *) str, kStarchBedHeaderBrowser, strlen(kStarchBedHeaderBrowser)) == 0)
+ sprintf(out, "%s\n", str);
+ else if (strncmp((const char *) str, kStarchBedHeaderSAM, strlen(kStarchBedHeaderSAM)) == 0)
+ sprintf(out, "%s\n", str);
+ else if (strncmp((const char *) str, kStarchBedHeaderVCF, strlen(kStarchBedHeaderVCF)) == 0)
+ sprintf(out, "%s\n", str);
+ else if (strncmp((const char *) str, kStarchBedGenericComment, strlen(kStarchBedGenericComment)) == 0)
+ sprintf(out, "%s\n", str);
+#endif
+
+ /* otherwise, we transform *str back into printable tokens */
+
+ else if (UNSTARCH_createInverseTransformTokens(str, delim, elemTok1, elemTok2) == 0) {
+
+ if (elemTok2[0] != '\0') {
+ if (*lastEnd > 0) {
+#ifdef __cplusplus
+ *start = *lastEnd + static_cast<SignedCoordType>( strtoull(elemTok1, NULL, UNSTARCH_RADIX) );
+#else
+ *start = *lastEnd + (SignedCoordType) strtoull(elemTok1, NULL, UNSTARCH_RADIX);
+#endif
+ *lastEnd = *start + *pLength;
+ if (! *currentChr) {
+#ifdef __cplusplus
+ *currentChr = static_cast<char *>( malloc(strlen(chr) + 1) );
+#else
+ *currentChr = malloc(strlen(chr) + 1);
+#endif
+ *currentChrLen = strlen(chr) + 1;
+ }
+ else if ((strlen(chr) + 1) > *currentChrLen) {
+#ifdef __cplusplus
+ currentChrCopy = static_cast<char *>( realloc(*currentChr, strlen(chr) * 2) );
+#else
+ currentChrCopy = realloc(*currentChr, strlen(chr) * 2);
+#endif
+ if (!currentChrCopy) {
+ fprintf(stderr, "ERROR: Ran out of memory while extending chr token\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ *currentChr = currentChrCopy;
+ *currentChrLen = strlen(chr) * 2;
+ }
+ strncpy(*currentChr, chr, strlen(chr) + 1);
+ if (!*currentChr) {
+ fprintf(stderr, "ERROR: Current chromosome name could not be copied\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ *currentStart = *start;
+ *currentStop = *lastEnd;
+ if (! *currentRemainder) {
+#ifdef __cplusplus
+ *currentRemainder = static_cast<char *>( malloc(strlen(elemTok2) + 1) );
+#else
+ *currentRemainder = malloc(strlen(elemTok2) + 1);
+#endif
+ *currentRemainderLen = strlen(elemTok2) + 1;
+ }
+ else if ((strlen(elemTok2) + 1) > *currentRemainderLen) {
+#ifdef __cplusplus
+ currentRemainderCopy = static_cast<char *>( realloc(*currentRemainder, strlen(elemTok2) * 2) );
+#else
+ currentRemainderCopy = realloc(*currentRemainder, strlen(elemTok2) * 2);
+#endif
+ if (!currentRemainderCopy) {
+#ifdef __cplusplus
+ /* why can't c++ standardize on a format specifier for a simple std::size_t ? */
+ fprintf(stderr, "ERROR: Ran out of memory while extending remainder token (%" PRIu64 " | %" PRIu64 ")\n",
+ static_cast<uint64_t>(strlen(elemTok2)), static_cast<uint64_t>(*currentRemainderLen));
+#else
+ fprintf(stderr, "ERROR: Ran out of memory while extending remainder token (%zu | %zu)\n", strlen(elemTok2), *currentRemainderLen);
+#endif
+ return UNSTARCH_FATAL_ERROR;
+ }
+ *currentRemainder = currentRemainderCopy;
+ *currentRemainderLen = strlen(elemTok2) * 2;
+ }
+ strncpy(*currentRemainder, elemTok2, strlen(elemTok2) + 1);
+ if (!*currentRemainder) {
+ fprintf(stderr, "ERROR: Current remainder token could not be copied\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ }
+ else {
+#ifdef __cplusplus
+ *lastEnd = static_cast<SignedCoordType>( strtoull(elemTok1, NULL, UNSTARCH_RADIX) ) + *pLength;
+#else
+ *lastEnd = (SignedCoordType) strtoull(elemTok1, NULL, UNSTARCH_RADIX) + *pLength;
+#endif
+ if (! *currentChr) {
+#ifdef __cplusplus
+ *currentChr = static_cast<char *>( malloc(strlen(chr) + 1) );
+#else
+ *currentChr = malloc(strlen(chr) + 1);
+#endif
+ *currentChrLen = strlen(chr) + 1;
+ }
+ else if ((strlen(chr) + 1) > *currentChrLen) {
+#ifdef __cplusplus
+ currentChrCopy = static_cast<char *>( realloc(*currentChr, strlen(chr) * 2) );
+#else
+ currentChrCopy = realloc(*currentChr, strlen(chr) * 2);
+#endif
+ if (!currentChrCopy) {
+ fprintf(stderr, "ERROR: Ran out of memory while extending chr token\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ *currentChr = currentChrCopy;
+ *currentChrLen = strlen(chr) * 2;
+ }
+ strncpy(*currentChr, chr, strlen(chr) + 1);
+ if (!*currentChr) {
+ fprintf(stderr, "ERROR: Current chromosome name could not be copied\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+#ifdef __cplusplus
+ *currentStart = static_cast<int64_t>( strtoull(elemTok1, NULL, UNSTARCH_RADIX) );
+#else
+ *currentStart = (int64_t) strtoull(elemTok1, NULL, UNSTARCH_RADIX);
+#endif
+ *currentStop = *lastEnd;
+ if (! *currentRemainder) {
+#ifdef __cplusplus
+ *currentRemainder = static_cast<char *>( malloc(strlen(elemTok2) + 1) );
+#else
+ *currentRemainder = malloc(strlen(elemTok2) + 1);
+#endif
+ *currentRemainderLen = strlen(elemTok2) + 1;
+ }
+ else if ((strlen(elemTok2) + 1) > *currentRemainderLen) {
+#ifdef __cplusplus
+ currentRemainderCopy = static_cast<char *>( realloc(*currentRemainder, strlen(elemTok2) * 2) );
+#else
+ currentRemainderCopy = realloc(*currentRemainder, strlen(elemTok2) * 2);
+#endif
+ if (!currentRemainderCopy) {
+ fprintf(stderr, "ERROR: Ran out of memory while extending remainder token\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ *currentRemainder = currentRemainderCopy;
+ *currentRemainderLen = strlen(elemTok2) * 2;
+ }
+ strncpy(*currentRemainder, elemTok2, strlen(elemTok2) + 1);
+ if (!*currentRemainder) {
+ fprintf(stderr, "ERROR: Current remainder token could not be copied\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ }
+ }
+ else {
+ pTest = NULL;
+#ifdef __cplusplus
+ pTest = UNSTARCH_strnstr(reinterpret_cast<const char *>( elemTok1 ), pTestParam, 1);
+#else
+ pTest = UNSTARCH_strnstr((const char *)elemTok1, pTestParam, 1);
+#endif
+ if (pTest) {
+ pTestChars = NULL;
+#ifdef __cplusplus
+ pTestChars = static_cast<char *>( malloc(strlen(elemTok1)) );
+#else
+ pTestChars = malloc(strlen(elemTok1));
+#endif
+ strncpy(pTestChars, elemTok1 + 1, strlen(elemTok1));
+ if (!pTestChars)
+ return UNSTARCH_FATAL_ERROR;
+#ifdef __cplusplus
+ *pLength = static_cast<SignedCoordType>( strtoull(pTestChars, NULL, UNSTARCH_RADIX) );
+#else
+ *pLength = (SignedCoordType) strtoull(pTestChars, NULL, UNSTARCH_RADIX);
+#endif
+ free(pTestChars);
+ pTestChars = NULL;
+ }
+ else {
+#ifdef __cplusplus
+ *start = *lastEnd + static_cast<SignedCoordType>( strtoull(elemTok1, NULL, UNSTARCH_RADIX) );
+#else
+ *start = *lastEnd + (SignedCoordType) strtoull(elemTok1, NULL, UNSTARCH_RADIX);
+#endif
+ *lastEnd = *start + *pLength;
+ if (! *currentChr) {
+#ifdef __cplusplus
+ *currentChr = static_cast<char *>( malloc(strlen(chr) + 1) );
+#else
+ *currentChr = malloc(strlen(chr) + 1);
+#endif
+ *currentChrLen = strlen(chr) + 1;
+ }
+ else if ((strlen(chr) + 1) > *currentChrLen) {
+#ifdef __cplusplus
+ currentChrCopy = static_cast<char *>( realloc(*currentChr, strlen(chr) * 2) );
+#else
+ currentChrCopy = realloc(*currentChr, strlen(chr) * 2);
+#endif
+ if (!currentChrCopy) {
+ fprintf(stderr, "ERROR: Ran out of memory while extending chr token\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ *currentChr = currentChrCopy;
+ *currentChrLen = strlen(chr) * 2;
+ }
+ strncpy(*currentChr, chr, strlen(chr) + 1);
+ if (!*currentChr) {
+ fprintf(stderr, "ERROR: Current chromosome name could not be copied\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ *currentStart = *start;
+ *currentStop = *lastEnd;
+ }
+ }
+ }
+ else {
+ fprintf(stderr, "ERROR: Compressed data stream could not be transformed\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+
+ return 0;
+}
+
+int
+UNSTARCH_reverseTransformIgnoringHeaderedInput(const char *chr, const unsigned char *str, char delim, SignedCoordType *start, SignedCoordType *pLength, SignedCoordType *lastEnd, char *elemTok1, char *elemTok2, FILE *outFp)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_reverseTransformIgnoringHeaderedInput() ---\n");
+#endif
+ char *pTest = NULL;
+ char *pTestChars;
+ const char *pTestParam = "p";
+
+ /* if *str begins with a reserved header name, then we
+ shortcut and do nothing */
+
+#ifdef __cplusplus
+ if (strncmp(reinterpret_cast<const char *>(const_cast<unsigned char *>(str)), kStarchBedHeaderTrack, strlen(kStarchBedHeaderTrack)) == 0)
+ ;
+ else if (strncmp(reinterpret_cast<const char *>(const_cast<unsigned char *>(str)), kStarchBedHeaderBrowser, strlen(kStarchBedHeaderBrowser)) == 0)
+ ;
+ else if (strncmp(reinterpret_cast<const char *>(const_cast<unsigned char *>(str)), kStarchBedHeaderSAM, strlen(kStarchBedHeaderSAM)) == 0)
+ ;
+ else if (strncmp(reinterpret_cast<const char *>(const_cast<unsigned char *>(str)), kStarchBedHeaderVCF, strlen(kStarchBedHeaderVCF)) == 0)
+ ;
+ else if (strncmp(reinterpret_cast<const char *>(const_cast<unsigned char *>(str)), kStarchBedGenericComment, strlen(kStarchBedGenericComment)) == 0)
+ ;
+#else
+ if (strncmp((const char *) str, kStarchBedHeaderTrack, strlen(kStarchBedHeaderTrack)) == 0)
+ ;
+ else if (strncmp((const char *) str, kStarchBedHeaderBrowser, strlen(kStarchBedHeaderBrowser)) == 0)
+ ;
+ else if (strncmp((const char *) str, kStarchBedHeaderSAM, strlen(kStarchBedHeaderSAM)) == 0)
+ ;
+ else if (strncmp((const char *) str, kStarchBedHeaderVCF, strlen(kStarchBedHeaderVCF)) == 0)
+ ;
+ else if (strncmp((const char *) str, kStarchBedGenericComment, strlen(kStarchBedGenericComment)) == 0)
+ ;
+#endif
+
+ /* otherwise, we transform *str back into printable tokens */
+
+ else if (UNSTARCH_createInverseTransformTokens(str, delim, elemTok1, elemTok2) == 0) {
+
+ if (elemTok2[0] != '\0') {
+ if (*lastEnd > 0) {
+#ifdef __cplusplus
+ *start = *lastEnd + static_cast<SignedCoordType>( strtoull(elemTok1, NULL, UNSTARCH_RADIX) );
+#else
+ *start = *lastEnd + (SignedCoordType) strtoull(elemTok1, NULL, UNSTARCH_RADIX);
+#endif
+ *lastEnd = *start + *pLength;
+ fprintf(outFp, "%s\t%" PRId64 "\t%" PRId64 "\t%s\n", chr, *start, *lastEnd, elemTok2);
+ }
+ else {
+#ifdef __cplusplus
+ *lastEnd = static_cast<SignedCoordType>( strtoull(elemTok1, NULL, UNSTARCH_RADIX) ) + *pLength;
+ fprintf(outFp, "%s\t%" PRId64 "\t%" PRId64 "\t%s\n", chr, static_cast<SignedCoordType>( strtoull(elemTok1, NULL, UNSTARCH_RADIX) ), *lastEnd, elemTok2);
+#else
+ *lastEnd = (SignedCoordType) strtoull(elemTok1, NULL, UNSTARCH_RADIX) + *pLength;
+ fprintf(outFp, "%s\t%" PRId64 "\t%" PRId64 "\t%s\n", chr, (SignedCoordType) strtoull(elemTok1, NULL, UNSTARCH_RADIX), *lastEnd, elemTok2);
+#endif
+ }
+ }
+ else {
+ pTest = NULL;
+#ifdef __cplusplus
+ pTest = UNSTARCH_strnstr(reinterpret_cast<const char *>(elemTok1), pTestParam, 1);
+#else
+ pTest = UNSTARCH_strnstr((const char *)elemTok1, pTestParam, 1);
+#endif
+ if (pTest) {
+ pTestChars = NULL;
+#ifdef __cplusplus
+ pTestChars = static_cast<char *>( malloc(strlen(elemTok1)) );
+#else
+ pTestChars = malloc(strlen(elemTok1));
+#endif
+ strncpy(pTestChars, elemTok1 + 1, strlen(elemTok1));
+ if (!pTestChars)
+ return UNSTARCH_FATAL_ERROR;
+#ifdef __cplusplus
+ *pLength = static_cast<SignedCoordType>( strtoull(pTestChars, NULL, UNSTARCH_RADIX) );
+#else
+ *pLength = (SignedCoordType) strtoull(pTestChars, NULL, UNSTARCH_RADIX);
+#endif
+ free(pTestChars);
+ pTestChars = NULL;
+ }
+ else {
+#ifdef __cplusplus
+ *start = *lastEnd + static_cast<SignedCoordType>( strtoull(elemTok1, NULL, UNSTARCH_RADIX) );
+#else
+ *start = *lastEnd + (SignedCoordType) strtoull(elemTok1, NULL, UNSTARCH_RADIX);
+#endif
+ *lastEnd = *start + *pLength;
+ fprintf(outFp, "%s\t%" PRId64 "\t%" PRId64 "\n", chr, *start, *lastEnd);
+ }
+ }
+ }
+ else {
+ fprintf(stderr, "ERROR: Compressed data stream could not be transformed\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+
+ return 0;
+}
+
+int
+UNSTARCH_sReverseTransformIgnoringHeaderedInput(const char *chr, const unsigned char *str, char delim, SignedCoordType *start, SignedCoordType *pLength, SignedCoordType *lastEnd, char *elemTok1, char *elemTok2, char **currentChr, size_t *currentChrLen, SignedCoordType *currentStart, SignedCoordType *currentStop, char **currentRemainder, size_t *currentRemainderLen)
+{
+#ifdef DEBUG
+
+ fprintf(stderr, "\n--- UNSTARCH_sReverseTransformIgnoringHeaderedInput() ---\n");
+ /*
+ fprintf(stderr, "\tchr -> %s\n", chr);
+ fprintf(stderr, "\tstr -> %s\n", str);
+ fprintf(stderr, "\tdelim -> %c\n", delim);
+ fprintf(stderr, "\tstart -> %" PRId64 "\n", *start);
+ fprintf(stderr, "\tpLength -> %" PRId64 "\n", *pLength);
+ fprintf(stderr, "\tlastEnd -> %" PRId64 "\n", *lastEnd);
+ fprintf(stderr, "\telemTok1 -> %s\n", elemTok1);
+ fprintf(stderr, "\telemTok2 -> %s\n", elemTok2);
+ fprintf(stderr, "\tcurrentChr -> %s\n", *currentChr);
+ fprintf(stderr, "\tcurrentChrLen -> %zu\n", *currentChrLen);
+ fprintf(stderr, "\tcurrentStart -> %" PRId64 "\n", *currentStart);
+ fprintf(stderr, "\tcurrentStop -> %" PRId64 "\n", *currentStop);
+ fprintf(stderr, "\tcurrentRemainder -> %s\n", *currentRemainder);
+ fprintf(stderr, "\tcurrentRemainderLen -> %zu\n", *currentRemainderLen);
+ */
+#endif
+ char pTestChars[MAX_DEC_INTEGERS] = {0};
+ char *currentChrCopy = NULL;
+ char *currentRemainderCopy = NULL;
+
+ /* if *str begins with a reserved header name, then we shortcut */
+
+ /* fprintf(stdout, "UNSTARCH_sReverseTransformIgnoringHeaderedInput - str: %s\n", str); */
+
+#ifdef __cplusplus
+ if (strncmp(reinterpret_cast<const char *>(const_cast<unsigned char *>(str)), kStarchBedHeaderTrack, strlen(kStarchBedHeaderTrack)) == 0)
+ return -1;
+ else if (strncmp(reinterpret_cast<const char *>(const_cast<unsigned char *>(str)), kStarchBedHeaderBrowser, strlen(kStarchBedHeaderBrowser)) == 0)
+ return -1;
+ else if (strncmp(reinterpret_cast<const char *>(const_cast<unsigned char *>(str)), kStarchBedHeaderSAM, strlen(kStarchBedHeaderSAM)) == 0)
+ return -1;
+ else if (strncmp(reinterpret_cast<const char *>(const_cast<unsigned char *>(str)), kStarchBedHeaderVCF, strlen(kStarchBedHeaderVCF)) == 0)
+ return -1;
+ else if (strncmp(reinterpret_cast<const char *>(const_cast<unsigned char *>(str)), kStarchBedGenericComment, strlen(kStarchBedGenericComment)) == 0)
+ return -1;
+#else
+ if (strncmp((const char *) str, kStarchBedHeaderTrack, strlen(kStarchBedHeaderTrack)) == 0)
+ return -1;
+ else if (strncmp((const char *) str, kStarchBedHeaderBrowser, strlen(kStarchBedHeaderBrowser)) == 0)
+ return -1;
+ else if (strncmp((const char *) str, kStarchBedHeaderSAM, strlen(kStarchBedHeaderSAM)) == 0)
+ return -1;
+ else if (strncmp((const char *) str, kStarchBedHeaderVCF, strlen(kStarchBedHeaderVCF)) == 0)
+ return -1;
+ else if (strncmp((const char *) str, kStarchBedGenericComment, strlen(kStarchBedGenericComment)) == 0)
+ return -1;
+#endif
+
+ /* otherwise, we transform *str back into printable tokens */
+
+ else if (UNSTARCH_createInverseTransformTokens(str, delim, elemTok1, elemTok2) == 0) {
+
+ if (elemTok2[0] != '\0') {
+ if (*lastEnd > 0) {
+#ifdef __cplusplus
+ *start = *lastEnd + static_cast<SignedCoordType>( strtoull(elemTok1, NULL, UNSTARCH_RADIX) );
+#else
+ *start = *lastEnd + (SignedCoordType) strtoull(elemTok1, NULL, UNSTARCH_RADIX);
+#endif
+ *lastEnd = *start + *pLength;
+#ifdef DEBUG
+ fprintf(stderr, "A: %s\t%" PRId64 "\t%" PRId64 "\t%s\n", chr, *start, *lastEnd, elemTok2);
+#endif
+ if (! *currentChr) {
+#ifdef __cplusplus
+ *currentChr = static_cast<char *>( malloc(strlen(chr) + 1) );
+#else
+ *currentChr = malloc(strlen(chr) + 1);
+#endif
+ *currentChrLen = strlen(chr) + 1;
+ }
+ else if ((strlen(chr) + 1) > *currentChrLen) {
+#ifdef __cplusplus
+ currentChrCopy = static_cast<char *>( realloc(*currentChr, strlen(chr) * 2) );
+#else
+ currentChrCopy = realloc(*currentChr, strlen(chr) * 2);
+#endif
+ if (!currentChrCopy) {
+ fprintf(stderr, "ERROR: Ran out of memory while extending chr token\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ *currentChr = currentChrCopy;
+ *currentChrLen = strlen(chr) * 2;
+ }
+ strncpy(*currentChr, chr, strlen(chr) + 1);
+ if (!*currentChr) {
+ fprintf(stderr, "ERROR: Current chromosome name is not set\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ *currentStart = *start;
+ *currentStop = *lastEnd;
+ if (! *currentRemainder) {
+#ifdef __cplusplus
+ *currentRemainder = static_cast<char *>( malloc(strlen(elemTok2) + 1) );
+#else
+ *currentRemainder = malloc(strlen(elemTok2) + 1);
+#endif
+ *currentRemainderLen = strlen(elemTok2) + 1;
+ }
+ else if ((strlen(elemTok2) + 1) > *currentRemainderLen) {
+#ifdef __cplusplus
+ currentRemainderCopy = static_cast<char *>( realloc(*currentRemainder, strlen(elemTok2) * 2) );
+#else
+ currentRemainderCopy = realloc(*currentRemainder, strlen(elemTok2) * 2);
+#endif
+ if (!currentRemainderCopy) {
+ fprintf(stderr, "ERROR: Ran out of memory while extending remainder token\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ *currentRemainder = currentRemainderCopy;
+ *currentRemainderLen = strlen(elemTok2) * 2;
+ }
+ if (strlen(elemTok2) >= *currentRemainderLen) {
+ fprintf(stderr, "ERROR: Current remainder token not long enough!\n");
+ exit(-1);
+ }
+#ifdef DEBUG
+ /*
+ fprintf(stderr, "BEFORE currentRemainder -> [%s]\n", *currentRemainder);
+ fprintf(stderr, "BEFORE elemTok2 -> [%s]\n", elemTok2);
+ */
+#endif
+ strncpy(*currentRemainder, elemTok2, strlen(elemTok2) + 1);
+#ifdef DEBUG
+ /*
+ fprintf(stderr, "AFTER currentRemainder -> [%s]\n", *currentRemainder);
+ fprintf(stderr, "AFTER elemTok2 -> [%s]\n", elemTok2);
+ */
+#endif
+ if (!*currentRemainder) {
+ fprintf(stderr, "ERROR: Current remainder token could not be copied\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ }
+ else {
+#ifdef __cplusplus
+ *lastEnd = static_cast<SignedCoordType>( strtoull(elemTok1, NULL, UNSTARCH_RADIX) ) + *pLength;
+#else
+ *lastEnd = (SignedCoordType) strtoull(elemTok1, NULL, UNSTARCH_RADIX) + *pLength;
+#endif
+#ifdef DEBUG
+ /* fprintf(stderr, "B: %s\t%" PRId64 "\t%" PRId64 "\t%s\n", chr, (int64_t) strtoull(elemTok1, NULL, UNSTARCH_RADIX), *lastEnd, elemTok2); */
+#endif
+ if (! *currentChr) {
+#ifdef __cplusplus
+ *currentChr = static_cast<char *>( malloc(strlen(chr) + 1) );
+#else
+ *currentChr = (char *) malloc(strlen(chr) + 1);
+#endif
+ *currentChrLen = strlen(chr) + 1;
+ }
+ else if (strlen(chr) > *currentChrLen) {
+#ifdef __cplusplus
+ currentChrCopy = static_cast<char *>( realloc(*currentChr, strlen(chr) * 2) );
+#else
+ currentChrCopy = realloc(*currentChr, strlen(chr) * 2);
+#endif
+ if (!currentChrCopy) {
+ fprintf(stderr, "ERROR: Ran out of memory while extending chr token\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ *currentChr = currentChrCopy;
+ *currentChrLen = strlen(chr) * 2;
+ }
+ /* strncpy(*currentChr, chr, strlen(chr) + 1); */
+ if (! *currentChr) {
+ fprintf(stderr, "ERROR: Current chromosome name could not be copied\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+#ifdef __cplusplus
+ *currentStart = static_cast<SignedCoordType>( strtoull(elemTok1, NULL, UNSTARCH_RADIX) );
+#else
+ *currentStart = (SignedCoordType) strtoull(elemTok1, NULL, UNSTARCH_RADIX);
+#endif
+ *currentStop = *lastEnd;
+ if (! *currentRemainder) {
+#ifdef __cplusplus
+ *currentRemainder = static_cast<char *>( malloc(strlen(elemTok2) + 1) );
+#else
+ *currentRemainder = malloc(strlen(elemTok2) + 1);
+#endif
+ *currentRemainderLen = strlen(elemTok2) + 1;
+ }
+ else if ((strlen(elemTok2) + 1) > *currentRemainderLen) {
+#ifdef __cplusplus
+ currentRemainderCopy = static_cast<char *>( realloc(*currentRemainder, strlen(elemTok2) * 2) );
+#else
+ currentRemainderCopy = realloc(*currentRemainder, strlen(elemTok2) * 2);
+#endif
+ if (!currentRemainderCopy) {
+ fprintf(stderr, "ERROR: Ran out of memory while extending remainder token\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ *currentRemainder = currentRemainderCopy;
+ *currentRemainderLen = strlen(elemTok2) * 2;
+ }
+ strncpy(*currentRemainder, elemTok2, strlen(elemTok2) + 1);
+ if (!*currentRemainder) {
+ fprintf(stderr, "ERROR: Current remainder token could not be copied\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ }
+ }
+ else {
+ if (! *currentChr) {
+#ifdef __cplusplus
+ *currentChr = static_cast<char *>( malloc(strlen(chr) + 1) );
+#else
+ *currentChr = malloc(strlen(chr) + 1);
+#endif
+ if (! *currentChr) {
+ fprintf(stderr, "ERROR: Ran out of memory while allocating chr token\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ *currentChrLen = strlen(chr) + 1;
+ }
+ else if ((strlen(chr) + 1) > *currentChrLen) {
+#ifdef __cplusplus
+ currentChrCopy = static_cast<char *>( realloc(*currentChr, strlen(chr) * 2) );
+#else
+ currentChrCopy = realloc(*currentChr, strlen(chr) * 2);
+#endif
+ if (!currentChrCopy) {
+ fprintf(stderr, "ERROR: Ran out of memory while extending chr token\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ *currentChr = currentChrCopy;
+ *currentChrLen = strlen(chr) * 2;
+ }
+ strncpy(*currentChr, chr, strlen(chr) + 1);
+ if (! *currentChr) {
+ fprintf(stderr, "ERROR: Current chromosome name could not be copied\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+
+ if (elemTok1[0] == 'p') {
+ strncpy(pTestChars, elemTok1 + 1, strlen(elemTok1));
+#ifdef __cplusplus
+ *pLength = static_cast<SignedCoordType>( strtoull(pTestChars, NULL, UNSTARCH_RADIX) );
+#else
+ *pLength = (SignedCoordType) strtoull(pTestChars, NULL, UNSTARCH_RADIX);
+#endif
+ }
+ else {
+#ifdef __cplusplus
+ *start = *lastEnd + static_cast<SignedCoordType>( strtoull(elemTok1, NULL, UNSTARCH_RADIX) );
+#else
+ *start = *lastEnd + (SignedCoordType) strtoull(elemTok1, NULL, UNSTARCH_RADIX);
+#endif
+ *lastEnd = *start + *pLength;
+#ifdef DEBUG
+ /* fprintf(stderr, "D: %s\t%" PRId64 "\t%" PRId64 "\n", chr, *start, *lastEnd); */
+#endif
+ *currentStart = *start;
+ *currentStop = *lastEnd;
+ }
+ }
+ }
+ else {
+ fprintf(stderr, "ERROR: Compressed data stream could not be transformed\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+
+#ifdef DEBUG
+ /* fprintf(stderr, "\n--- leaving UNSTARCH_sReverseTransformIgnoringHeaderedInput() ---\n"); */
+#endif
+
+ return 0;
+}
+
+int
+UNSTARCH_reverseTransformHeaderlessInput(const char *chr, const unsigned char *str, char delim, SignedCoordType *start, SignedCoordType *pLength, SignedCoordType *lastEnd, char *elemTok1, char *elemTok2, FILE *outFp)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_reverseTransformHeaderlessInput() ---\n");
+ fprintf(stderr, "\n--- str : [%s] \n", str);
+ fprintf(stderr, "\n--- delim : [%c]\n", delim);
+ fprintf(stderr, "\n--- elemTok1 : [%s]\n", elemTok1);
+ fprintf(stderr, "\n--- elemTok2 : [%s]\n", elemTok2);
+#endif
+ char *pTest = NULL;
+ char *pTestChars;
+ const char *pTestParam = "p";
+
+ if (UNSTARCH_createInverseTransformTokens(str, delim, elemTok1, elemTok2) == 0)
+ {
+ if (elemTok2[0] != '\0') {
+ if (*lastEnd > 0) {
+#ifdef __cplusplus
+ *start = *lastEnd + static_cast<SignedCoordType>( strtoull(elemTok1, NULL, UNSTARCH_RADIX) );
+#else
+ *start = *lastEnd + (SignedCoordType) strtoull(elemTok1, NULL, UNSTARCH_RADIX);
+#endif
+ *lastEnd = *start + *pLength;
+ fprintf(outFp, "%s\t%" PRId64 "\t%" PRId64 "\t%s\n", chr, *start, *lastEnd, elemTok2);
+ }
+ else {
+#ifdef __cplusplus
+ *lastEnd = static_cast<SignedCoordType>( strtoull(elemTok1, NULL, UNSTARCH_RADIX) ) + *pLength;
+ fprintf(outFp, "%s\t%" PRId64 "\t%" PRId64 "\t%s\n", chr, static_cast<SignedCoordType>( strtoull(elemTok1, NULL, UNSTARCH_RADIX) ), *lastEnd, elemTok2);
+#else
+ *lastEnd = (SignedCoordType) strtoull(elemTok1, NULL, UNSTARCH_RADIX) + *pLength;
+ fprintf(outFp, "%s\t%" PRId64 "\t%" PRId64 "\t%s\n", chr, (SignedCoordType) strtoull(elemTok1, NULL, UNSTARCH_RADIX), *lastEnd, elemTok2);
+#endif
+ }
+ }
+ else {
+ pTest = NULL;
+#ifdef __cplusplus
+ pTest = UNSTARCH_strnstr(reinterpret_cast<const char *>( elemTok1 ), pTestParam, 1);
+#else
+ pTest = UNSTARCH_strnstr((const char *)elemTok1, pTestParam, 1);
+#endif
+ if (pTest) {
+ pTestChars = NULL;
+#ifdef __cplusplus
+ pTestChars = static_cast<char *>( malloc(strlen(elemTok1)) );
+#else
+ pTestChars = malloc(strlen(elemTok1));
+#endif
+ strncpy(pTestChars, elemTok1 + 1, strlen(elemTok1));
+ if (!pTestChars)
+ return UNSTARCH_FATAL_ERROR;
+#ifdef __cplusplus
+ *pLength = static_cast<SignedCoordType>( strtoull(pTestChars, NULL, UNSTARCH_RADIX) );
+#else
+ *pLength = (SignedCoordType) strtoull(pTestChars, NULL, UNSTARCH_RADIX);
+#endif
+ free(pTestChars);
+ pTestChars = NULL;
+ }
+ else {
+#ifdef __cplusplus
+ *start = *lastEnd + static_cast<SignedCoordType>( strtoull(elemTok1, NULL, UNSTARCH_RADIX) );
+#else
+ *start = *lastEnd + (SignedCoordType) strtoull(elemTok1, NULL, UNSTARCH_RADIX);
+#endif
+ *lastEnd = *start + *pLength;
+ fprintf(outFp, "%s\t%" PRId64 "\t%" PRId64 "\n", chr, *start, *lastEnd);
+ }
+ }
+ }
+ else {
+ fprintf(stderr, "ERROR: Data stream could not be transformed\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+
+ return 0;
+}
+
+int
+UNSTARCH_extractRawLine(const char *chr, const unsigned char *str, char delim, SignedCoordType *start, SignedCoordType *pLength, SignedCoordType *lastEnd, char *elemTok1, char *elemTok2, char **currentChr, size_t *currentChrLen, SignedCoordType *currentStart, SignedCoordType *currentStop, char **currentRemainder, size_t *currentRemainderLen)
+{
+ /*
+ UNSTARCH_extractRawLine() takes in a buffer of post-transform BED data (which
+ could come from a bzip2 or gzip stream that gets extracted from a starch file)
+ and reverse transforms portions of a BED element to several variables passed
+ in by pointers.
+
+ The following variables are "read-only" inputs:
+
+ char *chr -> chromosome (obtained from metadata record)
+ unsigned char *str -> buffer containing post-transform data to reverse transform
+ char delim -> field delimiter (shoud usually be a tab character)
+
+ The *str value should be a single line of data extracted from a bzip2- or gzip-compressed
+ chromosome stream. In other words, extract data from the stream into a buffer, scan through
+ until a newline is found, and then run this function on the post-transform line.
+
+ Other variables are populated as the extraction is perfomed. The following variables
+ are probably useful for reconstructing the original BED data:
+
+ char **currentChr -> chromosome
+ int64_t *currentStart -> start position
+ int64_t *currentStop -> stop position
+ char **currentRemainder -> rest of BED element (NULL, if not available)
+
+ After running UNSTARCH_extractRawLine(), these variables can be used to rebuild
+ a BED element.
+
+ While the code below calls this function repeatedly, this is done to ensure that
+ we apply the reverse transformation steps correctly and move the calculation state and
+ value cursor forvarts.
+ */
+
+#ifdef DEBUG
+ /* fprintf(stderr, "\n--- UNSTARCH_extractRawLine() ---\n"); */
+ /* fprintf(stderr, "\tstr -> %s\nstart -> %" PRId64 "\n---\n", str, *start); */
+#endif
+ int res;
+
+ do {
+ /* res = UNSTARCH_sReverseTransformIgnoringHeaderedInput(chr, str, delim, &(*start), &(*pLength), &(*lastEnd), elemTok1, elemTok2, currentChr, &(*currentChrLen), &(*currentStart), &(*currentStop), &(*currentRemainder), &(*currentRemainderLen)); */
+ res = UNSTARCH_sReverseTransformIgnoringHeaderedInput(chr, str, delim, start, pLength, lastEnd, elemTok1, elemTok2, currentChr, currentChrLen, currentStart, currentStop, currentRemainder, currentRemainderLen);
+#ifdef DEBUG
+ /*
+ fprintf(stderr, "\tintermediate start (A) -> %" PRId64 "\n", *start);
+ fprintf(stderr, "\tintermediate pLength (A) -> %" PRId64 "\n", *pLength);
+ fprintf(stderr, "\tintermediate lastEnd (A) -> %" PRId64 "\n", *lastEnd);
+ */
+#endif
+ if (res != 0)
+ res = UNSTARCH_sReverseTransformIgnoringHeaderedInput(chr, str, delim, &(*start), &(*pLength), &(*lastEnd), elemTok1, elemTok2, currentChr, &(*currentChrLen), &(*currentStart), &(*currentStop), &(*currentRemainder), &(*currentRemainderLen));
+
+#ifdef DEBUG
+ /*
+ fprintf(stderr, "\tintermediate start (B) -> %" PRId64 "\n", *start);
+ fprintf(stderr, "\tintermediate pLength (B) -> %" PRId64 "\n", *pLength);
+ fprintf(stderr, "\tintermediate lastEnd (B) -> %" PRId64 "\n", *lastEnd);
+ */
+#endif
+ /* res = UNSTARCH_sReverseTransformIgnoringHeaderedInput(chr, str, delim, start, pLength, lastEnd, elemTok1, elemTok2, currentChr, currentChrLen, currentStart, currentStop, currentRemainder, currentRemainderLen); */
+ } while (res != 0);
+
+ if (str[0] == 'p') {
+ res = UNSTARCH_sReverseTransformIgnoringHeaderedInput(chr, str, delim, &(*start), &(*pLength), &(*lastEnd), elemTok1, elemTok2, currentChr, &(*currentChrLen), &(*currentStart), &(*currentStop), &(*currentRemainder), &(*currentRemainderLen));
+#ifdef DEBUG
+ /*
+ fprintf(stderr, "\tintermediate start (C) -> %" PRId64 "\n", *start);
+ fprintf(stderr, "\tintermediate pLength (C) -> %" PRId64 "\n", *pLength);
+ fprintf(stderr, "\tintermediate lastEnd (C) -> %" PRId64 "\n", *lastEnd);
+ */
+#endif
+ }
+
+ /* res = UNSTARCH_sReverseTransformIgnoringHeaderedInput(chr, str, delim, start, pLength, lastEnd, elemTok1, elemTok2, currentChr, currentChrLen, currentStart, currentStop, currentRemainder, currentRemainderLen); */
+
+ return 0;
+}
+
+int
+UNSTARCH_sReverseTransformHeaderlessInput(const char *chr, const unsigned char *str, char delim, SignedCoordType *start, SignedCoordType *pLength, SignedCoordType *lastEnd, char *elemTok1, char *elemTok2, char **currentChr, size_t *currentChrLen, SignedCoordType *currentStart, SignedCoordType *currentStop, char **currentRemainder, size_t *currentRemainderLen)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_sReverseTransformHeaderlessInput() ---\n");
+#endif
+ char *pTest = NULL;
+ char *pTestChars;
+ const char *pTestParam = "p";
+ char *currentChrCopy = NULL;
+ char *currentRemainderCopy = NULL;
+
+ if (UNSTARCH_createInverseTransformTokens(str, delim, elemTok1, elemTok2) == 0)
+ {
+ if (elemTok2[0] != '\0') {
+ if (*lastEnd > 0) {
+#ifdef __cplusplus
+ *start = *lastEnd + static_cast<SignedCoordType>( strtoull(elemTok1, NULL, UNSTARCH_RADIX) );
+#else
+ *start = *lastEnd + (SignedCoordType) strtoull(elemTok1, NULL, UNSTARCH_RADIX);
+#endif
+ *lastEnd = *start + *pLength;
+ //sprintf(out, "%s\t%lld\t%lld\t%s\n", chr, *start, *lastEnd, elemTok2);
+ if (! *currentChr) {
+#ifdef __cplusplus
+ *currentChr = static_cast<char *>( malloc(strlen(chr) + 1) );
+#else
+ *currentChr = malloc(strlen(chr) + 1);
+#endif
+ *currentChrLen = strlen(chr) + 1;
+ }
+ else if ((strlen(chr) + 1) > *currentChrLen) {
+#ifdef __cplusplus
+ currentChrCopy = static_cast<char *>( realloc(*currentChr, strlen(chr) * 2) );
+#else
+ currentChrCopy = realloc(*currentChr, strlen(chr) * 2);
+#endif
+ if (!currentChrCopy) {
+ fprintf(stderr, "ERROR: Ran out of memory while extending chr token\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ *currentChr = currentChrCopy;
+ *currentChrLen = strlen(chr) * 2;
+ }
+ strncpy(*currentChr, chr, strlen(chr) + 1);
+ if (!*currentChr) {
+ fprintf(stderr, "ERROR: Current chromosome name could not be copied\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ *currentStart = *start;
+ *currentStop = *lastEnd;
+ if (! *currentRemainder) {
+#ifdef __cplusplus
+ *currentRemainder = static_cast<char *>( malloc(strlen(elemTok2) + 1) );
+#else
+ *currentRemainder = malloc(strlen(elemTok2) + 1);
+#endif
+ *currentRemainderLen = strlen(elemTok2) + 1;
+ }
+ else if ((strlen(elemTok2) + 1) > *currentRemainderLen) {
+#ifdef __cplusplus
+ currentRemainderCopy = static_cast<char *>( realloc(*currentRemainder, strlen(elemTok2) * 2) );
+#else
+ currentRemainderCopy = realloc(*currentRemainder, strlen(elemTok2) * 2);
+#endif
+ if (!currentRemainderCopy) {
+ fprintf(stderr, "ERROR: Ran out of memory while extending remainder token\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ *currentRemainder = currentRemainderCopy;
+ *currentRemainderLen = strlen(elemTok2) * 2;
+ }
+ strncpy(*currentRemainder, elemTok2, strlen(elemTok2) + 1);
+ if (!*currentRemainder) {
+ fprintf(stderr, "ERROR: Current remainder token could not be copied\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ }
+ else {
+#ifdef __cplusplus
+ *lastEnd = static_cast<SignedCoordType>( strtoull(elemTok1, NULL, UNSTARCH_RADIX) ) + *pLength;
+#else
+ *lastEnd = (SignedCoordType) strtoull(elemTok1, NULL, UNSTARCH_RADIX) + *pLength;
+#endif
+ //sprintf(out, "%s\t%lld\t%lld\t%s\n", chr, (int64_t) strtoull(elemTok1, NULL, UNSTARCH_RADIX), *lastEnd, elemTok2);
+ if (! *currentChr) {
+#ifdef __cplusplus
+ *currentChr = static_cast<char *>( malloc(strlen(chr) + 1) );
+#else
+ *currentChr = malloc(strlen(chr) + 1);
+#endif
+ *currentChrLen = strlen(chr) + 1;
+ }
+ else if ((strlen(chr) + 1) > *currentChrLen) {
+#ifdef __cplusplus
+ currentChrCopy = static_cast<char *>( realloc(*currentChr, strlen(chr) * 2) );
+#else
+ currentChrCopy = realloc(*currentChr, strlen(chr) * 2);
+#endif
+ if (!currentChrCopy) {
+ fprintf(stderr, "ERROR: Ran out of memory while extending chr token\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ *currentChr = currentChrCopy;
+ *currentChrLen = strlen(chr) * 2;
+ }
+ strncpy(*currentChr, chr, strlen(chr) + 1);
+ if (!*currentChr) {
+ fprintf(stderr, "ERROR: Current chromosome name could not be copied\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+#ifdef __cplusplus
+ *currentStart = static_cast<SignedCoordType>( strtoull(elemTok1, NULL, UNSTARCH_RADIX) );
+#else
+ *currentStart = (SignedCoordType) strtoull(elemTok1, NULL, UNSTARCH_RADIX);
+#endif
+ *currentStop = *lastEnd;
+ if (! *currentRemainder) {
+#ifdef __cplusplus
+ *currentRemainder = static_cast<char *>( malloc(strlen(elemTok2) + 1) );
+#else
+ *currentRemainder = malloc(strlen(elemTok2) + 1);
+#endif
+ *currentRemainderLen = strlen(elemTok2) + 1;
+ }
+ else if ((strlen(elemTok2) + 1) > *currentRemainderLen) {
+#ifdef __cplusplus
+ currentRemainderCopy = static_cast<char *>( realloc(*currentRemainder, strlen(elemTok2) * 2) );
+#else
+ currentRemainderCopy = realloc(*currentRemainder, strlen(elemTok2) * 2);
+#endif
+ if (!currentRemainderCopy) {
+ fprintf(stderr, "ERROR: Ran out of memory while extending remainder token\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ *currentRemainder = currentRemainderCopy;
+ *currentRemainderLen = strlen(elemTok2) * 2;
+ }
+ strncpy(*currentRemainder, elemTok2, strlen(elemTok2) + 1);
+ if (!*currentRemainder) {
+ fprintf(stderr, "ERROR: Current remainder token could not be copied\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ }
+ }
+ else {
+ pTest = NULL;
+#ifdef __cplusplus
+ pTest = UNSTARCH_strnstr(reinterpret_cast<const char *>( elemTok1 ), pTestParam, 1);
+#else
+ pTest = UNSTARCH_strnstr((const char *)elemTok1, pTestParam, 1);
+#endif
+ if (pTest) {
+ pTestChars = NULL;
+#ifdef __cplusplus
+ pTestChars = static_cast<char *>( malloc(strlen(elemTok1)) );
+#else
+ pTestChars = malloc(strlen(elemTok1));
+#endif
+ strncpy(pTestChars, elemTok1 + 1, strlen(elemTok1));
+ if (!pTestChars)
+ return UNSTARCH_FATAL_ERROR;
+#ifdef __cplusplus
+ *pLength = static_cast<SignedCoordType>( strtoull(pTestChars, NULL, UNSTARCH_RADIX) );
+#else
+ *pLength = (SignedCoordType) strtoull(pTestChars, NULL, UNSTARCH_RADIX);
+#endif
+ free(pTestChars);
+ pTestChars = NULL;
+ }
+ else {
+#ifdef __cplusplus
+ *start = *lastEnd + static_cast<SignedCoordType>( strtoull(elemTok1, NULL, UNSTARCH_RADIX) );
+#else
+ *start = *lastEnd + (SignedCoordType) strtoull(elemTok1, NULL, UNSTARCH_RADIX);
+#endif
+ *lastEnd = *start + *pLength;
+ //sprintf(out, "%s\t%lld\t%lld\n", chr, *start, *lastEnd);
+ if (! *currentChr) {
+#ifdef __cplusplus
+ *currentChr = static_cast<char *>( malloc(strlen(chr) + 1) );
+#else
+ *currentChr = malloc(strlen(chr) + 1);
+#endif
+ *currentChrLen = strlen(chr) + 1;
+ }
+ else if ((strlen(chr) + 1) > *currentChrLen) {
+#ifdef __cplusplus
+ currentChrCopy = static_cast<char *>( realloc(*currentChr, strlen(chr) * 2) );
+#else
+ currentChrCopy = realloc(*currentChr, strlen(chr) * 2);
+#endif
+ if (!currentChrCopy) {
+ fprintf(stderr, "ERROR: Ran out of memory while extending chr token\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ *currentChr = currentChrCopy;
+ *currentChrLen = strlen(chr) * 2;
+ }
+ strncpy(*currentChr, chr, strlen(chr) + 1);
+ if (!*currentChr) {
+ fprintf(stderr, "ERROR: Current chromosome name could not be copied\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ *currentStart = *start;
+ *currentStop = *lastEnd;
+ }
+ }
+ }
+ else {
+ fprintf(stderr, "ERROR: Data stream could not be transformed\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+
+ return 0;
+}
+
+int
+UNSTARCH_createInverseTransformTokens(const unsigned char *s, const char delim, char elemTok1[], char elemTok2[])
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_createInverseTransformTokens() ---\n");
+#endif
+ int charCnt, sCnt, elemCnt;
+ unsigned char buffer[UNSTARCH_BUFFER_MAX_LENGTH];
+
+ charCnt = 0;
+ sCnt = 0;
+ elemCnt = 0;
+
+ do {
+ buffer[charCnt++] = s[sCnt];
+ if (buffer[(charCnt - 1)] == delim) {
+ if (elemCnt == 0) {
+ buffer[(charCnt - 1)] = '\0';
+#ifdef __cplusplus
+ strncpy(elemTok1, reinterpret_cast<const char *>( buffer ), strlen(reinterpret_cast<const char *>( buffer )) + 1);
+#else
+ strncpy(elemTok1, (const char *) buffer, strlen((const char *) buffer) + 1);
+#endif
+ elemCnt++;
+ charCnt = 0;
+ }
+ }
+ } while (s[sCnt++] != 0);
+
+ if (elemCnt == 0) {
+ buffer[charCnt] = '\0';
+#ifdef __cplusplus
+ strncpy(elemTok1, reinterpret_cast<const char *>( buffer ), strlen(reinterpret_cast<const char *>( buffer )) + 1);
+#else
+ strncpy(elemTok1, (const char *) buffer, strlen((const char *) buffer) + 1);
+#endif
+ }
+ if (elemCnt == 1) {
+ buffer[charCnt] = '\0';
+#ifdef __cplusplus
+ strncpy(elemTok2, reinterpret_cast<const char *>( buffer ), strlen(reinterpret_cast<const char *>( buffer )) + 1);
+#else
+ strncpy(elemTok2, (const char *) buffer, strlen((const char *) buffer) + 1);
+#endif
+ }
+
+ return 0;
+}
+
+char *
+UNSTARCH_strnstr(const char *haystack, const char *needle, size_t haystackLen)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_strnstr() ---\n");
+#endif
+ char *p;
+ size_t pLen;
+ size_t len = strlen(needle);
+
+ if (*needle == '\0') {
+ /* everything matches empty string */
+#ifdef __cplusplus
+ return const_cast<char *>( haystack );
+#else
+ return (char *) haystack;
+#endif
+ }
+
+ pLen = haystackLen;
+#ifdef __cplusplus
+ for (p = const_cast<char *>( haystack ); p != NULL; p = static_cast<char *>( memchr(p + 1, *needle, pLen-1) )) {
+#else
+ for (p = (char *) haystack; p != NULL; p = (char *) memchr(p + 1, *needle, pLen-1)) {
+#endif
+#ifdef __cplusplus
+ pLen = haystackLen - static_cast<size_t>( p - const_cast<char *>( haystack ) );
+#else
+ pLen = haystackLen - (size_t) (p - haystack);
+#endif
+ if (pLen < len)
+ return NULL;
+ if (strncmp(p, needle, len) == 0)
+ return p;
+ }
+
+ return NULL;
+}
+
+char *
+UNSTARCH_strndup(const char *s, size_t n)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_strnstr() ---\n");
+#endif
+ char *result;
+ size_t len = strlen(s);
+
+ if (n < len)
+ len = n;
+
+#ifdef __cplusplus
+ result = static_cast<char *>( malloc(len + 1) );
+#else
+ result = malloc(len + 1);
+#endif
+
+ if (!result)
+ return 0;
+
+ result[len] = '\0';
+
+#ifdef __cplusplus
+ return static_cast<char *>( memcpy (result, s, len) );
+#else
+ return (char *) memcpy (result, s, len);
+#endif
+}
+
+LineCountType
+UNSTARCH_lineCountForChromosome(const Metadata *md, const char *chr)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_lineCountForChromosome() ---\n");
+#endif
+ const Metadata *iter;
+
+ for (iter = md; iter != NULL; iter = iter->next) {
+ if (strcmp(chr, iter->chromosome) == 0) {
+ return iter->lineCount;
+ }
+ }
+
+#ifdef __cplusplus
+ return static_cast<LineCountType>( 0 );
+#else
+ return (LineCountType) 0;
+#endif
+}
+
+void
+UNSTARCH_printLineCountForChromosome(const Metadata *md, const char *chr)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_printLineCountForChromosome() ---\n");
+#endif
+
+ if (strcmp(chr, "all") == 0)
+ UNSTARCH_printLineCountForAllChromosomes(md);
+ else
+ fprintf(stdout, "%" PRIu64 "\n", UNSTARCH_lineCountForChromosome(md, chr));
+}
+
+void
+UNSTARCH_printLineCountForAllChromosomes(const Metadata *md)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_printLineCountForAllChromosomes() ---\n");
+#endif
+ const Metadata *iter;
+ LineCountType totalLineCount = 0;
+
+ for (iter = md; iter != NULL; iter = iter->next)
+ totalLineCount += iter->lineCount;
+
+ fprintf(stdout, "%" PRIu64 "\n", totalLineCount);
+}
+
+BaseCountType
+UNSTARCH_nonUniqueBaseCountForChromosome(const Metadata *md, const char *chr)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_nonUniqueBaseCountForChromosome() ---\n");
+#endif
+ const Metadata *iter;
+
+ for (iter = md; iter != NULL; iter = iter->next) {
+ if (strcmp(chr, iter->chromosome) == 0) {
+ return iter->totalNonUniqueBases;
+ }
+ }
+
+#ifdef __cplusplus
+ return static_cast<BaseCountType>( 0 );
+#else
+ return (BaseCountType) 0;
+#endif
+}
+
+void
+UNSTARCH_printNonUniqueBaseCountForChromosome(const Metadata *md, const char *chr)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_printNonUniqueBaseCountForChromosome() ---\n");
+#endif
+
+ if (strcmp(chr, "all") == 0)
+ UNSTARCH_printNonUniqueBaseCountForAllChromosomes(md);
+ else
+ fprintf(stdout, "%" PRIu64 "\n", UNSTARCH_nonUniqueBaseCountForChromosome(md, chr));
+}
+
+void
+UNSTARCH_printNonUniqueBaseCountForAllChromosomes(const Metadata *md)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_printNonUniqueBaseCountForAllChromosomes() ---\n");
+#endif
+ const Metadata *iter;
+ BaseCountType totalBaseCount = 0;
+
+ for (iter = md; iter != NULL; iter = iter->next)
+ totalBaseCount += iter->totalNonUniqueBases;
+
+ fprintf(stdout, "%" PRIu64 "\n", totalBaseCount);
+}
+
+BaseCountType
+UNSTARCH_uniqueBaseCountForChromosome(const Metadata *md, const char *chr)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_uniqueBaseCountForChromosome() ---\n");
+#endif
+ const Metadata *iter;
+
+ for (iter = md; iter != NULL; iter = iter->next) {
+ if (strcmp(chr, iter->chromosome) == 0)
+ return iter->totalUniqueBases;
+ }
+
+#ifdef __cplusplus
+ return static_cast<BaseCountType>( 0 );
+#else
+ return (BaseCountType) 0;
+#endif
+}
+
+void
+UNSTARCH_printUniqueBaseCountForChromosome(const Metadata *md, const char *chr)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_printUniqueBaseCountForChromosome() ---\n");
+#endif
+
+ if (strcmp(chr, "all") == 0)
+ UNSTARCH_printUniqueBaseCountForAllChromosomes(md);
+ else
+ fprintf(stdout, "%" PRIu64 "\n", UNSTARCH_uniqueBaseCountForChromosome(md, chr));
+}
+
+void
+UNSTARCH_printUniqueBaseCountForAllChromosomes(const Metadata *md)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_printUniqueBaseCountForAllChromosomes() ---\n");
+#endif
+ const Metadata *iter;
+ BaseCountType totalBaseCount = 0;
+
+ for (iter = md; iter != NULL; iter = iter->next)
+ totalBaseCount += iter->totalUniqueBases;
+
+ fprintf(stdout, "%" PRIu64 "\n", totalBaseCount);
+}
+
+Boolean
+UNSTARCH_duplicateElementExistsForChromosome(const Metadata *md, const char *chr)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_duplicateElementExistsForChromosome() ---\n");
+#endif
+ const Metadata *iter;
+
+ for (iter = md; iter != NULL; iter = iter->next) {
+ if (strcmp(chr, iter->chromosome) == 0)
+ return iter->duplicateElementExists;
+ }
+
+ return STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE;
+}
+
+void
+UNSTARCH_printDuplicateElementExistsStringForChromosome(const Metadata *md, const char *chr)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_printDuplicateElementExistsForChromosome() ---\n");
+#endif
+
+ Boolean res = STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE;
+
+ if (strcmp(chr, "all") == 0)
+ UNSTARCH_printDuplicateElementExistsStringsForAllChromosomes(md);
+ else {
+ res = UNSTARCH_duplicateElementExistsForChromosome(md, chr);
+ fprintf(stdout, "%s\n", UNSTARCH_booleanToString(res));
+ }
+}
+
+void
+UNSTARCH_printDuplicateElementExistsStringsForAllChromosomes(const Metadata *md)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_printDuplicateElementExistsForAllChromosomes() ---\n");
+#endif
+ const Metadata *iter;
+
+ for (iter = md; iter != NULL; iter = iter->next) {
+ if (UNSTARCH_duplicateElementExistsForChromosome(md, iter->chromosome) == kStarchTrue) {
+ fprintf(stdout, "%s\n", UNSTARCH_booleanToString(kStarchTrue));
+ return;
+ }
+ }
+
+ fprintf(stdout, "%s\n", UNSTARCH_booleanToString(kStarchFalse));
+}
+
+void
+UNSTARCH_printDuplicateElementExistsIntegerForChromosome(const Metadata *md, const char *chr)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_printDuplicateElementExistsIntegerForChromosome() ---\n");
+#endif
+ Boolean res = STARCH_DEFAULT_DUPLICATE_ELEMENT_FLAG_VALUE;
+
+ if (strcmp(chr, "all") == 0)
+ UNSTARCH_printDuplicateElementExistsIntegersForAllChromosomes(md);
+ else {
+ res = UNSTARCH_duplicateElementExistsForChromosome(md, chr);
+#ifdef __cplusplus
+ fprintf(stdout, "%d\n", static_cast<int>( res ));
+#else
+ fprintf(stdout, "%d\n", (int) res);
+#endif
+ }
+}
+
+void
+UNSTARCH_printDuplicateElementExistsIntegersForAllChromosomes(const Metadata *md)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_printDuplicateElementExistsIntegersForAllChromosomes() ---\n");
+#endif
+ const Metadata *iter;
+
+ for (iter = md; iter != NULL; iter = iter->next) {
+ if (UNSTARCH_duplicateElementExistsForChromosome(md, iter->chromosome) == kStarchTrue) {
+#ifdef __cplusplus
+ fprintf(stdout, "%d\n", static_cast<int>( kStarchTrue ));
+#else
+ fprintf(stdout, "%d\n", (int) kStarchTrue);
+#endif
+ return;
+ }
+ }
+
+#ifdef __cplusplus
+ fprintf(stdout, "%d\n", static_cast<int>( kStarchFalse ));
+#else
+ fprintf(stdout, "%d\n", (int) kStarchFalse);
+#endif
+}
+
+Boolean
+UNSTARCH_nestedElementExistsForChromosome(const Metadata *md, const char *chr)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_nestedElementExistsForChromosome() ---\n");
+#endif
+ const Metadata *iter;
+
+ for (iter = md; iter != NULL; iter = iter->next) {
+ if (strcmp(chr, iter->chromosome) == 0)
+ return iter->nestedElementExists;
+ }
+
+ return STARCH_DEFAULT_NESTED_ELEMENT_FLAG_VALUE;
+}
+
+void
+UNSTARCH_printNestedElementExistsStringForChromosome(const Metadata *md, const char *chr)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_printNestedElementExistsForChromosome() ---\n");
+#endif
+ Boolean res = STARCH_DEFAULT_NESTED_ELEMENT_FLAG_VALUE;
+
+ if (strcmp(chr, "all") == 0)
+ UNSTARCH_printNestedElementExistsStringsForAllChromosomes(md);
+ else {
+ res = UNSTARCH_nestedElementExistsForChromosome(md, chr);
+ fprintf(stdout, "%s\n", UNSTARCH_booleanToString(res));
+ }
+}
+
+void
+UNSTARCH_printNestedElementExistsStringsForAllChromosomes(const Metadata *md)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_printNestedElementExistsForAllChromosomes() ---\n");
+#endif
+ const Metadata *iter;
+
+ for (iter = md; iter != NULL; iter = iter->next) {
+ if (UNSTARCH_nestedElementExistsForChromosome(md, iter->chromosome) == kStarchTrue) {
+ fprintf(stdout, "%s\n", UNSTARCH_booleanToString(kStarchTrue));
+ return;
+ }
+ }
+
+ fprintf(stdout, "%s\n", UNSTARCH_booleanToString(kStarchFalse));
+}
+
+void
+UNSTARCH_printNestedElementExistsIntegerForChromosome(const Metadata *md, const char *chr)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_printNestedElementExistsIntegerForChromosome() ---\n");
+#endif
+ Boolean res = STARCH_DEFAULT_NESTED_ELEMENT_FLAG_VALUE;
+
+ if (strcmp(chr, "all") == 0)
+ UNSTARCH_printNestedElementExistsIntegersForAllChromosomes(md);
+ else {
+ res = UNSTARCH_nestedElementExistsForChromosome(md, chr);
+#ifdef __cplusplus
+ fprintf(stdout, "%d\n", static_cast<int>( res ));
+#else
+ fprintf(stdout, "%d\n", (int) res);
+#endif
+ }
+}
+
+void
+UNSTARCH_printNestedElementExistsIntegersForAllChromosomes(const Metadata *md)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_printNestedElementExistsIntegersForAllChromosomes() ---\n");
+#endif
+ const Metadata *iter;
+
+ for (iter = md; iter != NULL; iter = iter->next) {
+ if (UNSTARCH_nestedElementExistsForChromosome(md, iter->chromosome) == kStarchTrue) {
+#ifdef __cplusplus
+ fprintf(stdout, "%d\n", static_cast<int>( kStarchTrue ));
+#else
+ fprintf(stdout, "%d\n", (int) kStarchTrue);
+#endif
+ return;
+ }
+ }
+
+#ifdef __cplusplus
+ fprintf(stdout, "%d\n", static_cast<int>( kStarchFalse ));
+#else
+ fprintf(stdout, "%d\n", (int) kStarchFalse);
+#endif
+}
+
+const char *
+UNSTARCH_booleanToString(const Boolean val)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_booleanToString() ---\n");
+#endif
+ const char *t = "true";
+ const char *f = "false";
+
+ return ((val == kStarchTrue) ? t : f);
+}
+
+int
+UNSTARCH_reverseTransformCoordinates(const LineCountType lineIdx, SignedCoordType *lastPosition, SignedCoordType *lcDiff, SignedCoordType *currStart, SignedCoordType *currStop, char **currRemainder, unsigned char *lineBuf, int64_t *nLineBuf, int64_t *nLineBufPos)
+{
+#ifdef DEBUG
+ fprintf(stderr, "\n--- UNSTARCH_reverseTransformCoordinates() ---\n");
+#endif
+ SignedCoordType coordDiff;
+
+ if (*currStop > *currStart)
+ coordDiff = *currStop - *currStart;
+ else {
+ fprintf(stderr, "ERROR: BED data is corrupt at line %" PRIu64 " (stop: %" PRId64 ", start: %" PRId64 ")\n", lineIdx, *currStop, *currStart);
+ return UNSTARCH_FATAL_ERROR;
+ }
+
+ /* offset */
+ if (coordDiff != *lcDiff) {
+ *lcDiff = coordDiff;
+#ifdef __cplusplus
+ *nLineBuf = sprintf(reinterpret_cast<char *>(lineBuf) + *nLineBufPos, "p%" PRId64 "\n", coordDiff);
+#else
+ *nLineBuf = sprintf((char *)lineBuf + *nLineBufPos, "p%" PRId64 "\n", coordDiff);
+#endif
+ if (*nLineBuf < 0) {
+ fprintf(stderr, "ERROR: Could not copy reverse-transformed extracted stream buffer to line buffer.\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ *nLineBufPos += *nLineBuf;
+ }
+
+ /* line + remainder */
+ if (*lastPosition != 0) {
+ if (*currRemainder) {
+#ifdef __cplusplus
+ *nLineBuf = sprintf(reinterpret_cast<char *>(lineBuf) + *nLineBufPos, "%" PRId64 "\t%s\n", (*currStart - *lastPosition), *currRemainder);
+#else
+ *nLineBuf = sprintf((char *)lineBuf + *nLineBufPos, "%" PRId64 "\t%s\n", (*currStart - *lastPosition), *currRemainder);
+#endif
+ }
+ else {
+#ifdef __cplusplus
+ *nLineBuf = sprintf(reinterpret_cast<char *>(lineBuf) + *nLineBufPos, "%" PRId64 "\n", *currStart - *lastPosition);
+#else
+ *nLineBuf = sprintf((char *)lineBuf + *nLineBufPos, "%" PRId64 "\n", *currStart - *lastPosition);
+#endif
+ }
+
+ if (*nLineBuf < 0) {
+ fprintf(stderr, "ERROR: Could not copy reverse-transformed extracted stream buffer to line buffer.\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ *nLineBufPos += *nLineBuf;
+ }
+ else {
+ if (*currRemainder) {
+#ifdef __cplusplus
+ *nLineBuf = sprintf(reinterpret_cast<char *>(lineBuf) + *nLineBufPos, "%" PRId64 "\t%s\n", *currStart, *currRemainder);
+#else
+ *nLineBuf = sprintf((char *)lineBuf + *nLineBufPos, "%" PRId64 "\t%s\n", *currStart, *currRemainder);
+#endif
+ }
+ else {
+#ifdef __cplusplus
+ *nLineBuf = sprintf(reinterpret_cast<char *>(lineBuf) + *nLineBufPos, "%" PRId64 "\n", *currStart);
+#else
+ *nLineBuf = sprintf((char *)lineBuf + *nLineBufPos, "%" PRId64 "\n", *currStart);
+#endif
+ }
+
+ if (*nLineBuf < 0) {
+ fprintf(stderr, "ERROR: Could not copy reverse-transformed extracted stream buffer to line buffer.\n");
+ return UNSTARCH_FATAL_ERROR;
+ }
+ *nLineBufPos += *nLineBuf;
+ }
+ *lastPosition = *currStop;
+
+ return 0;
+}
+
+#ifdef __cplusplus
+} // namespace starch
+#endif
diff --git a/packaging/deb/Dockerfile b/packaging/deb/Dockerfile
new file mode 100644
index 0000000..c97d630
--- /dev/null
+++ b/packaging/deb/Dockerfile
@@ -0,0 +1,25 @@
+# see: https://wiki.debian.org/IntroDebianPackaging
+FROM debian:jessie
+
+RUN apt-get update && apt-get -y upgrade
+RUN apt-get install -y libc6-dev build-essential tcsh devscripts debhelper
+RUN apt-get clean
+
+# copy the source context into the local image
+# note: make sure .dockerignore is up to date
+ADD . /bedops
+
+# populate base debian package tree
+RUN mkdir /bedops_2.4.20
+WORKDIR /bedops_2.4.20
+RUN mkdir -p DEBIAN usr/bin usr/share/doc/bedops
+RUN cp /bedops/LICENSE /bedops/README.md usr/share/doc/bedops
+RUN cp /bedops/packaging/deb/control DEBIAN
+
+# build and install bedops into debian package tree
+WORKDIR /bedops
+RUN make -j `nproc` && make install BINDIR=/bedops_2.4.20/usr/bin
+WORKDIR /
+RUN dpkg-deb --build bedops_2.4.20
+
+# deb file should now be located in / directory
diff --git a/packaging/deb/control b/packaging/deb/control
new file mode 100644
index 0000000..f0f1742
--- /dev/null
+++ b/packaging/deb/control
@@ -0,0 +1,9 @@
+Package: bedops
+Version: 2.4.20
+Section: base
+Priority: optional
+Architecture: amd64
+Depends: tcsh
+Maintainer: BEDOPS Team
+Description: bedops
+ BEDOPS is a suite of tools to address common questions raised in genomic studies — mostly with regard to overlap and proximity relationships between data sets. It aims to be scalable and flexible, facilitating the efficient and accurate analysis and management of large-scale genomic data.
diff --git a/packaging/docker/Dockerfile b/packaging/docker/Dockerfile
new file mode 100644
index 0000000..2ca3850
--- /dev/null
+++ b/packaging/docker/Dockerfile
@@ -0,0 +1,16 @@
+# standalone docker image
+FROM debian:jessie
+
+RUN apt-get update && apt-get -y upgrade
+RUN apt-get install -y libc6-dev build-essential tcsh devscripts debhelper
+RUN apt-get clean
+
+# copy the source context into the local image
+# note: make sure .dockerignore is up to date
+COPY . /bedops
+
+# build and install bedops into system path
+WORKDIR /bedops
+RUN make -j `nproc` && make install BINDIR=/usr/bin
+WORKDIR /
+RUN rm -rf /bedops
diff --git a/packaging/os_x/BEDOPS Uninstaller.pkgproj b/packaging/os_x/BEDOPS Uninstaller.pkgproj
new file mode 100755
index 0000000..99002b9
--- /dev/null
+++ b/packaging/os_x/BEDOPS Uninstaller.pkgproj
@@ -0,0 +1,946 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>PACKAGES</key>
+ <array>
+ <dict>
+ <key>PACKAGE_FILES</key>
+ <dict>
+ <key>DEFAULT_INSTALL_LOCATION</key>
+ <string>/</string>
+ <key>HIERARCHY</key>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Utilities</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Applications</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>509</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Application Support</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Documentation</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Filesystems</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Frameworks</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Input Methods</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Internet Plug-Ins</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>LaunchAgents</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>LaunchDaemons</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>PreferencePanes</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Preferences</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Printers</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>PrivilegedHelperTools</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>QuickLook</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>QuickTime</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Screen Savers</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Scripts</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Services</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Widgets</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Library</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Extensions</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Library</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>System</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Shared</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>1023</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Users</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>/</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>PAYLOAD_TYPE</key>
+ <integer>0</integer>
+ <key>VERSION</key>
+ <integer>2</integer>
+ </dict>
+ <key>PACKAGE_SCRIPTS</key>
+ <dict>
+ <key>POSTINSTALL_PATH</key>
+ <dict>
+ <key>PATH</key>
+ <string>resources/scripts/post-install.bedops-uninstaller.sh</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ </dict>
+ <key>PREINSTALL_PATH</key>
+ <dict/>
+ <key>RESOURCES</key>
+ <array/>
+ </dict>
+ <key>PACKAGE_SETTINGS</key>
+ <dict>
+ <key>AUTHENTICATION</key>
+ <integer>1</integer>
+ <key>CONCLUSION_ACTION</key>
+ <integer>0</integer>
+ <key>IDENTIFIER</key>
+ <string>org.uwencode.bedops.uninstaller</string>
+ <key>NAME</key>
+ <string>BEDOPS Uninstaller</string>
+ <key>OVERWRITE_PERMISSIONS</key>
+ <false/>
+ <key>VERSION</key>
+ <string>1.0</string>
+ </dict>
+ <key>UUID</key>
+ <string>367DD281-1768-4FBB-8EDD-21E353EC9055</string>
+ </dict>
+ </array>
+ <key>PROJECT</key>
+ <dict>
+ <key>PROJECT_COMMENTS</key>
+ <dict>
+ <key>NOTES</key>
+ <data>
+ </data>
+ </dict>
+ <key>PROJECT_PRESENTATION</key>
+ <dict>
+ <key>BACKGROUND</key>
+ <dict>
+ <key>ALIGNMENT</key>
+ <integer>0</integer>
+ <key>BACKGROUND_PATH</key>
+ <dict>
+ <key>PATH</key>
+ <string>resources/background/1024.png</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ </dict>
+ <key>CUSTOM</key>
+ <integer>1</integer>
+ <key>SCALING</key>
+ <integer>2</integer>
+ </dict>
+ <key>INSTALLATION TYPE</key>
+ <dict>
+ <key>HIERARCHIES</key>
+ <dict>
+ <key>INSTALLER</key>
+ <dict>
+ <key>LIST</key>
+ <array>
+ <dict>
+ <key>DESCRIPTION</key>
+ <array>
+ <dict>
+ <key>LANGUAGE</key>
+ <string>English</string>
+ <key>VALUE</key>
+ <string>This selection removes BEDOPS and dependencies from your workstation.</string>
+ </dict>
+ </array>
+ <key>OPTIONS</key>
+ <dict>
+ <key>HIDDEN</key>
+ <false/>
+ <key>STATE</key>
+ <integer>1</integer>
+ </dict>
+ <key>PACKAGE_UUID</key>
+ <string>367DD281-1768-4FBB-8EDD-21E353EC9055</string>
+ <key>REQUIREMENTS</key>
+ <array/>
+ <key>TITLE</key>
+ <array>
+ <dict>
+ <key>LANGUAGE</key>
+ <string>English</string>
+ <key>VALUE</key>
+ <string>Uninstaller</string>
+ </dict>
+ </array>
+ <key>TOOLTIP</key>
+ <array/>
+ <key>TYPE</key>
+ <integer>0</integer>
+ <key>UUID</key>
+ <string>A629DA62-B100-4750-8338-EEE2E39EF706</string>
+ </dict>
+ </array>
+ <key>REMOVED</key>
+ <dict/>
+ </dict>
+ </dict>
+ <key>INSTALLATION TYPE</key>
+ <integer>0</integer>
+ </dict>
+ <key>INSTALLATION_STEPS</key>
+ <array>
+ <dict>
+ <key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key>
+ <string>ICPresentationViewIntroductionController</string>
+ <key>INSTALLER_PLUGIN</key>
+ <string>Introduction</string>
+ <key>LIST_TITLE_KEY</key>
+ <string>InstallerSectionTitle</string>
+ </dict>
+ <dict>
+ <key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key>
+ <string>ICPresentationViewReadMeController</string>
+ <key>INSTALLER_PLUGIN</key>
+ <string>ReadMe</string>
+ <key>LIST_TITLE_KEY</key>
+ <string>InstallerSectionTitle</string>
+ </dict>
+ <dict>
+ <key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key>
+ <string>ICPresentationViewLicenseController</string>
+ <key>INSTALLER_PLUGIN</key>
+ <string>License</string>
+ <key>LIST_TITLE_KEY</key>
+ <string>InstallerSectionTitle</string>
+ </dict>
+ <dict>
+ <key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key>
+ <string>ICPresentationViewDestinationSelectController</string>
+ <key>INSTALLER_PLUGIN</key>
+ <string>TargetSelect</string>
+ <key>LIST_TITLE_KEY</key>
+ <string>InstallerSectionTitle</string>
+ </dict>
+ <dict>
+ <key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key>
+ <string>ICPresentationViewInstallationTypeController</string>
+ <key>INSTALLER_PLUGIN</key>
+ <string>PackageSelection</string>
+ <key>LIST_TITLE_KEY</key>
+ <string>InstallerSectionTitle</string>
+ </dict>
+ <dict>
+ <key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key>
+ <string>ICPresentationViewInstallationController</string>
+ <key>INSTALLER_PLUGIN</key>
+ <string>Install</string>
+ <key>LIST_TITLE_KEY</key>
+ <string>InstallerSectionTitle</string>
+ </dict>
+ <dict>
+ <key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key>
+ <string>ICPresentationViewSummaryController</string>
+ <key>INSTALLER_PLUGIN</key>
+ <string>Summary</string>
+ <key>LIST_TITLE_KEY</key>
+ <string>InstallerSectionTitle</string>
+ </dict>
+ </array>
+ <key>INTRODUCTION</key>
+ <dict>
+ <key>LOCALIZATIONS</key>
+ <array>
+ <dict>
+ <key>LANGUAGE</key>
+ <string>English</string>
+ <key>VALUE</key>
+ <dict>
+ <key>PATH</key>
+ <string>resources/docs/IntroUninstaller.rtf</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ </dict>
+ </dict>
+ </array>
+ </dict>
+ <key>LICENSE</key>
+ <dict>
+ <key>KEYWORDS</key>
+ <dict/>
+ <key>LOCALIZATIONS</key>
+ <array/>
+ <key>MODE</key>
+ <integer>0</integer>
+ </dict>
+ <key>README</key>
+ <dict>
+ <key>LOCALIZATIONS</key>
+ <array/>
+ </dict>
+ <key>SUMMARY</key>
+ <dict>
+ <key>LOCALIZATIONS</key>
+ <array/>
+ </dict>
+ <key>TITLE</key>
+ <dict>
+ <key>LOCALIZATIONS</key>
+ <array>
+ <dict>
+ <key>LANGUAGE</key>
+ <string>English</string>
+ <key>VALUE</key>
+ <string>BEDOPS Uninstaller</string>
+ </dict>
+ </array>
+ </dict>
+ </dict>
+ <key>PROJECT_REQUIREMENTS</key>
+ <dict>
+ <key>LIST</key>
+ <array>
+ <dict>
+ <key>BEHAVIOR</key>
+ <integer>3</integer>
+ <key>DICTIONARY</key>
+ <dict>
+ <key>IC_REQUIREMENT_CPU_ARCHITECTURE_FAMILY</key>
+ <integer>2</integer>
+ <key>IC_REQUIREMENT_CPU_INTEL_ARCHITECTURE_TYPE</key>
+ <integer>0</integer>
+ <key>IC_REQUIREMENT_CPU_MINIMUM_CPU_CORES_COUNT</key>
+ <integer>1</integer>
+ <key>IC_REQUIREMENT_CPU_MINIMUM_FREQUENCY</key>
+ <integer>866666</integer>
+ <key>IC_REQUIREMENT_CPU_POWERPC_ARCHITECTURE_TYPE</key>
+ <integer>0</integer>
+ </dict>
+ <key>IC_REQUIREMENT_CHECK_TYPE</key>
+ <integer>0</integer>
+ <key>IDENTIFIER</key>
+ <string>fr.whitebox.Packages.requirement.cpu</string>
+ <key>MESSAGE</key>
+ <array>
+ <dict>
+ <key>LANGUAGE</key>
+ <string>English</string>
+ <key>SECONDARY_VALUE</key>
+ <string>BEDOPS for Mac OS X requires an Intel processor</string>
+ <key>VALUE</key>
+ <string>Processor requirement</string>
+ </dict>
+ </array>
+ <key>NAME</key>
+ <string>Processor</string>
+ <key>STATE</key>
+ <true/>
+ </dict>
+ <dict>
+ <key>BEHAVIOR</key>
+ <integer>3</integer>
+ <key>DICTIONARY</key>
+ <dict>
+ <key>IC_REQUIREMENT_OS_DISK_TYPE</key>
+ <integer>0</integer>
+ <key>IC_REQUIREMENT_OS_DISTRIBUTION_TYPE</key>
+ <integer>0</integer>
+ <key>IC_REQUIREMENT_OS_MINIMUM_VERSION</key>
+ <integer>100500</integer>
+ </dict>
+ <key>IC_REQUIREMENT_CHECK_TYPE</key>
+ <integer>1</integer>
+ <key>IDENTIFIER</key>
+ <string>fr.whitebox.Packages.requirement.os</string>
+ <key>MESSAGE</key>
+ <array>
+ <dict>
+ <key>LANGUAGE</key>
+ <string>English</string>
+ <key>VALUE</key>
+ <string>This installer requires at least Mac OS X 10.5</string>
+ </dict>
+ </array>
+ <key>NAME</key>
+ <string>Operating System</string>
+ <key>STATE</key>
+ <true/>
+ </dict>
+ </array>
+ <key>POSTINSTALL_PATH</key>
+ <dict/>
+ <key>PREINSTALL_PATH</key>
+ <dict/>
+ <key>RESOURCES</key>
+ <array/>
+ <key>ROOT_VOLUME_ONLY</key>
+ <true/>
+ </dict>
+ <key>PROJECT_SETTINGS</key>
+ <dict>
+ <key>ADVANCED_OPTIONS</key>
+ <dict/>
+ <key>BUILD_FORMAT</key>
+ <integer>1</integer>
+ <key>BUILD_PATH</key>
+ <dict>
+ <key>PATH</key>
+ <string>build</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ </dict>
+ <key>EXCLUDED_FILES</key>
+ <array>
+ <dict>
+ <key>PATTERNS_ARRAY</key>
+ <array>
+ <dict>
+ <key>REGULAR_EXPRESSION</key>
+ <false/>
+ <key>STRING</key>
+ <string>.DS_Store</string>
+ <key>TYPE</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>PROTECTED</key>
+ <true/>
+ <key>PROXY_NAME</key>
+ <string>Remove .DS_Store files</string>
+ <key>PROXY_TOOLTIP</key>
+ <string>Remove ".DS_Store" files created by the Finder.</string>
+ <key>STATE</key>
+ <true/>
+ </dict>
+ <dict>
+ <key>PATTERNS_ARRAY</key>
+ <array>
+ <dict>
+ <key>REGULAR_EXPRESSION</key>
+ <false/>
+ <key>STRING</key>
+ <string>.pbdevelopment</string>
+ <key>TYPE</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>PROTECTED</key>
+ <true/>
+ <key>PROXY_NAME</key>
+ <string>Remove .pbdevelopment files</string>
+ <key>PROXY_TOOLTIP</key>
+ <string>Remove ".pbdevelopment" files created by ProjectBuilder or Xcode.</string>
+ <key>STATE</key>
+ <true/>
+ </dict>
+ <dict>
+ <key>PATTERNS_ARRAY</key>
+ <array>
+ <dict>
+ <key>REGULAR_EXPRESSION</key>
+ <false/>
+ <key>STRING</key>
+ <string>CVS</string>
+ <key>TYPE</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>REGULAR_EXPRESSION</key>
+ <false/>
+ <key>STRING</key>
+ <string>.cvsignore</string>
+ <key>TYPE</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>REGULAR_EXPRESSION</key>
+ <false/>
+ <key>STRING</key>
+ <string>.cvspass</string>
+ <key>TYPE</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>REGULAR_EXPRESSION</key>
+ <false/>
+ <key>STRING</key>
+ <string>.svn</string>
+ <key>TYPE</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>REGULAR_EXPRESSION</key>
+ <false/>
+ <key>STRING</key>
+ <string>.git</string>
+ <key>TYPE</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>REGULAR_EXPRESSION</key>
+ <false/>
+ <key>STRING</key>
+ <string>.gitignore</string>
+ <key>TYPE</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>PROTECTED</key>
+ <true/>
+ <key>PROXY_NAME</key>
+ <string>Remove SCM metadata</string>
+ <key>PROXY_TOOLTIP</key>
+ <string>Remove helper files and folders used by the CVS, SVN or Git Source Code Management systems.</string>
+ <key>STATE</key>
+ <true/>
+ </dict>
+ <dict>
+ <key>PATTERNS_ARRAY</key>
+ <array>
+ <dict>
+ <key>REGULAR_EXPRESSION</key>
+ <false/>
+ <key>STRING</key>
+ <string>classes.nib</string>
+ <key>TYPE</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>REGULAR_EXPRESSION</key>
+ <false/>
+ <key>STRING</key>
+ <string>designable.db</string>
+ <key>TYPE</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>REGULAR_EXPRESSION</key>
+ <false/>
+ <key>STRING</key>
+ <string>info.nib</string>
+ <key>TYPE</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>PROTECTED</key>
+ <true/>
+ <key>PROXY_NAME</key>
+ <string>Optimize nib files</string>
+ <key>PROXY_TOOLTIP</key>
+ <string>Remove "classes.nib", "info.nib" and "designable.nib" files within .nib bundles.</string>
+ <key>STATE</key>
+ <true/>
+ </dict>
+ <dict>
+ <key>PATTERNS_ARRAY</key>
+ <array>
+ <dict>
+ <key>REGULAR_EXPRESSION</key>
+ <false/>
+ <key>STRING</key>
+ <string>Resources Disabled</string>
+ <key>TYPE</key>
+ <integer>1</integer>
+ </dict>
+ </array>
+ <key>PROTECTED</key>
+ <true/>
+ <key>PROXY_NAME</key>
+ <string>Remove Resources Disabled folders</string>
+ <key>PROXY_TOOLTIP</key>
+ <string>Remove "Resources Disabled" folders.</string>
+ <key>STATE</key>
+ <true/>
+ </dict>
+ <dict>
+ <key>SEPARATOR</key>
+ <true/>
+ </dict>
+ </array>
+ <key>NAME</key>
+ <string>BEDOPS Uninstaller</string>
+ </dict>
+ </dict>
+ <key>TYPE</key>
+ <integer>0</integer>
+ <key>VERSION</key>
+ <integer>2</integer>
+</dict>
+</plist>
diff --git a/packaging/os_x/BEDOPS.pkgproj b/packaging/os_x/BEDOPS.pkgproj
new file mode 100755
index 0000000..b9bc39d
--- /dev/null
+++ b/packaging/os_x/BEDOPS.pkgproj
@@ -0,0 +1,5512 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>PACKAGES</key>
+ <array>
+ <dict>
+ <key>PACKAGE_FILES</key>
+ <dict>
+ <key>DEFAULT_INSTALL_LOCATION</key>
+ <string>/</string>
+ <key>HIERARCHY</key>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Utilities</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Applications</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>509</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Application Support</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Documentation</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Filesystems</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Frameworks</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Input Methods</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Internet Plug-Ins</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>LaunchAgents</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>LaunchDaemons</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>PreferencePanes</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Preferences</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Printers</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>PrivilegedHelperTools</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>QuickLook</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>QuickTime</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Screen Savers</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Scripts</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Services</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Widgets</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Library</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Extensions</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Library</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>System</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Shared</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>1023</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Users</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/bam2bed</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/bam2bed_gnuParallel</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/bam2bed_sge</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/bam2starch</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/bam2starch_gnuParallel</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/bam2starch_sge</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/convert2bed</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/gff2bed</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/gff2starch</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/gtf2bed</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/gtf2starch</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/gvf2bed</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/gvf2starch</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/psl2bed</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/psl2starch</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/rmsk2bed</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/rmsk2starch</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/sam2bed</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/sam2starch</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/vcf2bed</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/vcf2starch</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/wig2bed</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/wig2starch</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>bin</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>2</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>local</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>2</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>usr</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>2</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>/</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>PAYLOAD_TYPE</key>
+ <integer>0</integer>
+ <key>VERSION</key>
+ <integer>2</integer>
+ </dict>
+ <key>PACKAGE_SCRIPTS</key>
+ <dict>
+ <key>PREINSTALL_PATH</key>
+ <dict/>
+ <key>RESOURCES</key>
+ <array/>
+ </dict>
+ <key>PACKAGE_SETTINGS</key>
+ <dict>
+ <key>AUTHENTICATION</key>
+ <integer>1</integer>
+ <key>CONCLUSION_ACTION</key>
+ <integer>0</integer>
+ <key>IDENTIFIER</key>
+ <string>org.uwencode.bedops.conversion</string>
+ <key>LOCATION</key>
+ <integer>0</integer>
+ <key>NAME</key>
+ <string>conversion scripts</string>
+ <key>OVERWRITE_PERMISSIONS</key>
+ <false/>
+ <key>VERSION</key>
+ <string>1.0</string>
+ </dict>
+ <key>TYPE</key>
+ <integer>0</integer>
+ <key>UUID</key>
+ <string>2805A5DF-C777-40FB-8B3A-5046CBFC32A1</string>
+ </dict>
+ <dict>
+ <key>PACKAGE_FILES</key>
+ <dict>
+ <key>DEFAULT_INSTALL_LOCATION</key>
+ <string>/</string>
+ <key>HIERARCHY</key>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Utilities</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Applications</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>509</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Application Support</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Documentation</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Filesystems</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Frameworks</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Input Methods</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Internet Plug-Ins</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>LaunchAgents</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>LaunchDaemons</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>PreferencePanes</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Preferences</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Printers</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>PrivilegedHelperTools</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>QuickLook</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>QuickTime</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Screen Savers</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Scripts</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Services</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Widgets</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Library</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Extensions</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Library</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>System</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Shared</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>1023</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Users</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/bedextract</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>bin</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>2</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>local</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>2</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>usr</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>2</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>/</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>PAYLOAD_TYPE</key>
+ <integer>0</integer>
+ <key>VERSION</key>
+ <integer>2</integer>
+ </dict>
+ <key>PACKAGE_SCRIPTS</key>
+ <dict>
+ <key>PREINSTALL_PATH</key>
+ <dict/>
+ <key>RESOURCES</key>
+ <array/>
+ </dict>
+ <key>PACKAGE_SETTINGS</key>
+ <dict>
+ <key>AUTHENTICATION</key>
+ <integer>1</integer>
+ <key>CONCLUSION_ACTION</key>
+ <integer>0</integer>
+ <key>IDENTIFIER</key>
+ <string>org.uwencode.bedops.bedextract</string>
+ <key>LOCATION</key>
+ <integer>0</integer>
+ <key>NAME</key>
+ <string>bedextract</string>
+ <key>OVERWRITE_PERMISSIONS</key>
+ <false/>
+ <key>VERSION</key>
+ <string>1.0</string>
+ </dict>
+ <key>TYPE</key>
+ <integer>0</integer>
+ <key>UUID</key>
+ <string>BB3A46E6-6CEE-496F-8D92-E228E4D90D82</string>
+ </dict>
+ <dict>
+ <key>PACKAGE_FILES</key>
+ <dict>
+ <key>DEFAULT_INSTALL_LOCATION</key>
+ <string>/</string>
+ <key>HIERARCHY</key>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Utilities</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Applications</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>509</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Application Support</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Documentation</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Filesystems</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Frameworks</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Input Methods</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Internet Plug-Ins</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>LaunchAgents</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>LaunchDaemons</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>PreferencePanes</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Preferences</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Printers</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>PrivilegedHelperTools</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>QuickLook</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>QuickTime</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Screen Savers</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Scripts</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Services</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Widgets</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Library</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Extensions</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Library</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>System</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Shared</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>1023</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Users</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/bedmap</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>bin</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>2</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>local</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>2</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>usr</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>2</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>/</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>PAYLOAD_TYPE</key>
+ <integer>0</integer>
+ <key>VERSION</key>
+ <integer>2</integer>
+ </dict>
+ <key>PACKAGE_SCRIPTS</key>
+ <dict>
+ <key>PREINSTALL_PATH</key>
+ <dict/>
+ <key>RESOURCES</key>
+ <array/>
+ </dict>
+ <key>PACKAGE_SETTINGS</key>
+ <dict>
+ <key>AUTHENTICATION</key>
+ <integer>1</integer>
+ <key>CONCLUSION_ACTION</key>
+ <integer>0</integer>
+ <key>IDENTIFIER</key>
+ <string>org.uwencode.bedops.bedmap</string>
+ <key>LOCATION</key>
+ <integer>0</integer>
+ <key>NAME</key>
+ <string>bedmap</string>
+ <key>OVERWRITE_PERMISSIONS</key>
+ <false/>
+ <key>VERSION</key>
+ <string>1.0</string>
+ </dict>
+ <key>TYPE</key>
+ <integer>0</integer>
+ <key>UUID</key>
+ <string>9B2D545E-27A1-4879-AC73-08CB5C19461C</string>
+ </dict>
+ <dict>
+ <key>PACKAGE_FILES</key>
+ <dict>
+ <key>DEFAULT_INSTALL_LOCATION</key>
+ <string>/</string>
+ <key>HIERARCHY</key>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Utilities</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Applications</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>509</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Application Support</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Documentation</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Filesystems</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Frameworks</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Input Methods</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Internet Plug-Ins</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>LaunchAgents</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>LaunchDaemons</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>PreferencePanes</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Preferences</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Printers</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>PrivilegedHelperTools</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>QuickLook</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>QuickTime</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Screen Savers</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Scripts</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Services</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Widgets</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Library</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Extensions</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Library</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>System</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Shared</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>1023</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Users</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/bedops</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>bin</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>2</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>local</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>2</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>usr</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>2</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>/</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>PAYLOAD_TYPE</key>
+ <integer>0</integer>
+ <key>VERSION</key>
+ <integer>2</integer>
+ </dict>
+ <key>PACKAGE_SCRIPTS</key>
+ <dict>
+ <key>PREINSTALL_PATH</key>
+ <dict/>
+ <key>RESOURCES</key>
+ <array/>
+ </dict>
+ <key>PACKAGE_SETTINGS</key>
+ <dict>
+ <key>AUTHENTICATION</key>
+ <integer>1</integer>
+ <key>CONCLUSION_ACTION</key>
+ <integer>0</integer>
+ <key>IDENTIFIER</key>
+ <string>org.uwencode.bedops.bedops</string>
+ <key>LOCATION</key>
+ <integer>0</integer>
+ <key>NAME</key>
+ <string>bedops</string>
+ <key>OVERWRITE_PERMISSIONS</key>
+ <false/>
+ <key>VERSION</key>
+ <string>1.0</string>
+ </dict>
+ <key>TYPE</key>
+ <integer>0</integer>
+ <key>UUID</key>
+ <string>463350C4-1386-4384-B819-2B515C8528EE</string>
+ </dict>
+ <dict>
+ <key>PACKAGE_FILES</key>
+ <dict>
+ <key>DEFAULT_INSTALL_LOCATION</key>
+ <string>/</string>
+ <key>HIERARCHY</key>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Utilities</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Applications</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>509</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Application Support</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Documentation</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Filesystems</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Frameworks</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Input Methods</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Internet Plug-Ins</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>LaunchAgents</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>LaunchDaemons</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>PreferencePanes</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Preferences</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Printers</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>PrivilegedHelperTools</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>QuickLook</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>QuickTime</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Screen Savers</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Scripts</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Services</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Widgets</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Library</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Extensions</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Library</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>System</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Shared</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>1023</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Users</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/closest-features</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>bin</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>2</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>local</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>2</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>usr</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>2</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>/</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>PAYLOAD_TYPE</key>
+ <integer>0</integer>
+ <key>VERSION</key>
+ <integer>2</integer>
+ </dict>
+ <key>PACKAGE_SCRIPTS</key>
+ <dict>
+ <key>PREINSTALL_PATH</key>
+ <dict/>
+ <key>RESOURCES</key>
+ <array/>
+ </dict>
+ <key>PACKAGE_SETTINGS</key>
+ <dict>
+ <key>AUTHENTICATION</key>
+ <integer>1</integer>
+ <key>CONCLUSION_ACTION</key>
+ <integer>0</integer>
+ <key>IDENTIFIER</key>
+ <string>org.uwencode.bedops.closest-features</string>
+ <key>LOCATION</key>
+ <integer>0</integer>
+ <key>NAME</key>
+ <string>closest-features</string>
+ <key>OVERWRITE_PERMISSIONS</key>
+ <false/>
+ <key>VERSION</key>
+ <string>1.0</string>
+ </dict>
+ <key>TYPE</key>
+ <integer>0</integer>
+ <key>UUID</key>
+ <string>D083F74A-10D8-4671-AAC6-127C6A2A04A3</string>
+ </dict>
+ <dict>
+ <key>PACKAGE_FILES</key>
+ <dict>
+ <key>DEFAULT_INSTALL_LOCATION</key>
+ <string>/</string>
+ <key>HIERARCHY</key>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Utilities</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Applications</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>509</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Application Support</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Documentation</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Filesystems</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Frameworks</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Input Methods</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Internet Plug-Ins</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>LaunchAgents</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>LaunchDaemons</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>PreferencePanes</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Preferences</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Printers</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>PrivilegedHelperTools</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>QuickLook</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>QuickTime</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Screen Savers</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Scripts</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Services</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Widgets</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Library</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Extensions</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Library</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>System</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Shared</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>1023</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Users</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/sort-bed</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>bin</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>2</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>local</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>2</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>usr</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>2</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>/</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>PAYLOAD_TYPE</key>
+ <integer>0</integer>
+ <key>VERSION</key>
+ <integer>2</integer>
+ </dict>
+ <key>PACKAGE_SCRIPTS</key>
+ <dict>
+ <key>PREINSTALL_PATH</key>
+ <dict/>
+ <key>RESOURCES</key>
+ <array/>
+ </dict>
+ <key>PACKAGE_SETTINGS</key>
+ <dict>
+ <key>AUTHENTICATION</key>
+ <integer>1</integer>
+ <key>CONCLUSION_ACTION</key>
+ <integer>0</integer>
+ <key>IDENTIFIER</key>
+ <string>org.uwencode.bedops.sort-bed</string>
+ <key>LOCATION</key>
+ <integer>0</integer>
+ <key>NAME</key>
+ <string>sort-bed</string>
+ <key>OVERWRITE_PERMISSIONS</key>
+ <false/>
+ <key>VERSION</key>
+ <string>1.0</string>
+ </dict>
+ <key>TYPE</key>
+ <integer>0</integer>
+ <key>UUID</key>
+ <string>A3784EC0-1F88-4FBB-98B8-0A8B1C99ECA6</string>
+ </dict>
+ <dict>
+ <key>PACKAGE_FILES</key>
+ <dict>
+ <key>DEFAULT_INSTALL_LOCATION</key>
+ <string>/</string>
+ <key>HIERARCHY</key>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Utilities</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Applications</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>509</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Application Support</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Documentation</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Filesystems</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Frameworks</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Input Methods</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Internet Plug-Ins</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>LaunchAgents</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>LaunchDaemons</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>PreferencePanes</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Preferences</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Printers</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>PrivilegedHelperTools</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>QuickLook</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>QuickTime</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Screen Savers</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Scripts</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Services</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Widgets</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Library</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Extensions</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Library</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>System</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Shared</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>1023</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Users</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/starch</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/starchcat</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/unstarch</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>bin</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>2</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>local</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>2</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>usr</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>2</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>/</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>PAYLOAD_TYPE</key>
+ <integer>0</integer>
+ <key>VERSION</key>
+ <integer>2</integer>
+ </dict>
+ <key>PACKAGE_SCRIPTS</key>
+ <dict>
+ <key>PREINSTALL_PATH</key>
+ <dict/>
+ <key>RESOURCES</key>
+ <array/>
+ </dict>
+ <key>PACKAGE_SETTINGS</key>
+ <dict>
+ <key>AUTHENTICATION</key>
+ <integer>1</integer>
+ <key>CONCLUSION_ACTION</key>
+ <integer>0</integer>
+ <key>IDENTIFIER</key>
+ <string>org.uwencode.bedops.starch</string>
+ <key>LOCATION</key>
+ <integer>0</integer>
+ <key>NAME</key>
+ <string>starch</string>
+ <key>OVERWRITE_PERMISSIONS</key>
+ <false/>
+ <key>VERSION</key>
+ <string>1.0</string>
+ </dict>
+ <key>TYPE</key>
+ <integer>0</integer>
+ <key>UUID</key>
+ <string>1B6051C1-8C67-4A0E-B6A8-99D601B1ABF5</string>
+ </dict>
+ <dict>
+ <key>PACKAGE_FILES</key>
+ <dict>
+ <key>DEFAULT_INSTALL_LOCATION</key>
+ <string>/</string>
+ <key>HIERARCHY</key>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Utilities</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Applications</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>509</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Application Support</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Documentation</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Filesystems</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Frameworks</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Input Methods</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Internet Plug-Ins</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>LaunchAgents</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>LaunchDaemons</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>PreferencePanes</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Preferences</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Printers</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>PrivilegedHelperTools</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>QuickLook</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>QuickTime</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Screen Savers</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Scripts</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Services</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Widgets</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Library</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Extensions</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Library</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>System</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>Shared</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>1023</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>80</integer>
+ <key>PATH</key>
+ <string>Users</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/starchcluster_gnuParallel</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>CHILDREN</key>
+ <array/>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>resources/bin/starchcluster_sge</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>3</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>bin</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>2</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>local</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>2</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>usr</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>2</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>GID</key>
+ <integer>0</integer>
+ <key>PATH</key>
+ <string>/</string>
+ <key>PATH_TYPE</key>
+ <integer>0</integer>
+ <key>PERMISSIONS</key>
+ <integer>493</integer>
+ <key>TYPE</key>
+ <integer>1</integer>
+ <key>UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>PAYLOAD_TYPE</key>
+ <integer>0</integer>
+ <key>VERSION</key>
+ <integer>2</integer>
+ </dict>
+ <key>PACKAGE_SCRIPTS</key>
+ <dict>
+ <key>POSTINSTALL_PATH</key>
+ <dict/>
+ <key>PREINSTALL_PATH</key>
+ <dict/>
+ <key>RESOURCES</key>
+ <array/>
+ </dict>
+ <key>PACKAGE_SETTINGS</key>
+ <dict>
+ <key>AUTHENTICATION</key>
+ <integer>1</integer>
+ <key>CONCLUSION_ACTION</key>
+ <integer>0</integer>
+ <key>IDENTIFIER</key>
+ <string>org.uwencode.bedops.starchcluster</string>
+ <key>LOCATION</key>
+ <integer>0</integer>
+ <key>NAME</key>
+ <string>starchcluster</string>
+ <key>OVERWRITE_PERMISSIONS</key>
+ <false/>
+ <key>VERSION</key>
+ <string>1.0</string>
+ </dict>
+ <key>TYPE</key>
+ <integer>0</integer>
+ <key>UUID</key>
+ <string>F995F366-BC68-4AC7-B2AE-C7C05BAF635D</string>
+ </dict>
+ </array>
+ <key>PROJECT</key>
+ <dict>
+ <key>PROJECT_COMMENTS</key>
+ <dict>
+ <key>NOTES</key>
+ <data>
+ PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1M
+ IDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQv
+ c3RyaWN0LmR0ZCI+CjxodG1sPgo8aGVhZD4KPG1ldGEgaHR0cC1l
+ cXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7
+ IGNoYXJzZXQ9VVRGLTgiPgo8bWV0YSBodHRwLWVxdWl2PSJDb250
+ ZW50LVN0eWxlLVR5cGUiIGNvbnRlbnQ9InRleHQvY3NzIj4KPHRp
+ dGxlPjwvdGl0bGU+CjxtZXRhIG5hbWU9IkdlbmVyYXRvciIgY29u
+ dGVudD0iQ29jb2EgSFRNTCBXcml0ZXIiPgo8bWV0YSBuYW1lPSJD
+ b2NvYVZlcnNpb24iIGNvbnRlbnQ9IjE0MDQuMzQiPgo8c3R5bGUg
+ dHlwZT0idGV4dC9jc3MiPgo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5
+ Pgo8L2JvZHk+CjwvaHRtbD4K
+ </data>
+ </dict>
+ <key>PROJECT_PRESENTATION</key>
+ <dict>
+ <key>BACKGROUND</key>
+ <dict>
+ <key>ALIGNMENT</key>
+ <integer>0</integer>
+ <key>BACKGROUND_PATH</key>
+ <dict>
+ <key>PATH</key>
+ <string>resources/background/1024.png</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ </dict>
+ <key>CUSTOM</key>
+ <integer>1</integer>
+ <key>SCALING</key>
+ <integer>2</integer>
+ </dict>
+ <key>INSTALLATION TYPE</key>
+ <dict>
+ <key>HIERARCHIES</key>
+ <dict>
+ <key>INSTALLER</key>
+ <dict>
+ <key>LIST</key>
+ <array>
+ <dict>
+ <key>DESCRIPTION</key>
+ <array>
+ <dict>
+ <key>LANGUAGE</key>
+ <string>English</string>
+ <key>VALUE</key>
+ <string>The convert2bed binary and wrapper scripts convert data in common genomics formats from BAM, GFF, GTF, GVF, PSL, RepeatMasker annotation ouput (OUT), SAM, VCF, and WIG formats into sorted BED and BEDOPS Starch v2 files.</string>
+ </dict>
+ </array>
+ <key>OPTIONS</key>
+ <dict>
+ <key>HIDDEN</key>
+ <false/>
+ <key>STATE</key>
+ <integer>1</integer>
+ </dict>
+ <key>PACKAGE_UUID</key>
+ <string>2805A5DF-C777-40FB-8B3A-5046CBFC32A1</string>
+ <key>REQUIREMENTS</key>
+ <array/>
+ <key>TITLE</key>
+ <array>
+ <dict>
+ <key>LANGUAGE</key>
+ <string>English</string>
+ <key>VALUE</key>
+ <string>conversion scripts</string>
+ </dict>
+ </array>
+ <key>TOOLTIP</key>
+ <array/>
+ <key>TYPE</key>
+ <integer>0</integer>
+ <key>UUID</key>
+ <string>02869AAD-13D1-4413-8D49-4901594EE6B4</string>
+ </dict>
+ <dict>
+ <key>DESCRIPTION</key>
+ <array>
+ <dict>
+ <key>LANGUAGE</key>
+ <string>English</string>
+ <key>VALUE</key>
+ <string>The bedextract utility uses a binary search approach to perform three primary tasks, with the goal of doing them in very fast (logarithmic) time: 1) List all the chromosomes in a sorted input BED file. 2) Extract all the elements in a sorted input BED file, for a given chromosome. 3) Find elements of one BED file, which overlap elements in a second, reference BED file (when specific element criteria are satisfied).</string>
+ </dict>
+ </array>
+ <key>OPTIONS</key>
+ <dict>
+ <key>HIDDEN</key>
+ <false/>
+ <key>STATE</key>
+ <integer>1</integer>
+ </dict>
+ <key>PACKAGE_UUID</key>
+ <string>BB3A46E6-6CEE-496F-8D92-E228E4D90D82</string>
+ <key>REQUIREMENTS</key>
+ <array/>
+ <key>TITLE</key>
+ <array>
+ <dict>
+ <key>LANGUAGE</key>
+ <string>English</string>
+ <key>VALUE</key>
+ <string>bedextract</string>
+ </dict>
+ </array>
+ <key>TOOLTIP</key>
+ <array/>
+ <key>TYPE</key>
+ <integer>0</integer>
+ <key>UUID</key>
+ <string>9CA27134-F823-4B69-A5AC-12EBC84246EA</string>
+ </dict>
+ <dict>
+ <key>DESCRIPTION</key>
+ <array>
+ <dict>
+ <key>LANGUAGE</key>
+ <string>English</string>
+ <key>VALUE</key>
+ <string>The bedmap program is used to retrieve and process signal or other features over regions of interest in BED files (including DNase hypersensitive regions, SNPs, transcription factor binding sites, etc.), performing tasks such as: smoothing raw tag count signals in preparation for uploading to the UCSC Genome Browser, finding subsets of elements within a larger coordinate set, filtering multiple BED files by signal, finding multi-input overlap solutions, and much more.</string>
+ </dict>
+ </array>
+ <key>OPTIONS</key>
+ <dict>
+ <key>HIDDEN</key>
+ <false/>
+ <key>STATE</key>
+ <integer>1</integer>
+ </dict>
+ <key>PACKAGE_UUID</key>
+ <string>9B2D545E-27A1-4879-AC73-08CB5C19461C</string>
+ <key>REQUIREMENTS</key>
+ <array/>
+ <key>TITLE</key>
+ <array>
+ <dict>
+ <key>LANGUAGE</key>
+ <string>English</string>
+ <key>VALUE</key>
+ <string>bedmap</string>
+ </dict>
+ </array>
+ <key>TOOLTIP</key>
+ <array/>
+ <key>TYPE</key>
+ <integer>0</integer>
+ <key>UUID</key>
+ <string>8DD523FE-E608-49B4-B927-B305A4F4DF9A</string>
+ </dict>
+ <dict>
+ <key>DESCRIPTION</key>
+ <array>
+ <dict>
+ <key>LANGUAGE</key>
+ <string>English</string>
+ <key>VALUE</key>
+ <string>The bedops program offers several Boolean set and multiset operations, including union, subset, and difference, to assist investigators with finding relationships between two or more genomic datasets.</string>
+ </dict>
+ </array>
+ <key>OPTIONS</key>
+ <dict>
+ <key>HIDDEN</key>
+ <false/>
+ <key>STATE</key>
+ <integer>1</integer>
+ </dict>
+ <key>PACKAGE_UUID</key>
+ <string>463350C4-1386-4384-B819-2B515C8528EE</string>
+ <key>REQUIREMENTS</key>
+ <array/>
+ <key>TITLE</key>
+ <array>
+ <dict>
+ <key>LANGUAGE</key>
+ <string>English</string>
+ <key>VALUE</key>
+ <string>bedops</string>
+ </dict>
+ </array>
+ <key>TOOLTIP</key>
+ <array/>
+ <key>TYPE</key>
+ <integer>0</integer>
+ <key>UUID</key>
+ <string>F2FB71BD-34CC-491A-814A-A26CDAFCAE4A</string>
+ </dict>
+ <dict>
+ <key>DESCRIPTION</key>
+ <array>
+ <dict>
+ <key>LANGUAGE</key>
+ <string>English</string>
+ <key>VALUE</key>
+ <string>The closest-features program efficiently associates nearest features between two sorted inputs, based upon genomic distance measures.</string>
+ </dict>
+ </array>
+ <key>OPTIONS</key>
+ <dict>
+ <key>HIDDEN</key>
+ <false/>
+ <key>STATE</key>
+ <integer>1</integer>
+ </dict>
+ <key>PACKAGE_UUID</key>
+ <string>D083F74A-10D8-4671-AAC6-127C6A2A04A3</string>
+ <key>REQUIREMENTS</key>
+ <array/>
+ <key>TITLE</key>
+ <array>
+ <dict>
+ <key>LANGUAGE</key>
+ <string>English</string>
+ <key>VALUE</key>
+ <string>closest-features</string>
+ </dict>
+ </array>
+ <key>TOOLTIP</key>
+ <array/>
+ <key>TYPE</key>
+ <integer>0</integer>
+ <key>UUID</key>
+ <string>52290DC8-D808-429F-9F63-DC62DE868EF0</string>
+ </dict>
+ <dict>
+ <key>DESCRIPTION</key>
+ <array>
+ <dict>
+ <key>LANGUAGE</key>
+ <string>English</string>
+ <key>VALUE</key>
+ <string>The sort-bed program very efficiently sorts BED data into ordering that enables BEDOPS utilities to work efficiently with data from any species without software modifications. Sorted BED order is defined first by lexicographic chromosome order, then ascending integer start coordinate order, and finally by ascending integer end coordinate order.</string>
+ </dict>
+ </array>
+ <key>OPTIONS</key>
+ <dict>
+ <key>HIDDEN</key>
+ <false/>
+ <key>STATE</key>
+ <integer>1</integer>
+ </dict>
+ <key>PACKAGE_UUID</key>
+ <string>A3784EC0-1F88-4FBB-98B8-0A8B1C99ECA6</string>
+ <key>REQUIREMENTS</key>
+ <array/>
+ <key>TITLE</key>
+ <array>
+ <dict>
+ <key>LANGUAGE</key>
+ <string>English</string>
+ <key>VALUE</key>
+ <string>sort-bed</string>
+ </dict>
+ </array>
+ <key>TOOLTIP</key>
+ <array/>
+ <key>TYPE</key>
+ <integer>0</integer>
+ <key>UUID</key>
+ <string>2AEC4C9C-B2A9-4128-A688-6E9EE06A20F8</string>
+ </dict>
+ <dict>
+ <key>DESCRIPTION</key>
+ <array>
+ <dict>
+ <key>LANGUAGE</key>
+ <string>English</string>
+ <key>VALUE</key>
+ <string>The starch program compresses BED data to Starch v2 archives, the unstarch program extracts Starch v1 and v2 archives, and the starchcat program intelligently concatenates multiple Starch v1 and v2 archives.</string>
+ </dict>
+ </array>
+ <key>OPTIONS</key>
+ <dict>
+ <key>HIDDEN</key>
+ <false/>
+ <key>STATE</key>
+ <integer>1</integer>
+ </dict>
+ <key>PACKAGE_UUID</key>
+ <string>1B6051C1-8C67-4A0E-B6A8-99D601B1ABF5</string>
+ <key>REQUIREMENTS</key>
+ <array/>
+ <key>TITLE</key>
+ <array>
+ <dict>
+ <key>LANGUAGE</key>
+ <string>English</string>
+ <key>VALUE</key>
+ <string>starch, starchcat and unstarch</string>
+ </dict>
+ </array>
+ <key>TOOLTIP</key>
+ <array/>
+ <key>TYPE</key>
+ <integer>0</integer>
+ <key>UUID</key>
+ <string>AD2662E1-4895-4DDA-AE69-07BF76377874</string>
+ </dict>
+ <dict>
+ <key>DESCRIPTION</key>
+ <array>
+ <dict>
+ <key>LANGUAGE</key>
+ <string>English</string>
+ <key>VALUE</key>
+ <string>This package installs the SGE- (Sun Grid Engine) and GNU Parallels-based starchcluster scripts, which parallelize Starch v2 archive creation.</string>
+ </dict>
+ </array>
+ <key>OPTIONS</key>
+ <dict>
+ <key>HIDDEN</key>
+ <false/>
+ <key>STATE</key>
+ <integer>1</integer>
+ </dict>
+ <key>PACKAGE_UUID</key>
+ <string>F995F366-BC68-4AC7-B2AE-C7C05BAF635D</string>
+ <key>REQUIREMENTS</key>
+ <array/>
+ <key>TITLE</key>
+ <array>
+ <dict>
+ <key>LANGUAGE</key>
+ <string>English</string>
+ <key>VALUE</key>
+ <string>starchcluster helper scripts</string>
+ </dict>
+ </array>
+ <key>TOOLTIP</key>
+ <array/>
+ <key>TYPE</key>
+ <integer>0</integer>
+ <key>UUID</key>
+ <string>BB83605B-AB9C-4E69-BF71-DA3A9A013506</string>
+ </dict>
+ </array>
+ <key>REMOVED</key>
+ <dict/>
+ </dict>
+ </dict>
+ <key>INSTALLATION TYPE</key>
+ <integer>0</integer>
+ </dict>
+ <key>INSTALLATION_STEPS</key>
+ <array>
+ <dict>
+ <key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key>
+ <string>ICPresentationViewIntroductionController</string>
+ <key>INSTALLER_PLUGIN</key>
+ <string>Introduction</string>
+ <key>LIST_TITLE_KEY</key>
+ <string>InstallerSectionTitle</string>
+ </dict>
+ <dict>
+ <key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key>
+ <string>ICPresentationViewReadMeController</string>
+ <key>INSTALLER_PLUGIN</key>
+ <string>ReadMe</string>
+ <key>LIST_TITLE_KEY</key>
+ <string>InstallerSectionTitle</string>
+ </dict>
+ <dict>
+ <key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key>
+ <string>ICPresentationViewLicenseController</string>
+ <key>INSTALLER_PLUGIN</key>
+ <string>License</string>
+ <key>LIST_TITLE_KEY</key>
+ <string>InstallerSectionTitle</string>
+ </dict>
+ <dict>
+ <key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key>
+ <string>ICPresentationViewDestinationSelectController</string>
+ <key>INSTALLER_PLUGIN</key>
+ <string>TargetSelect</string>
+ <key>LIST_TITLE_KEY</key>
+ <string>InstallerSectionTitle</string>
+ </dict>
+ <dict>
+ <key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key>
+ <string>ICPresentationViewInstallationTypeController</string>
+ <key>INSTALLER_PLUGIN</key>
+ <string>PackageSelection</string>
+ <key>LIST_TITLE_KEY</key>
+ <string>InstallerSectionTitle</string>
+ </dict>
+ <dict>
+ <key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key>
+ <string>ICPresentationViewInstallationController</string>
+ <key>INSTALLER_PLUGIN</key>
+ <string>Install</string>
+ <key>LIST_TITLE_KEY</key>
+ <string>InstallerSectionTitle</string>
+ </dict>
+ <dict>
+ <key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key>
+ <string>ICPresentationViewSummaryController</string>
+ <key>INSTALLER_PLUGIN</key>
+ <string>Summary</string>
+ <key>LIST_TITLE_KEY</key>
+ <string>InstallerSectionTitle</string>
+ </dict>
+ </array>
+ <key>INTRODUCTION</key>
+ <dict>
+ <key>LOCALIZATIONS</key>
+ <array>
+ <dict>
+ <key>LANGUAGE</key>
+ <string>English</string>
+ <key>VALUE</key>
+ <dict>
+ <key>PATH</key>
+ <string>resources/docs/Introduction.rtf</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ </dict>
+ </dict>
+ </array>
+ </dict>
+ <key>LICENSE</key>
+ <dict>
+ <key>KEYWORDS</key>
+ <dict/>
+ <key>LOCALIZATIONS</key>
+ <array/>
+ <key>MODE</key>
+ <integer>0</integer>
+ </dict>
+ <key>README</key>
+ <dict>
+ <key>LOCALIZATIONS</key>
+ <array>
+ <dict>
+ <key>LANGUAGE</key>
+ <string>English</string>
+ <key>VALUE</key>
+ <dict>
+ <key>PATH</key>
+ <string>resources/docs/Read Me.rtf</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ </dict>
+ </dict>
+ </array>
+ </dict>
+ <key>SUMMARY</key>
+ <dict>
+ <key>LOCALIZATIONS</key>
+ <array/>
+ </dict>
+ <key>TITLE</key>
+ <dict>
+ <key>LOCALIZATIONS</key>
+ <array>
+ <dict>
+ <key>LANGUAGE</key>
+ <string>English</string>
+ <key>VALUE</key>
+ <string>BEDOPS 2.4.20</string>
+ </dict>
+ </array>
+ </dict>
+ </dict>
+ <key>PROJECT_REQUIREMENTS</key>
+ <dict>
+ <key>LIST</key>
+ <array>
+ <dict>
+ <key>BEHAVIOR</key>
+ <integer>3</integer>
+ <key>DICTIONARY</key>
+ <dict>
+ <key>IC_REQUIREMENT_OS_DISK_TYPE</key>
+ <integer>0</integer>
+ <key>IC_REQUIREMENT_OS_DISTRIBUTION_TYPE</key>
+ <integer>0</integer>
+ <key>IC_REQUIREMENT_OS_MINIMUM_VERSION</key>
+ <integer>100700</integer>
+ </dict>
+ <key>IC_REQUIREMENT_CHECK_TYPE</key>
+ <integer>1</integer>
+ <key>IDENTIFIER</key>
+ <string>fr.whitebox.Packages.requirement.os</string>
+ <key>MESSAGE</key>
+ <array>
+ <dict>
+ <key>LANGUAGE</key>
+ <string>English</string>
+ <key>VALUE</key>
+ <string>This installer requires at least Mac OS X 10.7</string>
+ </dict>
+ </array>
+ <key>NAME</key>
+ <string>Operating System</string>
+ <key>STATE</key>
+ <true/>
+ </dict>
+ <dict>
+ <key>BEHAVIOR</key>
+ <integer>3</integer>
+ <key>DICTIONARY</key>
+ <dict>
+ <key>IC_REQUIREMENT_OS_DISK_TYPE</key>
+ <integer>0</integer>
+ <key>IC_REQUIREMENT_OS_DISTRIBUTION_TYPE</key>
+ <integer>0</integer>
+ <key>IC_REQUIREMENT_OS_MINIMUM_VERSION</key>
+ <integer>100700</integer>
+ </dict>
+ <key>IC_REQUIREMENT_CHECK_TYPE</key>
+ <integer>1</integer>
+ <key>IDENTIFIER</key>
+ <string>fr.whitebox.Packages.requirement.os</string>
+ <key>MESSAGE</key>
+ <array>
+ <dict>
+ <key>LANGUAGE</key>
+ <string>English</string>
+ <key>SECONDARY_VALUE</key>
+ <string>BEDOPS for Mac OS X requires an Intel processor</string>
+ <key>VALUE</key>
+ <string>Processor requirement</string>
+ </dict>
+ </array>
+ <key>NAME</key>
+ <string>Processor</string>
+ <key>STATE</key>
+ <true/>
+ </dict>
+ </array>
+ <key>POSTINSTALL_PATH</key>
+ <dict/>
+ <key>PREINSTALL_PATH</key>
+ <dict/>
+ <key>RESOURCES</key>
+ <array/>
+ <key>ROOT_VOLUME_ONLY</key>
+ <true/>
+ </dict>
+ <key>PROJECT_SETTINGS</key>
+ <dict>
+ <key>ADVANCED_OPTIONS</key>
+ <dict/>
+ <key>BUILD_FORMAT</key>
+ <integer>0</integer>
+ <key>BUILD_PATH</key>
+ <dict>
+ <key>PATH</key>
+ <string>build</string>
+ <key>PATH_TYPE</key>
+ <integer>1</integer>
+ </dict>
+ <key>CERTIFICATE</key>
+ <dict>
+ <key>NAME</key>
+ <string>Developer ID Installer: Alex Reynolds (DLZRG65Q5B)</string>
+ <key>PATH</key>
+ <string>/Users/alexpreynolds/Library/Keychains/login.keychain</string>
+ </dict>
+ <key>EXCLUDED_FILES</key>
+ <array>
+ <dict>
+ <key>PATTERNS_ARRAY</key>
+ <array>
+ <dict>
+ <key>REGULAR_EXPRESSION</key>
+ <false/>
+ <key>STRING</key>
+ <string>.DS_Store</string>
+ <key>TYPE</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>PROTECTED</key>
+ <true/>
+ <key>PROXY_NAME</key>
+ <string>Remove .DS_Store files</string>
+ <key>PROXY_TOOLTIP</key>
+ <string>Remove ".DS_Store" files created by the Finder.</string>
+ <key>STATE</key>
+ <true/>
+ </dict>
+ <dict>
+ <key>PATTERNS_ARRAY</key>
+ <array>
+ <dict>
+ <key>REGULAR_EXPRESSION</key>
+ <false/>
+ <key>STRING</key>
+ <string>.pbdevelopment</string>
+ <key>TYPE</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>PROTECTED</key>
+ <true/>
+ <key>PROXY_NAME</key>
+ <string>Remove .pbdevelopment files</string>
+ <key>PROXY_TOOLTIP</key>
+ <string>Remove ".pbdevelopment" files created by ProjectBuilder or Xcode.</string>
+ <key>STATE</key>
+ <true/>
+ </dict>
+ <dict>
+ <key>PATTERNS_ARRAY</key>
+ <array>
+ <dict>
+ <key>REGULAR_EXPRESSION</key>
+ <false/>
+ <key>STRING</key>
+ <string>CVS</string>
+ <key>TYPE</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>REGULAR_EXPRESSION</key>
+ <false/>
+ <key>STRING</key>
+ <string>.cvsignore</string>
+ <key>TYPE</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>REGULAR_EXPRESSION</key>
+ <false/>
+ <key>STRING</key>
+ <string>.cvspass</string>
+ <key>TYPE</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>REGULAR_EXPRESSION</key>
+ <false/>
+ <key>STRING</key>
+ <string>.svn</string>
+ <key>TYPE</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>REGULAR_EXPRESSION</key>
+ <false/>
+ <key>STRING</key>
+ <string>.git</string>
+ <key>TYPE</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>REGULAR_EXPRESSION</key>
+ <false/>
+ <key>STRING</key>
+ <string>.gitignore</string>
+ <key>TYPE</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>PROTECTED</key>
+ <true/>
+ <key>PROXY_NAME</key>
+ <string>Remove SCM metadata</string>
+ <key>PROXY_TOOLTIP</key>
+ <string>Remove helper files and folders used by the CVS, SVN or Git Source Code Management systems.</string>
+ <key>STATE</key>
+ <true/>
+ </dict>
+ <dict>
+ <key>PATTERNS_ARRAY</key>
+ <array>
+ <dict>
+ <key>REGULAR_EXPRESSION</key>
+ <false/>
+ <key>STRING</key>
+ <string>classes.nib</string>
+ <key>TYPE</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>REGULAR_EXPRESSION</key>
+ <false/>
+ <key>STRING</key>
+ <string>designable.db</string>
+ <key>TYPE</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>REGULAR_EXPRESSION</key>
+ <false/>
+ <key>STRING</key>
+ <string>info.nib</string>
+ <key>TYPE</key>
+ <integer>0</integer>
+ </dict>
+ </array>
+ <key>PROTECTED</key>
+ <true/>
+ <key>PROXY_NAME</key>
+ <string>Optimize nib files</string>
+ <key>PROXY_TOOLTIP</key>
+ <string>Remove "classes.nib", "info.nib" and "designable.nib" files within .nib bundles.</string>
+ <key>STATE</key>
+ <true/>
+ </dict>
+ <dict>
+ <key>PATTERNS_ARRAY</key>
+ <array>
+ <dict>
+ <key>REGULAR_EXPRESSION</key>
+ <false/>
+ <key>STRING</key>
+ <string>Resources Disabled</string>
+ <key>TYPE</key>
+ <integer>1</integer>
+ </dict>
+ </array>
+ <key>PROTECTED</key>
+ <true/>
+ <key>PROXY_NAME</key>
+ <string>Remove Resources Disabled folders</string>
+ <key>PROXY_TOOLTIP</key>
+ <string>Remove "Resources Disabled" folders.</string>
+ <key>STATE</key>
+ <true/>
+ </dict>
+ <dict>
+ <key>SEPARATOR</key>
+ <true/>
+ </dict>
+ </array>
+ <key>NAME</key>
+ <string>BEDOPS 2.4.20</string>
+ </dict>
+ </dict>
+ <key>TYPE</key>
+ <integer>0</integer>
+ <key>VERSION</key>
+ <integer>2</integer>
+</dict>
+</plist>
diff --git a/packaging/os_x/resources/background/1024.png b/packaging/os_x/resources/background/1024.png
new file mode 100644
index 0000000..bf42554
Binary files /dev/null and b/packaging/os_x/resources/background/1024.png differ
diff --git a/packaging/os_x/resources/docs/IntroUninstaller.rtf b/packaging/os_x/resources/docs/IntroUninstaller.rtf
new file mode 100644
index 0000000..84bc762
--- /dev/null
+++ b/packaging/os_x/resources/docs/IntroUninstaller.rtf
@@ -0,0 +1,9 @@
+{\rtf1\ansi\ansicpg1252\cocoartf1343\cocoasubrtf160
+{\fonttbl\f0\fnil\fcharset0 HelveticaNeue-Light;\f1\fnil\fcharset0 HelveticaNeue;}
+{\colortbl;\red255\green255\blue255;}
+\margl1440\margr1440\vieww12600\viewh7800\viewkind0
+\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural
+
+\f0\fs28 \cf0 This package removes a
+\f1\b BEDOPS
+\f0\b0 installation from your workstation.}
diff --git a/packaging/os_x/resources/docs/Introduction.rtf b/packaging/os_x/resources/docs/Introduction.rtf
new file mode 100644
index 0000000..bf54086
--- /dev/null
+++ b/packaging/os_x/resources/docs/Introduction.rtf
@@ -0,0 +1,10 @@
+{\rtf1\ansi\ansicpg1252\cocoartf1344\cocoasubrtf360
+{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;}
+{\colortbl;\red255\green255\blue255;}
+\margl1440\margr1440\vieww12600\viewh7800\viewkind0
+\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural
+
+\f0\b\fs28 \cf0 BEDOPS
+\b0 is a suite of tools to address common questions raised in genomic studies \'97 mostly with regard to overlap and proximity relationships between data sets. \
+\
+This toolkit aims to be scalable and flexible, facilitating the efficient and accurate analysis and management of "whole genome" or large-scale genomic data.}
diff --git a/packaging/os_x/resources/docs/Read Me.rtf b/packaging/os_x/resources/docs/Read Me.rtf
new file mode 100644
index 0000000..f676d57
--- /dev/null
+++ b/packaging/os_x/resources/docs/Read Me.rtf
@@ -0,0 +1,24 @@
+{\rtf1\ansi\ansicpg1252\cocoartf1404\cocoasubrtf340
+{\fonttbl\f0\fnil\fcharset0 HelveticaNeue;\f1\fnil\fcharset0 Monaco;\f2\fnil\fcharset0 HelveticaNeue-Light;
+}
+{\colortbl;\red255\green255\blue255;}
+\margl1440\margr1440\vieww12600\viewh7800\viewkind0
+\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0
+
+\f0\b\fs28 \cf0 BEDOPS
+\b0 binaries and scripts will be installed in
+\i\b /usr/local/bin
+\i0\b0 and this installer will therefore need to ask you to grant administrator-level access to your startup volume. \
+\
+If you do not wish to enter this information, please instead download and build the source code from the
+\b BEDOPS
+\b0 Github site (see: {\field{\*\fldinst{HYPERLINK "http://bedops.readthedocs.io/en/latest/content/installation.html#installation-via-source-code"}}{\fldrslt
+\f1\fs24 http://bedops.readthedocs.io/en/latest/content/installation.html#installation-via-source-code}}
+\f2 ).\
+\
+
+\f0 You should be able to run these binaries in a command-line environment without any extra work on most workstations. If not found, be sure that
+\i\b /usr/local/bin
+\i0\b0 is in your shell's
+\b PATH
+\b0 environment variable, and append it, if necessary.}
\ No newline at end of file
diff --git a/packaging/os_x/resources/scripts/post-install.bedops-uninstaller.sh b/packaging/os_x/resources/scripts/post-install.bedops-uninstaller.sh
new file mode 100755
index 0000000..ee3ee7b
--- /dev/null
+++ b/packaging/os_x/resources/scripts/post-install.bedops-uninstaller.sh
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+rm -f /Library/Application\ Support/BEDOPS/libstdc++.6.dylib
+rm -f /Library/Application\ Support/BEDOPS/libgcc_s.1.dylib
+rm -f /usr/local/bin/bedextract
+rm -f /usr/local/bin/bedmap
+rm -f /usr/local/bin/bedops
+rm -f /usr/local/bin/closest-features
+rm -f /usr/local/bin/sort-bed
+rm -f /usr/local/bin/starch
+rm -f /usr/local/bin/starchcat
+rm -f /usr/local/bin/unstarch
+rm -f /usr/local/bin/starchcluster
+rm -f /usr/local/bin/starchcluster.gnu_parallel
+rm -f /usr/local/bin/bam2bed
+rm -f /usr/local/bin/bam2starch
+rm -f /usr/local/bin/bam2bed_sge
+rm -f /usr/local/bin/bam2starch_sge
+rm -f /usr/local/bin/bam2bed_gnuParallel
+rm -f /usr/local/bin/bam2starch_gnuParallel
+rm -f /usr/local/bin/gff2bed
+rm -f /usr/local/bin/gff2starch
+rm -f /usr/local/bin/gtf2bed
+rm -f /usr/local/bin/gtf2starch
+rm -f /usr/local/bin/psl2bed
+rm -f /usr/local/bin/psl2starch
+rm -f /usr/local/bin/sam2bed
+rm -f /usr/local/bin/sam2starch
+rm -f /usr/local/bin/vcf2bed
+rm -f /usr/local/bin/vcf2starch
+rm -f /usr/local/bin/wig2bed
+rm -f /usr/local/bin/wig2bed_bin
+rm -f /usr/local/bin/wig2starch
+rm -f /usr/local/bin/convert2bed
+
+exit 0
+
+
diff --git a/packaging/rpm/Dockerfile b/packaging/rpm/Dockerfile
new file mode 100644
index 0000000..46c87e5
--- /dev/null
+++ b/packaging/rpm/Dockerfile
@@ -0,0 +1,19 @@
+FROM centos:7
+
+# install the necessary tooling
+RUN yum -y install tar \
+ make \
+ gcc \
+ gcc-c++ \
+ rpm-build \
+ glibc-static \
+ libstdc++-static
+
+# copy the source context into the local image & build/install
+# note: make sure .dockerignore is up to date
+RUN mkdir /bedops-2.4.20
+ADD . /bedops-2.4.20
+RUN tar zcf /bedops-2.4.20.tar.gz bedops-2.4.20
+RUN rm -rf /bedops-2.4.20
+RUN rpmbuild -ta bedops-2.4.20.tar.gz
+RUN rm /bedops-2.4.20.tar.gz
diff --git a/packaging/rpm/bedops.spec b/packaging/rpm/bedops.spec
new file mode 100644
index 0000000..664743b
--- /dev/null
+++ b/packaging/rpm/bedops.spec
@@ -0,0 +1,28 @@
+Name: bedops
+Version: 2.4.20
+Release: 1
+Summary: A suite of tools to address common questions raised in genomic studies.
+Group: Applications/Productivity
+License: GPLv2
+URL: http://bedops.readthedocs.org/
+Source0: %{name}-%{version}.tar.gz
+Requires: tcsh
+BuildRequires: glibc-static
+BuildRequires: libstdc++-static
+
+%description
+BEDOPS is a suite of tools to address common questions raised in genomic studies — mostly with regard to overlap and proximity relationships between data sets. It aims to be scalable and flexible, facilitating the efficient and accurate analysis and management of large-scale genomic data.
+
+%prep
+%autosetup
+
+%build
+make %{?_smp_mflags}
+%install
+make install BINDIR=%{buildroot}%_bindir
+%clean
+make clean
+
+%files
+%{_bindir}/*
+%doc LICENSE README.md
diff --git a/system.mk/Makefile.darwin b/system.mk/Makefile.darwin
new file mode 100644
index 0000000..dafd81a
--- /dev/null
+++ b/system.mk/Makefile.darwin
@@ -0,0 +1,290 @@
+PARTY3 = third-party
+BZIP2VERSION = bzip2-1.0.6
+WHICHBZIP2 := ${PARTY3}/${BZIP2VERSION}
+JANSSONVERSION = jansson-2.6
+WHICHJANSSON := ${PARTY3}/${JANSSONVERSION}
+ZLIBVERSION = zlib-1.2.7
+WHICHZLIB := ${PARTY3}/${ZLIBVERSION}
+APPDIR = applications/bed
+BINDIR = bin
+OSXPKGROOT = packaging/os_x
+OSXBUILDDIR = ${OSXPKGROOT}/build
+OSXPKGDIR = ${OSXPKGROOT}/resources/bin
+OSXLIBDIR = ${OSXPKGROOT}/resources/lib
+WDIR = ${shell pwd}
+export CC = clang
+export CXX = clang++
+SELF = ${WDIR}/system.mk/Makefile.darwin
+I386 = darwin_intel_i386
+X86_64 = darwin_intel_x86_64
+
+
+default: support
+ $(MAKE) build -f $(SELF)
+
+SUBDIRS = bedmap/src sort-bed/src bedops/src closestfeats/src bedextract/src starch/src conversion/src
+SUBDIRS_FULL := $(patsubst %,${APPDIR}/%,$(SUBDIRS))
+SUBDIRS_I386 := $(patsubst %,%_i386,$(SUBDIRS))
+SUBDIRS_X86_64 := $(patsubst %,%_x86_64,$(SUBDIRS))
+
+.PHONY: $(SUBDIRS)
+.PHONY: $(SUBDIRS_FULL)
+.PHONY: $(SUBDIRS_I386)
+.PHONY: $(SUBDIRS_X86_64)
+
+# $@ needs ${APPDIR}/ as a prefix
+$(SUBDIRS):
+ export ARCH=i386 && $(MAKE) -C ${APPDIR}/$@ -f Makefile.darwin $(MAKECMDGOALS)
+
+# $@ has full path info
+$(SUBDIRS_FULL):
+ export ARCH=x86_64 && $(MAKE) -C $@ -f Makefile.darwin $(MAKECMDGOALS)
+
+# prereq is $(SUBDIRS)
+.SECONDEXPANSION:
+$(SUBDIRS_I386): $$(patsubst %_i386,%,$$@)
+
+# prereq is $(SUBDIRS_FULL)
+.SECONDEXPANSION:
+$(SUBDIRS_X86_64): $$(patsubst %_x86_64,${APPDIR}/%,$$@)
+
+all: $(SUBDIRS_I386) $(SUBDIRS_X86_64)
+
+build: all
+ $(MAKE) build_fat -f $(SELF)
+
+build_fat: sort_c_intel_fat bedops_c_intel_fat closestfeatures_c_intel_fat bedmap_c_intel_fat bedextract_c_intel_fat convert2bed_c_intel_fat starch_c_intel_fat
+
+debug: support
+ $(MAKE) build_debug -f $(SELF)
+
+build_debug: all
+ $(MAKE) dbg_build_fat -f $(SELF)
+
+dbg_build_fat: dbg_sort_c_intel_fat dbg_bedops_c_intel_fat dbg_closestfeatures_c_intel_fat dbg_bedmap_c_intel_fat dbg_bedextract_c_intel_fat dbg_convert2bed_c_intel_fat dbg_starch_c_intel_fat
+
+#
+# clean ups
+#
+clean: clean_debug clean_gprof all
+ rm -f ${BINDIR}/sort-bed
+ rm -f ${BINDIR}/bedops
+ rm -f ${BINDIR}/closest-features
+ rm -f ${BINDIR}/bedmap
+ rm -f ${BINDIR}/bedextract
+ rm -f ${BINDIR}/starch
+ rm -f ${BINDIR}/unstarch
+ rm -f ${BINDIR}/starchcat
+ rm -f ${BINDIR}/starchcluster*
+ rm -f ${BINDIR}/bam2bed
+ rm -f ${BINDIR}/bam2bed*
+ rm -f ${BINDIR}/gff2bed
+ rm -f ${BINDIR}/gtf2bed
+ rm -f ${BINDIR}/gvf2bed
+ rm -f ${BINDIR}/psl2bed
+ rm -f ${BINDIR}/rmsk2bed
+ rm -f ${BINDIR}/sam2bed
+ rm -f ${BINDIR}/vcf2bed
+ rm -f ${BINDIR}/wig2bed
+ rm -f ${BINDIR}/convert2bed
+ rm -f ${BINDIR}/bam2starch
+ rm -f ${BINDIR}/bam2starch*
+ rm -f ${BINDIR}/gff2starch
+ rm -f ${BINDIR}/gtf2starch
+ rm -f ${BINDIR}/gvf2starch
+ rm -f ${BINDIR}/psl2starch
+ rm -f ${BINDIR}/rmsk2starch
+ rm -f ${BINDIR}/sam2starch
+ rm -f ${BINDIR}/vcf2starch
+ rm -f ${BINDIR}/wig2starch
+ rm -f ${OSXPKGDIR}/*
+ rm -f ${OSXLIBDIR}/*
+ rm -Rf ${OSXBUILDDIR}/*
+ rm -rf ${WHICHBZIP2}
+ rm -f ${PARTY3}/bzip2
+ rm -rf ${WHICHJANSSON}
+ rm -f ${PARTY3}/jansson
+ rm -rf ${WHICHZLIB}
+ rm -f ${PARTY3}/zlib
+ rm -rf ${PARTY3}/$(I386)
+ rm -rf ${PARTY3}/$(X86_64)
+ rm -f ${APPDIR}/starch/bin/*starch*
+ rm -Rf ${BINDIR}
+
+clean_debug:
+ rm -f ${BINDIR}/debug.sort-bed
+ rm -f ${BINDIR}/debug.bedops
+ rm -f ${BINDIR}/debug.closest-features
+ rm -f ${BINDIR}/debug.bedmap
+ rm -f ${BINDIR}/debug.bedextract
+ rm -f ${BINDIR}/debug.starch
+ rm -f ${BINDIR}/debug.unstarch
+ rm -f ${BINDIR}/debug.starchcat
+ rm -f ${BINDIR}/starchcluster*
+ rm -f ${BINDIR}/bam2bed
+ rm -f ${BINDIR}/bam2bed*
+ rm -f ${BINDIR}/gff2bed
+ rm -f ${BINDIR}/gtf2bed
+ rm -f ${BINDIR}/gvf2bed
+ rm -f ${BINDIR}/psl2bed
+ rm -f ${BINDIR}/rmsk2bed
+ rm -f ${BINDIR}/sam2bed
+ rm -f ${BINDIR}/vcf2bed
+ rm -f ${BINDIR}/wig2bed
+ rm -f ${BINDIR}/debug.convert2bed
+ rm -f ${BINDIR}/bam2starch
+ rm -f ${BINDIR}/bam2starch*
+ rm -f ${BINDIR}/gff2starch
+ rm -f ${BINDIR}/gtf2starch
+ rm -f ${BINDIR}/gvf2starch
+ rm -f ${BINDIR}/psl2starch
+ rm -f ${BINDIR}/rmsk2starch
+ rm -f ${BINDIR}/sam2starch
+ rm -f ${BINDIR}/vcf2starch
+ rm -f ${BINDIR}/wig2starch
+ rm -Rf ${BINDIR}
+
+clean_gprof:
+ rm -f ${BINDIR}/gprof.sort-bed
+ rm -f ${BINDIR}/gprof.bedops
+ rm -f ${BINDIR}/gprof.closest-features
+ rm -f ${BINDIR}/gprof.bedmap
+ rm -f ${BINDIR}/gprof.bedextract
+ rm -f ${BINDIR}/gprof.starch
+ rm -f ${BINDIR}/gprof.unstarch
+ rm -f ${BINDIR}/gprof.starchcat
+ rm -f ${BINDIR}/starchcluster*
+ rm -f ${BINDIR}/bam2bed
+ rm -f ${BINDIR}/bam2bed*
+ rm -f ${BINDIR}/gff2bed
+ rm -f ${BINDIR}/gtf2bed
+ rm -f ${BINDIR}/gvf2bed
+ rm -f ${BINDIR}/psl2bed
+ rm -f ${BINDIR}/rmsk2bed
+ rm -f ${BINDIR}/sam2bed
+ rm -f ${BINDIR}/vcf2bed
+ rm -f ${BINDIR}/wig2bed
+ rm -f ${BINDIR}/gprof.convert2bed
+ rm -f ${BINDIR}/bam2starch
+ rm -f ${BINDIR}/bam2starch*
+ rm -f ${BINDIR}/gff2starch
+ rm -f ${BINDIR}/gtf2starch
+ rm -f ${BINDIR}/gvf2starch
+ rm -f ${BINDIR}/psl2starch
+ rm -f ${BINDIR}/rmsk2starch
+ rm -f ${BINDIR}/sam2starch
+ rm -f ${BINDIR}/vcf2starch
+ rm -f ${BINDIR}/wig2starch
+ rm -Rf ${BINDIR}
+
+
+#
+# mkdir's
+#
+mkdirs:
+ mkdir -p ${PARTY3}/$(I386)
+ mkdir -p ${PARTY3}/$(X86_64)
+ mkdir -p ${APPDIR}/sort-bed/bin
+ mkdir -p ${APPDIR}/bedops/bin
+ mkdir -p ${APPDIR}/closestfeats/bin
+ mkdir -p ${APPDIR}/bedmap/bin
+ mkdir -p ${APPDIR}/bedextract/bin
+ mkdir -p ${APPDIR}/starch/bin
+ mkdir -p ${APPDIR}/conversion/bin
+
+
+#
+# third-party libraries
+#
+support_intel_i386: jansson_support_intel_i386_c bzip2_support_intel_i386_c zlib_support_intel_i386_c
+
+support_intel_x86_64: jansson_support_intel_x86_64_c bzip2_support_intel_x86_64_c zlib_support_intel_x86_64_c
+
+support_intel: support_intel_i386 support_intel_x86_64
+
+support: | mkdirs
+ $(MAKE) support_intel -f $(SELF)
+
+jansson_support_intel_i386_c:
+ bzcat ${WHICHJANSSON}.tar.bz2 | tar -x -C ${PARTY3}/$(I386)/
+ cd ${PARTY3}/$(I386)/${JANSSONVERSION} && export MACOSX_DEPLOYMENT_TARGET=10.7 && export ARCH=i386 && export CC=${CC} && export CXX=${CXX} && ./configure --prefix=${WDIR}/${PARTY3}/$(I386)/${JANSSONVERSION} CFLAGS="-arch i386" --build="i386" && $(MAKE) && $(MAKE) install && cd ../ && rm -f jansson && ln -sf ${JANSSONVERSION} jansson && cd ${WDIR}
+
+jansson_support_intel_x86_64_c:
+ bzcat ${WHICHJANSSON}.tar.bz2 | tar -x -C ${PARTY3}/$(X86_64)/
+ cd ${PARTY3}/$(X86_64)/${JANSSONVERSION} && export MACOSX_DEPLOYMENT_TARGET=10.7 && export ARCH=x86_64 && export CC=${CC} && export CXX=${CXX} && ./configure --prefix=${WDIR}/${PARTY3}/$(X86_64)/${JANSSONVERSION} CFLAGS="-arch x86_64" --build="x86_64" && $(MAKE) && $(MAKE) install && cd ../ && rm -f jansson && ln -sf ${JANSSONVERSION} jansson && cd ${WDIR}
+
+bzip2_support_intel_i386_c:
+ bzcat ${WHICHBZIP2}.tar.bz2 | tar -x -C ${PARTY3}/$(I386)/
+ cd ${PARTY3}/$(I386)/${BZIP2VERSION} && export MACOSX_DEPLOYMENT_TARGET=10.7 && export ARCH=i386 && export CC=${CC} && export CXX=${CXX} && $(MAKE) -f Makefile.darwin_i386 libbz2.a && cd ../ && rm -f bzip2 && ln -sf ${BZIP2VERSION} bzip2 && cd ${WDIR}
+
+bzip2_support_intel_x86_64_c:
+ bzcat ${WHICHBZIP2}.tar.bz2 | tar -x -C ${PARTY3}/$(X86_64)/
+ cd ${PARTY3}/$(X86_64)/${BZIP2VERSION} && export MACOSX_DEPLOYMENT_TARGET=10.7 && export ARCH=x86_64 && export CC=${CC} && export CXX=${CXX} && $(MAKE) -f Makefile.darwin_x86_64 libbz2.a && cd ../ && rm -f bzip2 && ln -sf ${BZIP2VERSION} bzip2 && cd ${WDIR}
+
+zlib_support_intel_i386_c:
+ bzcat ${WHICHZLIB}.tar.bz2 | tar -x -C ${PARTY3}/$(I386)/
+ cd ${PARTY3}/$(I386)/${ZLIBVERSION} && export MACOSX_DEPLOYMENT_TARGET=10.7 && export ARCH=i386 && export CC=${CC} && export CXX=${CXX} && ./configure --static --archs="-arch i386" && $(MAKE) && cd ../ && rm -f zlib && ln -sf ${ZLIBVERSION} zlib && cd ${WDIR}
+
+zlib_support_intel_x86_64_c:
+ bzcat ${WHICHZLIB}.tar.bz2 | tar -x -C ${PARTY3}/$(X86_64)/
+ cd ${PARTY3}/$(X86_64)/${ZLIBVERSION} && export MACOSX_DEPLOYMENT_TARGET=10.7 && export ARCH=x86_64 && export CC=${CC} && export CXX=${CXX} && ./configure --static --archs="-arch x86_64" && $(MAKE) && cd ../ && rm -f zlib && ln -sf ${ZLIBVERSION} zlib && cd ${WDIR}
+
+
+
+#
+# Darwin fat build targets
+#
+sort_c_intel_fat:
+ -test -e ${APPDIR}/sort-bed/bin/sort-bed_i386 && test -e ${APPDIR}/sort-bed/bin/sort-bed_x86_64 && { lipo -create ${APPDIR}/sort-bed/bin/sort-bed_i386 ${APPDIR}/sort-bed/bin/sort-bed_x86_64 -output ${APPDIR}/sort-bed/bin/sort-bed; }
+
+bedops_c_intel_fat:
+ -test -e ${APPDIR}/bedops/bin/bedops_i386 && test -e ${APPDIR}/bedops/bin/bedops_x86_64 && { lipo -create ${APPDIR}/bedops/bin/bedops_i386 ${APPDIR}/bedops/bin/bedops_x86_64 -output ${APPDIR}/bedops/bin/bedops; }
+
+closestfeatures_c_intel_fat:
+ -test -e ${APPDIR}/closestfeats/bin/closest-features_i386 && test -e ${APPDIR}/closestfeats/bin/closest-features_x86_64 && { lipo -create ${APPDIR}/closestfeats/bin/closest-features_i386 ${APPDIR}/closestfeats/bin/closest-features_x86_64 -output ${APPDIR}/closestfeats/bin/closest-features; }
+
+bedmap_c_intel_fat:
+ -test -e ${APPDIR}/bedmap/bin/bedmap_i386 && test -e ${APPDIR}/bedmap/bin/bedmap_x86_64 && { lipo -create ${APPDIR}/bedmap/bin/bedmap_i386 ${APPDIR}/bedmap/bin/bedmap_x86_64 -output ${APPDIR}/bedmap/bin/bedmap; }
+
+bedextract_c_intel_fat:
+ -test -e ${APPDIR}/bedextract/bin/bedextract_i386 && test -e ${APPDIR}/bedextract/bin/bedextract_x86_64 && { lipo -create ${APPDIR}/bedextract/bin/bedextract_i386 ${APPDIR}/bedextract/bin/bedextract_x86_64 -output ${APPDIR}/bedextract/bin/bedextract; }
+
+convert2bed_c_intel_fat:
+ -test -e ${APPDIR}/conversion/bin/convert2bed_i386 && test -e ${APPDIR}/conversion/bin/convert2bed_x86_64 && { lipo -create ${APPDIR}/conversion/bin/convert2bed_i386 ${APPDIR}/conversion/bin/convert2bed_x86_64 -output ${APPDIR}/conversion/bin/convert2bed; }
+
+starch_c_intel_fat:
+ cp ${APPDIR}/starch/src/starchcluster_sge.tcsh ${APPDIR}/starch/bin/starchcluster_sge
+ cp ${APPDIR}/starch/src/starchcluster_gnuParallel.tcsh ${APPDIR}/starch/bin/starchcluster_gnuParallel
+ -test -e ${APPDIR}/starch/bin_i386/starch && test -e ${APPDIR}/starch/bin_x86_64/starch && { lipo -create ${APPDIR}/starch/bin_i386/starch ${APPDIR}/starch/bin_x86_64/starch -output ${APPDIR}/starch/bin/starch; }
+ -test -e ${APPDIR}/starch/bin_i386/unstarch && test -e ${APPDIR}/starch/bin_x86_64/unstarch && { lipo -create ${APPDIR}/starch/bin_i386/unstarch ${APPDIR}/starch/bin_x86_64/unstarch -output ${APPDIR}/starch/bin/unstarch; }
+ -test -e ${APPDIR}/starch/bin_i386/starchcat && test -e ${APPDIR}/starch/bin_x86_64/starchcat && { lipo -create ${APPDIR}/starch/bin_i386/starchcat ${APPDIR}/starch/bin_x86_64/starchcat -output ${APPDIR}/starch/bin/starchcat; }
+
+
+
+#
+# Debug: Darwin fat build targets
+#
+dbg_sort_c_intel_fat:
+ -test -e ${APPDIR}/sort-bed/bin/debug.sort-bed_i386 && test -e ${APPDIR}/sort-bed/bin/debug.sort-bed_x86_64 && { lipo -create ${APPDIR}/sort-bed/bin/debug.sort-bed_i386 ${APPDIR}/sort-bed/bin/debug.sort-bed_x86_64 -output ${APPDIR}/sort-bed/bin/debug.sort-bed; }
+
+dbg_bedops_c_intel_fat:
+ -test -e ${APPDIR}/bedops/bin/debug.bedops_i386 && test -e ${APPDIR}/bedops/bin/debug.bedops_x86_64 && { lipo -create ${APPDIR}/bedops/bin/debug.bedops_i386 ${APPDIR}/bedops/bin/debug.bedops_x86_64 -output ${APPDIR}/bedops/bin/debug.bedops; }
+
+dbg_closestfeatures_c_intel_fat:
+ -test -e ${APPDIR}/closestfeats/bin/debug.closest-features_i386 && test -e ${APPDIR}/closestfeats/bin/debug.closest-features_x86_64 && { lipo -create ${APPDIR}/closestfeats/bin/debug.closest-features_i386 ${APPDIR}/closestfeats/bin/debug.closest-features_x86_64 -output ${APPDIR}/closestfeats/bin/debug.closest-features; }
+
+dbg_bedmap_c_intel_fat:
+ -test -e ${APPDIR}/bedmap/bin/debug.bedmap_i386 && test -e ${APPDIR}/bedmap/bin/debug.bedmap_x86_64 && { lipo -create ${APPDIR}/bedmap/bin/debug.bedmap_i386 ${APPDIR}/bedmap/bin/debug.bedmap_x86_64 -output ${APPDIR}/bedmap/bin/debug.bedmap; }
+
+dbg_bedextract_c_intel_fat:
+ -test -e ${APPDIR}/bedextract/bin/debug.bedextract_i386 && test -e ${APPDIR}/bedextract/bin/debug.bedextract_x86_64 && { lipo -create ${APPDIR}/bedextract/bin/debug.bedextract_i386 ${APPDIR}/bedextract/bin/debug.bedextract_x86_64 -output ${APPDIR}/bedextract/bin/debug.bedextract; }
+
+dbg_convert2bed_c_intel_fat:
+ -test -e ${APPDIR}/conversion/bin/debug.convert2bed_i386 && test -e ${APPDIR}/conversion/bin/debug.convert2bed_x86_64 && { lipo -create ${APPDIR}/conversion/bin/debug.convert2bed_i386 ${APPDIR}/conversion/bin/debug.convert2bed_x86_64 -output ${APPDIR}/conversion/bin/debug.convert2bed; }
+
+dbg_starch_c_intel_fat:
+ cp ${APPDIR}/starch/src/starchcluster_sge.tcsh ${APPDIR}/starch/bin/starchcluster_sge
+ cp ${APPDIR}/starch/src/starchcluster_gnuParallel.tcsh ${APPDIR}/starch/bin/starchcluster_gnuParallel
+ -test -e ${APPDIR}/starch/bin_i386/debug.starch && test -e ${APPDIR}/starch/bin_x86_64/debug.starch && { lipo -create ${APPDIR}/starch/bin_i386/debug.starch ${APPDIR}/starch/bin_x86_64/debug.starch -output ${APPDIR}/starch/bin/debug.starch; }
+ -test -e ${APPDIR}/starch/bin_i386/debug.unstarch && test -e ${APPDIR}/starch/bin_x86_64/debug.unstarch && { lipo -create ${APPDIR}/starch/bin_i386/debug.unstarch ${APPDIR}/starch/bin_x86_64/debug.unstarch -output ${APPDIR}/starch/bin/debug.unstarch; }
+ -test -e ${APPDIR}/starch/bin_i386/debug.starchcat && test -e ${APPDIR}/starch/bin_x86_64/debug.starchcat && { lipo -create ${APPDIR}/starch/bin_i386/debug.starchcat ${APPDIR}/starch/bin_x86_64/debug.starchcat -output ${APPDIR}/starch/bin/debug.starchcat; }
diff --git a/system.mk/Makefile.linux b/system.mk/Makefile.linux
new file mode 100644
index 0000000..1e18d8b
--- /dev/null
+++ b/system.mk/Makefile.linux
@@ -0,0 +1,167 @@
+PARTY3 = third-party
+BZIP2VERSION = bzip2-1.0.6
+WHICHBZIP2 := ${PARTY3}/${BZIP2VERSION}
+JANSSONVERSION = jansson-2.6
+WHICHJANSSON := ${PARTY3}/${JANSSONVERSION}
+ZLIBVERSION = zlib-1.2.7
+WHICHZLIB := ${PARTY3}/${ZLIBVERSION}
+APPDIR = applications/bed
+BINDIR = bin
+OSXPKGROOT = packaging/os_x
+OSXBUILDDIR = ${OSXPKGROOT}/build
+OSXPKGDIR = ${OSXPKGROOT}/resources/bin
+OSXLIBDIR = ${OSXPKGROOT}/resources/lib
+WDIR = ${shell pwd}
+export CC = gcc
+export CXX = g++
+SELF = ${WDIR}/system.mk/Makefile.linux
+
+default: support
+ $(MAKE) build -f $(SELF)
+
+SUBDIRS = ${APPDIR}/bedmap/src ${APPDIR}/sort-bed/src ${APPDIR}/bedops/src ${APPDIR}/closestfeats/src ${APPDIR}/bedextract/src ${APPDIR}/starch/src ${APPDIR}/conversion/src
+
+.PHONY: $(SUBDIRS)
+
+build: $(SUBDIRS)
+
+$(SUBDIRS):
+ $(MAKE) -C $@ -f Makefile $(MAKECMDGOALS)
+
+debug: support
+ $(MAKE) build_debug -f $(SELF)
+
+build_debug: $(SUBDIRS)
+
+gprof: support
+ $(MAKE) build_gprof -f $(SELF)
+
+build_gprof: $(SUBDIRS)
+
+clean: clean_debug clean_gprof $(SUBDIRS)
+ rm -f ${BINDIR}/sort-bed
+ rm -f ${BINDIR}/bedops
+ rm -f ${BINDIR}/closest-features
+ rm -f ${BINDIR}/bedmap
+ rm -f ${BINDIR}/bedextract
+ rm -f ${BINDIR}/starch
+ rm -f ${BINDIR}/unstarch
+ rm -f ${BINDIR}/starchcat
+ rm -f ${BINDIR}/starchcluster*
+ rm -f ${BINDIR}/bam2bed
+ rm -f ${BINDIR}/bam2bed*
+ rm -f ${BINDIR}/gff2bed
+ rm -f ${BINDIR}/gtf2bed
+ rm -f ${BINDIR}/gvf2bed
+ rm -f ${BINDIR}/psl2bed
+ rm -f ${BINDIR}/rmsk2bed
+ rm -f ${BINDIR}/sam2bed
+ rm -f ${BINDIR}/vcf2bed
+ rm -f ${BINDIR}/wig2bed
+ rm -f ${BINDIR}/convert2bed
+ rm -f ${BINDIR}/bam2starch
+ rm -f ${BINDIR}/bam2starch*
+ rm -f ${BINDIR}/gff2starch
+ rm -f ${BINDIR}/gtf2starch
+ rm -f ${BINDIR}/gvf2starch
+ rm -f ${BINDIR}/psl2starch
+ rm -f ${BINDIR}/rmsk2starch
+ rm -f ${BINDIR}/sam2starch
+ rm -f ${BINDIR}/vcf2starch
+ rm -f ${BINDIR}/wig2starch
+ rm -f ${OSXPKGDIR}/*
+ rm -f ${OSXLIBDIR}/*
+ rm -Rf ${OSXBUILDDIR}/*
+ rm -rf ${WHICHBZIP2}
+ rm -f ${PARTY3}/bzip2
+ rm -rf ${WHICHJANSSON}
+ rm -f ${PARTY3}/jansson
+ rm -rf ${WHICHZLIB}
+ rm -f ${PARTY3}/zlib
+ rm -rf ${BINDIR}
+
+clean_debug:
+ rm -f ${BINDIR}/debug.sort-bed
+ rm -f ${BINDIR}/debug.bedops
+ rm -f ${BINDIR}/debug.closest-features
+ rm -f ${BINDIR}/debug.bedmap
+ rm -f ${BINDIR}/debug.bedextract
+ rm -f ${BINDIR}/debug.starch
+ rm -f ${BINDIR}/debug.unstarch
+ rm -f ${BINDIR}/debug.starchcat
+ rm -f ${BINDIR}/starchcluster*
+ rm -f ${BINDIR}/bam2bed
+ rm -f ${BINDIR}/bam2bed*
+ rm -f ${BINDIR}/gff2bed
+ rm -f ${BINDIR}/gtf2bed
+ rm -f ${BINDIR}/gvf2bed
+ rm -f ${BINDIR}/psl2bed
+ rm -f ${BINDIR}/rmsk2bed
+ rm -f ${BINDIR}/sam2bed
+ rm -f ${BINDIR}/vcf2bed
+ rm -f ${BINDIR}/wig2bed
+ rm -f ${BINDIR}/debug.convert2bed
+ rm -f ${BINDIR}/bam2starch
+ rm -f ${BINDIR}/bam2starch*
+ rm -f ${BINDIR}/gff2starch
+ rm -f ${BINDIR}/gtf2starch
+ rm -f ${BINDIR}/gvf2starch
+ rm -f ${BINDIR}/psl2starch
+ rm -f ${BINDIR}/rmsk2starch
+ rm -f ${BINDIR}/sam2starch
+ rm -f ${BINDIR}/vcf2starch
+ rm -f ${BINDIR}/wig2starch
+ rm -rf ${BINDIR}
+
+clean_gprof:
+ rm -f ${BINDIR}/gprof.sort-bed
+ rm -f ${BINDIR}/gprof.bedops
+ rm -f ${BINDIR}/gprof.closest-features
+ rm -f ${BINDIR}/gprof.bedmap
+ rm -f ${BINDIR}/gprof.bedextract
+ rm -f ${BINDIR}/gprof.starch
+ rm -f ${BINDIR}/gprof.unstarch
+ rm -f ${BINDIR}/gprof.starchcat
+ rm -f ${BINDIR}/starchcluster*
+ rm -f ${BINDIR}/bam2bed
+ rm -f ${BINDIR}/bam2bed*
+ rm -f ${BINDIR}/gff2bed
+ rm -f ${BINDIR}/gtf2bed
+ rm -f ${BINDIR}/gvf2bed
+ rm -f ${BINDIR}/psl2bed
+ rm -f ${BINDIR}/rmsk2bed
+ rm -f ${BINDIR}/sam2bed
+ rm -f ${BINDIR}/vcf2bed
+ rm -f ${BINDIR}/wig2bed
+ rm -f ${BINDIR}/gprof.convert2bed
+ rm -f ${BINDIR}/bam2starch
+ rm -f ${BINDIR}/bam2starch*
+ rm -f ${BINDIR}/gff2starch
+ rm -f ${BINDIR}/gtf2starch
+ rm -f ${BINDIR}/gvf2starch
+ rm -f ${BINDIR}/psl2starch
+ rm -f ${BINDIR}/rmsk2starch
+ rm -f ${BINDIR}/sam2starch
+ rm -f ${BINDIR}/vcf2starch
+ rm -f ${BINDIR}/wig2starch
+ rm -rf ${BINDIR}
+
+
+#
+# third-party libraries
+#
+LIBS = $(addprefix $(PARTY3)/, jansson/lib/libjansson.a bzip2/libbz2.a zlib/libz.a)
+
+support: $(LIBS)
+
+${PARTY3}/jansson/lib/libjansson.a: $(WHICHJANSSON).tar.bz2
+ bzcat $^ | tar -x -C ${PARTY3}
+ cd ${PARTY3}/${JANSSONVERSION} && ./configure --prefix=${WDIR}/${PARTY3}/${JANSSONVERSION} && $(MAKE) && $(MAKE) install && cd ${WDIR} && rm -f jansson && ln -sf ${JANSSONVERSION} ${PARTY3}/jansson
+
+$(PARTY3)/bzip2/libbz2.a: $(WHICHBZIP2).tar.bz2
+ bzcat $^ | tar -x -C ${PARTY3}
+ cd ${PARTY3}/${BZIP2VERSION} && $(MAKE) libbz2.a && cd ${WDIR} && rm -f bzip2 && ln -sf ${BZIP2VERSION} ${PARTY3}/bzip2
+
+${PARTY3}/zlib/libz.a: $(WHICHZLIB).tar.bz2
+ bzcat $^ | tar -x -C ${PARTY3}
+ cd ${PARTY3}/${ZLIBVERSION} && ./configure --static && $(MAKE) && cd ${WDIR} && rm -f zlib && ln -sf ${ZLIBVERSION} ${PARTY3}/zlib
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/bedops.git
More information about the debian-med-commit
mailing list